Commit graph

303 commits

Author SHA1 Message Date
jerone
e5dfe7775a This patch is to introduce multiboot 2 loading capabilities to grub2
for powerpc & i386-pc. This patch was more so started by Hollis
Blanchard getting multiboot 2 working for powerpc and I added to it
and cleaned it up.

One of the ideas with this patch is to keep everything under one
command for the user. So instead of having a "multiboot2" & "module2"
command, I created a proxy like mechanism so that you have only one
command for both multiboot 1 & 2 ... "multiboot". This is where
"loader/multiboot_loader.c" comes from. I could have integrated things
more but I figure the current approach will less likely break
anything.

So if your OS is multiboot 2 capable, the user would do the following
to load it up from a grub prompt:

grub> multiboot <location of kernel> <kernel args>
grub> module <some image> <multiboot tag> <image arguments>
grub> module <isome mage> <multiboot tag> <image arguments>
grub .....


The other thing that this patch does is it begins to make the
multiboot 1 code a bit more architecture agnostic so IF someone wanted
to implement it on another architecture they can.

A bit of file moving around and definition renaming is also apart of
this patch. I have also taken the time to make sure that it does not
break multiboot 1 loading on i386-pc. But mulitboot 2 may still need a
little more testing and work for i386-pc. Powerpc multiboot 2 has been
heavily tested and does work.
2007-07-25 00:44:03 +00:00
robertmh
daf0f0ba3e 2007-07-22 Robert Millan <rmh@aybabtu.com>
* geninitheader.sh: Process file specified in first parameter rather
	than hardcoding grub_modules_init.lst.
	* geninit.sh: Likewise.  Also, construct header name dynamicaly rather
	than hardcoding grub_modules_init.h.

	* conf/common.rmk: Rename grub_modules_init.[ch] files associated with
	grub-emu to grub_emu_init.[ch].  Add rules to build analogous
	grub_probe_init.[ch] and grub_setup_init.[ch].

	* conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Replace
	grub_modules_init.h with grub_emu_init.h.
	(grub_probe_DEPENDENCIES, grub_probe_SOURCES): Add new
	grub_probe_init.[ch] files.
	* conf/i386-efi.rmk: Likewise.
	* conf/i386-pc.rmk: Likewise.
	(grub_setup_DEPENDENCIES, grub_setup_SOURCES): Add new
	grub_setup_init.[ch] files.

	* util/grub-emu.c: Replace grub_modules_init.h with grub_emu_init.h.
	* util/grub-probe.c: Include grub_probe_init.h.  Use grub_init_all()
	to initialize modules rather than a list of hardcoded functions.
	* util/i386/pc/grub-setup.c: Include grub_setup_init.h.  Use
	grub_init_all() to initialize modules rather than a list of hardcoded
	functions.
2007-07-22 19:17:27 +00:00
okuji
969c02ec31 2007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
* conf/i386-pc.rmk (CLEANFILES): Removed for grub-mkrescue,
    because this rule is automatically generated.
    (grub-mkrescue): Removed for the same reason as above.
2007-07-21 23:34:57 +00:00
robertmh
3572d015fd 2007-07-02 Robert Millan <rmh@aybabtu.com>
* conf/i386-efi.rmk: Replace obsolete reference to
	util/i386/pc/biosdisk.c with util/biosdisk.c, and util/i386/pc/getroot.c
	with util/getroot.c.
	* conf/powerpc-ieee1275.rmk: Likewise.
	* conf/sparc64-ieee1275.rmk: Likewise.

	* util/grub-emu.c (main): Fix unchecked pointer handling.
2007-07-02 20:38:01 +00:00
robertmh
eface1dc8a 2007-06-23 Robert Millan <rmh@aybabtu.com>
* conf/i386-pc.rmk: (pkgdata_MODULES): Add serial.mod.
2007-06-23 14:44:37 +00:00
robertmh
7ee367e49b 2007-06-11 Robert Millan <rmh@aybabtu.com>
* util/i386/pc/grub-mkrescue.in: New file.
	* conf/i386-pc.rmk: Add its build declarations.  Put it in bin_SCRIPTS.
	* Makefile.in: Handle bin_SCRIPTS.
2007-06-11 06:26:18 +00:00
robertmh
fb36dc2693 2007-06-04 Robert Millan <rmh@aybabtu.com>
* conf/i386-efi.rmk (grub_probe_SOURCES): Add partmap/apple.c.

	* conf/i386-pc.rmk (grub_probe_SOURCES): Likewise.

	* conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add partmap/pc.c.
2007-06-04 19:48:53 +00:00
robertmh
0c68c93e62 2007-06-04 Robert Millan <rmh@aybabtu.com>
* conf/powerpc-ieee1275.rmk: Enable grub-mkdevicemap and grub-probe.

	* include/grub/partition.h: Declare grub_apple_partition_map_init and
	grub_apple_partition_map_fini.

	* util/biosdisk.c
	(grub_util_biosdisk_open): Replace BLKGETSIZE with BLKGETSIZE64 (needed
	to access >2 TiB disks).

	Print disk->total_sectors with %llu instead of %lu, since this
	variable is always 64-bit (prevents wrong disk size from being displayed
	on either >2 TiB disk or big-endian CPU).

	(grub_util_biosdisk_get_grub_dev): Convert gpt_partition_map handling
	into a generic case that supports all (sane) partition maps.

	Stop using grub_cpu_to_le32() on dos_part / bsd_part since it actually
	breaks big-endian.

	* util/grub-probe.c: Call grub_apple_partition_map_init() before probe()
	and grub_apple_partition_map_fini() after that.
2007-06-04 18:58:17 +00:00
robertmh
42c71976c6 2007-05-20 Robert Millan <rmh@aybabtu.com>
* util/update-grub_lib.in: New file.
	* DISTLIST: Add update-grub_lib.in.
	* conf/common.rmk: Generate update-grub_lib and install it in
	$(lib_DATA).
	* Makefile.in: Add install routine for $(lib_DATA).

	* util/grub.d/00_header.in: Use convert_system_path_to_grub_path()
	function provided by update-grub_lib to support arbitrary paths of
	unifont.pff.
	* util/update-grub.in: Use convert_system_path_to_grub_path() to
	initialize GRUB_DRIVE_BOOT and GRUB_DRIVE_BOOT_GRUB variables.
2007-05-20 09:10:06 +00:00
robertmh
5beb22914d 2007-05-19 Robert Millan <rmh@aybabtu.com>
* commands/i386/cpuid.c: New module.
	* DISTLIST: Add it.
	* conf/i386-efi.rmk: Enable cpuid.mod.
	* conf/i386-pc.rmk: Likewise.
2007-05-20 07:20:43 +00:00
robertmh
8fff7c2f2a 2007-05-16 Robert Millan <rmh@aybabtu.com>
* DISTLIST: Update for the latest changes.
	* conf/i386-pc.rmk: Use the new paths for util/getroot.c,
	util/grub-mkdevicemap.c, util/grub-probe.c and util/biosdisk.c.
	* util/grub-emu.c: Replace grub/i386/pc/util/biosdisk.h with
	grub/util/biosdisk.h.
	* util/i386/pc/grub-setup.c: Replace grub/machine/util/biosdisk.h with
	grub/util/biosdisk.h.
2007-05-16 15:19:38 +00:00
robertmh
46b9d12846 2007-05-16 Robert Millan <rmh@aybabtu.com>
* util/i386/efi/grub-install.in: New.
	* conf/i386-efi.rmk: Enable grub-mkdevicemap, grub-probe and the
	newly added grub-install.
	* util/biosdisk.c: Remove unnecessary grub/machine/biosdisk.h
	include.
	* util/getroot.c: Replace grub/i386/pc/util/biosdisk.h with
	grub/util/biosdisk.h.
	* util/grub-probe.c: Replace grub/machine/util/biosdisk.h with
	grub/util/biosdisk.h.
2007-05-16 15:05:02 +00:00
jeroen
bdc79cd1b3 Regenerate 2007-05-16 13:30:58 +00:00
robertmh
20b976586e 2007-05-05 Robert Millan <rmh@aybabtu.com>
* conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/gpt.c.
	(grub_probe_SOURCES): Likewise.
	* util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): Detect
	GPT and initialize dos_part and bsd_part accordingly.
	* util/i386/pc/grub-setup.c (setup): Ditto for install_dos_part and
	install_bsd_part.
	(main): Activate gpt module for use during partition identification,
	and deactivate it afterwards.
	* util/i386/pc/grub-install.in: Add gpt module to core.img.
	* util/i386/pc/grub-probe.c (main): Activate gpt module for use during
	partition identification, and deactivate it afterwards.
2007-05-04 23:00:56 +00:00
robertmh
ebd97f6e46 2007-05-04 Robert Millan <rmh@aybabtu.com>
* DISTLIST: Add util/update-grub.in, util/grub.d/00_header.in,
	util/grub.d/10_hurd.in, util/grub.d/10_linux.in and util/grub.d/README.
	* Makefile.in: Build update-grub_SCRIPTS.  Install update-grub_SCRIPTS
	and update-grub_DATA.
	* conf/common.rmk: Build and install update-grub components.
	* conf/common.mk: Regenerate.
	* util/update-grub.in: New.  Core of update-grub.
	* util/grub.d/00_header.in: New.  Generates grub.cfg header.
	* util/grub.d/10_hurd.in: New.  Generates boot entries for the Hurd.
	* util/grub.d/10_linux.in: New.  Generates boot entries for Linux.
	* util/grub.d/README: New.  Document grub.d directory layout.
