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