1999-06-24 OKUJI Yoshinori Build process is cleaned up. Stage 2 and Stage 1.5's are all built in the directory stage2. From Pavel Roskin : * 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 * stage1/stage1.S: Call testb instead of andb when checking if the drive is a floppy. 1999-06-23 OKUJI Yoshinori * 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 . * 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 * 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 * shared_src/Makefile.am (EXTRA_DIST): Add bios.c. Reported by Pavel Roskin . 1999-06-21 OKUJI Yoshinori * 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 From Alexander K. Hudek : * 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 Color-menu support based on Peter Astrand '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 * 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 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 * 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 * 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 Reported from Klaus Reichl : * 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 * grub/asmstub.c (grub_stage2): Fix a memory leak that FP is not closed. 1999-05-25 OKUJI Yoshinori * 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 * 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 * acinclude.m4 (grub_ASM_EXT_C): Do not overrun the command shift. Reported by Pavel Roskin . 1999-05-14 OKUJI Yoshinori * docs/Makefile.am (info_TEXINFOS): Added multiboot.texi. * docs/multiboot.texi: New file. From Kunihiro Ishiguro. 1999-05-12 OKUJI Yoshinori * grub/asmstub.c: Include . Reported by Kunihiro Ishiguro . 1999-05-11 OKUJI Yoshinori Reported by Brian Brunswick : * 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 : * 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 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 * debian/rules (build): Install into /lib instead of /share. 1999-05-03 OKUJI Yoshinori 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 * shared_src/asm.S (biosdisk_standard): Pop %ebp correctly, reported by Pavel Roskin . 1999-04-25 OKUJI Yoshinori * docs/menu.lst: Rewritten, so that it contains up-to-date information and FAQish configuration examples. 1999-04-09 OKUJI Yoshinori * shared_src/asm.S (get_diskinfo_floppy): Correct the number of heads and the one of cylinders. 1999-04-06 OKUJI Yoshinori * 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 * 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 * 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 * shared_src/stage2.c (print_entries): Correctly assign MENU_ENTRIES the entries starting from FIRST. 1999-03-27 Gordon Matzigkeit * 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 * grub/asmstub.c (set_attrib): Use inch and addch, instead of chgat, because chgat doesn't work as expected. 1999-03-26 OKUJI Yoshinori * 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 * 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 * 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 * 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 * shared_src/shared.h (geometry_t): Delete typedef, until we actually use it. 1999-03-16 OKUJI Yoshinori * 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 * 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 * 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 * 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 * 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 * shared_src/asm.S (biosdisk): Compute location of disk_address_packet correctly. From OKUJI Yoshinori. 1999-03-08 Gordon Matzigkeit * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * shared_src/asm.S: Fix typo that called interrupt 0xd (decimal 13) instead of 0x13. 1999-01-31 Gordon Matzigkeit * 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 * 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.