2007-05-04 07:11:44 +00:00
hollisb
a0cbb02386 2007-02-21 Hollis Blanchard <hollis@penguinppc.org>
* conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Link at 64KB.
	* kern/powerpc/ieee1275/init.c (_end): Add declaration.
	(_start): Likewise.
	(grub_arch_modules_addr): Return address after `_end'.
	* util/powerpc/ieee1275/grub-mkimage.c: Include grub/misc.h.
	(load_modules): Use new parameter as `p_paddr' and `p_vaddr'.
	(add_segments): Calculate `_end' from phdr size and location.
	(ALIGN_UP): Moved to ...
	* include/grub/misc.h: here.
	* include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
	New macro.
	(GRUB_IEEE1275_MODULE_BASE): Removed.
2007-02-21 23:22:20 +00:00
tschwinge
fd3e4ea524 Regenerate files. 2006-12-13 22:34:04 +00:00
tschwinge
4fe9862ebb 2006-12-13 Thomas Schwinge <tschwinge@gnu.org>
* Makefile.in (enable_grub_emu): New variable.
	* configure.ac (--enable-grub-emu): New option.
	Do the checks for (n)curses only if `--enable-grub-emu' is requested.
	* conf/i386-efi.rmk (sbin_UTILITIES): Add `grub-emu' only if requested.
	* conf/i386-pc.rmk: Likewise.
	* conf/powerpc-ieee1275.rmk: Likewise.
	* conf/sparc64-ieee1275.rmk (bin_UTILITIES): Likewise.
2006-12-13 22:30:19 +00:00
jeroen
790707f254 2006-11-11 Jeroen Dekkers <jeroen@dekkers.cx>
* kern/disk.c (grub_disk_read): When there is a read error, always
	try to read only the necessary data.

	* conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and
	disk/raid.c.
	* include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New
	prototype.
	[GRUB_UTIL] (grub_raid_fini): Likewise.
	[GRUB_UTIL] (grub_lvm_init): Likewise.
	[GRUB_UTIL] (grub_lvm_fini): Likewise.
	* util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is
	RAID device and copy DEVICE_NAME to DRIVE_NAME in that case.
	(main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini()
	and grub_raid_fini().
2006-11-10 23:31:55 +00:00
jeroen
8b6a8d2ae2 regenerate i386-pc.mk and i386-efi.mk to get rid of bogus loader/multiboot_normal.c in dependencies 2006-11-08 23:17:22 +00:00
hollisb
2166cc8349 2006-11-03 Hollis Blanchard <hollis@penguinppc.org>
* conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c.
	* conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	(kernel_elf_SOURCES): Likewise.
	* conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h.
	* conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise.
	* conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
	* conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
	* conf/common.rmk (pkgdata_MODULES): Add elf.mod.
	(elf_mod_SOURCES): New variable.
	(elf_mod_CFLAGS): Likewise.
	(elf_mod_LDFLAGS): Likewise.
	* include/grub/types.h (__unused): New macro.
	* include/grub/elfload.h: New file.
	* kern/elf.c: Likewise.
	* loader/powerpc/ieee1275/linux.c: Include elfload.h.
	(ELF32_LOADMASK): New macro.
	(ELF64_LOADMASK): Likewise.
	(vmlinux): Removed.
	(grub_linux_load32): New function.
	(grub_linux_load64): Likewise.
	(grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64.
	Use grub_elf_t instead of grub_file_t.
2006-11-03 20:28:04 +00:00
robertmh
b55828aa35 Oops. Regenerate conf/i386-efi.mk and conf/i386-pc.mk (Using: ruby genmk.rb < conf/foo.rmk > conf/foo.mk) 2006-10-14 19:50:53 +00:00
robertmh
ddd5cee9a9 2006-10-14 Robert Millan <rmh@aybabtu.com>
* util/i386/pc/getroot.c (grub_guess_root_device): Stop using
	grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
	* util/grub-emu.c (main): Use grub_util_biosdisk_get_grub_dev with the
	string returned by grub_guess_root_device.
	* util/i386/pc/grub-setup.c: Likewise.
	* util/i386/pc/grub-probefs.c: Likewise.

	* util/i386/pc/grub-probefs.c: Rename to ...
	* util/i386/pc/grub-probe.c: ... this.
	* DISTLIST: Remove grub-probefs, add grub-probe.
	* conf/i386-efi.rmk: Likewise.
	* conf/i386-pc.rmk: Likewise.
	* util/i386/pc/grub-install.in: Likewise.

	* util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
	choose which information we want to print.
2006-10-14 18:59:34 +00:00
okuji
2b00217369 2006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
* DISTLIST: Added commands/echo.c, disk/lvm.c, disk/raid.c,
        include/grub/bitmap.h, include/grub/lvm.h, include/grub/raid.h,
        include/grub/i386/pc/vbeutil.h, include/grub/util/lvm.h,
        include/grub/util/raid.h, util/lvm.c, util/raid.c, video/bitmap.c,
        video/readers/tga.c and video/i386/pc/vbeutil.c.

2006-10-14  Jeroen Dekkers  <jeroen@dekkers.cx>

        Added support for RAID and LVM.

        * disk/lvm.c: New file.
        * disk/raid.c: Likewise.
        * include/grub/lvm.h: Likewise.
        * include/grub/raid.h: Likewise.
        * include/grub/util/lvm.h: Likewise.
        * include/grub/util/raid.h: Likewise.
        * util/lvm.c: Likewise.
        * util/raid.c: Likewise.

        * include/grub/disk.h (grub_disk_dev_id): Add
        GRUB_DISK_DEVICE_RAID_ID and GRUB_DISK_DEVICE_LVM_ID.
        (grub_disk_get_size): New prototype.
        * kern/disk.c (grub_disk_open): Check whether grub_partition_probe()
        returns a partition.
        (grub_disk_get_size): New function.

        * kern/i386/pc/init.c (make_install_device): Copy the prefix
        verbatim if grub_install_dos_part is -2.

        * util/i386/pc/getroot.c (grub_guess_root_device): Support RAID
        and LVM devices.

        * util/i386/pc/grub-setup.c (setup): New argument
        MUST_EMBED. Force embedding of GRUB when the argument is
        true. Close FILE before returning.
        (main): Add support for RAID and LVM.

        * conf/common.rmk: Add RAID and LVM modules.
        * conf/i386-pc.rmk (grub_setup_SOURCES): Add util/raid.c and
        util/lvm.c.
        (grub_emu_SOURCES): Add disk/raid.c and disk/lvm.c.

        * kern/misc.c (grub_strstr): New function.
        * include/grub/misc.h (grub_strstr): New prototype.
2006-10-14 15:24:53 +00:00
marco_g
b5ef11025a 2006-09-22 Marco Gerards <marco@gnu.org>
* commands/echo.c: New file.

	* conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/echo.c'.

	* conf/common.rmk (echo_mod_SOURCES): New variable.
	(echo_mod_CFLAGS): Likewise.
	(echo_mod_LDFLAGS): Likewise.
2006-09-22 21:09:14 +00:00
marco_g
6ba4688b23 2006-09-22 Marco Gerards <marco@gnu.org>
* conf/i386-efi.rmk (grub_emu_DEPENDENCIES): New variable.
	(normal_mod_DEPENDENCIES): Likewise.

	* conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Likewise.
	(normal_mod_DEPENDENCIES): Likewise.

	* conf/sparc64-ieee1275.rmk (normal_mod_DEPENDENCIES): Likewise.
2006-09-22 19:36:32 +00:00
jrydberg
e02ac02c5f 2006-09-22 Johan Rydberg <jrydberg@gnu.org>
* genmk.rb: Add DEPENDENCIES variables to modules, utilities, and
        programs.
        * conf/i386-pc.rmk (grub_emu_DEPENDENCIES): Declare.
        (normal_mod_DEPENDENCIES): Likewise.
        * conf/i386-pc.mk: Regenerate.
        * conf/i386-efi.mk: Likewise
        * conf/common.mk: Likewise.
        * conf/powerpc-ieee1275.mk: Likewise.
        * conf/sparc64-ieee1275.mk: Likewise.
2006-09-22 00:27:38 +00:00
robertmh
8d252e442c 2006-09-22 Robert Millan <rmh@aybabtu.com>
Sync with i386 version.
	* conf/powerpc-ieee1275.rmk (bin_UTILITIES): Remove grub-emu, add grub-mkimage.
	* conf/powerpc-ieee1275.rmk (sbin_UTILITIES): Remove grub-mkimage, add grub-emu.
2006-09-21 22:24:05 +00:00
marco_g
6b14609040 2006-09-14 Marco Gerards <marco@gnu.org>
* conf/i386-pc.rmk (COMMON_LDFLAGS): Use `-m32' instead of
	`-melf_i386'.
2006-09-14 19:04:18 +00:00
jrydberg
01b82a64e2 2006-08-15 Johan Rydberg <jrydberg@gnu.org>
* genmk.rb: Let GCC generate dependenceies the first time it
        compiles a file; using the -MD option.
        * conf/common.mk: Regenerate.
        * conf/i386-pc.mk: Likewise.
        * conf/i386-efi.mk: Likewise.
        * conf/powerpc-ieee1275.mk: Likewise.
        * conf/sparc64-ieee1275.mk: Likewise.
2006-08-15 12:29:08 +00:00
chaac
ad2a06edba 2006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
* include/grub/bitmap.h: New file.

	* include/grub/i386/pc/vbeutil.h: Likewise.

	* video/bitmap.c: Likewise.

	* video/readers/tga.c: Likewise.

	* video/i386/pc/vbeutil.c: Likewise.

	* commands/videotest.c: Code cleanup and updated to reflect to new
	video API.

	* term/gfxterm.c: Likewise.

	* video/video.c: Likewise.

	* conf/i386-pc.rmk (pkgdata_MODULES): Added tga.mod and bitmap.mod.
	(vbe_mod_SOURCES): Added video/i386/pc/vbeutil.c.
	(bitmap_mod_SOURCES): New entry.
	(bitmap_mod_CFLAGS): Likewise.
	(bitmap_mod_LDFLAGS): Likewise.
	(tga_mod_SOURCES): Likewise.
	(tga_mod_CFLAGS): Likewise.
	(tga_mod_LDFLAGS): Likewise.

	* include/grub/video.h (grub_video_blit_operators): New enum type.
	(grub_video_render_target): Changed as forward declaration and moved
	actual definition to be video driver specific.
	(grub_video_adapter.blit_bitmap): Added blitting operator.
	(grub_video_adapter.blit_render_target): Likewise.
	(grub_video_blit_bitmap): Likewise.
	(grub_video_blit_render_target): Likewise.

	* include/grub/i386/pc/vbe.h (grub_video_render_target): Added
	driver specific render target definition.
	(grub_video_vbe_map_rgba): Added driver internal helper.
	(grub_video_vbe_unmap_color): Updated to use
	grub_video_i386_vbeblit_info.
	(grub_video_vbe_get_video_ptr): Likewise.

	* include/grub/i386/pc/vbeblit.h
	(grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8): Updated to use
	grub_video_i386_vbeblit_info.
	(grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
	(grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
	(grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
	(grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
	(grub_video_i386_vbeblit_index_R8G8B8): Likewise.
	(grub_video_i386_vbeblit_index_index): Likewise.
	(grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): New blitter function.
	(grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
	(grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
	(grub_video_i386_vbeblit_blend): Added generic blitter for blend
	operator.
	(grub_video_i386_vbeblit_replace): Added generic blitter for replace
	operator.

	* video/i386/pc/vbeblit.c: Updated to reflect changes on
	include/grub/i386/pc/vbeblit.h.

	* include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8):
	Updated to use grub_video_i386_vbeblit_info.
	(grub_video_i386_vbefill_R8G8B8): Likewise.
	(grub_video_i386_vbefill_index): Likewise.
	(grub_video_i386_vbefill): Added generic filler.

	* video/i386/pc/vbefill.c: Updated to reflect changes on
	include/grub/i386/pc/vbefill.h.

	* video/i386/pc/vbe.c (grub_video_vbe_get_video_ptr): Updated to use
	grub_video_i386_vbeblit_info.
	(grub_video_vbe_unmap_color): Likewise.
	(grub_video_vbe_blit_glyph): Likewise.
	(grub_video_vbe_scroll): Likewise.
	(grub_video_vbe_draw_pixel): Removed function.
	(grub_video_vbe_get_pixel): Likewise.
	(grub_video_vbe_fill_rect): Moved all blitters to vbefill.c and
	updated code to use it.
	(common_blitter): Added common blitter for render target and bitmap.
	(grub_video_vbe_blit_bitmap): Updated to use common_blitter.
	(grub_video_vbe_blit_render_target): Likewise.
2006-07-31 14:21:36 +00:00
jeroen
5dcace568a Regenerate conf/i386-pc.mk. 2006-07-04 20:00:28 +00:00
jeroen
43e7f879ae 2006-07-02 Jeroen Dekkers <jeroen@dekkers.cx>
* conf/i386-pc.rmk (COMMON_ASFLAGS): Add "-m32".
	(normal_mod_ASFLAGS): Remove "-m32".
2006-07-02 15:30:43 +00:00
okuji
53af98ad17 2006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
* DISTLIST: Added include/grub/i386/linux.h. Removed
        include/grub/i386/pc/linux.h

        * configure.ac (AC_INIT): Bumped to 1.94.

        * config.guess: Updated from gnulib.
        * config.sub: Likewise.
        * install-sh: Likewise.
        * mkinstalldirs: Likewise.
2006-06-04 12:59:19 +00:00
okuji
b4c1940a25 2006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
* conf/common.rmk (grub_modules_init.lst): Depended on
        grub_emu_SOURCES, excluding grub_emu_init.c, instead of
        MODSRCFILES.

        * genmk.rb (PModule::rule): Reverted the previous change.
2006-06-02 19:33:58 +00:00
okuji
cfca1cfd8e 2006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
* conf/common.rmk (grub_modules_init.lst): Depends on
        $(MODSRCFILES). Grep only the files in $(MODSRCFILES). Make sure
        that the target does not exist before producing.
        (grub_modules_init.h): Remove the target before generating.
        (grub_emu_init.c): Likewise.

        * genmk.rb (PModule::rule): Add source files into MODSRCFILES.
2006-06-02 19:23:08 +00:00
okuji
26c607b932 2006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
* genmk.rb (Image::rule): Prefix CFLAGS or ASFLAGS with TARGET_.
        (PModule::rule): Likewise.
2006-05-31 00:46:37 +00:00
okuji
0162321a93 2006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
* genmk.rb (Image::rule): Set FLAG to CFLAGS or ASFLAGS instead of
        TARGET_CFLAGS or TARGET_ASFLAGS. There is no reason why
        target-specific flags should be prefixed.
        (PModule::rule): Likewise.
2006-05-31 00:28:03 +00:00
okuji
b977bf01b3 2006-05-29 Yoshinori K. Okuji <okuji@enbug.org>
* util/powerpc/ieee1275/grub-install.in (host_cpu): Removed.
        (target_cpu): New variable.
        (pkglibdir): Use target_cpu instead of host_cpu.

        * util/i386/pc/grub-install.in (host_cpu): Removed.
        (target_cpu): New variable.
        (pkglibdir): Use target_cpu instead of host_cpu.

        * util/genmoddep.c: Removed.

        * kern/efi/mm.c (filter_memory_map): Use GRUB_CPU_SIZEOF_VOID_P
        instead of GRUB_HOST_SIZEOF_VOID_P.
        * kern/dl.c: Likewise.

        * include/grub/i386/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to
        ...
        (GRUB_TARGET_SIZEOF_VOID_P): ... this.
        (GRUB_HOST_SIZEOF_LONG): Renamed to ...
        (GRUB_TARGET_SIZEOF_LONG): ... this.
        (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
        (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
        * include/grub/powerpc/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
        to ...
        (GRUB_TARGET_SIZEOF_VOID_P): ... this.
        (GRUB_HOST_SIZEOF_LONG): Renamed to ...
        (GRUB_TARGET_SIZEOF_LONG): ... this.
        (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
        (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
        * include/grub/sparc64/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
        to ...
        (GRUB_TARGET_SIZEOF_VOID_P): ... this.
        (GRUB_HOST_SIZEOF_LONG): Renamed to ...
        (GRUB_TARGET_SIZEOF_LONG): ... this.
        (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
        (GRUB_TARGET_WORDS_BIGENDIAN): ... this.

        * include/grub/types.h [!GRUB_UTIL] (GRUB_CPU_SIZEOF_VOID_P): Use
        GRUB_TARGET_SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P.
        [!GRUB_UTIL] (GRUB_CPU_SIZEOF_LONG): Use GRUB_TARGET_SIZEOF_LONG
        instead of GRUB_HOST_SIZEOF_LONG.
        [!GRUB_UTIL]: Refer to GRUB_TARGET_WORDS_BIGENDIAN instead of
        GRUB_HOST_WORDS_BIGENDIAN to define or undefine
        GRUB_CPU_WORDS_BIGENDIAN.
        Refer to SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P to
        define grub_host_addr_t, grub_host_off_t, grub_host_size_t and
        grub_host_ssize_t.

        * conf/i386-efi.rmk (noinst_UTILITIES): Removed.
        (genmoddep_SOURCES): Likewise.
        * conf/i386-pc.rmk (noinst_UTILITIES): Likewise.
        (genmoddep_SOURCES): Likewise.
        * conf/conf/powerpc-ieee1275.rmk (noinst_UTILITIES): Likewise.
        (genmoddep_SOURCES): Likewise.
        * conf/conf/conf/sparc64-ieee1275.rmk (noinst_UTILITIES):
        Likewise.
        (genmoddep_SOURCES): Likewise.

        * genmoddep.awk: New file.

        * genmk.rb (Image::rule): Use TARGET_CC, TARGET_CPPFLAGS,
        TARGET_CFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS instead of CC,
        CPPFLAGS, CFLAGS, ASFLAGS and LDFLAGS, respectively.
        (PModule::rule): Likewise.
        (Program::rule): Likewise.
        (Utility::rule): Use CC, CPPFLAGS, CFLAGS and LDFLAGS instead of
        BUILD_CC, BUILD_CPPFLAGS, BUILD_CFLAGS and BUILD_LDFLAGS,
        respectively.

        * configure.ac: Rewritten intensively to use host and target
        instead of build and host, respectively.

        * Makefile.in (pkglibdir): Use target_cpu instead of host_cpu.
        (host_cpu): Removed.
        (target_cpu): New variable.
        (CPPFLAGS): Added @CPPFLAGS@ and -DGRUB_LIBDIR=\"$(pkglibdir)\".
        (BUILD_CC): Removed.
        (BUILD_CFLAGS): Likewise.
        (BUILD_CPPFLAGS): Likewise.
        (TARGET_CC): New variable.
        (TARGET_CFLAGS): Likewise.
        (TARGET_CPPFLAGS): Likewise.
        (TARGET_LDFLAGS): Likewise.
        (AWK): Likewise.
        (include): Use target_cpu instead of host_cpu.
        (moddep.lst:): Use genmoddep.awk instead of genmoddep.

        * DISTLIST: Added genmoddep.awk. Removed util/genmoddep.c.
2006-05-28 23:01:43 +00:00
okuji
118f4fb31e 2006-05-28 Yoshinori K. Okuji <okuji@enbug.org>
* fs/hfsplus.c (grub_hfsplus_btree_recoffset): Moved to near the
        top.
        (grub_hfsplus_btree_recptr): Likewise.
        (grub_hfsplus_find_block): Do not take RETRY any longer. Use
        FILEBLOCK both to pass a block number and store next block
        number.
        (grub_hfsplus_read_block): Rewritten heavily to support an extent
        overflow file correctly. Specify errors appropriately, because
        fshelp expects that GRUB_ERRNO is set when fails. Reuse
        grub_hfsplus_btree_recptr to get the pointer to a found key.
        (grub_hfsplus_btree_search): Return 1 instead of 0 when no match
        is found.

        * conf/i386-efi.rmk (pkgdata_MODULES): Added _linux.mod and
        linux.mod.
        (_linux_mod_SOURCES): New variable.
        (_linux_mod_CFLAGS): Likewise.
        (_linux_mod_LDFLAGS): Likewise.
        (linux_mod_SOURCES): Likewise.
        (linux_mod_CFLAGS): Likewise.
        (linux_mod_LDFLAGS): Likewise.

        * DISTLIST: Added loader/i386/efi/linux.c,
        loader/i386/efi/linux_normal.c and
        include/grub/i386/efi/loader.h.

        * loader/i386/efi/linux.c: New file.
        * loader/i386/efi/linux_normal.c: Likewise.
        * include/grub/i386/efi/loader.h: Likewise.
2006-05-28 03:20:18 +00:00
okuji
89a7d726f9 2006-05-27 Yoshinori K. Okuji <okuji@enbug.org>
* commands/blocklist.c: New file.

        * DISTLIST: Added commands/blocklist.c.

        * term/efi/console.c (grub_console_highlight_color): Use a lighter
        color for the background, and a daker color for the foreground.
        (grub_console_checkkey): Return READ_KEY.
        (grub_console_cls): Set the background to
        GRUB_EFI_BACKGROUND_BLACK temporarily to clean out the screen.

        * kern/efi/efi.c (grub_efi_exit_boot_services): New function.

        * include/grub/i386/linux.h (struct linux_kernel_params): Fixed
        the size of "padding5", "hd0_drive_info" and "hd1_drive_info".

        * include/grub/efi/efi.h (grub_efi_exit_boot_services): New
        prototype.

        * include/grub/efi/api.h (GRUB_EFI_TEXT_ATTR): Do not shift
        BG. The spec is wrong again.

        * include/grub/normal.h [GRUB_UTIL] (grub_blocklist_init): New
        prototype.
        [GRUB_UTIL] (grub_blocklist_fini): Likewise.

        * conf/i386-pc.rmk (grub_emu_SOURCES): Added
        commands/blocklist.c.
        * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.

        * conf/common.rmk (pkgdata_MODULES): Added blocklist.mod.
        (blocklist_mod_SOURCES): New variable.
        (blocklist_mod_CFLAGS): Likewise.
        (blocklist_mod_LDFLAGS): Likewise.
2006-05-27 21:09:25 +00:00
marco_g
5f0413bd2a 2006-05-08 Marco Gerards <marco@gnu.org>
* conf/powerpc-ieee1275.rmk (grubof_HEADERS): Renamed from
	this...
	(kernel_elf_HEADERS): ...to this.  Updated all users.
	(grubof_symlist.c): Renamed from this...
	(kernel_elf_symlist.c): ...to this.  Updated all users.
	(pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
	(grubof_SOURCES): Renamed from this...
	(kernel_elf_SOURCES): ...to this.
	(grubof_HEADERS): Renamed from this...
	(kernel_elf_HEADERS): ...to this.
	(grubof_CFLAGS): Renamed from this...
	(kernel_elf_CFLAGS): ...to this.
	(grubof_ASFLAGS): Renamed from this...
	(kernel_elf_ASFLAGS): ...to this.
	(grubof_LDFLAGS): Renamed from this...
	(kernel_elf_LDFLAGS): ...to this.

	* conf/sparc64-ieee1275.rmk (grubof_HEADERS): Renamed from
	this...
	(kernel_elf_HEADERS): ...to this.  Updated all users.
	(grubof_symlist.c): Renamed from this...
	(kernel_elf_symlist.c): ...to this.  Updated all users.
	(pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
	(grubof_SOURCES): Renamed from this...
	(kernel_elf_SOURCES): ...to this.
	(grubof_HEADERS): Renamed from this...
	(kernel_elf_HEADERS): ...to this.
	(grubof_CFLAGS): Renamed from this...
	(kernel_elf_CFLAGS): ...to this.
	(grubof_ASFLAGS): Renamed from this...
	(kernel_elf_ASFLAGS): ...to this.
	(grubof_LDFLAGS): Renamed from this...
	(kernel_elf_LDFLAGS): ...to this.

	* util/powerpc/ieee1275/grub-mkimage.c (add_segments): Use
	`kernel.elf' instead of `grubof'.
2006-05-08 21:47:20 +00:00
okuji
4e93851c0f 2006-05-07 Yoshinori K. Okuji <okuji@enbug.org>
Use the environment context in the menu. Remove the commands
        "default" and "timeout", and use variables instead.

        * normal/menu.c: Include grub/env.h.
        (print_entry): Cast TITLE to silence gcc.
        (get_timeout): New function.
        (set_timeout): Likewise.
        (get_entry_number): Likewise.
        (run_menu): Use a default entry, a fallback entry and a timeout
        in the environment variables "default", "fallback" and
        "timeout". Also, tweak the default entry if it is not within the
        current menu entries.
        (grub_menu_run): Use a fallback entry in the environment variable
        "fallback".

        * normal/main.c (read_config_file): Do not initialize
        NEWMENU->DEFAULT_ENTRY, NEWMENU->FALLBACK_ENTRY or
        NEWMENU->TIMEOUT.
        (grub_normal_execute): Use a data slot to store the menu.

        * include/grub/normal.h (struct grub_menu): Removed default_entry,
        fallback_entry and timeout.
        (struct grub_menu_list): Removed.
        (grub_menu_list_t): Likewise.
        (struct grub_context): Likewise.
        (grub_context_t): Likewise.
        (grub_context_get): Likewise.
        (grub_context_get_current_menu): Likewise.
        (grub_context_push_menu): Likewise.
        (grub_context_pop_menu): Likewise.
        (grub_default_init): Likewise.
        (grub_default_fini): Likewise.
        (grub_timeout_init): Likewise.
        (grub_timeout_fini): Likewise.

        * conf/sparc64-ieee1275.rmk (pkgdata_MODULES): Removed default.mod
        and timeout.mod.
        (normal_mod_SOURCES): Removed normal/context.c.

        * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Removed
        commands/default.c, commands/timeout.c and normal/context.c.
        (normal_mod_SOURCES): Removed normal/context.c.

        * conf/i386-pc.rmk (grub_emu_SOURCES): Removed commands/default.c,
        commands/timeout.c and normal/context.c.
        (normal_mod_SOURCES): Removed normal/context.c.

        * conf/i386-efi.rmk (grub_emu_SOURCES): Removed
        commands/default.c, commands/timeout.c and normal/context.c.
        (normal_mod_SOURCES): Removed normal/context.c.

        * conf/common.rmk (pkgdata_MODULES): Removed default.mod and
        timeout.mod.
        (default_mod_SOURCES): Removed.
        (default_mod_CFLAGS): Likewise.
        (default_mod_LDFLAGS): Likewise.
        (timeout_mod_SOURCES): Removed.
        (timeout_mod_CFLAGS): Likewise.
        (timeout_mod_LDFLAGS): Likewise.

        * DISTLIST: Removed commands/default.c, commands/timeout.c and
        normal/context.c.

        * commands/default.c: Removed.
        * commands/timeout.c: Likewise.
        * normal/context.c: Likewise.
2006-05-07 18:28:24 +00:00
okuji
7f362539b7 2006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
Extend the loader so that GRUB can accept a loader which comes
        back to GRUB when a loaded image exits. Also, this change adds
        support for a chainloader on EFI.

        * term/efi/console.c: Include grub/misc.h.
        (grub_console_checkkey): Display a scan code on the top for
        debugging. This will be removed once the EFI port gets stable.
        Correct the scan code mapping.

        * kern/efi/mm.c (sort_memory_map): Sort in a descending order to
        allocate memory from larger regions, in order to reduce the number
        of allocated regions. Otherwise, the MacOSX loader panics.
        (filter_memory_map): Avoid less than 1MB for compatibility with
        other loaders.
        (add_memory_regions): Allocate from the tail of a region, if
        possible, to avoid allocating a region near to 1MB, for the MacOSX
        loader.

        * kern/efi/init.c (grub_efi_set_prefix): Specify
        GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image.

        * kern/efi/efi.c (grub_efi_get_loaded_image): Accept a new
        argument IMAGE_HANDLE and specify it to get a loaded image.
        (grub_arch_modules_addr): Specify GRUB_EFI_IMAGE_HANDLE to
        grub_efi_get_loaded_image.
        (grub_efi_get_filename): Divide the legnth by the size of
        grub_efi_char16_t.
        (grub_efi_get_device_path): New function.
        (grub_efi_print_device_path): Print End Device Path nodes. Divide
        the length by the size of grub_efi_char16_t for a file path device
        path node.

        * kern/loader.c (grub_loader_noreturn): New variable.
        (grub_loader_set): Accept a new argument NORETURN. Set
        GRUB_LOADER_NORETURN to NORETURN.
        All callers changed.
        (grub_loader_boot): If GRUB_LOADER_NORETURN is false, do not call
        grub_machine_fini.

        * include/grub/efi/efi.h (grub_efi_get_device_path): New
        prototype.
        (grub_efi_get_loaded_image): Take an argument to specify an image
        handle.

        * include/grub/loader.h (grub_loader_set): Added one more argument
        NORETURN.

        * disk/efi/efidisk.c (make_devices): Use grub_efi_get_device_path
        instead of grub_efi_open_protocol.
        (grub_efidisk_get_device_name): Likewise.
        (grub_efidisk_close): Print a newline.
        (grub_efidisk_get_device_handle): Fixed to use
        GRUB_EFI_DEVICE_PATH_SUBTYPE instead of
        GRUB_EFI_DEVICE_PATH_TYPE.

        * disk/efi/efidisk.c (device_path_guid): Moved to ...
        * kern/efi/efi.c (device_path_guid): ... here.

        * conf/i386-efi.rmk (pkgdata_MODULES): Added _chain.mod and
        chain.mod.
        (kernel_mod_HEADERS): Added efi/disk.h.
        (_chain_mod_SOURCES): New variable.
        (_chain_mod_CFLAGS): Likewise.
        (_chain_mod_LDFLAGS): Likewise.
        (chain_mod_SOURCES): Likewise.
        (chain_mod_CFLAGS): Likewise.
        (chain_mod_LDFLAGS): Likewise.

        * DISTLIST: Added include/grub/efi/chainloader.h,
        loader/efi/chainloader.c and loader/efi/chainloader_normal.c.

        * include/grub/efi/chainloader.h: New file.
        * loader/efi/chainloader.c: Likewise.
        * loader/efi/chainloader_normal.c: Likewise.
