blob: 2753714047e0d78ebd8d077ad7ba6ec003de4e8c [file] [log] [blame] [raw]
1999-06-24 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
Build process is cleaned up. Stage 2 and Stage 1.5's are all
built in the directory stage2.
From Pavel Roskin <pavel_roskin@geocities.com>:
* Makefile.am (SUBDIRS): e2fs_stage1_5, ffs_stage1_5,
fat_stage1_5 and shared_src are removed.
(DISTCLEANFILES): Deleted.
* configure.in: Call AC_PROG_RANLIB.
(AC_INIT): Change the argument to stage2/stage2.c.
(LIBS): Renamed to ...
(GRUB_LIBS): ... this, and call AC_SUBST for this.
Our own rules are removed.
(AC_OUTPUT): e2fs_stage1_5/Makefile, ffs_stage1_5/Makefile,
fat_stage1_5/Makefile and shared_src/Makefile are removed.
* docs/Makefile.am (HELP2MAN): The prefix $(srcdir) is removed.
[GRUB_MAINT]: Prepend $(srcdir) to $(HELP2MAN).
* e2fs_stage1_5/Makefile.am: Deleted.
* e2fs_stage1_5/Makefile.in: Likewise.
* fat_stage1_5/Makefile.am: Likewise.
* fat_stage1_5/Makefile.in: Likewise.
* ffs_stage1_5/Makefile.am: Likewise.
* ffs_stage1_5/Makefile.in: Likewise.
* grub/Makefile.am (CLEANFILES): Likewise.
(COMPILE): Likewise.
(INCLUDES): Likewise.
(DEP_FILES): Likewise.
(@SHARED_SRC_RULES@): Likewise.
(AM_CFLAGS): New variable.
(grub_LDADD): Set to the library libgrub.a and @GRUB_LIBS@.
* shared_src/Makefile.am: Deleted.
* shared_src/Makefile.in: Likewise.
* shared_src/apic.h: Moved to ...
* stage2/apic.h: ... here.
* shared_src/asm.S: Moved to ...
* stage2/asm.S: ... here.
* shared_src/bios.c: Moved to ...
* stage2/bios.c: ... here.
* shared_src/boot.c: Moved to ...
* stage2/boot.c: ... here.
* shared_src/char_io.c: Moved to ...
* stage2/char_io.c: ... here.
* shared_src/cmdline.c: Moved to ...
* stage2/cmdline.c: ... here.
* shared_src/common.c: Moved to ...
* stage2/common.c: ... here.
* shared_src/defs.h: Moved to ...
* stage2/defs.h: ... here.
* shared_src/dir.h: Moved to ...
* stage2/dir.h: ... here.
* shared_src/disk_inode.h: Moved to ...
* stage2/disk_inode.h: ... here.
* shared_src/disk_inode_ffs.h: Moved to ...
* stage2/disk_inode_ffs.h: ... here.
* shared_src/disk_io.c: Moved to ...
* stage2/disk_io.c: ... here.
* shared_src/fat.h: Moved to ...
* stage2/fat.h: ... here.
* shared_src/filesys.h: Moved to ...
* stage2/filesys.h: ... here.
* shared_src/freebsd.h: Moved to ...
* stage2/freebsd.h: ... here.
* shared_src/fs.h: Moved to ...
* stage2/fs.h: ... here.
* shared_src/fsys_ext2fs.c: Moved to ...
* stage2/fsys_ext2fs.c: ... here.
* shared_src/fsys_fat.c: Moved to ...
* stage2/fsys_fat.c: ... here.
* shared_src/fsys_ffs.c: Moved to ...
* stage2/fsys_ffs.c: ... here.
* shared_src/gunzip.c: Moved to ...
* stage2/gunzip.c: ... here.
* shared_src/i386-elf.h: Moved to ...
* stage2/i386-elf.h: ... here.
* shared_src/imgact_aout.h: Moved to ...
* stage2/imgact_aout.h: ... here.
* shared_src/mb_header.h: Moved to ...
* stage2/mb_header.h: ... here.
* shared_src/mb_info.h: Moved to ...
* stage2/mb_info.h: ... here.
* shared_src/pc_slice.h: Moved to ...
* stage2/pc_slice.h: ... here.
* shared_src/shared.h: Moved to ...
* stage2/shared.h: ... here.
* shared_src/smp-imps.c: Moved to ...
* stage2/smp-imps.c: ... here.
* shared_src/smp-imps.h: Moved to ...
* stage2/smp-imps.h: ... here.
* shared_src/stage1_5.c: Moved to ...
* stage2/stage1_5.c: ... here.
* shared_src/stage2.c: Moved to ...
* stage2/stage2.c: ... here.
* stage1/Makefile.am (pkgdata_DATA): Renamed to ...
(nodist_pkgdata_DATA): ... this.
(COMPILE): Deleted.
(AM_CFLAGS): New variable.
* stage2/Makefile.am: Completely rewritten from scratch.
(TESTS): New variable.
(noinst_SCRIPTS): Likewise.
(noinst_HEADERS): Likewise.
(EXTRA_DIST): Set to smp-imps.c and $(noinst_SCRIPTS).
(noinst_LIBRARIES): New variable.
(libgrub_a_SOURCES): Likewise.
(libgrub_a_CFLAGS): Likewise.
(pkgdata_DATA): Deleted.
(nodist_pkgdata_DATA): New variable.
(MOSTLYCLEANFILES): Set to $(noinst_PROGRAMS).
(COMPILE): Deleted.
(INCLUDES): Likewise.
(stage2_exec_LDADD): Likewise.
(DEP_FILES): Likewise.
(stage2_exec_SOURCES): Set to the actual source files instead of
dummy.
(DISTFILES): Deleted.
(stage2.exec): Likewise.
(stage2): Likewise.
(@SHARED_SRC_RULES@): Likewise.
(noinst_PROGRAMS): Set to executable formats of Stage 2 and
Stage 1.5's.
(STAGE2_LINK): New variable.
(STAGE2_COMPILE): Likewise.
(STAGE1_5_LINK): Likewise.
(STAGE1_5_COMPILE): Likewise.
(stage2_exec_CFLAGS): Likewise.
(stage2_exec_LDFLAGS): Likewise.
(e2fs_stage1_5_exec_SOURCES): Likewise.
(e2fs_stage1_5_exec_CFLAGS): Likewise.
(e2fs_stage1_5_exec_LDFLAGS): Likewise.
(fat_stage1_5_exec_SOURCES): Likewise.
(fat_stage1_5_exec_CFLAGS): Likewise.
(fat_stage1_5_exec_LDFLAGS): Likewise.
(ffs_stage1_5_exec_SOURCES): Likewise.
(ffs_stage1_5_exec_CFLAGS): Likewise.
(ffs_stage1_5_exec_LDFLAGS): Likewise.
(% : %.exec): New rule.
* stage2/size_test: New file, for checking for the sizes of
Stage 2 and Stage 1.5's.
1999-06-24 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* stage1/stage1.S: Call testb instead of andb when checking if
the drive is a floppy.
1999-06-23 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* grub/asmstub.c [__linux__]: Include linux/fs.h for BLKFLSBUF.
(grub_stage2): Call sync before and after calling doit.
(gurb_stage2) [__linux__]: Invalidate buffer caches by BLKFLSBUF
ioctl.
* grub/main.c (main): Call sync first. Suggested by Pavel Roskin
<pavel_roskin@geocities.com>.
* configure.in: Curses libraries are always checked.
(--enable-sbin-grub): Deleted. Now /sbin/grub is always built.
(--enable-maintainer-mode): New option.
* grub/Makefile.am (EXTRA_PROGRAMS): Deleted.
(sbin_PROGRAMS): Just set to grub.
* docs/Makefile.am (man_MANS): New variable.
(HELP2MAN): Likewise.
(noinst_SCRIPTS): Likewise.
(EXTRA_DIST): Add $(man_MANS) and $(noinst_SCRIPTS).
[GRUB_MAINT]: Define the rule for the /sbin/grub manual.
* docs/help2man: Copied from texinfo-3.12i.
(--section): New option to specify which section a manual
belongs to.
(opt_section): New variable.
(section): Likewise.
* docs/grub.8: Produced by help2man automatically.
1999-06-22 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* shared_src/char_io.c (get_cmdline): Add two missing `break's.
* shared_src/cmdline.c (commands): Add quit.
(enter_cmdline): Change the return type to cmdline_t, and return
CMDLINE_OK if successful, otherwise CMDLINE_ERROR if fail.
(enter_cmdline) [GRUB_UTIL]: Return CMDLINE_ABORT if CUR_HEAP
contains "quit".
[!GRUB_UTIL]: Just print an annotation message.
* shared_src/shared.h (cmdline_t): New enum type.
(enter_cmdline): Change the return type to cmdline_t.
(cmain): Remove ``noreturn'' attribute.
* shared_src/stage2.c (menu_t): New enum type.
(run_menu): Change the return type to menu_t.
If enter_cmdline returns CMDLINE_ABORT, then return MENU_ABORT,
otherwise return MENU_OK.
(cmain): If enter_cmdline aborts, then break the command-line
loop and return. If run_menu aborts, then return.
1999-06-22 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* shared_src/Makefile.am (EXTRA_DIST): Add bios.c. Reported by
Pavel Roskin <pavel_roskin@geocities.com>.
1999-06-21 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* docs/Makefile.am (html): Deleted.
(txt): Likewise.
(EXTRA_DIST): $(txt) and $(html) are removed.
* docs/boot-proposal.html: Removed.
* docs/errors.html: Likewise.
* docs/faq.html: Likewise.
* docs/grub.html: Likewise.
* docs/install.html: Likewise.
* docs/mem64mb.html: Likewise.
* docs/technical.html: Likewise.
* docs/using.html: Likewise.
* docs/PC_partitioning.txt: Likewise.
* docs/bios_mapping.txt: Likewise.
* docs/commands.txt: Likewise.
* docs/embedded_data.txt: Likewise.
* docs/filesystem.txt: Likewise.
1999-06-21 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
From Alexander K. Hudek <alexhudek@home.com>:
* shared_src/disk_io.c (real_open_partition): Check if
CURRENT_SLICE is equal to PC_SLICE_TYPE_WIN95_EXTENDED as well.
* shared_src/pc_slice.c (PC_SLICE_TYPE_WIN95_EXTENDED): New
macro.
* shared_src/bios.c (biosdisk): Clear the reserved member of DAP.
1999-06-08 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
Color-menu support based on Peter Astrand
<altic@lysator.liu.se>'s patch.
* shared_src/asm.S (nocursor): New function.
* shared_src/cmdline.c (normal_color): New variable.
(highlight_color): Likewise.
(commands): Added "color" command.
(enter_cmdline): Handle the color command.
* shared_src/shared.h (normal_color): Declared.
(highlight_color): Likewise.
[!GRUB_UTIL] (nocursor): Likewise.
* shared_src/stage2.c (print_border) [!GRUB_UTIL]: Color the
menu.
(run_menu) [!GRUB_UTIL]: Call nocursor, and call set_line with
the second argument HIGHLIGHT_COLOR when highlighting a line,
and NORMAL_COLOR when drawing a normal line.
(cmain): Initialize normal_color and highlight_color. Handle
the color command in the same way as the command-line
interface.
1999-06-07 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* e2fs_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Set to 31744.
* fat_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Likewise.
1999-06-06 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
The debug version of Stage 2 is removed.
* shared_src/cmdline.c: The imps code is now defined if GRUB_UTIL
is not defined, but not if DEBUG.
(debug): New global variable.
(commands): All commands are always enabled, and added "debug".
(debug_fs_print_func): Defined unconditionally.
(debug_fs_blocklist_func): If DEBUG is true, then call printf.
(enter_cmdline): Handle "testload", "read", "fstest",
"impsprobe" and "displaymem" unconditionally, and added "debug"
handling.
[GRUB_UTIL]: If a command is impsprobe, just fails.
* shared_src/disk_io.c (devread) [!STAGE1_5]: If DEBUG_FS and
DEBUG are true, then call printf.
* shared_src/asm.S (patch_code): Defined unconditionally.
(patch_code_end): Likewise.
* stage1/stage1.S (firstlist) [!FFS_STAGE1_5]: Increase the
number of sectors to 90, because Stage 2 is larger than 80
sectors.
* configure.in: The option --enable-debug is removed, and do
not output "stage2_debug/Makefile".
* Makefile.am (SUBDIRS): stage2_debug is removed.
* stage2_debug/Makefile.am: Deleted.
* stage2_debug/Makefile.in: Likewise.
1999-06-02 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* grub/main.c (verbose): New variable.
(read_only): Likewise.
(OPT_VERBOSE): New macro.
(OPT_READ_ONLY): Likewise.
(longopts): Add --read-only and --verbose options.
(usage): Add the descriptions about --read-only and --verbose.
(main): Handle OPT_VERBOSE and OPT_READ_ONLY.
If HOLD and VERBOSE are non-zero, then display the message
about how to restart /sbin/grub.
* shared_src/shared.h (verbose) [GRUB_UTIL]: Declared.
(read_only) [GRUB_UTIL]: Likewise.
* grub/asmstub.c (hex_dump): New function.
(biosdisk): In the case where SUBFUNC is
BIOSDISK_WRITE, check for READ_ONLY and call nwrite if
READ_ONLY is zero. If VERBOSE is non-zero, display what GRUB
will try to do.
(get_diskinfo): Open DEVNAME with the mode O_RDWR if READ_ONLY
is zero, and attempt to open DEVNAME with the mode O_RDONLY
regardless of ERRNO if READ_ONLY is non-zero. If VERBOSE is
non-zero, then display the drive DRIVE and the file DEVNAME.
* shared_src/disk_io.c (set_device) [STAGE1_5]: Eliminate
completion code.
1999-06-01 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* grub/asmstub.c: Do not use I_AM_VERY_BRAVE any more.
(grub_stage2): Delete first_scsi_disk and add a variable
num_hd, which is used for counting how many drives are
detected.
Initialize the flags member of each element of disks to -1
instead of 0, and check if it is equal to -1 instead of 0 when
close it.
(get_diskinfo): Treat -1 as non-caching state instead of 0.
1999-06-01 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
Reported from Klaus Reichl <a8709182@unet.univie.ac.at>:
* docs/.cvsignore: New file.
* shared_src/disk_io.c (print_a_completion): New function
which saves what has been printed to UNIQUE_STRING and printf
it.
(unique) [!STAGE1_5]: New variable.
(unique_string): Likewise.
(print_completions): Use print_a_completion, and improve the
completion facility.
* shared_src/fsys_ext2fs.c (ext2fs_dir) [!STAGE1_5]: Use
print_a_completion instead of just printf.
* shared_src/fsys_ffs.c (ffs_dir) [!STAGE1_5]: Likewise.
* shared_src/fsys_fat.c (fat_dir) [!STAGE1_5]: Likewise.
* shared_src/shared.h (print_a_completion): Declared.
* shared_src/cmdline.c (enter_cmdline): Explicitly cast
int to pointer to char for grub_read.
* grub/asmstub.c (grub_stage2) [__linux__]: Don't use /dev/fd1.
Probe 4 IDE drives instead of 2.
(biosdisk) [__linux__]: Add a prototype for _llseek.
* shared_src/char_io.c (get_cmdline): Update LPOS and LLEN_OLD
when the functon print_completion modifies CMDLINE.
* shared_src/stage2.c (get_line_from_config): Fix LITERAL
handling.
1999-05-25 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* grub/asmstub.c (grub_stage2): Fix a memory leak that FP is
not closed.
1999-05-25 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* grub/main.c: Replace OPT_DISABLE_CONFIG_FILE and
OPT_DISABLE_CURSES with OPT_NO_CONFIG_FILE and OPT_NO_CURSES
respectively.
(longopts): Rename from "disable-config-file" to
"no-config-file", and from "disable-curses" to "no-curses".
(usage): Use "grub" instead of ARGV[0], read the standards.
Change the help message according to the changes above.
(main): Handle OPT_NO_CONFIG_FILE and OPT_NO_CURSES, instead
of OPT_DISABLE_CONFIG_FILE and OPT_DISABLE_CURSES.
1999-05-21 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* docs/TODO: Moved to ...
* TODO: ... here.
* docs/BUGS: Moved to ...
* BUGS: ... here.
* docs/COPYING: Removed.
* docs/Makefile.am (EXTRA_DIST): Get rid of BUGS.
* Makefile.am (EXTRA_DIST): Set to BUGS.
1999-05-17 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* acinclude.m4 (grub_ASM_EXT_C): Do not overrun the command
shift. Reported by Pavel Roskin <pabel_roskin@geocities.com>.
1999-05-14 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* docs/Makefile.am (info_TEXINFOS): Added multiboot.texi.
* docs/multiboot.texi: New file. From Kunihiro Ishiguro.
1999-05-12 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* grub/asmstub.c: Include <errno.h>. Reported by Kunihiro
Ishiguro <kunihiro@zebra.org>.
1999-05-11 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
Reported by Brian Brunswick <brian@skarpsey.demon.co.uk>:
* shared_src/asm.S (start) [STAGE1_5]: Jump to 0x0:0x2000.
* shared_src/cmdline.c (enter_cmdline): Doesn't check for the jump
address in stage2. We are not paranoid.
Add a missing RAW_ADDR macro.
* shared_src/diskio.c (grub_open): Call setup_part even in stage1.5.
And, include necessary functions that were eliminated incorrectly.
* shared_src/char_io.c [STAGE1_5]: Eliminate unnecessary functions
for stage1.5.
* grub/asmstub.c (nread): New function. Handle EINTR.
(nwrite): Likewise.
(biosdisk) [I_AM_VERY_BRAVE]: When SUBFUNC is BIOSDISK_WRITE, call
nwrite.
Reported by Pavel Roskin <pavel_roskin@geocities.com>:
* shared_src/fsys_ext2fs.c (off_t): Renamed to ...
(linux_off_t): ... this.
* shared_src/defs.h (off_t): Renamed to ...
(mach_off_t): ... this.
* shared_src/fs.h (BBOFF): Use mach_off_t instead of off_t.
(SBOFF): Likewise.
* e2fs_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Set to 81920.
* fat_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Likewise.
* ffs_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Set to 7168.
1999-05-03 Gordon Matzigkeit <gord@trick.fig.org>
From Pavel Roskin:
* shared_src/shared.h: Redeclare.
* grub/main.c (main): Use strncpy rather than pointer assignment
to set the config file name.
* grub/asmstub.c: Make config_file a static array, not a pointer.
Correct the value of VERSION_STRING.
1999-04-10 Gordon Matzigkeit <gord@trick.fig.org>
* debian/rules (build): Install into /lib instead of /share.
1999-05-03 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
Preliminary non-interactive use support.
* grub/main.c (use_config_file): New variable.
(use_curses): Likewise.
(OPT_DISABLE_CONFIG_FILE): New constant.
(OPT_DISABLE_CURSES): Likewise.
(OPT_BATCH): Likewise.
(longopts): Add new options, --disable-config-file, --disable-curses,
and --batch.
(usage): Print the help messages about these new options.
(main): Handle them.
* grub/asmstub.c (grub_stage2) [HAVE_LIBCURSES]: If ! USE_CURSES,
fallback non-curses code.
(stop) [HAVE_LIBCURSES]: Likewise.
(cls) [HAVE_LIBCURSES]: Likewise.
(getxy) [HAVE_LIBCURSES]: Likewise.
(gotoxy) [HAVE_LIBCURSES]: Likewise.
(grub_putchar) [HAVE_LIBCURSES]: Likewise.
(getkey) [HAVE_LIBCURSES]: Likewise.
(checkkey) [HAVE_LIBCURSES]: Likewise.
(set_attrib) [HAVE_LIBCURSES]: Likewise.
* shared_src/cmdline.c (enter_cmdline): Do not use getc, but use
getkey.
* shared_src/stage2.c (cmain) [GRUB_UTIL]: Check if USE_CONFIG_FILE
is non-zero or not.
* shared_src/shared.h (getc): Removed.
(use_config_file) [GRUB_UTIL]: Add the declaration.
(use_curses) [GRUB_UTIL]: Likewise.
1999-05-02 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* shared_src/asm.S (biosdisk_standard): Pop %ebp correctly, reported
by Pavel Roskin <pavel_roskin@geocities.com>.
1999-04-25 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* docs/menu.lst: Rewritten, so that it contains up-to-date
information and FAQish configuration examples.
1999-04-09 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* shared_src/asm.S (get_diskinfo_floppy): Correct the number of heads
and the one of cylinders.
1999-04-06 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* grub/asmstub.c (get_diskinfo): Compute the total number of sectors
for DRIVE.
* shared_src/asm.S (get_diskinfo_standard): Clear the data segment
after calling int 0x13. Restore the base pointer after returning
to protected mode.
(get_diskinfo_floppy): Likewise.
* shared_src/bios.c (get_diskinfo): Always set the size of DRP to
the max size of DRP, regardless of the major version of extensions.
1999-04-03 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* shared_src/shared.h (struct geometry): Declare total_sectors as
unsigned long instead of unsigned long long, because GRUB represents
a sector number by 4bytes integer, so it doesn't make sense.
* shared_src/bios.c (biosdisk) [!NO_INT13_FALLBACK]: Recompute
TOTAL_SECTORS according to CHS information.
(get_diskinfo) [DEBUG]: Print the geometry of DRIVE.
* shared_src/disk_io.c (real_open_partition): Set PART_LENGTH to
BUF_GEOM.TOTAL_SECTORS.
1999-04-01 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* docs/texinfo.tex: Copied from automake-1.4a.
* configure.in (SHARED_SRC_RULES): Add bios into shared sources.
* e2fs_stage1_5/Makefile.am (e2fs_stage1_5_exec_LDADD): Added bios.o.
* fat_stage1_5/Makefile.am (fat_stage1_5_exec_LDADD): Likewise.
* ffs_stage1_5/Makefile.am (ffs_stage1_5_exec_LDADD): Likewise.
* stage2/Makefile.am (stage2_exec_LDADD): Likewise.
* stage2_debug/Makefile.am (stage2_debug_exec_LDADD): Likewise.
* shared_src/Makefile.am (EXTRA_DIST): Added bios.c.
* shared_src/asm.S (biosdisk): Deleted. Now defined in bios.c.
(get_diskinfo): Likewise.
(biosdisk_int13_extensions): New function.
(biosdisk_standard): Likewise.
(check_int13_extensions): Likewise.
(get_diskinfo_int13_extensions): Likewise.
(get_diskinfo_standard): Likewise.
(get_diskinfo_floppy): Likewise.
* shared_src/bios.c: New file.
* shared_src/shared.h (struct geometry): Added new member,
total_sectors.
1999-03-28 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* shared_src/stage2.c (print_entries): Correctly assign MENU_ENTRIES
the entries starting from FIRST.
1999-03-27 Gordon Matzigkeit <gord@trick.fig.org>
* Change everything to use memset and memmove instead of bzero and
bcopy. GNB's Not BSD.
* shared_src/shared.h (grub_memset): Adapted from grub_bzero.
(grub_memmove): Adapted from grub_bcopy.
* grub/asmstub.c (checkkey): Fix unterminated comment.
* shared_src/char_io.c (grub_printf): Renamed from printf.
(grub_tolower): Renamed from tolower.
(grub_isspace): Renamed from isspace.
(grub_strncat): Renamed from strncat.
(grub_strstr): Renamed from strstr.
(grub_bcopy): Renamed from bcopy.
(grub_bzero): Renamed from bzero.
From Bradford Hovinen:
* shared_src/char_io.c (get_cmdline): Add new argument to hide
password entry.
(grub_strcmp): New function.
* shared_src/shared.h (get_cmdline): Fix declaration.
(grub_strcmp): Declare.
* shared_src/stage2.c (run_menu): Use get_cmdline with an
ECHO_CHAR of `*'. This protects against both brute-force and
sidelong-glance password cracking attempts.
* grub/main.c (usage): Display defaults for stage2 options.
* grub/asmstub.c [WITHOUT_LIBC_STUBS]: Renamed from
NO_REMAPPING_LIBC_FUNCTIONS.
* grub/main.c: Likewise.
* shared_src/shared.h: Likewise.
1999-03-27 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* grub/asmstub.c (set_attrib): Use inch and addch, instead of
chgat, because chgat doesn't work as expected.
1999-03-26 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* grub/asmstub.c (grub_stage2) [HAVE_LIBCURSES]: Call nodelay.
(checkkey) [HAVE_LIBCURSES]: If getting an input character, then
ungetch it, because checkkey shouldn't modify the input queue.
Use file descriptors instead of file pointers to support
>4GB disks in Linux.
* grub/asmstub.c (grub_stage2): Call close instead of fclose.
(get_diskinfo): Call open instead of fopen.
(biosdisk) [__linux__]: Use _llseek instead of lseek.
(biosdisk): Call read instead of fread.
Add options so that the user can specify the config file.
* grub/Makefile.am (CPPFLAGS): Use -fwritable-strings, because
grub assumes that all strings resides at the data section.
* grub/main.c: Define NO_REMAPPING_LIBC_FUNCTIONS before including
shared.h.
(OPT_CONFIG_FILE): New macro.
(OPT_INSTALL_PARTITION): Likewise.
(OPT_BOOT_DRIVE): Likewise.
(longopts): Add new options, config-file, install-partition and
boot-drive.
(usage): Add the documentation for them.
(main): Add handling code for OPT_CONFIG_FILE, OPT_INSTALL_PARTITION
and OPT_BOOT_DRIVE.
* grub/asmstub.c: Define NO_REMAPPING_LIBC_FUNCTIONS before including
shared.h.
(config_file): Make it char * instead of char [].
(getrtsecs): Return current time instead of 0xff.
* shared_src/shared.h [NO_REMAPPING_LIBC_FUNCTIONS]: Don't define
libc-API-compatible function names.
(config_file): Change the prototype from char [] to char *.
(grub_putchar): Renamed from putchar.
1999-03-25 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* char_io.c (get_cmdline): Call cl_setcpos even if lpos == llen,
because ncurses won't update the cursor position.
* grub/main.c (OPT_HOLD): New macro.
(longopts): New option --hold.
(usage): Add the documentation about --hold.
(main): Set hold if --hold is specified. Wait until cleared.
1999-03-22 Gordon Matzigkeit <gord@trick.fig.org>
* shared_src/cmdline.c (enter_cmdline): Check the return value of
set_device in the `root' command.
* shared_src/char_io.c (memcheck): Special-case cur_part_desc and
reenable memory checking.
1999-03-21 Gordon Matzigkeit <gord@trick.fig.org>
* shared_src/boot.c (load_image): Make sure we use the mapped
address before actually writing data to memaddr.
* shared_src/char_io.c (get_cmdline): Only zero-terminate if there
were leading blanks. This prevents accidental truncation of
commands.
* grub/asmstub.c (get_diskinfo): Cache device geometries as well
as file handles.
Use the Linux HDIO_GETGEO ioctl to make a better guess at hard
disk geometries.
1999-03-16 Gordon Matzigkeit <gord@trick.fig.org>
* shared_src/shared.h (geometry_t): Delete typedef, until we
actually use it.
1999-03-16 OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>
* shared_src/asm.S (biosdisk): Use a structure for geometry
instead of a integer.
(get_diskinfo): Take a pointer to a geometry structure as the
second argument, and fill a geometry in it. Return 1 if an error
occurs, otherwise return 0.
* shared_src/boot.c (bsd_boot): Compute BIOS geometries for BSD.
* shared_src/cmdline.c (enter_cmdline): Declare dest_geom as
struct geometry.
* shared_src/disk_io.c (buf_geom): Declare as struct geometry.
* shared_src/filesys.h (SECTORS): Deleted.
(HEADS): Likewise.
(CYLINDERS): Likewise.
* shared_src/shared.h (BIOSDISK_FLAG_LBA_EXTENSION): New macro.
(struct geometry): New structure.
(buf_geom): Correct the prototype.
(get_diskinfo): Likewise.
(biosdisk): Likewise.
1999-03-15 Gordon Matzigkeit <gord@trick.fig.org>
* grub/asmstub.c (doit): Nested function to get a clean stack
frame while in grub_stage2.
Use different assembler magic. From OKUJI Yoshinori.
1999-03-14 Gordon Matzigkeit <gord@trick.fig.org>
* shared_src/stage2.c (run_menu): Use A_REVERSE and A_NORMAL
constants instead of magic numbers.
* shared_src/shared.h (A_REVERSE): Renamed from ATTR_INVERSE for
compatibility with curses.
(A_NORMAL): Renamed from ATTR_NORMAL.
* shared_src/cmdline.c (enter_cmdline): Change prompt to "grub> ".
(enter_cmdline): Only abort the boot if we are in a script.
* shared_src/stage2.c (run_menu): Change prompts to "grub edit> ".
* shared_src/char_io.c (memcheck): Use RAW_ADDR to compute memory
locations.
(get_cmdline): Change the `goto next line' code to account for
newlines deleting to end of line under curses.
* Innumerable cleanups to fix warnings. There are still too many
typecasts in the wrong places (int variables used to hold
pointers, then casted to a pointer type), but things look better.
* configure.in (CPPFLAGS): Bump up GCC warnings to -Wall
-Wmissing-prototypes -Wunused.
* shared_src/shared.h: Delete stupid declarations, and totally
rearrange for clarity.
(inb, outb): Move to cmdline.c, since it's only used there.
(print_possibilities, fsmax, fsys_table): Move definitions to
disk_io.c.
* grub/asmstub.c: Fill in more stubs.
1999-03-13 Gordon Matzigkeit <gord@trick.fig.org>
* shared_src/gunzip.c (border): Rename to bitorder, to resolve
clash with curses.
* shared_src/stage2.c (timeout): Rename to grub_timeout.
* configure.in: Check for curses libraries for use with
/sbin/grub.
* shared_src/shared.h (KEY_DELETE): Rename to KEY_DC, for
compatibility with curses.
(KEY_INSERT): Rename to KEY_IC.
(KEY_PGDN): Rename to KEY_NPAGE.
(KEY_PGUP): Rename to KEY_PPAGE.
* shared_src/asm.S (asm_getkey): Renamed to getkey.
* shared_src/char_io.c (getkey): Delete, because it's useless.
* shared_src/shared.h: Resolve name clashes with libc by renaming
overlapping functions to have grub_ prefixes, then defining
macros.
* grub/asmstub.c (start_stage2): Make some assertions about our
scratch memory area.
* shared_src/shared.h (end): Delete declaration.
(RAW_ADDR, RAW_SEG): Macros to redirect /sbin/grub memory requests
through grub_scratch_mem.
* grub/asmstub.c (get_mem_map): Implement, simulating 4MB
contiguous memory.
(get_code_end): Implement, simulating with a malloced area.
grub/asmstub.c (start_stage2): Initialize grub_scratch_mem.
* shared_src/asm.S (get_mem_map): Some BIOSes expect the high word
of %eax to be zero.
(get_code_end): Move this from common.c so that we can stub it out
in the simulator.
* debian/rules: Make sure info files end up in /usr/info, not
/info.
1999-03-10 Gordon Matzigkeit <gord@trick.fig.org>
* shared_src/asm.S (biosdisk): Make LBA mode work correctly. From
OKUJI Yoshinori.
Unconditionally define NO_INT13_FALLBACK until we release GRUB
0.6. This will help debug any problems with the LBA support until
then.
1999-03-09 Gordon Matzigkeit <gord@trick.fig.org>
* shared_src/asm.S (biosdisk): Compute location of
disk_address_packet correctly. From OKUJI Yoshinori.
1999-03-08 Gordon Matzigkeit <gord@trick.fig.org>
* docs/grub.texi: New Texinfo documentation.
* shared_src/disk_io.c (set_device): First stab at interpreting
Mach-style partition naming.
* shared_src/stage2.c (run_menu): Don't say it was a failure if
enter_cmdline returns nonzero... just wait for a key.
* shared_src/cmdline.c (enter_cmdline): Return nonzero, and avoid
the fallback command if we did an install.
* shared_src/asm.S (_start): New explicit symbol to supress
warnings.
* e2fs_stage1_5/Makefile.am (NO_FANCY_STUFF): Renamed to STAGE1_5,
since that describes this conditional more accurately.
* fat_stage1_5/Makefile.am: Likewise.
* ffs_stage1_5/Makefile.am: Likewise.
* shared_src/asm.S: Likewise.
* shared_src/char_io.c: Likewise.
* shared_src/common.c: Likewise.
* shared_src/disk_io.c: Likewise.
* shared_src/fsys_ext2fs.c: Likewise.
* shared_src/fsys_ffs.c: Likewise.
* shared_src/shared.h: Likewise.
1999-03-07 Gordon Matzigkeit <gord@trick.fig.org>
* configure.in (SHARED_SRC_RULES): Automatically generate
Makefile dependencies for files in shared_src.
e2fs_stage1_5/Makefile.am: Use them.
fat_stage1_5/Makefile.am: Likewise.
ffs_stage1_5/Makefile.am: Likewise.
grub/Makefile.am: Likewise.
stage2/Makefile.am: Likewise.
stage2_debug/Makefile.am: Likewise.
* shared_src/disk_inode.h: Fix typo: i_ic shouldn't be defined.
* shared_src/fsys_ffs.c (block_map): Make static, since this
function isn't used outside of its defining file.
* shared_src/disk_io.c [NO_FANCY_STUFF]: Eliminate a whole bunch
more functions from the stage1.5. From OKUJI Yoshinori.
* shared_src/fsys_ffs.c: Likewise.
* shared_src/char_io.c: Likewise.
1999-03-05 Gordon Matzigkeit <gord@trick.fig.org>
* shared_src/char_io.c (getkey): Don't set BUF_DRIVE to -1.
BUF_DRIVE has nothing at all to do with getkey.
* shared_src/common.c (err_list): Change description of ERR_GEOM
to be more informative.
* Makefile.am (configure): Depend on debian/changelog.
* configure.in (host_cpu): Make all fully i386-compatible CPUs be
identified as i386.
(AM_INIT_AUTOMAKE): Fetch values for PACKAGE and VERSION from
debian/changelog, so that we only have one file to update.
* shared_src/asm.S (get_diskinfo): Fix a few bit-twiddling bugs in
the BIOS extension detection code.
(biosdisk) [AWARD_INT13_EXTENSIONS]: Preliminary implementation
of Award's encoding of cylinder bits 10 and 11.
(biosdisk) [NO_INT13_FALLBACK]: If defined, don't use the standard
disk interface if the extended interface fails.
* configure.in: Make sure $(host_cpu) and $(host_vendor) are
substituted into the Makefile.
* e2fs_stage1_5/Makefile.am (pkgdatadir): Install files in
$(datadir)/grub/$(host_cpu)-$(host_vendor).
* fat_stage1_5/Makefile.am: Likewise.
* ffs_stage1_5/Makefile.am: Likewise.
* stage1/Makefile.am: Likewise.
* stage2/Makefile.am: Likewise.
* stage2_debug/Makefile.am: Likewise.
1999-03-03 Gordon Matzigkeit <gord@trick.fig.org>
* shared_src/asm.S (biosdisk): Use LBA mode if high nibble of
GEOMETRY is nonzero.
(get_diskinfo): Set high nibble of GEOMETRY (0xf0000000) to 1 if
LBA mode is detected.
1999-03-02 Gordon Matzigkeit <gord@trick.fig.org>
* shared_src/disk_io.c (make_saved_active): Use BIOSDISK_READ and
BIOSDISK_WRITE.
* shared_src/cmdline.c (enter_cmdline): Use BIOSDISK_WRITE.
* shared_src/shared.h (BIOSDISK_SUBFUNC_READ,
BIOSDISK_SUBFUNC_WRITE): Delete constants.
* shared_src/asm.S (biosdisk): Change subfunc argument to be
read=0, write=1.
* configure.in: Drop redundant AC_PROG_INSTALL. From OKUJI
Yoshinori.
1999-03-01 Gordon Matzigkeit <gord@trick.fig.org>
* debian/rules (binary-arch): Properly install README.debian.
* acinclude.m4 (grub_OBJCOPY_ABSOLUTE): Don't forget to move the
old binary out of the way before reentering the loop.
(grub_ASM_ADDR32): Delete conftest files after running the test.
* debian/rules (binary-arch): Remove empty /sbin directory until
/sbin/grub is installed. Use $(DESTDIR) instead of $(prefix) to
install files.
* shared_src/asm.S (version_string): Set the version string from
the VERSION specified in configure.in.
* Change all Makefiles into Makefile.ams. Many major build
environment changes to get Automake/Autoconf working nicely.
1999-02-28 Gordon Matzigkeit <gord@trick.fig.org>
* NEWS: Moved from docs/NEWS.
* configure.in, acinclude.m4: New files for Autoconf. From OKUJI
Yoshinori.
* AUTHORS, INSTALL: New files.
1999-02-24 Gordon Matzigkeit <gord@trick.fig.org>
* stage1/stage1.S (after_BPB): Do a hard disk probe first, so that
we can work with IDE floppies (like the LS-120).
* Run GNU Indent on */*.[ch].
1999-02-21 Gordon Matzigkeit <gord@trick.fig.org>
* debian: Add to the distribution, since we maintain the GRUB
Debian package ourselves.
* grub/asmstub.c: New file to implement stubbed assembly functions
under Unix.
* stage1/Makefile: Delete spurious dependencies on Makefile.
* stage2/Makefile: Likewise.
* stage2_debug/Makefile: Likewise.
* grub/Makefile: Likewise.
* shared_src/fsys_ext2fs.c (ext2fs_dir): Follow symbolic links
rather than giving an error.
* shared_src/common.c (err_list): Use labeled elements to
associate messages with error codes.
* shared_src/shared.h: Make error codes into an enumerated type.
* shared_src/common.c (err_list): Add ERR_SYMLINK_LOOP.
* shared_src/shared.h: Likewise.
* shared_src/char_io.c (bcopy): Don't make any assumptions about
the length of an unsigned long.
* grub/Makefile: Treat CFLAGS, CPPFLAGS, LDFLAGS according to
GNU standards.
* stage2/Makefile: Likewise.
* e2fs_stage1_5/Makefile: Likewise.
* fat_stage1_5/Makefile: Likewise.
* ffs_stage1_5/Makefile: Likewise.
1999-02-20 Gordon Matzigkeit <gord@trick.fig.org>
* docs/index.html: Rename to grub.html, so that we don't hide
files in this directory from a web browser.
1999-02-15 Gordon Matzigkeit <gord@trick.fig.org>
* Makefile.end (PROGS): Add grub.
* grub/main.c: New file.
* grub/Makefile: New directory to contain the stage2 Unix program.
* shared_src/cmdline.c: Use substring.
* shared_src/fsys_ext2fs.c: Likewise.
* shared_src/fsys_fat.c: Likewise.
* shared_src/fsys_ffs.c: Likewise.
* shared_src/stage2.c: Likewise.
* shared_src/shared.h: Delete strcmp, declare substring.
* shared_src/char_io.c (strcmp): Rename to `substring', because
this function doesn't behave the same as libc's strcmp.
1999-02-14 Gordon Matzigkeit <gord@trick.fig.org>
* shared_src/shared.h: (addr32, data32): Delete definitions.
* stage1/stage1.S: Modify to use GAS's new .code16 semantics.
shared_src/asm.S: Likewise.
* configure: Test to see if the `addr32' instruction is supported.
Ian Lance Taylor says that GAS's interpretation of `.code16' has
changed. Older versions always generated 32-bit code, but
implicitly inserted addr32 and data32 when .code16 was given.
Newer versions generate 16-bit code, and require manual addr32 and
data32 overrides.
* shared_src/shared.h: Add some assertions to check that buffer
addresses are properly defined.
1999-02-12 Gordon Matzigkeit <gord@trick.fig.org>
* shared_src/stage2.c (run_menu): Pause if we failed to boot both
the default and fallback entries.
* configure: Check to make sure that GAS actually honors .code16
directives.
1999-02-02 Gordon Matzigkeit <gord@trick.fig.org>
* shared_src/asm.S: Fix typo that called interrupt 0xd (decimal
13) instead of 0x13.
1999-01-31 Gordon Matzigkeit <gord@trick.fig.org>
* e2fs_stage1_5/Makefile: Avoid gratuitous dependencies on
Makefile.
* fat_stage1_5/Makefile: Likewise.
* ffs_stage1_5/Makefile: Likewise.
* Makefile.end (PROGS): Add e2fs_stage1_5, fat_stage1_5, and
grubinst.
(distclean): New GNU standard rule.
1998-10-23 Gordon Matzigkeit <gord@trick.fig.org>
* configure: Accept `--host' as a synonym for `--target', and
accept a non-optional argument as the target name. Join the
prefix to the tool name with a hyphen.
* shared_src/disk_io.c (print_fsys_type): Always print the
partition type.
* shared_src/stage2.c (run_menu): Check to make sure that the
fallback entry is nonnegative.
(run_menu): For consistency, use `e' rather than enter to edit the
command entry.