make the linux-ppc packags be in synch with other platforms
[tangerine.git] / arch / common / boot / grub / ChangeLog
blob0f93033ec114769b9dffd25db00b9629a71cceff
1 2005-05-08  Yoshinori K. Okuji  <okuji@enbug.org>
3         * configure.ac (AC_INIT): Upgraded to 0.97.
5         * compile: Copied from Automake 1.9.4.
6         * config.guess: Likewise.
7         * config.sub: Likewise.
8         * depcomp: Likewise.
9         * install-sh: Likewise.
10         * missing: Likewise.
11         * mkinstalldirs: Likewise.
12         * mdate-sh: Likewise.
13         * docs/texinfo.tex: Likewise.
15 2005-05-08  Yoshinori K. Okuji  <okuji@enbug.org>
17         * stage2/fsys_xfs.c (next_dentry): Use arrays of arrays instead of
18         arrays of pointers for USUAL, to avoid read-only strings. Reported
19         by Sven Wegener <swegener@gentoo.org>.
21 2005-03-28  Yoshinori K. Okuji  <okuji@enbug.org>
23         * lib/device.c (get_drive_geometry): Use ST.ST_SIZE instead of
24         ST.ST_BLOCKS to get the total number of sectors, because st_blocks
25         is not the same if it is a sparse file.
27 2005-03-19  Yoshinori K. Okuji  <okuji@enbug.org>
29         * stage2/stage2.c (cmain): Initialize DEFAULT_FILE to an empty
30         string. Reported by NATORI Shin <natori@adm.s.u-tokyo.ac.jp>.
32 2005-03-15  Yoshinori K. Okuji  <okuji@enbug.org>
34         * stage2/fsys_fat.c (fat_mount): Ignore the 3rd bit of a media
35         descriptor, because some BIOSes overwrite this value, according
36         to the storage mode (e.g. USB Floppy or USB HDD).
38 2005-02-16  Yoshinori K. Okuji  <okuji@enbug.org>
40         * grub/asmstub.c (grub_stage2): Remove the attribute `volatile'
41         from doit. I hope this change is safe for all compilers.
43 2005-02-15  Yoshinori K. Okuji  <okuji@enbug.org>
45         * stage2/builtins.c (install_func): If DEST_DRIVE is a hard
46         disk, enable the workaround in Stage 1 by replacing the jmp
47         with double nop's.
49         * stage1/stage1.h (STAGE1_BOOT_DRIVE_CHECK): New macro.
50         (STAGE1_BOOT_DRIVE_MASK): Removed.
52         * stage1/stage1.S (boot_drive_check): New label. This implements
53         a different workaround for buggy BIOSes which don't pass boot
54         drive correctly. This is effective for BIOSes which pass a value
55         without the seventh bit (0x80).
56         (boot_drive_mask): Removed.
58 2005-02-03  Yoshinori K. Okuji  <okuji@enbug.org>
60         * grub/asmstub.c (console_current_color): Make it global as
61         declared.
62         (grub_stage2): Tweak the declaration and the definition of the
63         nested function doit.
65 2005-02-02  Yoshinori K. Okuji  <okuji@enbug.org>
67         * stage2/smp-imps.h (imps_any_new_apics): Removed.
68         (imps_enabled): Likewise.
69         (imps_lapic_addr): Likewise.
70         (imps_num_cpus): Likewise.
71         (imps_cpu_apic_map): Likewise.
72         (imps_apic_cpu_map): Likewise.
74         * stage2/Makefile.am (libgrub_a_CFLAGS): Remove
75         -fwritable-strings. Not required for the grub shell actually.
77         * grub/Makefile.am (AM_CFLAGS): Likewise.
79 2005-02-01  Yoshinori K. Okuji  <okuji@enbug.org>
81         * grub/asmstub.c (grub_stage2): Use auto instead of static for
82         nested functions.
84         * stage2/char_io.c (memcheck) [GRUB_UTIL]: Likewise.
86         * stage2/builtins.c (blocklist_func): Likewise.
87         (color_func): Likewise.
88         (install_func): Likewise.
89         (setkey_func): Likewise.
91         * lib/device.c (read_device_map): Likewise.
93 2005-01-30  Yoshinori K. Okuji  <okuji@enbug.org>
95         * configure.ac (AC_INIT): Upgraded to 0.96.
97 2004-10-11 Jason Thomas <jason@staff.pnc.com.au>
99         Patch from Stefanus Du Toit  <sjdutoit@uwaterloo.ca>
100         * docs/kernel.c.texi (cmain): Incremement mod by one, instead of
101         sizeof(module_t), since it's already a pointer of type module_t.
102         * docs/kernel.c (cmain): Do the same.
104 2004-09-20  Yoshinori K. Okuji  <okuji@enbug.org>
106         * docs/internals.texi (Internals): Changed to an appendix.
108         * docs/grub.texi (@setchapternewpage): Changed to odd from off.
109         (@contents): Moved to the beginning.
110         (Future): Changed to an appendix.
112 2004-08-17  Yoshinori K. Okuji  <okuji@enbug.org>
114         * stage2/cmdline.c (run_script): Fix a reversed conditional.
115         Reported by Alban Crequy <alban.crequy@apinc.org>.
117 2004-08-07  Jason Thomas  <jason@staff.pnc.com.au>
118         
119         From Michael Hohnbaum <hohnbaum@us.ibm.com>:
120         * stage2/fsys_ext2fs.c (ext2fs_read): Handle sparse files.
122 2004-07-24  Yoshinori K. Okuji  <okuji@enbug.org>
124         * stage2/stage2.c (cmain): Terminate DEFAULT_FILE with NUL
125         correctly. Reported by Alban Crequy <alban.crequy@apinc.org>.
127 2004-07-21  Robert Millan  <robertmh@gnu.org>
129         Patch from David Weinehall <tao@debian.org>
130         * util/mkbimage: Fix XSI-isms (for supporting POSIX-only shells).
132 2004-07-20  Robert Millan  <robertmh@gnu.org>
134         * util/grub-install.in: Detect GNU/k*BSD systems as well.
136 2004-07-16  Yoshinori K. Okuji  <okuji@enbug.org>
138         * util/grub-install.in (convert): Fix the sed statement for
139         Linux. The expression was ambigious in some cases.
141 2004-06-29  Robert Millan  <robertmh@gnu.org>
143         * util/grub-set-default.in: Fix minor syntax error (non-escaped
144         characters).
146 2004-06-24  Robert Millan  <robertmh@gnu.org>
148         Fixes for FHS compliance. (/usr/share is for arch-independant data)
149         * stage1/Makefile.am: Move stage files to pkglibdir.
150         * stage2/Makefile.am: Likewise.
151         * docs/grub.texi: s,/usr/share,/usr/lib,g.
152         * util/grub-image.in: Look for stage files in pkglibdir.
153         * util/grub-install.in: Likewise.
155         * util/grub-install.in: Improve usage message.
157 2004-06-20  Yoshinori K. Okuji  <okuji@enbug.org>
159         This is a big change on saving a default entry. This change
160         makes it possible to set up a quite robust system using GRUB.
161         Now we do not use the second sector of Stage 2 to store an
162         entry number but use the file /boot/grub/default. This file
163         must be generated by grub-set-default, although this file is
164         plain-text.
165         
166         * util/grub-set-default.in: New file.
167         
168         * util/grub-install.in (grub_set_default): New variable.
169         Use /grub instead of /boot/grub on OpenBSD as well as NetBSD.
170         Run grub-set-default to make a default file.
172         * util/Makefile.am (sbin_SCRIPTS): Added grub-set-default.
174         * stage2/stage2.c (run_menu): Change the fallback handling to
175         support multiple fallback entries.
176         (cmain): Likewise. Also, get a saved entry from a default file
177         if possible, before reading a config file.
179         * stage2/shared.h (DEFAULT_FILE_BUF): New macro.
180         (DEFAULT_FILE_BUFLEN): Likewise.
181         (CMDLINE_BUF): Set to DEFAULT_FILE_BUF + DEFAULT_FILE_BUFLEN.
182         (MENU_BUFLEN): Set to 0x8000 + PASSWORD_BUF - MENU_BUF.
183         (fallback_entry): Removed.
184         (fallback_entries): Declared.
185         (fallback_entryno): Likewise.
186         (MAX_FALLBACK_ENTRIES): New macro.
188         * stage2/cmdline.c (run_script): Use FALLBACK_ENTRYNO instead of
189         FALLBACK_ENTRY.
191         * stage2/builtins.c (fallback_entry): Removed.
192         (fallback_entryno): New variable.
193         (fallback_entries): Likewise.
194         (init_config): Initialize FALLBACK_ENTRYNO and FALLBACK_ENTRIES.
195         (fallback_func): Rewritten completely.
196         (savedefault_func): Likewise.
198         * docs/grub.texi (grub-set-default): New direntry.
199         (Installation): Describe grub-set-default for manual
200         installations.
201         (Making your system robust): New section.
202         (Booting once-only): New subsection.
203         (Booting fallback systems): Likewise.
204         (fallback): Describe multiple fallback entries.
205         (savedefault): Describe an optional argument.
206         (Invoking grub-set-default): New chapter.
207         (Future): Replaced with a description about GRUB 2.
209         * configure.ac (AC_CONFIG_FILES): Added util/grub-set-default.
211 2004-06-19  Yoshinori K. Okuji  <okuji@enbug.org>
213         * stage2/ufs2.h (int8_t): Renamed to ...
214         (grub_uint8_t): ... this.
215         (int16_t): Renamed to ...
216         (grub_int16_t): ... this.
217         (int32_t): Renamed to ...
218         (grub_int32_t): ... this.
219         (int64_t): Renamed to ...
220         (grub_int64_t): ... this.
221         (uint8_t): Renamed to ...
222         (grub_uint8_t): ... this.
223         (uint16_t): Renamed to ...
224         (grub_uint16_t): ... this.
225         (uint32_t): Renamed to ...
226         (grub_uint32_t): ... this.
227         (uint64_t): Renamed to ...
228         (grub_uint64_t): ... this.
229         (u_char): Renamed to ...
230         (grub_u_char): ... this.
231         (u_int): Renamed to ...
232         (grub_u_int): ... this.
233         (u_int8_t): Renamed to ...
234         (grub_u_int8_t): ... this.
235         (u_int16_t): Renamed to ...
236         (grub_u_int16_t): ... this.
237         (u_int32_t): Renamed to ...
238         (grub_u_int32_t): ... this.
239         (u_int64_t): Renamed to ...
240         (grub_u_int64_t): ... this.
241         (ino_t): Renamed to ...
242         (grub_ino_t): ... this.
243         All callers are changed.
245 2004-06-14  Jeroen Dekkers  <jeroen@dekkers.cx>
247         * stage2/ufs2.h (__uint8_t): Remove.
248         (__uint16_t): Likewise.
249         (__uint32_t): Likewise.
250         (__uint64_t): Likewise.
251         (ino_t): Typedef to uint32_t.
253 2004-06-13  Yoshinori K. Okuji  <okuji@enbug.org>
255         * stage2/Makefile.am (noinst_HEADERS): Added ufs2.h.
256         
257 2004-06-13  Yoshinori K. Okuji  <okuji@enbug.org>
259         * configure.ac (AC_INIT): Upgraded to 0.95.
261 2004-05-23  Yoshinori K. Okuji  <okuji@enbug.org>
263         * stage2/char_io.c (grub_isspace): Use a switch sentense instead
264         of an if sentense, because that reduces the size.
266         * lib/device.c (read_device_map): Change the max number of DRIVE
267         to 127 from 8. This was too strict.
269         * stage2/asm.S (stop_floppy): Call pusha and popa outside the
270         block of real mode code. Reported by Guillem Jover
271         <guillem@debian.org>.
273 2004-05-20  Damian Ivereigh  <damian@cisco.com>
275         * netboot/main.c: Fixed bootp only code so that options
276         work properly. This fix is obvious when compared with the
277         DHCP code.
279 2004-05-17  Pavel Roskin  <proski@gnu.org>
281         * stage2/char_io.c (safe_parse_maxint): Disable for stage 1.5.
282         (grub_tolower): Disable for stage 1.5 except fat_stage1_5.
283         (grub_memcmp): Disable for stage 1.5 except iso9660_stage1_5.
285 2004-05-14  Yoshinori K. Okuji  <okuji@enbug.org>
287         From Sergey Matveychuk <sem@ciam.ru>:
288         * stage2/size_test: Added a check for ufs2_stage1_5.
290         * stage2/shared.h (STAGE2_ID_UFS2_STAGE1_5): New macro.
291         [FSYS_UFS2] (STAGE2_ID): Set to STAGE2_ID_UFS2_STAGE1_5.
293         * stage2/filesys.h (FSYS_UFS2_NUM): New macro.
294         [FSYS_UFS2] (ufs2_mount): New prototype.
295         [FSYS_UFS2] (ufs2_read): Likewise.
296         [FSYS_UFS2] (ufs2_dir): Likewise.
297         [FSYS_UFS2] (ufs2_embed): Likewise.
298         (NUM_FSYS): Added FSYS_UFS2_NUM.
300         * stage2/disk_io.c (fsys_table): Added an ufs2 entry.
302         * stage2/builtins.c (setup_func): Added ufs2 into the
303         STAGE1_5_MAP.
305         * stage2/Makefile.am (libgrub_a_SOURCES): Added fsys_ufs2.c.
306         (libgrub_a_CFLAGS): Added -DFSYS_UFS2=1.
307         (pkgdata_DATA): Added ufs2_stage1_5.
308         (noinst_PROGRAMS): Added ufs2_stage1_5.exec.
309         (ufs2_stage1_5_exec_SOURCES): New variable.
310         (ufs2_stage1_5_exec_CFLAGS): Likewise.
311         (ufs2_stage1_5_exec_CCASFLAGS): Likewise.
312         (ufs2_stage1_5_exec_LDFLAGS): Likewise.
314         * grub/Makefile.am (AM_CPPFLAGS): Added -DFSYS_ISO9660=1,
315         -DFSYS_JFS=1, -DFSYS_REISERFS=1, -DFSYS_UFS2=1, -DFSYS_VSTAFS=1,
316         -DFSYS_XFS=1, and -DUSE_MD5_PASSWORDS=1.
318         * configure.ac (--disable-ufs2): New option.
320         * stage2/fsys_ufs2.c: New file.
321         * stage2/ufs2.h: Likewise.
323 2004-05-10  Robert Millan  <robertmh@gnu.org>
325         * lib/device.c: Mangle __FreeBSD_* macro usage to support
326         kFreeBSD-based non-FreeBSD systems (i.e. GNU/kFreeBSD).
328         Implement runtime detection of version of kFreeBSD. Now if
329         we build against kFreeBSD 5.x headers the GRUB shell will work on
330         both 4.x and 5.x.
332         Replace `u_int_t' types with portable `unsigned int' and old
333         reference to `geometry' structure to new `geom' one.
335         * docs/menu.lst: Split GNU/kFreeBSD and GNU/kNetBSD as separate
336         options than FreeBSD and NetBSD, respectively. There are minor
337         differences now (different paths).
339 2004-05-03  Pavel Roskin  <proski@gnu.org>
341         * stage2/char_io.c (convert_to_ascii): Remove "%b" support.
342         It's non-standard and is not used anymore.
343         (grub_printf): Likewise.
345 2004-04-29  Robert Millan  <robertmh@gnu.org>
347         From Yann Dirson  <dirson@debian.org>:
348         * util/mkbimage: Misc syntax fixes.
350 2004-04-29  Jeroen Dekkers  <jeroen@dekkers.cx>
352         * stage2/char_io.c (grub_memcmp): Define for stage1.5 too.
354         * stage2/fsys_iso9660.c (iso9660_mount): Use memcmp() instead of
355         __builtin_memcmp().
356         (iso9660_dir): Likewise.
358 2004-04-26  Christian Jones  <chjones@aleph0.com>
360         * docs/grub.texi (Making a GRUB bootable CD-ROM): minor edits,
361         including a few compatibility notes and a change to
362         -boot-load-size 4 for the mkisofs command.
364 2004-04-22  Jeroen Dekkers  <jeroen@dekkers.cx>
366         * Makefile.am (AUTOMAKE_OPTIONS): Add "gnu".
367         * configure.ac: Update to work with automake 1.8, quote all
368         AC_DEFUN's correctly and provide descriptions for AC_DEFINE's.
369         * acinclude.m4: Likewise.
370         * acconfig.h: Removed.
371         
372         * stage1/Makefile.am (.exec): Use suffix rules instead of pattern
373         rules.
374         * stage2/Makefile.am (.exec): Likewise.
376 2004-04-18  Yoshinori K. Okuji  <okuji@enbug.org>
378         * docs/grub.texi (Making a GRUB bootable CD-ROM): New section.
380         * stage2/disk_io.c (set_device): Use CH instead of *DEVICE to
381         test the first character of DEVICE, because DEVICE is
382         incremented.
383         Reported by Bernhard Treutwein.
385 2004-04-15  Yoshinori K. Okuji  <okuji@enbug.org>
387         * netboot/fsys_tftp.c (buf_fill): Cast 1 to unsigned short
388         explicitly so that the constant doesn't extend unsigned short
389         to int automatically.
390         Reported by Eduard Guzovsky <eguzovsk@enterasys.com>.
392         * docs/grub.texi (Invoking grub-md5-crypt): Fixed the chapter
393         name.
394         Reported by Martin Pool <mbp@sourcefrog.net>.
396 2004-04-04  Yoshinori K. Okuji  <okuji@enbug.org>
398         * configure.ac (STAGE2_CFLAGS): Check if -fno-stack-protector is
399         supported by GCC. If yes, added the option. This is necessary
400         for OpenBSD, because the stack protector defines additional
401         symbols. Reported by uc.sheda <uc.sheda@laposte.net>.
403 2004-03-28  Pavel Roskin  <proski@gnu.org>
405         * stage2/boot.c: Imply --no-mem-option for Linux kernels with
406         protocol version 2.03 and above (Linux 2.4.18 and newer).
408 2004-03-27  Yoshinori K. Okuji  <okuji@enbug.org>
410         * stage2/char_io.c [!GRUB_UTIL] (memcpy): New function. It is
411         defined as an alias of grub_memmove. This is copied from GRUB 2.
413         * stage2/disk_io.c (print_completions): Simplified conditionals
414         to make it easier to edit the file with Emacs.
415         Added support for (cd).
416         (set_device): Likewise.
418         * stage2/common.c (init_bios_info): Check if BOOT_DRIVE is a
419         CDROM drive. If it is true, set CDROM_DRIVE to BOOT_DRIVE.
420         (cdrom_drive): New variable.
422         From Leonid Lisovskiy <lly@pisem.net>:
423         * stage2/start_eltorito.S: New file.
425         * stage2/stage2.c (run_menu): Use GRUB_INVALID_DRIVE instead of
426         0xFF.
428         * stage2/shared.h (STAGE2_ID_ISO9660_STAGE1_5): New macro.
429         [FSYS_ISO9660] (STAGE2_ID): Set to STAGE2_ID_ISO9660_STAGE1_5.
430         (struct geometry): Added a new member ``sector_size''.
431         (BIOSDISK_FLAG_CDROM): New macro.
432         (cdrom_drive): Declared.
434         * stage2/fsys_iso9660.c: New file.
435         * stage2/iso9660.h: Likewise.
437         * stage2/filesys.h (FSYS_ISO9660_NUM): New macro.
438         [FSYS_ISO9660] (iso9660_mount): Declared.
439         [FSYS_ISO9660] (iso9660_read): Likewise.
440         [FSYS_ISO9660] (iso9660_dir): Likewise.
441         (NUM_FSYS): Added FSYS_ISO9660_NUM.
443         * stage2/disk_io.c (fsys_table) [FSYS_ISO9660]: Added iso9660.
444         (current_drive): Use GRUB_INVALID_DRIVE.
445         (log2): New function.
446         (rawread): Use BUF_GEOM.SECTOR_SIZE instead of SECTOR_SIZE.
447         Change the type of BUFADDR from int to char *.
448         Use a virtual track to make sure that one track fits in the
449         buffer.
450         (sane_partition): Allow CURRENT_DRIVE to be CDROM_DRIVE, because
451         a bios drive for a CD-ROM is often assigned to greater than
452         0x88.
453         (set_device): Use GRUB_INVALID_DRIVE instead of 0xFF.
454         (setup_part): Likewise.
456         * stage2/cmdline.c (init_cmdline): Use GRUB_INVALID_DRIVE.
458         * stage2/builtins.c (install_func): Use GRUB_INVALID_DRIVE.
459         (setup_func): Added iso9660_stage1_5.
461         * stage2/bios.c (biosdisk): Don't fall back to the CHS mode
462         if the drive is a CDROM.
463         (get_cdinfo): New function.
464         (get_diskinfo): Call get_cdinfo if the drive is greater than or
465         equal to 0x88 or the drive supports LBA.
466         Set the sector size to SECTOR_SIZE if it is not a CD-ROM.
468         * stage2/asm.S (biosdisk_int13_extensions): Take a word
469         argument AX instead of a byte argument AH.
470         (get_diskinfo_int13_extensions): Removed.
472         * stage2/Makefile.am (noinst_HEADERS): Added iso9660.h.
473         (libgrub_a_SOURCES): Added fsys_iso9660.c.
474         (libgrub_a_CFLAGS): Added -DFSYS_ISO9660=1.
475         (pkgdata_DATA): Added iso9660_stage1_5 and stage2_eltorito.
476         (noinst_PROGRAMS): Added iso9660_stage1_5.exec and
477         start_eltorito.exec.
478         (noinst_DATA): Added start_eltorito.
479         (pre_stage2_exec_SOURCES): Added fsys_iso9660.c.
480         (START_ELTORITO_LINK): New variable.
481         (start_eltorito_exec_SOURCES): Likewise.
482         (start_eltorito_exec_CCASFLAGS): Likewise.
483         (start_eltorito_exec_LDFLAGS): Likewise.
484         (start_eltorito_exec-start.$(OBJEXT)): New dependency.
485         (stage2_eltorito): New target.
486         (iso9660_stage1_5_exec_SOURCES): New variable.
487         (iso9660_stage1_5_exec_CFLAGS): Likewise.
488         (iso9660_stage1_5_exec_CCASFLAGS): Likewise.
489         (iso9660_stage1_5_exec_LDFLAGS): Likewise.
491         * stage1/stage1.h (GRUB_INVALID_DRIVE): New macro.
493         * stage1/stage1.S (boot_drive): Use the macro GRUB_INVALID_DRIVE.
494         (real_start): Likewise.
496         * lib/device.c (get_drive_geometry): Set GEOM->SECTOR_SIZE to
497         SECTOR_SIZE by default.
499         * configure.ac (--disable-iso9660): New option.
501 2004-03-13  Yoshinori K. Okuji  <okuji@enbug.org>
502         
503         From Daniele Zelante <zeldan@email.it>:
504         * stage2/asm.S (stop_floppy): Use INT 13, AH=00h to stop the
505         floppy controller instead of a direct I/O.
507 2004-03-12  Yoshinori K. Okuji  <okuji@enbug.org>
509         * stage2/serial.c (serial_putchar): Handle the character code
510         127 as a backspace. Reported by Florian Engelhardt
511         <f.engelhardt@gmx.net>.
513 2004-03-12  Yoshinori K. Okuji  <okuji@enbug.org>
515         From Boji Tony Kannanthanam <boji.t.kannanthanam@intel.com>:
516         * util/grub-install.in (convert): Add support for ATARAID
517         device names.
518         * lib/device.c (get_ataraid_disk_name) [__linux__]: New
519         function.
520         (init_device_map) [__linux__]: Probe ATARAID disks.
522         * stage2/size_test (check): Don't use the local statement any
523         longer. It was unneeded actually. Reported by Paul Jarc.
525 2004-03-12  Yoshinori K. Okuji  <okuji@enbug.org>
526         
527         From Sergey Matveychuk <sem@ciam.ru>:
528         * lib/device.c (get_drive_geometry): Do not open the same device
529         more than once unnecessarily.
530         (get_drive_geometry) [__FreeBSD_version >= 500040]: Use new
531         ioctl methods.
532         (get_floppy_disk_name) [__FreeBSD__ >= 4]: Use /dev/fd%d rather
533         than /dev/rfd%d.
534         (get_ide_disk_name) [__FreeBSD__ >= 4]: Use /dev/ad%d rather
535         than /dev/rad%d.
536         (get_scsi_disk_name) [__FreeBSD__ >= 4]: Use /dev/da%d rather
537         than /dev/rda%d.
538         * grub/asmstub.c (get_diskinfo): Check if ERRNO is EPERM as
539         well.
541 2004-02-28  Jeroen Dekkers  <jeroen@dekkers.cx>
543         * docs/grub.texi (partnew): Change @var{to} to @var{len}.
545 2004-02-18  Yoshinori K. Okuji  <okuji@enbug.org>
547         From Yury V. Umanets <umka@namesys.com>:
548         * stage2/fsys_reiserfs.c (REISER3FS_SUPER_MAGIC_STRING): New
549         macro.
550         (reiserfs_mount): Added checks for ReiserFS 3.
551         (reiserfs_embed): Likewise.
553 2004-01-25  Yoshinori K. Okuji  <okuji@enbug.org>
555         * docs/grub.texi (Obtaining and Building GRUB): Instead of
556         describing how to use the anoncvs method, specify the URL of
557         the description page on Savannah.
558         Reported by Bernhard Treutwein.
560 2004-01-18  Yoshinori K. Okuji  <okuji@enbug.org>
562         From Thomas Schwinge <kischde@gmx.net>:
563         * grub/Makefile.am (AM_CPPFLAGS): New variable.
564         (AM_CFLAGS): Removed all cpp flags.
566         * stage2/xfs.h (__int8_t): Renamed to ...
567         (xfs_int8_t): ... this.
568         (__uint8_t): Renamed to ...
569         (xfs_uint8_t): ... this.
570         (__int16_t): Renamed to ...
571         (xfs_int16_t): ... this.
572         (__uint16_t): Renamed to ...
573         (xfs_uint16_t): ... this.
574         (__int32_t): Renamed to ...
575         (xfs_int32_t): ... this.
576         (__uint32_t): Renamed to ...
577         (xfs_uint32_t): ... this.
578         (__int64_t): Renamed to ...
579         (xfs_int64_t): ... this.
580         (__uint64_t): Renamed to ...
581         (xfs_uint64_t): ... this.
582         All callers are changed.x
584         From Egmont Koblinger <egmont@uhulinux.hu>:
585         * util/grub-install.in: Support an install devices in GRUB's
586         notation without parentheses.
588         * docs/grub.texi (Installing GRUB using grub-install): Added an
589         example of using grub-install without parentheses.
591 2004-01-18  Yoshinori K. Okuji  <okuji@enbug.org>
592         
593         * util/grub-install.in: Use the first word of GRUB_SHELL when
594         checking if the grub shell is present. This is necessary to
595         support options to the grub shell (e.g. grub --read-only).
597         From Eric Kvaalen <E_Kvaalen.Arnesen@noos.fr>:
598         * docs/grub.texi: Many bug fixes.
600 2004-01-17  Yoshinori K. Okuji  <okuji@enbug.org>
602         * lib/device.c [__linux__] (MAJOR): Support 32 bit and 64 bit
603         dev_t. This code is stolen from glibc.
604         Suggested by Shen Feng <shen@nanjing-fnst.com>.
606 2004-01-11  Yoshinori K. Okuji  <okuji@enbug.org>
608         * stage2/terminfo.c (ti_set_term): Use a pointer to struct
609         terminfo instead to avoid GCC's bug, which inserts a reference
610         to memcpy implicitly.
611         (ti_get_term): Likewise.
612         All callers are fixed.
614         * stage2/terminfo.h (ti_set_term): Updated.
615         (ti_get_term): Likewise.
617         * stage2/shared.h (struct linux_kernel_header): New member,
618         initrd_max_address. Defined in the boot protocol 2.03 or higher.
620         * stage2/boot.c (load_initrd): If the boot protocol is greater
621         than or equal to 2.03, use the field ``initrd_max_address''
622         instead of LINUX_INITRD_MAX_ADDRESS.
624 2003-12-30  Yoshinori K. Okuji  <okuji@enbug.org>
626         * stage2/fsys_ext2fs.c (ext2_is_fast_symlink): New function.
627         (ext2fs_dir): Use ext2_is_fast_symlink to check if the current
628         inode is a fast or slow symlink. This change was required
629         because Linux now uses acl seriously (i.e. incompatibility).
630         Reported by Chris PeBenito <pebenito@gentoo.org> and Seemant
631         Kulleen <seemant@gentoo.org>
633 2003-11-30  Yoshinori K. Okuji  <okuji@enbug.org>
635         * lib/device.c (read_device_map) (sho_warning): New internal
636         function.
637         (read_device_map): If DRIVE is greater than 8, emit a warning
638         and ignore the drive, rather than exiting abnormally.
639         Reported by Greg Newby <newby@arsc.edu>.
641 2003-10-19  Yoshinori K. Okuji  <okuji@enbug.org>
643         Migrated to newer autotools. Also, don't install mkbimage
644         because its name is too general and it does not conform to the
645         GNU Coding Standards in some points.
646         
647         * util/Makefile.am (EXTRA_DIST): New variable.
648         (sbin_SCRIPTS): Removed mkbimage.
649         (noinst_SCRIPTS): Added mkbimage.
651         * stage1/Makefile.am (AM_ASFLAGS): Renamed to ...
652         (AM_CCASFLAGS): ... this.
654         * stage2/Makefile.am (pre_stage2_exec_ASFLAGS): Renamed to ...
655         (pre_stage2_exec_CCASFLAGS): ... this.
656         (start_exec_ASFLAGS): Renamed to ...
657         (start_exec_CCASFLAGS): ... this.
658         (e2fs_stage1_5_exec_ASFLAGS): Renamed to ...
659         (e2fs_stage1_5_exec_CCASFLAGS): ... this.
660         (fat_stage1_5_exec_ASFLAGS): Renamed to ...
661         (fat_stage1_5_exec_CCASFLAGS): ... this.
662         (ffs_stage1_5_exec_ASFLAGS): Renamed to ...
663         (ffs_stage1_5_exec_CCASFLAGS): ... this.
664         (minix_stage1_5_exec_ASFLAGS): Renamed to ...
665         (minix_stage1_5_exec_CCASFLAGS): ... this.
666         (reiserfs_stage1_5_exec_ASFLAGS): Renamed to ...
667         (reiserfs_stage1_5_exec_CCASFLAGS): ... this.
668         (vstafs_stage1_5_exec_ASFLAGS): Renamed to ...
669         (vstafs_stage1_5_exec_CCASFLAGS): ... this.
670         (jfs_stage1_5_exec_ASFLAGS): Renamed to ...
671         (jfs_stage1_5_exec_CCASFLAGS): ... this.
672         (xfs_stage1_5_exec_ASFLAGS): Renamed to ...
673         (xfs_stage1_5_exec_CCASFLAGS): ... this.
674         (diskless_exec_ASFLAGS): Renamed to ...
675         (diskless_exec_CCASFLAGS): ... this.
676         (nbloader_exec_ASFLAGS): Renamed to ...
677         (nbloader_exec_CCASFLAGS): ... this.
678         (pxeloader_exec_ASFLAGS): Renamed to ...
679         (pxeloader_exec_CCASFLAGS): ... this.
681         * configure.in: Removed.
682         * configure.ac: New file. Mostly derived from configure.in.
683         
684 2003-10-19  Yoshinori OKUJI  <okuji@enbug.org>
686         From KB Sriram <mail_kb@yahoo.com>:
687         * stage2/disk_io.c (set_device) [SUPPORT_NETBOOT]: Added support
688         for a completion of a network device.
689         (print_completions): Likewise.
691 2003-10-10  Robert Millan  <robertmh@gnu.org>
693         * config.guess: Update from official source (CVS).
694         * config.sub: Likewise.
696 2003-09-18  Robert Millan  <robertmh@gnu.org>
698         * docs/texinfo.tex: Update from ftp.gnu.org.
700 2003-09-05  KB Sriram  <mail_kb@yahoo.com>
702         * stage2/fsys_fat.c: Fix missdetection of ext2fs as fatfs.
704 2003-09-05  Robert Millan  <robertmh@gnu.org>
706         * docs/menu.lst (GNU/Linux): Add commented initrd command, which
707         is consistent with documentation.
709 2003-09-01  Robert Millan  <robertmh@gnu.org>
711         * docs/menu.lst: Add NetBSD, OpenBSD, GNU/KFreeBSD and
712         GNU/KNetBSD.
714 2003-08-13  Jason Thomas  <jason@intology.com.au>
716         * util/grub-install.in (resolve_symlink): New function to
717         resolve symlinks.
718         (find_device): Moved symlink code to new function.
719         Before we convert the install_device we attempt to resolve it if
720         its a symlink using the new function.
721         * util/mbchk.c (check_multiboot): The sense of an error message
722         was inverted.
723         Reported by Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>.
725 2003-08-12  Jochen Hoenicke  <jochen@gnu.org>
727         * stage2/fsys_reiserfs.c (read_tree_node): Fixed a typo; only
728         matters for very large fs when tree doesn't fit in cache.
729         (IH_KEY_OFFSET): Don't check for INFO->version.  There are
730         actually old version file systems that use new version items.
731         (IH_KEY_ISTYPE): Likewise.
732         (reiserfs_dir): Likewise.
734 2003-08-09  Thierry Laronde  <tlaronde@polynum.org>
736         * util/mkbimage: New File. `mkbimage' depends on GRUB and
737         existed elsewhere. It is now part of GRUB so that people can
738         fix/contribute.
739         * util/Makefile.am (sbin_SCRIPTS): Added script `mkbimage'
741 2003-08-01  Jason Thomas  <jason@intology.com.au>
743         * util/grub-install.in: support --no-floppy
744         This allow users to specify the --no-floppy option which
745         is passed onto the grub shell, so it does not probe the floppy
746         drive. 
747         Patch from kesha@diedas.soften.ktu.lt
749 2003-06-17  Jochen Hoenicke  <jochen@gnu.org>
751         * stage2/fsys_reiserfs.c (reiserfs_mount): Clear the node cache.
752         This fixes a problem where files from other partitions appear at
753         the wrong partition.  Problem reported by Johan Regin.
755 2003-05-04  Yoshinori K. Okuji  <okuji@enbug.org>
757         * docs/grub.texi (partnew): Fixed the inconsistency between the
758         implementation and the documentation. The last argument is the
759         length instead of the ending address.
760         Reported by Daniel Farrell <s2108287@student.rmit.edu.au>.
762 2003-03-19  Yoshinori K. Okuji  <okuji@enbug.org>
764         From Adam Lackorzynski <adam@os.inf.tu-dresden.de>:
765         * stage2/shared.h (KEY_NPAGE): Changed to 0x5100.
766         (KEY_PPAGE): Changed to 0x4900.
768 2003-03-19  Yoshinori K. Okuji  <okuji@enbug.org>
770         * stage2/boot.c (load_image): Check if DATA_LEN plus SECTOR_SIZE
771         is less than or equal to MULTIBOOT_SEARCH, instead of if
772         DATA_LEN is less than or equal to MULTIBOOT_SEARCH.
773         Reported by Neelkanth Natu <neelnatu@yahoo.com>.
775 2003-03-10  Yoshinori K. Okuji  <okuji@enbug.org>
777         From Andrew Walrond <andrew@walrond.org>:
778         * stage2/fsys_reiserfs.c (struct reiserfs_journal_header):
779         Remove an unnecessary ``long''.
781 2003-03-10  Yoshinori K. Okuji  <okuji@enbug.org>
783         From Tilmann Bubeck:
784         * stage2/builtins.c [SUPPORT_SERIAL] (terminfo_func): Unescape
785         arguments before copying them, and escape sequences before
786         printing them.
787         * stage2/terminfo.h (TERMINFO_LEN): Changed to 40.
789 2003-02-20  Yoshinori K. Okuji  <okuji@enbug.org>
791         * util/grub-install.in (find_device): Fix the sed script.
793 2003-02-17  Yoshinori K. Okuji  <okuji@enbug.org>
795         * lib/device.c (check_device): If DEVICE is empty, just return
796         1.
797         (get_scsi_disk_name) [__QNXNTO__]: Make NAME empty, because SCSI
798         disks are detected as IDE disks on QNX RTP.
800         From Taketo Kabe <kabe@sra-tohoku.co.jp>:
801         * lib/device.c (get_ide_disk_name) [__QNXNTO__]: Set NAME to
802         "/dev/hdX".
803         (get_floppy_disk_name) [__QNXNTO__]: Set NAME to "/dev/fdX".
804         * stage2/mb_info.h (struct AddrRangeDesc): Specified with the
805         attribute packed.
806         * stage2/shared.h (struct mmar_desc): Likewise.
808 2003-01-29  Yoshinori K. Okuji  <okuji@enbug.org>
810         From Ilguiz Latypov:
811         * configure.in: Fix a syntax error in a sed script.
812         * stage2/bios.c (get_diskinfo): PhoenixBIOS 4.0 Revision 6.0 
813         for ZF Micro might understand the greater buffer size for the
814         "get drive parameters" int 0x13 call in its own way.  
815         Supposedly the BIOS assumes even bigger space is available and
816         thus corrupts the stack.  This is why we specify the exactly 
817         necessary size of 0x42 bytes.
819 2003-01-25  Yoshinori K. Okuji  <okuji@enbug.org>
821         From Steven Dick <ssd.gnu@mmae.ucf.edu>:
822         * stage2/pc_slice.h (PC_SLICE_TYPE_DELL_UTIL): New macro.
823         (IS_PC_SLICE_TYPE_FAT): Recognize PC_SLIDE_TYPE_DELL_UTIL as
824         well.
826 2003-01-25  Yoshinori K. Okuji  <okuji@enbug.org>
828         From Karsten Scheibler <karsten.scheibler@student.uni-halle.de>:
829         * stage2/terminfo.c (term): Don't use a C99-style initializer.
831 2003-01-16  Yoshinori K. Okuji  <okuji@enbug.org>
833         From H.J. Lu <hjl@gnu.org>:
834         * stage2/disk_io.c (part_start): Use unsigned long to support
835         large disks.
836         (part_length): Likewise.
837         * stage2/shared.h (part_start): Likewise.
838         (part_length): Likewise.
840 2003-01-05  Yoshinori K. Okuji  <okuji@enbug.org>
842         * configure.in (CFLAGS): When the default CFLAGS is used,
843         eliminate -O2 and -g from CFLAGS, because Autoconf may
844         automatically set CFLAGS to them.
846 2003-01-02  Yoshinori K. Okuji  <okuji@enbug.org>
848         From Jeremy Katz:
849         * configure.in: Support building on x86_64 with gcc -m32.
851 2003-01-02  Yoshinori K. Okuji  <okuji@enbug.org>
853         From Jeremy Katz:
854         * stage2/fsys_ext2fs.c (ext2fs_dir): Initialize STR_CHK to shut
855         up GCC.
856         * stage2/fsys_minix.c (minix_dir): Likewise.
858 2002-12-21  Yoshinori K. Okuji  <okuji@enbug.org>
860         * stage2/asm.S (gateA20): First, try a BIOS call (INT 15H,
861         AX=2400/2401). Use the keyboard controller, only if that failed.
863 2002-12-11  Yoshinori K. Okuji  <okuji@enbug.org>
865         Add a workaround for buggy BIOSes which don't pass boot drive
866         correctly. The idea is that GRUB forces the fixed disk flag
867         when booted from a hard disk. When BIOS loads GRUB directly,
868         the boot drive must be either of 0x00 and 0x80, so this should
869         work, if those BIOSes always pass zero to %dl. AFAIK, this
870         assumption is always correct.
872         * stage2/builtins.c (install_func): Store the fixed disk flag of
873         the destination drive in BOOT_DRIVE_MASK in Stage 1.
875         * stage1/stage1.h (STAGE1_BOOT_DRIVE_MASK): New macro.
877         * stage1/stage1.S (boot_drive_mask): New variable. It is or'ed
878         to %dl.
880 2002-12-09  Yoshinori K. Okuji  <okuji@enbug.org>
882         * stage2/char_io.c (init_page): Change the software name from
883         "GRUB" to "GNU GRUB". This was inaccurate. Reported by Ciaran
884         O'Riordan <coriordan@compsoc.com>.
886 2002-12-04  Yoshinori K. Okuji  <okuji@enbug.org>
888         * stage2/builtins.c (embed_func): When checking if the disk can
889         store Stage 1.5, check every partition, if it isn't empty.
891 2002-12-04  Yoshinori K. Okuji  <okuji@enbug.org>
893         * stage2/stage2.c (print_entry): Put a right arrow, if the entry
894         is longer than 71 characters. Reported by Pavel Roskin.
896 2002-12-04  Yoshinori K. Okuji  <okuji@enbug.org>
898         * stage2/disk_io.c (set_device): If '(n' is given, add 'd' into
899         DEVICE. Reported by Pavel Roskin.
901 2002-12-03  Yoshinori K. Okuji  <okuji@enbug.org>
903         Change the terminal structure a bit, to turn the cursor state
904         explicitly. Suggested by Pavel Roskin.
905         
906         * stage2/term.h (struct term_entry): Remove the member
907         `nocursor' and add `setcursor'.
908         [!STAGE1_5] (console_setcursor): New prototype.
909         [SUPPORT_HERCULES] (hercules_setcursor): Likewise.
910         [!STAGE1_5] (console_nocursor): Removed.
911         [SUPPORT_HERCULES] (hercules_nocursor): Likewise.
913         * stage2/stage2.c (run_menu): Call setcursor instead of
914         nocursor.
915         Call setcursor with 1 before starting a boot entry.
917         * stage2/shared.h (nocursor): Removed.
918         (setcursor): New prototype.
920         * stage2/hercules.c (herc_cursor_state): New variable.
921         (herc_turn_cursor): Removed.
922         (hercules_nocursor): Likewise.
923         (hercules_setcursor): New function.
925         * stage2/char_io.c (get_cmdline): Turn on the cursor at the
926         beginning, and restore it before returning.
927         (nocursor): Removed.
928         (setcursor): New function.
930         * stage2/asm.S (console_cursor_state): New variable.
931         (console_cursor_shape): Likewise.
932         (console_setcursor): New function.
933         (console_nocursor): Removed.
935         * grub/asmstub.c (console_setcursor): New function.
936         (hercules_setcursor): Likewise.
937         (console_nocursor): Removed.
938         (hercules_nocursor): Likewise.
940 2002-12-03  Yoshinori K. Okuji  <okuji@enbug.org>
942         * docs/grub.texi (terminfo): Fix a misleading English sentence.
943         Reported by Pavel Roskin.
944         * stage2/builtins.c (builtin_terminfo): Likewise.
946 2002-12-01  Yoshinori K. Okuji  <okuji@enbug.org>
948         From Alexander Langer <alex@big.endian.de>:
949         * stage2/freebsd.h (RB_GDB): New macro.
950         (RB_MUTE): Likewise.
951         (RB_MULTIPLE): Likewise.
953         * stage2/boot.c (bsd_boot): Set the bits of RB_MULTIPLE, RB_GDB
954         and RB_MUTE when "-D", "-g" and "-m" are specified,
955         respectively.
957 2002-12-01  Yoshinori K. Okuji  <okuji@enbug.org>
959         * docs/grub.texi (Reporting bugs): Specify the project page of
960         the BTS instead of the BTS itself.
962 2002-11-30  Yoshinori K. Okuji  <okuji@enbug.org>
964         * docs/Makefile.am (man_MANS): Added grub-terminfo.8.
965         ($(srcdir)/grub_terminfo.8): New target.
966         * utils/grub-terminfo.in: New file.
967         * util/Makefile.am (sbin_SCRIPTS): Added grub-terminfo.
968         * configure.in (AC_OUTPUT): Added util/grub-terminfo.
970         * docs/grub.texi (terminfo): New subsection.
971         (Invoking grub-terminfo): New chapter.
973         From Tilmann Bubeck <t.bubeck@reinform.de>:
974         * stage2/Makefile.am (noinst_HEADERS): Added terminfo.h and
975         tparm.h.
976         (libgrub_a_SOURCES): Added terminfo.c and tparm.c.
977         (pre_stage2_exe_SOURCES): Likewise.
978         * stage2/terminfo.c: New file.
979         * stage2/terminfo.h: Likewise.
980         * stage2/tparm.c: Likewise.
981         * stage2/tparm.h: Likewise.
982         * stage2/stage2.c (get_line_from_config): Fix handling of
983         backslashes.
984         * stage2/char_io.c (grub_putstr): New function.
985         (grub_printf): Use grub_putstr.
986         (substring): Add const into both arguments.
987         * stage2/builtins.c [SUPPORT_SERIAL]: Include terminfo.h.
988         [SUPPORT_SERIAL] (terminfo_func): New function.
989         [SUPPORT_SERIAL] (builtin_terminfo): New variable.
990          (builtin_table) [SUPPORT_SERIAL]: Added a pointer to
991         BUILTIN_TERMINFO.
992         * stage2/serial.c (serial_gotoxy): Use ti_cursor_address.
993         (serial_cls): Use ti_clear_screen.
994         (serial_highlight): use ti_enter_standout_mode and
995         ti_exit_standout_mode.
997 2002-11-30  Yoshinori K. Okuji  <okuji@enbug.org>
999         * stage2/disk_io.c (rawread): Make sure that SECTOR is valid.
1000         If not, set ERRNUM to ERR_GEOM and return zero. This check is
1001         critical when a partition table is corrupted.
1003 2002-11-28  Yoshinori K. Okuji  <okuji@enbug.org>
1005         * stage2/asm.S (console_cls): Write spaces to the entire screen
1006         instead of getting/setting the video mode, because this flickers
1007         the screen and is quite annoying, if using a LCD.
1009 2002-11-15  Yoshinori K. Okuji  <okuji@enbug.org>
1011         * docs/grub.texi (QNX): New subsection. Reported by
1012         Marian-Nicolae V. ION <marian_ion@noos.fr>.
1014 2002-10-28  Yoshinori K. Okuji  <okuji@enbug.org>
1016         * grub/asmstub.c (console_translate_key): Deal with KEY_PPAGE
1017         and KEY_NPAGE.
1018         * stage2/serial.c (serial_translate_key_sequence): Added two new
1019         codes for Page Up and Page Down.
1020         * stage2/asm.S (translation_table): Added entries for KEY_PPAGE
1021         and KEY_NPAGE.
1022         * stage2/stage2.c (run_menu): Deal with Page Up and Page Down.
1023         Also recognize the right key for the selection of a boot entry.
1024         Suggested by Adam Lackorzynski <adam@os.inf.tu-dresden.de>.
1026 2002-10-10  Jason Thomas  <jason@topic.com.au>
1028         * stage2/builtins.c (setup_func): Added missing space to --force-lba
1029         option. Reported by Kenneth Crudup <kenny@panix.com>
1031 2002-10-06  Yoshinori K. Okuji  <okuji@enbug.org>
1033         * stage2/asm.S (gateA20): Output a dummy command (0xff), as a
1034         workaround for USB keyboard hanging problem. Suggested by
1035         Hidetoshi Nishimaki <nishimaki@mxs.nes.nec.co.jp>.
1037 2002-10-06  Yoshinori K. Okuji  <okuji@enbug.org>
1039         * configure.in (falign_loop_flag): New variable. Set to if GCC
1040         supports `-falign-*'. If true, use `-falign-jumps',
1041         `-falign-loops' and `-falign-functions' instead of
1042         `-malign-jumps', `-malign-loops' and `-malign-functions',
1043         because `-malign-*' are obsolete in GCC 3.x. Reported by Jeremy
1044         Katz.
1046 2002-09-13  Yoshinori K. Okuji  <okuji@enbug.org>
1048         * stage2/serial.c (fill_input_buf): Take a new argument NOWAIT.
1049         If NOWAIT is true, don't loop.
1050         All callers are changed.
1052 2002-09-08  Yoshinori K. Okuji  <okuji@enbug.org>
1054         * configure.in (--disable-serial): Fix a typo in the
1055         description.
1057 2002-08-20  Jason Thomas <jason@topic.com.au>
1059         Changed highlight state code for hercules, console and serial.
1060         The state was 0 - normal or 1 - highlight.
1061         The state is now defined using an enum called color_state.
1063         * stage2/term.h (color_state): New enum.
1064         (COLOR_STATE_STANDARD): Standard color to use when not using
1065         user defined.
1066         (COLOR_STATE_NORMAL): User defined normal color.
1067         (COLOR_STATE_HIGHLIGHT): User defined highlight color.
1068         (console_highlight): Renamed to console_setcolorstate.
1069         (serial_highlight): Renamed to serial_setcolorstate.
1070         (hercules_highlight): Renamed to hercules_setcolorstate.
1071         * stage2/hercules.c (herc_highlight_state): Removed.
1072         (herc_standard_color): New variable.
1073         (herc_color_state): Likewise.
1074         (herc_highlight): Renamed to herc_setcolorstate.
1075         (herc_setcolorstate): Added switch to handle new states.
1076         * stage2/console.c (console_highlight_state): Removed.
1077         (console_standard_color): New variable.
1078         (console_color_state): Likewise.
1079         (console_highlight): Renamed to console_setcolorstate.
1080         (console_setcolorstate): Added switch to handle new states.
1081         * stage2/serial.c (serial_highlight): Renamed to
1082         serial_setcolorstate.
1083         (serial_setcolorstate): Adjusted 'if' to suit new states.
1084         * grub/asmstub.c (console_highlight): Renamed to
1085         console_setcolorstate.
1086         (console_setcolorstate): Adjusted 'if' to suit new states.
1087         * stage2/stage2.c (print_entry): Set color states using new
1088         states.
1089         (print_border): Likewise.
1090         * stage2/stage2.c (run_menu): Reverse if (!) to if () for
1091         uniformitty.
1093 2002-07-12  Yoshinori K. Okuji  <okuji@enbug.org>
1095         * stage2/boot.c (load_image): Rewrite the Linux booting support
1096         radically. Now it should work even on a machine having, say,
1097         only 128KB, theoretically. Of course, GRUB itself doesn't work
1098         on such a system, though.
1099         (load_initrd): Initialize LH based on CUR_ADDR, because the
1100         location becomes dynamic.
1101         * stage2/shared.h (LINUX_MAX_SETUP_SECTS): Set to 64.
1102         (LINUX_HEAP_END_OFFSET): Set to (0x9000 - 0x200).
1103         (LINUX_STAGING_AREA): Removed.
1104         (LINUX_SETUP): Likewise.
1105         (LINUX_KERNEL): Likewise.
1106         (LINUX_KERNEL_MAXLEN): Likewise.
1107         (LINUX_SETUP_SEG): Likewise.
1108         (LINUX_INIT_SEG): Likewise.
1109         (LINUX_SETUP_STACK): Set to 0x9000.
1110         (LINUX_BZIMAGE_ADDR): New macro.
1111         (LINUX_ZIMAGE_ADDR): Likewise.
1112         (LINUX_OLD_REAL_MODE_ADDR): Likewise.
1113         (CL_MY_LOCATION): Removed.
1114         (CL_MY_END_ADDR): Likewise.
1115         (CL_BASE_ADDR): Likewise.
1116         (CL_MAGIC): Renamed to ...
1117         (LINUX_CL_MAGIC): ... this.
1118         (LINUX_CL_OFFSET): New macro.
1119         (LINUX_CL_END_OFFSET): Likewise.
1120         (LINUX_SETUP_MOVE_SIZE): Likewise.
1121         (struct linux_kernel_header): Change the type of the member
1122         "cmd_line_ptr" to char *.
1123         (linux_data_tmp_addr): Declared.
1124         (linux_data_real_addr): Likewise.
1125         * stage2/asm.S [!STAGE1_5] (linux_data_tmp_addr): New variable.
1126         [!STAGE1_5] (linux_data_real_addr): Likewise.
1127         [!STAGE1_5] (big_linux_boot): Copy the real mode part from
1128         LINUX_DATA_TMP_ADDR to LINUX_DATA_REAL_ADDR.
1129         * grub/asmstub.c (linux_data_tmp_addr): New variable.
1130         (linux_data_real_addr): Likewise.
1132 2002-07-09  Yoshinori K. Okuji  <okuji@enbug.org>
1133         
1134         From Mark Kettenis <kettenis@chello.nl>:
1135         * stage2/boot.c (load_image): Recognize newer FreeBSD kernels.
1136         * stage2/i386-elf.h (EI_OSABI): New macro.
1137         (EI_ABIVERSION): Likewise.
1138         (ELFOSABI_FREEBSD): Likewise.
1139         (EI_PAD): Set to 9.
1141 2002-07-06  Yoshinori K. Okuji  <okuji@enbug.org>
1143         * stage2/shared.h (boot_part_offset): Removed.
1144         
1145         * stage2/disk_io.c (set_bootdev): Copy the partition information
1146         here. Now this function can call rawread, so it can fail.
1147         (boot_part_offset): Removed.
1149         * stage2/builtins.c (boot_func): Don't copy the partition
1150         information here.
1151         (real_root_func): Check ERRNUM after calling set_bootdev.
1153 2002-07-04  Yoshinori K. Okuji  <okuji@enbug.org>
1155         * docs/grub.texi (Reporting bugs): Use the group name (i.e.
1156         grub) instead of the group id (i.e. 68) for the URL of the BTS.
1158 2002-07-03  Yoshinori K. Okuji  <okuji@enbug.org>
1160         * stage2/serial.c [!GRUB_UTIL] (inb): Added a delay into this
1161         function itself.
1162         [!GRUB_UTIL] (outb): Likewise.
1163         [!GRUB_UTIL] (serial_hw_put): Increase the timeout value, and
1164         don't call serial_hw_delay explicitly any longer.
1165         (fill_input_buf): Increase the maximum number of retries, reset
1166         the counter to zero after getting a valid character, and don't
1167         call serial_hw_delay explicitly any longer.
1169 2002-07-03  Yoshinori K. Okuji  <okuji@enbug.org>
1171         * stage2/serial.c [!GRUB_UTIL] (serial_hw_fetch): Fixed a typo.
1172         Reported by Ilguiz Latypov.
1174 2002-07-01  Yoshinori K. Okuji <okuji@enbug.org>
1176         * Makefile.am (AUTOMAKE_OPTIONS): New variable. Specify the
1177         required Automake version explicitly.
1178         
1179 2002-06-30  Yoshinori K. Okuji <okuji@enbug.org>
1181         * stage2/builtins.c [SUPPORT_SERIAL || SUPPORT_HERCULES]
1182         (terminal_func): Set CURRENT_TERM to each of selected terminals
1183         before calling grub_printf, and restore CURRENT_TERM after it.
1184         Reported by Ilguiz Latypov.
1185         Prepend a carriage return to the prompting message, because it
1186         is ugly that the same messages fulfill the whole screen.
1188 2002-06-30  Yoshinori K. Okuji  <okuji@enbug.org>
1190         * stage2/serial.c [!GRUB_UTIL] (serial_hw_fetch): Fixed the
1191         conditional statement. Reported by Ilguiz Latypov.
1192         
1193 2002-06-24  Yoshinori K. Okuji  <okuji@enbug.org>
1195         * MAINTENANCE: New file.
1196         
1197 2002-06-15  Yoshinori K. Okuji  <okuji@enbug.org>
1199         * stage2/disk_io.c [SUPPORT_NETBOOT] (GRUB): Defined.
1200         [SUPPORT_NETBOOT]: Include etherboot.h.
1201         [!STAGE1_5] (print_completions) [SUPPORT_NETBOOT]: When
1202         completing a disk name, if NETWORK_READY is true, add "nd" as a
1203         completion.
1204         
1205 2002-06-15  Yoshinori K. Okuji  <okuji@enbug.org>
1207         * stage2/fsys_xfs.c (le32): Don't use bswap, but use xchgb and
1208         roll, because 386 doesn't have bswap. Reported by Frode Vatvedt
1209         Fjeld <frodef@acm.org>.
1210         
1211 2002-06-12  Yoshinori K. Okuji  <okuji@enbug.org>
1213         * netboot/main.c (ifconfig): If GW is specified, clear out the
1214         ARP entry for the gateway. If SVR is specified, clear out the
1215         ARP entry for the server. Reported by Uwe Dannowski
1216         <ud3@ira.uka.de>.
1217         
1218 2002-06-12  Yoshinori K. Okuji  <okuji@enbug.org>
1220         * util/grub-md5-crypt.in: Prompt to retype a password, and check
1221         if the passwords matches. Suggested by Matt Perry
1222         <matt@primefactor.com>.
1223         Also, don't use Perl any longer, because *BSD's sh and GNU
1224         support ``read -r'', and GRUB doesn't support any other
1225         operating system anyway.
1226         
1227 2002-06-12  Yoshinori K. Okuji  <okuji@enbug.org>
1229         The terminal handling code is rewritten radically.
1230         
1231         * stage2/console.c: New file.
1232         * stage2/term.h: Likewise.
1233         
1234         * stage2/Makefile.am (noinst_HEADERS): Added term.h.
1235         (libgrub_a_SOURCES): Added serial.c.
1236         (pre_stage2_exec_SOURCES): Added console.c.
1238         * stage2/asm.S (console_putchar): Rewritten from scratch.
1239         [!STAGE1_5] (translation_table): New variable.
1240         [!STAGE1_5] (translate_keycode): New function.
1241         [!STAGE1_5] (console_getkey): Call translate_keycode.
1242         [!STAGE1_5] (console_checkkey): Likewise.
1243         [!STAGE1_5] (nocursor): Renamed to ...
1244         [!STAGE1_5] (console_nocursor): ... this.
1245         [!STAGE1_5] (console_set_attrib): Removed.
1247         * stage2/builtins.c: Include term.h.
1248         (terminal): Removed.
1249         (normal_color): Likewise.
1250         (highlight_color): Likewise.
1251         (cat_func): Display a question mark when a non-printable
1252         character was read.
1253         (terminal_func): Rewritten almost from scratch.
1255         * stage2/char_io.c: Include term.h.
1256         [!STAGE1_5] (auto_fill): Removed.
1257         [!STAGE1_5] (term_table): New variable.
1258         [!STAGE1_5] (current_term): Likewise.
1259         [!STAGE1_5] (real_get_cmdline): New function. The code was
1260         stolen from the previous version of get_cmdline.
1261         [!STAGE1_5] (get_cmdline): Rewritten from scratch.
1262         [!STAGE1_5] (translate_keycode): Removed.
1263         [!STAGE1_5] (getkey): Rewritten from scratch.
1264         [!STAGE1_5] (checkkey): Likewise.
1265         (grub_putchar): Likewise.
1266         [!STAGE1_5] (gotoxy): Likewise.
1267         [!STAGE1_5] (getxy): Likewise.
1268         [!STAGE1_5] (cls): Likewise.
1269         [!STAGE1_5] (nocursor): New function.
1270         [SUPPORT_SERIAL] (serial_getxy): Removed.
1271         [SUPPORT_SERIAL] (serial_gotoxy): Likewise.
1272         [SUPPORT_SERIAL] (serial_cls): Likewise.
1273         [SUPPORT_SERIAL] (serial_getxy): Likewise.
1274         [!STAGE1_5] (set_attrib): Likewise.
1276         * stage2/cmdline.c (init_cmdline): Set COUNT_LINES to -1.
1278         * stage2/common.c [!STAGE1_5] (err_list): Removed
1279         ERR_NEED_SERIAL and added ERR_DEV_NEED_INIT.
1281         * stage2/hercules.c: Rewritten almost from scratch.
1282         * stage2/hercules.h (herc_putchar): Removed.
1283         (herc_cls): Likewise.
1284         (herc_getxy): Likewise.
1285         (herc_gotoxy): Likewise.
1286         (herc_set_attrib): Likewise.
1288         * stage2/serial.c: Rewritten almost from scratch.
1289         * stage2/serial.h: Likewise.
1291         * stage2/shared.h [GRUB_UTIL] (DISP_UL): Set to the same value
1292         as VGA's.
1293         [GRUB_UTIL] (DISP_UR): Likewise.
1294         [GRUB_UTIL] (DISP_LL): Likewise.
1295         [GRUB_UTIL] (DISP_LR): Likewise.
1296         [GRUB_UTIL] (DISP_HORIZ): Likewise.
1297         [GRUB_UTIL] (DISP_VERT): Likewise.
1298         [GRUB_UTIL] (DISP_LEFT): Likewise.
1299         [GRUB_UTIL] (DISP_RIGHT): Likewise.
1300         [GRUB_UTIL] (DISP_UP): Likewise.
1301         [GRUB_UTIL] (DISP_DOWN): Likewise.
1302         (grub_error_t): Removed ERR_NEED_SERIAL.
1303         Added ERR_DEV_NEED_INIT.
1304         (normal_color): Removed.
1305         (highlight_color): Likewise.
1306         (console_cls): Removed, because this is declared in term.h.
1307         (console_getxy): Likewise.
1308         (console_gotoxy): Likewise.
1309         (console_putchar): Likewise.
1310         (console_getkey): Likewise.
1311         (console_checkkey): Likewise.
1312         (console_set_attrib): Removed.
1313         (set_attrib): Likewise.
1314         [GRUB_UTIL] (nocursor): Declared.
1315         (auto_fill): Removed.
1316         (terminal): Likewise.
1317         (TERMINAL_CONSOLE): Likewise.
1318         (TERMINAL_SERIAL): Likewise.
1319         (TERMINAL_HERCULES): Likewise.
1320         (TERMINAL_DUMB): Likewise.
1321         (translate_keycode): Likewise.
1323         * stage2/stage2.c: Include term.h.
1324         (print_entry): Rewritten from scratch.
1325         (print_entries): Likewise.
1326         (print_border): Likewise.
1327         (set_line): Removed.
1328         (set_line_normal): Likewise.
1329         (set_line_highlight): Likewise.
1330         
1331         * grub/Makefile.am (AM_CFLAGS): Added -DSUPPORT_HERCULES=1.
1332         
1333         * grub/asmstub.c: Don't include hercules.h. Include term.h.
1334         (console_current_color): New variable.
1335         (console_translate_key): New function.
1336         (console_checkkey): Rewritten from scratch.
1337         (console_getkey): Likewise.
1338         (console_putchar): Likewise.
1339         (console_set_attrib): Removed.
1340         (console_highlight): New function.
1341         (console_setcolor): Likewise.
1342         (console_nocursor): Likewise.
1343         (serial_getkey): Removed.
1344         (serial_checkkey): Likewise.
1345         (serial_putchar): Likewise.
1346         (serial_exists): Likewise.
1347         (serial_get_port): Likewise.
1348         (serial_init): Likewise.
1349         (serial_hw_fetch): New function.
1350         (serial_hw_put): Likewise.
1351         (serial_hw_delay): Likewise.
1352         (serial_hw_get_port): Likewise.
1353         (serial_hw_init): Likewise.
1354         (set_serial_device): Renamed to ...
1355         (serial_set_device): ... this.
1356         (herc_putchar): Renamed to ...
1357         (hercules_putchar): ... this.
1358         (herc_cls): Renamed to ...
1359         (hercules_cls): ... this.
1360         (herc_getxy): Renamed to ...
1361         (hercules_getxy): ... this.
1362         (herc_gotoxy): Renamed to ...
1363         (hercules_gotoxy): ... this.
1364         (hercules_highlight): New function.
1365         (hercules_setcolor): Likewise.
1366         (hercules_nocursor): Likewise.
1367         (herc_set_attrib): Removed.
1369         * grub/main.c: Include term.h.
1370         (main): If USE_CURSES is false, set CURRENT_TERM->FLAGS to
1371         TERM_NO_EDIT | TERM_DUMB. TERMINAL is not used any longer.
1372         
1373 2002-06-01  Yoshinori K. Okuji  <okuji@enbug.org>
1375         * docs/grub.texi (FAQ): Removed. See the GNU GRUB FAQ on the web
1376         instead.
1377         
1378 2002-05-31  Yoshinori K. Okuji  <okuji@enbug.org>
1380         * docs/grub.texi (Reporting bugs): Recommend using the BTS on
1381         Savannah rather than the list bug-grub.
1382         
1383 2002-05-25  Yoshinori K. Okuji  <okuji@enbug.org>
1385         * stage2/builtins.c (boot_func): Load the boot partition
1386         information, only if the address of the boot partition entry is
1387         set appropriately.
1388         (real_root_func): If ATTEMPT_MOUNT is false, call open_partition
1389         and if successful, call set_bootdev, to set the offset of the
1390         boot partition and the address of the boot paetition entry.
1391         IF ATTEMPT_MOUNT is false, don't set BOOTDEV. The BSD evil hack
1392         is useless with the command "rootnoverify" anyway.
1393         * stage2/disk_io.c (boot_part_addr): Initialized with zero
1394         explicitly, to emphasize that it is invalid.
1395         
1396 2002-05-24  Yoshinori K. Okuji  <okuji@enbug.org>
1398         * stage2/builtins.c (real_root_func): New function.
1399         (root_func): Just call real_root_func.
1400         (rootnoverify_func): Likewise.
1401         
1402 2002-05-23  Yoshinori K. Okuji  <okuji@enbug.org>
1404         * configure.in (AM_INIT_AUTOMAKE): Changed the version number to
1405         0.93.
1406         
1407 2002-05-23  Yoshinori K. Okuji  <okuji@enbug.org>
1409         Define the behavior of the boot loader when the load end address
1410         and the bss end address are zero in the Multiboot Specification,
1411         and add the support into GRUB. I've modified a patch from Yuri
1412         Zaporogets <yuriz@ukr.net>.
1413         
1414         * stage2/boot.c (load_image): In the case of Multiboot a.out
1415         kludge, set the load end address to the load address plus the
1416         size of the OS image file, if it is zero. Similarly, set the bss
1417         end address to the load end address, if it is zero.
1418         
1419         * util/mbchk.c (check_multiboot): Don't check if the load
1420         address is greater than or equal to the load end address, if the
1421         load end address is zero. Don't check if the load end address is
1422         greater than the bss end address, if the bss end address is
1423         zero. And, don't check if the load end address is less than or
1424         equal to the entry address, if the load end address is zero.
1425         
1426         * docs/multiboot.texi (The address fields of Multiboot header):
1427         Added descriptions about the behavior of the boot loader when
1428         LOAD_END_ADDR is zero and BSS_END_ADDR is zero.
1429         
1430 2002-05-22  Yoshinori K. Okuji  <okuji@enbug.org>
1432         * stage2/builtins.c (boot_func): If DEBUG is true, print
1433         BOOT_DRIVE and BOOT_PART_OFFSET.
1434         Don't set ERRNUM after rawread failed, because rawread should
1435         set ERRNUM itself.
1436         
1437 2002-05-20  Yoshinori K. Okuji  <okuji@enbug.org>
1439         * lib/device.c (read_device_map): Show an error message and exit
1440         abnormally, if MAP[DRIVE] has already been filled.
1441         * util/grub-install.in: If there is any dulicated entry, print
1442         an error message and exit abnormally.
1443         
1444 2002-05-20  Yoshinori K. Okuji  <okuji@enbug.org>
1446         * lib/device.c: Don't include linux/hdreg.h, linux/major.h,
1447         or linux/kdev_t.h.
1448         [__linux__] (HDIO_GETGEO): Defined.
1449         [__linux__] (hd_geometry): Likewise.
1450         [__linux__] (FLOPPY_MAJOR): Likewise.
1451         [__linux__] (MINORBITS): Likewise.
1452         [__linux__] (MAJOR): Likewise.
1453         
1454 2002-05-08  Yoshinori K. Okuji  <okuji@enbug.org>
1456         * netboot/fsys_tftp.c (tftp_read): Don't call buf_fill unless
1457         SIZE is positive.
1458         
1459 2002-05-08  Yoshinori K. Okuji  <okuji@enbug.org>
1461         * netboot/etherboot.h (ETH_MAX_MTU): Because some DHCP/BOOTP
1462         servers don't treat the maximum length the same as Etherboot,
1463         subtract the size of an IP header and that of an UDP header.
1464         
1465 2002-04-30  Yoshinori K. Okuji  <okuji@enbug.org>
1467         From Jean-Jacques Michel <jjmichel@linbox.com>:
1468         * stage2/boot.c (load_image): For Linux, check if DATA_LEN is
1469         greater than MULTIBOOT_SEARCH. If that's true, read the rest
1470         after copying data already read in BUFFER.
1471         
1472 2002-04-30  Yoshinori K. Okuji  <okuji@enbug.org>
1474         * stage2/boot.c (load_image): For Linux, don't check if the
1475         length of protected mode code is greater than or equal to the
1476         expected length minus 16. Instead, just check if no error
1477         occurred. That was problematic, because memdisk has no protected
1478         mode code. Also, I don't see what the magic number 16 was for.
1479         
1480 2002-04-29  Yoshinori K. Okuji  <okuji@enbug.org>
1482         * stage2/builtins.c [SUPPORT_SERIAL] (terminal_func): Added a
1483         new option ``--silent''. This suppresses messages, if specified.
1484         
1485 2002-04-29  Yoshinori K. Okuji  <okuji@enbug.org>
1487         * config.guess: New upstream version.
1488         * config.sub: Likewise.
1489         
1490 2002-04-20  Yoshinori K. Okuji  <okuji@enbug.org>
1492         * netboot/config.c (PCI_NIC) [INCLUDE_DAVICOM]: Fix typos.
1493         Reported by Julien Perrot <julien.perrot@iie.cnam.fr>.
1494         
1495 2002-04-17  Yoshinori K. Okuji  <okuji@enbug.org>
1497         * stage2/builtins.c [SUPPORT_SERIAL] (terminal_func): Set
1498         COUNT_LINES to -1, to disable the pager.
1499         
1500 2002-04-16  Yoshinori K. Okuji  <okuji@enbug.org>
1502         * docs/grub.texi (Obtaining and Building GRUB): Update the link
1503         to the binutils site.
1505 2002-04-06  Pavel Roskin  <proski@gnu.org>
1507         * util/grub-install.in: Fix hardcoded /dev/hda1.
1509 2002-04-06  Yoshinori K. Okuji  <okuji@enbug.org>
1511         * stage2/builtins.c [GRUB_UTIL] (dump_func): New function.
1512         [GRUB_UTIL] (builtin_dump): New variable.
1513         (builtin_table) [GRUB_UTIL]: Added a pointer to BUILTIN_DUMP.
1514         * util/grub-install.in: Make sure that GRUB reads the same
1515         images as the host operating system by comparing the result of
1516         running the command "dump" with the contents of the OS file.
1517         
1518 2002-04-04  Yoshinori K. Okuji  <okuji@enbug.org>
1520         * stage2/builtins.c (setup_func): Don't embed a drive number, if
1521         unnecessary.
1522         
1523 2002-03-29  Yoshinori K. Okuji  <okuji@enbug.org>
1525         * docs/grub.texi (General commands): Added ``pager'' into the
1526         menu.
1527         (pager): New subsection.
1528         (terminal): Added a description about the option
1529         ``--lines=LINES''.
1531         * configure.in (AC_INIT_AUTOMAKE): Set the version number to
1532         0.92.
1533         
1534 2002-03-26  Yoshinori K. Okuji  <okuji@enbug.org>
1536         * netboot/eepro100.c (eepro100_probe): Increase the delay at the
1537         initialization.
1538         
1539 2002-03-26  Yoshinori K. Okuji  <okuji@enbug.org>
1541         * stage2/boot.c (linux_mem_size): New variable.
1542         (load_image): Check a mem= option and set LINUX_MEM_SIZE to the
1543         specified memory size, if any. Otherwise, to zero. When an
1544         overflow is detected, use LINUX_INITRD_MAX_ADDRESS instead.
1545         (load_initrd): If LINUX_MEM_SIZE is non-zero, use it instead of
1546         the actual memory size.
1547         * stage2/char_io.c (safe_parse_maxint): Use ERR_NUMBER_OVERFLOW
1548         instead of ERR_NUMBER_PARSING, when an overflow occurs.
1549         * stage2/common.c [!STAGE1_5] (err_list): Added
1550         ERR_NUMBER_OVERFLOW.
1551         * stage2/shared.h (ERR_NUMBER_OVERFLOW): New constant.
1552         
1553 2002-03-24  Yoshinori K. Okuji  <okuji@enbug.org>
1555         * stage2/stage2.c (run_menu): Call cls outside the loop to run
1556         scripts.
1557         * stage2/cmdline.c (run_script): Prompt a user's intervention,
1558         only when FALLBACK_ENTRY is negative.
1559         
1560 2002-02-11  Pavel Roskin  <proski@gnu.org>
1562         * util/grub-install.in (find_device): New function - find block
1563         device for given file or directory.  Resolve symlinks to fix
1564         problem on Linux with devfs and old device names in /etc/fstab.
1565         Use find_device() for root_device, bootdir_device and
1566         grubdir_device.
1568 2002-02-08  Yoshinori K. Okuji  <okuji@enbug.org>
1570         * grub/main.c (OPT_NO_PAGER): New macro.
1571         (longopts): Added an entry for "--no-pager".
1572         (usage): Added a description about "--no-pager".
1573         (main): In case of OPT_NO_PAGER, set USE_PAGER to zero. The same
1574         thing is done with OPT_BATCH, because the pager is just harmful
1575         in batch mode.
1576         
1577 2002-02-08  Yoshinori K. Okuji  <okuji@enbug.org>
1579         * stage2/builtins.c (help_func): Show all the commands runnable
1580         with the command-line interface, if "--all" is specified.
1581         
1582 2002-02-08  Yoshinori K. Okuji  <okuji@enbug.org>
1584         An internal pager is implemented.
1585         
1586         * stage2/builtins.c (pager_func): New function.
1587         (builtin_pager): New variable.
1588         (terminal_func): New option, "--lines=LINES" is added. If this
1589         option is specified, set MAX_LINES to the value. Otherwise, set
1590         MAX_LINES to 24.
1591         (vbeprobe_func): Remove the pager code specific to this
1592         function.
1593         (builtin_table): Added a pointer to BUILTIN_PAGER.
1594         * stage2/char_io.c (max_lines) [!STAGE1_5]: New variable.
1595         (count_lines) [!STAGE1_5]: Likewise.
1596         (use_pager) [!STAGE1_5]: Likewise.
1597         (grub_putchar) [!STAGE1_5]: if C is a newline and COUNT_LINES is
1598         not -1, count up the number of lines. If it exceeds the maximum
1599         number of lines minus 2, show a message and wait for input of
1600         return key. "minus 2" is to reserve space for the message
1601         printed by this internal pager.
1602         * stage2/cmdline.c (enter_cmdline): If USE_PAGER is true, set
1603         COUNT_LINES to zero, before running a command, and reset
1604         COUNT_LINES to -1 after that.
1605         * stage2/shared.h (max_lines) [!STAGE1_5]: Declared.
1606         (count_lines) [!STAGE1_5]: Likewise.
1607         (use_pager) [!STAGE1_5]: Likewise.
1608         
1609 2002-02-08  Yoshinori K. Okuji  <okuji@enbug.org>
1611         * stage2/fsys_jfs.c (jfs_read) [STAGE1_5]: Set and reset
1612         DISK_READ_FUNC even in Stage 1.5.
1613         * stage2/fsys_xfs.c (xfs_read) [STAGE1_5]: Likewise.
1615         * stage2/stage1_5.c (saved_sector): Initialized with -1.
1616         (cmain): Check if SAVED_SECTOR was set appropriately after
1617         reading the second sector of Stage 2. If SAVED_SECTOR is not
1618         set (i.e. it is equal to -1), print an error and stop.
1619         
1620 2002-02-05  Yoshinori K. Okuji  <okuji@enbug.org>
1622         * stage2/builtins.c (setup_func): Add a VSTa fs entry into
1623         STAGE1_5_MAP.
1624         
1625 2002-02-05  Yoshinori K. Okuji  <okuji@enbug.org>
1627         * stage2/shared.h (BUILTIN_HELP_LIST): New macro. Used for
1628         commands whose help messages are listed when no argument is
1629         specified to the command "help".
1630         * stage2/builtins.c (builtin_blocklist): Added the attribute
1631         BUILTIN_HELP_LIST.
1632         (builtin_boot): Likewise.
1633         (builtin_bootp): Likewise.
1634         (builtin_cat): Likewise.
1635         (builtin_chainloader): Likewise.
1636         (builtin_color): Likewise.
1637         (builtin_configfile): Likewise.
1638         (builtin_device): Likewise.
1639         (builtin_dhcp): Likewise.
1640         (builtin_displayapm): Likewise.
1641         (builtin_displaymem): Likewise.
1642         (builtin_find): Likewise.
1643         (builtin_geometry): Likewise.
1644         (builtin_halt): Likewise.
1645         (builtin_help): Likewise.
1646         (builtin_hide): Likewise.
1647         (builtin_ifconfig): Likewise.
1648         (builtin_initrd): Likewise.
1649         (builtin_kernel): Likewise.
1650         (builtin_makeactive): Likewise.
1651         (builtin_map): Likewise.
1652         (builtin_md5crypt): Likewise.
1653         (builtin_module): Likewise.
1654         (builtin_modulenounzip): Likewise.
1655         (builtin_partnew): Likewise.
1656         (builtin_parttype): Likewise.
1657         (builtin_quit): Likewise.
1658         (builtin_rarp): Likewise.
1659         (builtin_reboot): Likewise.
1660         (builtin_root): Likewise.
1661         (builtin_rootnoverify): Likewise.
1662         (builtin_serial): Likewise.
1663         (builtin_setkey): Likewise.
1664         (builtin_setup): Likewise.
1665         (builtin_terminal): Likewise.
1666         (builtin_testvbe): Likewise.
1667         (builtin_tftpserver): Likewise.
1668         (builtin_unhide): Likewise.
1669         (builtin_uppermem): Likewise.
1670         (builtin_vbeprobe): Likewise.
1672         (help_func): When no argument is specified, if the last entry
1673         was at the left column, print an extra newline.
1674         
1675 2002-02-05  Yoshinori K. Okuji  <okuji@enbug.org>
1677         * stage2/shared.h (BUILTIN_HIDDEN): Renamed to ...
1678         (BUILTIN_NO_ECHO): ... this. The old name was too difficult to
1679         see _what_ was hidden.
1680         
1681 2002-02-05  Yoshinori K. Okuji  <okuji@enbug.org>
1683         * netboot/misc.c (twiddle): Go back to the bar progress, copied
1684         from etherboot-5.0.5/src/misc.c. Execute the code only if DEBUG
1685         is true.
1686         
1687 2002-02-05  Yoshinori K. Okuji  <okuji@enbug.org>
1689         * stage2/builtins.c (displaymem_func): Use hex digits to display
1690         for consistency.
1691         
1692 2002-02-04  Jason Thomas  <jason@topic.com.ah>
1694         From Denis Kitzman  <dkitzman@blue.weeg.uiowa.edu>:
1695         * stage2/Makefile.am (libgrub_a_CFLAGS): Fixed a typo.
1696         FSYS_XFS, USE_MD5_PASSWORDS, SUPPORT_SERIAL, and
1697         SUPPORT_HERCULES did not get defined.
1699 2002-01-20  Yoshinori K. Okuji  <okuji@gnu.org>
1701         * util/grub-image.in: Check stage2 instead of stage2.c to
1702         determine where the script is invoked, because srcdir may not
1703         be used for the compilation.
1704         
1705 2002-01-20  Yoshinori K. Okuji  <okuji@gnu.org>
1707         * grub/asmstub.c (console_putchar): When not using curses,
1708         ignore a carriage return, because a newline in Unix is only a
1709         line feed.
1710         
1711 2002-01-18  Klaus Reichl  <Klaus.Reichl@alcatel.at>
1713         * stage2/fsys_minix.c (minix_dir): Fixed bug getting filenames
1714         with MAXNAMELEN right.
1716         * stage2/char_io.c (get_cmdline, cl_refresh): If TERMINAL_DUMB
1717         section is always 0.
1718         Line is only cleared if !TERMINAL_DUMB.
1720         * grub/main.c (use_curses): Initialize to 0 if !HAVE_LIBCURSES
1721         (main): Check for curses use and set terminal to dumb if we
1722         don't use it (helps for --batch and variants of non-curses
1723         setup).
1725 2002-01-15  Yoshinori K. Okuji  <okuji@gnu.org>
1727         * configure.in (AM_INIT_AUTOMAKE): The version number is
1728         upgraded to 0.91.
1729         
1730 2002-01-15  Yoshinori K. Okuji  <okuji@gnu.org>
1732         * docs/grub.texi (Preset Menu): New chapter.
1733         
1734 2002-01-15  Yoshinori K. Okuji  <okuji@gnu.org>
1736         * docs/grub.texi: Added some text about JFS and XFS.
1737         
1738 2002-01-08  Yoshinori K. Okuji  <okuji@gnu.org>
1740         * grub/main.c (use_preset_menu): New variable.
1741         (OPT_PRESET_MENU): New macro.
1742         (longopts): Added an entry for "--preset-menu".
1743         (usage): Added a description for "--preset-menu". Also, change
1744         the first character of the description for "--device-map" to
1745         lower case for consistency.
1746         (main): Set USE_PRESET_MENU to 1 in the case of OPT_PRESET_MENU.
1747         * stage2/shared.h (use_preset_menu): Declared.
1748         * stage2/stage2.c [PRESET_MENU_STRING || SUPPORT_DISKLESS]
1749         (open_preset_menu) [GRUB_UTIL]: If USE_PRESET_MENU is false,
1750         return zero immediately.
1752 2002-01-08  Yoshinori K. Okuji  <okuji@gnu.org>
1754         * stage2/common.c [SUPPORT_DISKLESS]
1755         (setup_diskless_environment): Removed. The feature is moved to
1756         the preset menu.
1757         * stage2/stage2.c [SUPPORT_DISKLESS] (preset_menu): Set to the
1758         string "bootp\n".
1759         [SUPPORT_DISKLESS] (preset_menu_offset): Defined, as if
1760         PRESET_MENU_STRING is defined.
1761         [SUPPORT_DISKLESS] (open_preset_menu): Likewise.
1762         [SUPPORT_DISKLESS] (read_from_preset_menu): Likewise.
1763         [SUPPORT_DISKLESS] (close_preset_menu): Likewise.
1764         
1765 2002-01-06  Yoshinori K. Okuji  <okuji@gnu.org>
1767         The preset menu has a priority over the configuration file.
1768         Suggested by Christoph Plattner.
1769         
1770         * stage2/stage2.c [PRESET_MENU_STRING] (open_preset_menu):
1771         Check if PRESET_MENU is not NULL.
1772         [PRESET_MENU_STRING] (close_preset_menu): Set PRESET_MENU to
1773         NULL.
1774         (cmain): New internal function, reset. This function resets
1775         AUTO_FILL, CONFIG_LEN, MENU_LEN, NUM_ENTRIES, CONFIG_ENTRIES,
1776         MENU_ENTRIES and call init_config.
1777         Try to open the preset menu first, and try to open the
1778         configuration file, only if that failed.
1779         Even if the preset menu was read, try to open the configuration
1780         file. This time, opening the preset menu never succeed, because
1781         close_preset_menu ensures that the preset menu is available at
1782         most once.
1783         
1784 2002-01-06  Yoshinori K. Okuji  <okuji@gnu.org>
1786         * netboot/misc.c (inet_aton): Don't check if *P is an asterisk,
1787         if I is 3. Reported by Rick (his real name and address are
1788         unknown).
1789         
1790 2002-01-03  Yoshinori K. Okuji  <okuji@gnu.org>
1792         Update the netboot stuff to Etherboot-5.0.5.
1793         
1794         * configure.in (--enable-3c590): Removed. This was a mistake.
1795         (--enable-davicom): New option.
1796         (--enable-eepro): Likewise.
1797         (--enable-natsemi): Likewise.
1798         (--enable-ni5010): Likewise.
1799         (--enable-sis900): Likewise.
1800         (--enable-w89c840): Likewise.
1801         (--enable-3c509-hack): Removed.
1802         (--enable-ns8390-force-16bit): Likewise.
1804         * netboot/Makefile.am (libdrivers_a_SOURCES): Added timer.c and
1805         timer.h.
1806         (EXTRA_libdrivers_a_SOURCES): Added davicom.c, eepro.c, fa311.c,
1807         natsemi.c, ni5010.c, sis900.c, sis900.h, tlan.c and w89c840.c.
1808         (EXTRA_DIST): Added sis900.txt.
1809         (3c595_drivers): Remove 3c590.o from this.
1810         (davicom_drivers): New variable.
1811         (eepro_drivers): Likewise.
1812         (natsemi_drivers): Likewise.
1813         (ni5010_drivers): Likewise.
1814         (sis900_drivers): Likewise.
1815         (w89c840_drivers): Likewise.
1816         (3c590_o_CFLAGS): Removed.
1817         (davicom_o_CFLAGS): New variable.
1818         (eepro_o_CFLAGS): Likewise.
1819         (natsemi_o_CFLAGS): Likewise.
1820         (ni5010_o_CFLAGS): Likewise.
1821         (sis900_o_CFLAGS): Likewise.
1822         (w89c840_o_CFLAGS): Likewise.
1824         * netboot/davicom.c: New file, from Etherboot-5.0.5.
1825         * netboot/eepro.c: Likewise.
1826         * netboot/natsemi.c: Likewise.
1827         * netboot/ni5010.c: Likewise.
1828         * netboot/sis900.c: Likewise.
1829         * netboot/sis900.h: Likewise.
1830         * netboot/sis900.txt: Likewise.
1831         * netboot/timer.c: Likewise.
1832         * netboot/timer.h: Likewise.
1833         * netboot/w89c840.c: Likewise.
1834         * netboot/fa311.c: Likewise.
1835         * netboot/tlan.c: Likewise.
1836         
1837         * netboot/3c509.c: Copied from Etherboot-5.0.5.
1838         * netboot/3c509.h: Likewise.
1839         * netboot/3c595.c: Likewise.
1840         * netboot/3c90x.c: Likewise.
1841         * netboot/3c90x.txt: Likewise.
1842         * netboot/cards.h: Likewise.
1843         * netboot/cs89x0.c: Likewise.
1844         * netboot/depca.c: Likewise.
1845         * netboot/eepro100.c: Likewise.
1846         * netboot/epic100.c: Likewise.
1847         * netboot/i82586.c: Likewise.
1848         * netboot/lance.c: Likewise.
1849         * netboot/linux-asm-string.h: Likewise.
1850         * netboot/nic.h: Likewise.
1851         * netboot/ns8390.c: Likewise.
1852         * netboot/ns8390.h: Likewise.
1853         * netboot/otulip.c: Likewise.
1854         * netboot/pci.h: Likewise.
1855         * netboot/rtl8139.c: Likewise.
1856         * netboot/sk_g16.c: Likewise.
1857         * netboot/smc9000.c: Likewise.
1858         * netboot/tiara.c: Likewise.
1859         * netboot/tulip.c: Likewise.
1860         * netboot/via-rhine.c: Likewise.
1861         
1862         * netboot/config.c: Applied a diff between Etherboot-4.6.4 and
1863         Etherboot-5.0.5 manually.
1864         * netboot/main.c: Likewise.
1865         * netboot/pci.c: Likewise.
1866         * netboot/etherboot.h: Rewritten mostly from scratch, based on
1867         the same file in Etherboot-5.0.5.
1868         * netboot/misc.c: Likewise.
1869         * netboot/osdep.h: Likewise.
1870         * netboot/fsys_tftp.c (GRUB): Defined.
1871         (buf_fill): Use rfc2131_sleep_interval instead of rfc951_sleep.
1873         * stage2/builtins.c [SUPPORT_NETBOOT] (GRUB): Defined.
1874         (boot_func) [SUPPORT_NETBOOT]: Call cleanup_net.
1875         * stage2/cmdline.c [SUPPORT_DISKLESS] (GRUB): Defined.
1876         * stage2/common.c [SUPPORT_DISKLESS] (GRUB): Likewise.
1877         
1878 2002-01-02  Jeremy Katz  <katzj@redhat.com>
1879         
1880         * util/grub-install.in: Support using mktemp as well as tempfile
1881         for secure temporary file creation.
1883 2002-01-02  Jeremy Katz  <katzj@redhat.com>
1884         
1885         * stage2/md5.c (md5_password): Ensure the password exists before
1886         trying to check against the md5 crypted version.
1888 2001-12-30  Yoshinori K. Okuji  <okuji@gnu.org>
1890         * stage1/stage1.S: Don't call INT 13, AH=48H, because it is
1891         difficult to call this function with the workaround implemented
1892         in the previous change due to the size limit of Stage 1.
1893         
1894         (lba_mode) [NO_BUGGY_BIOS_IN_THE_WORLD]: Don't check the
1895         geometry explicitly. This shouldn't be harmful, as INT 13,
1896         AH=42H should take care of it, and if you cannot read Stage 2
1897         even with LBA because of a geometry problem, you can never read
1898         it.
1900         * stage2/start.S (lba_mode) [NO_BUGGY_BIOS_IN_THE_WORLD]:
1901         Likewise.
1902         
1903 2001-12-30  Yoshinori K. Okuji  <okuji@gnu.org>
1905         * stage2/bios.c (get_diskinfo): Clear out the structure DRP
1906         before calling get_diskinfo_int13_extensions, because the Ralf
1907         Brown's Interrupt List says that Dell machines using PhoenixBIOS
1908         4.0 Release 6.0 fail, if DRP.FLAGS is not zero. Setting the
1909         entire structure to zero may be overkill, but it should be safe.
1910         
1911         * stage2/char_io.c [STAGE1_5] (grub_memset): Defined.
1912         
1913 2001-12-30  Yoshinori K. Okuji  <okuji@gnu.org>
1915         From John Goerzen <jgoerzen@complete.org>:
1916         * util/grub-install.in (convert): Added NetBSD support.
1917         
1918 2001-12-30  Yoshinori K. Okuji  <okuji@gnu.org>
1920         * util/grub-install.in: Set GRUB_PREFIX and BOOTDIR to "/grub"
1921         and "${rootdir}" respectively in NetBSD.
1922         
1923 2001-12-30  Yoshinori K. Okuji  <okuji@gnu.org>
1925         * stage2/builtins.c (builtin_geometry): Add extra space
1926         characters into the long description.
1927         (builtin_kernel): Likewise.
1928         (builtin_vbeprobe): Likewise.
1929         
1930 2001-12-19  Yoshinori K. Okuji  <okuji@gnu.org>
1932         From Michael Sullivan <mike@trdlnk.com>:
1933         * stage1/stage1.S (real_start): Added a workaround for AST BIOS,
1934         because it clobbers %dl with INT 13, AH=41H.
1936 2001-12-19  Yoshinori K. Okuji  <okuji@gnu.org>
1938         * stage2/fsys_fat.c (fat_read): Fix the contradictory comment.
1939         Reported by Filip Van Raemdonck <mechanix@digibel.org>.
1940         
1941 2001-12-11  Yoshinori K. Okuji  <okuji@gnu.org>
1943         * stage2/builtins.c (displayapm_func): Don't use multi-line
1944         string literals but string concatenation instead, to suppress
1945         warnings from gcc-3.0.x.
1946         * stage2/cmdline.c (print_cmdline_message): Likewise.
1947         * util/mbchk.c (usage): Likewise.
1948         
1949         * stage2/smp-imps.c (imps_read_config_table): Add a break
1950         statement after the label ``default''.
1951         
1952         * util/mbchk.c: Include <stdlib.h> for the prototype of exit.
1954         * stage2/serial.c (serial_port): Initialize with 0 instead of
1955         -1, as an invalid value, because SERIAL_PORT is unsigned. This
1956         change shouldn't affect anything.
1957         (serial_exists): For the above change, check SERIAL_PORT with 0
1958         instead of -1.
1959         
1960 2001-12-10  Yoshinori K. Okuji  <okuji@gnu.org>
1962         * stage2/shared.h (ERR_NO_DISK_SPACE): New constant.
1963         * stage2/common.c (err_list): Added an entry for
1964         ERR_NO_DISK_SPACE.
1965         * docs/grub.texi (Stage2 errors): Added the description.
1966         * stage2/builtins.c (embed_func): Use ERR_NO_DISK_SPACE instead
1967         of ERR_DEV_VALUES when the spare space is too small. Suggested
1968         by Eric Mumpower <nocturne@permabit.com>.
1969         
1970 2001-12-10  Yoshinori K. Okuji  <okuji@gnu.org>
1972         * grub/asmstub.c: Include <signal.h>.
1973         (grub_stage2) [HAVE_LIBCURSES]: If USE_CURSES is true, ignore
1974         the signal SIGWINCH. Reported by Christian Hudon
1975         <chrish@debian.org>.
1977 2001-11-29  Yoshinori K. Okuji  <okuji@gnu.org>
1979         From Jason Thomas:
1980         * stage2/disk_io.c (set_partition_hidden_flag): Complete rewrite
1981         of this function which now supports logical partitions.
1982         
1983 2001-11-12  Yoshinori K. Okuji  <okuji@gnu.org>
1985         * docs/grub.texi: The copyright of this file is only held by
1986         Free Software Foundation, Inc., as Erich Boleyn has assigned his
1987         copyright to the FSF.
1988         * stage1/stage1.S: Likewise.
1989         * stage2/asm.S: Likewise.
1990         * stage2/boot.c: Likewise.
1991         * stage2/builtins.c: Likewise.
1992         * stage2/char_io.c: Likewise.
1993         * stage2/cmdline.c: Likewise.
1994         * stage2/common.c: Likewise.
1995         * stage2/disk_io.c: Likewise.
1996         * stage2/fat.h: Likewise.
1997         * stage2/filesys.h: Likewise.
1998         * stage2/freebsd.h: Likewise.
1999         * stage2/fsys_ext2fs.c: Likewise.
2000         * stage2/fsys_fat.c: Likewise.
2001         * stage2/fsys_ffs.c: Likewise.
2002         * stage2/gunzip.c: Likewise.
2003         * stage2/i386-elf.h: Likewise.
2004         * stage2/mb_header.h: Likewise.
2005         * stage2/mb_info.h: Likewise.
2006         * stage2/pc_slice.h: Likewise.
2007         * stage2/shared.h: Likewise.
2008         * stage2/stage1_5.c: Likewise.
2009         * stage2/stage2.c: Likewise.
2010         * stage2/start.S: Likewise.
2011         
2012 2001-11-07  Yoshinori K. Okuji  <okuji@gnu.org>
2014         * stage2/builtins.c (terminal_func) [!SUPPORT_SERIAL]: Disable
2015         the wait code, as it is usable only when serial support is on.
2016         Reported by Karl Hammar <karl@kalle.csb.ki.se>.
2017         
2018 2001-10-27  Yoshinori K. Okuji  <okuji@gnu.org>
2020         JFS and XFS support is added.
2021         
2022         From Serguei Tzukanov <tzukanov@narod.ru>:
2023         * configure.in (--disable-jfs): New option.
2024         (--disable-xfs): Likewise.
2025         * stage2/Makefile.am (noinst_HEADERS): Added jfs.h and xfs.h.
2026         (libgrub_a_SOURCES): Added fsys_jfs.c and fsys_xfs.c.
2027         (libgrub_a_CFLAGS): Added -DFSYS_JFS=1 and -DFSYS_XFS=1.
2028         (pkgdata_DATA): Added jfs_stage1_5 and xfs_stage1_5.
2029         (noinst_PROGRAMS): Added jfs_stage1_5.exec and
2030         xfs_stage1_5.exec.
2031         (pre_stage2_exec_SOURCES): Added fsys_jfs.c and fsys_xfs.c.
2032         (jfs_stage1_5_exec_SOURCES): New variable.
2033         (jfs_stage1_5_exec_CFLAGS): Likewise.
2034         (jfs_stage1_5_exec_ASFLAGS): Likewise.
2035         (jfs_stage1_5_exec_LDFLAGS): Likewise.
2036         (xfs_stage1_5_exec_SOURCES): Likewise.
2037         (xfs_stage1_5_exec_CFLAGS): Likewise.
2038         (xfs_stage1_5_exec_ASFLAGS): Likewise.
2039         (xfs_stage1_5_exec_LDFLAGS): Likewise.
2040         * stage2/builtins.c (setup_func): Add items for JFS and XFS into
2041         STAGE1_5_MAP.
2042         * stage2/disk_io.c (fsys_table): Added entries for JFS and XFS.
2043         * stage2/filesys.h [FSYS_JFS] (FSYS_JFS_NUM): Set to 1.
2044         [FSYS_JFS] (jfs_mount): Declared.
2045         [FSYS_JFS] (jfs_read): Likewise.
2046         [FSYS_JFS] (jfs_dir): Likewise.
2047         [FSYS_JFS] (jfs_embed): Likewise.
2048         [!FSYS_JFS] (FSYS_JFS_NUM): Set to 0.
2049         [FSYS_XFS] (FSYS_XFS_NUM): Set to 1.
2050         [FSYS_XFS] (xfs_mount): Declared.
2051         [FSYS_XFS] (xfs_read): Likewise.
2052         [FSYS_XFS] (xfs_dir): Likewise.
2053         (NUM_FSYS): Added FSYS_JFS_NUM and FSYS_XFS_NUM.
2054         * stage2/shared.h (STAGE2_ID_JFS_STAGE1_5): New macro.
2055         (STAGE2_ID_XFS_STAGE1_5): Likewise.
2056         [FSYS_JFS] (STAGE2_ID): Set to STAGE2_ID_JFS_STAGE1_5.
2057         [FSYS_XFS] (STAGE2_ID): Set to STAGE2_ID_XFS_STAGE1_5.
2058         * stage2/fsys_jfs.c: New file.
2059         * stage2/fsys_xfs.c: Likewise.
2060         * stage2/jfs.h: Likewise.
2061         * stage2/xfs.h: Likewise.
2063 2001-10-27  Yoshinori K. Okuji  <okuji@gnu.org>
2065         * stage2/apm.S: Always disconnect from APM. Written by Erich
2066         Stefan Boleyn.
2068         * util/Makefile.am (noinst_DATA): Removed.
2069         (EXTRA_DIST): Likewise.
2070         
2071 2001-10-14  Gordon Matzigkeit  <gord@fig.org>
2073         * configure.in: Explicitly call _AM_DEPENDENCIES(CC) for the
2074         benefit of older Autoconfs.
2076 2001-10-13  Yoshinori K. Okuji  <okuji@gnu.org>
2078         * netboot/fsys_tftp.c (tftp_read): Move the unused data
2079         forwards, only if AMT is more than zero. If AMT is not positive,
2080         subtract BUF_READ from SAVED_FILEPOS and set BUF_READ to zero,
2081         to skip the whole buffer. Reported by Frank Mehnert.
2082         
2083 2001-10-13  Yoshinori K. Okuji  <okuji@gnu.org>
2085         Don't use get_diskinfo_floppy. Reported by Ben Liblit
2086         <liblit@eecs.berkeley.edu>.
2087         
2088         * stage2/asm.S (get_diskinfo_floppy): Removed (by cpp).
2089         * stage2/bios.c (get_diskinfo_floppy): Removed.
2090         (get_diskinfo): Don't call get_diskinfo_floppy any longer.
2091         
2092 2001-10-13  Yoshinori K. Okuji  <okuji@gnu.org>
2094         Based on a patch from Jeremy Katz <katzj@redhat.com>:
2095         * docs/grub.texi (Stage2 errors): Added documentation on the
2096         error number 33 (Serial device not configured).
2097         * grub/asmstub.c (serial_exists): New function.
2098         * stage2/serial.c (serial_exists): Likewise.
2099         * stage2/serial.h (serial_exists): New prototype.
2100         * stage2/shared.h (grub_error_t): ERR_NEED_SERIAL is added.
2101         * stage2/builtins.c (terminal_func) [SUPPORT_SERIAL]: If a
2102         serial device is not configured yet, restore the terminal and
2103         set ERRNUM to ERR_NEED_SERIAL.
2104         * stage2/common.c (err_list): Added an item for ERR_NEED_SERIAL.
2105         
2106 2001-10-13  Yoshinori K. Okuji  <okuji@gnu.org>
2108         From Jason Thomas <jason@topic.com.au>:
2109         * util/grub-install.in (convert): Add support for DAC960.
2111         From Adrian Phillips <a.phillips@dnmi.no>:
2112         * lib/device.c (get_dac960_disk_name): New function.
2113         (init_device_map) [__linux__]: Add support for DAC960.
2114         
2115 2001-10-11  Jochen Hoenicke  <jochen@gnu.org>
2117         * stage2/fsys_reiserfs.c (reiserfs_super_block): Updated
2118         to better match recent reiserfs versions.
2119         (reiserfs_mount): Handle cases where journal can't be found,
2120         e.g. journal on another disk or unexpected journal parameters.
2121         In that case the journal isn't used.
2122         
2123 2001-10-10  Jochen Hoenicke  <jochen@gnu.org>
2125         * stage2/fsys_reiserfs.c (reiserfs_mount):  Don't look at
2126         the superblock field s_journal_block_count anymore.  It used
2127         to contain 0, it never contained a valid value, and now I
2128         have a report that it can contain an invalid value.
2129         Bug reported by Jim Caley <caley@chesco.com>.
2130         
2131 2001-09-24  Jochen Hoenicke  <jochen@gnu.org>
2133         * stage2/fsys_reiserfs.c (reiserfs_dir):  Set errnum to 
2134         ERR_FSYS_CORRUPT if a symlink can't be read for some reason,
2135         but no error is set by read.
2136         
2137 2001-08-08  OKUJI Yoshinori  <okuji@gnu.org>
2139         From Derrik Pates <dpates@dsdk12.net>:
2140         * stage2/asm.S [!STAGE1_5] (grub_halt): Set the level of APM
2141         support to 1.1, before turning off the power state.
2142         
2143 2001-08-08  OKUJI Yoshinori  <okuji@gnu.org>
2145         * util/grub-md5-crypt.in: Prefix backquotes with backslashes in
2146         strings.  From Fernando Silveira.
2147         
2148 2001-08-02  Gordon Matzigkeit  <gord@fig.org>
2150         * stage2/common.c (init_bios_info): Ignore zero-length memory
2151         ranges.  From Derrik Pates <dpates@dsdk12.net>.
2153 2001-07-26  Jochen Hoenicke  <jochen@gnu.org>
2155         * stage2/Makefile.am (libgrub_a_CFLAGS): Enable USE_MD5_PASSWORDS
2156         for libgrub.  Previously that was implicitly done by configure.in
2157         until the patch from 2001-07-04, which moved that flag from CFLAGS
2158         to FSYS_CFLAGS.  Reported by YAMAGUCHI Shingo
2159         <shingo@kip.iis.toyama-u.ac.jp>
2161 2001-07-13  OKUJI Yoshinori  <okuji@gnu.org>
2163         * util/grub-install.in (convert): Recognize the naming scheme
2164         for Linux devfs floppy devices. Reported by Jason Thomas
2165         <jason@topic.com.au>.
2166         
2167 2001-07-07  OKUJI Yoshinori  <okuji@gnu.org>
2169         * netboot/compile: New file. This was also missing... How many
2170         ``compile''s does automake want?
2171         
2172 2001-07-07  OKUJI Yoshinori  <okuji@gnu.org>
2174         From Jan Zerebecki <jan.list@elite-pferde.de>:
2175         * acinclude.m4 (grub_DEFINE_FILE): Escape double-quotations as
2176         well.
2177         
2178 2001-07-05  OKUJI Yoshinori  <okuji@gnu.org>
2180         * configure.in (AM_INIT_AUTOMAKE): Set the version number to
2181         0.90.
2183 2001-07-05  OKUJI Yoshinori  <okuji@gnu.org>
2185         Ughh! I forgot to add this file to the CVS.
2187         * docs/compile: New file.
2188         
2189 2001-07-05  OKUJI Yoshinori  <okuji@gnu.org>
2191         * docs/grub.texi: Updated.
2192         
2193 2001-07-05  OKUJI Yoshinori  <okuji@gnu.org>
2195         * stage2/boot.c (load_initrd) [!NO_DECOMPRESSION]: Set
2196         NO_DECOMPRESSION to one before opening INITRD, so that GRUB
2197         doesn't decompress an initrd automatically. Reported by
2198         Thierry Laronde.
2199         
2200 2001-07-04  OKUJI Yoshinori  <okuji@gnu.org>
2202         * stage2/compile: New file.
2203         * docs/mdate-sh: Likewise.
2204         * docs/texinfo.tex: Likewise.
2205         * compile: Removed.
2206         * mdate-sh: Likewise.
2207         * texinfo.tex: Likewise.
2208         * config.guess: Updated from automake-1.4h.
2209         * config.sub: Likewise.
2210         * depcomp: Likewise.
2211         * install-sh: Likewise.
2212         * missing: Likewise.
2213         * mkinstalldirs: Likewise.
2214         * configure.in (AS): New variable.
2215         (ASFLAGS): Likewise.
2216         (--disable-md5-password): Use FSYS_CFLAGS instead of CFLAGS.
2217         * stage1/Makefile.am (AM_CFLAGS): Renamed to ...
2218         (AM_ASFLAGS): ... this.
2219         * stage2/Makefile.am (pre_stage2_exec_ASFLAGS): New variable.
2220         (start_exec_CFLAGS): Renamed to ...
2221         (start_exec_ASFLAGS): ... this.
2222         (start_exec-start.o): Renamed to ...
2223         (start_exec-start.$(OBJEXT)): ... this.
2224         (e2fs_stage1_5_exec_ASFLAGS): New variable.
2225         (fat_stage1_5_exec_ASFLAGS): Likewise.
2226         (ffs_stage1_5_exec_ASFLAGS): Likewise.
2227         (minix_stage1_5_exec_ASFLAGS): Likewise.
2228         (reiserfs_stage1_5_exec_ASFLAGS): Likewise.
2229         (vstafs_stage1_5_exec_ASFLAGS): Likewise.
2230         (diskless_exec_ASFLAGS): Likewise.
2231         (nbloader_exec_CFLAGS): Renamed to ...
2232         (nbloader_exec_ASFLAGS): ... this.
2233         (nbloader_exec-nbloader.o): Renamed to ...
2234         (nbloader_exec-nbloader.$(OBJEXT)): ... this.
2235         (pxeloader_exec_CFLAGS): Renamed to ...
2236         (pxeloader_exec_ASFLAGS): ... this.
2237         (pxeloader_exec-pxeloader.$(OBJEXT)): New target.
2239 2001-07-03  OKUJI Yoshinori  <okuji@gnu.org>
2240         
2241         From Julien Bordet <julien.bordet@int-evry.fr>:
2242         * stage2/i386-elf.h (Elf32_Shdr): New type.
2243         * stage2/boot.c (load_image): Added ELF symbol loading support.
2244         
2245 2001-06-22  OKUJI Yoshinori  <okuji@gnu.org>
2247         * stage2/char_io.c [STAGE1_5] (grub_strcmp): Defined, even
2248         for Stage 1.5. See thecomment, for a possible future strategy.
2249         * stage2/fsys_vstafs.c [!FSYS_VSTAFS]: Don't define anything.
2250         [STAGE1_5] (grub_strcmp): Removed.
2251         (get_file_info): Made static.
2252         (vstafs_readdir): Likewise.
2253         (vstafs_nextdir): Likewise.
2254         (curr_ext): Likewise.
2255         (current_direntry): Likewise.
2256         (current_blockpos): Likewise.
2257         (a): Likewise.
2258         
2259 2001-06-22  OKUJI Yoshinori  <okuji@gnu.org>
2261         VSTa filesystem support is added.
2262         
2263         From Kristoffer BrÃ¥nemyr <ztion@swipnet.se>:
2264         * stage2/configure.in (--disable-vstafs): New option.
2265         * stage2/Makefile.am (noinst_HEADERS): Added vstafs.h.
2266         (libgrub_a_SOURCES): Added fsys_vstafs.c.
2267         (libgrub_a_CFLAGS): Added -DFSYS_VSTAFS=1.
2268         (pkgdata_DATA): Added vstafs_stage1_5.
2269         (noinst_PROGRAMS): Added vstafs_stage1_5.exec.
2270         (pre_stage2_exec_SOURCES): Added fsys_vstafs.c.
2271         (vstafs_stage1_5_exec_SOURCES): New variable.
2272         (vstafs_stage1_5_exec_CFLAGS): Likewise.
2273         (vstafs_stage1_5_exec_LDFLAGS): Likewise.
2274         * stage2/disk_io.c (fsys_table): Added an entry for vstafs.
2275         * stage2/filesys.h [FSYS_VSTAFS] (FSYS_VSTAFS_NUM): Defined as
2276         1.
2277         [FSYS_VSTAFS] (vstafs_mount): New prototype.
2278         [FSYS_VSTAFS] (vstafs_read): Likewise.
2279         [FSYS_VSTAFS] (vstafs_dir): Likewise.
2280         [!FSYS_VSTAFS] (FSYS_VSTAFS_NUM): Defined as 0.
2281         (NUM_FSYS): Added FSYS_VSTAFS_NUM.
2282         * stage2/pc_slice.h (PC_SLICE_TYPE_VSTAFS): New macro.
2283         * stage2/shared.h (STAGE2_ID_VSTAFS_STAGE1_5): Likewise.
2284         [STAGE1_5 && FSYS_VSTAFS] (STAGE2_ID): Defined as
2285         STAGE2_ID_VSTAFS_STAGE1_5.
2286         * stage2/vstafs.h: New file.
2287         * stage2/fsys_vstafs.c: Likewise.
2288         
2289 2001-06-22  OKUJI Yoshinori  <okuji@gnu.org>
2291         From Thierry Laronde <thierry@cri74.org>:
2292         * stage2/builtins.c (configfile_func): Added a prototype.
2293         (bootp_func): If `--with-configfile' is given, set
2294         WITH_CONFIGFILE to one, and call configfile_func with
2295         CONFIG_FILE.
2296         
2297 2001-06-21  OKUJI Yoshinori  <okuji@gnu.org>
2299         * docs/grub.texi: Update the location of the CVS repository
2300         [/home/cvs -> /cvsroot/grub].
2301         * README: Likewise.
2302         
2303 2001-06-19  OKUJI Yoshinori  <okuji@gnu.org>
2305         * stage2/boot.c (load_image): If the image is a Multiboot ELF OS
2306         image, get the physical entry address, when a loaded memory
2307         segment contains it. And, set ENTRY_ADDR to it, after printing
2308         out the virtual one. Suggested by Rogelio M. Serrano Jr.
2309         <rogelio@victorio.com>.
2310         
2311 2001-05-30  OKUJI Yoshinori  <okuji@gnu.org>
2313         * docs/grub.texi: Fix some typos. Reported by Florian Hatat
2314         <mininet@wanadoo.fr>.
2315         
2316 2001-05-29  Pavel Roskin  <proski@gnu.org>
2318         * configure.in (AC_OUTPUT): Remove debian/Makefile.
2320 2001-05-28  Gordon Matzigkeit  <gord@fig.org>
2322         * Makefile.am (SUBDIRS): Remove reference to debian directory.
2323         Packaging is no longer done by the GRUB team.
2325 2001-05-03  Gordon Matzigkeit  <gord@fig.org>
2327         * stage1/stage1.S (nt_magic): Explicitly reserve space for the NT
2328         magic number.
2330 2001-05-25  Klaus Reichl  <Klaus.Reichl@alcatel.at>
2332         * stage2/stage2.c (print_entries_raw): New function.
2333         (run_menu): Use it to implement menu & command-list if on dumb
2334         terminals.  
2335         Changes are:
2336           Adjust FIRST_ENTRY only on non-dumb terminals.
2337           Setting of SHOW_MENU is honoured also on dumb
2338             terminals. 
2339           Likely if SHOW_MENU is false, ESC brings her to the
2340             menu - not to the command-line as before.
2341           PRINT_BORDER, GOTOXY, SET_LINE_xxx are only called if
2342             not on dumb terminals.
2343           Show entry number when timeout is running if terminal is dumb.
2344           Prompt with entry number when waiting for keys.
2346 2001-05-14  Pavel Roskin  <proski@gnu.org>
2348         * stage2/shared.h (ENTRY): Remove unnecessary `##'.
2350 2001-05-03  Jochen Hoenicke  <jochen@gnu.org>
2352         * grub/asmstub.c (biosdisk): Work around a bug in linux's ez
2353         remapping.  Problem reported by Ben Byer <bbyer@rice.edu>.
2354         
2355 2001-03-28  Gordon Matzigkeit  <gord@fig.org>
2357         * stage2/boot.c (load_image): Don't cast entry_addr to an int, or
2358         the top bit will be interpreted as the sign.
2360 2001-03-16  OKUJI Yoshinori  <okuji@gnu.org>
2362         From Bodo Rueskamp <br@itchigo.com>:
2363         * stage2/boot.c (load_initrd): Avoid the last 64kb for
2364         Linux 2.2.x bug.
2365         
2366 2001-03-03  OKUJI Yoshinori  <okuji@gnu.org>
2368         * docs/multiboot.texi (History): Written.
2369         
2370 2001-02-28  OKUJI Yoshinori  <okuji@gnu.org>
2372         From HASEGAWA Tomoki <thasegawa@mta.biglobe.ne.jp>:
2373         * lib/device.c (get_ide_disk_name) [__FreeBSD__]: Add support
2374         for FreeBSD-4.0 or later. Use "/dev/rad0".
2375         * util/grub-install.in (convert): Add code for FreeBSD
2376         disklabels.
2378 2001-02-28  OKUJI Yoshinori  <okuji@gnu.org>
2380         From Thierry Laronde <thierry@cri74.org>:
2381         * stage2/stage2.c (cmain): If the default entry is wrong, set it
2382         to FALLBACK_ENTRY if FALLBACK_ENTRY is valid, otherwise set it
2383         to zero. Suggested by Nicolas Boos <nicolas.boos@wanadoo.fr>.
2384         
2385 2001-02-28  OKUJI Yoshinori  <okuji@gnu.org>
2387         * acconfig.h (AUTO_LINUX_MEM_OPT): New entry.
2388         * configure.in (--disable-auto-linux-mem-opt): New option.
2389         * stage2/builtins.c (kernel_func) [!AUTO_LINUX_MEM_OPT]: Add
2390         KERNEL_LOAD_NO_MEM_OPTION into LOAD_FLAGS, whether the user
2391         specifies --no-mem-option or not.
2392         
2393 2001-02-27  OKUJI Yoshinori  <okuji@gnu.org>
2395         * stage2/builtins.c (chainloader_func): Don't check if the
2396         current partition is FAT, but check if it has a FAT partition
2397         type and the BPB has a system id starting with "MSWIN".
2398         
2399 2001-02-27  OKUJI Yoshinori  <okuji@gnu.org>
2401         Added hercules support based on a patch by Frank Mehnert
2402         <fm3@os.inf.tu-dresden.de>. I translated his assembly code into
2403         C, and separated hercules from the normal console.
2404         
2405         * configure.in (--disable-hercules): New option.
2406         
2407         * grub/asmstub.c: Include <hercules.h>.
2408         (set_attrib): Renamed to ...
2409         (console_set_attrib): ... this.
2410         (herc_cls): New function.
2411         (herc_getxy): Likewise.
2412         (herc_gotoxy): Likewise.
2413         (herc_putchar): Likewise.
2414         (herc_set_attrib): Likewise.
2415         
2416         * stage2/Makefile.am (noinst_HEADERS): Added hercules.h.
2417         (libgrub_a_CFLAGS): Added -DSUPPORT_HERCULES=1.
2418         (HERCULES_FLAGS): New variable.
2419         (STAGE2_COMPILE): Added $(HERCULES_FLAGS).
2420         (pre_stage2_exec_SOURCES): Added hercules.c.
2421         * stage2/asm.S [!STAGE1_5] (set_attrib) Renamed to ...
2422         [!STAGE1_5] (console_set_attrib): ... this.
2423         * stage2/builtins.c [SUPPORT_HERCULES] (terminal_func): Added
2424         hercules support.
2425         (builtin_table) [SUPPORT_HERCULES]: Added a pointer to
2426         BUILTIN_TERMINAL.
2427         * stage2/char_io.c [SUPPORT_HERCULES]: Include <hercules.h>.
2428         [!STAGE1_5] (get_cmdline) [SUPPORT_HERCULES]: Added hercules
2429         support.
2430         [!STAGE1_5] (getkey) [SUPPORT_HERCULES]: Likewise.
2431         [!STAGE1_5] (checkkey) [SUPPORT_HERCULES]: Likewise.
2432         (grub_putchar) [SUPPORT_HERCULES]: Likewise.
2433         [!STAGE1_5] (gotoxy) [SUPPORT_HERCULES]: Likewise.
2434         [!STAGE1_5] (getxy) [SUPPORT_HERCULES]: Likewise.
2435         [!STAGE1_5] (cls) [SUPPORT_HERCULES]: Likewise.
2436         (set_attrib): New function.
2437         * stage2/shared.h (console_set_attrib): Declared.
2438         (TERMINAL_HERCULES): New macro.
2439         * stage2/stage2.c (run_menu) [SUPPORT_HERCULES]: Added hercules
2440         support.
2441         * stage2/hercules.h: New file.
2442         * stage2/hercules.c: Likewise.
2443         
2444 2001-02-17  OKUJI Yoshinori  <okuji@gnu.org>
2446         From "Treutwein; Bernhard"
2447         <Bernhard.Treutwein@Verwaltung.Uni-Muenchen.DE>:
2448         * docs/grub.texi (DOS/Windows): Improved the readability.
2449         
2450 2001-02-11  OKUJI Yoshinori  <okuji@gnu.org>
2452         * docs/grub.texi (Command-line and menu commands): Renamed to ...
2453         (General commands): ... this.
2454         
2455 2001-02-08  OKUJI Yoshinori  <okuji@gnu.org>
2457         * stage2/asm.S [STAGE1_5] (chain_stage2): Save the second sector
2458         of stage2 in %ecx temporarily, and set %ebp to %ecx after
2459         switching to protected mode. I forgot that %ebp is broken by
2460         rot_to_real. Reported by Torvald Riegel
2461         <tr16@inf.tu-dresden.de>.
2462         
2463 2001-02-08  OKUJI Yoshinori  <okuji@gnu.org>
2465         * docs/grub-new.texi: Moved to ...
2466         * docs/grub.texi: ... here. And, include internals.texi.
2467         * docs/internals.texi: New file.
2468         * docs/prog-ref.texi: Removed.
2469         * docs/user-ref.texi: Likewise.
2470         * docs/tutorial.texi: Likewise.
2471         * docs/appendices.texi: Likewise.
2472         * docs/Makefile.am (grub_TEXINFOS): Removed prog-ref.texi,
2473         user-ref.texi, tutorial.texi, and appendices.texi. Added
2474         internals.texi.
2475         
2476 2001-02-03  OKUJI Yoshinori  <okuji@gnu.org>
2478         From Erik Schoenfelder <schoenfr@gaertner.de>:
2479         * stage2/shared.h (LINUX_INITRD_MAX_ADDRESS): Changed from
2480         0x3C000000 to 0x38000000.
2481         
2482 2001-02-03  OKUJI Yoshinori  <okuji@gnu.org>
2484         * stage2/builtins.c (savedefault_func)
2485         [!SUPPORT_DISKLESS && !GRUB_UTIL]: Check if the version
2486         contained in the buffer matches to current one as well.
2487         
2488 2001-02-02  OKUJI Yoshinori  <okuji@gnu.org>
2490         * stage2/builtins.c (savedefault_func)
2491         [!SUPPORT_DISKLESS && !GRUB_UTIL]: Check if the stage2 id is
2492         STAGE2_ID_STAGE2. Suggested by Jochen Hoenicke.
2493         
2494         * stage2/stage2.c (cmain): If DEFAULT_ENTRY is out of entries,
2495         reset DEFAULT_ENTRY to zero.
2496         
2497 2001-02-02  OKUJI Yoshinori  <okuji@gnu.org>
2499         Make savedefault workable even with Stage 1.5. Reported by
2500         Thierry Laronde <thierry@cri74.org>.
2501         
2502         * grub/asmstub.c (chain_stage2): Added an additional argument,
2503         SECOND_SECTOR.
2504         * stage2/asm.S [STAGE1_5] (chain_stage2): Set %ebp to
2505         SECOND_SECTOR.
2506         * stage2/disk_io.c [STAGE1_5] (disk_read_hook): Defined.
2507         [STAGE1_5] (disk_read_func): Likewise.
2508         (rawread) [STAGE1_5]: Handle DISK_READ_FUNC.
2509         (grub_read) [STAGE1_5]: Likewise.
2510         * stage2/fsys_ext2fs.c (ext2fs_read) [STAGE1_5]: Likewise.
2511         * stage2/fsys_fat.c (fat_read) [STAGE1_5]: Likewise.
2512         * stage2/fsys_ffs.c (ffs_read) [STAGE1_5]: Likewise.
2513         * stage2/fsys_minix.c (minix_read) [STAGE1_5]: Likewise.
2514         * stage2/fsys_reiserfs.c (reiserfs_read) [STAGE1_5]: Likewise.
2515         
2516 2001-02-02  OKUJI Yoshinori  <okuji@gnu.org>
2518         * netboot/config.c [GRUB && INCLUDE_PCI] (pci_dispatch_table):
2519         New structure.
2520         [GRUB && INCLUDE_PCI] (PCI_NIC): New variable.
2521         (eth_probe) [GRUB && INCLUDE_PCI]: If a PCI NIC candidate is
2522         present, probe it first.
2523         
2524 2001-01-27  OKUJI Yoshinori  <okuji@gnu.org>
2526         From Danilo Godec <danci@agenda.si>:
2527         * stage2/pc_slice.h (PC_SLICE_TYPE_LINUX_RAID): New macro.
2528         * stage2/fsys_ext2fs.c (ext2fs_mount): Add a check for
2529         PC_SLICE_LINUX_RAID.
2530         
2531 2001-01-27  OKUJI Yoshinori  <okuji@gnu.org>
2533         From Bernhard Treutwein
2534         <Bernhard.Treutwein@Verwaltung.Uni-Muenchen.DE>:
2535         * docs/grub-new.texi (DOS/Windows): Made more readable.
2536         
2537 2001-01-27  OKUJI Yoshinori  <okuji@gnu.org>
2539         * docs/multiboot.texi: Start reorganizing Multiboot
2540         Specification.
2541         
2542 2001-01-15  OKUJI Yoshinori  <okuji@gnu.org>
2544         From Thierry Laronde <thierry.laronde@polynum.com>:
2545         * docs/user-ref.texi (Command-line and menu commands): Update
2546         the description about setkey.
2547         * stage2/builtins.c (setkey_func): When checking if TO_KEY and
2548         FROM_KEY are specified, see *TO_KEY and *FROM_KEY instead of
2549         TO_KEY and FROM_KEY, respectively.
2550         
2551 2001-01-13  OKUJI Yoshinori  <okuji@gnu.org>
2553         From Thierry Laronde <thierry.laronde@polynum.com>:
2554         * util/grub-md5-crypt.in (prefix): New variable.
2555         (exec_prefix): Likewise.
2556         (sbindir): Likewise.
2557         
2558 2001-01-12  OKUJI Yoshinori  <okuji@gnu.org>
2560         * docs/multiboot.h [__ELF__] (MULTIBOOT_HEADER_FLAGS): Defined
2561         as 0x00000003 instead of 0x00010003.
2562         * docs/boot.S (multiboot_header) [__ELF__]: Don't define a.out
2563         kludge information.
2564         
2565         * docs/Makefile.am (EXTRA_PROGRAMS): New variable.
2566         [BUILD_EXAMPLE_KERNEL] (noinst_DATA): Removed.
2567         [BUILD_EXAMPLE_KERNEL] (noinst_PROGRAMS): Changed to kernel.
2568         [BUILD_EXAMPLE_KERNEL] (kernel_exec_SOURCES): Renamed to ...
2569         [BUILD_EXAMPLE_KERNEL] (kernel_SOURCES): ... this.
2570         [BUILD_EXAMPLE_KERNEL] (kernel_exec_CFLAGS): Renamed to ...
2571         [BUILD_EXAMPLE_KERNEL] (kernel_CFLAGS): ... this.
2572         [BUILD_EXAMPLE_KERNEL] (kernel_exec_LDFLAGS): Renamed to ...
2573         [BUILD_EXAMPLE_KERNEL] (kernel_LDFLAGS): ... this.
2574         [BUILD_EXAMPLE_KERNEL] (kernel): Removed.
2575         [BUILD_EXAMPLE_KERNEL] (boot.o): New dependency.
2576         (CLEANFILES): New variable.
2577         
2578 2001-01-11  OKUJI Yoshinori  <okuji@gnu.org>
2580         * stage2/builtins.c [SUPPORT_NETBOOT] (ifconfig_func): Always
2581         print current network configuration.
2582         [SUPPORT_NETBOOT] (tftpserver_func): Use ifconfig instead of
2583         arp_server_override.
2584         * netboot/main.c (arp_server_override): Removed.
2585         * netboot/etherboot.h (arp_server_override): Likewise.
2587 2001-01-11  Eugene Doudine  <dudin@np.nk.nornik.ru>
2588         
2589         * stage2/builtins.c [SUPPORT_NETBOOT] (ifconfig_func): New
2590         function to configure network interface from command line.
2591         [SUPPORT_NETBOOT] (builtin_ifconfig): New variable.
2592         [SUPPORT_NETBOOT] (builtin_table): Added a pointer to
2593         BUILTIN_IFCONFIG.
2594         * netboot/main.c (ifconfig): New function.
2595         * netboot/etherboot.h (ifconfig): Added the prototype.
2596         
2597 2001-01-11  OKUJI Yoshinori  <okuji@gnu.org>
2599         * docs/Makefile.am [BUILD_EXAMPLE_KERNEL] (noinst_DATA): New
2600         variable.
2601         [BUILD_EXAMPLE_KERNEL] (noinst_PROGRAMS): Likewise.
2602         [BUILD_EXAMPLE_KERNEL] (kernel_exec_SOURCES): Likewise.
2603         [BUILD_EXAMPLE_KERNEL] (kernel_exec_CFLAGS): Likewise.
2604         [BUILD_EXAMPLE_KERNEL] (kernel_exec_LDFLAGS): Likewise.
2605         [BUILD_EXAMPLE_KERNEL] (kernel): New target.
2606         * configure.in (--enable-example-kernel): New option.
2608         * docs/kernel.c (cmain): Cast unsigned long variables to
2609         unsigned explicitly, to suppress GCC warnings.
2610         
2611 2001-01-08  OKUJI Yoshinori  <okuji@gnu.org>
2613         * stage2/shared.h (BOOTSEC_BPB_HIDDEN_SECTORS): New macro.
2614         
2615         * stage2/builtins.c (chainloader_func): If CURRENT_PARTITION is
2616         FAT, set the hidden sectors field of the BPB to PART_START, to
2617         avoid a Windows bug which affects only when Windows is booted
2618         from a logical partition. And, clear ERRNUM after testing if a
2619         partition is FAT, because open_partition or fat_mount may set
2620         ERRNUM. Reported by Ingo Korb <ingo@akana.de>.
2621         
2622 2001-01-07  OKUJI Yoshinori  <okuji@gnu.org>
2624         * stage2/builtins.c (boot_func): In the chain-loading mode,
2625         clear the active flag of each of the loaded partition entries,
2626         and then set the active flag of the booted partition image.
2627         
2628 2001-01-04  Jochen Hoenicke  <jochen@gnu.org>
2630         * stage2/builtins.c (embed_func): Call open_partition() even for
2631         MBR, so that part_start is correct.  This fixes a bug reported by
2632         Matthias Granberry <matthias@slurpee.org>.
2633         
2634 2000-12-22  OKUJI Yoshinori  <okuji@gnu.org>
2636         * stage2/disk_io.c (make_saved_active): Change the variable name
2637         ``MBR'' to lower case.
2638         (set_partition_hidden_flag): Likewise.
2639         
2640 2000-12-20  Jochen Hoenicke  <jochen@gnu.org>
2642         From Cedric Ware <ware@com.enst.fr>:
2643         * stage2/fsys_ext2.c (ext2fs_mount): Detect ext2 partitions in
2644         a OpenBSD/NetBSD FS_EXT2FS slice.
2645         * stage2/pc_slice.h (FS_ADOS): New Macro from OpenBSD/NetBSD.
2646         (FS_HFS): Likewise.
2647         (FS_FILECORE): Likewise.
2648         (FS_EXT2FS): Likewise.
2649         
2650 2000-12-17  Jochen Hoenicke  <jochen@gnu.org>
2652         * stage2/disk_io.c (rawread): Check if there is a EZD partition
2653         and remap sector 0 to sector 1 like EZ-BIOS does.
2654         (rawwrite): New function to write to disk.  Also does EZD
2655         remapping.
2656         (devwrite): New function.  Does the special remapping to
2657         partitions needed for linux.  This contains the code that was
2658         previously duplicated in embed_func and install_func at several
2659         places.
2660         (make_saved_active): Use rawwrite. Don't use SCRATCHSEG, as it is
2661         needed by devwrite.
2662         (set_partition_hidden_flag): Likewise.  
2663         * stage2/disk_io.h (rawwrite): New function.
2664         (devwrite): Likewise.
2665         * stage2/pc_slice.h (PC_SLICE_TYPE_EZD): New macro.
2666         * stage2/builtins.c (embed_info): New variable to store the
2667         position of the embedded stage1_5 for setup_func.
2668         (embed_func): Don't embed after the MBR if an EZ-BIOS is detected
2669         there.  Use the new devwrite method.  If embedding is successful
2670         store position in embed_info.
2671         (install_func): Use devwrite.  Don't use SCRATCHSEG.
2672         (partnew_func): Use rawwrite.  Don't use SCRATCHSEG.
2673         (parttype_func): Likewise.
2674         (savedefault_func): Likewise.
2675         (setup_func): New nested function embed_stage1_5.  Stage1_5 is now
2676         also be embedded into filesystems which supports that.
2677         
2678 2000-12-17  OKUJI Yoshinori  <okuji@gnu.org>
2680         * stage2/builtins.c (chainloader_func): Set ERRNUM to
2681         ERR_EXEC_FORMAT, when ERRNUM is ERR_NONE, even if grub_read
2682         fails in reading one sector.
2683         
2684 2000-12-14  OKUJI Yoshinori  <okuji@gnu.org>
2686         * docs/prog-ref.texi (Partition types): Rewrite the footnotes.
2687         Suggested by Ralf.Medow@t-online.de (Ralf Medow).
2688         
2689 2000-12-14  OKUJI Yoshinori  <okuji@gnu.org>
2691         From Erik Schoenfelder <schoenfr@gaertner.de>:
2692         * util/grub-install.in (convert): Revised the fix for floppy
2693         device handling.
2694         
2695 2000-12-14  OKUJI Yoshinori  <okuji@gnu.org>
2697         From HORIKAWA Kazunori <kaz-hori@tkd.att.ne.jp>:
2698         * stage2/bios.c (get_diskinfo): Append 16 bytes dummy data to
2699         DRP, because the BIOS of Thinkpad X20 write a garbage beyond the
2700         size of the structure.
2701         
2702 2000-12-09  Jochen Hoenicke  <jochen@gnu.org>
2704         * stage2/disk_io.c (next_partition): Mask out bsd partition sub
2705         type when checking if last partition was a bsd partition.
2706         Reported by Heikki Vatiainen <hessu@cs.tut.fi>.
2707         
2708 2000-12-09  OKUJI Yoshinori  <okuji@gnu.org>
2710         From Leendert Meyer <leen.meyer@home.nl>:
2711         * util/grub-install.in (convert): If a floppy device is
2712         specified, remove everything from $tmp_part.
2713         
2714 2000-12-09  OKUJI Yoshinori  <okuji@gnu.org>
2716         * lib/device.c [__linux__] (write_to_partition): Use strcpy
2717         instead of strcat, to overwrite "/disc". Reported by Thiago
2718         Macieira <thiagom@mail.com>.
2719         
2720 2000-12-05  Jochen Hoenicke  <jochen@gnu.org>
2722         * stage2/fsys_minix.c (minix_mount): Corrected the check for
2723         IS_PC_SLICE_TYPE_MINIX; minix was only working if slice type was
2724         wrong! Reported by Ralf Medow <ralf.medow@t-online.de>.
2725         
2726 2000-11-27  Jochen Hoenicke  <jochen@gnu.org>
2728         * stage2/fsys_reiserfs.c: Handle items with old version key on
2729         new version reiserfs partition.
2730         (K_OFFSET): Removed.
2731         (IH_KEY_OFFSET): New Macro, which checks item head version.
2732         (IH_KEY_ISOFFSET): Likewise.
2733         (reiserfs_read): Use new macros.
2734         (reiserfs_dir): Fixed version check for >4GB stat entries.
2735         
2736 2000-11-27  OKUJI Yoshinori  <okuji@gnu.org>
2738         * stage2/common.c (init_bios_info) [!STAGE1_5]: Don't call
2739         track_int13, because the current implementation hangs up in some
2740         environments.
2741         
2742 2000-11-27  OKUJI Yoshinori  <okuji@gnu.org>
2744         * grub/asmstub.c (serial_init) [!O_SYNC]: Don't specify O_SYNC
2745         to open SERIAL_DEVICE.
2746         (serial_init) [O_FSYNC]: Specify O_FSYNC to open SERIAL_DEVICE.
2747         Reported by Farid Hajji <farid.hajji@ob.kamp.net>.
2748         
2749 2000-11-22  OKUJI Yoshinori  <okuji@gnu.org>
2751         From Vesa Jaaskelainen <jaaskela@tietomyrsky.fi>:
2752         * stage2/builtins.c (testvbe_func): Don't set the bit 14 of a
2753         VBE mode number explicitly when calling get_vbe_mode_info.
2754         (vbeprobe_func): Likewise.
2755         
2756 2000-11-22  OKUJI Yoshinori  <okuji@gnu.org>
2758         The code for the "INT 13H tracking technique" is somewhat
2759         simplified.
2761         * stage2/asm.S [!STAGE1_5] (track_int13): Don't replace an int13
2762         handler with set_tf_int13_handler. Instead, track_int13 itself
2763         emulates an int13 interrupt.
2764         [!STAGE1_5] (set_tf_int13_handler): Removed.
2765         [!STAGE1_5] (int1_handler): Use movzbw instead of xorb and movb.
2766         
2767 2000-11-15  OKUJI Yoshinori  <okuji@gnu.org>
2769         * acconfig.h (PRESET_MENU_STRING): New entry.
2770         * acinclude.m4 (grub_DEFINE_FILE): New M4 macro.
2771         * configure.in (--enable-preset-menu): New option.
2772         * stage2/stage2.c [PRESET_MENU_STRING] (preset_menu): New
2773         variable.
2774         [PRESET_MENU_STRING] (preset_menu_offset): Likewise.
2775         [PRESET_MENU_STRING] (open_preset_menu): New function.
2776         [PRESET_MENU_STRING] (read_from_preset_menu): Likewise.
2777         [PRESET_MENU_STRING] (close_preset_menu): Likewise.
2778         [!PRESET_MENU_STRING] (open_preset_menu): New macro.
2779         [!PRESET_MENU_STRING] (read_from_preset_menu): Likewise.
2780         [!PRESET_MENU_STRING] (close_preset_menu): Likewise.
2781         (get_line_from_config): Accept a new argument READ_FROM_FILE.
2782         If it is false, read data from the preset menu instead.
2783         (cmain): If grub_open fails in opening the configuration file,
2784         then try to open the preset menu.
2785         
2786 2000-11-11  OKUJI Yoshinori  <okuji@gnu.org>
2788         From Jan Fricke <fricke@uni-greifswald.de>:
2789         * stage2/asm.S [!STAGE1_5] (set_vbe_mode): Add a missing `$'
2790         prefix.
2791         
2792 2000-11-11  OKUJI Yoshinori  <okuji@gnu.org>
2794         * stage2/bios.c (get_diskinfo): If BIOS supports LBA but doesn't
2795         return the correct total number of sectors, compute this by
2796         C/H/S returned by get_diskinfo_int13_extensions instead of
2797         get_diskinfo_standard.
2798         
2799 2000-11-09  OKUJI Yoshinori  <okuji@gnu.org>
2801         * stage2/disk_io.c (make_saved_active): Set ERRNUM to
2802         ERR_DEV_VALUES instead of ERR_NO_PART, when the save partition
2803         is not a primary partition.
2804         
2805 2000-11-05  OKUJI Yoshinori  <okuji@gnu.org>
2807         * docs/user-ref.texi (Features): Update the URL of grub/98.
2808         
2809 2000-11-03  OKUJI Yoshinori  <okuji@gnu.org>
2811         VBE support is _partially_ implemented.
2812         
2813         * stage2/mb_header.h (multiboot_header): Added new fields,
2814         mode_type, width, height, and depth.
2815         (MULTIBOOT_FOUND): Check if MULTIBOOT_VIDEO_MODE is set, and
2816         check if LEN is greater than or equal to 48, if set.
2817         (MULTIBOOT_UNSUPPORTED): Set to 0x0000FFF8.
2818         (MULTIBOOT_VIDEO_MODE): New macro.
2819         * stage2/mb_info.h (multiboot_info): Added new fields,
2820         vbe_control_info, vbe_mode_info, vbe_mode, vbe_interface_seg,
2821         vbe_interface_off, and vbe_interface_len.
2822         (MB_INFO_VIDEO_INFO): New macro.
2823         
2824         * stage2/shared.h (vbe_controller): New structure.
2825         (vbe_mode): Likewise.
2826         (get_vbe_controller_info): Declared.
2827         (get_vbe_mode_info): Likewise.
2828         (set_vbe_mode): Likewise.
2829         * stage2/asm.S [!STAGE1_5] (get_vbe_controller_info): New
2830         function.
2831         [!STAGE1_5] (get_vbe_mode_info): Likewise.
2832         [!STAGE1_5] (set_vbe_mode): Likewise.
2833         * grub/asmstub.c (get_vbe_controller_info): Likewise.
2834         (get_vbe_mode_info): Likewise.
2835         (set_vbe_mode): Likewise.
2837         * stage2/builtins.c (testvbe_func): New function.
2838         (builtin_testvbe): New variable.
2839         (vbeprobe_func): New function.
2840         (builtin_vbeprobe): New variable.
2841         (builtin_table): Added pointers to BUILTIN_TESTVBE and
2842         BUILTIN_VBEPROBE.
2843         
2844 2000-11-01  OKUJI Yoshinori  <okuji@gnu.org>
2846         * docs/help2man: Copied from help2man-1.23.
2847         
2848 2000-10-29  OKUJI Yoshinori  <okuji@gnu.org>
2850         * stage2/asm.S [STAGE1_5]: Don't include setjmp.S or apm.S.
2851         
2852 2000-10-27  OKUJI Yoshinori  <okuji@gnu.org>
2854         * lib/device.c (read_device_map): Don't parse a line, if it is
2855         empty. Reported by Holger Bauer <bauer@itsm.uni-stuttgart.de>.
2856         
2857 2000-10-25  Jochen Hoenicke  <jochen@gnu.org>
2859         * stage2/builtins.c (md5crypt_func): Use all bits of currticks ()
2860         to generate the salt.  The old code would often produce the same
2861         one character salt.
2863 2000-10-25  OKUJI Yoshinori  <okuji@gnu.org>
2865         * stage2/apm.S (get_apm_info): Fix a serious typo: prot_to_real
2866         -> real_to_prot. Umm, I can't understand why it worked for me!
2867         
2868 2000-10-24  Jochen Hoenicke  <jochen@gnu.org>
2870         * stage2/builtins.c (setup_func): When invoking install with an
2871         embedded stage1_5 give the path to menu.lst as real_config_file.
2873 2000-10-23  OKUJI Yoshinori  <okuji@gnu.org>
2875         * docs/multiboot.texi: Upgraded to 0.6.92.
2876         (Boot information format): Re-designed the graphics table.
2877         
2878 2000-10-22  OKUJI Yoshinori  <okuji@gnu.org>
2880         * docs/tutorial.texi: Miscellaneous updates.
2881         * docs/user-ref.texi: Likewise.
2882         * docs/appendices.texi: Likewise.
2883         
2884 2000-10-22  OKUJI Yoshinori  <okuji@gnu.org>
2886         * util/grub-install.in (usage): Removed unnecessary commas.
2887         
2888         * util/grub-md5-crypt.in: New file.
2889         * util/Makefile.am (sbin_SCRIPTS): Added grub-md5-crypt.
2890         * configure.in (AC_OUTPUT): Added util/grub-md5-crypt.
2891         * docs/Makefile.am (man_MANS): Added grub-md5-crypt.8.
2892         [MAINTAINER_MODE] ($(srcdir)/grub-md5-crypt.8): New target.
2893         * docs/grub-md5-crypt.8: New file. Generated by help2man.
2895         * docs/grub.texi (grub-md5-crypt): New direntry.
2896         (Invoking grub-md5-crypt): New entry.
2897         * docs/user-ref.texi (Invoking grub-md5-crypt): New chapter.
2898         
2899 2000-10-22  OKUJI Yoshinori  <okuji@gnu.org>
2901         From Matthias Granberry <matthias@slurpee.org>:
2902         * util/grub-install.in (convert): Added backslashes into
2903         continuous lines.
2904         
2905 2000-10-21  OKUJI Yoshinori  <okuji@gnu.org>
2907         * stage2/md5.c (check_md5_password): Removed.
2908         (md5_password): New function. Mostly copied from
2909         check_md5_password.
2910         (md5_init): Made static.
2911         (md5_update): Likewise.
2912         (md5_final): Likewise.
2913         * stage2/md5.h (check_md5_password): Changed to just a macro.
2914         (md5_password): Declared.
2915         (make_md5_password): New macro.
2916         * stage2/char_io.c [!STAGE1_5] (grub_strstr): Rewriten, because
2917         it was too buggy.
2918         * stage2/builtins.c [USE_MD5_PASSWORDS] (md5crypt_func): New
2919         function.
2920         [USE_MD5_PASSWORDS] (builtin_md5crypt): New variable.
2921         (builtin_table) [USE_MD5_PASSWORDS]: Added a pointer to
2922         BUILTIN_MD5CRYPT.
2923         * docs/tutorial.texi (Security): Added a paragraph about
2924         md5crypt.
2925         
2926 2000-10-21  OKUJI Yoshinori  <okuji@gnu.org>
2928         * docs/user-ref.texi: Fixed several typos and some inappropriate
2929         texinfo commands, and update the descriptions about some
2930         commands.
2931         
2932 2000-10-20  OKUJI Yoshinori  <okuji@gnu.org>
2934         * stage2/builtins.c (displayapm_func): New function.
2935         (builtin_displayapm): New variable.
2936         (builtin_table): Added a pointer to BUILTIN_DISPLAYAPM.
2937         
2938 2000-10-20  OKUJI Yoshinori  <okuji@gnu.org>
2940         APM BIOS table support is added, based on a patch by Matt Yourst
2941         <yourst@mit.edu>.
2942         
2943         * docs/multiboot.texi (Boot information format): Added the
2944         definition of APM table format.
2945         
2946         * stage2/mb_info.h (apm_info): New structure.
2947         (multiboot_info): Added a new element, apm_table.
2948         (MB_INFO_APM_TABLE): New macro.
2949         * stage2/asm.S (apm_bios_info): New variable.
2950         Include "apm.S".
2951         * stage2/apm.S: New file.
2952         * stage2/common.c (init_bios_info) [!STAGE1_5]: Added APM BIOS
2953         table support.
2954         * stage2/shared.h (apm_bios_info): Declared.
2955         (get_apm_info): Likewise.
2956         * stage2/Makefile.am (EXTRA_DIST): Added apm.S.
2957         * grub/asmstub.c (apm_bios_info): New variable.
2958         (get_apm_info): New function.
2959         
2960 2000-10-19  OKUJI Yoshinori  <okuji@gnu.org>
2962         Segregate functions which are copyrighted differently.
2963         
2964         * stage2/setjmp.S: New file.
2965         * stage2/Makefile.am (EXTRA_DIST): Added setjmp.S.
2966         * stage2/asm.S: Include "setjmp.S".
2967         (grub_setjmp): Moved to ...
2968         * stage2/setjmp.S (grub_setjmp): ... here.
2969         * stage2/asm.S (grub_longjmp): Moved to ...
2970         * stage2/setjmp.S (grub_longjmp): ... here.
2971         
2972 2000-10-18  OKUJI Yoshinori  <okuji@gnu.org>
2974         * stage2/Makefile.am (noinst_HEADERS): Added md5.h. Reported by
2975         Volker Augustin <Volker.Augustin@stud.uni-regensburg.de>.
2976         
2977 2000-10-17  OKUJI Yoshinori  <okuji@gnu.org>
2979         * configure.in (--disable-md5password): Renamed to ...
2980         (--disable-md5-password): ... this. Just for my preference.
2981         
2982 2000-10-17  Jochen Hoenicke  <jochen@gnu.org>
2984         Added MD5 passwords and extended password command:
2985         
2986         * configure.in (--disable-md5password): New option.
2987         * stage2/Makefile.am (libgrub_a_SOURCES): Added md5.c.
2988         (pre_stage2_exec_SOURCES): Likewise.
2989         * stage2/md5.c: New file.
2990         * stage2/shared.h (password_t): New type.
2991         (password_type): New variable.
2992         (BUILTIN_HIDDEN): New flag, describing that a command should not
2993         be printed when booting the entry.
2994         (check_password): New function.
2995         * stage2/cmdline.c (run_script): Don't show commands that have
2996         the hidden attribute.
2997         * stage2/builtins.c (password_type): New variable.
2998         (check_password): New function.
2999         (password_func): Handle the --md5 option and set password_type.
3000         Check if in CMDLINE or SCRIPT mode and ask password immediately.
3001         (builtin_password): Also allow passwords in CMDLINE mode, make
3002         it hidden, so the user wont see the password he should enter.
3003         Changed command description.
3004         (builtin_pause): Make the command hidden.
3005         (pause_func): Print argument, since the command is now hidden.
3006         * stage2/stage2.c (run_menu): Call check_password to check password.
3007         * docs/tutorial.texi (Security): Describe the new features of the
3008         password commands.
3009         * docs/user-ref.texi (Menu-specific commands): password command
3010         moved ...
3011         (Command-line and menu commands): ... to here.  New features 
3012         doumented.
3013         
3014 2000-10-17  OKUJI Yoshinori  <okuji@gnu.org>
3016         * stage2/builtins.c (setkey_func): Clear the all elements of
3017         BIOS_KEY_MAP and ASCII_KEY_MAP instead of only the first
3018         elements, when TO_KEY is NULL.
3019         
3020 2000-10-16  OKUJI Yoshinori  <okuji@gnu.org>
3022         * stage2/boot.c (load_image): When handling Linux cmdline, don't
3023         copy a null character from SRC to DEST, because this inserted an
3024         extra null character into the cmdline. Reported by Robert
3025         Bihlmeyer <robbe@orcus.priv.at>.
3026         
3027 2000-10-16  OKUJI Yoshinori  <okuji@gnu.org>
3029         Some of the new Multiboot features are supported. APM support
3030         and VESA support are not strictly defined or implemented yet.
3031         
3032         * docs/multiboot.texi (Top): Increase the version number.
3033         (Boot information format): Changed the drive information format,
3034         because it was not straightforward.
3035         
3036         * grub/asmstub.c (io_map): New variable.
3037         (track_int13): New function.
3038         (get_rom_config_table): Likewise.
3039         * stage2/stage2.c (cmain): Set CONFIG_ENTRIES to MBI.DRIVES_ADDR
3040         + MBI.DRIVES.LENGTH instead of MBI.MMAP_ADDR + MBI.MMAP_LENGTH.
3041         * stage2/common.c (init_bios_info) [!STAGE1_5]: Added support
3042         for drive info, ROM config table, and boot loader name features
3043         of the Multiboot Specification.
3044         * stage2/mb_info.h (drive_info): New structure.
3045         (MB_DI_CHS_MODE): New macro.
3046         (MB_DI_LBA_MODE): Likewise.
3047         (multiboot_info): Added drives_length, drives_addr,
3048         config_table, and boot_loader_name.
3049         (MB_INFO_DRIVE_INFO): New macro.
3050         (MB_INFO_CONFIG_TABLE): Likewise.
3051         (MB_INFO_BOOT_LOADER_NAME): Likewise.
3052         * stage2/asm.S (get_rom_config_table): New function.
3053         * stage2/shared.h (get_rom_config_table): Declared.
3054         
3055 2000-10-16  OKUJI Yoshinori  <okuji@gnu.org>
3057         * util/grub-install.in (convert): Check only if the file exists,
3058         instead of checking if the file is a block device as well.
3059         Because, in a sane operating system, it should be a char device
3060         but not a block device (unlike Linux), and it may be a symbolic
3061         link (this can happen if you use Linux's devfs without devfsd).
3062         (recheck): New variable. Set to "no" by default, and set to
3063         "yes", if you specify the new option ``--recheck''. If $recheck
3064         is "yes", remove the device map file, if present.
3065         
3066 2000-10-16  OKUJI Yoshinori  <okuji@gnu.org>
3068         From Roderich Schupp:
3069         * lib/device.c: Include <limits.h>.
3070         [__linux__] (have_devfs): New function.
3071         (get_floppy_disk_name) [__linux__]: If devfs is supported, use
3072         the name "/dev/floppy/N" instead.
3073         (init_device_map) [__linux__]: If devfs is supported, use
3074         "/dev/discs/discN" instead.
3075         [__linux__] (write_to_partition): Change the size of DEV to
3076         PATH_MAX instead of 64.
3077         If devfs is supported, replace "/disc" in the device name with
3078         "/part".
3079         
3080 2000-10-15  OKUJI Yoshinori  <okuji@gnu.org>
3082         From Roderich Schupp <rsch@ExperTeam.de>:
3083         * util/grub-install.in (convert): Added support for "native"
3084         devfs device names.
3085         
3086 2000-10-14  OKUJI Yoshinori  <okuji@gnu.org>
3088         * docs/tutorial.texi (Serial terminal): Fixed a typo.
3089         * docs/user-ref.texi (GRUB images): New chapter.
3090         * docs/grub.texi: Added an entry for the chapter "GRUB images".
3091         
3092 2000-10-14  OKUJI Yoshinori  <okuji@gnu.org>
3094         * stage2/builtins.c (setkey_func): If TO_KEY is NULL (i.e. the
3095         user specifies no argument), clear BIOS_KEY_MAP and
3096         ASCII_KEY_MAP.
3097         If TO_KEY is non-NULL but FROM_KEY is NULL, set ERRNUM to
3098         ERR_BAD_ARGUMENT and return one.
3099         
3100 2000-10-13  OKUJI Yoshinori  <okuji@gnu.org>
3102         * docs/grub.texi: Added an entry for the new chapter "Security",
3103         and the order of the chapters in the Tutorial Manual was
3104         changed.
3105         * docs/tutorial.texi (Configuration): Moved to right after the
3106         chapter "Booting".
3107         (Security): New chapter.
3108         
3109 2000-10-10  OKUJI Yoshinori  <okuji@gnu.org>
3111         From Alessandro Rubini:
3112         * util/grub-install.in (root_device): Use the regular expression
3113         's%.*\(/dev/[^  ]*\).*%\1%' instead of
3114         's%.*\(/dev/[a-z0-9]*\).*%\1%'.
3115         (bootdir_device): Likewise.
3116         (grubdir_device): Likewise.
3117         
3118 2000-10-10  OKUJI Yoshinori  <okuji@gnu.org>
3120         * stage2/start.S (copy_buffer): Use pusha and popa instead of
3121         pushing and poping %di and %si individually, to reduce the code
3122         size and save %cx as well. Reported by Herbert Nachtnebel
3123         <nachtneb@iaee.tuwien.ac.at>.
3124         
3125 2000-10-10  OKUJI Yoshinori  <okuji@gnu.org>
3127         From Daniel Pittman <daniel@rimspace.net>:
3128         * stage2/builtins.c (setkey_func): Check if
3129         KEYSYM_TABLE[I].UNSHIFTED_NAME and KEYSYM_TABLE[I].SHIFTED_NAME
3130         are not NULLs, before calling grub_strcmp.
3131         
3132 2000-10-08  OKUJI Yoshinori  <okuji@gnu.org>
3134         * util/grub-install.in (grub_prefix): New variable. The default
3135         is "/boot/grub".
3136         If the user has a separate boot partition, set grub_prefix
3137         instead of grubdir to "/grub".
3138         When running the command "setup", specify $grub_prefix instead
3139         of $grubdir to the option "--prefix".
3140         Report by Thierry Laronde.
3141         
3142 2000-10-08  OKUJI Yoshinori  <okuji@gnu.org>
3144         * stage2/builtins.c (find_func): Clear ERRNUM after the last
3145         call of next_partition, because it always sets ERRNUM. Reported
3146         by Thierry Laronde <thierry.laronde@polynum.com>.
3147         
3148 2000-10-07  OKUJI Yoshinori  <okuji@gnu.org>
3150         * lib/device.c [__linux__] (write_to_partition): Open DEV with
3151         O_RDWR instead of O_ORONLY.
3152         
3153 2000-10-06  Alessandro Rubini  <rubini@gnu.org>
3155         * docs/user-ref.texi (Commands): Added missing commands and
3156         reworded part of the text.
3158         * stage2/builtins.c (serial_func): Unswap the setting of "speed"
3159         and "port".
3161 2000-10-06  OKUJI Yoshinori  <okuji@gnu.org>
3163         * stage2/builtins.c (setup_func): Append "... " to the
3164         messages when calling embed_func and install_func, and print
3165         the result.
3166         Don't jump to the label "fail", even when embed_func failed.
3167         
3168 2000-10-05  Gordon Matzigkeit  <gord@fig.org>
3170         * stage2/disk_io.c (real_open_partition): Make sure that buf_geom
3171         corresponds to the current drive before using it.
3173         * lib/device.c (get_drive_geometry): Use fstat if the native
3174         geometry methods fail, such as when the drive is mapped to a
3175         regular file.
3177         * docs/tutorial.texi: Add `@kbd{...}' to examples in order to
3178         differentiate between command output and characters the user
3179         should type.
3180         * docs/user-ref.texi: Likewise.
3182 2000-10-05  OKUJI Yoshinori  <okuji@gnu.org>
3184         * docs/grub.texi: Added an entry for the chapter "Serial
3185         terminal".
3186         * docs/tutorial.texi (Serial terminal): New chapter.
3187         
3188 2000-10-04  Gordon Matzigkeit  <gord@fig.org>
3190         * util/grub-image (VERSION): Fix version calculation to tolerate
3191         `(GNU GRUB 0.5.96)'-style versions.
3193         * docs/grub.texi: Remove braces from `@unnumbered' sections so
3194         that texi2html doesn't complain.
3196         * debian/rules: Build HTML documentation to appease the Debian
3197         masses.
3199 2000-10-04  OKUJI Yoshinori  <okuji@gnu.org>
3201         * stage2/fsys_reiserfs.c (reiserfs_mount): Compare PART_LENGTH
3202         with SUPERBLOCK + (sizeof(super) >> SECTOR_BITS) instead of
3203         sizeof(struct reiserfs_super_block). Reported by Jochen
3204         Hoenicke.
3205         
3206 2000-10-05  OKUJI Yoshinori  <okuji@gnu.org>
3208         * configure.in (AM_INIT_AUTOMAKE): The version number is set to
3209         0.5.97. This version number is a dummy, as we will never release
3210         0.5.97 actually.
3211         
3212 2000-10-01  OKUJI Yoshinori  <okuji@gnu.org>
3214         * lib/device.c [__linux__]: Don't include <linux/cdrom.h>.
3215         [__linux__ && !CDROM_GET_CAPABILITY] (CDROM_GET_CAPABILITY):
3216         Defined as 0x5331.
3217         
3218 2000-10-01  OKUJI Yoshinori  <okuji@gnu.org>
3220         * lib/device.c (get_drive_geometry) [__GNU__]: Get the number of
3221         total sectors by fstat. The rest are filled with arbitrary
3222         values.
3223         
3224 2000-09-30  OKUJI Yoshinori  <okuji@gnu.org>
3226         * util/grub-install.in (convert): The code for gnu* (i.e.
3227         GNU/Hurd) was rewritten, since it didn't work for BSD
3228         partitions.
3229         Use "$tmp_disk *$" instead of "$tmp_disk" to get the drive name.
3230         
3231 2000-09-30  OKUJI Yoshinori  <okuji@gnu.org>
3233         * stage2/fsys_reiserfs.c (reiserfs_mount): Check if the length
3234         of the partition is less than the size of a super block, before
3235         attempting to read the super block.
3237         * grub/asmstub.c (console_putchar)
3238         [HAVE_LIBCURSES_H && REFRESH_IMMEDIATELY]: Call refresh, to ease
3239         debugging.
3240         
3241 2000-09-30  OKUJI Yoshinori  <okuji@gnu.org>
3243         Added two new commands, "partnew" and "parttype", based on the
3244         patch by Stefan Ondrejicka <ondrej@idata.sk>:
3245         * stage2/builtins.c (partnew_func): New function.
3246         (builtin_partnew): New variable.
3247         (parttype_func): New function.
3248         (builtin_parttype): New variable.
3249         (builtin_table): Added pointers to BUILTIN_PARTNEW and to
3250         BUILTIN_PARTTYPE.
3251         
3252 2000-09-29  OKUJI Yoshinori  <okuji@gnu.org>
3254         * stage2/builtins.c (find_func): New variable GOT_FILE is set to
3255         one if FILENAME is found. Otherwise, it is set to zero.
3256         Clear ERRNUM at the end in the loop for floppies, to ensure that
3257         ERRNUM is cleared before examining hard disks.
3258         Rewrite the loop for hard disks using next_partitions, so this
3259         function now checks all partitions you have certainly.
3260         If GOT_FILE is non-zero, set ERRNUM to ERR_FILE_NOT_FOUND and
3261         return one.
3262         
3263 2000-09-29  OKUJI Yoshinori  <okuji@gnu.org>
3265         * stage2/disk_io.c (check_BSD_parts): Removed.
3266         (next_partition): New function.
3267         (real_open_partition): Rewritten using next_partition.
3268         (set_device) [!STAGE1_5]: Skip a comma in DEVICE, even when the
3269         BSD partition is not specified.
3270         [!STAGE1_5] (print_completions): Don't append ')' if the
3271         partition is a PC slice which may have BSD partitions. Instead,
3272         try to complete the command-line with possible partitions.
3273         * stage2/shared.h (next_partition): Declared.
3274         
3275 2000-09-27  OKUJI Yoshinori  <okuji@gnu.org>
3277         * configure.in (--enable-serial): Changed to ...
3278         (--disable-serial): ... this. Now the serial support is enabled
3279         by default.
3280         
3281 2000-09-27  OKUJI Yoshinori  <okuji@gnu.org>
3283         * stage2/char_io.c [!STAGE1_5] (get_cmdline) [!SUPPORT_SERIAL]: 
3284         Don't check if the terminal is dumb. If the terminal is console,
3285         always use console functions.
3286         * stage2/builtins.c [!SUPPORT_NETBOOT] (bootp_func): Undefined.
3287         [!SUPPORT_NETBOOT] (builtin_bootp): Likewise.
3288         [!GRUB_UTIL] (device_func): Likewise.
3289         [!GRUB_UTIL] (builtin_device): Likewise.
3290         [!SUPPORT_NETBOOT] (dhcp_func): Likewise.
3291         [!SUPPORT_NETBOOT] (builtin_dhcp): Likewise.
3292         [!GRUB_UTIL] (quit_func): Likewise.
3293         [!GRUB_UTIL] (builtin_quit): Likewise.
3294         [!SUPPORT_NETBOOT] (rarp_func): Likewise.
3295         [!SUPPORT_NETBOOT] (builtin_rarp): Likewise.
3296         [!SUPPORT_SERIAL] (serial_func): Likewise.
3297         [!SUPPORT_SERIAL] (builtin_serial): Likewise.
3298         [!SUPPORT_SERIAL] (terminal_func): Likewise.
3299         [!SUPPORT_SERIAL] (builtin_terminal): Likewise.
3300         [!SUPPORT_NETBOOT] (tftpserver_func): Likewise.
3301         [!SUPPORT_NETBOOT] (builtin_tftpserver): Likewise.
3302         (builtin_table) [!SUPPORT_NETBOOT]: Removed the pointers to
3303         BUILTIN_BOOTP, BUILTIN_DHCP, BUILTIN_RARP, and
3304         BUILTIN_TFTPSERVER.
3305         (builtin_table) [!SUPPORT_SERIAL]: Removed the pointers to
3306         BUILTIN_SERIAL and BUILTIN_TERMINAL.
3307         (builtin_table) [!GRUB_UTIL]: Removed the pointers to
3308         BUILTIN_DEVICE and BUILTIN_QUIT.
3309         
3310 2000-09-26  OKUJI Yoshinori  <okuji@gnu.org>
3312         * util/grub-install.in (bootdir_device): New variable. If
3313         $bootdir_device is not the same as $root_device, set root_device
3314         and grubdir to $bootdir_device and "/grub", respectively.
3315         Add --prefix=$grubdir into the command "setup".
3316         
3317 2000-09-26  OKUJI Yoshinori  <okuji@gnu.org>
3319         Add --prefix=DIR to the command "setup".
3320         
3321         * stage2/builtins.c (setup_func): New nested function,
3322         check_file checks if the file FILE exists.
3323         Remove the prefix "/boot/grub" in STAGE1_5_MAP.
3324         Don't hardcode "/boot/grub/stage1", "/boot/grub/stage2", or
3325         "/boot/grub/menu.lst". Instead, check if ARG contains
3326         "--prefix=", and if specified, set PREFIX to the value.
3327         If not specified, check "/boot/grub/stage1" and, if not found,
3328         check "/grub/stage1". If a stage1 was found, set PREFIX to the
3329         directory which contains the stage1.
3330         
3331 2000-09-12  OKUJI Yoshinori  <okuji@gnu.org>
3333         Add additional magic to avoid a bug in Linux. *sigh*
3334         
3335         * stage2/boot.c (load_image): Copy SRC to DEST first, and append
3336         a "mem=" option to DEST instead of prepending.
3337         
3338 2000-09-11  OKUJI Yoshinori  <okuji@gnu.org>
3340         Reported by Alessandro Rubini:
3341         * stage2/fsys_minix.c (minix_mount): Check if CURRENT_SLICE is a
3342         partition type for minix fs, using the macro
3343         IS_PC_SLICE_TYPE_MINIX.
3344         * stage2/pc_slice.h (PC_SLICE_TYPE_LINUX_MINIX): New macro.
3345         (IS_PC_SLICE_TYPE_MINIX): Likewise.
3346         
3347 2000-09-09  Alessandro Rubini  <rubini@morgana.systemy.it>
3349         * stage1/stage1.S (notification_string): Print "GRUB " instead
3350         of "stage1 ".
3351         * stage2/start.S [STAGE1_5] (notification_string): Print
3352         "Loading stage1.5" instead of "stage1.5 ".
3353         [!STAGE1_5] (notification_string): Print "Loading stage2"
3354         instead of "stage2 ".
3355         (notification_step): New label, followed by a string ".".
3356         (notification_done): New label, followed by a string "\r\n".
3357         (copy_buffer): Print NOTIFICATION_STEP after copying the buffer.
3358         (bootit): Print NOTIFICATION_DONE before restoring %dx.
3359         
3360 2000-09-09  OKUJI Yoshinori  <okuji@gnu.org>
3362         From Alessandro Rubini:
3363         * configure.in (CPPFLAGS): Added -malign-jumps=1,
3364         -malign-loops=1 and -malign-functions=1.
3365         
3366 2000-09-07  OKUJI Yoshinori  <okuji@gnu.org>
3368         From Hal Snyder <hal@vailsys.com>:
3369         * lib/device.c (get_drive_geometry) [__FreeBSD__ || __NetBSD__
3370         || __OpenBSD__]: Call ioctl for FD instead of
3371         DISKS[DRIVE].FLAGS. This was a mistake when I segregated this
3372         function from asmstub.c.
3373         
3374 2000-09-07  Alessandro Rubini  <rubini@gnu.org>
3376         * docs/tutorial.texi: Fixed a few typos and minor imprecisions.
3377         * docs/prog-ref.texi: Likewise.
3378         * docs/user-ref.texi: Likewise.
3380 2000-09-07  OKUJI Yoshinori  <okuji@gnu.org>
3382         From Alessandro Rubini:
3383         * stage2/builtins.c (terminal_func): Rename TIMEOUT to TO, to
3384         suppress GCC warnings.
3385         * grub/asmstub.c (serial_checkkey): Likewise.
3386         
3387 2000-09-06  OKUJI Yoshinori  <okuji@gnu.org>
3389         * stage2/char_io.c [!STAGE1_5] (auto_fill): New variable.
3390         [!STAGE1_5] (get_cmdline): Save AUTO_FILL in SAVED_AUTO_FILL in
3391         the beginning and restore AUTO_FILL before return.
3392         Set AUTO_FILL to one and zero before and after calling
3393         print_completions, respectively.
3394         (grub_putchar) [!STAGE1_5]: Use a static variable COL to track
3395         the position of the cursor. If C is a carriage return, clear
3396         COL. If C is a backspace and COL is positive, decrease COL. If C
3397         is a printable character, increase COL. In this case, if
3398         AUTO_FILL is non-zero and COL is greater than or equal to 79,
3399         put a newline automatically.
3400         * stage2/shared.h (auto_fill): Declared.
3401         * stage2/stage2.c (run_menu): In the menu interface, disable the
3402         auto fill mode (i.e. set AUTO_FILL to zero), and enable it again
3403         when booting an entry.
3404         (cmain): Initialize AUTO_FILL (i.e. set it to one) in the
3405         beginning of the loop.
3406         
3407 2000-09-06  OKUJI Yoshinori  <okuji@gnu.org>
3409         Add support for "boot previously booted entry by default", based
3410         on the patch by Mike Meyer <mwm@mired.org>, but I've modified
3411         his patch thoroughly.
3412         
3413         * grub/asmstub.c (saved_entryno): New variable. This is a dummy.
3414         * stage1/stage1.h (COMPAT_VERSION_MINOR): Incremented.
3415         * stage2/asm.S (saved_entryno): New variable.
3416         (codestart) [!SUPPORT_DISKLESS]: Set INSTALL_SECOND_SECTOR to
3417         %ebp. %ebp is set in start.S.
3418         (install_second_sector): New variable.
3419         * stage2/builtins.c (current_entryno): New variable.
3420         (default_func) [!SUPPORT_DISKLESS]: If ARG is "saved", set
3421         DEFAULT_ENTRY to SAVED_ENTRYNO.
3422         (savedefault_func): New function.
3423         (builtin_savedefault): New variable.
3424         (builtin_table): Added a pointer to BUILTIN_SAVEDEFAULT.
3425         * stage2/shared.h (STAGE2_SAVED_ENTRYNO): New macro.
3426         (STAGE2_STAGE2_ID): Changed to 0x10.
3427         (STAGE2_FORCE_LBA): Chaged to 0x11.
3428         (STAGE2_VER_STR_OFFS): Changed to 0x12.
3429         (install_second_sector): Declared.
3430         (saved_entryno): Likewise.
3431         (current_entryno): Likewise.
3432         * stage2/stage2.c (run_menu): Set CURRENT_ENTRYNO to FIRST_ENTRY
3433         + ENTRYNO, right before calling run_script.
3434         * stage2/start.S (start): Save the sector number of the second
3435         sector in %ebp.
3436         
3437 2000-09-05  OKUJI Yoshinori  <okuji@gnu.org>
3439         * stage1/stage1.S (lba_mode) [!NO_BUGGY_BIOS_IN_THE_WORLD]:
3440         Don't check for the geometry, since some BIOSes don't return the
3441         number of total sectors correctly, even if they have working LBA
3442         support.
3443         * stage2/start.S (lba_mode) [!NO_BUGGY_BIOS_IN_THE_WORLD]:
3444         Likewise.
3445         * stage2/bios.c (biosdisk) [!NO_BUGGY_BIOS_IN_THE_WORLD]:
3446         Likewise.
3447         Reported by Jan Fricke <fricke@uni-greifswald.de> and Pixel
3448         <pixel@mandrakesoft.com>.
3449         
3450 2000-09-05  OKUJI Yoshinori  <okuji@gnu.org>
3452         From Alessandro Rubini <rubini@gnu.org>:
3453         * stage2/char_io.c (print_error) [!STAGE1_5]: Print ERRNUM like
3454         "Error 9: Unknown boot failure".
3455         (print_error) [STAGE1_5]: Don't print a colon.
3456         * util/grub-install.in: When checking if an error occurred, use
3457         the expression "Error [0-9]*: " instead of "Error: ".
3458         * docs/user-ref.texi (Stage1.5 errors): Updated, since the error
3459         form changed.
3460         
3461 2000-09-04  OKUJI Yoshinori  <okuji@gnu.org>
3463         * stage2/stage2.c (run_menu) [GRUB_UTIL]: Set DISP_UP and
3464         DISP_DOWN to ACS_UARROW and ACS_DARROW, respectively. Don't call
3465         grub_printf here.
3466         (run_menu) [!GRUB_UTIL]: Don't call grub_printf here. Instead,
3467         call it...
3468         (run_menu): ... here.
3469         * stage2/shared.h (ACS_ULCORNER): Always define this ourselves,
3470         whether your curses library has the definition.
3471         (ACS_URCORNER): Likewise.
3472         (ACS_LLCORNER): Likewise.
3473         (ACS_LRCORNER): Likewise.
3474         (ACS_HLINE): Likewise.
3475         (ACS_VLINE): Likewise.
3476         (ACS_LARROW): Likewise.
3477         (ACS_RARROW): Likewise.
3478         (ACS_UARROW): Likewise.
3479         (ACS_DARROW): Likewise.
3481         * stage2/char_io.c [SUPPORT_SERIAL] (serial_cls): If the
3482         terminal is dumb, just put a newline.
3483         * stage2/builtins.c (terminal_func) [SUPPORT_SERIAL]: When
3484         choosing a terminal, don't set TERMINAL to the type of the
3485         terminal. Instead, apply a logical AND operation with
3486         TERMINAL_DUMB, since previous code brushed off the dumb
3487         attribute.
3488         
3489 2000-09-04  OKUJI Yoshinori  <okuji@gnu.org>
3491         * stage2/stage2.c (run_menu): If SHOW_MENU is zero, print a
3492         message with the timeout per second.
3493         If GRUB_TIMEOUT is negative, set SHOW_MENU to one, since the
3494         condition "no timeout and no interface" is nonsense.
3495         If GRUB_TIMEOUT is equal to or greater than zero and the
3496         terminal is dumb, set SHOW_MENU to zero.
3497         If SHOW_MENU is non-zero and the terminal is dumb, enter the
3498         command-line interface instead. If AUTH is false and PASSWORD is
3499         non-NULL, prompt the user to enter a password until the entered
3500         password is identical to PASSWORD.
3501         
3502 2000-09-03  OKUJI Yoshinori  <okuji@gnu.org>
3504         * util/grub-install.in: Fix a typo: grub_dir -> grubdir.
3505         * stage2/builtins.c (install_func) [GRUB_UTIL]: Open a Stage 2
3506         with "r+" instead of "r", as GRUB needs to overwrite it.
3507         
3508 2000-09-02  OKUJI Yoshinori  <okuji@gnu.org>
3510         * stage2/stage2.c (run_menu): Don't use either `p' or `n' to
3511         move the cursor, because `p' is already used for another
3512         purpose (password).
3513         (run_menu) [SUPPORT_SERIAL]: Don't set the variables DISP_UP and
3514         DISP_DOWN at the start time. Instead, set them just before using
3515         them actually, because TERMINAL may change when running a menu.
3516         
3517 2000-09-01  Klaus Reichl  <Klaus.Reichl@alcatel.at>
3519         * stage2/stage2.c (run_menu): Setup and use disp_up, disp_down
3520         depending on the terminal mode.
3521         (run_menu): Allow '^' (resp. 'p') and 'v' (resp 'n') keys we
3522         described in our help above (resp. authors preferences).
3524 2000-08-31  Klaus Reichl  <Klaus.Reichl@alcatel.at>
3526         * stage2/stage2.c (set_line): Go back one char, which is
3527         consistent with the original situation, when a timeout was
3528         running.  
3529         (run_menu): If GRUB_TIMEOUT is stopped don't loop busy over
3530         CHECKKEY, just relax in GETKEY. 
3532         * stage2/builtins.c (serial_func): --speed handling: corrected
3533         typo: set SPEED instead of PORT. 
3534         
3535 2000-08-31  OKUJI Yoshinori  <okuji@gnu.org>
3537         * stage2/builtins.c (terminal_func): Added two new options,
3538         --dumb and --timeout=SECS.
3539         * stage2/char_io.c [!STAGE1_5] (getkey): Use logical AND
3540         operations, when checking if the terminal is a console or a
3541         serial terminal.
3542         [!STAGE1_5] (getkey) [SUPPORT_SERIAL]: Don't check if both
3543         TERMINAL_CONSOLE and TERMINAL_SERIAL are set in TERMINAL.
3544         
3545 2000-08-31  OKUJI Yoshinori  <okuji@gnu.org>
3547         * stage1/stage1.S (MOV_MEM_TO_AL): New macro.
3548         (real_start): Use the macro MOV_MEM_TO_AL instead of using movb
3549         directly, because binutils-2.9.1.0.x doesn't produce a short
3550         opcode for it automatically. Reported by Alessandro Rubini
3551         <rubini@gnu.org>.
3553 2000-08-30  OKUJI Yoshinori  <okuji@gnu.org>
3555         * configure.in (CPPFLAGS): Remove -Wundef by default. Add the
3556         option only if the C compiler supports it, because GCC 2.7.x
3557         doesn't support it.
3558         * grub/main.c (longopts): The type of the argument for "hold" is
3559         changed to OPTIONAL_ARGUMENT.
3560         (main): If --hold is specified, check if OPTARG is zero. If so,
3561         set HOLD to -1, otherwise, set it to the digit OPTARG.
3562         If HOLD is greater than zero, decrease it once per loop.
3563         
3564 2000-08-30  OKUJI Yoshinori  <okuji@gnu.org>
3566         The command-line interface is switched to single-line editing
3567         mode.
3568         
3569         * stage2/char_io.c [!STAGE1_5] (get_cmdline): Extensively
3570         rewritten. The nested functions cl_print and cl_kill_to_end are
3571         removed, cl_refresh, cl_backward, cl_forward and cl_delete are
3572         added, and, cl_init and cl_insert are rewritten from scratch.
3573         See the source code, for more information. I don't think this
3574         kind of changes can be represented in ChangeLog.
3575         [!STAGE1_5] (CMDLINE_WIDTH): New macro.
3576         [!STAGE1_5] (CMDLINE_MARGIN): Likewise.
3577         * stage2/shared.h (TERMINAL_DUMB): Likewise.
3578         
3579 2000-08-28  OKUJI Yoshinori  <okuji@gnu.org>
3581         * grub/asmstub.c (console_putchar) [HAVE_LIBCURSES]: If
3582         USE_CURSES is true, emulate a new line like a ordinary terminal,
3583         because ncurses treats it badly. If current position on y-axis
3584         is the bottom of the screen, call scroll. Otherwise, call move
3585         with the arguments, Y + 1 and X, where X and Y are current
3586         position of the cursor.
3587         
3588 2000-08-28  OKUJI Yoshinori  <okuji@gnu.org>
3590         * stage2/asm.S (console_putchar): Don't print a carriage return
3591         when C is a newline.
3592         * stage2/char_io.c (grub_putchar): Call grub_putchar with the
3593         arugment set to a carriage return, if C is a newline.
3594         [!STAGE1_5 && SUPPORT_SERIAL]: Don't print a carriage return
3595         when C is a newline.
3596         
3597 2000-08-27  OKUJI Yoshinori  <okuji@gnu.org>
3599         * lib/device.c [__linux__]: Don't include linux/fs.h.
3600         [!BLKGETSIZE] (BLKGETSIZE): Defined as _IO(0x12,96).
3601         * grub/asmstub.c [__linux__]: Don't include linux/fs.h.
3602         
3603 2000-08-27  OKUJI Yoshinori  <okuji@gnu.org>
3605         Preserve a magic number used by Windows NT in a MBR. Shit!
3606         Reported by Khimenko Victor.
3607         
3608         * stage1/stage1.h (STAGE1_WINDOWS_NT_MAGIC): New macro.
3609         * stage1/stage1.S (copy_buffer): Use pusha and popa, instead of
3610         pushing/poping %cx and %si separately, to reduce the code size.
3611         (nt_magic): New label. Set the offset to _start plus
3612         STAGE1_WINDOWS_NT_MAGIC
3613         (part_start): New label.
3614         * stage2/builtins.c (install_func): If DEST_DRIVE is a hard
3615         disk, copy the possible partition table and Windows NT magic to
3616         STAGE1_BUFFER from OLD_SECT.
3617         
3618 2000-08-26  OKUJI Yoshinori  <okuji@gnu.org>
3620         * stage2/char_io.c (translate_keycode) [SUPPORT_SERIAL]: Don't
3621         drain the input buffer, since that was irritating.
3622         
3623 2000-08-26  OKUJI Yoshinori  <okuji@gnu.org>
3625         Don't save/restore fragile registers unnecessarily.
3626         
3627         * stage2/asm.S [!STAGE1_5] (track_int13): Don't save/restore
3628         %ecx, %edx, or %eax.
3629         [!STAGE1_5] (set_int13_handler): Likewise.
3630         (biosdisk_int13_extensions): Likewise.
3631         (biosdisk_standard): Likewise.
3632         (check_int13_extensions): Likewise.
3633         (get_diskinfo_int13_extensions): Likewise.
3634         (get_diskinfo_standard): Likewise.
3635         (get_diskinfo_floppy): Likewise.
3636         [!STAGE1_5] (get_eisamemsize): Likewise.
3637         [!STAGE1_5] (get_mmap_entry): Likewise.
3638         [!STAGE1_5] (console_cls): Likewise.
3639         [!STAGE1_5] (nocursor): Likewise.
3640         [!STAGE1_5] (console_getxy): Likewise.
3641         [!STAGE1_5] (console_gotoxy): Likewise.
3642         [!STAGE1_5] (set_attrib): Likewise.
3643         [!STAGE1_5] (getrtsecs): Likewise.
3644         [!STAGE1_5] (currticks): Likewise, and don't zero %eax
3645         explicitly, since prot_to_real does that.
3646         
3647 2000-08-25  OKUJI Yoshinori  <okuji@gnu.org>
3649         * stage2/char_io.c [!STAGE1_5] (translate_keycode): New
3650         function. The serial part is stolen from the patch by Christoph
3651         Plattner.
3652         [!STAGE1_5] (get_cmdline): Call translate_keycode instead of
3653         translating special key codes into ASCII characters by itself.
3654         * stage2/stage2.c (run_menu): Wrap getkey with the macro
3655         ASCII_CHAR, when checking if ESC is pressed.
3656         Call translate_keycode as well as getkey, unless checkkey
3657         returns -1. So don't check if C is KEY_DOWN or KEY_UP. And don't
3658         use the macro ASCII_CHAR for C explicitly.
3659         * stage2/shared.h (translate_keycode): Declared.
3660         
3661 2000-08-24  OKUJI Yoshinori  <okuji@gnu.org>
3663         * stage2/builtins.c [GRUB_UTIL]: Include stdio.h before
3664         shared.h. Reported by Mathieu Chouquet-Stringer
3665         <mchouque@cs.stevens-tech.edu>.
3666         
3667 2000-08-21  OKUJI Yoshinori  <okuji@gnu.org>
3669         * configure.in (--enable-serial-speed-emulation): New option.
3670         (SERIAL_SPEED_SIMULATION): New conditional.
3671         * grub/Makefile.am (SERIAL_FLAGS): New variable. Set
3672         -DSUPPORT_SERIAL=1 and -DSIMULATE_SLOWNESS_OF_SERIAL=1, if
3673         SERIAL_SPEED_SIMULATION is defined, otherwise, set it to
3674         only -DSUPPORT_SERIAL=1.
3675         (AM_CFLAGS): Removed -DSUPPORT_SERIAL=1 and added
3676         $(SERIAL_FLAGS).
3677         * grub/asmstub.c [SIMULATE_SLOWNESS_OF_SERIAL] (serial_speed):
3678         New variable.
3679         (grub_setjmp): Removed.
3680         (grub_longjmp): Likewise.
3681         (serial_getkey) [SIMULATE_SLOWNESS_OF_SERIAL]: Wait for
3682         1000000 / (SERIAL_SPEED >> 3) microseconds using gettimeofday.
3683         (serial_putchar) [SIMULATE_SLOWNESS_OF_SERIAL]: Likewise.
3684         (serial_init) [SIMULATE_SLOWNESS_OF_SERIAL]: Set SERIAL_SPEED to
3685         SPEED.
3686         * stage2/builtins.c (serial_func) [SUPPORT_SERIAL]: Added
3687         a new option, `--speed'.
3688         (builtin_serial): Added a description about --speed.
3689         (terminal_func): When get a key from a serial device, if GRUB is
3690         in the command-line interface, call grub_longjmp with
3691         RESTART_CMDLINE_ENV, instead of init_page.
3692         * stage2/cmdline.c (restart_cmdline_env): New variable.
3693         (enter_cmdline): Call grub_setjmp with RESTART_CMDLINE_ENV after
3694         calling init_cmdline.
3695         (run_script): Run BUILTIN->FUNC with BUILTIN_SCRIPT instead of
3696         BUILTIN_CMDLINE.
3697         * stage2/shared.h (BUILTIN_SCRIPT): New macro.
3698         [GRUB_UTIL] (grub_setjmp): Defined as setjmp.
3699         [GRUB_UTIL] (grub_longjmp): Defined as longjmp.
3700         (restart_cmdline_env): Declared.
3701         
3702 2000-08-20  OKUJI Yoshinori  <okuji@gnu.org>
3704         * configure.in (--enable-serial): New option. Serial terminal
3705         support will be enabled by default, once it is stabilized.
3706         (SERIAL_SUPPORT): New conditional.
3707         * grub/Makefile.am (AM_CFLAGS): Added -DSUPPORT_SERIAL=1.
3708         * grub/asmstub.c (cls): Renamed to ...
3709         (console_cls): ... this.
3710         (getxy): Renamed to ...
3711         (console_getxy): ... this.
3712         (gotoxy): Renamed to ...
3713         (console_gotoxy): ... this.
3714         * stage2/Makefile.am (libgrub_a_CFLAGS): Added
3715         -DSUPPORT_SERIAL=1.
3716         (NETBOOT_FLAGS): New variable.
3717         (SERIAL_FLAGS): Likewise.
3718         (STAGE2_COMPILE): Added $(NETBOOT_FLAGS) and $(SERIAL_FLAGS).
3719         * stage2/asm.S [!STAGE1_5] (cls): Renamed to ...
3720         [!STAGE1_5] (console_cls): ... this.
3721         [!STAGE1_5] (getxy): Renamed to ...
3722         [!STAGE1_5] (console_getxy): ... this.
3723         [!STAGE1_5] (gotoxy): Renamed to ...
3724         [!STAGE1_5] (console_gotoxy): ... this.
3725         * stage2/builtins.c (terminal_func): If the bit flag
3726         BUILTIN_CMDLINE in FLAGS is set, call init_page. But this should
3727         be fixed so that it restarts enter_cmdline instead.
3728         * stage2/char_io.c [!STAGE1_5] (gotoxy): New function.
3729         [!STAGE1_5] (serial_gotoxy): Likewise.
3730         [!STAGE1_5] (getxy): Likewise.
3731         [!STAGE1_5] (serial_getxy): Likewise.
3732         [!STAGE1_5] (cls): Likewise.
3733         [!STAGE1_5] (serial_cls): Likewise.
3734         * stage2/serial.h (serial_cls): Declared.
3735         (serial_getxy): Likewise.
3736         (serial_gotoxy): Likewise.
3737         * stage2/shared.h (console_cls): Likewise.
3738         (console_getxy): Likewise.
3739         (console_gotoxy): Likewise.
3740         * stage2/stage2.c (print_entries): If serial terminal is
3741         enabled, print ACS_UARROW and ACS_DARROW instead of DISP_UP and
3742         DISP_DOWN, respectively.
3743         (print_border): If serial terminal is enabled, print
3744         ACS_ULCORNER, ACS_URCORNER, ACS_LLCORNER, ACS_LRCORNER,
3745         ACS_HLINE and ACS_VLINE instead of DISP_UL, DISP_UR, DISP_LL,
3746         DISP_LR, DISP_HORIZ and DISP_VERT, respectively.
3747         (print_border) [SUPPORT_SERIAL]: Color the menu only if console
3748         is used.
3749         (set_line): Take two more arguments, ENTRYNO and MENU_ENTRIES.
3750         (set_line_normal): Likewise.
3751         (set_line_highlight): Likewise.
3752         (set_line) [SUPPORT_SERIAL]: If serial terminal is enabled, get
3753         the menu entry whose attributes are being changed and redraw the
3754         line.
3755         (set_line_highlight) [SUPPORT_SERIAL]: If serial terminal is
3756         enabled, print `ESC [ 7 m' and `ESC [ 0 m' before and after
3757         calling set_line, respectively.
3758         (run_menu) [SUPPORT_SERIAL]: Call nocursor only if console is
3759         used.
3760         
3761 2000-08-20  OKUJI Yoshinori  <okuji@gnu.org>
3763         Now the serial console support is partially working.
3764         
3765         * grub/asmstub.c (serial_checkkey): Specify a pointer to TIMEOUT
3766         as the fifth argument to select.
3767         (serial_get_port): New function. Just a dummy.
3768         (serial_init): If a serial device is opened, close SERIAL_FD
3769         before opeing a new serial device.
3770         Don't specify O_NDELAY to open.
3771         * stage2/builtins.c [SUPPORT_SERIAL]: Include serial.h.
3772         (serial_func): New function.
3773         (builtin_serial): New variable.
3774         (terminal_func): New function.
3775         (builtin_terminal): New variable.
3776         (builtin_table): Add pointers to BUILTIN_SERIAL and
3777         BUILTIN_TERMINAL.
3778         * stage2/char_io.c [SUPPORT_SERIAL]: Include serial.h.
3779         (getkey) [SUPPORT_SERIAL]: If both TERMINAL_CONSOLE and
3780         TERMINAL_SERIAL are set in TERMINAL simultaneously, print a
3781         warning and force the console terminal.
3782         (checkkey) [SUPPORT_SERIAL]: If TERMINAL_SERIAL is set in
3783         TERMINAL, call serial_checkkey.
3784         (grub_putchar) [SUPPORT_SERIAL]: If TERMINAL_SERIAL is set in
3785         TERMINAL, call serial_putchar. If C is a newline, print a
3786         carriage return, before printing a newline.
3787         
3788 2000-08-15  OKUJI Yoshinori  <okuji@gnu.org>
3790         The image `nbgrub' now relocates itself from 0x10000 to 0x8000,
3791         since the Network Boot Image Proposal doesn't permit a second
3792         loader to be loaded below 0x10000. Reported by Matthias
3793         Kretschmer <McCratch@gmx.net>.
3794         
3795         * Makefile.am (NBLOADER_LINK): New variable.
3796         (nbloader_exec_LDFLAGS): Set to $(NBLOADER_LINK) instead of
3797         $(START_LINK).
3798         * stage2/nbi.h (NBI_DEST_ADDR): Changed to 0x10000.
3799         (NBI_DEST_SEG): New macro.
3800         (NBI_DEST_OFF): Likewise.
3801         (RELOCATED_ADDR): Likewise.
3802         (RELOCATED_SEG): Likewise.
3803         (RELOCATED_OFF): Likewise.
3804         (STAGE2_START_ADDR): Likewise.
3805         * stage2/nbloader.S: Added .code16 directive at the start of the
3806         code.
3807         Set the segment and the offset of the load address to
3808         NBI_DEST_SEG and NBI_DEST_OFF, respectively.
3809         Set the segment and the offset of the start address to
3810         NBI_DEST_SEG and NBI_DEST_OFF + relocate - _start, respectively.
3811         Added a routine for relocating itself.
3812         (relocate): New label.
3813         (copy_rest): Likewise.
3814         (copy_loop): Likewise.
3815         (copy): Likewise.
3816         (boot_stage2): Likewise.
3817         
3818 2000-08-13  OKUJI Yoshinori  <okuji@gnu.org>
3820         * grub/main.c (main): Move the version number inside the
3821         parentheses, since the grub shell is merely one of the programs
3822         included in GNU GRUB.
3823         
3824 2000-08-13  OKUJI Yoshinori  <okuji@gnu.org>
3826         Add a serial device emulation into the grub shell.
3827         
3828         * grub/asmstub.c: Include sys/time.h and termios.h.
3829         (serial_fd): New variable.
3830         (serial_device): Likewise.
3831         (serial_getkey): New function.
3832         (serial_checkkey): Likewise.
3833         (serial_putchar): Likewise.
3834         (get_termios_speed): Likewise.
3835         (serial_init): Likewise.
3836         (set_serial_device): Likewise.
3837         (grub_stage2): Restore SERIAL_DEVICE and SERIAL_FD, if they were
3838         allocated.
3839         * stage2/serial.h [GRUB_UTIL] (set_serial_device): Declared.
3840         
3841 2000-08-13  OKUJI Yoshinori  <okuji@gnu.org>
3843         * stage2/asm.S (codestart) [SUPPORT_DISKLESS]: Don't reset a
3844         disk system. That is not only uncessary but also harmful.
3845         
3846 2000-08-12  OKUJI Yoshinori  <okuji@gnu.org>
3848         Add a serial device driver (but only the driver).
3849         
3850         * stage2/serial.c: New file.
3851         * stage2/serial.h: Likewise.
3852         * stage2/shared.h (serial_getkey): Moved to stage2/serial.h.
3853         (serial_checkkey): Likewise.
3854         (serial_putchar): Likewise.
3855         * stage2/Makefile.am (noinst_HEADERS): Added serial.h.
3856         (pre_stage2_exec_SOURCES): Added serial.c.
3858 2000-08-10  Pavel Roskin  <proski@gnu.org>
3860         * docs/tutorial.texi: Minor fixes.
3862 2000-08-10  OKUJI Yoshinori  <okuji@gnu.org>
3864         * docs/tutorial.texi (Installation): Divided into three sections
3865         instead of two sections. Don't describe the usage of the the
3866         grub shell any longer. Instead, how to use grub-install is
3867         documented.
3868         
3869 2000-08-09  OKUJI Yoshinori  <okuji@gnu.org>
3871         * stage2/builtins.c [GRUB_UTIL]: Include stdio.h.
3872         (embed_func) [GRUB_UTIL && __linux__]: When embedding a Stage
3873         1.5 into a partition, call write_to_partition instead of
3874         biosdisk.
3875         (install_func): Set DEST_PARTITION to the partition where Stage
3876         1 resides.
3877         Set SRC_PART_START to the starting address of the partition
3878         where Stage 2 resides.
3879         (install_func) [GRUB_UTIL]: Set STAGE2_OS_FILE to the file name
3880         of Stage 2 under an OS, if the new option "--stage2" is
3881         specified. Otherwise, set it to null.
3882         If STAGE2_OS_FILE is not null, modify the Stage 2 via the
3883         filesystem serviced by the OS.
3884         (install_func) [GRUB_UTIL && __linux__]: If STAGE2_OS_FILE is
3885         null but the Stage2 resides in a partition, use
3886         write_to_partition.
3887         If DEST_PARTITION is not 0xFFFFFF, use write_to_partition, to
3888         embed Stage 1.
3889         (setup_func) [GRUB_UTIL]: If --stage2 is specified, set
3890         STAGE2_ARG to the string pointing to the option. Otherwise, set
3891         it to null.
3892         (setup_func) [!GRUB_UTIL]: Set STAGE2_ARG to null.
3893         (setup_func): If STAGE2_ARG is not null, add STAGE2_ARG and a
3894         space character into CMD_ARG.
3895         * lib/device.c (_LARGEFILE_SOURCE): Defined.
3896         (_FILE_OFFSET_BITS): Likewise.
3897         [__linux__] (write_to_partition): New function.
3898         * lib/device.h [__linux__] (write_to_partition): Declared.
3899         * util/grub-install.in: Specify the option "--stage2" for the
3900         command "setup".
3901         
3902 2000-08-04  Jochen Hoenicke  <jochen@gnu.org>
3904         * stage2/fsys_fat.c (fat_superblock): clust_eof_marker added.
3905         (fat_mount): Initialize clust_eof_marker to 0xff8, 0xfff8, or
3906         0xffffff8, depending on fat size.  Support for single active FAT
3907         added (FAT32 extension). Changed the boundary between FAT12 and
3908         FAT16, again.  The Microsoft KB article Q65541 seems to be wrong
3909         here, I go with mtools and the previous behaviour of grub: FAT12
3910         iff number of clusters (without counting the two nonexisting
3911         clusters) is less or equal 4095.
3912         (fat_read): Report error if cluster number is too big, but not
3913         greater or equal clust_eof_marker.
3914         * stage2/fsys_reiserfs.c (journal_init): Fixed calculation of
3915         journal_transaction.
3916         
3917 2000-08-01  Jochen Hoenicke  <jochen@gnu.org>
3919         * stage2/fsys_reiserfs.c: Symlink support added.
3920         (S_ISLNK): New macro.
3921         (PATH_MAX): Likewise.
3922         (MAX_LINK_COUNT): Likewise.
3923         (reiserfs_dir): Check for symlink and handle them.
3924         (read_tree_node): Take a block number and check if tree node was
3925         already read in.  If not update the INFO->blocks field.
3926         (next_key): Changed call of read_tree_node.
3927         (search_stat): Likewise.
3928         (journal_init): Fixed a small bug.  Some debugging messages added.
3929         
3930 2000-07-31  Pavel Roskin  <proski@gnu.org>
3932         * grub/asmstub.c (biosdisk) [__linux__]: The first argument for
3933         _llseek renamed from "seeked_fd" to "filedes".
3935 2000-07-30  OKUJI Yoshinori  <okuji@gnu.org>
3937         * docs/appendices.texi (FAQ): Added the answer for the separate
3938         boot partition problem.
3939         
3940 2000-07-30  OKUJI Yoshinori  <okuji@gnu.org>
3942         Update the network support to Etherboot-4.6.4.
3943         
3944         From Daniel Wagner <wagi@gmx.ch>:
3945         * netboot/3c509.c: Copied from Etherboot-4.6.4.
3946         * netboot/3c509.h: Likewise.
3947         * netboot/cards.h: Likewise.
3948         * netboot/ns8390.c: Likewise.
3949         * netboot/sk_g16.c: Likewise.
3950         * netboot/sk_g16.h: Likewise.
3951         * netboot/tulip.c: Likewise.
3952         * netboot/pci.h: Likewise.
3953         * netboot/main.c (dhcpdiscover): Updated.
3954         (dhcprequest): Likewise.
3955         (bootp): Likewise.
3956         * netboot/README.netboot: Added the information about the new
3957         option --enable-ns8390-force-16bit.
3958         * configure.in (--enable-ns8390-force-16bit): New option.
3960         * netboot/config.c: Updated.
3962 2000-07-29  OKUJI Yoshinori  <okuji@gnu.org>
3964         The Linux zImage support is working now.
3965         
3966         * stage2/asm.S (linux_boot): Add 3 into %ecx and shift %ecx to
3967         the right by 2 bits, instead of shift %ecx to the left by 2
3968         bits.
3969         
3970 2000-07-29  Jochen Hoenicke  <jochen@gnu.org>
3972         * stage2/fsys_reiserfs.c (block_read): Changed the variable "len"
3973         to "j_len" (it shadowed a parameter).
3974         
3975 2000-07-29  OKUJI Yoshinori  <okuji@gnu.org>
3977         * configure.in (CPPFLAGS): Added -Wshadow, -Wpointer-arith and
3978         -Wundef, as GCC sometimes more clever than me. :)
3979         * stage2/shared.h [!ASM_FILE] (multi_boot): Change the name of
3980         the second argument from "mbi" to "mb_info".
3981         [!ASM_FILE] (biosdisk): Rename the first argument "read" to
3982         "subfunc".
3983         * lib/device.h (init_device_map): Change the name of the third
3984         argument from "floppy_disks" to "no_floppies".
3985         * lib/device.c (read_device_map): Rename the internal function
3986         "print_error" to "show_error".
3987         * stage2/builtins.c (install_func): Rename CONFIG_FILE to
3988         REAL_CONFIG.
3989         (setup_func): Rename INSTALL_DRIVE, INSTALL_PARTITION and
3990         CONFIG_FILE to INSTALLED_DRIVE, INSTALLED_PARTITION and
3991         CONFIG_FILENAME, respectively.
3992         * stage2/char_io.c (convert_to_ascii): Rename the internal
3993         variable C to TMP.
3994         (get_cmdline): Rename KILL to KILL_BUF.
3995         Rename the second argument for cl_print to REAL_ECHO_CHAR from
3996         ECHO_CHAR.
3997         * stage2/stage2.c (run_menu): Rename the internal variable
3998         NUM_ENTRIES to NEW_NUM_ENTRIES.
3999         (cmain): Rename KILL to KILL_BUF.
4000         * stage2/disk_inode_ffs.h: Check if BYTE_MSF is defined before
4001         checking the value.
4002         * stage2/fsys_ext2fs.c (ext2fs_dir): Check if E2DEBUG is
4003         defined, instead of if the value is non-zero.
4004         * grub/asmstub.c: Check if __GLIBC__ is defined before checking
4005         the value.
4006         (biosdisk) [__linux__]: Likewise.
4007         Rename the first argument for _llseek to "seeked_fd" from "fd".
4008         (multi_boot): Rename the second argument to "mb_info" from
4009         "mbi".
4010         
4011 2000-07-27  Gordon Matzigkeit  <gord@fig.org>
4013         * util/grub-image.in: Initial cut at a script for creating GRUB
4014         boot images.
4015         * util/Makefile.am (noinst_SCRIPTS): Added grub-image.
4016         * configure.in (AC_OUTPUT): Added util/grub-image.
4018 2000-07-27  Jochen Hoenicke  <jochen@gnu.org>
4020         * stage2/asm.S (check_int13_extensions): Fixed the effect of
4021         the --force-lba switch in stage2/stage1_5.
4022         
4023 2000-07-25  Jochen Hoenicke  <jochen@gnu.org>
4025         * stage2/fsys_fat.c (fat_mount): Fixed calculation of num_clust.
4026         It was off by two, since the two non existing clusters 0 and 1
4027         were not taken into account.  Also fixed the boundary between
4028         FAT12 and FAT16.
4029         
4030 2000-07-25  OKUJI Yoshinori  <okuji@gnu.org>
4032         * stage2/asm.S [!STAGE1_5] (linux_text_len): New variable.
4033         [!STAGE1_5] (linux_boot): Don't set %eax to LINUX_SETUP
4034         meaninglessly.
4035         Set %ecx to LINUX_TEXT_LEN instead of LINUX_KERNEL_MAXLEN.
4036         [!STAGE1_5] (big_linux_boot): Disable interrupts before changing
4037         the stack pointer.
4038         Change %ss right before %sp.
4039         Reverse the arguments for ljmp. A segment must be after an
4040         offset. *sigh*
4041         * stage2/boot.c (load_image): Set LINUX_TEXT_LEN to TEXT_LEN,
4042         if a Linux kernel is loaded successfully.
4043         * stage2/shared.h (LINUX_VID_MODE_OFFSET): Removed.
4044         [!ASM_FILE] (linux_kernel_header): Change the type of the member
4045         `heap_end_ptr' to unsigned short.
4046         [!ASM_FILE] (linux_text_len): Declared.
4047         
4048 2000-07-24  OKUJI Yoshinori  <okuji@gnu.org>
4050         Comply with the Linux/i386 boot protocol version 2.02.
4051         
4052         * stage2/asm.S [!STAGE1_5] (linux_boot): Set the length of moved
4053         bytes to LINUX_KERNEL_MAXLEN instead of
4054         LINUX_KERNEL_LEN_OFFSET(%eax), since the field is obsolete.
4055         [!STAGE1_5] (big_linux_boot): Don't use SEGMENT or OFFSET.
4056         Instead, embed the segment and the offset in the code itself.
4057         Set %ds, %es, %fs and %gs to %ax (LINUX_INIT_SEG).
4058         * stage2/boot.c (load_image): Rewrite the Linux support code
4059         heavily. Use a structure instead of a batch of macros, to access
4060         a Linux kernel header.
4061         (load_initrd): If MOVETO plus LEN is greater than or equal to
4062         LINUX_INITRD_MAX_ADDRESS, set MOVETO to LINUX_INITRD_MAX_ADDRESS
4063         minus LEN with page aligned.
4064         * stage2/shared.h (LINUX_MAGIC_SIGNATURE): New macro.
4065         (LINUX_DEFAULT_SETUP_SECTS): Likewise.
4066         (LINUX_FLAG_CAN_USE_HEAP): Likewise.
4067         (LINUX_INITRD_MAX_ADDRESS): Likewise.
4068         (LINUX_MAX_SETUP_SECTS): Likewise.
4069         (LINUX_BOOT_LOADER_TYPE): Likewise.
4070         (LINUX_HEAP_END_OFFSET): Likewise.
4071         (LINUX_SETUP_MAXLEN): Removed.
4072         (LINUX_KERNEL_LEN_OFFSET): Likewise.
4073         (LINUX_SETUP_LEN_OFFSET): Likewise.
4074         (LINUX_SETUP_STACK): Set to 0x7F00 instead of 0x3FF4 (why was it
4075         this value?).
4076         (LINUX_SETUP_LOADER): Removed.
4077         (LINUX_SETUP_LOAD_FLAGS): Likewise.
4078         (LINUX_SETUP_CODE_START): Likewise.
4079         (LINUX_SETUP_INITRD): Likewise.
4080         (CL_MY_LOCATION): Set to RAW_ADDR(0x97F00) instead of
4081         RAW_ADDR(0x92000).
4082         (CL_MY_END_ADDR): Set to RAW_addr(0x97FFF) instead of
4083         RAW_ADDR(0x920FF).
4084         (CL_MAGIC_ADDR): Removed.
4085         (CL_OFFSET): Likewise.
4086         [!ASM_FILE] (struct linux_kernel_header): New structure tag.
4087         
4088 2000-07-23  OKUJI Yoshinori  <okuji@gnu.org>
4090         * docs/tutorial.texi: Fix some syntax errors and ambiguous
4091         sentences. Suggested by M. Meiarashi <mes@st.rim.or.jp>.
4092         
4093 2000-07-14  Khimenko Victor  <grub@khim.sch57.msk.ru>
4095         * stage2/boot.c (load_image): When getting the text length of a 
4096         Linux kernel, use unsigned long instead of unsigned short.
4097         
4098 2000-07-13  OKUJI Yoshinori  <okuji@gnu.org>
4100         * lib/device.c: Include errno.h. Reported by Thierry DELHAISE
4101         <thierry.delhaise@delhaise.com>.
4102         
4103 2000-07-12  OKUJI Yoshinori  <okuji@gnu.org>
4105         Just to start implementing serial console support...
4106         
4107         * stage2/asm.S (grub_putchar): Renamed to ...
4108         (console_putchar): ... this.
4109         [!STAGE1_5] (getkey): Renamed to ...
4110         [!STAGE1_5] (console_getkey): ... this.
4111         [!STAGE1_5] (checkkey): Renamed to ...
4112         [!STAGE1_5] (console_checkkey): ... this.
4113         * stage2/char_io.c [!STAGE1_5] (getkey): New function.
4114         [!STAGE1_5] (checkkey): Likewise.
4115         (grub_putchar): Likewise.
4116         * stage2/shared.h [!STAGE1_5] (terminal): Declared.
4117         [!STAGE1_5] (TERMINAL_CONSOLE): New macro.
4118         [!STAGE1_5] (TERMINAL_SERIAL): Likewise.
4119         (console_putchar): Declared.
4120         (serial_putchar): Likewise.
4121         (console_getkey): Likewise.
4122         (serial_getkey): Likewise.
4123         (console_checkkey): Likewise.
4124         (serial_checkkey): Likewise.
4125         * stage2/builtins.c (terminal): New global variable. The default
4126         is TERMINAL_CONSOLE.
4127         * grub/asmstub.c (grub_putchar): Renamed to ...
4128         (console_putchar): ... this.
4129         (getkey): Renamed to ...
4130         (console_getkey): ... this.
4131         (checkkey): Renamed to ...
4132         (console_checkkey): ... this.
4133         
4134 2000-07-12  OKUJI Yoshinori  <okuji@gnu.org>
4136         * stage2/Makefile.am (libgrub_a_CFLAGS): Added
4137         -I$(top_srcdir)/lib.
4138         * stage2/builtins.c [GRUB_UTIL]: Include device.h.
4139         
4140 2000-07-12  OKUJI Yoshinori  <okuji@gnu.org>
4142         Segreate OS-specific helper functions from asmstub.c.
4143         
4144         * grub/asmstub.c [__linux__]: Don't include linux/hdreg.h,
4145         linux/major.h, linux/kdev_t.h, or linux/cdrom.h.
4146         [__FreeBSD__ || __NetBSD__ || __OpenBSD__]: Don't include
4147         sys/ioctl.h, sys/disklabel.h, or sys/ioctl.h.
4148         [HAVE_OPENDISK]: Don't include util.h.
4149         Include device.h.
4150         (DEFAULT_FD_CYLINDERS): Removed.
4151         (DEFAULT_FD_HEADS): Likewise.
4152         (DEFAULT_FD_SECTORS): Likewise.
4153         (DEFAULT_HD_CYLINDERS): Likewise.
4154         (DEFAULT_HD_HEADS): Likewise.
4155         (DEFAULT_HD_SECTORS): Likewise.
4156         (NUM_DISKS): Likewise.
4157         (init_device_map): Likewise.
4158         (get_floppy_disk_name): Likewise.
4159         (get_ide_disk_name): Likewise.
4160         (get_scsi_disk_name): Likewise.
4161         (check_device): Likewise.
4162         (get_drive_geometry): Likewise.
4163         * grub/main.c (no_floppy): Removed.
4164         (probe_second_floppy): Likewise.
4165         (floppy_disks): New global variable.
4166         (main): Set FLOPPY_DISKS to zero, if OPT_NO_FLOPPY. Set
4167         FLOPPY_DISKS to two, if OPT_PROBE_SECOND_FLOPPY.
4168         * lib/Makefile.am (AM_CFLAGS): New variable.
4169         * lib/device.h: New file.
4170         * lib/device.c: Likewise.
4171         * stage2/shared.h (no_floppy): Removed.
4172         (probe_second_floppy): Likewise.
4173         (check_device): Likewise.
4174         (floppy_disks): Declared.
4175         
4176 2000-07-02  OKUJI Yoshinori  <okuji@gnu.org>
4178         * grub/main.c (usage): Enclose the mail address with parentheses
4179         and add a period into the end of the line. That's just a
4180         cosmetic change.
4181         
4182 2000-07-02  OKUJI Yoshinori  <okuji@gnu.org>
4184         * docs/appendices.texi (Obtaining and Building GRUB): Indicate
4185         the Cygnus's binutils webpage instead of the hjl's site, since
4186         you can now use a public release (i.e. 2.10).
4187         
4188 2000-06-23  OKUJI Yoshinori  <okuji@gnu.org>
4190         * stage2/boot.c (load_image): Take an additional argument
4191         LOAD_FLAGS.
4192         If the kernel type is Linux and the bit
4193         KERNEL_LOAD_NO_MEM_OPTION in LOAD_FLAGS is set, don't pass a
4194         Linux's mem option automatically.
4195         * stage2/shared.h (load_image): Added the new argument.
4196         * stage2/builtins.c (kernel_func): If `--no-mem-option' is
4197         specified, set the bit KERNEL_LOAD_NO_MEM_OPTION in LOAD_FLAGS,
4198         otherwise, LOAD_FLAGS is zero.
4199         
4200 2000-06-22  OKUJI Yoshinori  <okuji@gnu.org>
4202         * docs/tutorial.texi: Fixed some typos and syntax errors.
4203         * docs/user-ref.texi: Likewise.
4204         
4205 2000-06-21  OKUJI Yoshinori  <okuji@gnu.org>
4207         * stage2/stage2.c (run_menu): Initialize CUR_ENTRY at the
4208         definition.
4209         If SHOW_MENU is zero, don't display the menu interface. Instead,
4210         wait until the timeout is expired and then boot the default
4211         entry. If the user presses `ESC' during the timeout, set
4212         SHOW_MENU to one and break the loop.
4213         Display the menu if SHOW_MENU is true, instead of if
4214         GRUB_TIMEOUT is non-zero.
4215         Set SHOW_MENU to one before go to the label `restart'.
4216         * stage2/builtins.c (show_menu): New global variable.
4217         (hiddenmenu_func): New function.
4218         (builtin_hiddenmenu): New variable.
4219         (builtin_table): Added a pointer to BUILTIN_HIDDENMENU.
4220         * stage2/shared.h (show_menu): Declared.
4221         
4222 2000-06-19  OKUJI Yoshinori  <okuji@gnu.org>
4224         * docs/mdate-sh: Moved to ...
4225         * mdate-sh: ... here.
4226         * docs/texinfo.tex: Moved to ...
4227         * texinfo.tex: ... here.
4228         
4229 2000-06-09  OKUJI Yoshinori  <okuji@gnu.org>
4231         * stage2/mb_info.h (AddrRangeDesc): Use one 64bits field instead
4232         of two 32bits fields for BaseAddr and Length, respectively.
4233         BaseAddrLow + BaseAddrHigh -> BaseAddr, LengthLow + LengthHigh
4234         -> Length.
4235         * stage2/builtins.c (displaymem_func): Print BaseAddr >> 32,
4236         BaseAddr & 0xFFFFFFFF, Length >> 32 and Length & 0xFFFFFFFF,
4237         instead of BaseAddrLow, BaseAddrHigh, LengthLow and LengthHigh,
4238         for MAP.
4239         * stage2/common.c (fakemap): Adjusted to the new definition of
4240         AddrRangeDesc.
4241         (mmap_avail_at): Change the type of TOP to unsigned long long.
4242         If TOP is greater than 0xFFFFFFFF, set it to 0xFFFFFFFF, since
4243         GRUB itself cannot deal with 64bits addresses at the moment.
4244         (init_bios_info): When getting a maximum available address from
4245         the memory map, use a new unsigned long long variable MAX_ADDR
4246         as the temporary variable instead of MEMTMP. This should allow
4247         GRUB to detect at most 4TB.
4248         
4249 2000-06-18  OKUJI Yoshinori  <okuji@gnu.org>
4251         * docs/appendices.texi (FAQ): Added an question about Linux's
4252         `mem=' option and the answer.
4253         
4254 2000-06-17  OKUJI Yoshinori  <okuji@gnu.org>
4256         * stage2/boot.c (load_image): Pass a mem option to Linux, only
4257         if SRC has no substring "mem=".
4258         
4259 2000-06-17  OKUJI Yoshinori  <okuji@gnu.org>
4261         * stage2/compile: Removed.
4262         * netboot/compile: Likewise.
4263         * compile: New file. Copied from Automake.
4264         
4265 2000-06-16  OKUJI Yoshinori  <okuji@gnu.org>
4267         * stage2/boot.c (load_image): Don't remove the vga option after
4268         parsing it. Suggested by Tim Riker.
4270 2000-06-15  OKUJI Yoshinori  <okuji@gnu.org>
4272         * stage2/asm.S (grub_halt): Use jmp instead of jc, if INT 15
4273         AX=5307h fails.
4274         
4275 2000-06-15  OKUJI Yoshinori  <okuji@gnu.org>
4277         * configure.in (AM_INIT_AUTOMAKE): Increase the version number.
4278         I wish that 0.5.96 will not be released actually...
4279         
4280         * stage2/builtins.c (halt_func): New function.
4281         (builtin_halt): New variable.
4282         (reboot_func): New function.
4283         (builtin_reboot): New variable.
4284         (builtin_table): Added pointers to BUILTIN_HALT and
4285         BUILTIN_REBOOT.
4286         * stage2/asm.S (grub_halt): New function.
4287         (grub_reboot): Likewise.
4288         * stage2/shared.h (grub_halt): Declared.
4289         (grub_reboot): Likewise.
4290         * grub/asmstub.c (grub_reboot): New function.
4291         (grub_halt): Likewise.
4292         
4293 2000-06-12  Gordon Matzigkeit  <gord@fig.org>
4295         * stage2/stage2.c (run_menu): Don't display the menu if the
4296         timeout is zero.  This makes for cleaner use as a noninteractive
4297         bootloader.
4299 2000-06-11  OKUJI Yoshinori  <okuji@gnu.org>
4301         * docs/tutorial.texi (GNU/Linux): Added a caution about the
4302         "mem=" option.
4303         
4304 2000-06-11  OKUJI Yoshinori  <okuji@gnu.org>
4306         * util/grub-install.in (convert): When $host_os is linux*, use
4307         the expression 's%\([sh]d[a-z]\)[0-9]*$%\1%' instead of
4308         's%[0-9]*$%%', to get rid of the partition part. This fixes the
4309         bug "/dev/fd0" -> "/dev/fd". (But don't you think the naming is
4310         quite inconsistent with hard disks? Why not /dev/fd[a-z]?)
4311         Report by Pavel Roskin.
4312         
4313 2000-06-08  OKUJI Yoshinori  <okuji@gnu.org>
4315         * docs/tutorial.texi (Network): The body is moved to ...
4316         (General usage of network support): ... this new section.
4317         (Diskless): New section.
4318         * docs/user-ref.texi (General commands): Added a description
4319         about the command "tftpserver".
4320         
4321 2000-06-08  OKUJI Yoshinori  <okuji@gnu.org>
4323         * netboot/main.c (decode_rfc1533) [GRUB]: Eliminate trailing
4324         NULs in the NVT string for a configuration file name, if any.
4325         (decode_rfc1533): Likewise, if Extensions Path is present,
4326         eliminate the trailing NULs, if any.
4327         Also, check the length carefully to ensure that EXTPATH can fit
4328         in FNAME.
4329         
4330 2000-06-06  Jochen Hoenicke  <jochen@gnu.org>
4332         * stage2/fsys_reiserfs.c: Added journaling to reiser.
4333         (reiserfs_journal_desc): new structure.
4334         (reiserfs_journal_commit): likewise.
4335         (reiserfs_journal_header): likewise.
4336         (fsys_reiser_info): Added fields for journaling.
4337         (journal_read): new function.
4338         (journal_init) likewise.
4339         (block_read): New function to read reiserfs blocks, which reads
4340         from the journal if it contains newer versions. All relevant
4341         devread calls are replaced with calls to this method.
4342         (reiserfs_mount): Check for journaling super block and call
4343         journal_init.
4345 2000-06-06  OKUJI Yoshinori  <okuji@gnu.org>
4347         * netboot/main.c (dhcprequest) [GRUB]: Set the length of the
4348         Parameter Request List to (4 + 2).
4349         Set the list to RFC1533_VENDOR_MAGIC and
4350         RFC1533_VENDOR_CONFIGFILE in addition to the standard
4351         parameters.
4352         (decode_rfc1533) [GRUB]: If C is equal to
4353         RFC1533_VENDOR_CONFIGFILE, copy the contents of the tag to
4354         CONFIG_FILE.
4355         If C is equal to RFC1533_VENDOR_MAGIC, increment
4356         VENDOREXT_ISVALID.
4357         * netboot/etherboot.h [GRUB] (RFC1533_VENDOR_CONFIGFILE): New
4358         macro. Defined as 150.
4359         
4360 2000-06-03  OKUJI Yoshinori  <okuji@gnu.org>
4362         * stage2/asm.S (check_int13_extensions): Check the bitmap only
4363         if FORCE_LBA is zero.
4364         * stage2/bios.c (get_diskinfo): Get rid of the wrong check for
4365         the bit 0 of DRP.FLAGS. Now the bitmap check is correctly
4366         performed in the function check_int13_extensions.
4367         
4368 2000-06-02  OKUJI Yoshinori  <okuji@gnu.org>
4370         * docs/user-ref.texi (Invoking the grub shell): Added a caution.
4371         Why don't so many people still understand that BIOS drive
4372         numbering are different from OS device naming? How many cautions
4373         and warnings should we write in the documentation? Sigh.
4374         
4375 2000-06-01  OKUJI Yoshinori  <okuji@gnu.org>
4377         From Chip Salzenberg:
4378         * stage2/cmdline.c (enter_cmdline) [SUPPORT_DISKLESS]: Redisplay
4379         network configuration after clearing screen, before first prompt.
4381         * stage2/cmdline.c: Include <shared.h> instead of "shared.h".
4382         [SUPPORT_DISKLESS]: Include <etherboot.h>.
4384 2000-06-01  OKUJI Yoshinori  <okuji@gnu.org>
4386         * stage2/builtins.c (setup_func): Check if INSTALL_DRIVE is a
4387         hard disk as well as IMAGE_DRIVE, before trying to install a
4388         Stage 1.5. Reported by Pavel Roskin.
4389         
4390 2000-05-31  OKUJI Yoshinori  <okuji@gnu.org>
4392         * acinclude.m4 (grub_ASM_ABSOLUTE_WITHOUT_ASTERISK): New
4393         function. Check if GAS requires absolute indirect calls/jumps
4394         with NO asterisk.
4395         * configure.in: Call grub_ASM_ABSOLUTE_WITHOUT_ASTERISK.
4396         * acconfig.h (ABSOLUTE_WITHOUT_ASTERISK): New macro entry.
4397         * netboot/pci.c (bios32_service) [!ABSOLUTE_WITHOUT_ASTERISK]:
4398         Prefix the operand to "lcall" with `*'.
4399         (pcibios_read_config_byte) [!ABSOLUTE_WITHOUT_ASTERISK]:
4400         Likewise.
4401         (pcibios_read_config_word) [!ABSOLUTE_WITHOUT_ASTERISK]:
4402         Likewise.
4403         (pcibios_read_config_dword) [!ABSOLUTE_WITHOUT_ASTERISK]:
4404         Likewise.
4405         (pcibios_write_config_byte) [!ABSOLUTE_WITHOUT_ASTERISK]:
4406         Likewise.
4407         (pcibios_write_config_word) [!ABSOLUTE_WITHOUT_ASTERISK]:
4408         Likewise.
4409         (pcibios_write_config_dword) [!ABSOLUTE_WITHOUT_ASTERISK]:
4410         Likewise.
4411         (check_pcibios) [!ABSOLUTE_WITHOUT_ASTERISK]: Likewise.
4412         * stage2/asm.S (chain_stage1) [!ABSOLUTE_WITHOUT_ASTERISK]:
4413         Prefix the operand to "ljmp" with `*'.
4414         (chain_stage2) [!ABSOLUTE_WITHOUT_ASTERISK]: Likewise.
4415         (big_linux_boot) [!ABSOLUTE_WITHOUT_ASTERISK]: Likewise.
4416         
4417 2000-05-29  Chip Salzenberg  <chip@valinux.com>
4419         * stage2/shared.h (grub_memmove): Prototype to use void *.
4420         * stage2/char_io.c (grub_memmove): Define likewise.
4422 2000-05-30  Gordon Matzigkeit  <gord@fig.org>
4424         * docs/user-ref.texi (Stage2 errors): Update error messages.
4426 2000-05-29  Pavel Roskin  <pavel_roskin@geocities.com>
4428         * util/grub-install.in: Fix a typo that prevented error messages
4429         from appearing.
4430         Copy and remove files individually and exit with an error as
4431         soon as it fails.
4432         Show $log_file if --debug was given on the command line.
4434 2000-04-19  Gordon Matzigkeit  <gord@fig.org>
4436         * stage2/cmdline.c (enter_cmdline): Don't give errors on empty
4437         command lines.
4439         * stage2/common.c (err_list): Clean up wordings slightly.
4441 2000-05-29  OKUJI Yoshinori  <okuji@gnu.org>
4443         Based on a patch by Neal H Walfield <neal@walfield.org>:
4444         * netboot/misc.c [GRUB] (inet_aton): Defined.
4445         * netboot/main.c (arp_server_override): New function.
4446         * netboot/etherboot.h [GRUB] (arp_server_override): Declared.
4447         (inet_aton): Likewise.
4448         * stage2/builtins.c (tftpserver_func): New function.
4449         (builtin_tftpserver): New variable.
4450         (builtin_table): Added a pointer to BUILTIN_TFTPSERVER.
4451         
4452 2000-05-28  OKUJI Yoshinori  <okuji@gnu.org>
4454         * stage2/asm.S (codestart): Fix a typo: DISKLESS_SUPPORT ->
4455         SUPPORT_DISKLESS.
4456         * stage2/nbloader.S: Fix the image length and the memory length
4457         fields. They shouldn't contain the first sector for a tag.
4458         Mmh..., that is unclear as far as I see the Net Boot Image
4459         Proposal...
4460         * stage2/shared.h (STACKOFF): Enclosed with parentheses.
4461         (PROTSTACKINIT): Likewise.
4462         
4463 2000-05-27  OKUJI Yoshinori  <okuji@gnu.org>
4465         Add diskless support, mostly based on patches by Christoph
4466         Plattner <Christoph.Plattner@dot.at>, but also based on a patch
4467         by Chip Salzenberg <chip@valinux.com> for PXE. Of course, I've
4468         modified both the patches thoroughly to adapt them to my
4469         preference.
4471         * configure.in (--enable-diskless): New option. Set a
4472         conditional DISKLESS_SUPPORT.
4473         * stage2/Makefile.am (noinst_HEADERS): Added nbi.h.
4474         (EXTRA_PROGRAMS): New variable.
4475         (pkgdata_DATA) [DISKLESS_SUPPORT]: Added
4476         nbgrub and pxegrub.
4477         (noinst_DATA) [DISKLESS_SUPPORT]: Added nbloader, pxeloader and
4478         diskless.
4479         (noinst_PROGRAMS) [DISKLESS_SUPPORT]: Added nbloader.exec,
4480         pxeloader.exec and diskless.exec.
4481         (PXELOADER_LINK): New variable.
4482         (BUILT_SOURCES) [DISKLESS_SUPPORT]: Added diskless_size.h.
4483         (diskless_exec_SOURCES): New variable.
4484         (diskless_exec_CFLAGS): Likewise.
4485         (diskless_exec_LDFLAGS): Likewise.
4486         (diskless_exec_LDADD): Likewise.
4487         (diskless_size.h): New target.
4488         (nbloader_exec_SOURCES): New variable.
4489         (nbloader_exec_CFLAGS): Likewise.
4490         (nbloader_exec_LDFLAGS): Likewise.
4491         (nbloader_exec-nbloader.o): New dependency.
4492         (nbgrub): New target.
4493         (pxeloader_exec_SOURCES): new variable.
4494         (pxeloader_exec_CFLAGS): Likewise.
4495         (pxeloader_exec_LDFLAGS): Likewise.
4496         (pxegrub): New target.
4497         * stage2/asm.S (install_partition): Set to 0xFFFFFF instead of
4498         0x020000. What was the benefit from the previous setting?
4499         (codestart) [SUPPORT_DISKLESS]: Don't move %dl to BOOT_DRIVE.
4500         (boot_drive) [SUPPORT_DISKLESS]: Set to NETWORK_DRIVE instead of
4501         zero.
4502         * stage2/common.c: Include <shared.h> instead of "shared.h",
4503         just for a cosmetic reason.
4504         [SUPPORT_DISKLESS]: Include etherboot.h.
4505         [SUPPORT_DISKLESS] (setup_diskless_environment): New internal
4506         function.
4507         (init_bios_info) [SUPPORT_DISKLESS]: Call
4508         setup_diskless_environment after the memory initialization is
4509         finished. Return if fails.
4510         * stage2/nbloader.S: New file.
4511         * stage2/pxeloader.S: Likewise.
4512         * stage2/nbi.h: Likewise.
4513         
4514 2000-05-25  OKUJI Yoshinori  <okuji@gnu.org>
4516         * netboot/fsys_tftp.c (buf_fill): Warn when amazing things
4517         happen.
4518         (tftp_dir): Revert previous change. Don't use TFTP_MIN_PACKET
4519         but calculate the appropriate length.
4520         
4521 2000-05-23  OKUJI Yoshinori  <okuji@gnu.org>
4523         * netboot/fsys_tftp.c (tftp_dir): Append "0\0" to the request
4524         string, because the "tsize" option must be followed by zero,
4525         according to RFC 2349.
4526         
4527 2000-05-22  OKUJI Yoshinori  <okuji@gnu.org>
4529         Synchronize the documentation with the code.
4530         
4531         * docs/user-ref.texi: Added ReiserFS as a supported filesystem.
4532         Updated the descriptions about `password', `install', `kernel',
4533         and `setup'.
4534         Added a description about `lock'.
4535         Added descriptions about ERR_UNALIGNED and ERR_PRIVILEGED.
4536         Added a description about the option `--force-lba' of
4537         the program `grub-install'.
4538         * docs/tutorial.texi: Updated the subsection for NetBSD.
4539         
4540 2000-05-21  OKUJI Yoshinori  <okuji@gnu.org>
4542         * stage2/asm.S (set_int13_handler): Don't use MBI to get the
4543         lower memory size. Instead, decrease it in the BIOS memory
4544         directly and set %eax to it, since MBI.MEM_LOWER may not be the
4545         same as [0x413] any longer due to the previous change.
4547         * grub/asmstub.c (CONVENTIONAL_MEMSIZE): Changed to 640 * 1024
4548         from 640. You didn't like the inconsistency between
4549         EXTENDED_MEMSIZE and CONVENTIONAL_MEMSIZE, did you?
4550         (get_memsize): Return CONVENTIONAL_MEMSIZE >> 10 instead of
4551         CONVENTIONAL_MEMSIZE, if TYPE is zero.
4552         (get_eisamemsize): Return EXTENDED_MEMSIZE >> 10 instead of
4553         EXTENDED_MEMSIZE / 1024. Just a cosmetic change.
4554         (MMAR_DESC_LENGTH): New macro. Defined as 20.
4555         (get_mmap_entry): Define a new variable DESC_TABLE statically, 
4556         and copy the CONTth entry to *DESC if CONT is a correct index.
4557         
4558 2000-05-21  Chip Salzenberg  <chip@valinux.com>
4560         * stage2/common.c (mmap_avail_at): New function, abstracted out
4561         of init_bios_info, to scan E820 memory map.
4562         (init_bios_info): Use mmap_avail_at for _both_ MBI.MEM_UPPER and
4563         MBI.MEM_LOWER.
4565 2000-05-17  OKUJI Yoshinori  <okuji@gnu.org>
4567         Update the network support to Etherboot-4.6.1.
4569         * netboot/config.c (pci_nic_list) [INCLUDE_TULIP]: Added an
4570         entry for Davicom 9102.
4571         * netboot/epic100.c: Just copied.
4572         * netboot/pci.h: Likewise.
4573         * netboot/tulip.c: Likewise.
4574         * netboot/etherboot.h (tftp): Change the type of the first
4575         argument to const char * from char *.
4576         * netboot/main.c (tftp): Likewise.
4577         
4578 2000-05-13  OKUJI Yoshinori  <okuji@gnu.org>
4580         * util/grub-install.in: If the program `cp' fails, exit with the
4581         status code 1. Suggested by Pavel Roskin.
4582         
4583 2000-05-13  OKUJI Yoshinori  <okuji@gnu.org>
4585         From Pixel <pixel@mandrakesoft.com>:
4586         * stage2/pc_slice.h (PC_SLICE_TYPE_LINUX_EXTENDED): New macro.
4587         (IS_PC_SLICE_TYPE_EXTENDED): Added a check for
4588         PC_SLICE_TYPE_LINUX_EXTENDED.
4589         
4590 2000-05-05  OKUJI Yoshinori  <okuji@gnu.org>
4592         * stage2/common.c (init_bios_info) [!STAGE1_5]: When the memory
4593         map is present, search the maximum for MEMTMP in bytes instead
4594         of kilobytes and set EXTENDED_MEMORY to MEMTMP minus 1MB in
4595         kilobytes.
4596         
4597 2000-05-05  OKUJI Yoshinori  <okuji@gnu.org>
4599         Ignore any memory holes when passing the maximum memory address
4600         to non-Multiboot kernels (i.e. Linux and *BSD).
4601         
4602         * stage2/common.c [!STAGE1_5] (extended_memory): New global
4603         variable.
4604         (init_bios_info) [!STAGE1_5]: Change the type of CONT, MEMTMP
4605         and ADDR to unsigned long from int.
4606         Set EXTENDED_MEMORY to MBI.MEM_UPPER by default.
4607         If MBI.MMAP_LENGTH is not zero, set EXTENDED_MEMORY to the
4608         maximum available address, ignoring any memory holes.
4609         If MBI.MMAP_LENGTH is zero but get_eisamemsize returns other
4610         than -1, set EXTENDED_MEMORY to (CONT >> 10) + 0x3c00 if CONT is
4611         non-zero, otherwise, set it to MEMTMP.
4612         * stage2/shared.h [!STAGE1_5] (extended_memory): Declared.
4613         * stage2/boot.c (load_image): Always pass the "mem=" option to a
4614         Linux kernel, using EXTENDED_MEMORY instead of MBI.MEM_UPPER.
4615         (bsd_boot): Use EXTENDED_MEMORY instead of MBI.MEM_UPPER.
4616         
4617 2000-04-30  OKUJI Yoshinori  <okuji@gnu.org>
4619         * stage1/stage1.S (message): Use lodsb instead of incw and movb.
4620         From Andrew Clausen <clausen@gnu.org>.
4622         * stage1/stage1.S (copy_buffer): Set %cx to 0x100 and use movsw
4623         instead of movsb, since it is guaranteed that the region is
4624         properly aligned.
4625         
4626 2000-04-29  OKUJI Yoshinori  <okuji@gnu.org>
4628         * stage2/builtins.c (setup_func): Use SECTOR_BITS instead of
4629         SECTOR_SIZE to compute BLOCKSIZE.
4631 2000-04-26  OKUJI Yoshinori  <okuji@gnu.org>
4633         * netboot/depca.c: Copied from Etherboot-4.6.0.
4634         
4635 2000-04-23  OKUJI Yoshinori  <okuji@gnu.org>
4637         More security-related features.
4638         
4639         * stage2/builtins.c (auth): New global variable.
4640         (configfile_func): Clear AUTH before jumping to cmain.
4641         (lock_func): New function.
4642         (builtin_lock): New variable.
4643         (password_func): Make sure that LEN + 2 is less than or equal to
4644         PASSWORD_BUFLEN, because now the password must be terminated
4645         with double NULs, in order to permit an empty configuration file
4646         name.
4647         Copy LEN bytes from ARG to PASSWORD, instead of LEN + 1 bytes.
4648         Clear the rest of the buffer PASSWORD.
4649         (builtin_table): Added a pointer to BUILTIN_LOCK.
4650         * stage2/common.c (err_list): Added an entry for ERR_PRIVILEGED.
4651         * stage2/stage2.c (run_menu): If AUTH is true, show the messages
4652         for a non-password configuration, even if PASSWORD is not NULL.
4653         Likewise, if AUTH is true, allow the user to use privileged
4654         instructions (such as `c').
4655         If a correct password is entered, check if *PPTR is NUL or not.
4656         If it is NUL, set AUTH to 1 and go to the label restart,
4657         otherwise, copy PPTR to NEW_FILE, clear AUTH, and return.
4658         * stage2/shared.h (grub_error_t): Added a new constant
4659         ERR_PRIVILEGED.
4660         (auth): Declared.
4661         
4662 2000-04-23  OKUJI Yoshinori  <okuji@gnu.org>
4664         * docs/user-ref.texi (Command-line-specific commands): Don't use
4665         the command @var for the argument "file" to the command
4666         "configfile" on the definition.
4667         
4668 2000-04-22  OKUJI Yoshinori  <okuji@gnu.org>
4670         Update the network support to Etherboot 4.5.8.
4672         * configure.in (--enable-3c590): New option.
4673         (--enable-3c595): Likewise.
4674         (--enable-depca): Likewise.
4675         (--enable-lance): Likewise.
4676         (--enable-ns8390): Likewise.
4677         (--enable-ntulip): Likewise.
4678         (--enable-lancepci): Removed.
4679         (--enable-nepci): Likewise.
4680         (--enable-otulip): Likewise.
4681         (--enable-smc9000): The duplicated one is named to ...
4682         (--enable-smc9000-scan): ... this. This was a typo, perhaps.
4683         
4684         * netboot/Makefile.am (libdrivers_a_SOURCES): Removed
4685         byteorder.h, if.h, netboot_config.h and netdevice.h, and added
4686         cards.h.
4687         (EXTRA_libdrivers_a_SOURCES): Removed ntulip.c and tulip.h, and
4688         added 3c595.c, 3c595.h, depca.c, otulip.c and otulip.h.
4689         (libdrivers_a_CFLAGS): Define FSYS_TFTP as 1 instead of empty.
4690         (EXTRA_DIST): Removed ntulip.txt, and added cs89x0.txt and
4691         tulip.txt.
4692         (3c595_drivers): New variable.
4693         (depca_drivers): Likewise.
4694         (lance_drivers): Removed lancepci.o and added lance.o.
4695         (ns8390_drivers): Removed nepci.o and added ns8390.o.
4696         (ntulip_drivers): Deleted.
4697         (otulip_drivers): New variable.
4698         ($(3c595_drivers)): New target.
4699         ($(depca_drivers)): Likewise.
4700         ($(ntulip_drivers)): Deleted.
4701         ($(otulip_drivers)): New target.
4702         (3c590_o_CFLAGS): New variable.
4703         (3c595_o_CFLAGS): Likewise.
4704         (depca_o_CFLAGS): Likewise.
4705         (lancepci_o_CFLAGS): Deleted.
4706         (lance_o_CFLAGS): New variable.
4707         (nepci_o_CFLAGS): Deleted.
4708         (ns8390_o_CFLAGS): New variable.
4709         (ntulip_o_CFLAGS): Deleted.
4710         (otulip_o_CFLAGS): New variable.
4711         
4712         * netboot/3c90x.c: Updated to Etherboot-4.5.8.
4713         * netboot/3c90x.txt: Likewise.
4714         * netboot/cs89x0.c: Likewise.
4715         * netboot/cs89x0.h: Likewise.
4716         * netboot/eepro100.c: Likewise.
4717         * netboot/epic100.c: Likewise.
4718         * netboot/epic100.h: Likewise.
4719         * netboot/i82586.c: Likewise.
4720         * netboot/lance.c: Likewise.
4721         * netboot/linux-asm-io.h: Likewise.
4722         * netboot/linux-asm-string.h: Likewise.
4723         * netboot/nic.h: Likewise.
4724         * netboot/ns8390.c: Likewise.
4725         * netboot/ns8390.h: Likewise.
4726         * netboot/pci.c: Likewise.
4727         * netboot/pci.h: Likewise.
4728         * netboot/rtl8139.c: Likewise.
4729         * netboot/sk_g16.c: Likewise.
4730         * netboot/sk_g16.h: Likewise.
4731         * netboot/smc9000.c: Likewise.
4732         * netboot/smc9000.h: Likewise.
4733         * netboot/tiara.c: Likewise.
4734         * netboot/tulip.c: Likewise.
4735         * netboot/via-rhine.c: Likewise.
4737         * netboot/config.c: Updated to Etherboot-4.5.8 and modified (see
4738         below).
4739         [GRUB] (print_config): Undefined.
4740         (eth_probe) [GRUB]: If PROBED is true, do nothing. Otherwise,
4741         clear NETWORK_READY and ARPTABLE, set ROM to ROM_INFO_LOCATION,
4742         and set PROBED to 1 if succeeds.
4743         * netboot/etherboot.h: Likewise,
4744         (GRUB): New macro.
4745         [GRUB]: Include <shared.h>.
4746         [GRUB] (NO_DHCP_SUPPORT): Undefined.
4747         [GRUB] (RELOC): Defined as zero.
4748         [GRUB] (INTERNAL_BOOTP_DATA): Defined as one.
4749         [GRUB] (USE_INTERNAL_BUFFER): Likewise.
4750         [GRUB] (BACKOFF_LIMIT): Defined as 7.
4751         [GRUB] (CTRL_C): New macro.
4752         [GRUB] (print_network_configuration): Declared.
4753         [GRUB] (ip_abort): Likewise.
4754         [GRUB] (network_ready): Likewise.
4755         * netboot/fsys_tftp.c: Don't include <netboot_config.h>.
4756         (isocket): Renamed to ...
4757         (iport): ... this.
4758         (osocket): Renamed to ...
4759         (oport): ... this.
4760         (bcounter): New variable.
4761         (buf_fill): When checking the block order, see BCOUNTER as well
4762         as BLOCK.
4763         Don't process a packet, if BLOCK minus PREVBLOCK is not 1,
4764         instead of if BLOCK is less than or equal to PREVBLOCK.
4765         Increment BCOUNTER after reseting RETRY.
4766         (send_rrq): Clear BCOUNTER.
4767         Call await_reply with AWAIT_QDRAIN.
4768         * netboot/main.c: Don't include <netboot_config.h>.
4769         (dhcpdiscover): Made const.
4770         (dhcprequest): Likewise. Updated the contents.
4771         (broadcast): Made const.
4772         (udp_transmit): Copied.
4773         (tftp): Likewise.
4774         (bootp): Likewise.
4775         (rarp): Likewise.
4776         (await_reply): Likewise.
4777         (decode_rfc1533): Likewise.
4778         (rfc951_sleep): Likewise.
4779         (cleanup_net): Likewise.
4780         * netboot/misc.c (sleep): Copied.
4781         (twiddle): Likewise.
4782         (getdec): Likewise.
4783         * netboot/osdep.h: Copied and modified (see below).
4784         [GRUB] (ETHERBOOT32): Used the same definition as Linux and
4785         FreeBSD.
4786         [GRUB] (ntohl): Likewise.
4787         [GRUB] (htonl): Likewise.
4788         [GRUB] (ntohs): Likewise.
4789         [GRUB] (htons): Likewise.
4790         [GRUB] (swap32): Likewise.
4791         [GRUB] (swap16): Likewise.
4792         [GRUB]: Include "linux-asm-io.h".
4794         * netboot/byteorder.h: Removed.
4795         * netboot/if.h: Likewise.
4796         * netboot/netboot_config.h: Likewise.
4797         * netboot/netdevice.h: Likewise.
4798         * netboot/ntulip.c: Likewise.
4799         * netboot/ntulip.txt: Likewise.
4800         * netboot/tulip.h: Likewise.
4801         
4802         * netboot/3c595.c: New file. Copied from Etherboot-4.5.8.
4803         * netboot/3c595.h: Likewise.
4804         * netboot/cards.h: Likewise.
4805         * netboot/cs89x0.txt: Likewise.
4806         * netboot/depca.c: Likewise.
4807         * netboot/otulip.c: Likewise.
4808         * netboot/otulip.h: Likewise.
4809         * netboot/tulip.txt: Likewise.
4810         
4811 2000-02-29  Jochen Hoenicke  <jochen@gnu.org>
4813         * stage2/common.c (err_list): Added message for ERR_UNALIGNED.
4814         * stage2/shared.h [!STAGE1_5] (disk_read_hook,disk_read_func): New
4815         parameters offset and length.
4816         (ERR_UNALIGNED): New error code.
4817         * stage2/disk_io.c (rawread) [!STAGE1_5]: Call disk_read_func with
4818         offset and length.
4819         * stage2/builtin.c (disk_read_print_func): Print offset and length.
4820         (blocklist_func): Print detailed byte ranges for partial sectors.
4821         (install_func): Detect partial sectors and print error message.
4823 2000-04-18  Pavel Roskin  <pavel_roskin@geocities.com>
4825         * util/grub-install.in: Don't use `!' in `test' for more
4826         portability.
4827         Don't use `for' without `in' for compatability with ash.
4828         Check install_device before running grub if possible. Added
4829         error messages if install_device is not set or not unique.
4830         Exit if mkdir fails.
4831         Add a message about successful installation.
4832         Remove unneeded backslash in the final message.
4833         (convert): use `test -b' instead of `test -e' because ash
4834         doesn't understand the later. Correct error message accordingly.
4835         
4836 2000-04-17  OKUJI Yoshinori  <okuji@gnu.org>
4838         The user doesn't have to recompile GRUB for his/her buggy BIOS
4839         any longer. It is configurable to ignore the LBA support bitmap
4840         at the installation time.
4841         
4842         * stage1/stage1.S (force_lba): New variable.
4843         (stage2_address): Moved forwards, to align some variables in
4844         natural boundaries.
4845         (real_start): Check if FORCE_LBA is non-zero, if so, jump to
4846         skip_lba_bitmap_check, otherwise, check if bit 0 of the support
4847         bitmap is non-zero.
4848         Don't use #ifdef for CHECK_LBA_SUPPORT_BITMAP.
4849         (skip_lba_bitmap_check): New label.
4850         * stage1/stage1.h (COMPAT_VERSION_MINOR): Set to 1.
4851         (STAGE1_FORCE_LBA): New macro.
4852         (STAGE1_STAGE2_ADDRESS): Set to 0x42.
4853         (STAGE1_STAGE2_SECTOR): Set to 0x44.
4854         (STAGE1_STAGE2_SEGMENT): Set to 0x48.
4855         * stage2/asm.S (force_lba): New variable.
4856         * stage2/bios.c (get_diskinfo): Don't use #ifdef for
4857         CHECK_LBA_SUPPORT_BITMAP. Instead, check if FORCE_LBA is
4858         non-zero. If so, don't check the bit 0 of DRP.FLAG.
4859         * stage2/builtins.c (install_func): Check if a new option
4860         `--force-lba' is specified. If specified, set IS_FORCE_LBA to 1
4861         and set ARG to a value returned by skip_to. Otherwise,
4862         IS_FORCE_LBA is zero.
4863         Set the "force LBA" flag in STAGE1_BUFFER (the offset is
4864         STAGE1_FORCE_LBA) to IS_FORCE_LBA.
4865         Likewise, set the "force LBA" flag in STAGE2_SECOND_BUFFER
4866         (the offset is STAGE2_FORCE_LBA) to IS_FORCE_LBA.
4867         If IS_STAGE1_5 is true, then modify the Stage2, regardless of
4868         the presence of the option REAL_CONFIG_FILE. Set the "force LBA"
4869         flag in SCRATCHADDR (the offset is STAGE2_FORCE_LBA) to
4870         IS_FORCE_LBA.
4871         (builtin_install): Added description about `--force-lba' into
4872         the docs.
4873         (setup_func): Check if `--force-lba' is specified in ARG. If
4874         specified, set IS_FORCE_LBA to 1 and set ARG to a value returned
4875         by skip_to. Otherwise, IS_FORCE_LBA is zero.
4876         If IS_FORCE_LBA is true, prepend "--force-lba " to CMD_ARG.
4877         (builtin_setup): Added descriptions about `--force-lba' into the
4878         docs.
4879         * stage2/shared.h (STAGE2_FORCE_LBA): New macro.
4880         (STAGE2_VER_STR_OFFS): Set to 0xe.
4881         (force_lba): Declared.
4882         * util/grub-install.in (force_lba): New variable. Set to an
4883         empty sting by default.
4884         (usage): Added a description about `--force-lba'.
4885         (--force-lba): Checked in the option handling code. If
4886         specified, set FORCE_LBA to "--force-lba".
4887         Run the command "setup" with $force_lba added before
4888         $install_drive.
4889         * configure.in (--disable-lba-support-bitmap): Removed.
4890         
4891 2000-04-15  OKUJI Yoshinori  <okuji@gnu.org>
4893         * util/grub-install.in (root_device): Append `/' to ${rootdir},
4894         since ROOTDIR may be empty. Reported by Satoshi Nagayasu
4895         <snaga@oak.forus.or.jp>.
4896         
4897 2000-04-15  Jochen Hoenicke  <jochen@gnu.org>
4899         * configure.in: Added --disable-reiserfs option.
4900         * stage2/Makefile.am (libgrub_a_SOURCES): Added fsys_reiserfs.c.
4901         (libgrub_a_CFLAGS): Added -DFSYS_REISERFS=1.
4902         (pkgdata_DATA): Added reiserfs_stage1_5.
4903         (noinst_PROGRAMS): Added reiserfs_stage1_5.exec.
4904         (pre_stage2_exec_SOURCES): Added fsys_reiserfs.c.
4905         (reiserfs_stage1_5_exec_SOURCES): New variable.
4906         (reiserfs_stage1_5_exec_CFLAGS): Likewise.
4907         (reiserfs_stage1_5_exec_LDFLAGS): Likewise.
4908         * stage2/disk_io.c (fsys_table): Added reiserfs entry.
4909         * stage2/filesys.h (FSYS_REISERFS_NUM): New macro.
4910         [FSYS_REISERFS] (reiserfs_mount, reiserfs_read, reiserfs_dir,
4911         reiserfs_embed): Declare external function from fsys_reiserfs.c.
4912         [!NUM_FSYS] (NUM_FSYS): Added FSYS_REISERFS_NUM.
4913         * stage2/builtins.c (setup_func): Added reiserfs to
4914         STAGE1_5_MAP.
4915         * stage2/shared.h (STAGE2_ID_REISERFS_STAGE1_5): New macro.
4916         [STAGE1_5] [FSYS_REISERFS] (STAGE2_ID): Defined to
4917         STAGE2_ID_REISERFS_STAGE1_5.
4918         * stage2/fsys_reiserfs.c: New file.
4920         * stage2/builtins.c (embed_func): Call open_device instead of
4921         open_partition.
4922         Don't check if the filesystem is FFS. Instead, check if
4923         FSYS_TABLE[FSYS_TYPE].EMBED_FUNC is NULL and, if not, call it.
4924         (find_func): When CURRENT_SLICE is not a BSD slice, check if the
4925         file can be opened, only if open_device succeeds.
4926         * stage2/filesys.h (fsys_table): New entry embed_func.
4927         (ffs_embed): Declared.
4928         * stage2/disk_io.c (fsys_table): Fill embed_func entries. The
4929         entry for FFS is ffs_embed and the others are NULLs.
4930         * stage2/fsys_ffs.c (ffs_embed): New function.
4932         * stage2/shared.h (SECTOR_SHIFT): New constant with
4933         (1 << SECTOR_SHIFT) == SECTOR_SIZE.
4934         * stage2/shared.h [!NO_BLOCK_FILES] (block_files): No longer
4935         extern.
4936         * stage2/disk_io.c [!NO_BLOCK_FILES] (block_files): Likewise.
4937         (rawread, devread): Use SECTOR_BITS.
4938         (rawread): Fixed calculation of BUFADDR if an error occured. Set
4939         it to BUFFERADDR + BYTE_OFFSET instead of BUFFERSEG +
4940         BYTE_OFFSET.
4941         (grub_close) [!NO_BLOCK_FILES]: If BLOCK_FILE is non-zero,
4942         return immediately.
4943         (grub_close): Don't check if FSYS_TYPE is NUM_FSYS.
4944         * stage2/fsys_fat.c (log2): New inline function.
4945         (fat_mount): Use log2 instead of calculating the size/bit by a
4946         loop.
4948 2000-04-12  OKUJI Yoshinori  <okuji@gnu.org>
4950         * configure.in: Use AC_PATH_PROG instead of AC_PATH_TOOL,
4951         because I don't want to use the CVS version. Now you can use
4952         autoconf 2.13.
4953         
4954 2000-04-10  OKUJI Yoshinori  <okuji@gnu.org>
4956         * stage2/stage2.c (run_menu): In the case where C is `o', check
4957         if ENTRYNO is less than 11. If not, increase FIRST_ENTRY instead
4958         of ENTRYNO. Reported by Pixel <pixel@mandrakesoft.com>.
4959         
4960 2000-04-09  OKUJI Yoshinori  <okuji@gnu.org>
4962         * stage1/depcomp: Removed, because it makes `make dist'
4963         unworkable.
4965         For developers: Don't run automake with --add-missing. Instead,
4966         you should specify --force-missing. If you really want to add a
4967         script from automake, copy it at hand. *sigh*
4968         
4969 2000-04-05  OKUJI Yoshinori  <okuji@gnu.org>
4971         * stage2/builtins.c (kernel_func): Added missing ``size''
4972         arguments into `grub_memcmp's. Reported by Christoph Plattner
4973         <christoph.plattner@dot.at>.
4975         From Torsten Duwe <duwe@caldera.de>:
4976         * stage2/boot.c (load_initrd): Mask the address with 0x3FFFFFFF
4977         instead of 0xFFFFFFFF to place the initrd below 1GB.
4978         (load_image): In Linux boot, add the option "mem=" only if more
4979         than 64MB are present.
4980         * grub/asmstub.c [__linux__]: Include <linux/cdrom.h> for
4981         CDROM_GET_CAPABILITY.
4982         [__FreeBSD__ || __NetBSD__ || __OpenBSD__]: Include <sys/cdio.h>
4983         for CDIOCCLRDEBUG.
4984         (check_device) [__linux__] [CDROM_GET_CAPABILITY]: If ioctl for
4985         CDROM_GET_CAPAIBILITY succeeds, return zero.
4986         [__FreeBSD__ || __NetBSD__ || __OpenBSD__] [CDIOCCLRDEBUG]: If
4987         ioctl for CDIOCCLRDEBUG succeeds, return zero.
4989         * stage2/boot.c (load_initrd): Subtract 0x1000 (one page size)
4990         from MOVETO, to avoid a Linux 2.3.xx's bug.
4991         
4992 2000-04-03  OKUJI Yoshinori  <okuji@gnu.org>
4994         Add a dirty hack into the kernel loader so that the user can
4995         force GRUB to load NetBSD ELF kernels. The support code is
4996         mostly stolen from a patch by Pavel Roskin.
4997         
4998         * stage2/boot.c (load_image): Added an optional argument
4999         SUGGESTED_TYPE.
5000         If BUFFER is a bootable ELF image and SUGGESTED_TYPE is
5001         KERNEL_TYPE_NETBSD, then load it as an ELF image and set STR2 to
5002         "NetBSD" and TYPE to SUGGESTED_TYPE.
5003         If the image is a Linux kernel and SUGGESTED_TYPE is not
5004         KERNEL_TYPE_NONE, make sure that SUGGESTED_TYPE matches up to
5005         the Linux kernel type.
5006         If TYPE is KERNEL_TYPE_NETBSD, set MEMADDR to
5007         RAW_ADDR (phdr->paddr & 0xFFFFFF) like FreeBSD.
5008         If SUGGESTED_TYPE is not KERNEL_TYPE_NONE, make sure that
5009         SUGGESTED_TYPE is equal to TYPE.
5010         (bsd_boot): If TYPE is not KERNEL_TYPE_FREEBSD (i.e. NetBSD or
5011         OpenBSD) and the bit MB_INFO_AOUT_SYMS is set, set END_MARK to
5012         MBI.SYMS.A.ADDR + 4 + MBI.SYMS.A.TABSIZE + MBI.SYMS.A.STRSIZE.
5013         If the bit is clear, set END_MARK to 0.
5014         Pass END_MARK to *ENTRY_ADDR instead of directly calculating the
5015         end of symbols.
5016         * stage2/shared.h (load_image): Added the argument
5017         SUGGESTED_TYPE to the prototype.
5018         * stage2/builtins.c (kernel_func): Added a new option,
5019         `--type=TYPE'. Check if ARG is started with "--type=".
5020         If so, set SUGGESTED_TYPE to KERNEL_TYPE_NETBSD,
5021         KERNEL_TYPE_FREEBSD, KERNEL_TYPE_NETBSD, KERNEL_TYPE_LINUX,
5022         KERNEL_TYPE_BIG_LINUX, KERNEL_TYPE_MULTIBOOT if ARG is "netbsd",
5023         "freebsd", "openbsd", "linux", "biglinux", "multiboot",
5024         respectively. Otherwise, set ERRNUM to ERR_BAD_ARGUMENT and
5025         return 1. Set KERNEL_ARG to a string after the option.
5026         (builtin_kernel): Added a description about the new option.
5027         
5028 2000-04-03  OKUJI Yoshinori  <okuji@gnu.org>
5030         * stage2/stage2.c (run_menu) [GRUB_UTIL]: Removed a nested
5031         "#ifdef GRUB_UTIL" ... "#endif".
5032         * stage2/builtins.c (unhide_func): Don't modify SAVED_DRIVE or
5033         SAVED_PARTITION.
5034         (hide_func): Likewise.
5035         * stage2/disk_io.c (set_partition_hidden_flag): Use
5036         CURRENT_DRIVE and CURRENT_PARTITION instead of SAVED_DRIVE and
5037         SAVED_PARTITION. Check if bit 7 in CURRENT_DRIVE is non-zero
5038         instead of if CURRENT_DRIVE is non-zero.
5040         * grub/asmstub.c (init_device_map): Change the message
5041         "Probe devices..." to "Probing devices...". Suggested by Neal H
5042         Walfield.
5044         * stage2/pc_slice.h (PC_SLICE_TYPE_HIDDEN_FLAG): Move the
5045         definition before the PC partition type definitions.
5046         (IS_PC_SLICE_TYPE_FAT): Clear the hidden flag in TYPE before
5047         checking if TYPE is either of the FAT partition types. Reported
5048         by Thomas Schweikle <tschweikle@fiducia.de>.
5049         
5050 2000-04-02  OKUJI Yoshinori  <okuji@gnu.org>
5052         * stage2/builtins.c (setup_func): Don't read a stage 1.5 to get
5053         the size. Use FILEMAX instead.
5054         If embed_func fails (i.e. ERRNUM is non-zero), goto fail.
5055         
5056 2000-04-02  OKUJI Yoshinori  <okuji@gnu.org>
5058         Suggested by Neal H Walfield <neal@walfield.org>:
5059         * stage2/common.c (init_bios_info): Removed a nested
5060         "#ifndef STAGE1_5" ... "#endif".
5061         * util/grub-install.in: Quote most of the references to
5062         shell variables by double quotation marks.
5063         (usage): Added a description about the argument.
5064         * stage2/builtins.c (setup_func): Change each of the messages
5065         when running embed_func and install_func. "Run" -> "Running".
5066         If install_func succeeds, print a message ("Done.").
5068         From Frank Mehnert <fm3@os.inf.tu-dresden.de>:
5069         * stage2/char_io.c (convert_to_ascii) [!STAGE1_5]: Accept 'X'
5070         and 'b' as well. If C is 'X' or 'b', then set MULT to 16.
5071         (grub_printf): Set a new variable MASK to 0xFFFFFFFF by default.
5072         Mask *DATAPTR with MASK when calling convert_to_ascii.
5073         (grub_printf) [!STAGE1_5]: Added 'b' and 'X'. If C is 'b', set
5074         MASK to 0xFF and fall through to the case 'u'. 'X' is the same
5075         as 'x'.
5077         From Josip Rodin <joy@cibalia.gkvk.hr>:
5078         * grub.texi: Several awkward English sentences are fixed.
5079         * tutorial.texi: Likewise.
5080         * user-ref.texi: Likewise.
5081         * appendices.texi: Likewise.
5082         
5083 2000-03-27  OKUJI Yoshinori  <okuji@gnu.org>
5085         * stage1/depcomp: New file. Automake forces to install it. This
5086         is a known bug, so I will remove this when Tom fixes it.
5087         * configure.in (AM_INIT_AUTOMAKE): Don't get the package name
5088         and the version from debian/changelog. This is a workaround.
5089         
5090 2000-03-20  OKUJI Yoshinori  <okuji@gnu.org>
5092         * stage2/Makefile.am (nodist_pkgdata_DATA): Renamed to ...
5093         (pkgdata_DATA): ... this. DATA is not distributed by default.
5094         (CLEANFILES): Delete the first one. I don't know why this
5095         variable was duplicated.
5096         Set to $(pkgdata_DATA) instead of $(nodist_pkgdata_DATA).
5097         (start_exec_DEPENDENCIES): Removed. This doesn't make sense.
5098         (start_exec-start.o): New rule.
5099         * depcomp: New file. Copied from automake.
5100         * missing: Updated from automake.
5101         
5102 2000-03-15  OKUJI Yoshinori  <okuji@gnu.org>
5104         * netboot/Makefile.am (EXTRA_libdrivers_a_SOURCES): 3c89x0.h ->
5105         cs89x0.h. Just a typo.
5106         
5107 2000-03-10  Gordon Matzigkeit  <gord@fig.org>
5109         * debian/rules: Strip mbchk.
5111         * debian/postinst: Fix up /usr/doc symlink creation.
5113 2000-03-01  OKUJI Yoshinori  <okuji@gnu.org>
5115         * netboot/fsys_tftp.c (tftp_dir): Add BUF_READ into FILEMAX
5116         after BUF_EOF becomes non-zero. Reported by Per Lundberg.
5117         
5118 2000-03-01  OKUJI Yoshinori  <okuji@gnu.org>
5120         * stage2/builtins.c (color_func): Return 1 if safe_parse_maxint
5121         returns zero instead of non-zero. Reported by Magnus Holmberg
5122         <pucko@lysator.liu.se>.
5123         
5124 2000-02-29  OKUJI Yoshinori  <okuji@gnu.org>
5126         * grub/asmstub.c [__linux__]: Include <linux/kdev_t.h> for the
5127         macro MAJOR. From Kalle Olavi Niemitalo <tosi@ees2.oulu.fi>.
5128         
5129 2000-02-27  OKUJI Yoshinori  <okuji@gnu.org>
5131         * docs/tutorial.texi (Network): New chapter.
5132         
5133 2000-02-26  OKUJI Yoshinori  <okuji@gnu.org>
5135         * docs/help2man: Upgraded to 1.020.
5136         * docs/grub.8: Regenerated.
5137         * docs/grub-install.8: Likewise.
5138         * docs/mbchk.1: Likewise.
5140         * docs/tutorial.texi (Boot): Rewritten heavily. Added the notes
5141         on FreeBSD, NetBSD, OpenBSD, DOS/Windows and SCO UnixWare.
5142         * docs/menu.lst: Load "/boot/loader" instead of "/kernel" in the
5143         FreeBSD entry. This is consistent with the documentation.
5144         
5145 2000-02-25  OKUJI Yoshinori  <okuji@gnu.org>
5147         * netboot/fsys_tftp.c (tftp_read): Set BUF_READ to zero if
5148         FILEPOS is less than SAVED_FILEPOS, before calling buf_fill.
5149         Don't discard all of the copied data so that we can move FILEPOS
5150         backwards cheaply. Now SAVED_FILEPOS indicates the file position
5151         corresponding to the first byte of BUF. If (FILEPOS -
5152         SAVED_FILEPOS) is greater than (FSYS_BUFLEN / 2), move the data
5153         forwards and add (FSYS_BUFLEN / 2) into SAVED_FILEPOS and
5154         subtract the same value from BUF_READ.
5155         
5156 2000-02-24  OKUJI Yoshinori  <okuji@gnu.org>
5158         * stage2/disk_io.c [!STAGE1_5] (print_fsys_type): Mask
5159         CURRENT_SLICE with 0xFF when printing the partition type.
5161         * grub/asmstub.c [__linux__]: Include <linux/major.h> for the
5162         definition FLOPPY_MAJOR.
5163         (check_device) [__linux__]: Skip the HDIO_GETGEO ioctl if the
5164         major number of ST.ST_RDEV is FLOPPY_MAJOR.
5165         
5166 2000-02-21  OKUJI Yoshinori  <okuji@gnu.org>
5168         * stage2/disk_io.c (check_BSD_parts) [!STAGE1_5]: Use the term
5169         "BSD sub-partition" instead of "BSD slice" for consistency.
5171         * stage2/builtins.c (boot_func): Copy the partition table to
5172         BOOT_PART_TABLE instead of (BOOTSEC_LOCATION +
5173         BOOTSEC_PART_OFFSET). Don't use grub_memmove, but copy it
5174         directly, since memcheck is too strict.
5175         * stage2/disk_io.c (real_open_partition) [!STAGE1_5]: Set
5176         CUR_PART_ADDR to (BOOT_PART_TABLE + (i << 4)).
5177         * stage2/shared.h (BOOT_PART_TABLE): New macro.
5178         (chain_stage1): Change the types of all the arguments to
5179         unsigned long.
5180         (chain_stage2): Likewise.
5181         * grub/asmstub.c (chain_stage1): Adjusted to the prototype.
5182         (chain_stage2): Likewise.
5183         
5184 2000-02-21  OKUJI Yoshinori  <okuji@gnu.org>
5186         * stage2/disk_io.c (check_BSD_parts) [!STAGE1_5]: If the BSD
5187         label is invalid, print a message with the partition type in the
5188         case where FLAGS is non-zero and DO_COMPLETION is zero.
5189         
5190 2000-02-20  OKUJI Yoshinori  <okuji@gnu.org>
5192         * docs/user-ref.texi (Command-line-specific commands): Added a
5193         description about "cmp".
5194         * docs/appendices.texi (Reporting bugs): Rewritten.
5195         
5196 2000-02-20  OKUJI Yoshinori  <okuji@gnu.org>
5198         Update the netboot code to Etherboot 4.4.3.
5199         
5200         * netboot/netboot_config.h: Copied from etherboot-4.4.3.
5201         * netboot/cs89x0.h: Likewise.
5202         * netboot/cs89x0.c: Likewise.
5203         * netboot/i82586.c: Likewise.
5204         * netboot/lance.c: Likewise.
5205         * netboot/linux-asm-string.h: Likewise.
5206         * netboot/nic.h: Likewise.
5207         * netboot/ntulip.c: Likewise.
5208         * netboot/osdep.h: Likewise.
5209         * netboot/pci.h: Likewise.
5210         * netboot/pci.c: Likewise.
5211         * netboot/rtl8139.c: Likewise.
5212         * netboot/tiara.c: Likewise.
5213         
5214 2000-02-19  OKUJI Yoshinori  <okuji@gnu.org>
5216         * stage2/builtins.c (cmp_func): New function.
5217         (builtin_cmp): New variable.
5218         (builtin_table): Added a pointer to BUILTIN_CMP.
5220         * stage2/fsys_fat.c (fat_mount): Check if BPB.SECTS_PER_CLUST is
5221         zero after reading the BPB to avoid zero division.
5222         
5223 2000-02-18  OKUJI Yoshinori  <okuji@gnu.org>
5225         * stage2/disk_io.c [!STAGE1_5] (make_saved_active): Make sure
5226         that SAVED_PARTITION is not an extended partition.
5227         If SAVED_DRIVE is not a hard disk drive, set ERRNUM to
5228         ERR_DEV_VALUES and return zero.
5230         * netboot/3c59x.c: Removed.
5231         * netboot/Makefile.am (EXTRA_libdrivers_a_SOURCES): Deleted
5232         3c59x.c.
5233         (3c59x_drivers): Deleted.
5234         (3c59x_o_CFLAGS): Likewise.
5235         * configure.in (--enable-3c59x): Likewise.
5236         
5237 2000-02-17  OKUJI Yoshinori  <okuji@gnu.org>
5239         * configure.in (--enable-3c90x): Add -DINCLUDE_3C90X=1 instead
5240         of -DINCLUDE_3C90x=1. This was just a typo. Reported by Per
5241         Lundberg.
5242         
5243 2000-02-17  Jochen Hoenicke  <jochen@gnu.org>
5244         
5245         * stage2/fsys_fat.c (fat_read): Forgot to increase BUF.
5246         (fat_dir): Use fat_read instead of grub_read; this makes
5247         setting the FSMAX unnecessary.
5248         (fat_mount): FSMAX is no longer set.
5249         
5250 2000-02-16  Jochen Hoenicke  <jochen@gnu.org>
5252         * stage2/char_io.c (grub_isspace): Make carriage return a white
5253         space.
5254         
5255         * stage2/fsys_fat.c (fat_dir): Long filename support.
5256         (NAME_BUF): New macro.
5257         * stage2/fat.h (FAT_LONGDIR_ID, FAT_LONGDIR_ALIASCHECKSUM,
5258         FAT_ATTRIB_LONGNAME): New Macros.
5260         * stage2/fsys_fat.c (fat_create_blocklist): Deleted, instead
5261         fat_read is implemented.
5262         (fat_read): new function.
5263         * stage2/disk_io.c (fsys_table): Use fat_read.
5264         * stage2/filesys.h: Declare fat_read, remove NO_BLOCK_FILES
5265         hack.
5266         * stage2/Makefile.am: Compile fat_stage1_5 with
5267         -DNO_BLOCK_FILES=1.
5268         
5269         * stage2/fat.h (fat_bpb): New structure describing bpb.
5270         (FAT_CVT_U16): New macro.
5271         (FAT_BPB_CHECK_SIG, FAT_BPB_NUM_SECTORS,
5272         FAT_BPB_BYTES_PER_SECTOR, FAT_BPB_SECT_PER_CLUS, FAT_BPB_NUMFAT,
5273         FAT_BPB_RESERVED_SECTORS, FAT_BPB_FAT_SECTORS_16,
5274         FAT_BPB_FAT_SECTORS_32, FAT_BPB_IS_FAT32, FAT_BPB_FAT_SECTORS,
5275         FAT_BPB_FAT_START, FAT_BPB_ROOT_DIR_CLUSTER,
5276         FAT_BPB_HIDDEN_SECTORS, FAT_BPB_ROOT_DIR_START,
5277         FAT_BPB_ROOT_DIR_LENGTH, FAT_BPB_DATA_OFFSET,
5278         FAT_BPB_NUM_CLUST): Macros removed.
5279         * stage2/fsys_fat.c (fat_superblock): New structure containing
5280         all info about currently mounted filesystem.
5281         (FAT_SUPER): New Macro.
5282         (BPB): Macro removod.
5283         (fat_mount): Use fat_bpb structure, fill FAT_SUPER.
5284         (fat_read, fat_dir): Use FAT_SUPER info.
5286 2000-02-16  OKUJI Yoshinori  <okuji@gnu.org>
5288         Pass the boot partition information to a chain-loader, in the
5289         partition table area of the loader, instead of right before the
5290         loaded address. Reported by takehiro@coral.ocn.ne.jp (Takehiro
5291         Suzuki).
5292         
5293         * stage2/builtins.c (chainloader_func): Embed the partition
5294         table of the boot drive in the partition table area of the
5295         chain-loader, if the boot drive is a hard disk drive.
5296         Pass BOOT_PART_ADDR instead of (BOOTSEC_LOCATION - 16) as the
5297         third argument for the function chain_stage1.
5298         * stage2/disk_io.c [!STAGE1_5] (boot_part_addr): New variable.
5299         [!STAGE1_5] (boot_part_offset): Likewise.
5300         [!STAGE1_5] (cur_part_offset): Likewise.
5301         [!STAGE1_5] (cur_part_addr): Likewise.
5302         [!STAGE1_5] (cur_part_desc): Removed.
5303         (real_open_partition) [!STAGE1_5]: Set CUR_PART_OFFSET and
5304         CUR_PART_ADDR to PART_OFFSET and (BOOTSEC_LOCATION +
5305         PC_SLICE_OFFSET + (i << 4)), respectively.
5306         [!STAGE1_5] (set_bootdev): Set BOOT_PART_OFFSET and
5307         BOOT_PART_ADDR to CUR_PART_OFFSET and CUR_PART_ADDR,
5308         respectively.
5309         * stage2/shared.h (boot_part_addr): Declared.
5310         (boot_part_offset): Likewise.
5311         
5312 2000-02-12  OKUJI Yoshinori  <okuji@gnu.org>
5314         * stage2/builtins.c (geometry_func): Attempt to read the first
5315         sector to examine if LBA mode is really supported.
5317         * netboot/fsys_tftp.c (buf_fill) [TFTP_DEBUG]: Added some debug
5318         messages.
5319         (send_rrq) [TFTP_DEBUG]: Likewise.
5320         (tftp_read) [TFTP_DEBUG]: Likewise.
5321         (tftp_dir) [TFTP_DEBUG]: Likewise.
5322         (tftp_close) [TFTP_DEBUG]: Likewise.
5323         (tftp_read): Call buf_fill with the argument 1 first, if FILEPOS
5324         has been moved backwards, and use grub_memmove for copying
5325         SAVED_TP to TP instead of a direct assignment.
5326         If send_rrq fails, set ERRNUM to ERR_WRITE instead of ERR_READ.
5327         Check if BUF_READ is zero instead of if BUF_EOF is non-zero at
5328         the end of the loop.
5329         (tftp_dir): Set ERRNUM to ERR_WRITE instead of ERR_READ, if
5330         send_rrq fails.
5331         Save TP and LEN in SAVED_TP and SAVED_LEN respectively before
5332         buf_fill instead of after it, because it destroys the contents
5333         of TP.
5334         * netboot/main.c (print_network_configuration): The order of the
5335         arguments for grub_sprintf in the local function sprint_ip_addr
5336         is reversed.
5338         * configure.in (--enable-packet_retransmission): Renamed to ...
5339         (--disable-packet-retransmission): ... this. Assume that a
5340         network is congested by default.
5341         
5342 2000-02-11  OKUJI Yoshinori  <okuji@gnu.org>
5344         From Pavel Roskin:
5345         * stage2/shared.h [!GRUB_SHARED_HEADER] (GRUB_SHARED_HEADER):
5346         Defined.
5347         [GRUB_SHARED_HEADER]: Don't declare or define anything.
5349         * netboot/main.c (print_network_configuration): New function.
5350         (await_reply): Check for Control-C instead of ESC, because GRUB
5351         already uses ESC for another purpose.
5352         (rfc951_sleep): Check for the key input in the loop. If
5353         Control-C is pushed, return immediately.
5354         * netboot/etherboot (print_network_configuration): Declared.
5355         (CTRL_C): New macro.
5356         (ESC): Undefined.
5357         * netboot/config.c (eth_probe): Clear ARPTABLE after clearing
5358         NETWORK_READY.
5359         * stage2/builtins.c (bootp_func): Call
5360         print_network_configuration if bootp succeeds.
5361         (rarp_func): Call print_network_configuration if rarp succeeds.
5362         
5363 2000-02-11  OKUJI Yoshinori  <okuji@gnu.org>
5365         From Per Lundberg <plundis@byggdok.se>:
5366         * docs/multiboot.texi: Added graphics support.
5367         
5368 2000-02-10  OKUJI Yoshinori  <okuji@gnu.org>
5370         * docs/multiboot.texi (Top): Downgrade the version to 0.6.90,
5371         since we need more work to release it as 0.7.
5372         
5373 2000-02-10  OKUJI Yoshinori  <okuji@gnu.org>
5375         * stage2/Makefile.am [NETBOOT_SUPPORT] (STAGE2_COMPILE): Added
5376         -I$(top_srcdir)/netboot and -DSUPPORT_NETBOOT=1.
5377         * stage2/builtins.c (bootp_func): New function.
5378         (dhcp_func): Likewise.
5379         (rarp_func): Likewise.
5380         (builtin_bootp): New variable.
5381         (builtin_dhcp): Likewise.
5382         (builtin_rarp): Likewise.
5383         (builtin_table): Added pointers to BUILTIN_BOOTP, BUILTIN_DHCP
5384         and BUILTIN_RARP.
5385         * docs/user-ref.texi (General Commands): Added descriptions
5386         about "bootp", "dhcp" and "rarp".
5387         
5388         * netboot/main.c (bootp) [!NO_DHCP_SUPPORT]: Added casts to
5389         suppress gcc warnings.
5390         (decode_rfc1533) [!NO_DHCP_SUPPORT]: Likewise.
5391         * netboot/3c90x.c: Include the local "pci.h" instead of
5392         <linux/pci.h> even if __FreeBSD__ is undefined.
5393         
5394 2000-02-09  OKUJI Yoshinori  <okuji@gnu.org>
5396         From Jochen Hoenicke:
5397         * stage2/fsys_fat.c (fat_create_blocklist): The previous change
5398         is reversed. Set FIRST_FAT_ENTRY to a unsigned long value in
5399         FAT_BUF + (NEW_MAPBLOCK - MAPBLOCK) instead of a unsigned short
5400         value. Mask FIRST_FAT_ENTRY with 0xFFF if FAT_SIZE is equal to
5401         3, whether the bit 0 of LAST_FAT_ENTRY is set or not.
5403         * netboot/config.c (eth_probe): If PROBED is set to non-zero,
5404         return 1 without probing ethernet cards. Clear NETWORK_READY. If
5405         *T->ETH_PROBE return sucessfully, set PROBED to 1.
5406         * netboot/main.c (rarp): Call eth_probe and return zero if
5407         fails. Clear NETWORK_READY at first, and set NETWORK_READY to 1
5408         if RETRY is less than MAX_ARP_RETRIES. If IP_ABORT is non-zero,
5409         return zero instead of one.
5410         (bootp): Call eth_probe and return zero if fails. Clear
5411         NETWORK_READY at first, and set NETWORK_READY to 1 if
5412         await_reply returns successfully.
5413         (bootp) [T509HACK]: If FLAG is non-zero, skip calling
5414         await_reply. Don't call await_reply here any more.
5415         (bootp) [!NO_DHCP_SUPPORT]: If any ack packet is not reached
5416         within MAX_BOOTP_RETRIES times, return zero. If DHCP_REPLY isn't
5417         DHCPOFFER, set NETWORK_READY to one and return one.
5418         * netboot/etherboot.h (NO_DHCP_SUPPORT): Undefined.
5420         * stage2/builtins.c (print_root_device): Use the macro
5421         NETWORK_DRIVE instead of 0x20.
5422         * stage2/disk_io.c [!STAGE1_5] (sane_partition): Likewise.
5423         (real_open_partition) [!STAGE1_5]: Likewise.
5424         (set_device) [!STAGE1_5]: Likewise.
5425         
5426 2000-02-08  OKUJI Yoshinori  <okuji@gnu.org>
5428         * grub/asmstub.c (biosdisk) [__linux__]: Use _llseek when
5429         __GLIBC_MINOR__ is less than 1 even if __GLIBC__ is 2. Reported
5430         by Goran Koruga <goran.koruga@hermes.si>.
5432         * configure.in (--disable-lba-support-bitmap-check): New option.
5433         Don't define CHECK_LBA_SUPPORT_BITMAP if specified.
5434         * stage1/stage1.S (real_start): Check if AH=0x42 is supported if
5435         CHECK_LBA_SUPPORT_BITMAP instead of NO_BUGGY_BIOS_IN_THE_WORLD
5436         is defined.
5437         * stage2/bios.c (get_diskinfo): Check if LBA read/write
5438         functions are supported iff CHECK_LBA_SUPPORT_BITMAP is defined,
5439         instead of NO_BUGGY_BIOS_IN_THE_WORLD.
5440         
5441 2000-02-07  OKUJI Yoshinori  <okuji@gnu.org>
5443         The netboot support is heavily rewritten, based on
5444         Etherboot-4.4.2. The current one doesn't work yet, so check out
5445         GRUB with the tag "dresden_netboot_code" if you need working
5446         one.
5447         
5448         * configure.in (--enable-tftp): Deleted.
5449         (FSYS_CFLAGS): `AC_SUBST'ed right before AC_OUTPUT.
5450         (NETBOOT_DRIVERS): New variable. AC_SUBST this after examining
5451         the driver options.
5452         (--enable-packet-retransmission): New option.
5453         (--enable-pci-direct): Likewise.
5454         (--enable-3c509): Likewise.
5455         (--enable-3c529): Likewise.
5456         (--enable-3c90x): Likewise.
5457         (--enable-cs89x0): Likewise.
5458         (--enable-epic100): Likewise.
5459         (--enable-3c507): Likewise.
5460         (--enable-exos205): Likewise.
5461         (--enable-ni5210): Likewise.
5462         (--enable-lancepci): Likewise.
5463         (--enable-ne2100): Likewise.
5464         (--enable-ni6510): Likewise.
5465         (--enable-3c503): Likewise.
5466         (--enable-ntulip): Likewise.
5467         (--enable-rtl8139): Likewise.
5468         (--enable-sk-g16): Likewise.
5469         (--enable-smc9000): Likewise.
5470         (--enable-tiara): Likewise.
5471         (--enable-tulip): Likewise.
5472         (--enable-via-rhine): Likewise.
5473         (--enable-3c503-shmem): Likewise.
5474         (--enable-3c503-aui): Likewise.
5475         (--enable-3c509-hack): Likewise.
5476         (--enable-compex-rl2000-fix): Likewise.
5477         (--enable-smc9000-scan): Likewise.
5478         (--enable-t503): Deleted.
5479         (--enable-lance): Likewise.
5480         (--enable-cs): Likewise.
5482         * netboot/main.c: New file. Copied and modified.
5483         * netboot/linux-asm-io.h: Likewise.
5484         * netboot/etherboot.h: Likewise.
5485         * netboot/misc.c: Likewise.
5486         * netboot/via-rhine.c: Likewise.
5487         * netboot/3c90x.c: Likewise.
5488         * netboot/3c90x.txt: Likewise.
5489         * netboot/epic100.c: Likewise.
5490         * netboot/epic100.h: Likewise.
5491         * netboot/i82586.c: Likewise.
5492         * netboot/linux-asm-string.h: Likewise.
5493         * netboot/ntulip.c: Likewise.
5494         * netboot/ntulip.txt: Likewise.
5495         * netboot/osdep.h: Likewise.
5496         * netboot/rtl8139.c: Likewise.
5497         * netboot/sk_g16.c: Likewise.
5498         * netboot/sk_g16.h: Likewise.
5499         * netboot/smc9000.c: Likewise.
5500         * netboot/smc9000.h: Likewise.
5501         * netboot/tiara.c: Likewise.
5502         * netboot/tulip.c: Likewise.
5503         * netboot/tulip.h: Likewise.
5504         * netboot/README.netboot: New file. Most information is stolen
5505         from Makefile and Config.32 in Etherboot.
5506         * netboot/3c509.c: Copied from Etherboot. The original is
5507         removed.
5508         * netboot/3c509.h: Likewise.
5509         * netboot/cs89x0.c: Likewise.
5510         * netboot/eepro100.c: Likewise.
5511         * netboot/lance.c: Likewise.
5512         * netboot/ns8390.c: Likewise.
5513         * netboot/ns8390.h: Likewise.
5514         * netboot/pci.c: Likewise.
5515         
5516         * netboot/3c59x.c: Include etherboot.h instead netboot.h.
5517         * netboot/config.c: Copied from Etherboot and added the 3c59x
5518         entries.
5519         * netboot/pci.h: Likewise.
5520         * netboot/fsys_tftp.c: Entirely rewritten based on main.c in
5521         Etherboot.
5523         * netboot/io.h: Removed.
5524         * netboot/ip.h: Likewise.
5525         * netboot/ip.c: Likewise.
5526         * netboot/netboot.h: Likewise.
5527         
5528         * netboot/Makefile.am (INCLUDES): Added -I$(top_srcdir)/stage2.
5529         (DRIVERS): Removed.
5530         (libdrivers_a_SOURCES): Added etherboot.h, linux-asm-io.h,
5531         linux-asm-string.h, main.c, misc.c and osdep.h. Deleted io.h,
5532         ip.h, ip.c, netboot.h and $(DRIVERS).
5533         (EXTRA_libdrivers_a_SOURCES): New variable.
5534         (libdrivers_a_LIBADD): Set to @NETBOOT_DRIVERS@.
5535         (libdrivers_a_DEPENDENCIES): New variable.
5536         (EXTRA_DIST): Likewise.
5537         (3c509_drivers): New variable. Define a new rule for the value.
5538         (3c59x_drivers): Likewise.
5539         (3c90x_drivers): Likewise.
5540         (cs89x0_drivers): Likewise.
5541         (eepro100_drivers): Likewise.
5542         (epic100_drivers): Likewise.
5543         (i82586_drivers): Likewise.
5544         (lance_drivers): Likewise.
5545         (ns8390_drivers): Likewise.
5546         (ntulip_drivers): Likewise.
5547         (rtl8139_drivers): Likewise.
5548         (sk_g16_drivers): Likewise.
5549         (smc9000_drivers): Likewise.
5550         (tiara_drivers): Likewise.
5551         (tulip_drivers): Likewise.
5552         (via_rhine_drivers): Likewise.
5553         (t503_o_CFLAGS): Removed.
5554         (nepci_o_CFLAGS): Set to -DINCLUDE_NEPCI=1.
5555         (ne_o_CFLAGS): Set to -DINCLUDE_NE=1.
5556         (wd_o_CFLAGS): Set to -DINCLUDE_WD=1.
5557         (3c509_o_CFLAGS): Likewise.
5558         (3c529_o_CFLAGS): Likewise.
5559         (3c59x_o_CFLAGS): Likewise.
5560         (3c90x_o_CFLAGS): Likewise.
5561         (cs89x0_o_CFLAGS): Likewise.
5562         (eepro100_o_CFLAGS): Likewise.
5563         (epic100_o_CFLAGS): Likewise.
5564         (3c507_o_CFLAGS): Likewise.
5565         (exos205_o_CFLAGS): Likewise.
5566         (ni5210_o_CFLAGS): Likewise.
5567         (lancepci_o_CFLAGS): Likewise.
5568         (ne2100_o_CFLAGS): Likewise.
5569         (ni6510_o_CFLAGS): Likewise.
5570         (3c503_o_CFLAGS): Likewise.
5571         (ntulip_o_CFLAGS): Likewise.
5572         (rtl8139_o_CFLAGS): Likewise.
5573         (sk_g16_o_CFLAGS): Likewise.
5574         (smc9000_o_CFLAGS): Likewise.
5575         (tiara_o_CFLAGS): Likewise.
5576         (tulip_o_CFLAGS): Likewise.
5577         (via_rhine_o_CFLAGS): Likewise.
5579         * stage2/char_io.c (nul_terminate): Changed the type of the
5580         return value to int. Return the original character changed to
5581         NUL.
5582         * stage2/shared.h (NETWORK_DRIVE): New macro.
5583         (nul_terminate): Adjusted to the definition.
5584         * stage2/gunzip.c (gunzip_test_header): Removed the TFTP check
5585         entirely. It is no longer necessary because we now can obtain
5586         the correct size of a file even for TFTP.
5587         
5588 2000-02-07  OKUJI Yoshinori  <okuji@gnu.org>
5590         * stage2/asm.S: Undo the previous changes. Is
5591         binutils-2.9.5.0.25 too strict to retain the compatibility?
5592         Reported by Kalle Olavi Niemitalo <tosi@ees2.oulu.fi>.
5593         
5594 2000-02-03  OKUJI Yoshinori  <okuji@gnu.org>
5596         * stage2/cmdline.c (enter_cmdline): Set BUF_DRIVE to -1 before
5597         running a command to invalidate the cache.
5598         (run_script): Likewise.
5599         * stage2/char_io.c (get_cmdline): Set BUF_DRIVE to -1 before the
5600         completion to invalidate the cache.
5601         Reported by Jeff Sheinberg <jeffsh@erols.com>.
5603         * configure.in: Use AC_PATH_TOOL instead of AC_PATH_PROG.
5604         * stage2/asm.S (chain_stage1): Prepend `*' to the argument for
5605         ljmp.
5606         (chain_stage2): Likewise.
5607         (big_linux_boot): Likewise.
5608         
5609 2000-01-19  OKUJI Yoshinori  <okuji@gnu.org>
5611         * util/grub-install.in (--root): Renamed to ...
5612         (--root-directory): ... this, since "root" is vague.
5613         * docs/user-ref.texi (Invoking grub-install): Adjusted to the
5614         change above, and added an example how to use --root-directory.
5615         * docs/grub-install.8: Regenerated.
5617         * docs/appendices.texi (FAQ): Added an item about the sucked
5618         SCSI problem.
5619         
5620 2000-01-15  OKUJI Yoshinori  <okuji@gnu.org>
5622         * stage2/builtins.c (chainloader_func): If --force is specified
5623         in ARG, don't check for the signature.
5624         * docs/tutorial.texi (Chain-loading): Added a caution about some
5625         defective boot loaders and --force.
5626         * docs/user-ref.texi (Command-line-specific commands): Added a
5627         description about --force.
5628         
5629 2000-01-11  OKUJI Yoshinori  <okuji@gnu.org>
5631         * docs/prog-ref.texi (LBA mode disk I/O): Added a footnote about
5632         a buggy BIOS.
5633         
5634 2000-01-11  OKUJI Yoshinori  <okuji@gnu.org>
5636         * stage1/stage1.S [!NO_BUGGY_BIOS_IN_THE_WORLD]: Don't check if
5637         LBA read is supported. Anyway, fallback to the CHS mode if
5638         fails.
5639         
5640 2000-01-10  OKUJI Yoshinori  <okuji@gnu.org>
5642         * stage2/bios.c (NO_INT13_FALLBACK): Undefined.
5643         (get_diskinfo) [!NO_BUGGY_BIOS_IN_THE_WORLD]: Do not check if
5644         bit 0 in DRP.FLAGS is set, because at least one BIOS does not
5645         set it correctly. Reported by "Forever shall I be."
5646         <zinx@linuxfreak.com>.
5648         * util/grub-install.in: Handle the new options `--root' and
5649         `--grub-shell'.
5650         (rootdir): New variable.
5651         (usage): Print the help messages about the options --root and
5652         --grub-shell.
5653         (bootdir): Initialized after the option analysis.
5654         (grubdir): Likewise.
5655         (device_map): Likewise.
5656         (root_device): Set to the result for the directory ROOTDIR
5657         instead of "/".
5658         * docs/user-ref.texi (Invoking grub-install): Added the
5659         descriptions about --root and --grub-shell.
5660         * docs/grub-install.8: Regenerated.
5661         
5662 2000-01-08  OKUJI Yoshinori  <okuji@gnu.org>
5664         * util/grub-install.in (grubdir_device): New variable.
5665         If GRUBDIR_DEVICE is not equal to ROOT_DEVICE, print an error
5666         message and exit.
5667         * README: Added a caution about Automake.
5668         * TODO: Updated. Only the things that should be done until 0.6
5669         have one or more exclamations. Things with zero exclamation
5670         will be done after 0.6 unless someone sends a patch for it.
5671         
5672 2000-01-05  OKUJI Yoshinori  <okuji@gnu.org>
5674         * grub/asmstub.c: Include the header shared.h after including
5675         all the system headers, but not before.
5676         (EXTENDED_MEMSIZE): Reduced to 3MB.
5677         (grub_setjmp): New function.
5678         (grub_longjmp): Likewise.
5679         * grub/main.c: Include setjmp.h.
5680         * stage2/asm.S (grub_setjmp): New function. Stolen from the
5681         OSKit (which stole it from Mach).
5682         (grub_longjmp): Likewise.
5683         * stage2/shared.h [GRUB_UTIL] (grub_jmp_buf): New type.
5684         [!GRUB_UTIL] (grub_jmp_buf): New macro. Defined as jmp_buf.
5685         (grub_setjmp): Declared.
5686         (grub_longjmp): Likewise.
5687         (restart_env): Likewise.
5688         * stage2/builtins.c (configfile_func): Use grub_longjmp instead
5689         of invoking cmain again.
5690         * stage2/stage2.c (restart_env): New variable.
5691         (cmain): Call grub_setjmp first to initialize RESTART_ENV.
5692         
5693 2000-01-03  OKUJI Yoshinori  <okuji@gnu.org>
5695         * docs/multiboot.texi (Boot information format): Added the
5696         descriptions about the fields "config_table" and
5697         "boot_loader_name".
5698         
5699 1999-12-31  OKUJI Yoshinori  <okuji@gnu.org>
5701         * stage2/builtins.c (setup_func) [!NO_BUGGY_BIOS_IN_THE_WORLD]:
5702         Specify the option `d', whether INSTALL_DRIVE is identical with
5703         IMAGE_DRIVE or not.
5704         * docs/user-ref.texi (Command-line-specific commands): Added a
5705         caution about buggy BIOSes which don't pass a booting drive
5706         properly.
5708         * docs/src2texi: Added an extra space into the first line, for
5709         the portability issue.
5711         * docs/appendices.texi (Obtaining and Building GRUB): Update the
5712         information on the ftp site and the CVS repository.
5713         
5714 1999-12-30  OKUJI Yoshinori  <okuji@gnu.org>
5716         * stage2/builtins.c (blocklist_func): New function.
5717         (builtin_blocklist): New variable.
5718         (builtin_table): Added a pointer to BUILTIN_BLOCKLIST.
5719         * docs/user-ref.texi (Command-line-specific commands): Added a
5720         description about the command "blocklist".
5721         
5722 1999-12-30  OKUJI Yoshinori  <okuji@gnu.org>
5724         * stage2/disk_io.c (grub_seek): New function.
5725         * stage2/shared.h (grub_seek): Declared.
5726         * stage2/boot.c (load_image): Use grub_seek instead of setting
5727         FILEPOS to a new value directly.
5728         * stage2/builtins.c (install_func): Likewise.
5729         (testload_func): Likewise.
5731         * docs/grub.texi: Use a single direntry command for all the
5732         entries instead of one per entry.
5733         
5734 1999-12-29  OKUJI Yoshinori  <okuji@gnu.org>
5736         * grub/asmstub.c (check_device) [__linux__]: Check if DEVICE is
5737         a CD-ROM drive by the HDIO_GETGEO ioctl. If so, then return
5738         zero. Reported by Pavel Roskin.
5740         * stage2/Makefile.am (nodist_noinst_DATA): Renamed to ...
5741         (noinst_DATA): ... this. The primary DATA is `nodist' by
5742         default, at least theoretically. Reported by Klaus Reichl.
5744         * stage2/bios.c (get_diskinfo): Set the LBA flag in GEOMETRY
5745         only if bit 0 in DRP.FLAGS is set. Reported by Zack Weinberg
5746         <zack@rabi.columbia.edu>.
5748         From Pavel Roskin:
5749         * grub/asmstub.c (init_device_map): Increase the number of
5750         devices to be probed to 8 for IDE disks and 16 for SCSI
5751         disks. Reported by Anton Anisimov <aa@bestlinux.net>.
5752         
5753 1999-12-06  Gordon Matzigkeit  <gord@fig.org>
5755         * README (DEVELOPERS): Change CVS location to subversions.
5757 1999-11-30  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
5759         * stage2/disk_io.c (real_open_partition): If SLICE_NO is greater
5760         than or equal to PC_SLICE_MAX, skip any extended partition, when
5761         searching for the right partition. Reported by Weil, Stefan 3732
5762         EPE-24 <Stefan.Weil@de.heidelberg.com>.
5764 1999-11-19  Gordon Matzigkeit  <gord@fig.org>
5766         * grub/asmstub.c (getkey): Stop immediately if we get an EOF.
5768         * stage2/stage2.c (cmain): Tell enter_cmdline to run forever.
5769         (run_menu): Tell print_cmdline_message and enter_cmdline that we
5770         won't run forever.
5771         * stage2/cmdline.c (enter_cmdline): New argument, FOREVER, for
5772         when ESC shouldn't allow an exit.  Pass it to
5773         print_cmdline_message.
5774         (print_cmdline_message): Use new argument, FOREVER, to decide
5775         whether to tell the user that ESC exits.
5777 1999-11-18  Gordon Matzigkeit  <gord@fig.org>
5779         * debian/rules (binary-arch): Don't strip or generate shared
5780         library dependencies for /usr/sbin/grub-install, since it's a
5781         script.
5783         * util/grub-install.in: Create safe temporary log files using
5784         /bin/tempfile if it is executable.
5786 1999-11-17  Gordon Matzigkeit  <gord@fig.org>
5788         * stage1/Makefile.am (LDFLAGS): Consolidate multiple -Wl flags.
5789         * stage2/Makefile.am (PRE_STAGE2_LINK): Likewise.
5790         (START_LINK): Likewise.
5791         (STAGE1_5_LINK): Likewise.
5793 1999-11-19  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
5795         * util/grub-install.in (debug): New variable.
5796         (convert): If the device file does not exist, then emit an
5797         error. Get the GRUB drive instead of the OS device.
5798         If --debug is specified, then set $debug to yes.
5799         If $debug is yes, run "set -x".
5800         Make sure that stage1 and stage2 exist.
5801         When checking for INSTALL_DEVICE, use "case" instead of "elif"s.
5802         Make sure that $install_drive is not empty.
5803         Likewise, make sure that $root_drive is not empty.
5804         Any error message is redirected to the standard error.
5806 1999-11-19  Pavel Roskin  <pavel_roskin@geocities.com>
5808         * stage2/Makefile.am (noinst_DATA): Renamed to ...
5809         (nodist_noinst_DATA): ... this.
5810         * util/Makefile.am: sbin_SCRIPS -> sbin_SCRIPTS.
5811         * util/grub-install.in: grub_dir -> grubdir.
5812         Check if $grub_shell exists before running it.
5813         (convert): Added a missing "test" after "if".
5815 1999-11-18  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
5817         * configure.in: Output grub-install.
5818         * util/Makefile.am (sbin_SCRIPTS): New variable.
5819         * util/grub-install.in: New file.
5820         * docs/Makefile.am (man_MANS): Added grub-install.8.
5821         [MAINTAINER_MODE] ($(srcdir)/grub-install.8): New target.
5822         * docs/grub-install.8: New file. Generated by help2man.
5823         * docs/user-ref.texi (Invoking grub-install): New chapter.
5825 1999-11-16  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
5827         From Pavel Roskin:
5828         * stage1/stage1.S: Check for the API subset support bitmap
5829         returned by INT 13 AH=48h, and jump to chs_mode if AH=42h is not
5830         supported.
5832 1999-11-13  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
5834         * stage2/builtins.c (install_func): When using a Stage 1.5, set
5835         CURRENT_DRIVE to SAVED_DRIVE and CURRENT_PARTITION to
5836         SAVED_PARTITION if set_device fails. If CURRENT_DRIVE is equal
5837         to SRC_DRIVE, then set CURRENT_DRIVE to 0xFF. We don't want to
5838         embed any drive number whenever possible.
5839         * stage2/disk_io.c (set_device) [STAGE1_5]: Always set
5840         CURRENT_PARTITION to PARTITION.
5842 1999-11-13  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
5844         From Pavel Roskin:
5845         * stage1/stage1.S (lba_mode): Jump to chs_mode if INT 13 AH=42h
5846         fails.
5848 1999-11-12  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
5850         Do not use the device map file unless --device-map is specified.
5852         * grub/main.c (device_map_file): Set to 0.
5853         (default_device_map_file): Removed.
5854         (usage): Do not print DEFAULT_DEVICE_MAP_FILE.
5855         * grub/asmstub.c (init_device_map): If DEVICE_MAP_FILE is NULL,
5856         do not try to open the device map file.
5857         Set FP to NULL by default.
5858         * docs/grub.8: Regenerated.
5860 1999-11-11  Michael Hohmuth  <hohmuth@innocent.com>
5862         * stage2/boot.c (load_image): grub_close was called after
5863         return, so exchange the order.
5864         * stage2/stage1_5.c (cmain): Call grub_close after grub_read.
5865         Set RET to the value returned by grub_read, and if RET is
5866         non-zero, call chain_stage2.
5867         * stage1/Makefile.am (BUILT_SOURCES): Removed.
5868         (CLEANFILES): Set to $(nodist_pkgdata_DATA).
5870 1999-11-11  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
5872         Suggested by Klaus Reichl:
5873         * stage2/builtins.c (print_root_device): New function.
5874         (root_func): If no argument is specified, call the function
5875         print_root_device and return.
5876         (rootnoverify_func): Likewise.
5877         * stage2/disk_io.c [!STAGE1_5] (print_completions): Call
5878         print_error even if IS_FILENAME is zero.
5879         If ERRNUM is non-zero, then return -1.
5880         * stage2/char_io.c [!STAGE1_5] (get_cmdline): Clear ERRNUM after
5881         calling print_completions to print the list as well.
5883         * stage2/asm.S [!STAGE1_5] (currticks): Set %eax to %cx:%dx
5884         correctly. Reported by Michael Hohmuth.
5886 1999-11-06  Klaus Reichl  <Klaus.Reichl@alcatel.at>
5888         * grub/asmstub.c (get_diskinfo) [__linux__]: After opening the
5889         drive, flush the cache, other progs may have left over something
5890         in the cache.
5892 1999-11-03  Gordon Matzigkeit  <gord@fig.org>
5894         * debian/rules: Add variables for cross-compilation.
5896         * debian/control (Standards-Version): Update to version 3.1.0.
5897         * debian/rules (build): Install manpages into /usr/share/man, and
5898         info into /usr/share/info in accordance with FHS.
5899         (binary-arch): Likewise, and put docs into /usr/share/doc.
5900         * debian/postinst: Use /usr/share/info, and manage compatibility
5901         /usr/doc/grub -> /usr/share/doc/grub symlink.
5902         * debian/prerm: Likewise.
5904         * stage2/Makefile.am (CLEANFILES): Change to
5905         $(nodist_pkgdata_DATA) so that the raw binary files are deleted.
5906         * stage1/Makefile.am (CLEANFILES): Likewise.
5908 1999-11-06  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
5910         * grub/asmstub.c (grub_putchar) [HAVE_LIBCURSES]: Do not call
5911         wrefresh. This was just an accident. Sorry.
5913         Reported by Alan McLean <amcl@flash.net>:
5914         * stage2/builtins.c (embed_func): The sector argument for the
5915         function biosdisk is changed from SECTOR + I * SECTOR_SIZE to
5916         SECTOR + I.
5917         (find_func): Clear ERRNUM before each of the attempts.
5919 1999-11-05  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
5921         * docs/multiboot.texi (Boot information format): Add the members
5922         `drives_addr' and `drives_count' into the Multiboot information
5923         structure, and added the descriptions.
5925 1999-11-03  Gordon Matzigkeit  <gord@fig.org>
5927         * util/mbchk.c (main): Move the version number inside the
5928         parentheses since it is the GRUB package version, not just an
5929         mbchk-specific version.
5931 1999-10-30  Gordon Matzigkeit  <gord@fig.org>
5933         * debian/rules (binary-arch): Compress man pages.
5934         Strip the grub shell.
5935         Install examples.
5937 1999-11-03  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
5939         * docs/tutorial.texi: Fix typos by ispell.
5940         * docs/user-ref.texi: Likewise.
5941         * docs/prog-ref.texi: Likewise.
5942         * docs/appendices.texi: Likewise.
5944 1999-11-03  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
5946         * stage2/fsys_ext2fs.c (struct ext2_dir_entry): Changed the type
5947         of `name_len' to __u8 and added the new member `file_type' after
5948         it. This is stolen from linux/ext2_fs.h in Linux 2.2.13.
5949         Reported by Ben Harris <bjh21@cam.ac.uk>.
5951         * stage2/builtins.c (device_func) [GRUB_UTIL]: Call
5952         nul_terminate before calling check_device.
5954 1999-11-02  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
5956         * stage2/disk_io.c (real_open_partition): Check for the right
5957         partition for any extended partition as well. Set EXT to I after
5958         the check is done. Reported by Jeff Scheinberg
5959         <jeffsh@erols.com>.
5961         * stage2/builtins.c (color_func): Use the function
5962         nul_terminate.
5963         (device_func) [GRUB_UTIL]: Likewise.
5964         (help_func): Likewise.
5965         (install_func): Save CURRENT_DRIVE, CURRENT_PARTITION and
5966         BUG_GEOM in SRC_DRIVE, SRC_PARTITION and SRC_GEOM respectively,
5967         and use them when patching the Stage 2.
5968         NUL-terminate the configuration filename CONFIG_FILENAME.
5969         If IS_STAGE1_5 is true, then check if the "real config file"
5970         option is present, and, if so, patch the Stage 2 CONFIG_FILENAME
5971         with the configuration filename REAL_CONFIG_FILENAME.
5972         (setkey_func): Use nul_terminate instead of the local function
5973         null_terminate.
5974         * stage2/char_io.c [!STAGE1_5] (nul_terminate): New function.
5975         * stage2/shared.h (nul_terminate): Declared.
5977 1999-11-01  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
5979         * docs/grub.texi: Add "I/O ports detection" into the menu.
5980         * docs/user-ref.texi: Added a description about the command
5981         "ioprobe".
5982         * docs/prog-ref.texi (I/O ports detection): New chapter.
5984 1999-11-01  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
5986         From Pavel Roskin:
5987         * stage2/asm.S (int1_handler): Use EXT_C(io_map) instead of
5988         io_map.
5989         (int1_handler): Use EXT_C(bios_key_map) instead of bios_key_map.
5990         * grub/asmstub.c [__OpenBSD__]: Include <sys/ioctl.h> and
5991         <sys/disklabel.h>.
5992         [__OpenBSD__] (get_floppy_disk_name): Added support for OpenBSD.
5993         [__OpenBSD__] (get_ide_disk_name): Likewise.
5994         [__OpenBSD__] (get_scsi_disk_name): Likewise.
5995         (get_drive_geometry) [__OpenBSD__]: Use for OpenBSD the same
5996         ioctl as for NetBSD and FreeBSD.
5998 1999-10-31  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6000         * grub/asmstub.c (init_device_map): Add a floppy device name
6001         into the device map file even if check_device fails.
6002         * stage2/char_io.c [!STAGE1_5] (get_cmdline): Clear ERRNUM after
6003         calling print_completions.
6005 1999-10-29  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6007         * stage2/asm.S (track_int13): Defined unconditionally. Do not
6008         use int3 any more, but replace the int13 handler with
6009         set_tf_int13_handler.
6010         (int1_handler): Defined unconditionally. Do not check for 0x0F.
6011         Add missing `$'s. If the code is 0xEC-0xEF, use %dx instead of
6012         immediate. If the code is 0xE4-0xE7, use immediate instead of
6013         %dx. Set %ds to zero before scanning IO_MAP. Check for the
6014         buffer overrun of IO_MAP before adding a port.
6015         [!DEFINE_TRACK_INT13] (int13_first_instruction): Removed.
6016         [!DEFINE_TRACK_INT13] (int3_handler): Likewise.
6017         (set_tf_int13_handler): New interrupt handler.
6018         (set_tf_int13_offset): New variable.
6019         (set_tf_int13_segment): Likewise.
6020         * stage2/builtins.c (ioprobe_func): New function.
6021         (builtin_ioprobe): New variable.
6022         (builtin_table): Added a pointer to BUILTIN_IOPROBE.
6023         * stage2/shared.h (IO_MAP_SIZE): New macro.
6024         (track_int13): Declared.
6025         (io_map): Likewise.
6027 1999-10-29  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6029         * stage2/char_io.c (print_error) [!STAGE1_5]: Print "Error:"
6030         before print the error message.
6031         (print_error): Do not clear ERRNUM.
6032         * stage2/cmdline.c (run_script): If ERRNUM is non-zero, set
6033         ERRNUM to ERR_NONE.
6034         (enter_cmdline): Clear ERRNUM after print_error.
6036 1999-10-28  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6038         From Pavel Roskin:
6039         * stage2/stage2.c (run_menu) [GRUB_UTIL]: Do not use IBM special
6040         characters in the message, but use ascii names instead.
6041         (run_menu) [!GRUB_UTIL]: Use DISP_UP and DISP_DOWN instead of
6042         the ascii codes.
6043         * stage2/shared.h [!ACS_ULCORNER] (ACS_ULCORNER): New macro.
6044         [!ACS_ULCORNER] (ACS_URCORNER): Likewise.
6045         [!ACS_ULCORNER] (ACS_LLCORNER): Likewise.
6046         [!ACS_ULCORNER] (ACS_LRCORNER): Likewise.
6047         [!ACS_ULCORNER] (ACS_HLINE): Likewise.
6048         [!ACS_ULCORNER] (ACS_VLINE): Likewise.
6049         [!ACS_ULCORNER] (ACS_LARROW): Likewise.
6050         [!ACS_ULCORNER] (ACS_RARROW): Likewise.
6051         [!ACS_ULCORNER] (ACS_UARROW): Likewise.
6052         [!ACS_ULCORNER] (ACS_DARROW): Likewise.
6053         [GRUB_UTIL] (DISP_UL): Set to ACS_ULCORNER.
6054         [GRUB_UTIL] (DISP_UR): Set to ACS_URCORNER.
6055         [GRUB_UTIL] (DISP_LL): Set to ACS_LLCORNER.
6056         [GRUB_UTIL] (DISP_LR): Set to ACS_LRCORNER.
6057         [GRUB_UTIL] (DISP_HORIZ): Set to ACS_HLINE.
6058         [GRUB_UTIL] (DISP_VERT): Set to ACS_VLINE.
6059         [GRUB_UTIL] (DISP_LEFT): Set to ACS_LARROW.
6060         [GRUB_UTIL] (DISP_RIGHT): Set to ACS_RARROW.
6061         [GRUB_UTIL] (DISP_UP): Set to ACS_UARROW.
6062         [GRUB_UTIL] (DISP_DOWN): Set to ACS_DARROW.
6064 1999-10-28  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6066         * stage2/builtins.c (keycode_func): Removed.
6067         (builtin_keycode): Likewise.
6068         (struct keysym): New structure.
6069         (keysym_table): New variable.
6070         (setkey_func): New function.
6071         (builtin_setkey): New variable.
6072         (builtin_table): Removed the pointer to BUILTIN_KEYCODE, and
6073         added a pointer to BUILTIN_SETKEY.
6074         * stage2/common.c [!STAGE1_5] (err_list): Added
6075         ERR_BAD_ARGUMENT.
6076         * stage2/shared.h (grub_error_t): Added ERR_BAD_ARGUMENT.
6077         (KEY_MAP_SIZE): Set to 128.
6078         (ascii_key_map): Declared.
6079         * stage2/asm.S [!STAGE1_5] (remap_ascii_char): New function.
6080         [!STAGE1_5] (ascii_key_map): New variable.
6081         [!STAGE1_5] (getkey): Call remap_ascii_char after int16.
6082         [!STAGE1_5] (checkkey): Likewise.
6083         * grub/asmstub.c (ascii_key_map): New variable.
6084         * docs/user-ref.texi (General commands): Added a description
6085         about the command "setkey".
6086         (Stage2 errors): Added a description about ERR_BAD_ARGUMENT.
6088 1999-10-27  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6090         * stage2/disk_io.c (set_device) [!STAGE1_5]: Remove the
6091         preliminary Mach-style device name support. I've decided that
6092         the support is not necessary.
6093         (setup_part) [!STAGE1_5]: Do not strip the leading "/dev/".
6094         * docs/help2man: Upgraded to 1.016.
6095         * docs/mbchk.1: Regenerated.
6096         * docs/grub.8: Likewise.
6097         * grub/asmstub.c: Rename KEY_MAP to BIOS_KEY_MAP.
6099         * stage2/asm.S [!STAGE1_5] (set_int15_handler): Use 0 instead of
6100         the maximum number for the segment.
6101         [!STAGE1_5] (unset_int15_handler): Likewise.
6102         [!STAGE1_5] (int15_handler): Almost rewritten. If non-carrier,
6103         ignore the scancode. If the scancode is E1 or E0, then set
6104         INT15_SKIP_FLAG to 0x74, and if the previous scancode is E1 or
6105         E0, set INT15_SKIP_FLAG to 0xea. Clear bit 7 in %dl. Save bit 7
6106         of %al in %bl. Do not lcall. Use ljmp instead.
6107         [!STAGE1_5] (key_map): Renamed to ...
6108         [!STAGE1_5] (bios_key_map): ... this.
6109         * stage2/builtins.c (keycode_func): Check if FROM is greater
6110         than 0xff instead of double-checking for TO. Use BIOS_KEY_MAP
6111         instead of KEY_MAP.
6112         * stage2/shared.h (KEY_MAP_SIZE): Set to 32.
6113         (key_map): Removed.
6114         (bios_key_map): Declared.
6116 1999-10-26  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6118         Now the BIOS drive remapping is functional.
6120         * stage2/asm.S [DEFINE_TRACK_INT13] (track_int13): Use %edi
6121         instead of direct addresses.
6122         Prefix DATA32 to the calls for real_to_prot and prot_to_real.
6123         Fix the address of DRIVE: 4(%ebp) -> 8(%ebp).
6124         (set_int15_handler): Use %edi instead of direct addresses.
6125         (unset_int15_handler): Likewise.
6126         (set_int13_handler): Copy DRIVE_MAP_SIZE * 2 bytes instead of
6127         DRIVE_MAP_SIZE bytes of MAP.
6128         Fix the address of MAP: 4(%ebp) -> 8(%ebp).
6129         Use %edi instead of direct addresses.
6130         (int13_handler): Do not set %ds to %cs. Use the segment override
6131         prefix of %cs instead.
6132         Push the flags pushed by the callee instead of the current.
6133         Set the flags in the stack to the flags returned by the original
6134         int13 call.
6135         (drive_map): 4bytes-aligned.
6136         * stage2/disk_io.c (grub_close): Do not set ERRNUM even if
6137         FSYS_TYPE is NUM_FSYS.
6139 1999-10-25  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6141         * stage1/stage1.S: Long jump to real_start, because some bogus
6142         BIOSes jump to 07C0:0000 instead of 0000:7C00.
6143         (real_start): New label.
6144         * docs/Makefile.am (grub.info): Removed. Use the default rule
6145         instead.
6147 1999-10-25  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6149         * stage2/asm.S [DEFINE_TRACK_INT13] (int3_handler): Save the
6150         modified FLAGS in 6(%bp) instead of 4(%bp).
6151         Decrease %bx before restoring the first instruction.
6152         [DEFINE_TRACK_INT13] (track_int13): Go to the real mode before
6153         setting up the registers for the int13 call.
6155 1999-10-24  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6157         Add the prototype of a function to probe I/O ports used for a
6158         BIOS drive.
6160         * stage2/asm.S [DEFINE_TRACK_INT13] (track_int13): New function.
6161         [DEFINE_TRACK_INT13] (int1_handler): New interrupt handler for
6162         the real mode.
6163         [DEFINE_TRACK_INT13] (int3_handler): Likewise.
6164         [DEFINE_TRACK_INT13] (io_map): New variable.
6166         * stage2/builtins.c (quit_func) [!GRUB_UTIL]: Fix a typo.
6168 1999-10-24  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6170         The new GRUB manual becomes official.
6172         * docs/grub.texi: Replaced with new-grub.texi.
6173         * docs/new-grub.texi: Removed.
6174         * docs/Makefile.am (grub_TEXINFOS): New variable.
6175         (UNFINISHED_MANUALS): Removed.
6176         (EXTRA_DIST): Deleted $(UNFINISHED_MANUALS).
6178 1999-10-24  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6180         * stage2/builtins.c (device_func) [!GRUB_UTIL]: Set ERRNUM to
6181         ERR_UNRECOGINIZED and return 1.
6182         (impsprobe_func) [GRUB_UTIL]: Likewise.
6183         (quit_func) [!GRUB_UTIL]: Likewise.
6184         * docs/tutorial.texi: Rename "Device Syntax" to "Filename".
6185         Added many cross-references.
6186         * docs/new-grub.texi: "Device Syntax" -> "Filename".
6187         * docs/user-ref.texi: Fix typos and added some cross-references.
6188         * docs/prog-ref.texi: Likewise.
6189         * docs/appendices.texi: Likewise.
6191 1999-10-23  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6193         * stage2/builtins.c (map_func): If BIOS_DRIVE_MAP already
6194         contains FROM, override the existsing entry.
6195         If TO is equal to FROM, delete the existing entry if any.
6196         (keycode_func): Likewise.
6197         * docs/user-ref.texi (Command): Use the list of `@deffn's
6198         instead of @table.
6199         (Basic usage): Use @option instead of @code.
6200         (Invoking mbchk): Likewise.
6202 1999-10-23  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6204         * stage2/asm.S [!STAGE1_5] (set_int15_handler): New function.
6205         [!STAGE1_5] (unset_int15_handler): Likewise.
6206         [!STAGE1_5] (int15_handler): New interrupt handler for the real
6207         mode.
6208         [!STAGE1_5] (int15_offset): New variable.
6209         [!STAGE1_5] (int15_segment): Likewise.
6210         [!STAGE1_5] (key_map): Likewise.
6211         [!STAGE1_5] (set_int13_handler): Use the macro ABS for
6212         INT13_OFFSET and INT13_SEGMENT.
6213         * stage2/shared.h (KEY_MAP_SIZE): New macro.
6214         (set_int15_handler): Declared.
6215         (unset_int15_handler): Likewise.
6216         * stage2/builtins.c (boot_func): Do not allow I to be equal to
6217         DRIVE_MAP_SIZE.
6218         Call unset_int15_handler unless KERNEL_TYPE is KERNEL_TYPE_NONE.
6219         (map_func): Search for an empty slot till I is less than
6220         DRIVE_MAP_SIZE.
6221         Check if I is equal to DRIVE_MAP_SIZE instead of if I is greater
6222         than DRIVE_MAP_SIZE.
6223         (keycode_func): New function.
6224         (builtin_keycode): New variable.
6225         (builtin_table): Added a pointer to BUILTIN_KEYCODE.
6226         * grub/asmstub.c (set_int15_handler): New function.
6227         (unset_int15_handler): Likewise.
6228         (key_map): New variable.
6230 1999-10-23  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6232         From Michael Hohmuth <hohmuth@innocent.com>:
6233         * acconfig.h (HAVE_USCORE_USCORE_BSS_START_SYMBOL): Added the
6234         `undef' entry.
6235         (HAVE_EDATA_SYMBOL): Likewise.
6236         (HAVE_USCORE_EDATA_SYMBOL): Likewise.
6237         * acinclude.m4 (grub_CHECK_USCORE_USCORE_BSS_START_SYMBOL): New
6238         function.
6239         (grub_CHECK_EDATA_SYMBOL): Likewise.
6240         (grub_CHECK_USCORE_EDATA_SYMBOL): Likewise.
6241         * configure.in: Check for __bss, edata and _edata.
6242         * netboot/Makefile.am (DRIVERS): Deleted ns8390.c and ns8390.h.
6243         (libdrivers_a_LIBADD): New variable.
6244         ($(libdrivers_a_LIBADD)): New target.
6245         (nepci_o_CFLAGS): New variable.
6246         (ne_o_CFLAGS): Likewise.
6247         (wd_o_CFLAGS): Likewise.
6248         (t503_o_CFLAGS): Likewise.
6249         * netboot/fsys_tftp.c (tftp_close): New function.
6250         * stage2/boot.c (load_image): Call grub_close before return.
6251         (load_initrd): Likewise.
6252         (load_module): Likewise.
6253         * stage2/builtins.c (cat_func): Likewise.
6254         (chainloader_func): Likewise.
6255         (configfile_func): Likewise.
6256         (embed_func): Likewise.
6257         (find_func): Likewise.
6258         (install_func): Set IS_OPEN to the value returned by grub_open.
6259         If IS_OPEN is non-zero, call grub_close before return.
6260         (setup_func): Call grub_close after grub_open.
6261         (testload): Call grub_close before return.
6262         * stage2/disk_io.c (fsys_table): Add the `close' member into
6263         each of the entries. For TFTP, tftp_close is added, and for the
6264         rest, NULL is added.
6265         (grub_read): "|" -> "||".
6266         (grub_close): New function.
6267         * stage2/filesys.h [FSYS_TFTP] (tftp_close): Declared.
6268         (struct fsys_entry): Added close_func.
6269         * stage2/shared.h (grub_close): Declared.
6270         * stage2/stage1_5.c (cmain): Call grub_close after grub_open.
6271         * stage2/stage2.c (cmain): Clear ERRNUM after calling
6272         find_command to just ignore the error code.
6273         Call grub_close after loading the configuration file.
6275         * stage2/asm.S (main): Clean out the bss.
6277 1999-10-23  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6279         * docs/new-grub.texi: Updated.
6280         * docs/user-ref.texi: Likewise.
6281         * docs/tutorial.texi: Likewise.
6282         * docs/prog-ref.texi: Likewise.
6283         * docs/appendices.texi: Likewise.
6285 1999-10-22  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6287         * docs/prog-ref.texi: New file.
6288         * docs/appendices.texi: Likewise.
6289         * docs/Makefile.am (UNFINISHED_MANUALS): Added prog-ref.texi and
6290         appendices.texi.
6292 1999-10-22  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6294         * docs/user-ref.texi: New file.
6295         * docs/Makefile.am (UNFINISHED_MANUALS): Added user-red.texi.
6297 1999-10-21  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6299         Add BIOS drive remapping support for chain-loading some foolish
6300         operating systems.
6302         * stage2/builtins.c (bios_drive_map): New variable.
6303         (boot_func): If KERNEL_TYPE is KERNEL_TYPE_CHAINLOADER, check
6304         if BIOS_DRIVE_MAP contains meaningful values. If so, search for
6305         SAVED_DRIVE in BIOS_DRIVE_MAP and exchange SAVED_DRIVE with the
6306         mapped drive if found. And then call set_int13_handler.
6307         (map_func): New function.
6308         (builtin_map): New variable.
6309         (builtin_table): Added a pointer to BUILTIN_MAP.
6310         * stage2/asm.S (ABS): New macro.
6311         [!STAGE1_5] (set_int13_handler): New function.
6312         [!STAGE1_5] (int13_handler): New interrupt handler for the real
6313         mode.
6314         [!STAGE1_5] (drive_map): New variable.
6315         [!STAGE1_5] (int13_handler_end): New label used for just
6316         computing the end address of int13_handler.
6317         * stage2/shared.h (DRIVE_MAP_SIZE): New macro.
6318         (set_int13_handler): Declared.
6319         * grub/asmstub.c (set_int13_handler): New function. Do nothing.
6321 1999-10-20  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6323         * stage2/builtins.c (find_func): Print only the device names.
6324         * docs/tutorial.texi: New file.
6325         * docs/Makefile.am (UNFINISHED_MANUALS): Added tutorial.texi.
6326         (%.c.texi): Use $(SHELL) instead of /bin/sh.
6327         (%.h.texi): Likewise.
6328         (%.S.texi): Likewise.
6330 1999-10-20  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6332         * stage2/char_io.c (memcheck): Fix the checks: "<=" -> "<".
6333         Reported by Mike Hicks <hick0088@umn.edu>.
6335 1999-10-19  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6337         * stage2/builtins.c (find_func): New function.
6338         (builtin_find): New variable.
6339         (hide_func): Save SAVED_DRIVE and SAVED_PARTITION to TMP_DRIVE
6340         and TMP_PARTITION, respectively, and resotre them before return.
6341         (unhide_func): Likewise.
6342         (setup_func): Likewise. And set SAVED_DRIVE and SAVED_PARTITION
6343         instead of CURRENT_DRIVE and CURRENT_PARTITION to IMAGE_DRIVE
6344         and IMAGE_PARTITION before running install_func.
6345         (builtin_table): Added a pointer to BUILTIN_FIND.
6347 1999-10-19  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6349         * docs/Makefile.am (UNFINISHED_MANUALS): New variable.
6350         (EXTRA_DIST): Added $(UNFINISHED_MANUALS).
6351         * docs/new-grub.texi: New file.
6353 1999-10-19  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6355         * docs/Makefile.am (man_MANS): Added mbchk.1.
6356         [MAINTAINER_MODE] (mbchk.1): New target.
6357         * docs/mbchk.1: New file. Generated by help2man.
6359 1999-10-18  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6361         * Makefile.am (SUBDIRS): Added util.
6362         * configure.in: Output util/Makefile.
6363         * util/Makefile.am: New file.
6364         * util/mbchk.c: Likewise.
6365         * util/Makefile.in: Likewise. Generated by automake.
6367 1999-10-17  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6369         * docs/Makefile.am (.texi): Canceled because the dependecies can
6370         be circulated.
6371         * stage2/builtins.c (embed_func): Set BUF_TRACK to -1 before
6372         writing the Stage 1.5 to the disk to clear the cache.
6374 1999-10-17  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6376         * stage2/boot.c (load_initrd): Change types of *RAMDISK and
6377         MOVETO to unsigned long.
6378         Apply the macro RAW_ADDR to MOVETO.
6380 1999-10-16  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6382         * docs/multiboot.texi: Include the example source files of a
6383         Multiboot kernel.
6384         * docs/src2texi: New file.
6385         * docs/boot.S: Likewise.
6386         * docs/multiboot.h: Likewise.
6387         * docs/kernel.c: Likewise.
6388         * docs/boot.S.texi: Likewise.
6389         * docs/multiboot.h.texi: Likewise.
6390         * docs/kernel.c.texi: Likewise.
6391         * docs/Makefile.am (EXAMPLES): New varilable.
6392         (multiboot_TEXINFOS): Likewise.
6393         (SRC2TEXI): Likewise.
6394         (noinst_SCRIPTS): Added $(SRC2TEXI).
6395         (EXTRA_DIST): Added $(EXAMPLES) and $(multiboot_TEXINFOS).
6396         (%.c.texi): New target.
6397         (%.h.texi): Likewise.
6398         (%.S.texi): Likewise.
6400 1999-09-22  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6402         * multiboot.texi (BIOS device mapping techniques): New section.
6403         Stolen from bios_mapping.txt in grub-0.5.
6404         (Data comparison technique): New subsection.
6405         (I/O restriction technique): Likewise.
6406         (Example OS code): Rewrited from scratch.
6408 1999-09-21  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6410         * multiboot.texi: Rename Multiboot Standard to Multiboot
6411         Specification and upgrade the version to 0.7. Many cleanups
6412         are done.
6414 1999-10-15  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6416         * stage2/builtins.c (setup_func): Save CURRENT_DRIVE and
6417         CURRENT_PARTITION into IMAGE_DRIVE and IMAGE_PARTITION
6418         respectively, and restore them before running install_func.
6419         Use DEVICE instead of BUFFER to store the device name.
6420         Change each type of STAGE1, STAGE2 and CONFIG_FILE to an array
6421         of char.
6422         If installing the Stage 1 into a MBR, embed the Stage 1.5 in the
6423         sectors right after it.
6424         Return the result of install_func instead of zero.
6426 1999-10-14  Pavel Roskin  <pavel_roskin@geocities.com>
6428         * configure.in: Check for opendisk in libutil.
6429         * grub/asmstub.c [__FreeBSD__ || __NetBSD__]: Include
6430         <sys/ioctl.h>.
6431         [HAVE_OPENDISK]: Include <util.h>.
6432         [__NetBSD__] (get_floppy_disk_name): Added support for NetBSD.
6433         [__NetBSD__ && HAVE_OPENDISK] (get_ide_disk_name): Likewise.
6434         [__NetBSD__ && HAVE_OPENDISK] (get_scsi_disk_name): Likewise.
6435         (get_drive_geometry) [__NetBSD__]: Use for NetBSD the same ioctl
6436         as for FreeBSD.
6438 1999-10-13  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6440         * grub/asmstub.c (assign_device_name): If DEVICE is NULL, set
6441         DEVICE_MAP[DRIVE] to NULL.
6442         (get_diskinfo): If open or read fails, call assign_device_name
6443         to disable accessing the drive DRIVE.
6444         (grub_stage2): The device mapping routine is moved to ...
6445         (init_device_map): ... here. This new function also reads/writes
6446         a device map file. If DEVICE_MAP_FILE already exists, then use
6447         the data in it instead of probing devices. Otherwise, guess the
6448         map between BIOS drives and OS devices, and write it to the file
6449         DEVICE_MAP_FILE if it can be opened.
6450         * grub/main.c (device_map_file): New variable.
6451         (default_device_map_file): Likewise.
6452         (OPT_DEVICE_MAP): New macro.
6453         (longopts): Added an entry for "device-map".
6454         (usage): Print the usage about --device-map as well.
6455         (main): Set DEFAULT_DEVICE_MAP_FILE to DEVICE_MAP_FILE. If
6456         OPT_DEVICE_MAP is found, set DEVICE_MAP_FILE to a duplicated
6457         string of OPTARG.
6458         * stage2/shared.h [GRUB_UTIL] (device_map_file): Declared.
6459         * docs/grub.8: Regenerated.
6461 1999-10-13  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6463         * stage2/builtins.c (color_func): Do not set NORMAL_COLOR or
6464         HIGHLIGHT_COLOR directly, but use NEW_NORMAL_COLOR and
6465         NEW_HIGHLIGHT_COLOR as temporary storages instead.
6466         New internal function `color_number' is used to convert a
6467         symbolic color representation into a color number.
6468         Try color_number at first, and if fails, then try
6469         safe_parse_maxint for each of NORMAL and HIGHLIGHT.
6470         (builtin_color): The long doc does not describe the raw number
6471         syntax but the symbolic color name syntax.
6472         * docs/grub.texi (Commands): Adjusted to the long doc of
6473         BUILTIN_COLOR.
6474         * docs/menu.lst: Add examples of "fallback" and "color".
6476 1999-10-13  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6478         * stage2/char_io.c [!STAGE1_5] (get_cmdline): If C is a newline
6479         or a return, then set LPOS to LLEN and call the function
6480         cl_setcpos.
6481         [!STAGE1_5] (grub_strncat): New function.
6482         * stage2/builtins.c (embed_func): New function.
6483         (builtin_embed): New varilable.
6484         (setup_func): New function.
6485         (builtin_setup): New varilable.
6486         (builtin_table): Added a pointer to BUILTIN_EMBED and a pointer
6487         to BUILTIN_SETUP.
6488         * stage2/shared.h (grub_strncat): Declared.
6490         * stage2/Makefile.am (stage2_size.h): ../stage2/stage2 ->
6491         pre_stage2. Reported by Pavel Roskin.
6493 1999-10-12  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6495         From Pavel Roskin:
6496         * acinclude.m4 (grub_PROG_OBJCOPY_ABSOLUTE): main -> cmain.
6497         * stage2/boot.c (load_image): Only CUR_ADDR, not ENTRY_ADDR
6498         should be 1M-aligned for NetBSD. Don't align symbol table on 4k
6499         boundaries if the kernel doesn't require it.
6501 1999-10-10  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6503         * stage2/asm.S [!STAGE1_5] (start): New label to force ld quiet.
6504         [!STAGE1_5] (_start): Likewise.
6505         * stage2/builtins.c (install_func): Rewritten heavily almost
6506         from scratch. As the blocklist was moved to the first sector of
6507         Stage 2, always write sectors of Stage 2 to the disk.
6508         * stage1/stage1.h (STAGE1_STAGE2_SECTOR): 0x40 -> 0x41.
6509         (STAGE1_STAGE2_ADDRESS): 0x44 -> 0x45.
6510         (STAGE1_STAGE2_SEGMENT): 0x46 -> 0x47.
6511         (STAGE1_BOOT_DRIVE): 0x3f -> 0x40.
6513 1999-10-09  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6515         Stage1 supports both the CHS mode and the LBA mode.
6517         * stage1/Makefile.am (nodist_pkgdata_DATA): Removed stage1_lba.
6518         (BUILT_SOURCES): Deleted.
6519         (CLEANFILES): Likewise.
6520         (noinst_PROGRAMS): Removed stage1_lba.exec.
6521         (stage1_exec_SOURCES): Removed stage2_size.h.
6522         (stage2_size.h): Deleted.
6523         (stage1_lba_exec_SOURCES): Likewise.
6524         * stage1/stage1.S: Rewritten from scratch.
6525         * stage1/stage1_lba.S: Deleted.
6526         * stage1/stage1.h (COMPAT_VERSION_MAJOR): Set to 3.
6527         (COMPAT_VERSION_MINOR): Set to 0.
6528         (STAGE1_VER_MAJ_OFFS): Set to 0x3e.
6529         (STAGE1_FIRSTLIST): Deleted.
6530         (STAGE1_INSTALLSEG): Likewise.
6531         (STAGE1_INSTALLADDR): Likewise.
6532         (STAGE1_MINPARAMSIZE): Likewise.
6533         (STAGE1_LISTSIZE): Likewise.
6534         (STAGE1_ID_OFFSET): Likewise.
6535         (STAGE1_ID_CHS): Likewise.
6536         (STAGE1_ID_LBA): Likewise.
6537         (STAGE1_STAGE2_SECTOR): New macro.
6538         (STAGE1_STAGE2_ADDRESS): Likewise.
6539         (STAGE1_STAGE2_SEGMENT): Likewise.
6540         (STAGE1_BOOT_DRIVE): Likewise.
6541         * stage2/start.S: New file.
6542         * stage2/Makefile.am (noinst_DATA): New variable.
6543         (CLEANFILES): Set to "$(nodist_pkgdata_DATA) $(noinst_DATA)
6544         $(BUILT_SOURCES)".
6545         (noinst_PROGRAMS): Removed stage2.exec, and added start.exec and
6546         pre_stage2.exec.
6547         (STAGE2_LINK): Deleted.
6548         (PRE_STAGE2_LINK): New variable.
6549         (START_LINK): Likewise.
6550         (stage2_exec_SOURCES): Deleted.
6551         (stage2_exec_CFLAGS): Likewise.
6552         (stage2_exec_LDFLAGS): Likewise.
6553         [NETBOOT_SUPPORT] (stage2_exec_LDADD): Likewise.
6554         (pre_stage2_exec_SOURCES): New variable.
6555         (pre_stage2_exec_CFLAGS): Likewise.
6556         (pre_stage2_exec_LDFLAGS): Likewise.
6557         [NETBOOT_SUPPORT] (pre_stage2_exec_LDADD): Likewise.
6558         (BUILT_SOURCES): Likewise.
6559         (start_exec_SOURCES): Likewise.
6560         (start_exec_CFLAGS): Likewise.
6561         (start_exec_LDFLAGS): Likewise.
6562         (start_exec_DEPENDENCIES): Likewise.
6563         (stage2_size.h): New rule.
6564         (stage2): Likewise.
6565         (e2fs_stage1_5_exec_SOURCES): Added start.S.
6566         (fat_stage1_5_exec_SOURCES): Likewise.
6567         (ffs_stage1_5_exec_SOURCES): Likewise.
6568         (minix_stage1_5_exec_SOURCES): Likewise.
6569         * stage2/asm.S (start): Renamed to ...
6570         (main): ... this.
6571         [STAGE1_5] (main): Jump to (codestart - EXT_C(main) + 0x2200)
6572         instead of (codestart - EXT_C(start) + 0x2000).
6573         [!STAGE1_5] (main): Jump to (codestart - EXT_C(main) + 0x8200)
6574         instead of (codestart - EXT_C(start) + 0x8000).
6575         [STAGE1_5] (chain_stage2): Use main instead of start.
6576         * stage2/shared.h (BOOTSEC_LISTSIZE): New macro.
6577         * stage2/stage1_5.c: Change the second argument for chain_stage2
6578         to 0x8200.
6580 1999-10-08  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6582         * configure.in (--with-binutils): New option to specify a
6583         directory to find binutils.
6584         (CFLAGS): If WITH_BINUTILS is not empty, added the option `-B'.
6585         (LD): Do not check for this. We don't use ld directly anyway.
6586         (RANLIB): If WITH_BINUTILS is not empty, search the directory
6587         WITH_BINUTILS first.
6588         (OBJCOPY): Likewise.
6589         * acinclude.m4 (grub_ASM_USCORE): Add CFLAGS into
6590         AC_TRY_COMMAND.
6591         (grub_ASM_ADDR32): Likewise.
6592         (grub_ASM_PREFIX_REQUIREMENT): Likewise.
6593         (grub_PROG_OBJCOPY_ABSOLUTE): Use CC instead of LD.
6595 1999-10-04  Pavel Roskin  <pavel_roskin@geocities.com>
6597         * stage2/freebsd.h (struct bootinfo): New member, bi_bios_dev.
6598         * stage2/boot.c (bsd_boot): Set BI.BI_BIOS_DEV to SAVED_DRIVE.
6600 1999-10-04  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6602         From Pavel Roskin:
6603         * docs/grub.texi: Fix typos.
6604         * stage2/builtins.c (install_func): Reformat the warning message
6605         about the option `d'.
6607 1999-10-03  Gordon Matzigkeit  <gord@fig.org>
6609         * stage2/builtins.c (install_func): Fix check for the Stage 2 id.
6610         From Pavel Roskin.
6612         * debian/Makefile.am (EXTRA_DIST): Add postinst and prerm.
6614 1999-10-03  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6616         * stage2/builtins.c (boot_func): Pass MBI.CMDLINE instead of ARG
6617         to bsd_boot.
6619 1999-10-03  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6621         * stage2/gunzip.c (gunzip_test_header): Check if CURRENT_DRIVE
6622         is 0x20 instead of if the fs type is TFTP, because GRUB does not
6623         mount CURRENT_DRIVE when using a block file. Reported by Pavel
6624         Roskin.
6626 1999-10-02  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6628         * stage2/builtins.c (cat_func): Do not read the whole of a file
6629         at one time. Instead, repeat reading one byte and print it on
6630         the screen.
6631         * docs/grub.texi (Command line): List the available key
6632         bindings.
6633         (Commands): Added descriptions about "geometry", "device" and
6634         "cat".
6636 1999-10-02  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6638         Now it is possible to build the grub shell with old BSD curses.
6640         * stage2/shared.h [!A_NORMAL] (A_NORMAL): Set to zero.
6641         [!A_REVERSE && A_STANDOUT] (A_REVERSE): Set to A_STANDOUT.
6642         [!A_REVERSE && !A_STANDOUT] (A_REVERSE): Set to zero.
6644 1999-09-30  Pavel Roskin  <pavel_roskin@geocities.com>
6646         * stage2/disk_io.c (set_bootdev): Mask 0x7F instead of 0x79 of
6647         the device number.
6649 1999-10-01  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6651         * configure.in (--without-curses): New option. If WITH_CURSES is
6652         no, do not check for curses.
6654         * stage2/disk_io.c (set_device) [STAGE1_5]: Change the type of
6655         DEV to unsigned long.
6656         * stage2/builtins.c (install_func): Always check for the Stage 2
6657         id in FILE.
6658         Reported by Pavel Roskin.
6660 1999-09-30  Gordon Matzigkeit  <gord@fig.org>
6662         * debian/postinst: New file to call install-info.
6663         * debian/prerm: Likewise.
6664         * debian/rules (binary-arch): Add postinst and prerm, compress the
6665         info files, and call dpkg-shlibdeps.
6667         * stage2/cmdline.c (skip_to): Restructure, and count tabs as
6668         whitespace.
6669         (find_command): Likewise.
6671 1999-09-30  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6673         * grub/getopt.c: Moved to ...
6674         * lib/getopt.c: ... here.
6675         * grub/getopt1.c: Moved to ...
6676         * lib/getopt1.c: ... here.
6677         * grub/getopt.h: Moved to ...
6678         * lib/getopt.h: ... here.
6679         * grub/Makefile.am (AM_CFLAGS): Added -I$(top_srcdir)/lib.
6680         (grub_LDADD): Added ../lib/libcommon.a.
6681         * lib/Makefile.am: New file.
6682         * Makefile.am (SUBDIRS): Added lib.
6683         * configure.in: lib/Makefile is added into the arguments for
6684         AC_OUTPUT.
6686 1999-09-30  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6688         From Pavel Roskin:
6689         * stage2/defs.h (time_t): Renamed to ...
6690         (mach_time_t): ... this.
6691         (daddr_t): Renamed to ...
6692         (mach_daddr_t): ... this.
6693         (uid_t): Renamed to ...
6694         (mach_uid_t): ... this.
6695         (gid_t): Renamed to ...
6696         (mach_gid_t): ... this.
6697         (ino_t): Renamed to ...
6698         (mach_ino_t): ... this.
6699         * stage2/disk_inode.h (FFS_MAX_FASTLINK_SIZE): Use mach_daddr_t
6700         instead of daddr_t.
6701         (struct icommon): Use mach_uid_t, mach_gid_t, mach_time_t and
6702         mach_daddr_t, instead of uid_t, gid_t, time_t and daddr_t.
6703         * stage2/fs.h (BBLOCK): Use mach_daddr_t instead of addr_t.
6704         (SBLOCK): Likewise.
6705         (ROOTINO): Use mach_ino_t instead of ino_t.
6706         (struct fs): Use mach_daddr_t and mach_time_t instead of daddr_t
6707         and time_t.
6708         (struct cg): Use mach_time_t instead of time_t.
6709         (struct ocg): Likewise.
6710         (cgbase): Use mach_daddr_t instead of daddr_t.
6711         (itod): Likewise.
6713 1999-09-30  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6715         * acinclude.m4 (grub_CHECK_START_SYMBOL): Use AC_TRY_LINK
6716         instead of AC_TRY_COMMAND.
6717         (grub_CHECK_USCORE_START_SYMBOL): Likewise.
6718         (grub_CHECK_END_SYMBOL): Likewise.
6719         (grub_CHECK_USCORE_END_SYMBOL): Likewise.
6721         * stage2/disk_io.c (set_device) [!STAGE1_5]: Use RESULT instead
6722         of RETVAL to check if the analysis succeeds.
6724 1999-09-29  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6726         * stage2/builtins.c (install_func): If the Stage 2 id in FILE is
6727         not STAGE2_ID_STAGE2, set IS_STAGE1_5 to 1, otherwise to 0.
6728         Use CONFIG_FILE_LOCATION to point to the location of the name of
6729         a configuration file in Stage 2.
6730         If the option `p' is present and IS_STAGE1_5 is non-zero, reset
6731         the device information in CONFIG_FILE_LOCATION.
6732         (cat_func): New function.
6733         (builtin_cat): New variable.
6734         (builtin_table): Added a pointer to BUILTIN_CAT.
6735         (geometry_func): Call real_open_partition with the argument 1
6736         after printing out the drive information.
6737         * stage2/disk_io.c (real_open_partition): Made global.
6738         [!STAGE1_5] (print_completions): In the command completion and
6739         the filename completion, print a newline at the last if
6740         IS_COMPLETION is zero.
6741         * stage2/shared.h (real_open_partition): Declared.
6742         * stage2/fsys_ext2fs.c (ext2fs_dir): Do not print a newline even
6743         if PRINT_POSSIBILITIES is less than zero.
6744         * stage2/fsys_ffs.c (ffs_dir): Likewise.
6745         * stage2/fsys_fat.c (fat_dir): Likewise.
6746         * stage2/fsys_minix.c (minix_dir): Likewise.
6748 1999-09-29  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6750         * stage1/stage1.S [!FFS_STAGE1_5] (blocklist_default_len): Do
6751         not divide the size by 512, but shift the size to the right by
6752         9 instead, because of a binutils-2.9.1.0.x bug.
6753         * stage1/stage1_lba.S [!FFS_STAGE1_5] (blocklist_default_len):
6754         Likewise.
6755         * stage2/builtins.c (install_func): When installing Stage 1.5,
6756         if set_device returns NULL, then set CURRENT_DRIVE to 0xFF and
6757         CONFIG_FILE to PTR.
6759 1999-09-26  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6761         * stage2/char_io.c [!STAGE1_5] (get_cmdline): In cl_insert, call
6762         cl_setcpos before printing BUF, even if LPOS is equal to LLEN.
6763         In the completion, if RET is zero, do not call cl_init.
6764         * stage2/disk_io.c [!STAGE1_5] (print_completions): In the
6765         filename completion, if UNIQUE is 1, check if UNIQUE_STRING is a
6766         directory or not. If so, append '/' to BUF.
6767         In the partition completion, if IS_COMPLETION is non-zero and
6768         *UNIQUE_STRING is not NUL, copy UNIQUE_STRING to PTR. Do not
6769         append '/'.
6770         (real_open_partition) [!STAGE1_5]: If DO_COMPRESSION is non-zero,
6771         call print_a_completion.
6772         (check_BSD_parts) [!STAGE1_5]: Likewise.
6773         [!STAGE1_5] (print_a_completion): Ignore NAME if it is "." or
6774         "..".
6776 1999-09-25  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6778         * acinclude.m4 (grub_CHECK_USCORE_END_SYMBOL): Do not call
6779         AC_DEFINE within AC_CACHE_VAL. Call it after AC_CACHE_VAL.
6780         * stage2/Makefile.am (STAGE1_5_COMPILE): Do not define
6781         CONFIG_FILE_ASM.
6782         * stage2/asm.S (config_file) [STAGE1_5]: Set the first 4 bytes
6783         to 0xffffffff and the following to "/boot/grub/stage2".
6784         (config_file) [!STAGE1_5]: Set to "/boot/grub/menu.lst".
6785         * stage2/builtins.c (install_func): Read a Stage 2 before
6786         handling the `p' option.
6787         If the `configfile' option is present and FILE is a Stage 2,
6788         translate the device name to the internal device representation
6789         and copy the result to STR.
6790         * stage2/disk_io.c [STAGE1_5] (sane_partition): Eliminated.
6791         [STAGE1_5] (incomplete): Likewise.
6792         [STAGE1_5] (disk_choice): Likewise.
6793         [STAGE1_5] (part_choice): Likewise.
6794         (set_device) [STAGE1_5]: Assume that the first 4 bytes of DEVICE
6795         is a device number. Set DRIVE to the forth byte of DEV and
6796         PARTITION to the first 3 bytes of DEV. If DRIVE is 0xFF, set
6797         CURRENT_DRIVE and CURRENT_PARTITION to SAVED_DRIVE and
6798         SAVED_PARTITION, respectively. Otherwise set to DRIVE and
6799         PARTITION, respectively.
6800         (setup_part) [STAGE1_5]: Always call set_device.
6802 1999-09-24  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6804         * acinclude.m4 (grub_CHECK_END_SYMBOL): Add a missing
6805         double-quote. Reported by Johannes Kroeger
6806         <hanne@squirrel.owl.de>.
6808 1999-09-14  Gordon Matzigkeit  <gord@fig.org>
6810         * stage1/stage1.S (blocklist_default_start): New label for default
6811         blocklist start sector.
6812         (blocklist_default_len): New label for default blocklist length.
6813         (blocklist_default_seg): New label for default blocklist segment.
6814         * stage1/stage1_lba.S (blocklist_default_start): Likewise.
6815         (blocklist_default_len): Likewise.
6816         (blocklist_default_seg): Likewise.
6818 1999-09-23  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6820         * acinclude.m4 (grub_ASM_ADDR32): First, create a template
6821         source file "conftest.s.in", and then, replace @ADDR32@ with
6822         "addr32" if GRUB_CV_ASM_PREFIX_REQUIREMENT is yes, otherwise,
6823         replace it with "addr32;". Reported by John Tobey
6824         <spam@john-edwin-tobey.org>.
6826 1999-09-23  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6828         * stage2/builtins.c (debug_fs_print_func): Renamed to ...
6829         (disk_read_print_func): ... this.
6830         (fstest_func): Use DISK_READ_HOOK instead of DEBUG_FS.
6831         (install_func): Rename debug_fs_savesect_func to
6832         disk_read_savesect_func.
6833         Rename debug_fs_blocklist_func to disk_read_blocklist_func.
6834         Use DISK_READ_HOOK instead of DEBUG_FS.
6835         (testload_func): Use DISK_READ_HOOK instead of DEBUG_FS.
6836         * stage2/disk_io.c [!STAGE1_5] (debug_fs): Renamed to ...
6837         [!STAGE1_5] (disk_read_hook): ... this.
6838         [!STAGE1_5] (debug_fs_func): Renamed to ...
6839         [!STAGE1_5] (disk_read_func): ... this.
6840         (rawread) [!STAGE1_5]: Use DISK_READ_HOOK and DISK_READ_FUNC
6841         instead of DEBUG_FS and DEBUG_FS_FUNC.
6842         (grub_read) [!STAGE1_5]: Likewise.
6843         (devread) [!STAGE1_5]: Use DISK_READ_HOOK instead of DEBUG_FS.
6844         * stage2/fsys_ext2fs.c (ext2fs_read) [!STAGE1_5]: Use
6845         DISK_READ_HOOK and DISK_READ_FUNC instead of DEBUG_FS and
6846         DEBUG_FS_FUNC.
6847         * stage2/fsys_ffs.c (ffs_read) [!STAGE1_5]: Likewise.
6848         * stage2/fsys_minix.c (minix_read) [!STAGE1_5]: Likewise.
6849         * stage2/shared.h [!STAGE1_5] (debug_fs): Renamed to ...
6850         [!STAGE1_5] (disk_read_hook): ... this.
6851         [!STAGE1_5] (debug_fs_func): Renamed to ...
6852         [!STAGE1_5] (disk_read_func): ... this.
6853         * docs/grub.texi: Likewise, replace debug_fs and debug_fs_func
6854         with disk_read_hook and disk_read_func, respectively.
6856 1999-09-23  Pavel Roskin  <pavel_roskin@geocities.com>
6858         * stage2/builtins.c (install_func): New local function,
6859         debug_fs_savesect_func. Use debug_fs_savesect_func to determine
6860         the first sector of Stage2. Write Stage 1 after patching Stage
6861         2.
6863 1999-09-22  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6865         * acinclude.m4 (grub_ASM_USCORE): Do not define HAVE_ASM_USCORE
6866         within AC_CACHE_VAL. Define it after AC_CACHE_VAL if
6867         GRUB_CV_ASM_USCORE is yes.
6869 1999-09-20  Edmund GRIMLEY EVANS  <edmundo@rano.demon.co.uk>
6871         * netboot/3c59x.c: INCLUDE_3c59x is replaced by INCLUDE_3C59X
6872         throughout.
6873         * netboot/config.c: Likewise.
6874         * netboot/io.h (__INS): New macro.
6875         (__OUTS): Likewise.
6876         (outl): Likewise.
6877         (inl): Likewise.
6878         (outl_p): Likewise.
6879         (inl_p): Likewise.
6880         Call __INS with the argument `b', with `w' and with `l' to
6881         define insb, insw and insl, respectively. Likewise, Call __OUTS
6882         with `b', with `w' and with `l' to define outsb, outw and outl,
6883         respectively.
6884         * netboot/pci.h (PCI_VENDOR_ID_VORTEX): New macro.
6885         (PCI_DEVICE_ID_VORTEX_3c595): Likewise. Defined as a random
6886         value.
6888 1999-09-20  Edward Killips  <ekillips@triton.net>
6890         * stage2/disk_io.c (set_partition_hidden_flag): Set/clear the
6891         hidden flag, whether the hidden flag is set or not.
6893 1999-09-21  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6895         * stage2/builtins.c (install_func): Do not set DEBUG_FS at the
6896         first read. Set it to DEBUG_FS_BLOCKLIST_FUNC when reading the
6897         whole of Stage 2. Set FILEPOS to zero at the same time to read
6898         from the beginning of Stage 2. Reported by Pavel Roskin.
6900 1999-09-20  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6902         The argument ADDR for the command install is now optional.
6904         * stage2/builtins.c (install_func): If parsing ADDR fails, set
6905         INSTALLADDR to zero and set PTR to ADDR.
6906         If INSTALLADDR is zero after parsing the command-line, check if
6907         the Stage 2 id is STAGE2_ID_STAGE2. If so, set INSTALLADDR to
6908         0x8000, otherwise set it to 0x2000.
6909         Set the install address in the Stage 1 after the automatic
6910         determination is completed.
6911         (builtin_install): Say that ADDR is optional in the help
6912         message.
6913         * docs/grub.texi: Synchronize the description about install to
6914         builtins.c. Remove explicit address arguments from all the
6915         examples. Add a description about help.
6916         * docs/menu.lst: Do not specify the address argument for
6917         install.
6919 1999-09-19  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6921         The completion code is heavily modified.
6923         * stage2/char_io.c [!STAGE1_5] (get_cmdline): In the completion
6924         code, use COMPLETION_BUFFER to get the completion instead of
6925         writing to BUF directly.
6926         Save the position of a possible equal character after a command
6927         in EQUAL_POS and replace the equal character with a space
6928         temporarily for the code simplicity.
6929         At first, just get completions, and, if there is more than one
6930         completions, then print the list of the completions.
6931         * stage2/disk_io.c [!STAGE1_5] (do_completion): New variable.
6932         [!STAGE1_5] (unique): Moved the definition near the beginning.
6933         [!STAGE1_5] (unique_string): Likewise. And changed the type to
6934         char *.
6935         (check_BSD_parts) [!STAGE1_5]: If DO_COMPLETION is non-zero, do
6936         not print anything.
6937         (real_open_partition) [!STAGE1_5]: Likewise.
6938         [!STAGE1_5] (print_fsys_type): Likewise.
6939         [!STAGE1_5] (print_a_completion): The argument FILENAME is
6940         renamed to NAME.
6941         If DO_COMPLETION is non-zero, get the unique part from NAME and
6942         set UNIQUE_STRING to it.
6943         If DO_COMPLETION is zero, just print NAME.
6944         Do not call printf unconditionally.
6945         [!STAGE1_5] (print_completions): Accept two arguements
6946         IS_FILENAME and IS_COMPLETION instead of FILENAME.
6947         Set UNIQUE_STRING to UNIQUE_BUF.
6948         Set DO_COMPLETION to IS_COMPLETION and set it to zero before
6949         returning.
6950         If IS_FILENAME is zero, then complete builtin commands and
6951         return UNIQUE - 1.
6952         Use BUF instead of FILENAME.
6953         If IS_COMPLETION is non-zero, do not print anything.
6954         Copy UNIQUE_STRING to PTR only if IS_COMPLETION and
6955         *UNIQUE_STRING are non-zero.
6956         * stage2/shared.h (COMPLETION_BUF): New macro.
6957         (COMPLETION_BUFLEN): Likewise.
6958         (UNIQUE_BUF): Likewise.
6959         (UNIQUE_BUFLEN): Likewise.
6960         (MENU_BUF): Set to UNIQUE_BUF + UNIQUE_BUFLEN.
6961         (MENU_BUFLEN): Set to 0x8000 + PASSWORD_BUF - UNIQUE_BUF.
6962         (print_completions): Adjusted to the definition.
6964 1999-09-19  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
6966         * acinclude.m4 (grub_ASM_PREFIX_REQUIREMENT): Do not call
6967         AC_DEFINE_UNQUOTEs within AC_CACHE_VAL. Define ADDR32 and DATA32
6968         after it.
6969         (grub_CHECK_START_SYMBOL): Do not call AC_DEFINE within
6970         AC_CACHE_VAL. Define HAVE_START_SYMBOL after it.
6971         (grub_CHECK_USCORE_START_SYMBOL): Do not call AC_DEFINE within
6972         AC_CACHE_VAL. Define HAVE_USCORE_START_SYMBOL after it.
6973         (grub_CHECK_END_SYMBOL): Do not call AC_DEFINE within
6974         AC_CACHE_VAL. Define HAVE_END_SYMBOL after it.
6975         (grub_CHECK_USCORE_END_SYMBOL): Do not call AC_DEFINE within
6976         AC_CACHE_VAL. Define HAVE_USCORE_END_SYMBOL after it.
6978 1999-09-17  Pavel Roskin  <pavel_roskin@geocities.com>
6980         * acconfig.h (ADDR32): Removed. This entry is automatically
6981         created by autoheader.
6982         (DATA32): Likewise.
6983         * acinclude.m4 (grub_ASM_ADD32): Use ADDR32 instead of addr32.
6984         Require grub_ASM_PREFIX_REQUIREMENT.
6985         (grub_ASM_PREFIX_REQUIREMENT): Define ADDR32 and DATA32.
6986         * configure.in: Call grub_ASM_PREFIX_REQUIREMENT before
6987         grub_ASM_ADDR32. Do not define ADDR32 and DATA32.
6988         * stage1/stage1.S (after_BPB): Use ABS(firstlist) instead of
6989         firstlist.
6990         (MSG): Use ABS(x) instead of x.
6991         (probe_loop): Use the macro MSG for fd_probe_error_string.
6992         * stage1/stage1_lba.S (after_BPB): Use ABS(firstlist) instead of
6993         firstlist.
6994         (MSG): Use ABS(x) instead of x.
6995         * stage2/asm.S (putchar): Renamed to ...
6996         (grub_putchar): ... this.
6998 1999-09-18  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7000         * stage2/gunzip.c (reset_linalloc): Use the macro RAW_ADDR
7001         before setting LINALLOC_TOPADDR.
7002         * stage2/shared.h [!GRUB_UTIL] (RAW_ADDR): Added parenthesises
7003         to avoid a gcc warning.
7004         [!GRUB_UTIL] (RAW_SEG): Likewise.
7006 1999-09-18  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7008         * acinclude.m4 (grub_CHECK_START_SYMBOL): New function.
7009         (grub_CHECK_USCORE_START_SYMBOL): Likewise.
7010         (grub_CHECK_END_SYMBOL): Likewise.
7011         (grub_CHECK_USCORE_SYMBOL): Likewise.
7012         * configure.in: Call grub_CHECK_START_SYMBOL and
7013         grub_CHECK_USCORE_START_SYMBOL, and if neither start nor _start
7014         is defined, print an error message and exit.
7015         Likewise, call grub_CHECK_END_SYMBOL and
7016         grub_CHECK_USCORE_END_SYMBOL, and if neither end nor _end is
7017         defined, print an error message and exit.
7018         * acconfig.h (HAVE_START_SYMBOL): Added the "undef" entry.
7019         (HAVE_USCORE_START_SYMBOL): Likewise.
7020         (HAVE_END_SYMBOL): Likewise.
7021         (HAVE_USCORE_END_SYMBOL): Likewise.
7022         * stage2/char_io.c (memcheck): Rename the argument START to
7023         ADDR. Added two missing equal characters.
7024         [GRUB_UTIL]: Define new local functions start_addr and end_addr.
7025         [GRUB_UTIL && HAVE_START_SYMBOL]: The function start_addr
7026         returns START.
7027         [GRUB_UTIL && HAVE_USCORE_START_SYMBOL]: The function start_addr
7028         returns _START.
7029         [GRUB_UTIL && HAVE_END_SYMBOL]: The function end_addr returns
7030         END.
7031         [GRUB_UTIL && HAVE_USCORE_END_SYMBOL]: The function end_addr
7032         returns _END.
7033         [GRUB_UTIL]: If ADDR is equal to or greater than the address
7034         returned by start_addr, and ADDR plus LEN is less than the
7035         address returned by end_addr, return ! ERRNUM.
7036         * stage2/asm.S (get_code_end) [HAVE_END_SYMBOL]: Use $end as the
7037         end of the bss.
7038         [HAVE_USCORE_END_SYMBOL]: Use $_end as the end of the bss.
7039         * stage2/disk_io.c [!STAGE1_5] (cur_part_desc): Made static.
7040         Need not to be global any longer.
7042 1999-09-17  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7044         * stage2/char_io.c [!STAGE1_5] (get_cmdline): The argument
7045         COMPLETION is renamed to READLINE.
7046         Do not initialize KILL here.
7047         TAB, C-a, C-e, C-f, C-b, C-u, C-k, C-y, C-p and C-n are handled
7048         only if READLINE is non-zero.
7049         If ECHO_CHAR is not NUL, do not remove the leading spaces in BUF.
7050         Add CMDLINE into the history list only if READLINE is non-zero.
7051         * stage2/stage2.c (cmain): Initialize the kill buffer.
7053 1999-09-17  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7055         Killing, yanking and manipulating the history are supported.
7057         * stage2/shared.h (cur_cmdline): Removed.
7058         (MAX_CMDLINE): Moved near the beginning of the file.
7059         (NEW_HEAPSIZE): Likewise.
7060         (CMDLINE_BUFLEN): Set to MAX_CMDLINE.
7061         (KILL_BUF): New macro.
7062         (KILL_BUFLEN): Likewise.
7063         (HISTORY_BUF): Likewise.
7064         (HISTORY_SIZE): Likewise.
7065         (HISTORY_BUFLEN): Likewise.
7066         (MENU_BUF): Set to HISTORY_BUF + HISTORY_BUFLEN.
7067         (MENU_BUFLEN): Set to 0x8000 + PASSWORD_BUF - HISTORY_BUF.
7068         (strcpy): New macro.
7069         (grub_strcpy): Delared.
7070         * stage2/boot.c (cur_cmdline): Removed.
7071         * stage2/char_io.c [!STAGE1_5] (grub_strcpy): New function.
7072         [!STAGE1_5] (get_history): Likewise.
7073         [!STAGE1_5] (add_history): Likewise.
7074         [!STAGE1_5] (get_cmdline): Use BUF instead of CMDLINE for the
7075         working buffer for the command-line.
7076         A new function cl_insert is used to insert a string to the
7077         command-line.
7078         In the case where C-u or C-k is pressed, copy the string being
7079         deleted to KILL.
7080         If C-y is pressed, insert KILL to the command-line.
7081         If C-p is pressed, fetch the previous command from the history
7082         list HISTORY, and if C-n is pressed, fetch the next command from
7083         it.
7084         If LPOS is less than LLEN, add CMDLINE into the history list.
7085         If C is equal to KEY_UP, set C to 16, and if C is equal to
7086         KEY_DOWN, set C to 14.
7087         [!STAGE1_5] (num_history): New variable.
7089 1999-09-15  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7091         * stage2/size_test: Do not check for the size of Stage 2.
7092         * stage1/Makefile.am (stage2_size.h): Use `set' and `echo'
7093         instead of awk, since we cannot expect awk is present. Remove
7094         stage2_size.h before creating it.
7096 1999-09-15  Pavel Roskin  <pavel_roskin@geocities.com>
7098         * Makefile.am (SUBDIRS): Put stage1 after stage2 so that stage2
7099         is built before stage1.
7100         * stage1/Makefile.am (BUILT_SOURCES): New varilable.
7101         (CLEANFILES): Added BUILT_SOURCES.
7102         (stage1_exec_SOURCES): Added stage2_size.h.
7103         (stage1_lba_exec_SOURCES): Likewise.
7104         (stage2_size.h): New rule.
7105         * stage1/stage1.S: Include <stage2_size.h> and use STAGE2_SIZE
7106         to determine how much number of sectors to be read when loading
7107         Stage 2.
7108         * stage1/stage1_lba.S: Likewise.
7110 1999-09-15  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7112         * netboot/config.h: Moved to ...
7113         * netboot/netboot_config.h: ... here.
7114         * netboot/config.c: Include netboot_config.h instead of config.h.
7115         * netboot/fsys_tftp.c: Likewise.
7116         * netboot/ip.c: Likewise.
7117         * netboot/Makefile.am (libdrivers_a_SOURCES): Removed config.h
7118         and added netboot_config.h.
7120 1999-09-14  Pavel Roskin  <pavel_roskin@geocities.com>
7122         * grub/asmstub.c [__linux__]: On GLibc 2.0 and newer use lseek,
7123         don't include <linux/fs.h> and define BLKFLSBUF if needed.
7125 1999-09-14  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7127         Now the grub shell works fine on FreeBSD. A patch by Pavel
7128         Roskin is modified and applied.
7130         * grub/asmstub.c (get_drive_geometry): New function.
7131         (get_diskinfo): Use get_drive_geometry to set the geometry of
7132         DRIVE.
7134 1999-09-14  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7136         * configure.in (--enable-ne): Made the description more clear.
7137         (--enable-nepci): Likewise.
7138         (--enable-wd): Likewise.
7139         (--enable-t503): Likewise.
7140         (--enable-t509): Likewise.
7141         (--enable-3c59x): Likewise.
7142         (--enable-lance): Likewise.
7143         (--enable-cs): Likewise.
7144         (--enable-eepro100): Likewise.
7145         (--enable-wd-default_mem): Renamed to ...
7146         (--enable-wd-default-mem): ... this.
7147         (--enable-cs-scan): Corrected the description.
7148         (NETBOOT_SUPPORT): Defined if NET_CFLAGS is not empty.
7149         * stage2/Makefile.am (stage2_exec_LDADD): Defined only if
7150         NETBOOT_SUPPORT is true.
7151         * netboot/Makefile.am (LIBDRIVERS): New variable. If
7152         NETBOOT_SUPPORT is true, set to libdriver.a, otherwise set to an
7153         empty string.
7154         (noinst_LIBRARIES): Set to LIBDRIVERS.
7155         (DRIVERS): Added 3c509.h, cs89x0.h and ns8390.h.
7156         (libdrivers_a_SOURCES): Added byteorder.h, config.h, if.h, io.h,
7157         ip.h, netboot.h, netdevice.h, nic.h and pic.h.
7158         (libdrivers_a_CFLAGS): Added -fno-builtin and -nostdinc and
7159         removed -O2.
7160         * stage2/char_io.c (grub_sprintf): Added parenthesises to avoid
7161         gcc warnings.
7162         * stage2/gunzip.c (gunzip_test_header): Check if FSYS_TYPE is
7163         TFTP. If so, set IS_TFTP to non-zero, otherwise to zero. And,
7164         use IS_TFTP to check if we have GZIP_CRC instead of the equation
7165         "FILEMAX == 16 * 1024 * 1024".
7167 1999-09-13  Edmund GRIMLEY EVANS  <edmundo@rano.demon.co.uk>
7169         The netboot support in the Dresden version of GRUB is integrated.
7171         * Makefile.am (SUBDIRS): Added netboot.
7172         * configure.in (--enable-tftp): New option.
7173         (--enable-ne): Likewise.
7174         (--enable-nepci): Likewise.
7175         (--enable-wd): Likewise.
7176         (--enable-t503): Likewise.
7177         (--enable-t509): Likewise.
7178         (--enable-3c59x): Likewise.
7179         (--enable-lance): Likewise.
7180         (--enable-cs): Likewise.
7181         (--enable-eepro100): Likewise.
7182         (--enable-ne-scan): Likewise.
7183         (--enable-wd-default_mem): Likewise.
7184         (--enable-cs-scan): Likewise.
7185         (NET_CFLAGS): New variable.
7186         (NET_EXTRAFLAGS): Likewise.
7187         Do AC_OUTPUT for netboot/Makefile as well.
7188         * stage1/stage1.S: Set the number of sectors for Stage 2 to 130.
7189         * stage1/stage1_lba.S: Likewise.
7190         * stage2/Makefile.am (stage2_exec_LDADD): Added
7191         ../netboot/libdrivers.a.
7192         * stage2/asm.S [!STAGE1_5] (currticks): New function.
7193         * stage2/char_io.c [!STAGE1_5] (grub_sprintf): Likewise.
7194         [!STAGE1_5] (grub_memcmp): Likewise.
7195         * stage2/disk_io.c (fsys_table) [FSYS_TFTP]: Added an entry for
7196         tftp.
7197         (sane_partition) [!STAGE1_5]: If CURRENT_DRIVE is a network
7198         drive, return 1.
7199         (real_open_partition) [!STAGE1_5]: Likewise.
7200         (set_device): If DEVICE contains a network drive, set
7201         CURRENT_DRIVE to 0x20.
7202         * stage2/filesys.h [FSYS_TFTP] (FSYS_TFTP_NUM): Defined as 1.
7203         [!FSYS_TFTP] (FSYS_TFTP_NUM): Defined as 0.
7204         (NUM_FSYS): Added FSYS_TFTP_NUM.
7205         * stage2/gunzip.c (gunzip_test_header): If FILEMAX >= 16MB, do
7206         not try to examine the last 8 bytes of the file. This is
7207         required for compressed files by TFTP.
7208         * stage2/shared.h (sprintf): New macro.
7209         (memcmp): Likewise.
7210         (currticks): Declared.
7211         (grub_sprintf): Likewise.
7212         (grub_memcmp): Likewise.
7213         * stage2/size_test: Set the maximum size of Stage 2 to 66560.
7214         * netboot/3c509.c: New file.
7215         * netboot/3c509.h: Likewise.
7216         * netboot/3c59x.c: Likewise.
7217         * netboot/Makefile.am: Likewise.
7218         * netboot/Makefile.in: Likewise.
7219         * netboot/byteorder.h: Likewise.
7220         * netboot/compile: Likewise.
7221         * netboot/config.c: Likewise.
7222         * netboot/config.h: Likewise.
7223         * netboot/cs89x0.c: Likewise.
7224         * netboot/cs89x0.h: Likewise.
7225         * netboot/eepro100.c: Likewise.
7226         * netboot/fsys_tftp.c: Likewise.
7227         * netboot/if.h: Likewise.
7228         * netboot/io.h: Likewise.
7229         * netboot/ip.c: Likewise.
7230         * netboot/ip.h: Likewise.
7231         * netboot/lance.c: Likewise.
7232         * netboot/netboot.h: Likewise.
7233         * netboot/netdevice.h: Likewise.
7234         * netboot/nic.h: Likewise.
7235         * netboot/ns8390.c: Likewise.
7236         * netboot/ns8390.h: Likewise.
7237         * netboot/pci.c: Likewise.
7238         * netboot/pci.h: Likewise.
7240 1999-09-13  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7242         * configure.in (--enable-maintainer-mode): Do not use our own
7243         rule, but use AM_MAINTAINER_MODE instead. If the maintainer mode
7244         is enabled, then check for perl, and if it is not found, print
7245         an error message and abort.
7246         * docs/Makefile.am (grub.8): Regenerated if MAINTAINER_MODE is
7247         defined, instead of GRUB_MAINT. Use the variable PERL rather
7248         than running help2man directly.
7250 1999-09-13  Pavel Roskin  <pavel_roskin@geocities.com>
7252         * stage2/pc_slice.h (IS_PC_SLICE_TYPE_EXTENDED): New macro.
7253         * stage2/disk_io.c (real_open_partition): Use
7254         IS_PC_SLICE_TYPE_EXTENDED instead of comparing CURRENT_SLICE
7255         with the extended partition types.
7257 1999-09-11  Pavel Roskin  <pavel_roskin@geocities.com>
7259         * acconfig.h: New file for autoheader support.
7260         * acinclude.m4 (grub_ASM_EXT_C) Renamed to ...
7261         (grub_ASM_USCORE): ... this. Define HAVE_ASM_USCORE if a C
7262         symbol gets an underscore after compiling to assembler.
7263         * configure.in: Added AM_CONFIG_HEADER. Autoconf 2.13 is now
7264         required. Test for wgetch(), not getch() in -l[n]curses.
7265         * stage2/shared.h (EXT_C): Defined.
7266         Include the best existing header for [n]curses.
7268 1999-09-12  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7270         * stage2/boot.c (load_image): Use CURRENT_DRIVE and
7271         CURRENT_PARTITION instead of SAVED_DRIVE and SAVED_PARTITION for
7272         the boot device in the Multiboot information. Reported by
7273         Stephen Early <steve@greenend.org.uk>.
7275 1999-09-12  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7277         * stage2/disk_io.c (sane_partition) [STAGE1_5]: Defined.
7278         (set_device): Use sane_partition to make sure that CURRENT_DRIVE
7279         has a valid value. Reported by Pavel Roskin.
7281 1999-09-11  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7283         From Pavel Roskin:
7284         * stage2/builtins.c (device_func) [GRUB_UTIL]: Use check_device
7285         in order to make sure that DEVICE exists.
7286         * grub/asmstub.c (check_device): New function.
7287         (grub_stage2): Use check_device to probe a device.
7289         * stage2/builtins.c (geometry_func) [GRUB_UTIL]: Copy the
7290         modified geometry to GEOM and reset BUF_DRIVE. Reported by Pavel
7291         Roskin.
7293         * grub/main.c (no_floppy): New variable.
7294         (probe_second_floppy): Likewise.
7295         (OPT_NO_FLOPPY): New macro.
7296         (OPT_PROBE_SECOND_FLOPPY): Likewise.
7297         (longopts): Added no-floppy and probe-second-floppy.
7298         (usage): Added the descriptions about --no-floppy and
7299         --probe-second-floppy.
7300         (main): Handle OPT_PROBE_SECOND_FLOPPY and OPT_NO_FLOPPY.
7301         * grub/asmstub.c (grub_stage2): Print a message before the probe
7302         routine. If NO_FLOPPY is non-zero, do not probe any floppy drive.
7303         If PROBE_SECOND_FLOPPY is zero, skip the probe of the second
7304         floppy drive.
7305         (get_floppy_disk_name): New function.
7306         (get_ide_disk_name): Likewise.
7307         (get_scsi_disk_name): Likewise.
7309 1999-09-10  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7311         * stage2/builtins.c (device_func): New function.
7312         (builtin_device): New variable.
7313         (builtin_table): Added the pointer to BUILTIN_DEVICE.
7314         (builtin_geometry) [GRUB_UTIL]: Accept extra arguments,
7315         CYLINDER, HEAD, SECTOR and TOTAL_SECTOR, and, if they are found,
7316         set the geometry of a drive specified to them.
7317         * grub/asmstub.c (disks): Made global.
7318         (assign_device_name): New function.
7320 1999-09-09  Gordon Matzigkeit  <gord@fig.org>
7322         * docs/grub.texi (Commands): Synchronize descriptions with
7323         builtins.c.
7325         * stage2/builtins.c (hide_func): Use set_partition_hidden_flag.
7326         (unhide_func): Likewise.
7327         Many help message cleanups.  From Pavel Roskin.
7329         * stage2/shared.h (set_partition_hidden_flag): Declare.
7331         * stage2/disk_io.c (set_partition_hidden_flag): New function
7332         merged from hide_partition and unhide_partition.  Make sure we OR
7333         with the inverse of the flag bit rather than XORing to unhide the
7334         partition.
7336 1999-09-10  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7338         * grub/asmstub.c (_FILE_OFFSET_BITS): Defined.
7339         (biosdisk) [!__linux__]: Pass the offset argument as off_t
7340         instead of int to lseek, and compare the return value with
7341         OFFSET. Reported by Pavel Roskin.
7342         (grub_stage2) [!__linux__ && !__GNU__]: Print a warning message.
7344 1999-09-08  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7346         * stage2/stage2.c (run_menu): If run_script is successfully
7347         finished, break the loop. Reported by Pavel Roskin.
7348         Do not wait an input character when FALLBACK_ENTRY is less than
7349         zero.
7350         * stage2/cmdline.c (run_script): If ERRNUM is non-zero, wait an
7351         input character, whether FALLBACK is less than zero or not.
7353 1999-09-06  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7355         * stage2/builtins.c (configfile_func): New function.
7356         (builtin_configfile): New variable.
7357         (builtin_table): Added the pointer to BUILTIN_CONFIGFILE.
7359 1999-09-06  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7361         From Pavel Roskin:
7362         * stage2/asm.S [!STAGE1_5] (chain_stage2): Deleted.
7363         [STAGE1_5] (get_code_end): Likewise.
7364         * stage2/char_io.c (grub_strncat): Likewise.
7365         * stage2/common.c [STAGE1_5] (saved_mem_upper): Likewise.
7366         * stage2/smp-imps.c (imps_release_cpus): Likewise.
7367         (imps_any_new_apics): Made static.
7368         (imps_enabled): Likewise.
7369         (imps_num_cpus): Likewise.
7370         (imps_lapic_addr): Likewise.
7371         (imps_cpu_apic_map): Likewise.
7372         (imps_apic_cpu_map): Likewise.
7374 1999-09-06  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7376         * stage2/builtins.c (testload_func): Fix the typos: 0x2000000 ->
7377         0x200000 and 0x3000000 -> 0x300000.
7379 1999-09-06  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7381         From Hisazumi Kenji <nel@soraneko.com>:
7382         * stage2/fsys_ffs.c (mapblock_offset): New variable.
7383         (mapblock_bsize): Likewise.
7384         (MAPBUF): New macro.
7385         (MAPBUF_LEN): Likewise.
7386         (ffs_mount): Set MAPBLOCK_OFFSET to -1.
7387         (block_map): Added partial read support.
7389 1999-09-06  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7391         * stage2/cmdline.c (find_command): If COMMAND is less than
7392         (*BUILTIN)->NAME in dictionary order, break the loop.
7393         * stage2/builtins.c (builtin_chainloader): Capitalize the
7394         variable name in the short doc.
7395         (builtin_color): Likewise.
7396         (builtin_geometry): Likewise.
7397         (builtin_help): Likewise.
7398         (builtin_hide): Likewise.
7399         (builtin_initrd): Likewise.
7400         (builtin_install): Likewise.
7401         (builtin_kernel): Likewise.
7402         (builtin_module): Likewise.
7403         (builtin_modulenounzip): Likewise.
7404         (builtin_pause): Likewise.
7405         (builtin_read): Likewise.
7406         (builtin_root): Likewise.
7407         (builtin_testload): Likewise.
7408         (builtin_unhide): Likewise.
7409         (builtin_uppermem): Likewise.
7411 1999-09-05  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7413         The internal of the command handling is heavily modified, and
7414         a new command "help" is added.
7416         * stage1/stage1.S: Set the number of sectors for Stage 2 to 110.
7417         * stage1/stage1_lba.S: Likewise.
7418         * stage2/builtins.c: New file.
7419         * stage2/Makefile.am (libgrub_a_SOURCES): Added builtins.c.
7420         (stage2_exec_SOURCES): Likewise.
7421         * stage2/boot.c (load_image): Return kernel_t instead int.
7422         (bsd_boot): Change the type of the first argument to kernel_t.
7423         * stage2/char_io.c (get_cmdline): Do not accept the argument
7424         COMMANDS and accept the argument COMPLETION.
7425         Print completions only if COMPLETION is non-zero.
7426         Print the list of short docs when the command is completed.
7427         * stage2/cmdline.c [GRUB_UTIL]: Do not include apic.h and
7428         smp-imps.h.
7429         (fallback): Deleted.
7430         (password): Likewise.
7431         (debug): Likewise.
7432         (normal_color): Likewise.
7433         (highlight_color): Likewise.
7434         (print_cmdline_message): New function.
7435         (commands): Deleted.
7436         (debug_fs_print_func): Likewise.
7437         (installaddr): Likewise.
7438         (installlist): Likewise.
7439         (installsect): Likewise.
7440         (debug_fs_blocklist_func): Likewise.
7441         (find_command): New function.
7442         (init_cmdline): Initialize the data for the command-line
7443         interface. The function to print the message is moved to
7444         print_cmdline_message.
7445         (enter_cmdline): Rewritten from scratch. Now deal with only the
7446         pure command-line and the function to deal with a menu entry is
7447         moved to run_script.
7448         (run_script): New function.
7449         * stage2/shared.h (PASSWORD_BUF): New macro.
7450         (PASSWORD_BUFLEN): Likewise.
7451         (CMDLINE_BUF): Likewise.
7452         (CMDLINE_BUFLEN): Likewise.
7453         (MENU_BUF): Likewise.
7454         (MENU_BUFLEN): Likewise.
7455         (fallback): Deleted.
7456         (fallback_entry): Declared.
7457         (default_entry): Likewise.
7458         (BUILTIN_CMDLINE): New macro.
7459         (BUILTIN_MENU): Likewise.
7460         (BUILTIN_TITLE): Likewise.
7461         (struct builtin): New tag.
7462         (builtin_table): Declared.
7463         (cmdline_t): Deleted.
7464         (kernel_t): New type.
7465         (kernel_type): Declared.
7466         (grub_timeout): Likewise.
7467         (init_builtins): Likewise.
7468         (init_config): Likewise.
7469         (find_command): Likewise.
7470         (print_cmdline_message): Likewise.
7471         (run_script): Likewise.
7472         [!STAGE1_5] (bsd_boot): Deleted.
7473         [!STAGE1_5] (load_image): Likewise.
7474         [!STAGE1_5] (load_module): Likewise.
7475         [!STAGE1_5] (load_initrd): Likewise.
7476         * stage2/size_test: Set the maximum size of Stage 2 to 56320.
7477         * stage2/stage2.c (grub_timeout): Deleted.
7478         (menu_t): Likewise.
7479         (run_menu): Changed the return type to void.
7480         Use FALLBACK_ENTRY instead of FALLBACK.
7481         Do not check the return value of enter_cmdline.
7482         (run_menu) [GRUB_UTIL]: Call stop instead of returning
7483         MENU_ABORT.
7484         (cmain): Set MENU_ENTRIES to MENU_BUF.
7485         Call init_config instead of clearing the variables directly.
7486         Use CMDLINE_BUF for the command-line buffer instead of the
7487         stack.
7488         Adapted the analysis routine for the configuration file to the
7489         new builtin commands interface.
7490         Run enter_cmdline forever.
7491         If run_menu returns, restart the loop.
7493 1999-09-04  Pavel Roskin  <pavel_roskin@geocities.com>
7495         * docs/menu.lst: More meaningful examples. Not using (0x80,0)
7496         notation anymore.
7497         * stage2/stage2.c (run_menu): Erase the entered password before
7498         get_cmdline(). Help on TAB disabled when entering the password.
7499         * stage2/char_io.c (get_cmdline): Restore command-line even if
7500         there is no help string.
7501         * configure.in: --disable-gunzip disables decompression in
7502         stage2.
7503         * stage2/gunzip.c [NO_DECOMPRESSION]: Disable all code if
7504         decompression is disabled.
7506 1999-09-03  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7508         * stage2/boot.c (load_image): Use PHDR->P_PADDR instead of
7509         PHDR->P_VADDR. Reported by Ramon van Handel <vhandel@chem.vu.nl>.
7511 1999-09-03  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7513         * docs/help2man: Upgraded to 1.013.
7514         * docs/grub.8: Regenerated.
7516 1999-09-02  Pavel Roskin  <pavel_roskin@geocities.com>
7518         * stage2/cmdline.c (enter_cmdline) [GRUB_UTIL]: Add a space in
7519         the LBA warning message.
7521 1999-09-02  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7523         The character `=' after a command is now optional.
7525         * stage2/char_io.c (get_cmdline): Search for a space or a equal
7526         character after the first word in CMDLINE when TAB lists
7527         completions, instead of just searching for a eqaul character.
7528         * stage2/cmdline.c (skip_to): Treat the character `=' as a space
7529         if AFTER_EQUAL is non-zero.
7530         (commands): Delete all the equal characters.
7531         * docs/menu.lst: Likewise.
7532         * docs/grub.texi: Likewise.
7534 1999-09-01  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7536         * grub/asmstub.c (env_for_exit): New variable.
7537         (grub_stage2): Do a setjmp in doit, and when it returns
7538         non-zero, set STATUS to 1 if ERRNUM is non-zero.
7539         (stop): Call longjmp instead of exit.
7541 1999-08-31  Pavel Roskin  <pavel_roskin@geocities.com>
7543         * stage2/boot.c [GRUB_UTIL] (bsd_boot_entry): New function.
7544         (bsd_boot) [GRUB_UTIL]: Set ENTRY_ADDR to BSD_BOOT_ENTRY to fake
7545         the *BSD boot.
7547 1999-08-31  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7549         * stage2/fsys_fat.c (fat_create_blocklist): Cast FAT_BUF to
7550         unsigned short * instead of unsigned long *. Suggested by Pavel
7551         Roskin.
7553 1999-08-30  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7555         From Edward Killips <ekillips@triton.net>:
7556         * stage2/cmdline.c (commands): Added hide and unhide.
7557         (enter_cmdline): Likewise.
7558         * stage2/disk_io.c (unhide_partition): New function.
7559         (hide_partition): Likewise.
7560         * stage2/pc_slice.h (PC_SLICE_TYPE_HIDDEN_FLAG): New macro.
7562 1999-08-29  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7564         From Pavel Roskin <pavel_roskin@geocities.com>:
7565         * stage2/fsys_minix.c (namelen): New variable.
7566         (MINIX_NAME_LEN): Deleted.
7567         (minix_mount): Set NAMELEN to 14 if SUPRTBLOCK->S_MAGIC is
7568         MINIX_SUPER_MAGIC, and set NAMELEN to 30 if it is
7569         MINIX_SUPER_MAGIC2.
7570         (minix_dir): Use NAMELEN instead of MINIX_NAME_LEN.
7572 1999-08-29  Pavel Roskin  <pavel_roslin@geocities.com>
7574         * grub/Makefile.am, stage1/Makefile.am, stage2/Makefile.am:
7575         Avoid using variables inclosed in '@' because they cannot be
7576         overridden at the make time.
7578 1999-08-29  Pavel Roskin  <pavel_roskin@geocities.com>
7580         * stage2/fsys_fat.c (fat_create_blocklist): Return 1 for the
7581         root directory on FAT12 and FAT16.
7583 1999-08-27  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7585         * stage2/boot.c (load_image): Accept two arguments, KERNEL and
7586         ARG. And use them instead of CUR_CMDLINE.
7587         (load_module): Accept two arguments, MODULE and ARG. And use
7588         them instead of CUR_CMDLINE.
7589         (load_initrd): Accept one argument, INITRD. And use it instead
7590         of CUR_CMDLINE.
7591         (bsd_boot): Accept one additional argument, ARG. And use it
7592         instead of CUR_CMDLINE.
7593         * stage2/cmdline.c (enter_cmdline): Use MB_CMDLINE instead of
7594         HEAP for the Multiboot command-line buffer.
7595         * stage2/shared.h (MB_CMDLINE_BUF): New macro.
7596         (MB_CMDLINE_BUFLEN): Likewise.
7598 1999-08-26  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7600         * docs/Makefile.am [GRUB_MAINT] (grub.8): The argument for the
7601         option --name is changed to "the grub shell".
7602         * docs/grub.8: Regenerated.
7603         * docs/grub.texi: Do not use the name "the Stage 2 emulator" any
7604         more. Use the name "the grub shell" instead.
7606 1999-08-26  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7608         From Klaus Reichl <klaus.reichl@alcatel.at>:
7609         * stage2/fsys_minix.c: New file.
7610         * stage2/size_test: Added a check for the size of minix_stage1_5.
7611         * stage2/Makefile.am (libgrub_a_SOURCES): Added fsys_minix.c.
7612         (libgrub_a_CFLAGS): Added -DFSYS_MINIX=1.
7613         (nodist_pkgdata_DATA): Added minix_stage1_5.
7614         (noinst_PROGRAMS): Added minix_stage1_5.exec.
7615         (stage2_exec_SOURCES): Added fsys_minix.c.
7616         (minix_stage1_5_exec_SOURCES): New variable.
7617         (minix_stage1_5_exec_CFLAGS): Likewise.
7618         (minix_stage1_5_exec_LDFLAGS): Likewise.
7619         * stage2/pc_slice.h (PC_SLICE_TYPE_MINIX): New macro.
7620         * stage2/disk_io.c (fsys_table) [FSYS_MINIX]: Added minix entry.
7621         * stage2/filesys.h [FSYS_MINIX] (FSYS_MINIX_NUM): Set to 1.
7622         [!FSYS_MINIX] (FSYS_MINIX_NUM): Set to 0.
7623         [!NUM_FSYS] (NUM_FSYS): Added FSYS_MINIX_NUM.
7624         * stage2/shared.h (STAGE2_ID_MINIX_STAGE1_5): New macro.
7625         [STAGE1_5 && FSYS_MINIX] (STAGE2_ID): Set to
7626         STAGE2_ID_MINIX_STAGE1_5.
7627         * grub/Makefile.am (AM_CFLAGS): Added -DFSYS_MINIX=1.
7628         * configure.in (--disable-minix): New option.
7630 1999-08-25  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7632         From Jochen Hoenicke <jochen@gnu.org>:
7633         * stage2/fat.h (FAT_BPB_FAT_SECTORS_16): New macro.
7634         (FAT_BPB_FAT_SECTORS_32): Likewise.
7635         (FAT_BPB_IS_FAT32): Likewise.
7636         (FAT_BPB_ROOT_DIR_CLUSTER): Likewise.
7637         (FAT_BPB_FAT_SECTORS): If FAT_BPB_FAT_SECTORS_16 returns
7638         a non-zero value, return it. Otherwise return
7639         FAT_BPB_FAT_SECTORS_32.
7640         (FAT_DIRENTRY_FIRST_CLUSTER): Corrected.
7641         * stage2/fsys_fat.c (root_dir): New variable.
7642         (fat_mount): Use the macro IS_PC_SLICE_TYPE_FAT instead of
7643         checking for each fs types directly.
7644         Omit the >64 sectors check.
7645         If the current fs type is FAT32, then set FAT_SIZE to 8 and
7646         get the root from BPB.
7647         (fat_create_blocklist): Use the macro SECTOR_SIZE instead of a
7648         magic number.
7649         (fat_dir): Set MAP to ROOT_DIR instead of -1.
7650         * stage2/pc_slice.h (PC_SLICE_TYPE_FAT32): New macro.
7651         (PC_SLICE_TYPE_FAT32_LBA): Likewise.
7652         (PC_SLICE_TYPE_FAT16_LBA): Likewise.
7653         (IS_PC_SLICE_TYPE_FAT): Likewise.
7655 1999-08-25  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7657         * stage2/fsys_ffs.c (ffs_mount): Do not shift the fs type
7658         FS_BSDFFS. Reported by Takehiro Suzuki
7659         <takehiro@coral.ocn.ne.jp>.
7660         * stage2/fsys_fat.c (fat_mount): Do not shift the fs type
7661         FS_MSDOS.
7663 1999-08-13  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7665         Pavel Roskin's patch that adds new options to disable arbitrary
7666         filesystems is heavily modified and applied.
7668         * configure.in (--disable-ext2fs): New option.
7669         (--disable-fat): Likewise.
7670         (--disable-ffs): Likewise.
7671         (FSYS_CFLAGS): New variable. Set to filesystems the user choose.
7672         * grub/Makefile.am (AM_CFLAGS): Added -DFSYS_EXT2FS=1,
7673         -DFSYS_FAT=1 and -DFSYS_FFS=1.
7674         * stage2/Makefile.am (libgrub_a_CFLAGS): Likewise.
7675         (stage2_exec_CFLAGS): Added @FSYS_CFLAGS@.
7676         * stage2/filesys.h
7677         [!(FSYS_FFS || FSYS_FAT || FSYS_EXT2FS)] (FSYS_FFS): Deleted.
7678         [!(FSYS_FFS || FSYS_FAT || FSYS_EXT2FS)] (FSYS_FAT): Likewise.
7679         [!(FSYS_FFS || FSYS_FAT || FSYS_EXT2FS)] (FSYS_EXT2FS): Likewise.
7680         * stage2/fsys_ext2fs.c [!FSYS_EXT2FS]: Do not define anything.
7681         * stage2/fsys_fat.c [!FSYS_FAT]: Likewise.
7682         * stage2/fsys_ffs.c [!FSYS_FFS]: Likewise.
7684 1999-08-12  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7686         * stage1/stage1_lba.S: Use STAGE1_DRP_ADDR for the address of
7687         drive parameters instead of DRIVE_PARAMETER.
7688         (drive_parameter): Deleted.
7689         * stage1/stage1.h (STAGE1_DRP_ADDR): New macro.
7690         (STAGE1_DRP_SIZE): Likewise.
7692 1999-08-11  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7694         * stage2/bios.c (get_diskinfo): In LBA mode, set TOTAL_SECTORS
7695         to the low 32bits of DRP.TOTAL_SECTORS instead of the multiple
7696         of CHS.
7697         * stage2/cmdline.c (enter_cmdline) [GRUB_UTIL]: In the command
7698         "geometry", print the device file name instead of CHS/LBA
7699         information.
7700         * stage2/shared.h (device_map): Declared.
7701         * grub/asmstub.c (device_map): Defined as a global variable
7702         instead of a local variable.
7704 1999-08-10  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7706         Support the NetBSD and OpenBSD partition slices.
7708         * stage2/pc_slice.h (PC_SLICE_TYPE_BSD): Deleted.
7709         (PC_SLICE_TYPE_FREEBSD): New macro.
7710         (PC_SLICE_TYPE_OPENBSD): Likewise.
7711         (PC_SLICE_TYPE_NETBSD): Likewise.
7712         (IS_PC_SLICE_TYPE_BSD_WITH_FS): Likewise.
7713         (IS_PC_SLICE_TYPE_BSD): Likewise.
7714         * stage2/fsys_ffs.c (ffs_mount): Use the macro
7715         IS_PC_SLICE_TYPE_BSD_WITH_FS instead of checking if
7716         CURRECT_SLICE is equal to the BSD partition type directly.
7717         * stage2/fsys_ext2fs.c (ext2fs_mount): Likewise.
7718         * stage2/fsys_fat.c (fat_mount): Likewise.
7719         * stage2/disk_io.c (check_BSD_parts): Set the low bits of
7720         CURRENT_SLICE to PC_SLICE_TYPE_FREEBSD instead of
7721         PC_SLICE_TYPE_BSD.
7722         (real_open_partition): Use the macro IS_PC_SLICE_TYPE_BSD instead
7723         of checking if CURRENT_SLICE is equal to the BSD partition type
7724         directly.
7726 1999-08-09  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7728         * stage2/cmdline.c (commands): Added geometry.
7729         (enter_cmdline): If CUR_HEAP has the string "geometry", print
7730         out the information about a drive that the argument represents.
7732 1999-08-09  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7734         * stage2/stage2.c (run_menu): Terminate the string PASSWORD
7735         before checking if ENTERED is identical to PASSWORD. Reported
7736         by Mark Lundeberg <aa026@pgfn.bc.ca>.
7738 1999-08-08  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7740         * stage2/stage2.c (set_line_normal): New function.
7741         (set_line_highlight): Likewise.
7742         (run_menu): Do not call the function set_line directly any
7743         longer, call set_line_normal and set_line_highlight instead.
7745         From Pavel Roskin:
7746         * stage2/stage2.c (run_menu) [GRUB_UTIL]: Quit when pushing the
7747         key `q'.
7749 1999-08-05  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7751         * acinclude.m4 (grub_ASM_PREFIX_REQUIREMENT): New function.
7752         * configure.in: Call grub_ASM_PREFIX_REQUIREMENT, and define
7753         ADDR32 and DATA32 based on the result.
7754         * stage2/asm.S: Replace addr32 and data32 prefixes with ADDR32
7755         and DATA32 respectively.
7757 1999-08-05  Pavel Roskin  <pavel_roskin@geocities.com>
7759         * stage2/boot.c (load_image): Use RAW_ADDR macro when loading
7760         an a.out kernel.
7762 1999-08-04  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7764         * stage2/asm.S: Make each of the addr32 and data32 prefixes
7765         appear in the same line as it modifies, as the gas manual in
7766         binutils-2.9.5.0.4 says "it must be in the same line".
7768 1999-08-04  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7770         * boot.c (load_image): Fix a strcmp test. Reported by Pavel
7771         Roskin <pavel_roskin@geocities.com>.
7773 1999-08-03  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7775         From "Dan J. Walters" <djw@cs.utexas.edu>:
7776         * stage2/i386-elf.h (EI_BRAND): New macro.
7777         * stage2/boot.c (load_image): If the kernel is ELF, check if it
7778         is a FreeBSD kernel as well as a Multiboot kernel, and if it is
7779         a FreeBSD kernel, then mask ENTRY_ADDR since FreeBSD requires
7780         that. Likewise, mask MEMADDR.
7781         (bsd_boot): Set the bi_symtab and the bi_esymtab members of BI
7782         only if MBI.FLAGS has the flag MB_INFO_AOUT_SYMS. Otherwise,
7783         clear them.
7785 1999-07-30  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7787         From Pavel Roskin <pavel_roskin@geocities.com>:
7788         * grub/getopt.c: New file. Copied from texinfo-3.12n.
7789         * grub/getopt1.c: Likewise.
7790         * grub/getopt.h: Likewise.
7791         * grub/Makefile.am (grub_SOURCES): Added getopt.c, getopt1.c and
7792         getopt.h.
7793         * configure.in: Check for string.h and strings.h.
7794         * grub/asmstub.c (grub_stage2): Fix a misordering in the output
7795         format of the inline assembly.
7797 1999-07-30  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7799         From Pavel Roskin <pavel_roskin@geocities.com>:
7800         * stage2/asm.S (get_diskinfo_standard): If the number of sectors
7801         returned is zero, then return an error code, even if non-carrier.
7803 1999-07-15  Gordon Matzigkeit  <gord@zen.fig.org>
7805         * docs/Makefile.am (grub.info): Use an ugly hack to downgrade
7806         grub.texi so that it works with Debian's version of texinfo.
7808 1999-07-26  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7810         * stage2/bios.c (get_diskinfo): When DRIVE is a floppy drive,
7811         try standard probe routine at first. Reported by Peter Astrand
7812         <altic@lysator.liu.se>.
7814         * grub/main.c (main): Call printf instead of grub_printf.
7815         Reported by Klaus Reichl <a8709182@unet.univie.ac.at>.
7817 1999-07-15  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7819         * stage2/cmdline.c (skip_to): Don't increase CMDLINE if the
7820         character to which CMDLINE points is NUL.
7822         * stage2/Makefile.am (EXTRA_DIST): Removed smp-imps.c.
7823         (stage2_exec_SOURCES): Added smp-imps.c.
7824         * stage2/cmdline.c [!GRUB_UTIL] (IMPS_DEBUG) (KERNEL_PRINT)
7825         (CMOS_WRITE_BYTE) (CMOS_READ_BYTE) (PHYS_TO_VIRTUAL)
7826         (VIRTUAL_TO_PHYS) (inb) (outb) (cmos_write_byte)
7827         (cmos_read_byte): These are now defined in ...
7828         * stage2/smp-imps.c (IMPS_DEBUG) (KERNEL_PRINT)
7829         (CMOS_WRITE_BYTE) (CMOS_READ_BYTE) (PHYS_TO_VIRTUAL)
7830         (VIRTUAL_TO_PHYS) (inb) (outb) (cmos_write_byte)
7831         (cmos_read_byte): ... here.
7832         * stage2/cmdline.c [!GRUB_UTIL]: Include apic.h and smp-imps.h.
7834 1999-07-14  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7836         The function ungetch is simulated so that the user can use a
7837         buggy curses.
7839         * grub/asmstub.c [HAVE_LIBCURSES] (save_char): New variable.
7840         (getkey) [HAVE_LIBCURSES]: If SAVE_CHAR is not ERR, return
7841         SAVE_CHAR and clear it.
7842         (checkkey) [HAVE_LIBCURSES]: If SAVE_CHAR is not ERR, return
7843         SAVE_CHAR. If C is not ERR, set SAVE_CHAR to C.
7845 1999-07-14  Pavel Roskin  <pavel_roskin@geocities.com>
7847         * stage2/char_io.c (get_cmdline) [GRUB_UTIL]: Recognize
7848         backspace when ncurses fails to do this.
7850         * grub/asmstub.c (grub_stage2) [HAVE_LIBCURSES]: Call wtimeout
7851         instead of nodelay.
7852         (getkey) [HAVE_LIBCURSES]: Likewise.
7854 1999-07-14  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7856         * stage1/stage1_lba.S (probe_values): New variable. This is not
7857         used actually, but prevents `install' command from failing
7858         bogusly.
7860 1999-07-14  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7862         All constants in stage1s are moved to stage1.h and renamed
7863         appropriately, and include stage1.h instead.
7865         * grub/Makefile.am (AM_CFLAGS): Added the include path to stage1.
7866         * stage2/Makefile.am (INCLUDES): New variable.
7867         * stage1/Makefile.am (stage1_exec_SOURCES): Added stage1.h
7868         (stage1_lba_exec_SOURCES): Likewise.
7869         * stage1/stage1.h: New file.
7870         * stage1/stage1.S (SIGNATURE): Renamed to ...
7871         * stage1/stage1.h (STAGE1_SIGNATURE): ... this.
7872         * stage1/stage1.S (BPBEND): Renamed to ...
7873         * stage1/stage1.h (STAGE1_BPBEND): ... this.
7874         * stage1/stage1.S (PARTSTART): Renamed to ...
7875         * stage1/stage1.h (STAGE1_PARTSTART): ... this.
7876         * stage1/stage1.S (MINPARMSIZ): Renamed to ...
7877         * stage1/stage1.h (STAGE1_MINPARMSIZE): ... this.
7878         * stage1/stage1.S (LISTSIZ): Renamed to ...
7879         * stage1/stage1.h (STAGE1_LISTSIZE): ... this.
7880         * stage1/stage1.S (REALSTACK): Renamed to ...
7881         * stage1/stage1.h (STAGE1_STACKSEG): ... this.
7882         * stage1/stage1.S (BUFFERSEG): Renamed to ...
7883         * stage1/stage1.h (STAGE1_BUFFERSEG): ... this.
7884         * stage1/stage1.S (BIOS_HD_FLAG): Renamed to ...
7885         * stage1/stage1.h (STAGE1_BIOS_HD_FLAG): ... this.
7886         * stage1/stage1_lba.S (SIGNATURE): Removed.
7887         * stage1/stage1_lba.S (BPBEND): Likewise.
7888         * stage1/stage1_lba.S (PARTSTART): Likewise.
7889         * stage1/stage1_lba.S (MINPARMSIZ): Likewise.
7890         * stage1/stage1_lba.S (LISTSIZ): Likewise.
7891         * stage1/stage1_lba.S (REALSTACK): Likewise.
7892         * stage1/stage1_lba.S (BUFFERSEG): Likewise.
7893         * stage1/stage1_lba.S (BIOS_HD_FLAG): Likewise.
7895         * stage1/stage1.S (stage1_id): New variable.
7896         * stage1/stage1_lba.S (stage1_id): Likewise.
7897         * stage1/stage1.h (COMPAT_VERSION_MINOR): Set to 2.
7898         (STAGE1_ID_OFFSET): New macro.
7899         (STAGE1_ID_CHS): Likewise.
7900         (STAGE1_ID_LBA): Likewise.
7901         * stage2/cmdline.c (enter_cmdline) [!GRUB_UTIL]: When running
7902         the command `install' and STAGE1_FILE is stage1_lba, check if
7903         LBA is supported.
7904         (enter_cmdline) [GRUB_UTIL]: In the same case above, check only
7905         if CURRENT_DRIVE is a hard disk and, if so, print a warning
7906         message, because /sbin/grub cannot detect if LBA is supported or
7907         not.
7909         * stage1/stage1_lba.S: Fix a bug that incorrectly assigns the
7910         segment of buffer address.
7912 1999-07-13  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7914         * stage2/boot.c (load_image): When removing "vga=...", memmove
7915         the length of VGA_END plus one.
7917 1999-07-12  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7919         * stage2/bios.c (get_diskinfo): In LBA mode, compute
7920         TOTAL_SECTORS from DRP instead of GEOMETRY.
7921         Clear GEOMETRY->FLAGS first.
7923         * stage2/boot.c (load_image): Fix inverted lines.
7925 1999-07-12  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7927         Support Linux video mode selection.
7929         * stage2/shared.h (LINUX_VID_MODE_OFFSET): New macro.
7930         (LINUX_VID_MODE_NORMAL): Likewise.
7931         (LINUX_VID_MODE_EXTENDED): Likewise.
7932         (LINUX_VID_MODE_ASK): Likewise.
7933         [!WITHOUT_LIBC_STUBS] (strlen): Likewise.
7934         (grub_strlen): Declared.
7935         * stage2/boot.c (load_image): Added Linux video mode selection.
7936         * stage2/char_io.c [!STAGE1_5] (grub_strlen): New function.
7938 1999-07-12  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7940         * stage2/char_io.c (print_error): Print ERRNUM in the format of
7941         %u instead of %d.
7942         (convert_to_ascii) [STAGE1_5]: Eliminate the `x' and `d'
7943         handling code.
7944         (grub_printf): Declare FORMAT as `const char *'.
7945         (grub_printf) [STAGE1_5]: Eliminate the `x' and `d' handling
7946         code.
7947         (get_based_digit): Removed.
7948         (safe_parse_maxint): Remove unnecessary `register' prefixes,
7949         because GCC does better optimization.
7950         Declare DIGIT as `unsigned int' and calculate the value by more
7951         compact instructions.
7952         [!STAGE1_5] (grub_strncat): Declare S2 as `const char *'.
7953         [!STAGE1_5] (grub_strcmp): Declare S1 and S2 as `const char *'.
7954         [!STAGE1_5] (grub_strstr): Likewise.
7955         (grub_memmove): Declare FROM as `const char *'.
7956         The copy code is replaced with inline assembly code stolen from
7957         Linux-2.2.2.
7959         * stage2/shared.h (grub_printf) : Corrected.
7960         (grub_strncat): Likewise.
7961         (grub_memmove): Likewise.
7962         (grub_strstr): Likewise.
7963         (grub_strcmp): Likewise.
7965 1999-07-11  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7967         * stage1/stage1.S (sectors): Change the size to long.
7968         (heads): Likewise.
7969         (sector_start): New variable.
7970         (head_start): Likewise.
7971         (cylinder_start): Likewise.
7972         (final_init): Set %si to SECTORS first, and use %si for memory
7973         references.
7974         Zero %eax so that the high 16 bits are always zero.
7975         Set %di to FIRSTLIST - LISTSIZ instead of FIRSTLIST.
7976         (bootloop): Omit the complex CHS recomputation, and always
7977         compute them from LBA address instead.
7978         Call 32bits div instructions instead of 16bits div instructions.
7979         Update the position where to load data from at the end of this
7980         loop, instead of the beginning.
7982         * stage1/stage1_lba.S: New file.
7983         * stage1/Makefile.am (nodist_pkgdata_DATA): Added stage1_lba.
7984         (LDFLAGS): New variable.
7985         (noinst_PROGRAMS): Added stage1_lba.exec.
7986         (stage1_lba_exec_SOURCES): New variable.
7987         (%: %.exec): New rule.
7989 1999-06-28  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7991         * grub/main.c (main): The third argument for strtoul is changed
7992         to 0 in the case where an option is OPT_INSTALL_PARTIION.
7993         Reported by Pavel Roskin <pavel_roskin@geocities.com>.
7995 1999-06-27  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
7997         * stage2/shared.h (STAGE2_STAGE2_ID): New macro.
7998         (STAGE2_VER_STR_OFFS): Set to 0xd.
7999         (STAGE2_ID_STAGE2): New macro.
8000         (STAGE2_ID_FFS_STAGE1_5): Likewise.
8001         (STAGE2_ID_E2FS_STAGE1_5): Likewise.
8002         (STAGE2_ID_FAT_STAGE1_5): Likewise.
8003         (STAGE2_ID) [!STAGE1_5]: Defined as STAGE2_ID_STAGE2.
8004         (STAGE2_ID) [STAGE1_5] [FSYS_FFS]: Defined as
8005         STAGE2_ID_FFS_STAGE1_5.
8006         (STAGE2_ID) [STAGE1_5] [FSYS_EXT2FS]: Defined as
8007         STAGE2_ID_STAGE1_5.
8008         (STAGE2_ID) [STAGE1_5] [FSYS_FAT]: Defined as
8009         STAGE2_ID_FAT_STAGE1_5.
8010         (COMPAT_VERSION_MINOR): Set to 1.
8011         * stage2/asm.S (stage2_id): New variable.
8012         * stage1/stage1.S: Change the minor version to 1.
8014 1999-06-27  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8016         * configure.in (CFLAGS): Set to "-g", since only this flag is
8017         always sharable.
8018         (STAGE1_CFLAGS): Set to "-O2", and AC_SUBST this.
8019         (GRUB_CFLAGS): Likewise.
8020         (saved_CFLAGS): New variable for temporarily saving CFLAGS.
8021         (STAGE2_CFLAGS): Set to "-Os" if this option is available,
8022         otherwise set to "-fno-strength-reduce -fno-unroll-loops",
8023         and then AC_SUBST this.
8024         * grub/Makefile.am (AM_CFLAGS): Prepended @GRUB_CFLAGS@.
8025         * stage1/Makefile.am (AM_CFLAGS): Prepended @STAGE1_CFLAGS@.
8026         * stage2/Makefile.am (libgrub_a_CFLAGS): Prepened @GRUB_CFLAGS@.
8027         (STAGE2_COMPILE): Prepended @STAGE2_CFLAGS@.
8029         * stage2/asm.S (chain_stage2): Pass CURRENT_PARTITION and
8030         CURRENT_DRIVE, instead of INSTALL_PARTITION and BOOT_DRIVE.
8032 1999-06-27  Pavel Roskin  <pavel_roskin@geocities.com>
8034         * configure.in: set CFLAGS to "-Os -g" for compilers which
8035         understand "-Os" if CFLAGS is not already set. Use
8036         "-O2 -fno-strength-reduce -fno-unroll-loops -g" for older gcc
8037         versions.
8039 1999-06-25  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8041         * stage2/disk_io.c (attempt_mount) [STAGE1_5]: Set FSYS_TYPE to
8042         0, and set it to NUM_FSYS if mount fails.
8043         (real_open_partition): Call rawread in Stage 1.5 as well.
8045 1999-06-24  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8047         * Makefile.am (SUBDIRS): Change the order of the directories so
8048         that a directory will be made after the dependent directories
8049         are made. `grub' depends on `stage2', and `docs' depends on
8050         `grub'. Do not make in parallel.
8051         * docs/help2man: Copied from help2man-1.012, which contains my
8052         previous change.
8053         * docs/grub.8: Regenerated.
8055 1999-06-24  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8057         Build process is cleaned up. Stage 2 and Stage 1.5's are all
8058         built in the directory stage2.
8060         From Pavel Roskin <pavel_roskin@geocities.com>:
8061         * Makefile.am (SUBDIRS): e2fs_stage1_5, ffs_stage1_5,
8062         fat_stage1_5 and shared_src are removed.
8063         (DISTCLEANFILES): Deleted.
8064         * configure.in: Call AC_PROG_RANLIB.
8065         (AC_INIT): Change the argument to stage2/stage2.c.
8066         (LIBS): Renamed to ...
8067         (GRUB_LIBS): ... this, and call AC_SUBST for this.
8068         Our own rules are removed.
8069         (AC_OUTPUT): e2fs_stage1_5/Makefile, ffs_stage1_5/Makefile,
8070         fat_stage1_5/Makefile and shared_src/Makefile are removed.
8071         * docs/Makefile.am (HELP2MAN): The prefix $(srcdir) is removed.
8072         [GRUB_MAINT]: Prepend $(srcdir) to $(HELP2MAN).
8073         * e2fs_stage1_5/Makefile.am: Deleted.
8074         * e2fs_stage1_5/Makefile.in: Likewise.
8075         * fat_stage1_5/Makefile.am: Likewise.
8076         * fat_stage1_5/Makefile.in: Likewise.
8077         * ffs_stage1_5/Makefile.am: Likewise.
8078         * ffs_stage1_5/Makefile.in: Likewise.
8079         * grub/Makefile.am (CLEANFILES): Likewise.
8080         (COMPILE): Likewise.
8081         (INCLUDES): Likewise.
8082         (DEP_FILES): Likewise.
8083         (@SHARED_SRC_RULES@): Likewise.
8084         (AM_CFLAGS): New variable.
8085         (grub_LDADD): Set to the library libgrub.a and @GRUB_LIBS@.
8086         * shared_src/Makefile.am: Deleted.
8087         * shared_src/Makefile.in: Likewise.
8088         * shared_src/apic.h: Moved to ...
8089         * stage2/apic.h: ... here.
8090         * shared_src/asm.S: Moved to ...
8091         * stage2/asm.S: ... here.
8092         * shared_src/bios.c: Moved to ...
8093         * stage2/bios.c: ... here.
8094         * shared_src/boot.c: Moved to ...
8095         * stage2/boot.c: ... here.
8096         * shared_src/char_io.c: Moved to ...
8097         * stage2/char_io.c: ... here.
8098         * shared_src/cmdline.c: Moved to ...
8099         * stage2/cmdline.c: ... here.
8100         * shared_src/common.c: Moved to ...
8101         * stage2/common.c: ... here.
8102         * shared_src/defs.h: Moved to ...
8103         * stage2/defs.h: ... here.
8104         * shared_src/dir.h: Moved to ...
8105         * stage2/dir.h: ... here.
8106         * shared_src/disk_inode.h: Moved to ...
8107         * stage2/disk_inode.h: ... here.
8108         * shared_src/disk_inode_ffs.h: Moved to ...
8109         * stage2/disk_inode_ffs.h: ... here.
8110         * shared_src/disk_io.c: Moved to ...
8111         * stage2/disk_io.c: ... here.
8112         * shared_src/fat.h: Moved to ...
8113         * stage2/fat.h: ... here.
8114         * shared_src/filesys.h: Moved to ...
8115         * stage2/filesys.h: ... here.
8116         * shared_src/freebsd.h: Moved to ...
8117         * stage2/freebsd.h: ... here.
8118         * shared_src/fs.h: Moved to ...
8119         * stage2/fs.h: ... here.
8120         * shared_src/fsys_ext2fs.c: Moved to ...
8121         * stage2/fsys_ext2fs.c: ... here.
8122         * shared_src/fsys_fat.c: Moved to ...
8123         * stage2/fsys_fat.c: ... here.
8124         * shared_src/fsys_ffs.c: Moved to ...
8125         * stage2/fsys_ffs.c: ... here.
8126         * shared_src/gunzip.c: Moved to ...
8127         * stage2/gunzip.c: ... here.
8128         * shared_src/i386-elf.h: Moved to ...
8129         * stage2/i386-elf.h: ... here.
8130         * shared_src/imgact_aout.h: Moved to ...
8131         * stage2/imgact_aout.h: ... here.
8132         * shared_src/mb_header.h: Moved to ...
8133         * stage2/mb_header.h: ... here.
8134         * shared_src/mb_info.h: Moved to ...
8135         * stage2/mb_info.h: ... here.
8136         * shared_src/pc_slice.h: Moved to ...
8137         * stage2/pc_slice.h: ... here.
8138         * shared_src/shared.h: Moved to ...
8139         * stage2/shared.h: ... here.
8140         * shared_src/smp-imps.c: Moved to ...
8141         * stage2/smp-imps.c: ... here.
8142         * shared_src/smp-imps.h: Moved to ...
8143         * stage2/smp-imps.h: ... here.
8144         * shared_src/stage1_5.c: Moved to ...
8145         * stage2/stage1_5.c: ... here.
8146         * shared_src/stage2.c: Moved to ...
8147         * stage2/stage2.c: ... here.
8148         * stage1/Makefile.am (pkgdata_DATA): Renamed to ...
8149         (nodist_pkgdata_DATA): ... this.
8150         (COMPILE): Deleted.
8151         (AM_CFLAGS): New variable.
8152         * stage2/Makefile.am: Completely rewritten from scratch.
8153         (TESTS): New variable.
8154         (noinst_SCRIPTS): Likewise.
8155         (noinst_HEADERS): Likewise.
8156         (EXTRA_DIST): Set to smp-imps.c and $(noinst_SCRIPTS).
8157         (noinst_LIBRARIES): New variable.
8158         (libgrub_a_SOURCES): Likewise.
8159         (libgrub_a_CFLAGS): Likewise.
8160         (pkgdata_DATA): Deleted.
8161         (nodist_pkgdata_DATA): New variable.
8162         (MOSTLYCLEANFILES): Set to $(noinst_PROGRAMS).
8163         (COMPILE): Deleted.
8164         (INCLUDES): Likewise.
8165         (stage2_exec_LDADD): Likewise.
8166         (DEP_FILES): Likewise.
8167         (stage2_exec_SOURCES): Set to the actual source files instead of
8168         dummy.
8169         (DISTFILES): Deleted.
8170         (stage2.exec): Likewise.
8171         (stage2): Likewise.
8172         (@SHARED_SRC_RULES@): Likewise.
8173         (noinst_PROGRAMS): Set to executable formats of Stage 2 and
8174         Stage 1.5's.
8175         (STAGE2_LINK): New variable.
8176         (STAGE2_COMPILE): Likewise.
8177         (STAGE1_5_LINK): Likewise.
8178         (STAGE1_5_COMPILE): Likewise.
8179         (stage2_exec_CFLAGS): Likewise.
8180         (stage2_exec_LDFLAGS): Likewise.
8181         (e2fs_stage1_5_exec_SOURCES): Likewise.
8182         (e2fs_stage1_5_exec_CFLAGS): Likewise.
8183         (e2fs_stage1_5_exec_LDFLAGS): Likewise.
8184         (fat_stage1_5_exec_SOURCES): Likewise.
8185         (fat_stage1_5_exec_CFLAGS): Likewise.
8186         (fat_stage1_5_exec_LDFLAGS): Likewise.
8187         (ffs_stage1_5_exec_SOURCES): Likewise.
8188         (ffs_stage1_5_exec_CFLAGS): Likewise.
8189         (ffs_stage1_5_exec_LDFLAGS): Likewise.
8190         (% : %.exec): New rule.
8192         * stage2/size_test: New file, for checking for the sizes of
8193         Stage 2 and Stage 1.5's.
8195 1999-06-24  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8197         * stage1/stage1.S: Call testb instead of andb when checking if
8198         the drive is a floppy.
8200 1999-06-23  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8202         * grub/asmstub.c [__linux__]: Include linux/fs.h for BLKFLSBUF.
8203         (grub_stage2): Call sync before and after calling doit.
8204         (gurb_stage2) [__linux__]: Invalidate buffer caches by BLKFLSBUF
8205         ioctl.
8206         * grub/main.c (main): Call sync first. Suggested by Pavel Roskin
8207         <pavel_roskin@geocities.com>.
8209         * configure.in: Curses libraries are always checked.
8210         (--enable-sbin-grub): Deleted. Now /sbin/grub is always built.
8211         (--enable-maintainer-mode): New option.
8212         * grub/Makefile.am (EXTRA_PROGRAMS): Deleted.
8213         (sbin_PROGRAMS): Just set to grub.
8214         * docs/Makefile.am (man_MANS): New variable.
8215         (HELP2MAN): Likewise.
8216         (noinst_SCRIPTS): Likewise.
8217         (EXTRA_DIST): Add $(man_MANS) and $(noinst_SCRIPTS).
8218         [GRUB_MAINT]: Define the rule for the /sbin/grub manual.
8219         * docs/help2man: Copied from texinfo-3.12i.
8220         (--section): New option to specify which section a manual
8221         belongs to.
8222         (opt_section): New variable.
8223         (section): Likewise.
8224         * docs/grub.8: Produced by help2man automatically.
8226 1999-06-22  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8228         * shared_src/char_io.c (get_cmdline): Add two missing `break's.
8230         * shared_src/cmdline.c (commands): Add quit.
8231         (enter_cmdline): Change the return type to cmdline_t, and return
8232         CMDLINE_OK if successful, otherwise CMDLINE_ERROR if fail.
8233         (enter_cmdline) [GRUB_UTIL]: Return CMDLINE_ABORT if CUR_HEAP
8234         contains "quit".
8235         [!GRUB_UTIL]: Just print an annotation message.
8236         * shared_src/shared.h (cmdline_t): New enum type.
8237         (enter_cmdline): Change the return type to cmdline_t.
8238         (cmain): Remove ``noreturn'' attribute.
8239         * shared_src/stage2.c (menu_t): New enum type.
8240         (run_menu): Change the return type to menu_t.
8241         If enter_cmdline returns CMDLINE_ABORT, then return MENU_ABORT,
8242         otherwise return MENU_OK.
8243         (cmain): If enter_cmdline aborts, then break the command-line
8244         loop and return. If run_menu aborts, then return.
8246 1999-06-22  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8248         * shared_src/Makefile.am (EXTRA_DIST): Add bios.c. Reported by
8249         Pavel Roskin <pavel_roskin@geocities.com>.
8251 1999-06-21  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8253         * docs/Makefile.am (html): Deleted.
8254         (txt): Likewise.
8255         (EXTRA_DIST): $(txt) and $(html) are removed.
8256         * docs/boot-proposal.html: Removed.
8257         * docs/errors.html: Likewise.
8258         * docs/faq.html: Likewise.
8259         * docs/grub.html: Likewise.
8260         * docs/install.html: Likewise.
8261         * docs/mem64mb.html: Likewise.
8262         * docs/technical.html: Likewise.
8263         * docs/using.html: Likewise.
8264         * docs/PC_partitioning.txt: Likewise.
8265         * docs/bios_mapping.txt: Likewise.
8266         * docs/commands.txt: Likewise.
8267         * docs/embedded_data.txt: Likewise.
8268         * docs/filesystem.txt: Likewise.
8270 1999-06-21  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8272         From Alexander K. Hudek <alexhudek@home.com>:
8273         * shared_src/disk_io.c (real_open_partition): Check if
8274         CURRENT_SLICE is equal to PC_SLICE_TYPE_WIN95_EXTENDED as well.
8275         * shared_src/pc_slice.c (PC_SLICE_TYPE_WIN95_EXTENDED): New
8276         macro.
8277         * shared_src/bios.c (biosdisk): Clear the reserved member of DAP.
8279 1999-06-08  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8281         Color-menu support based on Peter Astrand
8282         <altic@lysator.liu.se>'s patch.
8284         * shared_src/asm.S (nocursor): New function.
8285         * shared_src/cmdline.c (normal_color): New variable.
8286         (highlight_color): Likewise.
8287         (commands): Added "color" command.
8288         (enter_cmdline): Handle the color command.
8289         * shared_src/shared.h (normal_color): Declared.
8290         (highlight_color): Likewise.
8291         [!GRUB_UTIL] (nocursor): Likewise.
8292         * shared_src/stage2.c (print_border) [!GRUB_UTIL]: Color the
8293         menu.
8294         (run_menu) [!GRUB_UTIL]: Call nocursor, and call set_line with
8295         the second argument HIGHLIGHT_COLOR when highlighting a line,
8296         and NORMAL_COLOR when drawing a normal line.
8297         (cmain): Initialize normal_color and highlight_color. Handle
8298         the color command in the same way as the command-line
8299         interface.
8301 1999-06-07  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8303         * e2fs_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Set to 31744.
8304         * fat_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Likewise.
8306 1999-06-06  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8308         The debug version of Stage 2 is removed.
8310         * shared_src/cmdline.c: The imps code is now defined if GRUB_UTIL
8311         is not defined, but not if DEBUG.
8312         (debug): New global variable.
8313         (commands): All commands are always enabled, and added "debug".
8314         (debug_fs_print_func): Defined unconditionally.
8315         (debug_fs_blocklist_func): If DEBUG is true, then call printf.
8316         (enter_cmdline): Handle "testload", "read", "fstest",
8317         "impsprobe" and "displaymem" unconditionally, and added "debug"
8318         handling.
8319         [GRUB_UTIL]: If a command is impsprobe, just fails.
8320         * shared_src/disk_io.c (devread) [!STAGE1_5]: If DEBUG_FS and
8321         DEBUG are true, then call printf.
8322         * shared_src/asm.S (patch_code): Defined unconditionally.
8323         (patch_code_end): Likewise.
8324         * stage1/stage1.S (firstlist) [!FFS_STAGE1_5]: Increase the
8325         number of sectors to 90, because Stage 2 is larger than 80
8326         sectors.
8327         * configure.in: The option --enable-debug is removed, and do
8328         not output "stage2_debug/Makefile".
8329         * Makefile.am (SUBDIRS): stage2_debug is removed.
8330         * stage2_debug/Makefile.am: Deleted.
8331         * stage2_debug/Makefile.in: Likewise.
8333 1999-06-02  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8335         * grub/main.c (verbose): New variable.
8336         (read_only): Likewise.
8337         (OPT_VERBOSE): New macro.
8338         (OPT_READ_ONLY): Likewise.
8339         (longopts): Add --read-only and --verbose options.
8340         (usage): Add the descriptions about --read-only and --verbose.
8341         (main): Handle OPT_VERBOSE and OPT_READ_ONLY.
8342         If HOLD and VERBOSE are non-zero, then display the message
8343         about how to restart /sbin/grub.
8345         * shared_src/shared.h (verbose) [GRUB_UTIL]: Declared.
8346         (read_only) [GRUB_UTIL]: Likewise.
8348         * grub/asmstub.c (hex_dump): New function.
8349         (biosdisk): In the case where SUBFUNC is
8350         BIOSDISK_WRITE, check for READ_ONLY and call nwrite if
8351         READ_ONLY is zero. If VERBOSE is non-zero, display what GRUB
8352         will try to do.
8353         (get_diskinfo): Open DEVNAME with the mode O_RDWR if READ_ONLY
8354         is zero, and attempt to open DEVNAME with the mode O_RDONLY
8355         regardless of ERRNO if READ_ONLY is non-zero. If VERBOSE is
8356         non-zero, then display the drive DRIVE and the file DEVNAME.
8358         * shared_src/disk_io.c (set_device) [STAGE1_5]: Eliminate
8359         completion code.
8361 1999-06-01  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8363         * grub/asmstub.c: Do not use I_AM_VERY_BRAVE any more.
8364         (grub_stage2): Delete first_scsi_disk and add a variable
8365         num_hd, which is used for counting how many drives are
8366         detected.
8367         Initialize the flags member of each element of disks to -1
8368         instead of 0, and check if it is equal to -1 instead of 0 when
8369         close it.
8370         (get_diskinfo): Treat -1 as non-caching state instead of 0.
8372 1999-06-01  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8374         Reported from Klaus Reichl <a8709182@unet.univie.ac.at>:
8375         * docs/.cvsignore: New file.
8376         * shared_src/disk_io.c (print_a_completion): New function
8377         which saves what has been printed to UNIQUE_STRING and printf
8378         it.
8379         (unique) [!STAGE1_5]: New variable.
8380         (unique_string): Likewise.
8381         (print_completions): Use print_a_completion, and improve the
8382         completion facility.
8383         * shared_src/fsys_ext2fs.c (ext2fs_dir) [!STAGE1_5]: Use
8384         print_a_completion instead of just printf.
8385         * shared_src/fsys_ffs.c (ffs_dir) [!STAGE1_5]: Likewise.
8386         * shared_src/fsys_fat.c (fat_dir) [!STAGE1_5]: Likewise.
8387         * shared_src/shared.h (print_a_completion): Declared.
8388         * shared_src/cmdline.c (enter_cmdline): Explicitly cast
8389         int to pointer to char for grub_read.
8390         * grub/asmstub.c (grub_stage2) [__linux__]: Don't use /dev/fd1.
8391         Probe 4 IDE drives instead of 2.
8392         (biosdisk) [__linux__]: Add a prototype for _llseek.
8393         * shared_src/char_io.c (get_cmdline): Update LPOS and LLEN_OLD
8394         when the functon print_completion modifies CMDLINE.
8395         * shared_src/stage2.c (get_line_from_config): Fix LITERAL
8396         handling.
8398 1999-05-25  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8400         * grub/asmstub.c (grub_stage2): Fix a memory leak that FP is
8401         not closed.
8403 1999-05-25  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8405         * grub/main.c: Replace OPT_DISABLE_CONFIG_FILE and
8406         OPT_DISABLE_CURSES with OPT_NO_CONFIG_FILE and OPT_NO_CURSES
8407         respectively.
8408         (longopts): Rename from "disable-config-file" to
8409         "no-config-file", and from "disable-curses" to "no-curses".
8410         (usage): Use "grub" instead of ARGV[0], read the standards.
8411         Change the help message according to the changes above.
8412         (main): Handle OPT_NO_CONFIG_FILE and OPT_NO_CURSES, instead
8413         of OPT_DISABLE_CONFIG_FILE and OPT_DISABLE_CURSES.
8415 1999-05-21  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8417         * docs/TODO: Moved to ...
8418         * TODO: ... here.
8419         * docs/BUGS: Moved to ...
8420         * BUGS: ... here.
8421         * docs/COPYING: Removed.
8422         * docs/Makefile.am (EXTRA_DIST): Get rid of BUGS.
8423         * Makefile.am (EXTRA_DIST): Set to BUGS.
8425 1999-05-17  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8427         * acinclude.m4 (grub_ASM_EXT_C): Do not overrun the command
8428         shift. Reported by Pavel Roskin <pabel_roskin@geocities.com>.
8430 1999-05-14  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8432         * docs/Makefile.am (info_TEXINFOS): Added multiboot.texi.
8433         * docs/multiboot.texi: New file. From Kunihiro Ishiguro.
8435 1999-05-12  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8437         * grub/asmstub.c: Include <errno.h>. Reported by Kunihiro
8438         Ishiguro <kunihiro@zebra.org>.
8440 1999-05-11  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8442         Reported by Brian Brunswick <brian@skarpsey.demon.co.uk>:
8443         * shared_src/asm.S (start) [STAGE1_5]: Jump to 0x0:0x2000.
8444         * shared_src/cmdline.c (enter_cmdline): Doesn't check for the jump
8445         address in stage2. We are not paranoid.
8446         Add a missing RAW_ADDR macro.
8447         * shared_src/diskio.c (grub_open): Call setup_part even in stage1.5.
8448         And, include necessary functions that were eliminated incorrectly.
8449         * shared_src/char_io.c [STAGE1_5]: Eliminate unnecessary functions
8450         for stage1.5.
8452         * grub/asmstub.c (nread): New function. Handle EINTR.
8453         (nwrite): Likewise.
8454         (biosdisk) [I_AM_VERY_BRAVE]: When SUBFUNC is BIOSDISK_WRITE, call
8455         nwrite.
8457         Reported by Pavel Roskin <pavel_roskin@geocities.com>:
8458         * shared_src/fsys_ext2fs.c (off_t): Renamed to ...
8459         (linux_off_t): ... this.
8460         * shared_src/defs.h (off_t): Renamed to ...
8461         (mach_off_t): ... this.
8462         * shared_src/fs.h (BBOFF): Use mach_off_t instead of off_t.
8463         (SBOFF): Likewise.
8465         * e2fs_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Set to 81920.
8466         * fat_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Likewise.
8467         * ffs_stage1_5/Makefile.am (IMPORTANT_SIZE_LIMIT): Set to 7168.
8469 1999-05-03  Gordon Matzigkeit  <gord@trick.fig.org>
8471         From Pavel Roskin:
8472         * shared_src/shared.h: Redeclare.
8474         * grub/main.c (main): Use strncpy rather than pointer assignment
8475         to set the config file name.
8477         * grub/asmstub.c: Make config_file a static array, not a pointer.
8478         Correct the value of VERSION_STRING.
8480 1999-04-10  Gordon Matzigkeit  <gord@trick.fig.org>
8482         * debian/rules (build): Install into /lib instead of /share.
8484 1999-05-03  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8486         Preliminary non-interactive use support.
8488         * grub/main.c (use_config_file): New variable.
8489         (use_curses): Likewise.
8490         (OPT_DISABLE_CONFIG_FILE): New constant.
8491         (OPT_DISABLE_CURSES): Likewise.
8492         (OPT_BATCH): Likewise.
8493         (longopts): Add new options, --disable-config-file, --disable-curses,
8494         and --batch.
8495         (usage): Print the help messages about these new options.
8496         (main): Handle them.
8498         * grub/asmstub.c (grub_stage2) [HAVE_LIBCURSES]: If ! USE_CURSES,
8499         fallback non-curses code.
8500         (stop) [HAVE_LIBCURSES]: Likewise.
8501         (cls) [HAVE_LIBCURSES]: Likewise.
8502         (getxy) [HAVE_LIBCURSES]: Likewise.
8503         (gotoxy) [HAVE_LIBCURSES]: Likewise.
8504         (grub_putchar) [HAVE_LIBCURSES]: Likewise.
8505         (getkey) [HAVE_LIBCURSES]: Likewise.
8506         (checkkey) [HAVE_LIBCURSES]: Likewise.
8507         (set_attrib) [HAVE_LIBCURSES]: Likewise.
8509         * shared_src/cmdline.c (enter_cmdline): Do not use getc, but use
8510         getkey.
8512         * shared_src/stage2.c (cmain) [GRUB_UTIL]: Check if USE_CONFIG_FILE
8513         is non-zero or not.
8515         * shared_src/shared.h (getc): Removed.
8516         (use_config_file) [GRUB_UTIL]: Add the declaration.
8517         (use_curses) [GRUB_UTIL]: Likewise.
8519 1999-05-02  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8521         * shared_src/asm.S (biosdisk_standard): Pop %ebp correctly, reported
8522         by Pavel Roskin <pavel_roskin@geocities.com>.
8524 1999-04-25  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8526         * docs/menu.lst: Rewritten, so that it contains up-to-date
8527         information and FAQish configuration examples.
8529 1999-04-09  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8531         * shared_src/asm.S (get_diskinfo_floppy): Correct the number of heads
8532         and the one of cylinders.
8534 1999-04-06  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8536         * grub/asmstub.c (get_diskinfo): Compute the total number of sectors
8537         for DRIVE.
8539         * shared_src/asm.S (get_diskinfo_standard): Clear the data segment
8540         after calling int 0x13. Restore the base pointer after returning
8541         to protected mode.
8542         (get_diskinfo_floppy): Likewise.
8544         * shared_src/bios.c (get_diskinfo): Always set the size of DRP to
8545         the max size of DRP, regardless of the major version of extensions.
8547 1999-04-03  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8549         * shared_src/shared.h (struct geometry): Declare total_sectors as
8550         unsigned long instead of unsigned long long, because GRUB represents
8551         a sector number by 4bytes integer, so it doesn't make sense.
8553         * shared_src/bios.c (biosdisk) [!NO_INT13_FALLBACK]: Recompute
8554         TOTAL_SECTORS according to CHS information.
8555         (get_diskinfo) [DEBUG]: Print the geometry of DRIVE.
8557         * shared_src/disk_io.c (real_open_partition): Set PART_LENGTH to
8558         BUF_GEOM.TOTAL_SECTORS.
8560 1999-04-01  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8562         * docs/texinfo.tex: Copied from automake-1.4a.
8564         * configure.in (SHARED_SRC_RULES): Add bios into shared sources.
8566         * e2fs_stage1_5/Makefile.am (e2fs_stage1_5_exec_LDADD): Added bios.o.
8567         * fat_stage1_5/Makefile.am (fat_stage1_5_exec_LDADD): Likewise.
8568         * ffs_stage1_5/Makefile.am (ffs_stage1_5_exec_LDADD): Likewise.
8569         * stage2/Makefile.am (stage2_exec_LDADD): Likewise.
8570         * stage2_debug/Makefile.am (stage2_debug_exec_LDADD): Likewise.
8572         * shared_src/Makefile.am (EXTRA_DIST): Added bios.c.
8574         * shared_src/asm.S (biosdisk): Deleted. Now defined in bios.c.
8575         (get_diskinfo): Likewise.
8576         (biosdisk_int13_extensions): New function.
8577         (biosdisk_standard): Likewise.
8578         (check_int13_extensions): Likewise.
8579         (get_diskinfo_int13_extensions): Likewise.
8580         (get_diskinfo_standard): Likewise.
8581         (get_diskinfo_floppy): Likewise.
8583         * shared_src/bios.c: New file.
8585         * shared_src/shared.h (struct geometry): Added new member,
8586         total_sectors.
8588 1999-03-28  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8590         * shared_src/stage2.c (print_entries): Correctly assign MENU_ENTRIES
8591         the entries starting from FIRST.
8593 1999-03-27  Gordon Matzigkeit  <gord@trick.fig.org>
8595         * Change everything to use memset and memmove instead of bzero and
8596         bcopy.  GNB's Not BSD.
8598         * shared_src/shared.h (grub_memset): Adapted from grub_bzero.
8599         (grub_memmove): Adapted from grub_bcopy.
8601         * grub/asmstub.c (checkkey): Fix unterminated comment.
8603         * shared_src/char_io.c (grub_printf): Renamed from printf.
8604         (grub_tolower): Renamed from tolower.
8605         (grub_isspace): Renamed from isspace.
8606         (grub_strncat): Renamed from strncat.
8607         (grub_strstr): Renamed from strstr.
8608         (grub_bcopy): Renamed from bcopy.
8609         (grub_bzero): Renamed from bzero.
8611         From Bradford Hovinen:
8612         * shared_src/char_io.c (get_cmdline): Add new argument to hide
8613         password entry.
8614         (grub_strcmp): New function.
8615         * shared_src/shared.h (get_cmdline): Fix declaration.
8616         (grub_strcmp): Declare.
8617         * shared_src/stage2.c (run_menu): Use get_cmdline with an
8618         ECHO_CHAR of `*'.  This protects against both brute-force and
8619         sidelong-glance password cracking attempts.
8621         * grub/main.c (usage): Display defaults for stage2 options.
8623         * grub/asmstub.c [WITHOUT_LIBC_STUBS]: Renamed from
8624         NO_REMAPPING_LIBC_FUNCTIONS.
8625         * grub/main.c: Likewise.
8626         * shared_src/shared.h: Likewise.
8628 1999-03-27  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8630         * grub/asmstub.c (set_attrib): Use inch and addch, instead of
8631         chgat, because chgat doesn't work as expected.
8633 1999-03-26  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8635         * grub/asmstub.c (grub_stage2) [HAVE_LIBCURSES]: Call nodelay.
8636         (checkkey) [HAVE_LIBCURSES]: If getting an input character, then
8637         ungetch it, because checkkey shouldn't modify the input queue.
8639         Use file descriptors instead of file pointers to support
8640         >4GB disks in Linux.
8642         * grub/asmstub.c (grub_stage2): Call close instead of fclose.
8643         (get_diskinfo): Call open instead of fopen.
8644         (biosdisk) [__linux__]: Use _llseek instead of lseek.
8645         (biosdisk): Call read instead of fread.
8647         Add options so that the user can specify the config file.
8649         * grub/Makefile.am (CPPFLAGS): Use -fwritable-strings, because
8650         grub assumes that all strings resides at the data section.
8652         * grub/main.c: Define NO_REMAPPING_LIBC_FUNCTIONS before including
8653         shared.h.
8654         (OPT_CONFIG_FILE): New macro.
8655         (OPT_INSTALL_PARTITION): Likewise.
8656         (OPT_BOOT_DRIVE): Likewise.
8657         (longopts): Add new options, config-file, install-partition and
8658         boot-drive.
8659         (usage): Add the documentation for them.
8660         (main): Add handling code for OPT_CONFIG_FILE, OPT_INSTALL_PARTITION
8661         and OPT_BOOT_DRIVE.
8663         * grub/asmstub.c: Define NO_REMAPPING_LIBC_FUNCTIONS before including
8664         shared.h.
8665         (config_file): Make it char * instead of char [].
8666         (getrtsecs): Return current time instead of 0xff.
8668         * shared_src/shared.h [NO_REMAPPING_LIBC_FUNCTIONS]: Don't define
8669         libc-API-compatible function names.
8670         (config_file): Change the prototype from char [] to char *.
8671         (grub_putchar): Renamed from putchar.
8673 1999-03-25  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8675         * char_io.c (get_cmdline): Call cl_setcpos even if lpos == llen,
8676         because ncurses won't update the cursor position.
8678         * grub/main.c (OPT_HOLD): New macro.
8679         (longopts): New option --hold.
8680         (usage): Add the documentation about --hold.
8681         (main): Set hold if --hold is specified. Wait until cleared.
8683 1999-03-22  Gordon Matzigkeit  <gord@trick.fig.org>
8685         * shared_src/cmdline.c (enter_cmdline): Check the return value of
8686         set_device in the `root' command.
8688         * shared_src/char_io.c (memcheck): Special-case cur_part_desc and
8689         reenable memory checking.
8691 1999-03-21  Gordon Matzigkeit  <gord@trick.fig.org>
8693         * shared_src/boot.c (load_image): Make sure we use the mapped
8694         address before actually writing data to memaddr.
8696         * shared_src/char_io.c (get_cmdline): Only zero-terminate if there
8697         were leading blanks.  This prevents accidental truncation of
8698         commands.
8700         * grub/asmstub.c (get_diskinfo): Cache device geometries as well
8701         as file handles.
8702         Use the Linux HDIO_GETGEO ioctl to make a better guess at hard
8703         disk geometries.
8705 1999-03-16  Gordon Matzigkeit  <gord@trick.fig.org>
8707         * shared_src/shared.h (geometry_t): Delete typedef, until we
8708         actually use it.
8710 1999-03-16  OKUJI Yoshinori  <okuji@kuicr.kyoto-u.ac.jp>
8712         * shared_src/asm.S (biosdisk): Use a structure for geometry
8713         instead of a integer.
8714         (get_diskinfo): Take a pointer to a geometry structure as the
8715         second argument, and fill a geometry in it. Return 1 if an error
8716         occurs, otherwise return 0.
8717         * shared_src/boot.c (bsd_boot): Compute BIOS geometries for BSD.
8718         * shared_src/cmdline.c (enter_cmdline): Declare dest_geom as
8719         struct geometry.
8720         * shared_src/disk_io.c (buf_geom): Declare as struct geometry.
8721         * shared_src/filesys.h (SECTORS): Deleted.
8722         (HEADS): Likewise.
8723         (CYLINDERS): Likewise.
8724         * shared_src/shared.h (BIOSDISK_FLAG_LBA_EXTENSION): New macro.
8725         (struct geometry): New structure.
8726         (buf_geom): Correct the prototype.
8727         (get_diskinfo): Likewise.
8728         (biosdisk): Likewise.
8730 1999-03-15  Gordon Matzigkeit  <gord@trick.fig.org>
8732         * grub/asmstub.c (doit): Nested function to get a clean stack
8733         frame while in grub_stage2.
8734         Use different assembler magic.  From OKUJI Yoshinori.
8736 1999-03-14  Gordon Matzigkeit  <gord@trick.fig.org>
8738         * shared_src/stage2.c (run_menu): Use A_REVERSE and A_NORMAL
8739         constants instead of magic numbers.
8741         * shared_src/shared.h (A_REVERSE): Renamed from ATTR_INVERSE for
8742         compatibility with curses.
8743         (A_NORMAL): Renamed from ATTR_NORMAL.
8745         * shared_src/cmdline.c (enter_cmdline): Change prompt to "grub> ".
8746         (enter_cmdline): Only abort the boot if we are in a script.
8748         * shared_src/stage2.c (run_menu): Change prompts to "grub edit> ".
8750         * shared_src/char_io.c (memcheck): Use RAW_ADDR to compute memory
8751         locations.
8752         (get_cmdline): Change the `goto next line' code to account for
8753         newlines deleting to end of line under curses.
8755         * Innumerable cleanups to fix warnings.  There are still too many
8756         typecasts in the wrong places (int variables used to hold
8757         pointers, then casted to a pointer type), but things look better.
8759         * configure.in (CPPFLAGS): Bump up GCC warnings to -Wall
8760         -Wmissing-prototypes -Wunused.
8762         * shared_src/shared.h: Delete stupid declarations, and totally
8763         rearrange for clarity.
8764         (inb, outb): Move to cmdline.c, since it's only used there.
8765         (print_possibilities, fsmax, fsys_table): Move definitions to
8766         disk_io.c.
8768         * grub/asmstub.c: Fill in more stubs.
8770 1999-03-13  Gordon Matzigkeit  <gord@trick.fig.org>
8772         * shared_src/gunzip.c (border): Rename to bitorder, to resolve
8773         clash with curses.
8774         * shared_src/stage2.c (timeout): Rename to grub_timeout.
8776         * configure.in: Check for curses libraries for use with
8777         /sbin/grub.
8779         * shared_src/shared.h (KEY_DELETE): Rename to KEY_DC, for
8780         compatibility with curses.
8781         (KEY_INSERT): Rename to KEY_IC.
8782         (KEY_PGDN): Rename to KEY_NPAGE.
8783         (KEY_PGUP): Rename to KEY_PPAGE.
8785         * shared_src/asm.S (asm_getkey): Renamed to getkey.
8787         * shared_src/char_io.c (getkey): Delete, because it's useless.
8789         * shared_src/shared.h: Resolve name clashes with libc by renaming
8790         overlapping functions to have grub_ prefixes, then defining
8791         macros.
8793         * grub/asmstub.c (start_stage2): Make some assertions about our
8794         scratch memory area.
8796         * shared_src/shared.h (end): Delete declaration.
8797         (RAW_ADDR, RAW_SEG): Macros to redirect /sbin/grub memory requests
8798         through grub_scratch_mem.
8800         * grub/asmstub.c (get_mem_map): Implement, simulating 4MB
8801         contiguous memory.
8802         (get_code_end): Implement, simulating with a malloced area.
8803         grub/asmstub.c (start_stage2): Initialize grub_scratch_mem.
8805         * shared_src/asm.S (get_mem_map): Some BIOSes expect the high word
8806         of %eax to be zero.
8807         (get_code_end): Move this from common.c so that we can stub it out
8808         in the simulator.
8810         * debian/rules: Make sure info files end up in /usr/info, not
8811         /info.
8813 1999-03-10  Gordon Matzigkeit  <gord@trick.fig.org>
8815         * shared_src/asm.S (biosdisk): Make LBA mode work correctly.  From
8816         OKUJI Yoshinori.
8817         Unconditionally define NO_INT13_FALLBACK until we release GRUB
8818         0.6.  This will help debug any problems with the LBA support until
8819         then.
8821 1999-03-09  Gordon Matzigkeit  <gord@trick.fig.org>
8823         * shared_src/asm.S (biosdisk): Compute location of
8824         disk_address_packet correctly.  From OKUJI Yoshinori.
8826 1999-03-08  Gordon Matzigkeit  <gord@trick.fig.org>
8828         * docs/grub.texi: New Texinfo documentation.
8830         * shared_src/disk_io.c (set_device): First stab at interpreting
8831         Mach-style partition naming.
8833         * shared_src/stage2.c (run_menu): Don't say it was a failure if
8834         enter_cmdline returns nonzero... just wait for a key.
8836         * shared_src/cmdline.c (enter_cmdline): Return nonzero, and avoid
8837         the fallback command if we did an install.
8839         * shared_src/asm.S (_start): New explicit symbol to supress
8840         warnings.
8842         * e2fs_stage1_5/Makefile.am (NO_FANCY_STUFF): Renamed to STAGE1_5,
8843         since that describes this conditional more accurately.
8844         * fat_stage1_5/Makefile.am: Likewise.
8845         * ffs_stage1_5/Makefile.am: Likewise.
8846         * shared_src/asm.S: Likewise.
8847         * shared_src/char_io.c: Likewise.
8848         * shared_src/common.c: Likewise.
8849         * shared_src/disk_io.c: Likewise.
8850         * shared_src/fsys_ext2fs.c: Likewise.
8851         * shared_src/fsys_ffs.c: Likewise.
8852         * shared_src/shared.h: Likewise.
8854 1999-03-07  Gordon Matzigkeit  <gord@trick.fig.org>
8856         * configure.in (SHARED_SRC_RULES): Automatically generate
8857         Makefile dependencies for files in shared_src.
8858         e2fs_stage1_5/Makefile.am: Use them.
8859         fat_stage1_5/Makefile.am: Likewise.
8860         ffs_stage1_5/Makefile.am: Likewise.
8861         grub/Makefile.am: Likewise.
8862         stage2/Makefile.am: Likewise.
8863         stage2_debug/Makefile.am: Likewise.
8865         * shared_src/disk_inode.h: Fix typo: i_ic shouldn't be defined.
8867         * shared_src/fsys_ffs.c (block_map): Make static, since this
8868         function isn't used outside of its defining file.
8870         * shared_src/disk_io.c [NO_FANCY_STUFF]: Eliminate a whole bunch
8871         more functions from the stage1.5.  From OKUJI Yoshinori.
8872         * shared_src/fsys_ffs.c: Likewise.
8873         * shared_src/char_io.c: Likewise.
8875 1999-03-05  Gordon Matzigkeit  <gord@trick.fig.org>
8877         * shared_src/char_io.c (getkey): Don't set BUF_DRIVE to -1.
8878         BUF_DRIVE has nothing at all to do with getkey.
8880         * shared_src/common.c (err_list): Change description of ERR_GEOM
8881         to be more informative.
8883         * Makefile.am (configure): Depend on debian/changelog.
8885         * configure.in (host_cpu): Make all fully i386-compatible CPUs be
8886         identified as i386.
8887         (AM_INIT_AUTOMAKE): Fetch values for PACKAGE and VERSION from
8888         debian/changelog, so that we only have one file to update.
8890         * shared_src/asm.S (get_diskinfo): Fix a few bit-twiddling bugs in
8891         the BIOS extension detection code.
8892         (biosdisk) [AWARD_INT13_EXTENSIONS]: Preliminary implementation
8893         of Award's encoding of cylinder bits 10 and 11.
8894         (biosdisk) [NO_INT13_FALLBACK]: If defined, don't use the standard
8895         disk interface if the extended interface fails.
8897         * configure.in: Make sure $(host_cpu) and $(host_vendor) are
8898         substituted into the Makefile.
8900         * e2fs_stage1_5/Makefile.am (pkgdatadir): Install files in
8901         $(datadir)/grub/$(host_cpu)-$(host_vendor).
8902         * fat_stage1_5/Makefile.am: Likewise.
8903         * ffs_stage1_5/Makefile.am: Likewise.
8904         * stage1/Makefile.am: Likewise.
8905         * stage2/Makefile.am: Likewise.
8906         * stage2_debug/Makefile.am: Likewise.
8908 1999-03-03  Gordon Matzigkeit  <gord@trick.fig.org>
8910         * shared_src/asm.S (biosdisk): Use LBA mode if high nibble of
8911         GEOMETRY is nonzero.
8912         (get_diskinfo): Set high nibble of GEOMETRY (0xf0000000) to 1 if
8913         LBA mode is detected.
8915 1999-03-02  Gordon Matzigkeit  <gord@trick.fig.org>
8917         * shared_src/disk_io.c (make_saved_active): Use BIOSDISK_READ and
8918         BIOSDISK_WRITE.
8920         * shared_src/cmdline.c (enter_cmdline): Use BIOSDISK_WRITE.
8922         * shared_src/shared.h (BIOSDISK_SUBFUNC_READ,
8923         BIOSDISK_SUBFUNC_WRITE): Delete constants.
8925         * shared_src/asm.S (biosdisk): Change subfunc argument to be
8926         read=0, write=1.
8928         * configure.in: Drop redundant AC_PROG_INSTALL.  From OKUJI
8929         Yoshinori.
8931 1999-03-01  Gordon Matzigkeit  <gord@trick.fig.org>
8933         * debian/rules (binary-arch): Properly install README.debian.
8935         * acinclude.m4 (grub_OBJCOPY_ABSOLUTE): Don't forget to move the
8936         old binary out of the way before reentering the loop.
8937         (grub_ASM_ADDR32): Delete conftest files after running the test.
8939         * debian/rules (binary-arch): Remove empty /sbin directory until
8940         /sbin/grub is installed.  Use $(DESTDIR) instead of $(prefix) to
8941         install files.
8943         * shared_src/asm.S (version_string): Set the version string from
8944         the VERSION specified in configure.in.
8946         * Change all Makefiles into Makefile.ams.  Many major build
8947         environment changes to get Automake/Autoconf working nicely.
8949 1999-02-28  Gordon Matzigkeit  <gord@trick.fig.org>
8951         * NEWS: Moved from docs/NEWS.
8953         * configure.in, acinclude.m4: New files for Autoconf.  From OKUJI
8954         Yoshinori.
8956         * AUTHORS, INSTALL: New files.
8958 1999-02-24  Gordon Matzigkeit  <gord@trick.fig.org>
8960         * stage1/stage1.S (after_BPB): Do a hard disk probe first, so that
8961         we can work with IDE floppies (like the LS-120).
8963         * Run GNU Indent on */*.[ch].
8965 1999-02-21  Gordon Matzigkeit  <gord@trick.fig.org>
8967         * debian: Add to the distribution, since we maintain the GRUB
8968         Debian package ourselves.
8970         * grub/asmstub.c: New file to implement stubbed assembly functions
8971         under Unix.
8973         * stage1/Makefile: Delete spurious dependencies on Makefile.
8974         * stage2/Makefile: Likewise.
8975         * stage2_debug/Makefile: Likewise.
8976         * grub/Makefile: Likewise.
8978         * shared_src/fsys_ext2fs.c (ext2fs_dir): Follow symbolic links
8979         rather than giving an error.
8981         * shared_src/common.c (err_list): Use labeled elements to
8982         associate messages with error codes.
8983         * shared_src/shared.h: Make error codes into an enumerated type.
8985         * shared_src/common.c (err_list): Add ERR_SYMLINK_LOOP.
8986         * shared_src/shared.h: Likewise.
8988         * shared_src/char_io.c (bcopy): Don't make any assumptions about
8989         the length of an unsigned long.
8991         * grub/Makefile: Treat CFLAGS, CPPFLAGS, LDFLAGS according to
8992         GNU standards.
8993         * stage2/Makefile: Likewise.
8994         * e2fs_stage1_5/Makefile: Likewise.
8995         * fat_stage1_5/Makefile: Likewise.
8996         * ffs_stage1_5/Makefile: Likewise.
8998 1999-02-20  Gordon Matzigkeit  <gord@trick.fig.org>
9000         * docs/index.html: Rename to grub.html, so that we don't hide
9001         files in this directory from a web browser.
9003 1999-02-15  Gordon Matzigkeit  <gord@trick.fig.org>
9005         * Makefile.end (PROGS): Add grub.
9007         * grub/main.c: New file.
9009         * grub/Makefile: New directory to contain the stage2 Unix program.
9011         * shared_src/cmdline.c: Use substring.
9012         * shared_src/fsys_ext2fs.c: Likewise.
9013         * shared_src/fsys_fat.c: Likewise.
9014         * shared_src/fsys_ffs.c: Likewise.
9015         * shared_src/stage2.c: Likewise.
9017         * shared_src/shared.h: Delete strcmp, declare substring.
9019         * shared_src/char_io.c (strcmp): Rename to `substring', because
9020         this function doesn't behave the same as libc's strcmp.
9022 1999-02-14  Gordon Matzigkeit  <gord@trick.fig.org>
9024         * shared_src/shared.h: (addr32, data32): Delete definitions.
9026         * stage1/stage1.S: Modify to use GAS's new .code16 semantics.
9027         shared_src/asm.S: Likewise.
9029         * configure: Test to see if the `addr32' instruction is supported.
9030         Ian Lance Taylor says that GAS's interpretation of `.code16' has
9031         changed.  Older versions always generated 32-bit code, but
9032         implicitly inserted addr32 and data32 when .code16 was given.
9033         Newer versions generate 16-bit code, and require manual addr32 and
9034         data32 overrides.
9036         * shared_src/shared.h: Add some assertions to check that buffer
9037         addresses are properly defined.
9039 1999-02-12  Gordon Matzigkeit  <gord@trick.fig.org>
9041         * shared_src/stage2.c (run_menu): Pause if we failed to boot both
9042         the default and fallback entries.
9044         * configure: Check to make sure that GAS actually honors .code16
9045         directives.
9047 1999-02-02  Gordon Matzigkeit  <gord@trick.fig.org>
9049         * shared_src/asm.S: Fix typo that called interrupt 0xd (decimal
9050         13) instead of 0x13.
9052 1999-01-31  Gordon Matzigkeit  <gord@trick.fig.org>
9054         * e2fs_stage1_5/Makefile: Avoid gratuitous dependencies on
9055         Makefile.
9056         * fat_stage1_5/Makefile: Likewise.
9057         * ffs_stage1_5/Makefile: Likewise.
9059         * Makefile.end (PROGS): Add e2fs_stage1_5, fat_stage1_5, and
9060         grubinst.
9061         (distclean): New GNU standard rule.
9063 1998-10-23  Gordon Matzigkeit  <gord@trick.fig.org>
9065         * configure: Accept `--host' as a synonym for `--target', and
9066         accept a non-optional argument as the target name.  Join the
9067         prefix to the tool name with a hyphen.
9069         * shared_src/disk_io.c (print_fsys_type): Always print the
9070         partition type.
9072         * shared_src/stage2.c (run_menu): Check to make sure that the
9073         fallback entry is nonnegative.
9074         (run_menu): For consistency, use `e' rather than enter to edit the
9075         command entry.