Commit Graph
34 Commits
Author SHA1 Message Date
okuji 4f29a8af45 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.
2004-03-27 17:02:54 +00:00
okuji b42b9b7e22 2004-03-12 Yoshinori K. Okuji <okuji@enbug.org>
From Boji Tony Kannanthanam <boji.t.kannanthanam@intel.com>:
	* util/grub-install.in (convert): Add support for ATARAID
	device names.
	* lib/device.c (get_ataraid_disk_name) [__linux__]: New
	function.
	(init_device_map) [__linux__]: Probe ATARAID disks.

	* stage2/size_test (check): Don't use the local statement any
	longer. It was unneeded actually. Reported by Paul Jarc.
2004-03-12 18:16:40 +00:00
okuji 9b1392428c 2004-03-12 Yoshinori K. Okuji <okuji@enbug.org>
From Sergey Matveychuk <sem@ciam.ru>:
	* lib/device.c (get_drive_geometry): Do not open the same device
	more than once unnecessarily.
	(get_drive_geometry) [__FreeBSD_version >= 500040]: Use new
	ioctl methods.
	(get_floppy_disk_name) [__FreeBSD__ >= 4]: Use /dev/fd%d rather
	than /dev/rfd%d.
	(get_ide_disk_name) [__FreeBSD__ >= 4]: Use /dev/ad%d rather
	than /dev/rad%d.
	(get_scsi_disk_name) [__FreeBSD__ >= 4]: Use /dev/da%d rather
	than /dev/rda%d.
	* grub/asmstub.c (get_diskinfo): Check if ERRNO is EPERM as
	well.
2004-03-12 17:31:51 +00:00
okuji 7b7b9a3f1b 2004-01-17 Yoshinori K. Okuji <okuji@enbug.org>
* lib/device.c [__linux__] (MAJOR): Support 32 bit and 64 bit
	dev_t. This code is stolen from glibc.
	Suggested by Shen Feng <shen@nanjing-fnst.com>.
2004-01-17 16:00:03 +00:00
okuji 3b2816320b 2003-11-30 Yoshinori K. Okuji <okuji@enbug.org>
* lib/device.c (read_device_map) (sho_warning): New internal
	function.
	(read_device_map): If DRIVE is greater than 8, emit a warning
	and ignore the drive, rather than exiting abnormally.
	Reported by Greg Newby <newby@arsc.edu>.
2003-11-30 17:13:12 +00:00
okuji 7899a91337 2003-10-19 Yoshinori K. Okuji <okuji@enbug.org>
Migrated to newer autotools. Also, don't install mkbimage
	because its name is too general and it does not conform to the
	GNU Coding Standards in some points.

	* util/Makefile.am (EXTRA_DIST): New variable.
	(sbin_SCRIPTS): Removed mkbimage.
	(noinst_SCRIPTS): Added mkbimage.

	* stage1/Makefile.am (AM_ASFLAGS): Renamed to ...
	(AM_CCASFLAGS): ... this.

	* stage2/Makefile.am (pre_stage2_exec_ASFLAGS): Renamed to ...
	(pre_stage2_exec_CCASFLAGS): ... this.
	(start_exec_ASFLAGS): Renamed to ...
	(start_exec_CCASFLAGS): ... this.
	(e2fs_stage1_5_exec_ASFLAGS): Renamed to ...
	(e2fs_stage1_5_exec_CCASFLAGS): ... this.
	(fat_stage1_5_exec_ASFLAGS): Renamed to ...
	(fat_stage1_5_exec_CCASFLAGS): ... this.
	(ffs_stage1_5_exec_ASFLAGS): Renamed to ...
	(ffs_stage1_5_exec_CCASFLAGS): ... this.
	(minix_stage1_5_exec_ASFLAGS): Renamed to ...
	(minix_stage1_5_exec_CCASFLAGS): ... this.
	(reiserfs_stage1_5_exec_ASFLAGS): Renamed to ...
	(reiserfs_stage1_5_exec_CCASFLAGS): ... this.
	(vstafs_stage1_5_exec_ASFLAGS): Renamed to ...
	(vstafs_stage1_5_exec_CCASFLAGS): ... this.
	(jfs_stage1_5_exec_ASFLAGS): Renamed to ...
	(jfs_stage1_5_exec_CCASFLAGS): ... this.
	(xfs_stage1_5_exec_ASFLAGS): Renamed to ...
	(xfs_stage1_5_exec_CCASFLAGS): ... this.
	(diskless_exec_ASFLAGS): Renamed to ...
	(diskless_exec_CCASFLAGS): ... this.
	(nbloader_exec_ASFLAGS): Renamed to ...
	(nbloader_exec_CCASFLAGS): ... this.
	(pxeloader_exec_ASFLAGS): Renamed to ...
	(pxeloader_exec_CCASFLAGS): ... this.

	* configure.in: Removed.
	* configure.ac: New file. Mostly derived from configure.in.
