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