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