]> git.ipfire.org Git - thirdparty/grub.git/commit
2004-03-27 Yoshinori K. Okuji <okuji@enbug.org>
authorokuji <okuji@localhost>
Sat, 27 Mar 2004 17:02:54 +0000 (17:02 +0000)
committerokuji <okuji@localhost>
Sat, 27 Mar 2004 17:02:54 +0000 (17:02 +0000)
commit4f29a8af45b9c7edcb48b0bd2ccc34df1bb85cec
treee0dc611ec01f8ba7c7ea2e69e16e74bee042506d
parenta1d48b992ff99c01d3999ddf805f13132d6e3b61
2004-03-27  Yoshinori K. Okuji  <okuji@enbug.org>

* stage2/char_io.c [!GRUB_UTIL] (memcpy): New function. It is
defined as an alias of grub_memmove. This is copied from GRUB 2.

* stage2/disk_io.c (print_completions): Simplified conditionals
to make it easier to edit the file with Emacs.
Added support for (cd).
(set_device): Likewise.

* stage2/common.c (init_bios_info): Check if BOOT_DRIVE is a
CDROM drive. If it is true, set CDROM_DRIVE to BOOT_DRIVE.
(cdrom_drive): New variable.

From Leonid Lisovskiy <lly@pisem.net>:
* stage2/start_eltorito.S: New file.

* stage2/stage2.c (run_menu): Use GRUB_INVALID_DRIVE instead of
0xFF.

* stage2/shared.h (STAGE2_ID_ISO9660_STAGE1_5): New macro.
[FSYS_ISO9660] (STAGE2_ID): Set to STAGE2_ID_ISO9660_STAGE1_5.
(struct geometry): Added a new member ``sector_size''.
(BIOSDISK_FLAG_CDROM): New macro.
(cdrom_drive): Declared.

* stage2/fsys_iso9660.c: New file.
* stage2/iso9660.h: Likewise.

* stage2/filesys.h (FSYS_ISO9660_NUM): New macro.
[FSYS_ISO9660] (iso9660_mount): Declared.
[FSYS_ISO9660] (iso9660_read): Likewise.
[FSYS_ISO9660] (iso9660_dir): Likewise.
(NUM_FSYS): Added FSYS_ISO9660_NUM.

* stage2/disk_io.c (fsys_table) [FSYS_ISO9660]: Added iso9660.
(current_drive): Use GRUB_INVALID_DRIVE.
(log2): New function.
(rawread): Use BUF_GEOM.SECTOR_SIZE instead of SECTOR_SIZE.
Change the type of BUFADDR from int to char *.
Use a virtual track to make sure that one track fits in the
buffer.
(sane_partition): Allow CURRENT_DRIVE to be CDROM_DRIVE, because
a bios drive for a CD-ROM is often assigned to greater than
0x88.
(set_device): Use GRUB_INVALID_DRIVE instead of 0xFF.
(setup_part): Likewise.

* stage2/cmdline.c (init_cmdline): Use GRUB_INVALID_DRIVE.

* stage2/builtins.c (install_func): Use GRUB_INVALID_DRIVE.
(setup_func): Added iso9660_stage1_5.

* stage2/bios.c (biosdisk): Don't fall back to the CHS mode
if the drive is a CDROM.
(get_cdinfo): New function.
(get_diskinfo): Call get_cdinfo if the drive is greater than or
equal to 0x88 or the drive supports LBA.
Set the sector size to SECTOR_SIZE if it is not a CD-ROM.

* stage2/asm.S (biosdisk_int13_extensions): Take a word
argument AX instead of a byte argument AH.
(get_diskinfo_int13_extensions): Removed.

* stage2/Makefile.am (noinst_HEADERS): Added iso9660.h.
(libgrub_a_SOURCES): Added fsys_iso9660.c.
(libgrub_a_CFLAGS): Added -DFSYS_ISO9660=1.
(pkgdata_DATA): Added iso9660_stage1_5 and stage2_eltorito.
(noinst_PROGRAMS): Added iso9660_stage1_5.exec and
start_eltorito.exec.
(noinst_DATA): Added start_eltorito.
(pre_stage2_exec_SOURCES): Added fsys_iso9660.c.
(START_ELTORITO_LINK): New variable.
(start_eltorito_exec_SOURCES): Likewise.
(start_eltorito_exec_CCASFLAGS): Likewise.
(start_eltorito_exec_LDFLAGS): Likewise.
(start_eltorito_exec-start.$(OBJEXT)): New dependency.
(stage2_eltorito): New target.
(iso9660_stage1_5_exec_SOURCES): New variable.
(iso9660_stage1_5_exec_CFLAGS): Likewise.
(iso9660_stage1_5_exec_CCASFLAGS): Likewise.
(iso9660_stage1_5_exec_LDFLAGS): Likewise.

* stage1/stage1.h (GRUB_INVALID_DRIVE): New macro.

* stage1/stage1.S (boot_drive): Use the macro GRUB_INVALID_DRIVE.
(real_start): Likewise.

* lib/device.c (get_drive_geometry): Set GEOM->SECTOR_SIZE to
SECTOR_SIZE by default.

* configure.ac (--disable-iso9660): New option.
28 files changed:
AUTHORS
ChangeLog
INSTALL
NEWS
THANKS
configure
configure.ac
docs/grub-md5-crypt.8
docs/grub-terminfo.8
grub/Makefile.in
lib/device.c
stage1/stage1.S
stage1/stage1.h
stage2/Makefile.am
stage2/Makefile.in
stage2/asm.S
stage2/bios.c
stage2/builtins.c
stage2/char_io.c
stage2/cmdline.c
stage2/common.c
stage2/disk_io.c
stage2/filesys.h
stage2/fsys_iso9660.c [new file with mode: 0644]
stage2/iso9660.h [new file with mode: 0644]
stage2/shared.h
stage2/stage2.c
stage2/start_eltorito.S [new file with mode: 0644]