2006-04-30 21:09:37 +00:00
okuji
7b455f4dd3 2006-04-26 Yoshinori K. Okuji <okuji@enbug.org>
* util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments
        explicitly to suppress gcc's warnings.
        * fs/fat.c (grub_fat_find_dir): Likewise.
        (grub_fat_label): Likewise.
        * fs/xfs.c (grub_xfs_read_inode): Likewise.
        (grub_xfs_mount): Likewise.
        (grub_xfs_label): Likewise.
        * fs/affs.c (grub_affs_mount): Likewise.
        (grub_affs_label): Likewise.
        (grub_affs_iterate_dir): Likewise.
        * fs/sfs.c (grub_sfs_mount): Likewise.
        (grub_sfs_iterate_dir): Likewise.
        * fs/ufs.c (grub_ufs_lookup_symlink): Likewise.
        * fs/hfs.c (grub_hfs_mount): Likewise.
        (grub_hfs_cmp_catkeys): Likewise.
        (grub_hfs_find_dir): Likewise.
        (grub_hfs_dir): Likewise.
        (grub_hfs_label): Likewise.
        * fs/jfs.c (grub_jfs_mount): Likewise.
        (grub_jfs_opendir): Likewise.
        (grub_jfs_getent): Likewise.
        (grub_jfs_lookup_symlink): Likewise.
        (grub_jfs_label): Likewise.
        * fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise.
        (grub_hfsplus_iterate_dir): Likewise.
        (grub_hfsplus_btree_iterate_node): Made static.

        * util/grub-emu.c (prefix): New variable.
        (grub_machine_set_prefix): New function.
        (main): Do not set the environment variable "prefix" here. Only
        set PREFIX, which is used later by grub_machine_set_prefix.

        * include/grub/video.h: Do not include grub/symbol.h.
        (grub_video_register): Not exported. This symbol is not defined in
        the kernel.
        (grub_video_unregister): Likewise.
        (grub_video_iterate): Likewise.
        (grub_video_setup): Likewise.
        (grub_video_restore): Likewise.
        (grub_video_get_info): Likewise.
        (grub_video_get_blit_format): Likewise.
        (grub_video_set_palette): Likewise.
        (grub_video_get_palette): Likewise.
        (grub_video_set_viewport): Likewise.
        (grub_video_get_viewport): Likewise.
        (grub_video_map_color): Likewise.
        (grub_video_map_rgb): Likewise.
        (grub_video_map_rgba): Likewise.
        (grub_video_fill_rect): Likewise.
        (grub_video_blit_glyph): Likewise.
        (grub_video_blit_bitmap): Likewise.
        (grub_video_blit_render_target): Likewise.
        (grub_video_scroll): Likewise.
        (grub_video_swap_buffers): Likewise.
        (grub_video_create_render_target): Likewise.
        (grub_video_delete_render_target): Likewise.
        (grub_video_set_active_render_target): Likewise.

        * include/grub/symbol.h [GRUB_SYMBOL_GENERATOR] (EXPORT_FUNC):
        Undefined.
        [GRUB_SYMBOL_GENERATOR] (EXPORT_VAR): Likewise.

        * conf/sparc64-ieee1275.rmk (grubof_symlist.c): Depended on
        config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
        (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
        instead of $(srcdir)/genkernsyms.sh.

        * conf/powerpc-ieee1275.rmk (grubof_symlist.c): Depended on
        config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
        (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
        instead of $(srcdir)/genkernsyms.sh.

        * conf/i386-pc.rmk (symlist.c): Depended on config.h. Use
        gensymlist.sh instead of $(srcdir)/gensymlist.sh.
        (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
        instead of $(srcdir)/genkernsyms.sh.

        * conf/i386-efi.rmk (symlist.c): Depended on config.h. Use
        gensymlist.sh instead of $(srcdir)/gensymlist.sh.
        (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
        instead of $(srcdir)/genkernsyms.sh.

        * configure.ac (AC_CONFIG_FILES): Added gensymlist.sh and
        genkernsyms.sh.

        * Makefile.in (DISTCLEANFILES): Added gensymlist.sh and
        genkernsyms.sh.
        (gensymlist.sh): New target.
        (genkernsyms.sh): Likewise.

        * DISTLIST: Removed genkernsyms.sh and gensymlist.sh. Added
        genkernsyms.sh.in and gensymlist.sh.in.

        * genkernsyms.sh: Removed.
        * gensymlist.sh: Likewise.

        * genkernsyms.sh.in: New file.
        * gensymlist.sh.in: Likewise.
2006-04-26 21:58:36 +00:00
okuji
9cacaa174c 2006-04-23 Yoshinori K. Okuji <okuji@enbug.org>
Use grub_abort instead of grub_stop, and grub_exit must be
        define in each architecture now. Also, this change adds support
        for EFI disks.

        * util/i386/pc/grub-probefs.c: Include grub/term.h.
        (grub_getkey): New function.
        (grub_term_get_current): Likewise.

        * util/i386/pc/grub-setup.c: Include grub/term.h.
        (grub_getkey): New function.
        (grub_term_get_current): Likewise.

        * util/misc.c (grub_stop): Renamed to ...
        (grub_exit): ... this.

        * kern/powerpc/ieee1275/init.c (abort): Renamed to ...
        (grub_exit): ... this.
        (grub_machine_init): Use grub_abort instead of abort.
        (grub_stop): Removed.

        * kern/powerpc/ieee1275/cmain.c (cmain): Use grub_abort instead of
        abort.

        * kern/i386/pc/startup.S (grub_exit): New function.
        (cold_reboot): New label.

        * kern/efi/init.c: Include grub/efi/disk.h and grub/env.h.
        (grub_efi_init): Call grub_efidisk_init.
        (grub_efi_fini): Call grub_efidisk_fini.

        * kern/efi/efi.c: Include grub/mm.h.
        (grub_efi_console_control_guid): Renamed to ...
        (console_control_guid): ... this.
        (grub_efi_loaded_image_guid): Renamed to ...
        (loaded_image_guid): ... this.
        (grub_efi_locate_handle): New function.
        (grub_efi_open_protocol): Likewise.
        (grub_efi_set_text_mode): Use CONSOLE_CONTROL_GUID instead of
        GRUB_EFI_CONSOLE_CONTROL_GUID.
        (grub_efi_exit): Removed.
        (grub_stop): Likewise.
        (grub_efi_get_loaded_image): Use grub_efi_open_protocol.
        (grub_exit): New function.
        (grub_print_device_path): Likewise.

        * kern/rescue.c (grub_rescue_cmd_exit): New function.
        (grub_enter_rescue_mode): Register "exit".

        * kern/misc.c (grub_real_dprintf): A cosmetic change.
        (grub_abort): New function.

        * kern/err.c (grub_fatal): Use grub_abort instead of grub_stop.

        * include/grub/sparc64/ieee1275/kernel.h (abort): Removed.

        * include/grub/powerpc/ieee1275/kernel.h (abort): Removed.

        * include/grub/efi/efi.h (grub_efi_exit): Removed.
        (grub_print_device_path): New prototype.
        (grub_efi_locate_handle): Likewise.
        (grub_efi_open_protocol): Likewise.

        * include/grub/efi/disk.h (grub_efidisk_fini): New file.
        * disk/efi/efidisk.c: Likewise.

        * DISTLIST: Added disk/efi/efidisk.c and include/grub/efi/disk.h.

        * include/grub/efi/console_control.h
        (GRUB_EFI_CONSOLE_CONTROL_GUID): Use an array for the last 8 bytes.

        * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): Specify the
        last 8 bytes as an array.
        (GRUB_EFI_DISK_IO_GUID): New macro.
        (GRUB_EFI_BLOCK_IO_GUID): Likewise.
        (GRUB_EFI_DEVICE_PATH_GUID): Likewise.
        (grub_efi_ipv6_address_t): Change the type to grub_uint16_t from
        grub_uint8_t.
        (struct grub_efi_guid): Use an array to specify the last 8 bytes.
        (struct grub_efi_device_path): Rename the member "sub_type" to
        "subtype".
        (GRUB_EFI_DEVICE_PATH_TYPE): New macro.
        (GRUB_EFI_DEVICE_PATH_SUBTYPE): Likewise.
        (GRUB_EFI_DEVICE_PATH_LENGTH): Likewise.
        (GRUB_EFI_END_DEVICE_PATH_TYPE): Likewise.
        (GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE): Likewise.
        (GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE): Likewise.
        (GRUB_EFI_END_ENTIRE_DEVICE_PATH): Likewise.
        (GRUB_EFI_NEXT_DEVICE_PATH): Likewise.
        (GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE): Likewise.
        (GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE): Likewise.
        (struct grub_efi_pci_device_path): New structure.
        (grub_efi_pci_device_path_t): New type.
        (GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_pccard_device_path): New structure.
        (grub_efi_pccard_device_path_t): New type.
        (GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_memory_mapped_device_path): New structure.
        (grub_efi_memory_mapped_device_path_t): New type.
        (GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_vendor_device_path): New structure.
        (grub_efi_vendor_device_path_t): New type.
        (GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_controller_device_path): New structure.
        (grub_efi_controller_device_path_t): New type.
        (GRUB_EFI_ACPI_DEVICE_PATH_TYPE): New macro.
        (GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE): Likewise.
        (struct grub_efi_acpi_device_path): New structure.
        (grub_efi_acpi_device_path_t): New type.
        (GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_expanded_acpi_device_path): New structure.
        (grub_efi_expanded_acpi_device_path_t): New type.
        (GRUB_EFI_EXPANDED_ACPI_HIDSTR): New macro.
        (GRUB_EFI_EXPANDED_ACPI_UIDSTR): Likewise.
        (GRUB_EFI_EXPANDED_ACPI_CIDSTR): Likewise.
        (GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE): Likewise.
        (GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE): Likewise.
        (struct grub_efi_atapi_device_path): New structure.
        (grub_efi_atapi_device_path_t): New type.
        (GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_fibre_channel_device_path): New structure.
        (grub_efi_fibre_channel_device_path_t): New type.
        (GRUB_EFI_1394_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_1394_device_path): New structure.
        (grub_efi_1394_device_path_t): New type.
        (GRUB_EFI_USB_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_usb_device_path): New structure.
        (grub_efi_usb_device_path_t): New type.
        (GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_usb_class_device_path): New structure.
        (grub_efi_usb_class_device_path_t): New type.
        (GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_i2o_device_path): New structure.
        (grub_efi_i2o_device_path_t): New type.
        (GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_mac_address_device_path): New structure.
        (grub_efi_mac_address_device_path_t): New type.
        (GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_ipv4_device_path): New structure.
        (grub_efi_ipv4_device_path_t): New type.
        (GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_ipv6_device_path): New structure.
        (grub_efi_ipv6_device_path_t): New type.
        (GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_infiniband_device_path): New structure.
        (grub_efi_infiniband_device_path_t): New type.
        (GRUB_EFI_UART_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_uart_device_path): New structure.
        (grub_efi_uart_device_path_t): New type.
        (GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_vendor_messaging_device_path): New structure.
        (grub_efi_vendor_messaging_device_path_t): New type.
        (GRUB_EFI_MEDIA_DEVICE_PATH_TYPE): New macro.
        (GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE): Likewise.
        (struct grub_efi_hard_drive_device_path): New structure.
        (grub_efi_hard_drive_device_path_t): New type.
        (GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_cdrom_device_path): New structure.
        (grub_efi_cdrom_device_path_t): New type.
        (GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_vendor_media_device_path): New structure.
        (grub_efi_vendor_media_device_path_t): New type.
        (GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_file_path_device_path): New structure.
        (grub_efi_file_path_device_path_t): New type.
        (GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE): New macro.
        (struct grub_efi_protocol_device_path): New structure.
        (grub_efi_protocol_device_path_t): New type.
        (GRUB_EFI_BIOS_DEVICE_PATH_TYPE): New macro.
        (GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE): Likewise.
        (struct grub_efi_bios_device_path): New structure.
        (grub_efi_bios_device_path_t): New type.
        (struct grub_efi_disk_io): New structure.
        (grub_efi_disk_io_t): New type.
        (struct grub_efi_block_io_media): New structure.
        (grub_efi_block_io_media_t): New type.
        (struct grub_efi_block_io): New structure.
        (grub_efi_block_io_t): New type.

        * include/grub/misc.h (grub_stop): Removed.
        (grub_exit): New prototype.
        (grub_abort): Likewise.

        * include/grub/disk.h (enum grub_disk_dev_id): Added
        GRUB_DISK_DEVICE_EFIDISK_ID.

        * conf/i386-efi.rmk (kernel_mod_SOURCES): Added
        disk/efi/efidisk.c.
        (kernel_syms.lst): Remove the target if an error occurs.
2006-04-23 13:37:36 +00:00
hollisb
ff04ec24e9 2006-04-20 Hollis Blanchard <hollis@penguinppc.org>
* Makefile.in (LDFLAGS): Add variable.
	(LD): Remove variable.
	* configure.ac: Add -m32 to LDFLAGS.
	* genmk.rb (PModule#rule): Use $(CC) instead of $(LD).
	* conf/powerpc-ieee1275.rmk (COMMON_LDFLAGS): Add variable.
	(grubof_LDFLAGS): Use $(COMMON_LDFLAGS).
	(_linux_mod_LDFLAGS, linux_mod_LDFLAGS, normal_mod_LDFLAGS,
	suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS): New
	variables.
	* conf/sparc64-ieee1275.rmk (COMMON_LDFLAGS): Add -nostdlib.
	* conf/i386-pc.rmk (COMMON_LDFLAGS): Add -nostdlib.
	* conf/i386-efi.rmk (COMMON_LDFLAGS): Add -nostdlib.
2006-04-21 00:47:11 +00:00
okuji
976a4ea036 2006-04-19 Yoshinori K. Okuji <okuji@enbug.org>
* DISTLIST: Added include/grub/efi/console.h,
        include/grub/efi/time.h, include/grub/i386/efi/kernel.h,
        kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.

        * include/grub/efi/console.h: New file.
        * include/grub/efi/time.h: Likewise.
        * include/grub/i386/efi/kernel.h: Likewise.
        * kern/efi/init.c: Likewise.
        * kern/efi/mm.c: Likewise.
        * term/efi/console.c: Likewise.

        * kern/i386/efi/init.c: Do not include grub/machine/time.h.
        (grub_stop): Removed.
        (grub_get_rtc): Likewise.
        (grub_machine_init): Simply call grub_efi_init.
        (grub_machine_fini): Call grub_efi_fini.

        * kern/efi/efi.c: Include grub/machine/time.h and grub/term.h.
        (grub_efi_output_string): Removed.
        (grub_efi_stall): New function.
        (grub_stop): Likewise.
        (grub_get_rtc): Likewise.

        * include/grub/efi/efi.h (grub_efi_output_string): Removed.
        (grub_efi_stall): New prototype.
        (grub_efi_allocate_pages): Likewise.
        (grub_efi_free_pages): Likewise.
        (grub_efi_get_memory_map): Likewise.
        (grub_efi_mm_init): Likewise.
        (grub_efi_mm_fini): Likewise.
        (grub_efi_init): Likewise.
        (grub_efi_fini): Likewise.

        * include/grub/i386/efi/time.h: Do not include
        grub/symbol.h. Include grub/efi/time.h.
        (GRUB_TICKS_PER_SECOND): Removed.
        (grub_get_rtc): Likewise.

        * include/grub/efi/api.h (struct grub_efi_memory_descriptor):
        Added padding. The EFI spec is buggy.
        (GRUB_EFI_BLACK): New macro.
        (GRUB_EFI_BLUE): Likewise.
        (GRUB_EFI_GREEN): Likewise.
        (GRUB_EFI_CYAN): Likewise.
        (GRUB_EFI_RED): Likewise.
        (GRUB_EFI_MAGENTA): Likewise.
        (GRUB_EFI_BROWN): Likewise.
        (GRUB_EFI_LIGHTGRAY): Likewise.
        (GRUB_EFI_BRIGHT): Likewise.
        (GRUB_EFI_DARKGRAY): Likewise.
        (GRUB_EFI_LIGHTBLUE): Likewise.
        (GRUB_EFI_LIGHTGREEN): Likewise.
        (GRUB_EFI_LIGHTCYAN): Likewise.
        (GRUB_EFI_LIGHTRED): Likewise.
        (GRUB_EFI_LIGHTMAGENTA): Likewise.
        (GRUB_EFI_YELLOW): Likewise.
        (GRUB_EFI_WHITE): Likewise.
        (GRUB_EFI_BACKGROUND_BLACK): Likewise.
        (GRUB_EFI_BACKGROUND_BLUE): Likewise.
        (GRUB_EFI_BACKGROUND_GREEN): Likewise.
        (GRUB_EFI_BACKGROUND_CYAN): Likewise.
        (GRUB_EFI_BACKGROUND_RED): Likewise.
        (GRUB_EFI_BACKGROUND_MAGENTA): Likewise.
        (GRUB_EFI_BACKGROUND_BROWN): Likewise.
        (GRUB_EFI_BACKGROUND_LIGHTGRAY): Likewise.
        (GRUB_EFI_TEXT_ATTR): Likewise.

        * conf/i386-efi.rmk (kernel_mod_SOURCES): Added kern/efi/efi.c,
        kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
        (kernel_mod_HEADERS): Added efi/time.h.
2006-04-19 08:59:44 +00:00
okuji
837091258d 2006-04-18 Yoshinori K. Okuji <okuji@enbug.org>
* DISTLIST: Added conf/i386-efi.mk, conf/i386-efi.rmk,
        include/grub/efi/api.h, include/grub/efi/console_control.h,
        include/grub/efi/efi.h, include/grub/efi/pe32.h,
        include/grub/i386/efi/time.h, kern/efi/efi.c,
        kern/i386/efi/init.c, kern/i386/efi/startup.S,
        and util/i386/efi/grub-mkimage.c.

        * Makefile.in (RMKFILES): Added i386-efi.rmk.

        * genmk.rb (PModule#rule): Do not export symbols if
        #{prefix}_EXPORTS is set to "no".

        * conf/i386-efi.mk: New file.
        * conf/i386-efi.rmk: Likewise.
        * include/grub/efi/api.h: Likewise.
        * include/grub/efi/console_control.h: Likewise.
        * include/grub/efi/efi.h: Likewise.
        * include/grub/efi/pe32.h: Likewise.
        * include/grub/i386/efi/time.h: Likewise.
        * kern/efi/efi.c: Likewise.
        * kern/i386/efi/init.c: Likewise.
        * kern/i386/efi/startup.S: Likewise.
        * util/i386/efi/grub-mkimage.c: Likewise.
2006-04-18 06:18:15 +00:00
chaac
b4b9367408 2006-03-31 Vesa Jaaskelainen <chaac@nic.fi>
* DISTLIST: Added include/grub/i386/pc/vbeblit.h,
        include/grub/i386/pc/vbefill.h, video/i386/pc/vbeblit.c,
        video/i386/pc/vbefill.c.

        * conf/i386-pc.rmk (vbe_mod_SOURCES): Added video/i386/pc/vbeblit.c,
        video/i386/pc/vbefill.c.

        * include/grub/video.h (grub_video_blit_format): New enum.
        (grub_video_mode_info): Added new member blit_format.
        (grub_video_get_blit_format): New function prototype.

        * include/grub/i386/pc/vbe.h (grub_video_vbe_get_video_ptr): New
        function prototype.
        (grub_video_vbe_map_rgb): Likewise.
        (grub_video_vbe_unmap_color): Likewise.

        * include/grub/i386/pc/vbeblit.h: New file.

        * include/grub/i386/pc/vbefill.h: New file.

        * video/video.c (grub_video_get_blit_format): New function.
        (grub_video_vbe_get_video_ptr): Re-declared as non-static.
        (grub_video_vbe_map_rgb): Likewise.
        (grub_video_vbe_unmap_color): Likewise.

        * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Changed to use more
        optimized fills.
        (grub_video_vbe_blit_render_target): Changed to use more optimized
        blits.
        (grub_video_vbe_setup): Added detection for optimized settings.
        (grub_video_vbe_create_render_target): Likewise.

        * video/i386/pc/vbeblit.c: New file.

        * video/i386/pc/vbefill.c: New file.
2006-03-31 14:26:34 +00:00
chaac
bd0d7896cf 2006-03-14 Vesa Jaaskelainen <chaac@nic.fi>
* DISTLIST: Added include/grub/video.h, term/gfxterm.c,
        video/video.c, commands/videotest.c.  Removed term/i386/pc/vesafb.c.

        * conf/i386-pc.rmk (pkgdata_MODULES): Added video.mod,
        gfxterm.mod, videotest.mod.  Removed vga.mod, vesafb.mod.
        (video_mod_SOURCES): Added.
        (video_mod_CFLAGS): Likewise.
        (video_mod_LDFLAGS): Likewise.
        (gfxterm_mod_SOURCES): Likewise.
        (gfxterm_mod_CFLAGS): Likewise.
        (gfxterm_mod_LDFLAGS): Likewise.
        (videotest_mod_SOURCES): Likewise.
        (videotest_mod_CFLAGS): Likewise.
        (videotest_mod_LDFLAGS): Likewise.
        (vesafb_mod_SOURCES): Removed.
        (vesafb_mod_CFLAGS): Likewise.
        (vesafb_mod_LDFLAGS): Likewise.
        (vga_mod_SOURCES): Likewise.
        (vga_mod_CFLAGS): Likewise.
        (vga_mod_LDFLAGS): Likewise.

        * commands/videotest.c: New file.

        * font/manager.c (fill_with_default_glyph): Modified to use
        grub_font_glyph.
        (grub_font_get_glyph): Likewise.
        (fontmanager): Renamed from this...
        (font_manager): ... to this.

        * include/grub/font.h (grub_font_glyph): Added new structure.
        (grub_font_get_glyph): Modified to use grub_font_glyph.

        * include/grub/misc.h (grub_abs): Added as inline function.

        * include/grub/video.h: New file.

        * include/grub/i386/pc/vbe.h (GRUB_VBE_STATUS_OK): New macro.
        (GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL): Likewise.
        (GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR): Likewise.
        (grub_vbe_get_controller_info): Renamed from this...
        (grub_vbe_bios_get_controller_info): ... to this.
        (grub_vbe_get_mode_info): Renamed from this...
        (grub_vbe_bios_get_mode_info): ... to this.
        (grub_vbe_set_mode): Renamed from this...
        (grub_vbe_bios_set_mode): ... to this.
        (grub_vbe_get_mode): Renamed from this...
        (grub_vbe_bios_get_mode): ... to this.
        (grub_vbe_set_memory_window): Renamed from this...
        (grub_vbe_bios_set_memory_window): ... to this.
        (grub_vbe_get_memory_window): Renamed from this...
        (grub_vbe_bios_get_memory_window): ... to this.
        (grub_vbe_set_scanline_length): Renamed from this...
        (grub_vbe_set_scanline_length): ... to this.
        (grub_vbe_get_scanline_length): Renamed from this...
        (grub_vbe_bios_get_scanline_length): ... to this.
        (grub_vbe_set_display_start): Renamed from this...
        (grub_vbe_bios_set_display_start): ... to this.
        (grub_vbe_get_display_start): Renamed from this...
        (grub_vbe_bios_get_display_start): ... to this.
        (grub_vbe_set_palette_data): Renamed from this...
        (grub_vbe_bios_set_palette_data): ... to this.
        (grub_vbe_set_pixel_rgb): Removed.
        (grub_vbe_set_pixel_index): Likewise.

        * kern/i386/pc/startup.S (grub_vbe_get_controller_info): Renamed
        from this...
        (grub_vbe_bios_get_controller_info): ... to this.
        (grub_vbe_get_mode_info): Renamed from this...
        (grub_vbe_bios_get_mode_info): ... to this.
        (grub_vbe_set_mode): Renamed from this...
        (grub_vbe_bios_set_mode): ... to this.
        (grub_vbe_get_mode): Renamed from this...
        (grub_vbe_bios_get_mode): ... to this.
        (grub_vbe_set_memory_window): Renamed from this...
        (grub_vbe_bios_set_memory_window): ... to this.
        (grub_vbe_get_memory_window): Renamed from this...
        (grub_vbe_bios_get_memory_window): ... to this.
        (grub_vbe_set_scanline_length): Renamed from this...
        (grub_vbe_set_scanline_length): ... to this.
        (grub_vbe_get_scanline_length): Renamed from this...
        (grub_vbe_bios_get_scanline_length): ... to this.
        (grub_vbe_set_display_start): Renamed from this...
        (grub_vbe_bios_set_display_start): ... to this.
        (grub_vbe_get_display_start): Renamed from this...
        (grub_vbe_bios_get_display_start): ... to this.
        (grub_vbe_set_palette_data): Renamed from this...
        (grub_vbe_bios_set_palette_data): ... to this.
        (grub_vbe_bios_get_controller_info): Fixed problem with registers
        getting corrupted after calling it.  Added more pushes and pops.
        (grub_vbe_bios_set_mode): Likewise.
        (grub_vbe_bios_get_mode): Likewise.
        (grub_vbe_bios_get_memory_window): Likewise.
        (grub_vbe_bios_set_scanline_length): Likewise.
        (grub_vbe_bios_get_scanline_length): Likewise.
        (grub_vbe_bios_get_display_start): Likewise.
        (grub_vbe_bios_set_palette_data): Likewise.

        * normal/cmdline.c (cl_set_pos): Refresh the screen.
        (cl_insert): Likewise.
        (cl_delete): Likewise.

        * term/gfxterm.c: New file.

        * term/i386/pc/vesafb.c: Removed file.

        * video/video.c: New file.

        * video/i386/pc/vbe.c (real2pm): Added new function.
        (grub_video_vbe_draw_pixel): Likewise.
        (grub_video_vbe_get_video_ptr): Likewise.
        (grub_video_vbe_get_pixel): Likewise
        (grub_video_vbe_init): Likewise.
        (grub_video_vbe_fini): Likewise.
        (grub_video_vbe_setup): Likewise.
        (grub_video_vbe_get_info): Likewise.
        (grub_video_vbe_set_palette): Likewise.
        (grub_video_vbe_get_palette): Likewise.
        (grub_video_vbe_set_viewport): Likewise.
        (grub_video_vbe_get_viewport): Likewise.
        (grub_video_vbe_map_color): Likewise.
        (grub_video_vbe_map_rgb): Likewise.
        (grub_video_vbe_map_rgba): Likewise.
        (grub_video_vbe_unmap_color): Likewise.
        (grub_video_vbe_fill_rect): Likewise.
        (grub_video_vbe_blit_glyph): Likewise.
        (grub_video_vbe_blit_bitmap): Likewise.
        (grub_video_vbe_blit_render_target): Likewise.
        (grub_video_vbe_scroll): Likewise.
        (grub_video_vbe_swap_buffers): Likewise.
        (grub_video_vbe_create_render_target): Likewise.
        (grub_video_vbe_delete_render_target): Likewise.
        (grub_video_vbe_set_active_render_target): Likewise.
        (grub_vbe_set_pixel_rgb): Remove function.
        (grub_vbe_set_pixel_index): Likewise.
        (index_color_mode): Remove static variable.
        (active_mode): Likewise.
        (framebuffer): Likewise.
        (bytes_per_scan_line): Likewise.
        (grub_video_vbe_adapter): Added new static variable.
        (framebuffer): Likewise.
        (render_target): Likewise.
        (initial_mode): Likewise.
        (mode_in_use): Likewise.
        (mode_list): Likewise.
2006-03-14 19:08:34 +00:00
marco_g
502141992c 2005-12-25 Marco Gerards <marco@gnu.org>
Add support for Apple HFS+ filesystems.

	* fs/hfsplus.c: New file.

	* DISTLIST: Added `fs/hfsplus.c'.

	* conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'.
	(hfsplus_mod_SOURCES): New variable.
	(hfsplus_mod_CFLAGS): Likewise.
	(hfsplus_mod_LDFLAGS): Likewise.
	* conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'.
	(grub_setup_SOURCES): Likewise.
	(grub_mkdevicemap_SOURCES): Likewise.
	(grub_emu_SOURCES): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.

	* fs/fshelp.c (grub_fshelp_log2blksize): New function.

	* include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.
2005-12-25 15:59:50 +00:00
okuji
befaed6ce7 2005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
* DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c,
        commands/i386/pc/play.c, conf/common.mk, conf/common.rmk,
        include/grub/parser.h, include/grub/script.h, kern/parser.c,
        kern/sparc64/cache.S, normal/execute.c, normal/function.c,
        normal/lexer.c, normal/parser.y, normal/script.c, and
        partmap/gpt.c.
        Removed kern/sparc64/cache.c.

        * conf/common.rmk (DISTCLEANFILES): Added grub_script.tab.c,
        grub_script.tab.h, grub_modules_init.lst, grub_modules_init.h,
        grub_emu_init.c.

        * configure.ac (AC_INIT): Bumped to 1.92.
2005-12-25 15:22:55 +00:00
marco_g
b04216abba 2005-12-03 Marco Gerards <mgerards@xs4all.nl>
* conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"'
	and `cd' to make sure the filename is not prefixed with a
	directory name.
	(pkgdata_MODULES): Add `gpt.mod'.
	(gpt_mod_SOURCES): New variable.
	(gpt_mod_CFLAGS): Likewise.
	(gpt_mod_LDFLAGS): Likewise.

	* conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/gpt.c'.

	* include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_GPT_DISK):
	New macro.

	* partmap/gpt.c: New file.

	* partmap/pc.c (pc_partition_map_iterate): Don't continue when a
	GPT partition map is detected.
2005-12-03 17:54:55 +00:00
subdino
41730ed990 2005-12-03 Vincent Pelletier <subdino2004@yahoo.fr>
* commands/i386/pc/play.c: New file.
        * conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod.
        (play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New
        macros.
2005-12-03 16:18:27 +00:00
hollisb
44b83271e6 2005-11-22 Mike Small <smallm@panix.com>
* util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
	number regex so multidigit numbers are recognized correctly.

	* loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
	debugging message before attempting to claim memory.
	(grub_rescue_cmd_initrd): Add a claim debugging message and try
	multiple addresses in case of failure.
2005-11-23 04:25:16 +00:00
hollisb
79bbb63f6b 2005-11-22 Hollis Blanchard <hollis@penguinppc.org>
* conf/powerpc-ieee1275.rmk: Include conf/common.mk.
	(pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
	minux.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
	hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
	help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
	sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
	configfile.mod, search.mod, gzio.mod and test.mod.
	(symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
	(grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
	(fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
	(fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
	(ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
	(ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
	(minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
	(hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
	(jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
	(iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
	(xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
	(affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
	(sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
	(hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
	(boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
	(terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
	(ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
	(cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
	(help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
	(font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
	(terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
	(amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
	(apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed.

	* conf/common.rmk (grub_modules_init.lst): Use `find' instead of
	`grep --include'.
	(pkgdata_MODULES): Add test.mod.
2005-11-23 02:23:08 +00:00
marco_g
233b16284c 2005-11-18 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
* genmk.rb: Fixed list rules moved to Makefile.in.  Recognise
	appending to variables with "+=".
	(PModule): Use full pathname to generate *.lst filenames.

	* Makefile.in: Fixed list rules moved from genmk.rb.
	(.DELETE_ON_ERROR): New special target.
	(RMKFILES): Add common.rmk and sparc64-ieee1275.rmk.

	* conf/i386-pc.rmk: Include conf/common.mk.
	(pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
	minux.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
	hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
	help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
	sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
	configfile.mod, search.mod, gzio.mod and test.mod.
	(symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
	(grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
	(fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
	(fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
	(ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
	(ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
	(minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
	(hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
	(jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
	(iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
	(xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
	(affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
	(sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
	(hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
	(boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
	(terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
	(ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
	(cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
	(help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
	(font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
	(terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
	(amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
	(apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from
	here...
	* conf/common.rmk: ... to here.  New file.

	* conf/common.mk: New file.
2005-11-18 14:56:55 +00:00
okuji
16f820c8c5 2005-11-18 Yoshinori K. Okuji <okuji@enbug.org>
* conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ...
        (grub_script.tab.c): ... here.

        * conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ...
        (grub_script.tab.c): ... here.

        * conf/i386-pc.rmk (grub_script.tab.h): Unified to ...
        (grub_script.tab.c): ... here.

        * normal/command.c (grub_command_find): Fixed a memory leak of
        MODULE_NAME. Reported by Mike Small <smallm@panix.com>.
2005-11-18 10:51:00 +00:00
marco_g
7f67dc13e5 2005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
Add support for Linux/ADFS partition tables.

	* partmap/acorn.c: New file.

	* include/grub/acorn_filecore.h: Likewise.

	* DISTLIST: Added `partmap/acorn.c' and
	`include/grub/acorn_filecore.h'.

	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
	`partmap/acorn.c'.
	(pkgdata_MODULES): Add `acorn.mod'.
	(acorn_mod_SOURCES): New variable.
	(acorn_mod_CFLAGS): Likewise.

	* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
	`partmap/acorn.c'.
	(pkgdata_MODULES): Add `acorn.mod'.
	(acorn_mod_SOURCES): New variable.
	(acorn_mod_CFLAGS): Likewise.

	* conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'.
	(pkgdata_MODULES): Add `acorn.mod'.
	(acorn_mod_SOURCES): New variable.
	(acorn_mod_CFLAGS): Likewise.
	(acorn_mod_LDFLAGS): Likewise.

	* include/types.h (grub_disk_addr_t): New typedef.
2005-11-13 19:45:12 +00:00
marco_g
6d099807fa 2005-11-13 Marco Gerards <mgerards@xs4all.nl>
* geninit.sh: New file.

	* geninitheader.sh: Likewise.

	* commands/boot.c (grub_boot_init, grub_boot_fini): Removed.
	* commands/cat.c (grub_cat_init, grub_cat_fini): Likewise.
	* commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise.
	* commands/configfile.c (grub_configfile_init)
	(grub_configfile_fini): Likewise.
	* commands/default.c (grub_default_init, grub_default_fini):
	Likewise.
	* commands/help.c (grub_help_init, grub_help_fini): Likewise.
	* commands/ls.c (grub_ls_init, grub_ls_fini): Likewise.
	* commands/search.c (grub_search_init, grub_search_fini): Likewise.
	* commands/terminal.c (grub_terminal_init, grub_terminal_fini):
	Likewise.
	* commands/test.c (grub_test_init, grub_test_fini): Likewise.
	* commands/timeout.c (grub_timeout_init, grub_timeout_fini):
	Likewise.
	* commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise.
	* commands/iee1275/halt.c (grub_halt_init, grub_halt_fini):
	Likewise.
	* commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini):
	Likewise.
	* commands/iee1275/reboot.c (grub_reboot_init, grub_reboot_fini):
	Likewise.
	* disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise.
	* fs/affs.c (grub_affs_init, grub_affs_fini): Likewise.
	* fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise.
	* fs/fat.c (grub_fat_init, grub_fat_fini): Likewise.
	* fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise.
	* fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise.
	* fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise.
	* fs/minix.c (grub_minix_init, grub_minix_fini): Likewise.
	* fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise.
	* fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise.
	* fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise.
	* normal/main.c (grub_normal_init, grub_normal_fini): Likewise.
	* partmap/amiga.c (grub_amiga_partition_map_init)
	(grub_amiga_partition_map_fini): Likewise.
	* partmap/apple.c (grub_apple_partition_map_init)
	(grub_apple_partition_map_fini): Likewise.
	* partmap/pc.c (grub_pc_partition_map_init)
	(grub_pc_partition_map_fini): Likewise.
	* partmap/sun.c (grub_sun_partition_map_init,
	grub_sun_partition_map_fini): Likewise.
	* term/terminfo.c (grub_terminal_init, grub_terminal_fini):
	Likewise.

	* util/grub-emu.c: Include <grub_modules_init.h>.
	(main): Don't initialize and de-initialize any modules directly,
	use `grub_init_all' and `grub_fini_all' instead.

	* term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to
	`grub_vesafb_mod_init'.
	(grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'.  Updated
	all users.
	* term/i386/pc/vga.c (grub_vga_init): Renamed to
	`grub_vga_mod_init'.  Updated all users.
	(grub_vga_fini): Renamed to `grub_vga_mod_fini'.

	* conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'.
	(grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New
	rules.

	* include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
	Generate a function to initialize the module in utilities.
	Updated all callers.
	(GRUB_MOD_FINI): Add argument `name'.  Generate a function to
	initialize the module in utilities.  Updated all callers.
2005-11-13 15:47:09 +00:00
subdino
a8fcf2065b 2005-11-07 Vincent Pelletier <subdino2004@yahoo.fr>
* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
        `commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
        `normal/execute.c', `normal/lexer.c', `io/gzio.c',
        `kern/parser.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): New variable.
        (test_mod_CFLAGS): Likewise.
        (test_mod_LDFLAGS): Likewise.
        (pkgdata_MODULES): Add `test.mod'.
        (grub_script.tab.c): New rule.
        (grub_script.tab.h): Likewise.
2005-11-07 22:28:57 +00:00
marco_g
b6b327459c 2005-11-07 Marco Gerards <mgerards@xs4all.nl>
* conf/powerpc-ieee1275.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): New variable.
	(test_mod_CFLAGS): Likewise.
	(pkgdata_MODULES): Add `test.mod'.
	(grub_script.tab.c): New rule.
	(grub_script.tab.h): Likewise.
2005-11-07 20:27:46 +00:00
marco_g
daac212ae3 2005-11-06 Marco Gerards <mgerards@xs4all.nl>
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'.
2005-11-06 22:19:59 +00:00
hollisb
4b60267db7 2005-11-02 Hollis Blanchard <hollis@penguinppc.org>
* Makefile.in (install-local): Use $(DATA).
	(uninstall): Likewise.
	* conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage...
	(sbin_UTILITIES): ... to here.
	(sbin_SCRIPTS): New variable.
	(grub_install_SOURCES): New variable.
	* util/powerpc/ieee1275/grub-install.in: New file.
	* util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove
	variable.
	(add_segments): Call `grub_util_get_path'.
2005-11-03 05:05:05 +00:00
marco_g
04ccf3ec6f 2005-10-24 Marco Gerards <mgerards@xs4all.nl>
* include/grub/parser.h: New file.

	* kern/parser.c: Likewise.

	* conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'.
	(grub_setup_SOURCES): Likewise.
	(grub_probefs_SOURCES): Likewise.
	(grub_emu_SOURCES): Likewise.
	(kernel_img_HEADERS): Add `parser.h'.

	* conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
	(grub_emu_SOURCES): Add `kern/parser.c'.
	(grubof_SOURCES): Likewise.

	* conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
	(grubof_SOURCES): Add `kern/parser.c'.

	* include/grub/misc.h (grub_split_cmdline): Removed prototype.

	* kern/misc.c (grub_split_cmdline): Removed function.

	* kern/rescue.c: Include <grub/parser.h>.
	(grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead
	of `grub_split_cmdline'.

	* normal/command.c: Include <grub/parser.h>.
	(grub_command_execute):  Use `grub_parser_split_cmdline' instead
	of `grub_split_cmdline'.

	* normal/completion.c: Include <grub/parser.h>.
	(cmdline_state): New variable.
	(iterate_dir): End the filename with a quote depending on the
	command line state.
	(get_state): new function.
	(grub_normal_do_completion): Use `grub_parser_split_cmdline' to
	split the arguments and determine the current argument.  When the
	argument string is not quoted, escape all spaces.
2005-10-24 10:23:46 +00:00
subdino
6d8f4b0e60 2005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
* normal/sparc64/setjmp.S: New file.
2005-10-23 21:38:12 +00:00
subdino
15cf03edaf 2005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
* include/grub/sparc64/libgcc.h: New file.
        * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
        (normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
        normal/sparc64/setjmp.c.
2005-10-23 21:01:19 +00:00
subdino
03e8661a56 2005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
* kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
        * kern/sparc64/cache.S: New file.
        * kern/sparc64/cache.c: Removed.
        * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
        (COMMON_CFLAGS): Add -mno-app-regs.  Remove -mcpu=v9 and
        -mtune=ultrasparc.
        (COMMON_LDFLAGS): Add -melf64_sparc.
        (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
        (grubof_SOURCES): Use cache.S instead of cache.c.
        (grubof_LDFLAGS): Add -mno-app-regs.  Replace "-Xlinker
        --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
        (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
        commented though.
        (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
        (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
        (linux_mod_CFLAGS): Commented out.
        (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
        out because module isn't built.
        (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
        (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
        (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
        (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
        (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
        (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
        (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
        (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
        (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
        (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
        (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
        (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
        (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
        (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.
2005-10-23 19:28:28 +00:00
marco_g
0229e5c0ce Regenerated conf/powerpc-ieee1275.mk 2005-10-16 11:44:26 +00:00
marco_g
6fa1251a91 2005-10-15 Marco Gerards <mgerards@xs4all.nl>
* fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
	directory can not be read.
2005-10-15 21:33:38 +00:00
marco_g
9a90987706 2005-10-09 Marco Gerards <mgerards@xs4all.nl>
Add support for the SFS filesystem.

	* fs/sfs.c: New file.

	* DISTLIST: Added `fs/sfs.c'.

	* conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'.
	(grub_probefs_SOURCES): Likewise.
	(grub_emu_SOURCES): Likewise.
	(pkgdata_MODULES): Add `sfs.mod'.
	(sfs_mod_SOURCES): New variable.
	(sfs_mod_CFLAGS): Likewise.
	(sfs_mod_LDFLAGS): Likewise.

	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'.
	(pkgdata_MODULES): Add `sfs.mod'.
	(sfs_mod_SOURCES): New variable.
	(sfs_mod_CFLAGS): Likewise.

	* util/grub-emu.c (main): Call `grub_sfs_init' and
	`grub_sfs_fini'.

	* include/grub/fs.h (grub_sfs_init): New prototype.
	(grub_sfs_fini): Likewise.
2005-10-09 13:03:53 +00:00
marco_g
5a2e94fb1c Fix typo in last commit. 2005-10-08 11:24:48 +00:00
marco_g
57bdbde34e 2005-10-07 Marco Gerards <mgerards@xs4all.nl>
Add support for the AFFS filesystem.

	* fs/affs.c: New file.

	* DISTLIST: Added `fs/affs.c'.

	* conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'.
	(grub_probefs_SOURCES): Likewise.
	(grub_emu_SOURCES): Likewise.
	(pkgdata_MODULES): Add `affs.mod'.
	(affs_mod_SOURCES): New variable.
	(affs_mod_CFLAGS): Likewise.
	(affs_mod_LDFLAGS): Likewise.

	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'.
	(pkgdata_MODULES): Add `affs.mod'.
	(affs_mod_SOURCES): New variable.
	(affs_mod_CFLAGS): Likewise.

	* util/grub-emu.c (main): Call `grub_affs_init' and
	`grub_affs_fini'.

	* include/grub/fs.h (grub_affs_init): New prototype.
	(grub_affs_fini): Likewise.
2005-10-07 19:25:46 +00:00
marco_g
59b8208ace 2005-10-01 Marco Gerards <mgerards@xs4all.nl>
* configure.ac: Accept `x86_64' as host_cpu.  In that case add
	`-m32' to CFLAGS.

	* genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when
	linking.

	* conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'.
	(COMMON_LDFLAGS): New variable.
	(kernel_img_LDFLAGS): Include `COMMON_FLAGS'.
	(_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS)
	(ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS)
	(hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS)
	(xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS)
	(normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS)
	(terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS)
	(cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS)
	(halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS)
	(terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS)
	(multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
	(pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
	(default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS)
	(vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS)
	(vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New
	variables.
	(normal_mod_ASFLAGS): Add `-m32'.

	* include/grub/types.h (grub_host_addr_t, grub_host_off_t)
	(grub_host_size_t, grub_host_ssize_t): New types.
	(grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type
	dependant of `GRUB_CPU_SIZEOF_VOID_P' instead on
	`GRUB_HOST_SIZEOF_VOID_P'.

	* include/grub/kernel.h (struct grub_module_header): Type of
	member offset changed to `grub_host_off_t'.  Type of member size
	changed to `grub_host_size_t'.
	(struct grub_module_info): Type of member offset changed to
	`grub_host_off_t'.  Type of member size changed to
	`grub_host_size_t'.
2005-10-01 19:49:55 +00:00
marco_g
b2499b29cd 2005-09-28 Marco Gerards <metgerards@student.han.nl>
Adds support for the XFS filesystem.  Btrees are not supported
	yet.

	* fs/xfs.c: New file.

	* DISTLIST: Added `fs/xfs.c'.

	* conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'.
	(grub_probefs_SOURCES): Likewise.
	(grub_emu_SOURCES): Likewise.
	(pkgdata_MODULES): Add `xfs.mod'.
	(xfs_mod_SOURCES): New variable.
	(xfs_mod_CFLAGS): Likewise.

	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'.
	(pkgdata_MODULES): Add `xfs.mod'.
	(xfs_mod_SOURCES): New variable.
	(xfs_mod_CFLAGS): Likewise.

	* util/grub-emu.c (main): Call `grub_xfs_init' and
	`grub_xfs_fini'.

	* include/grub/fs.h (grub_xfs_init): New prototype.
	(grub_xfs_fini): Likewise.
2005-09-28 10:07:22 +00:00
okuji
47d2d65e33 2005-09-03 Yoshinori K. Okuji <okuji@enbug.org>
* normal/completion.c (complete_arguments): Add the qualifier
        const into OPTIONS.

        From Omniflux <omniflux+lists@omniflux.com>:
        * include/grub/terminfo.h: New file.
        * include/grub/tparm.h: Likewise.
        * include/grub/i386/pc/serial.h: Likewise.
        * term/terminfo.c: Likewise.
        * term/tparm.c: Likewise.
        * term/i386/pc/serial.c: Likewise.
        * conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
        serial.mod.
        (terminfo_mod_SOURCES): New variable.
        (terminfo_mod_CFLAGS): Likewise.
        (serial_mod_SOURCES): Likewise.
        (serial_mod_CFLAGS): Likewise.
2005-09-03 16:54:27 +00:00
okuji
48b671ff70 2005-08-31 Yoshinori K. Okuji <okuji@enbug.org>
* DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
        boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
        and kern/powerpc/ieee1275/cmain.c, respectively.

        * boot/powerpc/ieee1275/crt0.S: Moved to ...
        * kern/powerpc/ieee1275/crt0.S: ... here.

        * boot/powerpc/ieee1275/cmain.c: Moved to ...
        * kern/powerpc/ieee1275/cmain.c: ... here.

        * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use
        kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c
        instead of boot/powerpc/ieee1275/crt0.S and
        boot/powerpc/ieee1275/cmain.c, respectively.

        * boot/i386/pc/boot.S (lba_mode): Do not store the total number of
        sectors. It was not used anyway.
2005-08-31 16:51:15 +00:00
marco_g
0b5abe0251 2005-08-27 Marco Gerards <metgerards@student.han.nl>
* conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
	`gzio.mod' instead of `io.mod').
2005-08-27 18:51:15 +00:00
okuji
d9864ee11a 2005-08-22 Yoshinori K. Okuji <okuji@enbug.org>
* gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
        (DISTDIRS): Added io and video.
        Rewrite the search routine to make an output consistently.

        * DISTLIST: Added conf/sparc64-ieee1275.mk,
        conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
        include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
        io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
        kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
        util/powerpc/ieee1275/misc.c.

        * include/grub/gzio.h: New file.
        * io/gzio.c: Likewise.

        * kern/file.c (grub_file_close): Call grub_device_close only if
        FILE->DEVICE is not NULL.

        * include/grub/mm.h [!NULL] (NULL): New macro.

        * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.

        * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
        (pkgdata_MODULES): Added gzio.mod.
        (gzio_mod_SOURCES): New variable.
        (gzio_mod_CFLAGS): Likewise.

        * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
        (pkgdata_MODULES): Added gzio.mod.
        (gzio_mod_SOURCES): New variable.
        (gzio_mod_CFLAGS): Likewise.

        * commands/cat.c: Include grub/gzio.h.
        (grub_cmd_cat): Use grub_gzfile_open instead of
        grub_file_open.

        * commands/cmp.c: Include grub/gzio.h.
        (grub_cmd_cmp): Use grub_gzfile_open instead of
        grub_file_open.

        * loader/i386/pc/multiboot.c: Include grub/gzio.h.
        (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
        grub_file_open.
        (grub_rescue_cmd_module): Likewise.
2005-08-22 17:28:59 +00:00
subdino
fa46f4b5b6 2005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
* conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
        kern/sparc64/ieee1275/init.c because it contains _start.
        * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
2005-08-21 19:33:14 +00:00
subdino
e9211b5d32 2005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
* configure.ac: Add support for sparc64 host with ieee1275
        firmware.
        * configure: Generated from configure.ac.
        * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
        instead of int.
        (grub_ofdisk_read): Likewise.
        (grub_ofdisk_open): Use %p to print pointer values, and cast the
        pointers as (void *) to remove a warning.
        (grub_ofdisk_close): Likewise.
        (grub_ofdisk_read): Likewise.
        * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
        returns, so make it return void to remove a warning.
        * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
        Corresponding prototype change.
        * kern/mm.c (grub_mm_init_region): Use %p to print pointer
        values, and cast the pointers as (void *) to remove a warning.
        (grub_mm_dump): Likewise.
        * conf/sparc64-ieee1275.mk: New file.
        * conf/sparc64-ieee1275.rmk: 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.
        * kern/sparc64/cache.c: Likewise.
        * kern/sparc64/dl.c: Likewise.
        * kern/sparc64/ieee1275/init.c: Likewise.
        * kern/sparc64/ieee1275/openfw.c: Likewise.
2005-08-21 18:42:55 +00:00
okuji
6a85ce7953 2005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
* partmap/pc.c (pc_partition_map_iterate): Include the value of an
        invalid magic in thre error.

        * commands/search.c: New file.

        * util/grub-emu.c (main): Call grub_search_init and
        grub_search_fini.

        * kern/rescue.c (grub_rescue_print_disks): Removed.
        (grub_rescue_print_devices): New function.
        (grub_rescue_cmd_ls): Use grub_device_iterate with
        grub_rescue_print_devices instead of grub_disk_dev_iterate with
        grub_rescue_print_disks.

        * kern/partition.c (grub_partition_iterate): Return the result of
        PARTMAP->ITERATE instead of GRUB_ERRNO.

        * kern/device.c: Include grub/partition.h.
        (grub_device_iterate): New function.

        * include/grub/partition.h (grub_partition_iterate): Return int
        instead of grub_err_t.

        * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
        prototype.
        [GRUB_UTIL] (grub_search_fini): Likewise.

        * include/grub/device.h (grub_device_iterate): New prototype.

        * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
        commands/search.c.
        (pkgdata_MODULES): Added search.mod.
        (search_mod_SOURCES): New variable.
        (search_mod_CFLAGS): Likewise.

        * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
        (pkgdata_MODULES): Added search.mod.
        (search_mod_SOURCES): New variable.
        (search_mod_CFLAGS): Likewise.

        * commands/ls.c (grub_ls_list_disks): Renamed to ...
        (grub_ls_list_devices): ... this, and use grub_device_iterate.
        All callers changed.

        * DISTLIST: Added commands/search.c.
2005-08-20 07:49:02 +00:00
okuji
1f0a95e481 2005-08-19 Yoshinori K. Okuji <okuji@enbug.org>
* DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
        commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
        commands/i386/pc/vbetest.c.

        * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
        call grub_vbe_get_controller_info again, because the returned
        information is volatile.
        (grub_vbe_set_video_mode): Mostly rewritten.
        (grub_vbe_get_video_mode): Use grub_vbe_probe and use
        grub_vbe_status_t correctly.
        (grub_vbe_get_video_mode_info): Likewise.
        (grub_vbe_set_pixel_rgb): Use a switch statement rather than
        several if statements.

        * commands/i386/pc/vbe_list_modes.c: Renamed to ...
        * commands/i386/pc/vbeinfo.c: ... this.

        * commands/i386/pc/vbe_test.c: Renamed to ...
        * commands/i386/pc/vbetest.c: ... this.

        * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
        ...
        (grub_cmd_vbeinfo): ... this. Save video modes before
        iterating. Skip a video mode, if it is not available, not enough
        information is given or it is monochrome. Show the memory
        model. Leave the interpretation of MODEVAR to grub_strtoul
        completely.
        (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
        (GRUB_MOD_FINI): Likewise.

        * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
        (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
        grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
        duplicated grub_env_get. Leave the interpretation of MODEVAR to
        grub_strtoul completely.
        (real2pm): Removed.
        (GRUB_MOD_INIT): Rename vbe_test to vbetest.
        (GRUB_MOD_FINI): Likewise.

        * normal/misc.c: Include grub/mm.h.

        * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
        vbe_list_modes with vbetest.mod and vbeinfo.mod.
        (vbe_list_modes_mod_SOURCES): Removed.
        (vbe_list_modes_mod_CFLAGS): Likewise.
        (vbe_test_mod_SOURCES): Likewise.
        (vbe_test_mod_CFLAGS): Likewise.
        (vbeinfo_mod_SOURCES): New variable.
        (vbeinfo_mod_CFLAGS): Likewise.
        (vbetest_mod_SOURCES): Likewise.
        (vbetest_mod_CFLAGS): Likewise.
2005-08-19 00:32:01 +00:00
okuji
992ffbbebb 2005-08-18 Yoshinori K. Okuji <okuji@enbug.org>
* normal/misc.c: New file.

        * DISTLIST: Added normal/misc.c.

        * partmap/amiga.c (amiga_partition_map_iterate): Add an argument
        DISK to HOOK. Call HOOK with DISK.
        * partmap/apple.c (apple_partition_map_iterate): Likewise.
        * partmap/pc.c (pc_partition_map_iterate): Likewise.
        * partmap/sun.c (sun_partition_map_iterate): Likewise.

        * normal/menu_entry.c (struct screen): Added a new member
        "completion_shown".
        (completion_buffer): New global variable.
        (make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
        (store_completion): New function.
        (complete): Likewise.
        (clear_completions): Likewise.
        (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
        call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
        a tab, call complete.

        * normal/completion.c (disk_dev): Removed.
        (print_simple_completion): Likewise.
        (print_partition_completion): Likewise.
        (print_func): New global variable.
        (add_completion): Do not take the arguments WHAT or PRINT any
        longer. Added a new argument TYPE. Instead of printing directly,
        call PRINT_FUNC if not NULL.
        All callers changed.
        (complete_device): Use a local variable DEV instead of
        DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
        (grub_normal_do_completion): Take a new argument HOOK. Do not
        initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
        empty string, return NULL instead.
        All callers changed.

        * normal/cmdline.c (print_completion): New function.

        * kern/partition.c (grub_partition_iterate): Add an argument DISK
        to HOOK.
        All callers changed.

        * kern/disk.c (grub_print_partinfo): Removed.

        * include/grub/partition.h (struct grub_partition_map): Add a new
        argument DISK into HOOK of ITERATE.
        (grub_partition_iterate): Add a new argument DISK to HOOK.

        * include/grub/normal.h (enum grub_completion_type): New enum.
        (grub_completion_type_t): New type.
        (GRUB_COMPLETION_TYPE_COMMAND): New constant.
        (GRUB_COMPLETION_TYPE_DEVICE): Likewise.
        (GRUB_COMPLETION_TYPE_PARTITION): Likewise.
        (GRUB_COMPLETION_TYPE_FILE): Likewise.
        (grub_normal_do_completion): Added a new argument HOOK.
        (grub_normal_print_device_info): New prototype.

        * include/grub/disk.h (grub_print_partinfo): Removed.

        * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
        (normal_mod_SOURCES): Likewise.
        * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
        (normal_mod_SOURCES): Likewise.

        * commands/ls.c (grub_ls_list_disks): Use
        grub_normal_print_device_info instead of grub_print_partinfo. Free
        PNAME.
        (grub_ls_list_files): Use grub_normal_print_device_info instead of
        duplicating the code.
2005-08-18 03:14:39 +00:00
chaac
6323696adf Added first version of the VBE terminal code. 2005-08-15 21:25:41 +00:00
okuji
8de3495c7b 2005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
* DISTLIST: Added normal/completion.c.

        * normal/completion.c: New file.

        * term/i386/pc/console.c (grub_console_getwh): New function.
        (grub_console_term): Assign grub_console_getwh to getwh.

        * normal/cmdline.c (grub_tab_complete): Removed. Now the same
        function is defined in normal/completion.c as
        grub_normal_do_completion.
        (grub_cmdline_get): Use grub_normal_do_completion instead of
        grub_tab_complete.

        * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
        returns non-zero, otherwise return 0.
        (grub_partition_iterate): First, probe the partition map. Then,
        call ITERATE only for this partition map.

        * kern/misc.c (grub_strncmp): Rewritten.

        * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
        returns non-zero. Otherwise return 0.

        * include/grub/partition.h (grub_partition_map_iterate): Return
        int instead of void.

        * include/grub/normal.h (grub_normal_do_completion): New prototype.

        * include/grub/misc.h (grub_strncmp): Change the type of N to
        grub_size_t.

        * include/grub/disk.h (grub_disk_dev_iterate): Return int instead
        of void.

        * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
        unsigned explictly before comparing it with I.

        * kern/main.c (grub_env_write_root): Add the attribute unused into
        VAR.

        * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
        normal/completion.c.
        (normal_mod_SOURCES): Likewise.
        * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
        (normal_mod_SOURCES): Likewise.

        * normal/command.c (grub_iterate_commands): If ITERATE returns
        non-zero, return one immediately.
2005-08-12 19:53:33 +00:00
chaac
e85e144bfc Added support for VESA Bios Extension to i386 kernel. 2005-08-09 14:39:50 +00:00
hollisb
c46153d28f 2005-08-08 Hollis Blanchard <hollis@penguinppc.org>
* conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
	kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
	* DISTLIST: Likewise.
	* kern/ieee1275/of.c: Moved to ...
	* kern/ieee1275/ieee1275.c: ... here.
2005-08-09 03:36:50 +00:00
okuji
4ac9bd0438 2005-08-08 Yoshinori K. Okuji <okuji@enbug.org>
* Makefile.in (LIBLZO): New variable.

        * configure.ac: Check for LZO version 2.

        * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
        lzo/lzo1x.h instead of lzo1x.h.

        * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
        of -llzo.

        * util/i386/pc/grub-setup.c (main): Do not free PREFIX
        twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.

        * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
        copying the data from PARTITION to P.
2005-08-08 23:15:21 +00:00
okuji
f4917dfdd6 2005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
* kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
        negative, unload the module.

        * util/i386/pc/grub-setup.c (setup): The name of the PC partition
        map is "pc_partition_map" but not "pc".
        (usage): Fix the description. The options are --boot-image and
        --core-image but not --boot-file or --core-file.
        (main): If not specified explicitly, make BOOT_FILE and CORE_FILE
        based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
        DEFAULT_DIRECTORY.

        * util/i386/pc/grub-install.in: Do not specify --boot-file or
        --core-file. Specify INSTALL_DEVICE as an argument.

        * util/console.c: Include config.h.
        [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
        [HAVE_NCURSES_H]: Include ncurses.h.
        [HAVE_CURSES_H]: Include curses.h.
        [!A_NORMAL] (A_NORMAL): Defined as zero.
        [!A_STANDOUT] (A_STANDOUT): Likewise.

        * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
        -lncurses.
        * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.

        * configure.ac: Check for curses libraries and headers.

        * Makefile.in (LIBCURSES): New variable.

        * genmk.rb (Script::rule): Set the executable bits.

        * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
        name of the PC partition map is "pc_partition_map" but not "pc".
2005-08-07 17:12:52 +00:00
okuji
efd6e6d564 2005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
* conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
        kern/ieee1275.c with kern/ieee1275/of.c.

        * kern/ieee1275.c: Moved to ...
        * kern/ieee1275/of.c: ... here.
2005-08-07 14:14:40 +00:00
okuji
8ceafda2a8 2005-08-06 Yoshinori K. Okuji <okuji@enbug.org>
* conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
        readablity.

        * config.guess: Updated to the latest version from gnulib.
        * config.sub: Likewise.
        * install.sh: Likewise.
        * mkinstalldirs: Likewise.

        * include/grub/console.h: Removed. This file is arch-specific. Do
        not put this in include/grub.

        * include/grub/i386/pc/console.h: Resurrected.

        * util/console.c: Include grub/machine/console.h instead of
        grub/console.h.
        * util/grub-emu.c: Likewise.
2005-08-06 15:50:07 +00:00
hollisb
3be7266d92 2005-08-03 Hollis Blanchard <hollis@penguinppc.org>
* include/grub/powerpc/ieee1275/ieee1275.h: Move ...
	* include/grub/ieee1275/ieee1275.h: ... to here.  All users updated.
	Move `abort', `grub_reboot', and `grub_halt' prototypes ...
	* include/grub/powerpc/ieee1275/kernel.h: ... to here.
	* commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
	of <grub/machine/ieee1275.h>.
	* commands/ieee1275/reboot.c: Likewise.
	* boot/powerpc/ieee1275/ieee1275.c: Move ...
	* kern/ieee1275.c: ... to here.  All users updated.  Change all
	parameter structs to use new type `grub_ieee1275_cell_t'.
	* term/powerpc/ieee1275/ofconsole.c: Move ...
	* term/ieee1275/ofconsole.c: ... to here.  All users updated.
	* disk/powerpc/ieee1275/ofdisk.c: Move ...
	* disk/ieee1275/ofdisk.c: ... to here.  All users updated.
	* boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
	to return int.
	* include/grub/i386/pc/console.h: Move to include/grub/console.h.
	Remove unused prototypes.  All users updated.
	* include/grub/powerpc/ieee1275/console.h: Removed.
	* include/grub/powerpc/ieee1275/ieee1275.h: Define
	`grub_ieee1275_cell_t'.
	* kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
	Cast comparisons with -1 to the correct type.
	* loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
	type to match `grub_ieee1275_entry_fn'.
2005-08-03 22:53:51 +00:00
okuji
8b5f393852 2005-08-01 Yoshinori K. Okuji <okuji@enbug.org>
* DISTLIST: Added util/i386/pc/grub-probefs.c.

	* conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
	(grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
	partmap/sun.c.
	(grub_probefs_SOURCES): New variable.

	* util/i386/pc/grub-probefs.c: New file.

	* util/i386/pc/grub-setup.c (main): Call
	grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
	grub_hfs_init and grub_jfs_init to initialize the system. Call
	grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
	grub_pc_partition_map_fini to finish the system.
2005-08-01 20:38:46 +00:00
okuji
075a165076 2005-07-24 Yoshinori K. Okuji <okuji@enbug.org>
* DISTLIST: Added util/i386/pc/grub-install.in.

	* util/i386/pc/grub-install.in: New file.

	* conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
	(grub_install_SOURCES): Likewise.

	* genmk.rb: Added support for scripts.
	(Script): New class.
	(scripts): New variable.

	* Makefile.in (install-local): Install sbin_SCRIPTS by
	INSTALL_SCRIPT.
	(uninstall): Remove sbin_SCRIPTS.

	* util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
	device, try to get a GRUB device by
	grub_util_biosdisk_get_grub_dev.
	Free DEST_DEV.

	* util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
	description for --device-map.
2005-07-24 18:16:26 +00:00
okuji
ebedfd0003 2005-07-17 Yoshinori Okuji <okuji@enbug.org>
* conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
	be 0x7C00 instead of 0x8000.

	* boot/i386/pc/pxeboot.S: Rewritten.

	* kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
	EXT_C.
	(gate_a20_check_state): Read a byte from 0x108000. Invert the
	result.
2005-07-16 22:06:33 +00:00
okuji
e0f050c2e4 2005-07-10 Yoshinori Okuji <okuji@enbug.org>
* DISTLIST: Added util/i386/pc/grub-mkimage.c.

	* conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
	(grub_mkdevicemap_SOURCES): New variable.

	* util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
	lib/device.c of GRUB Legacy.
2005-07-10 07:57:49 +00:00
okuji
39c9d41d2a 2005-07-03 Yoshinori Okuji <okuji@enbug.org>
* DISTLIST: Added genfslist.sh.

	* normal/main.c (fs_module_list): New variable.
	(autoload_fs_module): New function.
	(read_fs_list): Likewise.
	(grub_normal_execute): Call read_fs_list.

	* kern/fs.c (grub_fs_autoload_hook): New variable.
	(grub_fs_probe): Added support for auto-loading.

	* include/grub/normal.h (struct grub_fs_module_list): New struct.
	(grub_fs_module_list_t): New type.

	* include/grub/fs.h (grub_fs_autoload_hook_t): New type.
	(grub_fs_autoload_hook): New prototype.

	* genfslist.sh: New file.

	* genmk.rb: Added a rule to generate a filesystem list.
2005-07-03 18:06:56 +00:00
marco_g
121c1d832e 2005-06-30 Marco Gerards <metgerards@student.han.nl>
* configure.ac: Fix the test for cross-compiling.

	* genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'.  Don't
	define GRUB_UTIL anymore.

	* util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
	so this function works on other systems than just big endian.
	(load_modules): Likewise.
	(add_segments): Likewise.
2005-06-30 10:21:37 +00:00
hollisb
f4c5e67ca4 2005-04-30 Hollis Blanchard <hollis@penguinppc.org>
* boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
	(roundup): Remove macro.
	(grub_ieee1275_flags): Make static.
	(grub_ieee1275_realmode): Remove.
	(grub_ieee1275_test_flag): New function.
	(grub_ieee1275_set_flag): Likewise.
	(find_options): Rename to `grub_ieee1275_find_options'; update
	callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
	GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
	(cmain): New prototype.
	(cmain): Use `grub_ieee1275_set_flag' instead of accessing
	`grub_ieee1275_flags' directly.
	* conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
	machine/biosdisk.h.
	* disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
	Don't include grub/machine/init.h.
	(grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
	* include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
	Remove prototype.
	(grub_ieee1275_realmode): Likewise.
	(grub_ieee1275_flag): New enum.
	(grub_ieee1275_test_flag): New prototype.
	(grub_ieee1275_set_flag): New prototype.
	* include/grub/powerpc/ieee1275/init.h: Remove file.
	* include/grub/powerpc/ieee1275/ofdisk.h: New file.
	* kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
	Include grub/machine/console.h.  Include grub/machine/ofdisk.h.
	(grub_machine_fini): Don't call `grub_ieee1275_release'.  Remove
	comment.
	* kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
	`grub_ieee1275_test_flag'.
	(grub_ieee1275_encode_devname): Likewise.
2005-05-01 03:45:36 +00:00
hollisb
a5ce3a4a04 2005-03-26 Hollis Blanchard <hollis@penguinppc.org>
* commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
	instead of grub_ieee1275_interpret.
	(grub_halt_init): New function.
	(grub_halt_fini): Likewise.
	(GRUB_MOD_INIT): Correct message grammar.
	* commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
	instead of grub_ieee1275_interpret.
	(grub_reboot_init): New function.
	(grub_reboot_fini): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
	commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
	util/i386/pc/misc.c with commands/ieee1275/halt.c,
	commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
	* disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
	function.
	* include/grub/powerpc/ieee1275/console.h (grub_console_fini):
	Add prototype.
	* include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
	prototype.
	(grub_halt): Likewise.
	* include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
	(cmain): Remove __attribute__((unused)).
	* kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
	(grub_heap_len): Likewise.
	(grub_machine_fini): New function.
	* kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
	(grub_halt): Likewise.
	* term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
	function.
	* util/powerpc/ieee1275/misc.c: New file.
2005-03-26 17:34:50 +00:00
okuji
5822ff87a2 2005-03-08 Yoshinori Okuji <okuji@enbug.org>
Automatic loading of commands is supported.

  * normal/main.c (read_command_list): New function.
  (grub_normal_execute): Call read_command_list.

  * normal/command.c (grub_register_command): Return zero or CMD.
  Allocate CMD->NAME from the heap.
  Initialize CMD->MODULE_NAME to zero.
  Find the same name as well. If the same command is found and it is
  a dummy command, overwrite members. If it is not a dummy command,
  return zero.
  (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
  (grub_command_find): If a dummy command is found, load a module
  and retry to find a command only once.

  * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
  make sure that each command is loaded.

  * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
  macro.
  (struct grub_command): Remove const from the member `name'.
  Add a new member `module_name'.
  (grub_register_command): Return grub_command_t.

  * commands/help.c (grub_cmd_help): Call grub_command_find to make
  sure that each command is loaded.

  * genmk.rb (PModule::rule): Specify a module name without the
  suffix ".mod" to gencmdlist.sh.
2005-03-08 01:01:06 +00:00
okuji
7b1f4b5715 2005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
* gencmdlist.sh: New file.

  * genmk.rb (PModule::rule): Generate a rule for a command list.
  Clean command.lst.
  Generate command.lst from $(COMMANDFILES).

  * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
  (DATA): Added $(pkgdata_DATA).
  (install-local): Install files in $(pkgdata_DATA).
2005-03-02 21:52:38 +00:00
okuji
062aaf39bc 2005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
* term/i386/pc/vga.c (debug_command): Removed.
  (GRUB_MOD_INIT): Do not register the command "debug".

  From Hollis Blanchard:
  * commands/configfile.c: New file.
  * conf/i386-pc.rmk (grub_emu_SOURCES): Added
  commands/configfile.c.
  (pkgdata_MODULES): Added configfile.mod.
  (configfile_mod_SOURCES): New variable.
  (configfile_mod_CFLAGS): Likewise.
  * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
  commands/configfile.c.
  (pkgdata_MODULES): Added configfile.mod.
  (configfile_mod_SOURCES): New variable.
  (configfile_mod_CFLAGS): Likewise.
  * util/grub-emu.c (main): Call grub_configfile_init and
  grub_configfile_fini.
  * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
  prototype.
  [GRUB_UTIL] (grub_configfile_fini): Likewise.
2005-03-02 20:12:46 +00:00
okuji
93f3a1d868 2005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
* commands/default.h: New file.
  * commands/timeout.h: Likewise.
  * normal/context.c: Likewise.

  * util/misc.c: Do not include sys/times.h.
  Include sys/time.h and grub/machine/time.h.
  (grub_get_rtc): Rewritten with gettimeofday.

  * util/grub-emu.c (main): Call grub_default_init and
  grub_timeout_init before grub_normal_init, and call
  grub_timeout_fini and grub_default_fini after grub_main.

  * util/console.c (grub_ncurses_checkkey): Return the read
  character or -1.

  * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
  timeouts.

  * normal/main.c (read_config_file): Push MENU. If this fails,
  print an error and wait for a user input.
  Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
  If a menu is empty or an error occurs, pop MENU.
  (grub_normal_execute): Pop and free MENU after grub_menu_run
  returns.

  * kern/loader.c (grub_loader_boot): Call grub_machine_fini.

  * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
  include time.h.
  [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
  without GRUB_UTIL.
  * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
  time.h.
  [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
  without GRUB_UTIL.

  * include/grub/normal.h (struct grub_menu_list): New struct.
  (grub_menu_list_t): New type.
  (struct grub_context): New struct.
  (grub_context_t): New type.
  (grub_register_command): Got rid of EXPORT_FUNC.
  (grub_unregister_command): Likewise.
  (grub_context_get): New prototype.
  (grub_context_get_current_menu): Likewise.
  (grub_context_push_menu): Likewise.
  (grub_context_pop_menu): Likewise.
  [GRUB_UTIL] (grub_default_init): Likewise.
  [GRUB_UTIL] (grub_default_fini): Likewise.
  [GRUB_UTIL] (grub_timeout_init): Likewise.
  [GRUB_UTIL] (grub_timeout_fini): Likewise.

  * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
  commands/timeout.c and normal/context.c.
  (pkgdata_MODULES): Added default.mod and timeout.mod.
  (normal_mod_SOURCES): Added normal/context.c.
  (default_mod_SOURCES): New variable.
  (default_mod_CFLAGS): Likewise.
  (timeout_mod_SOURCES): Likewise.
  (timeout_mod_CFLAGS): Likewise.
  * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
  conf/i386-pc.rmk.
  (pkgdata_MODULES): Added default.mod and timeout.mod.
  (normal_mod_SOURCES): Added normal/context.c.
  (default_mod_SOURCES): New variable.
  (default_mod_CFLAGS): Likewise.
  (timeout_mod_SOURCES): Likewise.
  (timeout_mod_CFLAGS): Likewise.

  * Makefile.in (all-local): Added $(MKFILES).
2005-02-27 21:19:06 +00:00
marco_g
4ed2e1dd1c 2005-02-21 Vincent Pelletier <subdino2004@yahoo.fr>
* conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
	(grub_emu_SOURCES): Likewise.
	(pkgdata_MODULES): Add `sun.mod'.
	(sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
	`partmap/sun.c'.
	(pkgdata_MODULES): Add `sun.mod'.
	(sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
	* include/grub/partition.h (grub_sun_partition_map_init): New
	prototype.
	(grub_sun_partition_map_fini): Likewise.
	* partmap/sun.c: New file.
	* util/grub-emu.c (main): Initialize and de-initialize the sun
	partitionmap support.
2005-02-21 22:00:32 +00:00
okuji
4d4e372ebd 2005-02-19 Yoshinori K. Okuji <okuji@enbug.org>
This implements an Emacs-like menu entry editor.

  * normal/menu_entry.c: New file.

  * util/console.c (grub_ncurses_putchar): Translate some Unicode
  characters to ASCII.
  (saved_char): New variable.
  (grub_ncurses_checkkey): Rewritten completely.
  (grub_ncurses_getkey): Likewise.
  (grub_ncurses_init): Call raw instead of cbreak.

  * normal/menu.c (print_entry): Do not put a space.
  (init_page): Renamed to ...
  (grub_menu_init_page): ... this. All callers changed.
  (edit_menu_entry): Removed.
  (run_menu): Call grub_menu_entry_run instead of edit_menu_entry.

  * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.

  * kern/misc.c (grub_vprintf): Call grub_refresh.

  * normal/menu.c (DISP_LEFT): Renamed to ...
  * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
  * normal/menu.c (DISP_UP): Renamed to ...
  * include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
  * normal/menu.c (DISP_RIGHT): Renamed to ...
  * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
  * normal/menu.c (DISP_DOWN): Renamed to ...
  * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
  * normal/menu.c (DISP_HLINE): Renamed to ...
  * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
  * normal/menu.c (DISP_VLINE): Renamed to ...
  * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
  * normal/menu.c (DISP_UL): Renamed to ...
  * include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
  * normal/menu.c (DISP_UR): Renamed to ...
  * include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
  * normal/menu.c (DISP_LL): Renamed to ...
  * include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
  * normal/menu.c (DISP_LR): Renamed to ...
  * include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
  * normal/menu.c (TERM_WIDTH): Renamed to ...
  * include/grub/term.h (GRUB_TERM_WIDTH): ... this.
  * normal/menu.c (TERM_HEIGHT): Renamed to ...
  * include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
  * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
  * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
  * normal/menu.c (TERM_MARGIN): Renamed to ...
  * include/grub/term.h (GRUB_TERM_MARGIN): ... this.
  * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
  * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
  * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
  * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
  * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
  * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
  * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
  * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
  * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
  * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
  * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
  * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
  * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
  * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
  * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
  * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
  * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
  * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
  * normal/menu.c (TERM_CURSOR_X): Renamed to ...
  * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
  All callers changed.

  * include/grub/normal.h: New prototype.

  * conf/i386-pc.rmk (grub_emu_SOURCES): Added
  normal/menu_entry.c.
  (normal_mod_SOURCES): Likewise.
  * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
  (normal_mod_SOURCES): Likewise.

2005-02-15  Yoshinori K. Okuji  <okuji@enbug.org>

  * include/grub/normal.h (grub_halt_init): New prototype.
  (grub_halt_fini): Likewise.
  (grub_reboot_init): Likewise.
  (grub_reboot_fini): Likewise.

  * util/grub-emu.c: Include signal.h.
  (main_env): New global variable.
  (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
  catch C-c.
  (grub_machine_fini): New function.
  (main): Call grub_halt_init and grub_reboot_init before
  grub_main, and grub_reboot_fini and grub_halt_fini after it.
  Call setjmp with MAIN_ENV to go back afterwards.
  Call grub_machine_fini right before return.

  * include/grub/util/misc.h: Include setjmp.h.
  (main_env): New prototype.

  * include/grub/kernel.h (grub_machine_fini): New prototype.
  * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
  * include/grub/i386/pc/console.h (grub_console_fini): Likewise.

  * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
  * kern/i386/pc/init.c (grub_machine_fini): Likewise.
  * term/i386/pc/console.c (grub_console_fini): Likewise.

  * util/i386/pc/misc.c: New file.

  * conf/i386-pc.rmk (grub_emu_SOURCES): Added
  util/i386/pc/misc.c, commands/i386/pc/halt.c and
  commands/i386/pc/reboot.c.
2005-02-19 20:56:07 +00:00
okuji
e6b92c8afb 2005-02-15 Yoshinori K. Okuji <okuji@enbug.org>
* include/grub/normal.h (grub_halt_init): New prototype.
  (grub_halt_fini): Likewise.
  (grub_reboot_init): Likewise.
  (grub_reboot_fini): Likewise.

  * util/grub-emu.c: Include signal.h.
  (main_env): New global variable.
  (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
  catch C-c.
  (grub_machine_fini): New function.
  (main): Call grub_halt_init and grub_reboot_init before
  grub_main, and grub_reboot_fini and grub_halt_fini after it.
  Call setjmp with MAIN_ENV to go back afterwards.
  Call grub_machine_fini right before return.

  * include/grub/util/misc.h: Include setjmp.h.
  (main_env): New prototype.

  * include/grub/kernel.h (grub_machine_fini): New prototype.
  * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
  * include/grub/i386/pc/console.h (grub_console_fini): Likewise.

  * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
  * kern/i386/pc/init.c (grub_machine_fini): Likewise.
  * term/i386/pc/console.c (grub_console_fini): Likewise.

  * util/i386/pc/misc.c: New file.

  * conf/i386-pc.rmk (grub_emu_SOURCES): Added
  util/i386/pc/misc.c, commands/i386/pc/halt.c and
  commands/i386/pc/reboot.c.
2005-02-15 00:07:01 +00:00
hollisb
5eabe94bd9 2005-02-13 Hollis Blanchard <hollis@penguinppc.org>
* conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
	* include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
2005-02-13 18:54:57 +00:00
marco_g
c9f9c5564d 2005-01-31 Marco Gerards <metgerards@student.han.nl>
* include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
	Removed prototype.
	(grub_rescue_cmd_linux): New prototype.
	(grub_rescue_cmd_initrd): Likewise.
	* powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
	`bi_rec'.
	(grub_linux_release_mem): Release the memory for the initrd.
	(grub_load_linux): Renamed from this...
	(grub_rescue_cmd_linux): ...To this.  Changed all callers.
	Changed `entry' not to be static.  Loop over memory regions to
	find another one when the default fails.
	(grub_rescue_cmd_initrd): New function.
	(grub_linux_init): Remove function.
	(grub_linux_fini): Likewise.
	(GRUB_MOD_INIT): Register `initrd'.
	(GRUB_MOD_FINI): Unregister `initrd'.
	* powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
	Function removed.
	(grub_linux_normal_fini): Likewise.
	(GRUB_MOD_INIT): Register `initrd'.
	(GRUB_MOD_FINI): Unregister `initrd'.
2005-01-31 21:44:35 +00:00
marco_g
990cf3aa8a 2005-01-31 Marco Gerards <metgerards@student.han.nl>
* commands/help.c: New file.
	* normal/arg.c (show_help): Renamed to...
	(grub_arg_show_help): ... this.
	* commands/i386/pc/halt.c: New file.
	* commands/i386/pc/reboot.c: Likewise.
	* conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
	(pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
	(help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
	(reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
	variables.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
	`commands/help.c'.
	(pkgdata_MODULES): Add `help.mod'.
	(help_mod_SOURCES, help_mod_CFLAGS): New variables.
	* grub/i386/pc/init.h (grub_reboot): New prototype.
	(grub_halt): Likewise.
	* include/grub/normal.h (grub_arg_show_help): New prototype.
	(grub_help_init): Likewise.
	(grub_help_fini): Likewise.
	* util/grub-emu.c (main): Initialize and deinitialize the help
	command.

	* normal/cmdline.c (grub_cmdline_get): Doc fix.

	* normal/command.c (grub_command_init): Fixed the description of
	the `set' and `unset' commands.
2005-01-31 21:40:25 +00:00
marco_g
0f79cdc1db 2005-01-30 Marco Gerards <metgerards@student.han.nl>
* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
	function.
	* commands/ieee1275/halt.c: New file.
	* commands/ieee1275/reboot.c: Likewise.
	* commands/ieee1275/suspend.c (grub_cmd_suspend): Use
	`__attribute__ ((unused))'.  Some GCS related fixed.
	(grub_suspend_init) [GRUB_UTIL]: Function removed.
	(grub_suspend_fini): Likewise.
	* conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
	and `halt.mod'.
	(reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
	(halt_mod_CFLAGS): New variables.
	* include/grub/powerpc/ieee1275/ieee1275.h
	(grub_ieee1275_interpret): New prototype.
2005-01-31 21:28:34 +00:00
marco_g
67bbaf0f38 2005-01-21 Marco Gerards <metgerards@student.han.nl>
Add the loopback device, a device via which files can be accessed
	as devices.

	* conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
	(pkgdata_MODULES): Add loopback.mod.
	(loopback_mod_SOURCES): New variable.
	(loopback_mod_CFLAGS): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
	`disk/loopback.c'.
	(pkgdata_MODULES): Add loopback.mod.
	(loopback_mod_SOURCES): New variable.
	(loopback_mod_CFLAGS): Likewise.
	* disk/loopback.c: new file.
	* include/grub/normal.h (grub_loop_init): New prototype.
	(grub_loop_fini): New prototype.
	* util/grub-emu.c (main): Initialize and de-initialize loopback
	support.
	* include/grub/disk.h (grub_disk_dev_id): Add
	`GRUB_DISK_DEVICE_LOOPBACK_ID'.
2005-01-21 21:32:03 +00:00
hollisb
6f1c18bd82 2005-01-20 Hollis Blanchard <hollis@penguinppc.org>
* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
	function.
	* conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
	(suspend_mod_SOURCES): New variable.
	(suspend_mod_CFLAGS): Likewise.
	* include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
	New prototype.
	* commands/ieee1275/suspend.c: New file.
2005-01-21 02:45:03 +00:00
hollisb
d0ff18e182 2005-01-09 Hollis Blanchard <hollis@penguinppc.org>
* util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
	(note_path): Remove variable.
	(GRUB_IEEE1275_NOTE_NAME): New macro.
	(GRUB_IEEE1275_NOTE_TYPE): Likewise.
	(grub_ieee1275_note_hdr): New structure.
	(grub_ieee1275_note_desc): Likewise.
	(grub_ieee1275_note): Likewise.
	(load_note): Remove `dir' argument.  All callers updated.  Remove
	`note_img' and `path'.  Do not load a file from `note_path'.
	Initialize a struct grub_ieee1275_note and write that to `out'.
	Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
2005-01-09 18:11:05 +00:00
marco_g
0b412211b3 2005-01-04 Hollis Blanchard <hollis@penguinppc.org>
* TODO: Add note about endianness in grub-mkimage.
	* boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
	section.
	* conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
	(grub_mkimage_SOURCES): New target.
	* include/grub/kernel.h (grub_start_addr): Remove variable.
	(grub_end_addr): Likewise.
	(grub_total_module_size): Likewise.
	(grub_kernel_image_size): Likewise.
	(GRUB_MODULE_MAGIC): New constant.
	(grub_module_info): New structure.
	(grub_arch_modules_addr): New prototype.
	(grub_get_end_addr): Remove prototype.
	* include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
	* include/grub/powerpc/ieee1275/kernel.h: New file.
	* include/grub/util/misc.h (grub_util_get_fp_size): New
	prototype.
	(grub_util_read_at): Likewise.
	(grub_util_write_image_at): Likewise.
	* kern/main.c (grub_get_end_addr): Remove function.
	(grub_load_modules): Call grub_arch_modules_addr instead of using
	grub_end_addr.  Look for a grub_module_info struct in memory.  Use
	the grub_module_info fields instead of calling grub_get_end_addr
	as loop conditions.  Move grub_add_unused_region code here.
	(grub_add_unused_region): Remove function.
	* kern/i386/pc/init.c: Include grub/cache.h.
	(grub_machine_init): Remove call to grub_get_end_addr.  Remove
	one call to add_mem_region.
	(grub_arch_modules_addr): New function.
	* kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
	(grub_total_module_size): Likewise.
	Include grub/machine/kernel.h.
	(grub_arch_modules_addr): New function.
	* util/grub-emu.c (grub_end_addr): Remove variable.
	(grub_total_module_size): Likewise.
	(grub_arch_modules_addr): New function.
	* util/misc.c: Include unistd.h.
	(grub_util_get_fp_size): New function.
	(grub_util_read_at): Likewise.
	(grub_util_write_image_at): Likewise.
	(grub_util_read_image): Call grub_util_read_at.
	(grub_util_write_image): Call grub_util_write_image_at.
	* util/i386/pc/grub-mkimage.c (generate_image): Allocate
	additional memory in kernel_img for a struct grub_module_info.
	Fill in that grub_module_info.
	* util/powerpc/ieee1275/grub-mkimage.c: New file.
2005-01-04 14:01:45 +00:00
marco_g
8514a1e003 2004-12-28 Marco Gerards <metgerards@student.han.nl>
* boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.

	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
	`kern/powerpc/cache.S'.
2004-12-28 22:43:37 +00:00
marco_g
924b6140a1 2004-12-27 Marco Gerards <metgerards@student.han.nl>
* genmk.rb: Handle the `Program' class in the main loop.  Written
	by Johan Rydberg <jrydberg@gnu.org>.
	(Program): New class.
	(programs): New variable.
	* boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
	instead of "grub/machine/ieee1275.h".  Include <grub/kernel.h>
	instead of "grub/kernel.h".  Include <grub/machine/init.h>.
	(help_arch): Function removed.
	* conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
	`powerpc/libgcc.h' and `loader.h'.
	(pkgdata_PROGRAMS): New variable.
	(sbin_UTILITIES): Variable removed.
	(grub_emu_SOURCES): Added kern/powerpc/cache.S.
	(grubof_SOURCES): Variable re-defined so it only includes the
	core functionality.
	(grubof_CFLAGS): Remove `-DGRUBOF'.
	(pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
	(fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
	(ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
	(minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
	(hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
	(iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
	(_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
	(normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
	(hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
	(boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
	(ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
	(cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
	(font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
	(apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
	(pc_mod_CFLAGS): New variables.
	* disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
	(grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
	* include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
	* include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
	Moved from here...
	* include/grub/i386/pc/init.h (grub_os_area_addr)
	(rub_os_area_size): ... to here.
	* include/grub/powerpc/ieee1275/ieee1275.h
	(grub_ieee1275_entry_fn): Export symbol.
	* include/grub/powerpc/ieee1275/init.h: New file.
	* include/grub/powerpc/libgcc.h: Likewise.
	* include/grub/cache.h: Likewise.
	* kern/powerpc/cache.S: Likewise.  Written by Hollis Blanchard
	<hollis@penguinppc.org>.
	* kern/dl.c: Include <grub/cache.h>.
	(grub_dl_flush_cache): New function.
	(grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
	for this module.
	* kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
	(grub_console_init): Removed prototypes.
	(grub_machine_init): Don't initialize the modules anymore.
	* kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
	static.
	* include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
	Macro undef removed.
	(GRUB_HOST_WORDS_BIGENDIAN): New macro.
	* kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
	relocation `R_PPC_REL32'.  Return an error when the relocation is
	unknown.
	* Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
	* kern/i386/pc/init.c (grub_arch_sync_caches): New function.
	* util/misc.c (grub_arch_sync_caches): Likewise.
2004-12-27 13:46:20 +00:00
marco_g
e4b47e0cd5 2004-12-19 Marco Gerards <metgerards@student.han.nl>
* conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
	`symlist.c', add `grubof_symlist.c'.
	(symlist.c): Variable removed.
	(grubof_HEADERS): Variable added.
	(grubof_symlist.c): New target.
	(kernel_syms.lst): Use `grubof_HEADERS' instead of
	`kernel_img_HEADERS'.
	(grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
	* kern/powerpc/dl.c: New file.
	* kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
	Function removed.
	(grub_arch_dl_relocate_symbols): Likewise.
	(grub_register_exported_symbols): Likewise.
2004-12-19 20:35:06 +00:00
marco_g
3f1578fe4a 2004-12-04 Marco Gerards <metgerards@student.han.nl>
Modulize the partition map support and add support for the amiga
	partition map.

	* commands/ls.c: Include <grub/partition.h> instead of
	<grub/machine/partition.h>.
	* kern/disk.c: Likewise.
	* kern/rescue.c: Likewise.
	* loader/i386/pc/chainloader.c: Likewise.
	* normal/cmdline.c: Likewise.
	* kern/powerpc/ieee1275/init.c: Likewise.
	(grub_machine_init): Call `grub_pc_partition_map_init',
	`grub_amiga_partition_map_init' and
	`grub_apple_partition_map_init'.
	* conf/i386-pc.rmk (kernel_img_SOURCES): Remove
	`disk/i386/pc/partition.c'.  Add `kern/partition.c'.
	(kernel_img_HEADERS): Remove `machine/partition.h'.  Add
	`partition.h' and `pc_partition.h'.
	(grub_setup_SOURCES): Remove
	`disk/i386/pc/partition.c'.  Add `kern/partition.c',
	`partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
	(grub_emu_SOURCES): Likewise.
	(pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
	(amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
	(apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
	`disk/powerpc/ieee1275/partition.c'.  Add `kern/partition.c',
	`partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
	(grubof_SOURCES): Likewise.
	* disk/i386/pc/partition.c: File removed.
	* disk/powerpc/ieee1275/partition.c: Likewise.
	* include/grub/powerpc/ieee1275/partition.h: Likewise.
	* include/grub/i386/pc/partition.h: Likewise.
	* kern/partition.c: New file.
	* partmap/amiga.c: Likewise.
	* partmap/apple.c: Likewise.
	* partmap/pc.c: Likewise.
	* include/grub/partition.h: Likewise..
	* include/grub/pc_partition.h: Likewise.
	* util/grub-emu.c: Include <grub/partition.h> instead of
	<grub/machine/partition.h>.
	(main): Call `grub_pc_partition_map_init',
	`grub_amiga_partition_map_init' and
	`grub_apple_partition_map_init' and deinitialize afterwards.
	* util/i386/pc/biosdisk.c: Include `#include
	<grub/partition.h>' and `include <grub/pc_partition.h>' instead of
	`<grub/machine/partition.h>'.
	* util/i386/pc/grub-setup.c: Likewise.
	* util/i386/pc/biosdisk.c: Likewise.
	(grub_util_biosdisk_get_grub_dev): Only access the PC specific
	partition information in case of a PC partition.
	* util/i386/pc/grub-setup.c: Include `#include
	<grub/partition.h>' and `include <grub/pc_partition.h>' instead of
	`<grub/machine/partition.h>'.
	(setup): Only access the PC specific partition information in case
	of a PC partition.
2004-12-04 18:45:46 +00:00
marco_g
0ef4ced959 2004-11-17 Hollis Blanchard <hollis@penguinppc.org>
* kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
	(grub_longjmp): Likewise.
	* include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
	20.
	* normal/powerpc/setjmp.S: New file.
	* conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
	`normal/powerpc/setjmp.S'.
	(grubof_CFLAGS): Add `-DGRUBOF'.
	* include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
	[GRUB_UTIL && !GRUBOF].
2004-11-16 23:34:45 +00:00
hollisb
a2fea4276a 2004-11-02 Hollis Blanchard <hollis@penguinppc.org>
* term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
	`actual' for negativity.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
	kern/fshelp.c.
2004-11-03 03:21:14 +00:00
marco_g
ad0bd20b79 2004-11-01 Marco Gerards <metgerards@student.han.nl>
Add support for iso9660 (including rockridge).

	* conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
	(iso9660_mod_SOURCES): New variable.
	(iso9660_mod_CFLAGS): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
	* include/grub/fs.h (grub_iso9660_init): New prototype.
	* util/grub-emu.c (main): Call `grub_iso9660_init'.
	* fs/iso9660.c: New file.

	* include/grub/misc.h (grub_strncat): New prototype.
	* kern/misc.c (grub_strncat): New function.

	* fs/hfs.c (grub_hfs_mount): Translate the error
	`GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
	* fs/jfs.c (grub_jfs_mount): Likewise.
	* fs/ufs.c (grub_ufs_mount): Likewise.
2004-11-01 16:14:16 +00:00
hollisb
9304c1f804 2004-10-19 Hollis Blanchard <hollis@penguinppc.org>
* conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
    (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
    -ffreestanding and -msoft-float.
2004-10-20 01:08:02 +00:00
marco_g
8a572cd742 2004-09-22 Hollis Blanchard <hollis@penguinppc.org>
* commands/ls.c (grub_ls_list_files): Use the string following the
	initial ')', if present, as the filesystem path.
	* kern/rescue.c (grub_rescue_cmd_ls): Likewise.

	* conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
2004-09-22 18:26:16 +00:00
marco_g
b47efe305a 2004-09-17 Marco Gerards <metgerards@student.han.nl>
Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
	can be loaded from normal mode.

	* conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
	`multiboot.mod'.
	(linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
	(multiboot_mod_CFLAGS): New variables.
	* loader/i386/pc/linux_normal.c: New file.
	* loader/i386/pc/multiboot_normal.c: Likewise.

	* loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
	attribute `unused'.

	* fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type.  Use
	`fdiro' to read the mode information from instead of `diro'.

	* fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
	looking up a symlink.

	* include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
	macro.
	* normal/command.c (grub_command_execute): Don't parse the
	arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
	flags of the command.

	* normal/menu.c (grub_menu_run): Fix typo.
2004-09-17 09:36:52 +00:00
marco_g
da75ac7157 2004-09-14 Hollis Blanchard <hollis@penguinppc.org>
* kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.

	* term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
	`y + 1' instead of `y - 1'.

	* conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
2004-09-14 21:21:12 +00:00
marco_g
8ddad8453b 2004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
Added normal mode command `chainloader' as module chain.mod, which
	depends on normal.mod and _chain.mod.

	* conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
	(chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
	* include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
	Deleted prototype.
	* loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
	but arguments parsing moved to ...
	(grub_chainloader_cmd): ... here.  New function.
	* include/grub/i386/pc/chainloader.h: New file.
	* loader/i386/pc/chainloader_normal.c: Likewise.
2004-09-12 12:20:52 +00:00
marco_g
2c1f4ce368 2004-09-11 Marco Gerards <metgerards@student.han.nl>
* conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
	(grub_mkimage_LDFLAGS): Likewise.
	(grub_emu_SOURCES): Likewise.
	(kernel_img_HEADERS): Added fshelp.h.
	* fs/ext2.c: Include <grub/fshelp.h>.
	(FILETYPE_REG): New macro.
	(FILETYPE_INO_REG): Likewise.
	(grub_ext_sblock): Renamed to `grub_ext2_sblock'.
	Changed all users.
	(ext2_block_group): Renamed to `grub_ext2_block_group'.  Changed
	all users.
	(grub_fshelp_node): New struct.
	(grub_ext2_data): Added member `diropen'.  Changed member `inode'
	to a pointer.
	(grub_ext2_get_file_block): Removed function.
	(grub_ext2_read_block): New function.
	(grub_ext2_read_file): Replaced parameter `data' by `node'.
	This function was written.
	(grub_ext2_mount): Read the root inode.  Create a diropen struct.
	(grub_ext2_find_file): Removed function.
	(grub_ext2_read_symlink): New function.
	(grub_ext2_iterate_dir): Likewise.
	(grub_ext2_open): Rewritten.
	(grub_ext2_dir): Rewritten.
	* include/grub/fshelp.h: New file.
	* fs/fshelp.c: Likewise.
2004-09-11 11:42:43 +00:00
okuji
3c52136a94 2004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
* normal/menu.c: Include grub/loader.h and grub/machine/time.h.
  (print_message): Add a missing newline.
  (run_menu): Added timeout support.
  (run_menu_entry): New local function.
  (grub_menu_run): Added support for booting.

  * kern/loader.c (grub_loader_is_loaded): New function.

  * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
  (grub_get_rtc): Exported.

  * include/grub/i386/pc/time.h: Include grub/symbol.h.
  (grub_get_rtc): Exported.

  * include/grub/normal.h (struct grub_command_list): Remove
  constant from the member `command'.

  * include/grub/loader.h (grub_loader_is_loaded): Declared.

  * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.

  * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
2004-09-10 20:31:55 +00:00
marco_g
aa0335603c 2004-08-28 Marco Gerards <metgerards@student.han.nl>
Add support for the JFS filesystem.

	* fs/jfs.c: New file.
	* include/grub/fs.h (grub_jfs_init): New prototype.
	(grub_jfs_fini): New prototype.
	* conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
	(grub_emu_SOURCES): Likewise.
	(pkgdata_MODULES): Add jfs.mod.
	(jfs_mod_SOURCES): New variable.
	(jfs_mod_CFLAGS): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
	(grubof_SOURCES): Likewise.
	* util/grub-emu.c (main): Initialize and deinitialize JFS support.

	* fs/fat.c (grub_fat_find_dir): Convert the filename little
	endian to the host endian.
	(grub_fat_utf16_to_utf8): Move function from there...
	* kern/misc.c (grub_utf16_to_utf8): ...to here.  Do not convert
	the endianess of the source string anymore.
	* include/grub/misc.h (grub_utf16_to_utf8): New prototype.
2004-08-28 13:14:29 +00:00
marco_g
64372eb442 2004-08-18 Marco Gerards <metgerards@student.han.nl>
* fs/hfs.c: New file.
	* conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
	(grub_emu_SOURCES): Likewise.
	(pkgdata_MODULES): Add hfs.mod.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
	(grubof_SOURCES): Likewise.
	* util/grub-emu.c (main): Initialize and deinitialize HFS support.

	* include/grub/misc.h (grub_strncasecmp): Add prototype.
	* kern/misc.c (grub_strncasecmp): Add function.
2004-08-18 09:00:01 +00:00
marco_g
0ef123f617 2004-08-02 Peter Bruin <pjbruin@dds.nl>
* loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
	grub_load_linux instead of grub_rescue_cmd_linux as second
	argument of grub_rescue_register_command.

	* Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
2004-08-02 10:28:11 +00:00
marco_g
a447c5dfb2 2004-07-27 Marco Gerards <metgerards@student.han.nl>
* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
	function.
	* commands/boot.c: Remove the check for `GRUB_UTIL'.
	* conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
	`loader/powerpc/ieee1275/linux.c',
	`loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
	* include/grub/powerpc/ieee1275/ieee1275.h
	(grub_ieee1275_release): New prototype.
	* include/grub/powerpc/ieee1275/loader.h: Rewritten.
	* kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
	normal, boot, linux and linux_normal.
	* loader/powerpc/ieee1275/linux.c: New file.
	* loader/powerpc/ieee1275/linux_normal.c: Likewise.
2004-07-27 17:47:37 +00:00
marco_g
020616c2b2 2004-07-11 Marco Gerards <metgerards@student.han.nl>
* conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
	(pxeboot_img_SOURCES): New variable.
	(pxeboot_img_ASFLAGS): Likewise.
	(pxeboot_img_LDFLAGS): Likewise.
	* boot/i386/pc/pxeboot.S: New file.  Based on pxeloader.S from
	GRUB Legacy and boot.S.  Adopted for GRUB 2 by lode leroy
	<lode_leroy@hotmail.com>.
2004-07-11 13:44:23 +00:00
marco_g
66e19ef8ba 2004-05-24 Marco Gerards <metgerards@student.han.nl>
Add support for UFS version 1 and 2.  Add support for the minix
	filesystem version 1 and 2, both the variants with 14 and 30 long
	filenames.

	* conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
	fs/minix.c.
	(grub_emu_SOURCES): Likewise.
	(pkgdata_MODULES): Add ufs.mod and minix.mod.
	(ufs_mod_SOURCES): New variable.
	(ufs_mod_CFLAGS): Likewise.
	(minix_mod_SOURCES): Likewise.
	(minix_mod_CFLAGS): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
	fs/minix.c.
	(grubof_SOURCES): Likewise.
	* fs/ufs.c: New file.
	* fs/minix.c: New file.
	* include/grub/fs.h (grub_ufs_init): New prototype.
	(grub_ufs_fini): Likewise.
	(grub_minix_init): Likewise.
	(grub_minix_fini): Likewise.
	* util/grub-emu.c (main): Initialize and deinitialize UFS and
	minix fs.
2004-05-24 21:32:21 +00:00
jeroen
cc2e748a08 2004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
	commands/ls.c, commands/terminal.c, commands/boot.c,
	commands/cmp.c and commands/cat.c.
	(grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.

	* kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
	"env.h"
2004-04-30 20:46:40 +00:00
okuji
4b13b216f4 2004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
	and grub_, respectively. Because the conversion is trivial and
	mechanical, I omit the details here. Please refer to the CVS
	if you need more information.
2004-04-04 13:46:03 +00:00
marco_g
e56cdf2111 2004-03-29 Marco Gerards <metgerards@student.han.nl>
Add support for the newworld apple macintosh (PPC).  This has been
	tested on the powerbook 2000 only.  It only adds support for
	generic ieee1275 functions, console and disk support.  This should
	be easy to port to other architectures with support for Open
	Firmware.

	* configure.ac: Accept the powerpc as host_cpu.  In the case of
	the powerpc cpu set the host_vendor to ieee1275.  Make sure the i386
	specific tests are only executed while building for the i386.
	Inverse test for crosscompile.
	* genmk.rb (Utility): Allow assembler files.
	* normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
	* conf/powerpc-ieee1275.rmk: New file.
	* disk/powerpc/ieee1275/ofdisk.c: Likewise.
	* disk/powerpc/ieee1275/partition.c: Likewise.
	* include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
	* include/pupa/powerpc/ieee1275/console.h: Likewise.
	* include/pupa/powerpc/ieee1275/partition.h: Likewise.
	* include/pupa/powerpc/ieee1275/time.h: Likewise.
	* include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
	* include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
	* include/pupa/powerpc/ieee1275/loader.h
	* include/pupa/powerpc/setjmp.h: Likewise.
	* include/pupa/powerpc/types.h: Likewise.
	* kern/powerpc/ieee1275/init.c: Likewise.
	* kern/powerpc/ieee1275/openfw.c: Likewise.
	* term/powerpc/ieee1275/ofconsole.c: Likewise.

	These files were written by Johan Rydberg
	(jrydberg@night.trouble.net) and I only modified them slightly.

	* boot/powerpc/ieee1275/cmain.c: New file.
	* boot/powerpc/ieee1275/crt0.S: Likewise.
	* boot/powerpc/ieee1275/ieee1275.c: Likewise.
	* include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
2004-03-28 21:52:02 +00:00
marco_g
db1771cfbe 2004-03-14 Marco Gerards <metgerards@student.han.nl>
* commands/boot.c: New file.
	* commands/cat.c: Likewise.
	* commands/cmp.c: Likewise.
	* commands/ls.c: Likewise.
	* commands/terminal.c: Likewise.
	* normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
	(pupa_register_command): Changed interface to match the new
	argument parser.
	(pupa_command_execute): Changed (almost rewritten) so it uses
	pupa_split_command.  Added support for setting variables using the
	syntax `foo=bar'.
	(rescue_command): Changed to work with the new argument parser.
	(terminal_command): Moved from here to commands/terminal.c.
	(set_command): New function.
	(unset_command): New function.
	(insmod_command): New function.
	(rmmod_command): New function.
	(lsmod_command): New function.
	(pupa_command_init): Don't initialize the command terminal
	anymore.  Initialize the commands set, unset, insmod, rmmod and
	lsmod.
	* conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
	(kernel_img_HEADERS): Add arg.h and env.h.
	(pupa_mkimage_LDFLAGS): Add kern/env.c.
	(pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
	commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
	normal/arg.c.
	(pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
	terminal.mod.
	(normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
	(boot_mod_SOURCES): New variable.
	(terminal_mod_SOURCES): Likewise.
	(ls_mod_SOURCES): Likewise.
	(cmp_mod_SOURCES): Likewise.
	(cat_mod_SOURCES): Likewise.

	* normal/arg.c: New file.
	* kern/env.c: Likewise.
	* include/pupa/arg.h: Likewise.
	* include/pupa/env.h: Likewise.
	* font/manager.c (font_command): Changed to match argument parsing
	interface changes.
	(PUPA_MOD_INIT): Likewise.
	* hello/hello.c (pupa_cmd_hello): Likewise.
	(PUPA_MOD_INIT): Likewise.
	* include/pupa/disk.h: Include <pupa/device.h>.
	(pupa_print_partinfo): New prototype.
	* include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
	(pupa_dl_get_prefix): Likewise.
	* include/pupa/misc.h: Include <pupa/err.h>.
	(pupa_isgraph): New prototype.
	(pupa_isdigit): Likewise.
	(pupa_split_cmdline): Likewise.
	* include/pupa/normal.h: Include <pupa/arg.h>.
	(pupa_command): Changed the prototype of the member `func' to
	match the argument parsing interface.  Added member `options'.
	(pupa_register_command): Updated to match function.
	(pupa_arg_parse): New prototype.
	(pupa_hello_init) [PUPA_UTIL]: New prototype.
	(pupa_hello_fini) [PUPA_UTIL]: Likewise.
	(pupa_ls_init) [PUPA_UTIL]: Likewise.
	(pupa_ls_fini) [PUPA_UTIL]: Likewise.
	(pupa_cat_init) [PUPA_UTIL]: Likewise.
	(pupa_cat_fini) [PUPA_UTIL]: Likewise.
	(pupa_boot_init) [PUPA_UTIL]: Likewise.
	(pupa_boot_fini) [PUPA_UTIL]: Likewise.
	(pupa_cmp_init) [PUPA_UTIL]: Likewise.
	(pupa_cmp_fini) [PUPA_UTIL]: Likewise.
	(pupa_terminal_init) [PUPA_UTIL]: Likewise.
	(pupa_terminal_fini) [PUPA_UTIL]: Likewise.
	* kern/disk.c: Include <pupa/file.h>.
	(pupa_print_partinfo): New function.
	* kern/dl.c: Include <pupa/env.h>.
	(pupa_dl_dir): Variable removed.
	(pupa_dl_load): Use the environment variable `prefix' instead of
	the variable pupa_dl_dir.
	(pupa_dl_set_prefix): Function removed.
	(pupa_dl_get_prefix): Likewise.
	* kern/i386/pc/init.c: Include <pupa/env.h>.
	(pupa_machine_init): Use the environment variable `prefix' instead of
	using pupa_dl_set_prefix to set the prefix.
	* kern/main.c: Include <pupa/env.h>.
	(pupa_set_root_dev): Use the environment variable `prefix' instead of
	using pupa_dl_get_prefix to get the prefix.
	* kern/misc.c: Include <pupa/env.h>.
	(pupa_isdigit): New function.
	(pupa_isgraph): Likewise.
	(pupa_ftoa): Likewise.
	(pupa_vsprintf): Added support for printing values of the type
	`double'.  Make it possible to format variable output when using
	formatting like `%1.2%f'.
	(pupa_split_cmdline): New function.
	* kern/rescue.c: Include <pupa/env.h>.
	(next_word): Removed function.
	(pupa_rescue_cmd_prefix): Likewise.
	(pupa_rescue_cmd_set): New function.
	(pupa_rescue_cmd_unset): New function.
	(pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
	split the command line instead of splitting it here.  Added
	support for setting variables using the syntax `foo=bar'.  Don't
	initialize the prefix command anymore.  Initialized the set and
	unset commands.
	* normal/cmdline.c: Include <pupa/env.h>.
	(pupa_tab_complete): Added prototypes for print_simple_completion,
	print_partition_completion, add_completion, iterate_commands,
	iterate_dev, iterate_part and iterate_dir. Moved code to print
	partition information from here to kern/disk.c.
	(pupa_cmdline_run): Don't check if the funtion exists anymore.
	* normal/main.c: Include <pupa/env.h>.
	(pupa_rescue_cmd_normal): Use the environment variable `prefix'
	instead of using pupa_dl_get_prefix to get the prefix.
	* term/i386/pc/vga.c: Include <pupa/arg.h>.
	(check_vga_mem): Cast pointers to `void *' to silence a gcc
	warning.
	(pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
	(pupa_vga_setcolor): Declare unused variables with `__attribute__
	((unused))' to silence a gcc warning.
	(pupa_vga_setcolor): Likewise.
	(debug_command): Changed to match argument parsing
	interface changes.
	* util/pupa-emu.c: Include <pupa/env.h>.
	(options): Added 0's for unused fields to silence a gcc warning.
	(argp): Likewise.
	(main): Use the environment variable `prefix' instead of using
	pupa_dl_set_prefix to set the prefix.  Initialize the commands ls,
	boot, cmp, cat and terminal.  Finish the commands boot, cmp, cat
	and terminal.

	* util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
	* util/misc.c: Include <malloc.h>.
	(pupa_malloc): Rewritten so errors are correctly reported.
	(pupa_realloc): Likewise.
	(pupa_memalign): Likewise.
	(pupa_mm_init_region): Declare unused variables with
	`__attribute__ ((unused))' to silence a gcc warning.
	* normal/i386/setjmp.S: Remove tab at the end of the file to
	silence a gcc warning.
	* loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
	variables with `__attribute__ ((unused))' to silence a gcc
	warning.
	* loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
	local variable i unsigned to silence a gcc warning.

	* kern/term.c: Include <pupa/misc.h>.
	(pupa_more_lines): New variable.
	(pupa_more): Likewise.
	(pupa_putcode): When the pager is active pause at the end of every
	screen.
	(pupa_set_more): New function.
	* include/pupa/term.h (pupa_set_more): New prototype.
2004-03-13 13:59:25 +00:00
marco_g
1f7315a3de 2003-11-17 Marco Gerards <metgerards@student.han.nl>
* conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
	(pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
	(pupa_emu_SOURCES): New variable.
	(pupa_emu_LDFLAGS): Likewise.
	* include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
	(pupa_ext2_fini) [PUPA_UTIL]: Likewise.
	* include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
	(pupa_normal_fini) [PUPA_UTIL]: Likewise.
	* include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
	(pupa_jmp_buf): New typedef.
	(pupa_setjmp) [PUPA_UTIL]: New macro.
	(pupa_longjmp) [PUPA_UTIL]: Likewise.
	* include/pupa/term.h (struct pupa_term): New member `refresh'.
	(pupa_refresh): New prototype.
	* include/pupa/util/getroot.h: New file.
	* kern/misc.c (pupa_vsprintf): Refresh the screen after updating
	it.
	* kern/rescue.c (pupa_rescue_get_command_line): Likewise.
	(pupa_rescue_cmd_cat): Likewise.
	(pupa_rescue_cmd_ls): Likewise.
	(pupa_rescue_cmd_testload): Likewise.
	(pupa_rescue_cmd_lsmod): Likewise.
	* normal/cmdline.c (pupa_cmdline_get): Likewise.
	* normal/menu.c (run_menu): Likewise.
	* kern/term.c (pupa_cls): Likewise.
	(pupa_refresh): New function.
	* normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
	(pupa_normal_fini) [PUPA_UTIL]: Likewise.
	* util/console.c: New file.

	* util/i386/pc/getroot.c: New file.
	* util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
	(pupa_putchar): New function.
	(pupa_refresh): Likewise.
	(xgetcwd): Function moved to ...
	(strip_extra_slashes): Likewise.
	(get_prefix): Likewise.
	* util/i386/pc/getroot.c: ... here.
	(find_root_device): Function moved and renamed to...
	* util/i386/pc/getroot.c (pupa_find_root_device): ... here.
	Changed all callers.
	* util/i386/pc/pupa-setup.c (guess_root_device): Function moved
	and renamed to...
	* util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
	Changed all callers.
	* util/misc.c (pupa_memalign): New function.
	(pupa_mm_init_region): Likewise.
	(pupa_register_exported_symbols): Likewise.
	(pupa_putchar): Function removed.
	* util/pupa-emu.c: New file.
2003-11-17 18:07:09 +00:00
jeroen
9a5c1adeaa 2003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
* conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
	(_multiboot_mod_SOURCES): New variable.
	(_multiboot_mod_CFLAGS): Likewise.
	* loader/i386/pc/multiboot.c: New file.
	* include/pupa/i386/pc/multiboot.h: Likewise.
	* kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
	(pupa_multiboot_real_boot): New function.
	* include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
	(pupa_multiboot_real_boot): New prototype.
	(pupa_rescue_cmd_multiboot): Likewise
	(pupa_rescue_cmd_module): Likewise.

	* kern/loader.c (pupa_loader_set): Continue when
	pupa_loader_unload_func() fails.
	(pupa_loader_unset): New function.
	* include/pupa/loader.h (pupa_loader_unset): New prototype.

	* kern/misc.c (pupa_stpcpy): New function.
	* include/pupa/misc.h (pupa_stpcpy): New prototype.
2003-11-16 16:36:39 +00:00
marco_g
a35eed7c3e 2003-10-27 Marco Gerards <metgerards@student.han.nl>
* README: In the pupa-mkimage example use _chain instead of chain
	and ext2 instead of fat.
	* TODO: Replace ext2fs with jfs as an example.  Add an item for
	adding journal playback for ext2fs.
	* conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
	(pkgdata_MODULES): Added ext2.mod.
	(ext2_mod_SOURCES): New variable.
	(ext2_mod_CFLAGS): Likewise.
	* include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
	* include/pupa/misc.h (pupa_strncpy): New prototype.
	(pupa_strcat): Likewise.
	(pupa_strncmp): Likewise.
	* kern/misc.c (pupa_strcat): Enable function.
	(pupa_strncpy): New function.
	(pupa_strncmp): Likewise.

	* kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
	when the read failed before retrying.
	* util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
	(_FILE_OFFSET_BITS): Likewise.
	* configure.ac: Added AC_SYS_LARGEFILE.
2003-10-29 18:44:30 +00:00
okuji
98d150633e 2003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
* genmk.rb (PModule#rule): Make sure to get only symbol names
	from the output of nm.
	Reported by Robert Millan <zeratul2@wanadoo.es>.
2003-09-25 20:29:32 +00:00
okuji
18d9c7cd53 2003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
I forgot to check in these changes for a long time. This adds
	incomplete support for VGA console, and this is still very
	buggy. Also, a lot of consideration is required for I18N,
	UNICODE, and VGA font issues. Therefore, assume that this is
	such that "better than nothing".

	* font/manager.c: New file.
	* include/pupa/font.h: Likewise.
	* include/pupa/i386/pc/vga.h: Likewise.
	* term/i386/pc/vga.c: Likewise.
	* util/unifont2pff.rb: Likewise.

	* conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
	(pkgdata_MODULES): Added vga.mod and font.mod.
	(vga_mod_SOURCES): New variables.
	(vga_mod_CFLAGS): Likewise.
	(font_mod_SOURCES): Likewise.
	(font_mod_CFLAGS): Likewise.

	* include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.

	* include/pupa/term.h: Include pupa/err.h.
	(struct pupa_term): Added init and fini.
	Changed the argument of putchar to pupa_uint32_t.

	* include/pupa/i386/pc/console.h: Include pupa/symbol.h.
	(pupa_console_real_putchar): New prototype.
	(pupa_console_putchar): Removed.
	(pupa_console_checkkey): Exported.
	(pupa_console_getkey): Likewise.

	* kern/misc.c (pupa_vsprintf): Add support for UNICODE
	characters.

	* kern/term.c (pupa_term_set_current): Rewritten.
	(pupa_putchar): Likewise.
	(pupa_putcode): New function.

	* kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
	(pupa_console_real_putchar): ... this.
	(pupa_vga_set_mode): New function.
	(pupa_vga_get_font): Likewise.

	* normal/command.c: Include pupa/term.h.
	(terminal_command): New function.
	(pupa_command_init): Register the command "terminal".

	* normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
	(DISP_UP): Likewise.
	(DISP_RIGHT): Likewise.
	(DISP_DOWN): Likewise.
	(DISP_HLINE): Likewise.
	(DISP_VLINE): Likewise.
	(DISP_UL): Likewise.
	(DISP_UR): Likewise.
	(DISP_LL): Likewise.
	(DISP_LR): Likewise.

	* term/i386/pc/console.c (pupa_console_putchar): New function.
2003-09-25 20:15:53 +00:00
gniibe
977329f5fa hello module and bug fix of util/resolve.c 2003-02-08 08:15:43 +00:00
okuji
1f5ab4280a 2003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
* kern/i386/pc/lzo1x.S: New file.

	* util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
	(compress_kernel): New variable.
	(generate_image): Heavily modified to support compressing a
	large part of the core image.

	* util/misc.c (pupa_util_read_image): Fix a file descriptor
	leak.
	(pupa_util_load_image): New function.

	* kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
	(pupa_compressed_size): New variable.
	(codestart): Enable Gate A20 here.
	Decompress the compressed part of the core image.
	Rearrange the code to put functions and variables which are
	required for initialization in the non-compressed part.
	Include lzo1x.S.

	* kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
	here.

	* include/pupa/util/misc.h (pupa_util_write_image): Declared.

	* include/pupa/i386/pc/kernel.h
	(PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
	(PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
	(PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
	(PUPA_KERNEL_MACHINE_PREFIX): Likewise.
	(PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.

	* conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.

	* genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
	(Utility#rule): Likewise.

	* configure.ac: Check if LZO is available.
2003-01-31 03:26:56 +00:00
okuji
ce5bf700ca 2003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
* include/pupa/normal.h: New file.
	* include/pupa/setjmp.h: Likewise.
	* include/pupa/i386/setjmp.h: Likewise.
	* normal/cmdline.c: Likewise.
	* normal/command.c: Likewise.
	* normal/main.c: Likewise.
	* normal/menu.c: Likewise.
	* normal/i386/setjmp.S: Likewise.

	* loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
	(pupa_rescue_cmd_initrd): Likewise.

	* loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
	Likewise.

	* kern/i386/pc/startup.S (translation_table): New variable.
	(translate_keycode): New function.
	(pupa_console_getkey): Call translate_keycode.

	* kern/rescue.c (attempt_normal_mode): New function.
	(pupa_enter_rescue_mode): Attempt to execute the normal mode. If
	it failed, print a message.

	* kern/mm.c (pupa_real_malloc): Print more information when a
	free magic is broken.
	(pupa_free): If the first free header is not free actually, set
	it to P.

	* kern/main.c (pupa_load_normal_mode): Just load the module
	"normal".
	(pupa_main): Don't print the message
	"Entering into rescue mode..." here.

	* include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
	Declared.
	(pupa_rescue_cmd_initrd): Likewise.
	(pupa_rescue_cmd_initrd): Likewise.

	* include/pupa/symbol.h (FUNCTION): Specify the type.
	(VARIABLE): Likewise.

	* include/pupa/err.h (pupa_err_t): Added
	PUPA_ERR_UNKNOWN_COMMAND.

	* include/pupa/dl.h (pupa_dl_set_prefix): Exported.
	(pupa_dl_get_prefix): Likewise.

	* conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
	Added _chain.mod and _linux.mod instead of chain.mod and
	linux.mod.
	(chain_mod_SOURCES): Renamed to ...
	(_chain_mod_SOURCES): ... this.
	(chain_mod_CFLAGS): Renamed to ...
	(_chain_mod_CFLAGS): ... this.
	(linux_mod_SOURCES): Renamed to ...
	(_linux_mod_SOURCES): ... this.
	(linux_mod_CFLAGS): Renamed to ...
	(_linux_mod_CFLAGS): ... this.
	(normal_mod_SOURCES): New variable.
	(normal_mod_CFLAGS): Likewise.
	(normal_mod_ASFLAGS): Likewise.

2003-01-18  Yoshinori K. Okuji  <okuji@enbug.org>

	* kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
	possible.

	* kern/dl.c (pupa_dl_ref): Refer dependending modules
	recursively.
	(pupa_dl_unref): Unrefer depending modules recursively.
	Don't call pupa_dl_unload implicitly, because PUPA can crash if
	a module is unloaded before one depending on that module is
	unloaded.
	(pupa_dl_unload): Unload depending modules explicitly,
	if possible.
2003-01-20 04:13:46 +00:00
okuji
c04da07444 2003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
* include/pupa/i386/pc/linux.h: New file.
	* loader/i386/pc/linux.c: Likewise.

	* loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
	Removed.
	(pupa_chainloader_unload): Return PUPA_ERR_NONE.
	(pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
	of PUPA_CHAINLOADER_BOOT_SECTOR.

	* kern/i386/pc/startup.S: Include pupa/machine/linux.h.
	(pupa_linux_prot_size): New variable.
	(pupa_linux_tmp_addr): Likewise.
	(pupa_linux_real_addr): Likewise.
	(pupa_linux_boot_zimage): New function.
	(pupa_linux_boot_bzimage): Likewise.

	* kern/i386/pc/init.c (struct mem_region): New structure.
	(MAX_REGIONS): New macro.
	(mem_regions): New variable.
	(num_regions): Likewise.
	(pupa_os_area_addr): Likewise.
	(pupa_os_area_size): Likewise.
	(pupa_lower_mem): Likewise.
	(pupa_upper_mem): Likewise.
	(add_mem_region): New function.
	(compact_mem_regions): Likewise.
	(pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
	the size of the conventional memory and that of so-called upper
	memory (before the first memory hole).
	Instead of adding each found region to free memory, use
	add_mem_region and add them after removing overlaps.
	Also, add only 1/4 of the upper memory to free memory. The rest
	is used for loading OS images. Maybe this is ad hoc, but this
	makes it much easier to relocate OS images when booting.

	* kern/rescue.c (pupa_rescue_cmd_module): Removed.
	(pupa_enter_rescue_mode): Don't register initrd and module.

	* kern/mm.c: Include pupa/dl.h.

	* kern/main.c: Include pupa/file.h and pupa/device.h.

	* kern/loader.c (pupa_loader_load_module_func): Removed.
	(pupa_loader_load_module): Likewise.

	* kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
	``.o''.

	* include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
	(pupa_linux_tmp_addr): Likewise.
	(pupa_linux_real_addr): Likewise.
	(pupa_linux_boot_zimage): Likewise.
	(pupa_linux_boot_bzimage): Likewise.

	* include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
	(pupa_upper_mem): Likewise.
	(pupa_gate_a20): Don't export, because turning off Gate A20 in a
	module is too dangerous.

	* include/pupa/loader.h (pupa_os_area_addr): Declared.
	(pupa_os_area_size): Likewise.
	(pupa_loader_set): Remove the first argument. Loader doesn't
	manage modules or initrd any longer.
	(pupa_loader_load_module): Removed.

	* conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
	(linux_mod_SOURCES): New variable.
	(linux_mod_CFLAGS): Likewise.
2003-01-17 02:52:05 +00:00
okuji
1cc73a62da 2003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
* include/i386/pc/util/biosdisk.h: New file.
	* util/i386/pc/biosdisk.c: Likewise.
	* util/i386/pc/pupa-setup.c: Likewise.

	* Makefile.in (INCLUDE_DISTFILES): Added
	include/pupa/i386/pc/util/biosdisk.h.
	(UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
	directory util/i386/pc.
	(install-local): Added a rule for sbin_UTILITIES.
	(uninstall): Likewise.

	* util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.

	* util/misc.c (xrealloc): New function.
	(pupa_malloc): Likewise.
	(pupa_free): Likewise.
	(pupa_realloc): Likewise.
	(pupa_stop): Likewise.
	(pupa_putchar): Likewise.

	* kern/disk.c (pupa_disk_read): Prevent L from underflowing.

	* include/pupa/util/misc.h (xrealloc): Declared.

	* include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
	macro.
	(PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
	(PUPA_BOOT_MACHINE_BPB_END): ... this.

	* include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
	[PUPA_UTIL] (pupa_fat_fini): Likewise.

	* fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
	way should be implemented.
	[PUPA_UTIL] (pupa_fat_fini): Likewise.

	* disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
	the size of NAME for safety.
	(pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
	0x88.

	* conf/i386-pc.rmk (sbin_UTILITIES): New variable.
	(pupa_setup_SOURCES): Likewise.

	* genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
2003-01-02 20:12:33 +00:00
okuji
62ddcc8f79 2002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
Use -mrtd and -mregparm=3 to reduce the generated code sizes.
	This means that any missing prototypes could be fatal. Also, you
	must take care when writing assembly code. See the comments at
	the beginning of startup.S, for more details.

	* kern/i386/pc/startup.S (pupa_halt): Modified for the new
	compilation mechanism.
	(pupa_chainloader_real_boot): Likewise.
	(pupa_biosdisk_rw_int13_extensions): Likewise.
	(pupa_biosdisk_rw_standard): Likewise.
	(pupa_biosdisk_check_int13_extensions): Likewise.
	(pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
	(pupa_biosdisk_get_diskinfo_standard): Likewise.
	(pupa_get_memsize): Likewise.
	(pupa_get_mmap_entry): Likewise.
	(pupa_console_putchar): Likewise.
	(pupa_console_setcursor): Likewise.
	(pupa_getrtsecs): Use pushl instead of push.

	* kern/i386/pc/init.c (pupa_machine_init): Use the scratch
	memory instead of the stack for a mmap entry, because some
	BIOSes may ignore the maximum size and overflow.

	* conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.

	* genmk.rb (PModule#rule): Compile automatically generated
	sources with module-specific CFLAGS as well as other sources.
2002-12-28 07:16:30 +00:00
okuji
6a161fa938 Initial revision 2002-12-27 08:53:07 +00:00