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