~ubuntu-branches/ubuntu/intrepid/grub/intrepid

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