2003-10-19 17:36:30 +00:00
okuji cd23d85031 2003-02-17 Yoshinori K. Okuji <okuji@enbug.org>
* lib/device.c (check_device): If DEVICE is empty, just return
	1.
	(get_scsi_disk_name) [__QNXNTO__]: Make NAME empty, because SCSI
	disks are detected as IDE disks on QNX RTP.

	From Taketo Kabe <kabe@sra-tohoku.co.jp>:
	* lib/device.c (get_ide_disk_name) [__QNXNTO__]: Set NAME to
	"/dev/hdX".
	(get_floppy_disk_name) [__QNXNTO__]: Set NAME to "/dev/fdX".
	* stage2/mb_info.h (struct AddrRangeDesc): Specified with the
	attribute packed.
	* stage2/shared.h (struct mmar_desc): Likewise.
2003-02-17 12:35:30 +00:00
okuji 58703b663c 2002-05-20 Yoshinori K. Okuji <okuji@enbug.org>
* lib/device.c (read_device_map): Show an error message and exit
	abnormally, if MAP[DRIVE] has already been filled.
	* util/grub-install.in: If there is any dulicated entry, print
	an error message and exit abnormally.
2002-05-20 11:48:03 +00:00
okuji 2364cf3673 2002-05-20 Yoshinori K. Okuji <okuji@enbug.org>
* lib/device.c: Don't include linux/hdreg.h, linux/major.h,
	or linux/kdev_t.h.
	[__linux__] (HDIO_GETGEO): Defined.
	[__linux__] (hd_geometry): Likewise.
	[__linux__] (FLOPPY_MAJOR): Likewise.
	[__linux__] (MINORBITS): Likewise.
	[__linux__] (MAJOR): Likewise.
2002-05-20 09:45:33 +00:00
gord e5fd53e574 Update to Automake 1.5 2001-10-15 04:49:50 +00:00
okuji a8ac7eb3f9 add support for DAC960. 2001-10-13 04:20:05 +00:00
okuji 60415d246c Use automake-1.4h instead of our own version. Some required changes are made. 2001-07-04 07:33:48 +00:00
proski 19477b0574 Add all products of "configure" and "make" to .cvsignore 2001-05-15 15:46:37 +00:00
okuji dfee6ac3ec add freebsd 4.x support into the grub shell and grub-install. 2001-02-28 11:19:39 +00:00
okuji 8593e88271 fix a bug in linux devfs support. 2000-12-09 01:19:26 +00:00
okuji 5ac0d65e2e skip empty lines in a device map file. 2000-10-27 10:28:54 +00:00
okuji 84cd6e2879 add linux devfs support into the grub shell. 2000-10-15 16:39:04 +00:00
okuji 324e93a919 fix a stupid bug in write_to_partition. 2000-10-07 07:25:25 +00:00
okuji 5b956a8ac8 merge the changes on the branch prepare_0_5_96 to the main trunk. 2000-10-07 07:19:12 +00:00
okuji 62eafe888b call fstat to get a geometry on Hurd, don't include linux/cdrom.h any longer. 2000-09-30 17:56:29 +00:00
okuji aa4e796168 fix a bug in lib/device.c. 2000-09-07 10:30:09 +00:00
okuji 563b471fc7 don't include linux/fs.h. 2000-08-27 11:21:25 +00:00
okuji 7ab4e9c240 add a workaround for the bug in Linux into the grub shell. 2000-08-08 16:41:56 +00:00
okuji 952982deb9 fix shadowed variable bugs and undefined cpp macro bugs. 2000-07-28 16:51:16 +00:00
okuji 72ca6286fb fix a bug in device.c. 2000-07-13 08:32:55 +00:00
okuji 05581f3233 segreate os-specific helper functions from asmstub.c. 2000-07-11 16:13:46 +00:00
okuji 3792b0a01e add reiserfs support. 2000-04-15 13:39:38 +00:00
okuji 4e418f40bc Update the build environment. You need the latest CVS version of Automake. 2000-03-27 07:57:31 +00:00
okuji 9fe0449a36 heavily rewrite the netboot support. 2000-02-07 06:26:45 +00:00
okuji 2745c43fd4 skip CD-ROMs, avoid an automake bug, make sure that LBA read/write are supported, increase the number of devices to be probed. 1999-12-29 01:27:35 +00:00
okuji ca0ad141b6 add grub-install. 1999-11-18 06:00:32 +00:00
okuji c95941d65d fix several bugs. 1999-11-11 20:43:20 +00:00
okuji bd47df86dc add --with-binutils into configure. 1999-10-08 00:34:30 +00:00
okuji adadc62ff3 move some source files in the directory grub into the new directory lib. 1999-09-30 12:13:55 +00:00