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.
This commit is contained in:
parent
a1d48b992f
commit
4f29a8af45
28 changed files with 1700 additions and 188 deletions
2
AUTHORS
2
AUTHORS
|
@ -50,3 +50,5 @@ KB Sriram added a better detection of FAT filesystem and fixed a
|
|||
network device completion.
|
||||
|
||||
Eric Kvaalen fixed a lot of problems in the GRUB manual.
|
||||
|
||||
Leonid Lisovskiy added El Torito support.
|
||||
|
|
95
ChangeLog
95
ChangeLog
|
@ -1,5 +1,98 @@
|
|||
2004-03-13 Yoshinori K. Okuji <okuji@enbug.org>
|
||||
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-13 Yoshinori K. Okuji <okuji@enbug.org>
|
||||
|
||||
From Daniele Zelante <zeldan@email.it>:
|
||||
* stage2/asm.S (stop_floppy): Use INT 13, AH=00h to stop the
|
||||
floppy controller instead of a direct I/O.
|
||||
|
|
3
INSTALL
3
INSTALL
|
@ -216,6 +216,9 @@ operates.
|
|||
`--disable-xfs'
|
||||
Omit the XFS support in Stage 2.
|
||||
|
||||
`--disable-iso9660'
|
||||
Omit the ISO9660 support in Stage 2.
|
||||
|
||||
`--disable-gunzip'
|
||||
Omit the decompression support in Stage 2.
|
||||
|
||||
|
|
2
NEWS
2
NEWS
|
@ -4,6 +4,8 @@ New:
|
|||
* Add support for ReiserFS 3.
|
||||
* Fix support for FreeBSD 5.
|
||||
* Support ATARAID for Linux in the grub shell and grub-install.
|
||||
* Add CDROM support for El Torito with no emulation mode. You can use
|
||||
(cd) as a CDROM drive in the config file.
|
||||
|
||||
New in 0.94 - 2004-01-25:
|
||||
* Support building on x86-64 with gcc -m32.
|
||||
|
|
1
THANKS
1
THANKS
|
@ -71,6 +71,7 @@ Klaus Reichl <klaus.reichl@alcatel.at>
|
|||
Kristoffer Branemyr <ztion@swipnet.se>
|
||||
Kunihiro Ishiguro <kunihiro@zebra.org>
|
||||
Leendert Meyer <leen.meyer@home.nl>
|
||||
Leonid Lisovskiy <lly@pisem.net>
|
||||
M. Meiarashi <mes@st.rim.or.jp>
|
||||
Mark Kettenis <kettenis@chello.nl>
|
||||
Mark Lundeberg <aa026@pgfn.bc.ca>
|
||||
|
|
11
configure
vendored
11
configure
vendored
|
@ -864,6 +864,7 @@ Optional Features:
|
|||
--disable-vstafs disable VSTa FS support in Stage 2
|
||||
--disable-jfs disable IBM JFS support in Stage 2
|
||||
--disable-xfs disable SGI XFS support in Stage 2
|
||||
--disable-iso9660 disable ISO9660 support in Stage 2
|
||||
--disable-gunzip disable decompression in Stage 2
|
||||
--disable-md5-password disable MD5 password support in Stage 2
|
||||
--disable-packet-retransmission
|
||||
|
@ -5098,6 +5099,16 @@ if test x"$enable_xfs" != xno; then
|
|||
FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_XFS=1"
|
||||
fi
|
||||
|
||||
# Check whether --enable-iso9660 or --disable-iso9660 was given.
|
||||
if test "${enable_iso9660+set}" = set; then
|
||||
enableval="$enable_iso9660"
|
||||
|
||||
fi;
|
||||
|
||||
if test x"$enable_iso9660" != xno; then
|
||||
FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_ISO9660=1"
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --enable-gunzip or --disable-gunzip was given.
|
||||
if test "${enable_gunzip+set}" = set; then
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
dnl Configure script for GRUB.
|
||||
dnl Copyright 1999,2000,2001,2002,2003 Free Software Foundation, Inc.
|
||||
dnl Copyright 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc.
|
||||
|
||||
dnl Permission to use, copy, modify and distribute this software and its
|
||||
dnl documentation is hereby granted, provided that both the copyright
|
||||
|
@ -262,6 +262,13 @@ if test x"$enable_xfs" != xno; then
|
|||
FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_XFS=1"
|
||||
fi
|
||||
|
||||
AC_ARG_ENABLE(iso9660,
|
||||
[ --disable-iso9660 disable ISO9660 support in Stage 2])
|
||||
|
||||
if test x"$enable_iso9660" != xno; then
|
||||
FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_ISO9660=1"
|
||||
fi
|
||||
|
||||
dnl AC_ARG_ENABLE(tftp,
|
||||
dnl [ --enable-tftp enable TFTP support in Stage 2])
|
||||
dnl
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.23.
|
||||
.TH GRUB-MD5-CRYPT "8" "January 2004" "grub-md5-crypt (GNU GRUB )" FSF
|
||||
.TH GRUB-MD5-CRYPT "8" "March 2004" "grub-md5-crypt (GNU GRUB )" FSF
|
||||
.SH NAME
|
||||
grub-md5-crypt \- Encrypt a password in MD5 format
|
||||
.SH SYNOPSIS
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.23.
|
||||
.TH GRUB-TERMINFO "8" "January 2004" "grub-terminfo (GNU GRUB 0.94)" FSF
|
||||
.TH GRUB-TERMINFO "8" "March 2004" "grub-terminfo (GNU GRUB 0.94)" FSF
|
||||
.SH NAME
|
||||
grub-terminfo \- Generate a terminfo command from a terminfo name
|
||||
.SH SYNOPSIS
|
||||
|
|
|
@ -142,9 +142,9 @@ sharedstatedir = @sharedstatedir@
|
|||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
sbin_PROGRAMS = grub
|
||||
@SERIAL_SPEED_SIMULATION_FALSE@SERIAL_FLAGS = -DSUPPORT_SERIAL=1
|
||||
|
||||
@SERIAL_SPEED_SIMULATION_TRUE@SERIAL_FLAGS = -DSUPPORT_SERIAL=1 -DSIMULATE_SLOWNESS_OF_SERIAL=1
|
||||
@SERIAL_SPEED_SIMULATION_FALSE@SERIAL_FLAGS = -DSUPPORT_SERIAL=1
|
||||
|
||||
AM_CPPFLAGS = -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 \
|
||||
-DFSYS_FFS=1 -DFSYS_MINIX=1 -DSUPPORT_HERCULES=1 \
|
||||
|
|
|
@ -108,6 +108,9 @@ get_drive_geometry (struct geometry *geom, char **map, int drive)
|
|||
else
|
||||
fd = geom->flags;
|
||||
|
||||
/* XXX This is the default size. */
|
||||
geom->sector_size = SECTOR_SIZE;
|
||||
|
||||
#if defined(__linux__)
|
||||
/* Linux */
|
||||
{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* -*-Asm-*- */
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 1999,2000,2001,2002 Free Software Foundation, Inc.
|
||||
* Copyright (C) 1999,2000,2001,2002,2004 Free Software Foundation, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -91,8 +91,7 @@ cylinder_start:
|
|||
stage1_version:
|
||||
.byte COMPAT_VERSION_MAJOR, COMPAT_VERSION_MINOR
|
||||
boot_drive:
|
||||
.byte 0xff /* the disk to load stage2 from */
|
||||
/* 0xff means use the boot drive */
|
||||
.byte GRUB_INVALID_DRIVE /* the disk to load stage2 from */
|
||||
force_lba:
|
||||
.byte 0
|
||||
stage2_address:
|
||||
|
@ -138,7 +137,7 @@ real_start:
|
|||
* Check if we have a forced disk reference here
|
||||
*/
|
||||
MOV_MEM_TO_AL(ABS(boot_drive)) /* movb ABS(boot_drive), %al */
|
||||
cmpb $0xff, %al
|
||||
cmpb $GRUB_INVALID_DRIVE, %al
|
||||
je 1f
|
||||
movb %al, %dl
|
||||
1:
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 1999,2000,2002 Free Software Foundation, Inc.
|
||||
* Copyright (C) 1999,2000,2002,2004 Free Software Foundation, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -80,4 +80,7 @@
|
|||
floppy. */
|
||||
#define STAGE1_BIOS_HD_FLAG 0x80
|
||||
|
||||
/* The drive number of an invalid drive. */
|
||||
#define GRUB_INVALID_DRIVE 0xFF
|
||||
|
||||
#endif /* ! STAGE1_HEADER */
|
||||
|
|
|
@ -5,9 +5,9 @@ noinst_SCRIPTS = $(TESTS)
|
|||
# For dist target.
|
||||
noinst_HEADERS = apic.h defs.h dir.h disk_inode.h disk_inode_ffs.h \
|
||||
fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
|
||||
imgact_aout.h jfs.h mb_header.h mb_info.h md5.h nbi.h \
|
||||
pc_slice.h serial.h shared.h smp-imps.h term.h terminfo.h \
|
||||
tparm.h nbi.h vstafs.h xfs.h
|
||||
imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \
|
||||
nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \
|
||||
terminfo.h tparm.h nbi.h vstafs.h xfs.h
|
||||
EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS)
|
||||
|
||||
# For <stage1.h>.
|
||||
|
@ -16,13 +16,13 @@ INCLUDES = -I$(top_srcdir)/stage1
|
|||
# The library for /sbin/grub.
|
||||
noinst_LIBRARIES = libgrub.a
|
||||
libgrub_a_SOURCES = boot.c builtins.c char_io.c cmdline.c common.c \
|
||||
disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_jfs.c \
|
||||
fsys_minix.c fsys_reiserfs.c fsys_vstafs.c fsys_xfs.c gunzip.c \
|
||||
md5.c serial.c stage2.c terminfo.c tparm.c
|
||||
disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \
|
||||
fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_vstafs.c \
|
||||
fsys_xfs.c gunzip.c md5.c serial.c stage2.c terminfo.c tparm.c
|
||||
libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
|
||||
-DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
|
||||
-DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 -DFSYS_VSTAFS=1 \
|
||||
-DFSYS_XFS=1 -DUSE_MD5_PASSWORDS=1 \
|
||||
-DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
|
||||
-DFSYS_VSTAFS=1 -DFSYS_XFS=1 -DUSE_MD5_PASSWORDS=1 \
|
||||
-DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 -fwritable-strings
|
||||
|
||||
# Stage 2 and Stage 1.5's.
|
||||
|
@ -31,24 +31,24 @@ pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
|
|||
EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec
|
||||
|
||||
if DISKLESS_SUPPORT
|
||||
pkgdata_DATA = stage2 e2fs_stage1_5 fat_stage1_5 ffs_stage1_5 \
|
||||
jfs_stage1_5 minix_stage1_5 reiserfs_stage1_5 vstafs_stage1_5 \
|
||||
xfs_stage1_5 nbgrub pxegrub
|
||||
noinst_DATA = pre_stage2 start nbloader pxeloader diskless
|
||||
noinst_PROGRAMS = pre_stage2.exec start.exec e2fs_stage1_5.exec \
|
||||
fat_stage1_5.exec ffs_stage1_5.exec jfs_stage1_5.exec \
|
||||
minix_stage1_5.exec reiserfs_stage1_5.exec \
|
||||
vstafs_stage1_5.exec xfs_stage1_5.exec nbloader.exec \
|
||||
pxeloader.exec diskless.exec
|
||||
pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
|
||||
ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
|
||||
reiserfs_stage1_5 vstafs_stage1_5 xfs_stage1_5 nbgrub pxegrub
|
||||
noinst_DATA = pre_stage2 start start_eltorito nbloader pxeloader diskless
|
||||
noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \
|
||||
e2fs_stage1_5.exec fat_stage1_5.exec ffs_stage1_5.exec \
|
||||
iso9660_stage1_5.exec jfs_stage1_5.exec minix_stage1_5.exec \
|
||||
reiserfs_stage1_5.exec vstafs_stage1_5.exec xfs_stage1_5.exec \
|
||||
nbloader.exec pxeloader.exec diskless.exec
|
||||
else
|
||||
pkgdata_DATA = stage2 e2fs_stage1_5 fat_stage1_5 ffs_stage1_5 \
|
||||
jfs_stage1_5 minix_stage1_5 reiserfs_stage1_5 vstafs_stage1_5 \
|
||||
xfs_stage1_5
|
||||
noinst_DATA = pre_stage2 start
|
||||
noinst_PROGRAMS = pre_stage2.exec start.exec e2fs_stage1_5.exec \
|
||||
fat_stage1_5.exec ffs_stage1_5.exec jfs_stage1_5.exec \
|
||||
minix_stage1_5.exec reiserfs_stage1_5.exec \
|
||||
vstafs_stage1_5.exec xfs_stage1_5.exec
|
||||
pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
|
||||
ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
|
||||
reiserfs_stage1_5 vstafs_stage1_5 xfs_stage1_5
|
||||
noinst_DATA = pre_stage2 start start_eltorito
|
||||
noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \
|
||||
e2fs_stage1_5.exec fat_stage1_5.exec ffs_stage1_5.exec \
|
||||
iso9660_stage1_5.exec jfs_stage1_5.exec minix_stage1_5.exec \
|
||||
reiserfs_stage1_5.exec vstafs_stage1_5.exec xfs_stage1_5.exec
|
||||
endif
|
||||
MOSTLYCLEANFILES = $(noinst_PROGRAMS)
|
||||
|
||||
|
@ -56,6 +56,7 @@ PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200
|
|||
START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000
|
||||
NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0
|
||||
PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
|
||||
START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
|
||||
|
||||
if NETBOOT_SUPPORT
|
||||
NETBOOT_FLAGS = -I$(top_srcdir)/netboot -DSUPPORT_NETBOOT=1
|
||||
|
@ -84,9 +85,9 @@ STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1
|
|||
# For stage2 target.
|
||||
pre_stage2_exec_SOURCES = asm.S bios.c boot.c builtins.c char_io.c \
|
||||
cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \
|
||||
fsys_fat.c fsys_ffs.c fsys_jfs.c fsys_minix.c fsys_reiserfs.c \
|
||||
fsys_vstafs.c fsys_xfs.c gunzip.c hercules.c md5.c serial.c \
|
||||
smp-imps.c stage2.c terminfo.c tparm.c
|
||||
fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \
|
||||
fsys_reiserfs.c fsys_vstafs.c fsys_xfs.c gunzip.c hercules.c \
|
||||
md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c
|
||||
pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
|
||||
pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
|
||||
pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK)
|
||||
|
@ -122,6 +123,16 @@ stage2: pre_stage2 start
|
|||
-rm -f stage2
|
||||
cat start pre_stage2 > stage2
|
||||
|
||||
start_eltorito_exec_SOURCES = start_eltorito.S
|
||||
start_eltorito_exec_CCASFLAGS = $(STAGE2_COMPILE)
|
||||
start_eltorito_exec_LDFLAGS = $(START_ELTORITO_LINK)
|
||||
|
||||
start_eltorito_exec-start.$(OBJEXT): stage2_size.h
|
||||
|
||||
stage2_eltorito: pre_stage2 start_eltorito
|
||||
-rm -f stage2_eltorito
|
||||
cat start_eltorito pre_stage2 > stage2_eltorito
|
||||
|
||||
# For e2fs_stage1_5 target.
|
||||
e2fs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
|
||||
stage1_5.c fsys_ext2fs.c bios.c
|
||||
|
@ -194,6 +205,15 @@ xfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
|
|||
-DNO_BLOCK_FILES=1
|
||||
xfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
|
||||
|
||||
# For iso9660_stage1_5 target.
|
||||
iso9660_stage1_5_exec_SOURCES = start_eltorito.S asm.S common.c char_io.c \
|
||||
disk_io.c stage1_5.c fsys_iso9660.c bios.c
|
||||
iso9660_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \
|
||||
-DNO_BLOCK_FILES=1
|
||||
iso9660_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \
|
||||
-DNO_BLOCK_FILES=1
|
||||
iso9660_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
|
||||
|
||||
# For diskless target.
|
||||
diskless_exec_SOURCES = $(pre_stage2_exec_SOURCES)
|
||||
diskless_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \
|
||||
|
|
|
@ -151,9 +151,9 @@ noinst_SCRIPTS = $(TESTS)
|
|||
# For dist target.
|
||||
noinst_HEADERS = apic.h defs.h dir.h disk_inode.h disk_inode_ffs.h \
|
||||
fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
|
||||
imgact_aout.h jfs.h mb_header.h mb_info.h md5.h nbi.h \
|
||||
pc_slice.h serial.h shared.h smp-imps.h term.h terminfo.h \
|
||||
tparm.h nbi.h vstafs.h xfs.h
|
||||
imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \
|
||||
nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \
|
||||
terminfo.h tparm.h nbi.h vstafs.h xfs.h
|
||||
|
||||
EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS)
|
||||
|
||||
|
@ -163,39 +163,39 @@ INCLUDES = -I$(top_srcdir)/stage1
|
|||
# The library for /sbin/grub.
|
||||
noinst_LIBRARIES = libgrub.a
|
||||
libgrub_a_SOURCES = boot.c builtins.c char_io.c cmdline.c common.c \
|
||||
disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_jfs.c \
|
||||
fsys_minix.c fsys_reiserfs.c fsys_vstafs.c fsys_xfs.c gunzip.c \
|
||||
md5.c serial.c stage2.c terminfo.c tparm.c
|
||||
disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \
|
||||
fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_vstafs.c \
|
||||
fsys_xfs.c gunzip.c md5.c serial.c stage2.c terminfo.c tparm.c
|
||||
|
||||
libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
|
||||
-DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
|
||||
-DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 -DFSYS_VSTAFS=1 \
|
||||
-DFSYS_XFS=1 -DUSE_MD5_PASSWORDS=1 \
|
||||
-DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
|
||||
-DFSYS_VSTAFS=1 -DFSYS_XFS=1 -DUSE_MD5_PASSWORDS=1 \
|
||||
-DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 -fwritable-strings
|
||||
|
||||
|
||||
EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec
|
||||
|
||||
@DISKLESS_SUPPORT_TRUE@pkgdata_DATA = stage2 e2fs_stage1_5 fat_stage1_5 ffs_stage1_5 \
|
||||
@DISKLESS_SUPPORT_TRUE@ jfs_stage1_5 minix_stage1_5 reiserfs_stage1_5 vstafs_stage1_5 \
|
||||
@DISKLESS_SUPPORT_TRUE@ xfs_stage1_5 nbgrub pxegrub
|
||||
@DISKLESS_SUPPORT_TRUE@pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
|
||||
@DISKLESS_SUPPORT_TRUE@ ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
|
||||
@DISKLESS_SUPPORT_TRUE@ reiserfs_stage1_5 vstafs_stage1_5 xfs_stage1_5 nbgrub pxegrub
|
||||
|
||||
@DISKLESS_SUPPORT_FALSE@pkgdata_DATA = stage2 e2fs_stage1_5 fat_stage1_5 ffs_stage1_5 \
|
||||
@DISKLESS_SUPPORT_FALSE@ jfs_stage1_5 minix_stage1_5 reiserfs_stage1_5 vstafs_stage1_5 \
|
||||
@DISKLESS_SUPPORT_FALSE@ xfs_stage1_5
|
||||
@DISKLESS_SUPPORT_FALSE@pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
|
||||
@DISKLESS_SUPPORT_FALSE@ ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
|
||||
@DISKLESS_SUPPORT_FALSE@ reiserfs_stage1_5 vstafs_stage1_5 xfs_stage1_5
|
||||
|
||||
@DISKLESS_SUPPORT_TRUE@noinst_DATA = pre_stage2 start nbloader pxeloader diskless
|
||||
@DISKLESS_SUPPORT_FALSE@noinst_DATA = pre_stage2 start
|
||||
@DISKLESS_SUPPORT_TRUE@noinst_PROGRAMS = pre_stage2.exec start.exec e2fs_stage1_5.exec \
|
||||
@DISKLESS_SUPPORT_TRUE@ fat_stage1_5.exec ffs_stage1_5.exec jfs_stage1_5.exec \
|
||||
@DISKLESS_SUPPORT_TRUE@ minix_stage1_5.exec reiserfs_stage1_5.exec \
|
||||
@DISKLESS_SUPPORT_TRUE@ vstafs_stage1_5.exec xfs_stage1_5.exec nbloader.exec \
|
||||
@DISKLESS_SUPPORT_TRUE@ pxeloader.exec diskless.exec
|
||||
@DISKLESS_SUPPORT_TRUE@noinst_DATA = pre_stage2 start start_eltorito nbloader pxeloader diskless
|
||||
@DISKLESS_SUPPORT_FALSE@noinst_DATA = pre_stage2 start start_eltorito
|
||||
@DISKLESS_SUPPORT_TRUE@noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \
|
||||
@DISKLESS_SUPPORT_TRUE@ e2fs_stage1_5.exec fat_stage1_5.exec ffs_stage1_5.exec \
|
||||
@DISKLESS_SUPPORT_TRUE@ iso9660_stage1_5.exec jfs_stage1_5.exec minix_stage1_5.exec \
|
||||
@DISKLESS_SUPPORT_TRUE@ reiserfs_stage1_5.exec vstafs_stage1_5.exec xfs_stage1_5.exec \
|
||||
@DISKLESS_SUPPORT_TRUE@ nbloader.exec pxeloader.exec diskless.exec
|
||||
|
||||
@DISKLESS_SUPPORT_FALSE@noinst_PROGRAMS = pre_stage2.exec start.exec e2fs_stage1_5.exec \
|
||||
@DISKLESS_SUPPORT_FALSE@ fat_stage1_5.exec ffs_stage1_5.exec jfs_stage1_5.exec \
|
||||
@DISKLESS_SUPPORT_FALSE@ minix_stage1_5.exec reiserfs_stage1_5.exec \
|
||||
@DISKLESS_SUPPORT_FALSE@ vstafs_stage1_5.exec xfs_stage1_5.exec
|
||||
@DISKLESS_SUPPORT_FALSE@noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \
|
||||
@DISKLESS_SUPPORT_FALSE@ e2fs_stage1_5.exec fat_stage1_5.exec ffs_stage1_5.exec \
|
||||
@DISKLESS_SUPPORT_FALSE@ iso9660_stage1_5.exec jfs_stage1_5.exec minix_stage1_5.exec \
|
||||
@DISKLESS_SUPPORT_FALSE@ reiserfs_stage1_5.exec vstafs_stage1_5.exec xfs_stage1_5.exec
|
||||
|
||||
MOSTLYCLEANFILES = $(noinst_PROGRAMS)
|
||||
|
||||
|
@ -203,12 +203,13 @@ PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200
|
|||
START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000
|
||||
NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0
|
||||
PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
|
||||
START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
|
||||
|
||||
@NETBOOT_SUPPORT_TRUE@NETBOOT_FLAGS = -I$(top_srcdir)/netboot -DSUPPORT_NETBOOT=1
|
||||
@NETBOOT_SUPPORT_FALSE@NETBOOT_FLAGS =
|
||||
@SERIAL_SUPPORT_FALSE@SERIAL_FLAGS =
|
||||
|
||||
@SERIAL_SUPPORT_TRUE@SERIAL_FLAGS = -DSUPPORT_SERIAL=1
|
||||
@SERIAL_SUPPORT_FALSE@SERIAL_FLAGS =
|
||||
@HERCULES_SUPPORT_FALSE@HERCULES_FLAGS =
|
||||
|
||||
@HERCULES_SUPPORT_TRUE@HERCULES_FLAGS = -DSUPPORT_HERCULES=1
|
||||
|
@ -223,9 +224,9 @@ STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1
|
|||
# For stage2 target.
|
||||
pre_stage2_exec_SOURCES = asm.S bios.c boot.c builtins.c char_io.c \
|
||||
cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \
|
||||
fsys_fat.c fsys_ffs.c fsys_jfs.c fsys_minix.c fsys_reiserfs.c \
|
||||
fsys_vstafs.c fsys_xfs.c gunzip.c hercules.c md5.c serial.c \
|
||||
smp-imps.c stage2.c terminfo.c tparm.c
|
||||
fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \
|
||||
fsys_reiserfs.c fsys_vstafs.c fsys_xfs.c gunzip.c hercules.c \
|
||||
md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c
|
||||
|
||||
pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
|
||||
pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
|
||||
|
@ -242,6 +243,10 @@ start_exec_SOURCES = start.S
|
|||
start_exec_CCASFLAGS = $(STAGE2_COMPILE)
|
||||
start_exec_LDFLAGS = $(START_LINK)
|
||||
|
||||
start_eltorito_exec_SOURCES = start_eltorito.S
|
||||
start_eltorito_exec_CCASFLAGS = $(STAGE2_COMPILE)
|
||||
start_eltorito_exec_LDFLAGS = $(START_ELTORITO_LINK)
|
||||
|
||||
# For e2fs_stage1_5 target.
|
||||
e2fs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
|
||||
stage1_5.c fsys_ext2fs.c bios.c
|
||||
|
@ -338,6 +343,18 @@ xfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
|
|||
|
||||
xfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
|
||||
|
||||
# For iso9660_stage1_5 target.
|
||||
iso9660_stage1_5_exec_SOURCES = start_eltorito.S asm.S common.c char_io.c \
|
||||
disk_io.c stage1_5.c fsys_iso9660.c bios.c
|
||||
|
||||
iso9660_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \
|
||||
-DNO_BLOCK_FILES=1
|
||||
|
||||
iso9660_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \
|
||||
-DNO_BLOCK_FILES=1
|
||||
|
||||
iso9660_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
|
||||
|
||||
# For diskless target.
|
||||
diskless_exec_SOURCES = $(pre_stage2_exec_SOURCES)
|
||||
diskless_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \
|
||||
|
@ -371,7 +388,8 @@ am_libgrub_a_OBJECTS = libgrub_a-boot.$(OBJEXT) \
|
|||
libgrub_a-cmdline.$(OBJEXT) libgrub_a-common.$(OBJEXT) \
|
||||
libgrub_a-disk_io.$(OBJEXT) libgrub_a-fsys_ext2fs.$(OBJEXT) \
|
||||
libgrub_a-fsys_fat.$(OBJEXT) libgrub_a-fsys_ffs.$(OBJEXT) \
|
||||
libgrub_a-fsys_jfs.$(OBJEXT) libgrub_a-fsys_minix.$(OBJEXT) \
|
||||
libgrub_a-fsys_iso9660.$(OBJEXT) libgrub_a-fsys_jfs.$(OBJEXT) \
|
||||
libgrub_a-fsys_minix.$(OBJEXT) \
|
||||
libgrub_a-fsys_reiserfs.$(OBJEXT) \
|
||||
libgrub_a-fsys_vstafs.$(OBJEXT) libgrub_a-fsys_xfs.$(OBJEXT) \
|
||||
libgrub_a-gunzip.$(OBJEXT) libgrub_a-md5.$(OBJEXT) \
|
||||
|
@ -382,9 +400,11 @@ EXTRA_PROGRAMS = nbloader.exec$(EXEEXT) pxeloader.exec$(EXEEXT) \
|
|||
diskless.exec$(EXEEXT)
|
||||
@DISKLESS_SUPPORT_TRUE@noinst_PROGRAMS = pre_stage2.exec$(EXEEXT) \
|
||||
@DISKLESS_SUPPORT_TRUE@ start.exec$(EXEEXT) \
|
||||
@DISKLESS_SUPPORT_TRUE@ start_eltorito.exec$(EXEEXT) \
|
||||
@DISKLESS_SUPPORT_TRUE@ e2fs_stage1_5.exec$(EXEEXT) \
|
||||
@DISKLESS_SUPPORT_TRUE@ fat_stage1_5.exec$(EXEEXT) \
|
||||
@DISKLESS_SUPPORT_TRUE@ ffs_stage1_5.exec$(EXEEXT) \
|
||||
@DISKLESS_SUPPORT_TRUE@ iso9660_stage1_5.exec$(EXEEXT) \
|
||||
@DISKLESS_SUPPORT_TRUE@ jfs_stage1_5.exec$(EXEEXT) \
|
||||
@DISKLESS_SUPPORT_TRUE@ minix_stage1_5.exec$(EXEEXT) \
|
||||
@DISKLESS_SUPPORT_TRUE@ reiserfs_stage1_5.exec$(EXEEXT) \
|
||||
|
@ -395,9 +415,11 @@ EXTRA_PROGRAMS = nbloader.exec$(EXEEXT) pxeloader.exec$(EXEEXT) \
|
|||
@DISKLESS_SUPPORT_TRUE@ diskless.exec$(EXEEXT)
|
||||
@DISKLESS_SUPPORT_FALSE@noinst_PROGRAMS = pre_stage2.exec$(EXEEXT) \
|
||||
@DISKLESS_SUPPORT_FALSE@ start.exec$(EXEEXT) \
|
||||
@DISKLESS_SUPPORT_FALSE@ start_eltorito.exec$(EXEEXT) \
|
||||
@DISKLESS_SUPPORT_FALSE@ e2fs_stage1_5.exec$(EXEEXT) \
|
||||
@DISKLESS_SUPPORT_FALSE@ fat_stage1_5.exec$(EXEEXT) \
|
||||
@DISKLESS_SUPPORT_FALSE@ ffs_stage1_5.exec$(EXEEXT) \
|
||||
@DISKLESS_SUPPORT_FALSE@ iso9660_stage1_5.exec$(EXEEXT) \
|
||||
@DISKLESS_SUPPORT_FALSE@ jfs_stage1_5.exec$(EXEEXT) \
|
||||
@DISKLESS_SUPPORT_FALSE@ minix_stage1_5.exec$(EXEEXT) \
|
||||
@DISKLESS_SUPPORT_FALSE@ reiserfs_stage1_5.exec$(EXEEXT) \
|
||||
|
@ -413,6 +435,7 @@ am__objects_1 = diskless_exec-asm.$(OBJEXT) diskless_exec-bios.$(OBJEXT) \
|
|||
diskless_exec-fsys_ext2fs.$(OBJEXT) \
|
||||
diskless_exec-fsys_fat.$(OBJEXT) \
|
||||
diskless_exec-fsys_ffs.$(OBJEXT) \
|
||||
diskless_exec-fsys_iso9660.$(OBJEXT) \
|
||||
diskless_exec-fsys_jfs.$(OBJEXT) \
|
||||
diskless_exec-fsys_minix.$(OBJEXT) \
|
||||
diskless_exec-fsys_reiserfs.$(OBJEXT) \
|
||||
|
@ -458,6 +481,18 @@ am_ffs_stage1_5_exec_OBJECTS = ffs_stage1_5_exec-start.$(OBJEXT) \
|
|||
ffs_stage1_5_exec_OBJECTS = $(am_ffs_stage1_5_exec_OBJECTS)
|
||||
ffs_stage1_5_exec_LDADD = $(LDADD)
|
||||
ffs_stage1_5_exec_DEPENDENCIES =
|
||||
am_iso9660_stage1_5_exec_OBJECTS = \
|
||||
iso9660_stage1_5_exec-start_eltorito.$(OBJEXT) \
|
||||
iso9660_stage1_5_exec-asm.$(OBJEXT) \
|
||||
iso9660_stage1_5_exec-common.$(OBJEXT) \
|
||||
iso9660_stage1_5_exec-char_io.$(OBJEXT) \
|
||||
iso9660_stage1_5_exec-disk_io.$(OBJEXT) \
|
||||
iso9660_stage1_5_exec-stage1_5.$(OBJEXT) \
|
||||
iso9660_stage1_5_exec-fsys_iso9660.$(OBJEXT) \
|
||||
iso9660_stage1_5_exec-bios.$(OBJEXT)
|
||||
iso9660_stage1_5_exec_OBJECTS = $(am_iso9660_stage1_5_exec_OBJECTS)
|
||||
iso9660_stage1_5_exec_LDADD = $(LDADD)
|
||||
iso9660_stage1_5_exec_DEPENDENCIES =
|
||||
am_jfs_stage1_5_exec_OBJECTS = jfs_stage1_5_exec-start.$(OBJEXT) \
|
||||
jfs_stage1_5_exec-asm.$(OBJEXT) \
|
||||
jfs_stage1_5_exec-common.$(OBJEXT) \
|
||||
|
@ -495,6 +530,7 @@ am_pre_stage2_exec_OBJECTS = pre_stage2_exec-asm.$(OBJEXT) \
|
|||
pre_stage2_exec-fsys_ext2fs.$(OBJEXT) \
|
||||
pre_stage2_exec-fsys_fat.$(OBJEXT) \
|
||||
pre_stage2_exec-fsys_ffs.$(OBJEXT) \
|
||||
pre_stage2_exec-fsys_iso9660.$(OBJEXT) \
|
||||
pre_stage2_exec-fsys_jfs.$(OBJEXT) \
|
||||
pre_stage2_exec-fsys_minix.$(OBJEXT) \
|
||||
pre_stage2_exec-fsys_reiserfs.$(OBJEXT) \
|
||||
|
@ -531,6 +567,11 @@ am_start_exec_OBJECTS = start_exec-start.$(OBJEXT)
|
|||
start_exec_OBJECTS = $(am_start_exec_OBJECTS)
|
||||
start_exec_LDADD = $(LDADD)
|
||||
start_exec_DEPENDENCIES =
|
||||
am_start_eltorito_exec_OBJECTS = \
|
||||
start_eltorito_exec-start_eltorito.$(OBJEXT)
|
||||
start_eltorito_exec_OBJECTS = $(am_start_eltorito_exec_OBJECTS)
|
||||
start_eltorito_exec_LDADD = $(LDADD)
|
||||
start_eltorito_exec_DEPENDENCIES =
|
||||
am_vstafs_stage1_5_exec_OBJECTS = vstafs_stage1_5_exec-start.$(OBJEXT) \
|
||||
vstafs_stage1_5_exec-asm.$(OBJEXT) \
|
||||
vstafs_stage1_5_exec-common.$(OBJEXT) \
|
||||
|
@ -570,6 +611,7 @@ am__depfiles_maybe = depfiles
|
|||
@AMDEP_TRUE@ ./$(DEPDIR)/diskless_exec-fsys_ext2fs.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/diskless_exec-fsys_fat.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/diskless_exec-fsys_ffs.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/diskless_exec-fsys_iso9660.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/diskless_exec-fsys_jfs.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/diskless_exec-fsys_minix.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/diskless_exec-fsys_reiserfs.Po \
|
||||
|
@ -601,6 +643,12 @@ am__depfiles_maybe = depfiles
|
|||
@AMDEP_TRUE@ ./$(DEPDIR)/ffs_stage1_5_exec-disk_io.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/iso9660_stage1_5_exec-bios.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/iso9660_stage1_5_exec-char_io.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/iso9660_stage1_5_exec-common.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/jfs_stage1_5_exec-bios.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/jfs_stage1_5_exec-char_io.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/jfs_stage1_5_exec-common.Po \
|
||||
|
@ -616,6 +664,7 @@ am__depfiles_maybe = depfiles
|
|||
@AMDEP_TRUE@ ./$(DEPDIR)/libgrub_a-fsys_ext2fs.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/libgrub_a-fsys_fat.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/libgrub_a-fsys_ffs.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/libgrub_a-fsys_iso9660.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/libgrub_a-fsys_jfs.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/libgrub_a-fsys_minix.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/libgrub_a-fsys_reiserfs.Po \
|
||||
|
@ -644,6 +693,7 @@ am__depfiles_maybe = depfiles
|
|||
@AMDEP_TRUE@ ./$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/pre_stage2_exec-fsys_fat.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/pre_stage2_exec-fsys_ffs.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/pre_stage2_exec-fsys_jfs.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/pre_stage2_exec-fsys_minix.Po \
|
||||
@AMDEP_TRUE@ ./$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Po \
|
||||
|
@ -682,17 +732,18 @@ CCLD = $(CC)
|
|||
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
DIST_SOURCES = $(libgrub_a_SOURCES) $(diskless_exec_SOURCES) \
|
||||
$(e2fs_stage1_5_exec_SOURCES) $(fat_stage1_5_exec_SOURCES) \
|
||||
$(ffs_stage1_5_exec_SOURCES) $(jfs_stage1_5_exec_SOURCES) \
|
||||
$(minix_stage1_5_exec_SOURCES) $(nbloader_exec_SOURCES) \
|
||||
$(pre_stage2_exec_SOURCES) $(pxeloader_exec_SOURCES) \
|
||||
$(reiserfs_stage1_5_exec_SOURCES) $(start_exec_SOURCES) \
|
||||
$(ffs_stage1_5_exec_SOURCES) $(iso9660_stage1_5_exec_SOURCES) \
|
||||
$(jfs_stage1_5_exec_SOURCES) $(minix_stage1_5_exec_SOURCES) \
|
||||
$(nbloader_exec_SOURCES) $(pre_stage2_exec_SOURCES) \
|
||||
$(pxeloader_exec_SOURCES) $(reiserfs_stage1_5_exec_SOURCES) \
|
||||
$(start_exec_SOURCES) $(start_eltorito_exec_SOURCES) \
|
||||
$(vstafs_stage1_5_exec_SOURCES) $(xfs_stage1_5_exec_SOURCES)
|
||||
DATA = $(noinst_DATA) $(pkgdata_DATA)
|
||||
|
||||
HEADERS = $(noinst_HEADERS)
|
||||
|
||||
DIST_COMMON = $(noinst_HEADERS) Makefile.am Makefile.in
|
||||
SOURCES = $(libgrub_a_SOURCES) $(diskless_exec_SOURCES) $(e2fs_stage1_5_exec_SOURCES) $(fat_stage1_5_exec_SOURCES) $(ffs_stage1_5_exec_SOURCES) $(jfs_stage1_5_exec_SOURCES) $(minix_stage1_5_exec_SOURCES) $(nbloader_exec_SOURCES) $(pre_stage2_exec_SOURCES) $(pxeloader_exec_SOURCES) $(reiserfs_stage1_5_exec_SOURCES) $(start_exec_SOURCES) $(vstafs_stage1_5_exec_SOURCES) $(xfs_stage1_5_exec_SOURCES)
|
||||
SOURCES = $(libgrub_a_SOURCES) $(diskless_exec_SOURCES) $(e2fs_stage1_5_exec_SOURCES) $(fat_stage1_5_exec_SOURCES) $(ffs_stage1_5_exec_SOURCES) $(iso9660_stage1_5_exec_SOURCES) $(jfs_stage1_5_exec_SOURCES) $(minix_stage1_5_exec_SOURCES) $(nbloader_exec_SOURCES) $(pre_stage2_exec_SOURCES) $(pxeloader_exec_SOURCES) $(reiserfs_stage1_5_exec_SOURCES) $(start_exec_SOURCES) $(start_eltorito_exec_SOURCES) $(vstafs_stage1_5_exec_SOURCES) $(xfs_stage1_5_exec_SOURCES)
|
||||
|
||||
all: $(BUILT_SOURCES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) all-am
|
||||
|
@ -728,6 +779,9 @@ fat_stage1_5.exec$(EXEEXT): $(fat_stage1_5_exec_OBJECTS) $(fat_stage1_5_exec_DEP
|
|||
ffs_stage1_5.exec$(EXEEXT): $(ffs_stage1_5_exec_OBJECTS) $(ffs_stage1_5_exec_DEPENDENCIES)
|
||||
@rm -f ffs_stage1_5.exec$(EXEEXT)
|
||||
$(LINK) $(ffs_stage1_5_exec_LDFLAGS) $(ffs_stage1_5_exec_OBJECTS) $(ffs_stage1_5_exec_LDADD) $(LIBS)
|
||||
iso9660_stage1_5.exec$(EXEEXT): $(iso9660_stage1_5_exec_OBJECTS) $(iso9660_stage1_5_exec_DEPENDENCIES)
|
||||
@rm -f iso9660_stage1_5.exec$(EXEEXT)
|
||||
$(LINK) $(iso9660_stage1_5_exec_LDFLAGS) $(iso9660_stage1_5_exec_OBJECTS) $(iso9660_stage1_5_exec_LDADD) $(LIBS)
|
||||
jfs_stage1_5.exec$(EXEEXT): $(jfs_stage1_5_exec_OBJECTS) $(jfs_stage1_5_exec_DEPENDENCIES)
|
||||
@rm -f jfs_stage1_5.exec$(EXEEXT)
|
||||
$(LINK) $(jfs_stage1_5_exec_LDFLAGS) $(jfs_stage1_5_exec_OBJECTS) $(jfs_stage1_5_exec_LDADD) $(LIBS)
|
||||
|
@ -749,6 +803,9 @@ reiserfs_stage1_5.exec$(EXEEXT): $(reiserfs_stage1_5_exec_OBJECTS) $(reiserfs_st
|
|||
start.exec$(EXEEXT): $(start_exec_OBJECTS) $(start_exec_DEPENDENCIES)
|
||||
@rm -f start.exec$(EXEEXT)
|
||||
$(LINK) $(start_exec_LDFLAGS) $(start_exec_OBJECTS) $(start_exec_LDADD) $(LIBS)
|
||||
start_eltorito.exec$(EXEEXT): $(start_eltorito_exec_OBJECTS) $(start_eltorito_exec_DEPENDENCIES)
|
||||
@rm -f start_eltorito.exec$(EXEEXT)
|
||||
$(LINK) $(start_eltorito_exec_LDFLAGS) $(start_eltorito_exec_OBJECTS) $(start_eltorito_exec_LDADD) $(LIBS)
|
||||
vstafs_stage1_5.exec$(EXEEXT): $(vstafs_stage1_5_exec_OBJECTS) $(vstafs_stage1_5_exec_DEPENDENCIES)
|
||||
@rm -f vstafs_stage1_5.exec$(EXEEXT)
|
||||
$(LINK) $(vstafs_stage1_5_exec_LDFLAGS) $(vstafs_stage1_5_exec_OBJECTS) $(vstafs_stage1_5_exec_LDADD) $(LIBS)
|
||||
|
@ -773,6 +830,7 @@ distclean-compile:
|
|||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_ext2fs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_fat.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_ffs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_iso9660.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_jfs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_minix.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_reiserfs.Po@am__quote@
|
||||
|
@ -804,6 +862,12 @@ distclean-compile:
|
|||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffs_stage1_5_exec-disk_io.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-bios.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-char_io.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-common.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs_stage1_5_exec-bios.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs_stage1_5_exec-char_io.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs_stage1_5_exec-common.Po@am__quote@
|
||||
|
@ -819,6 +883,7 @@ distclean-compile:
|
|||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_ext2fs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_fat.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_ffs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_iso9660.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_jfs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_minix.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_reiserfs.Po@am__quote@
|
||||
|
@ -847,6 +912,7 @@ distclean-compile:
|
|||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_fat.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_ffs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_jfs.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_minix.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Po@am__quote@
|
||||
|
@ -930,6 +996,18 @@ ffs_stage1_5_exec-asm.o: asm.S
|
|||
ffs_stage1_5_exec-asm.obj: asm.S
|
||||
$(CCAS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ffs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
|
||||
|
||||
iso9660_stage1_5_exec-start_eltorito.o: start_eltorito.S
|
||||
$(CCAS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o iso9660_stage1_5_exec-start_eltorito.o `test -f 'start_eltorito.S' || echo '$(srcdir)/'`start_eltorito.S
|
||||
|
||||
iso9660_stage1_5_exec-start_eltorito.obj: start_eltorito.S
|
||||
$(CCAS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o iso9660_stage1_5_exec-start_eltorito.obj `if test -f 'start_eltorito.S'; then $(CYGPATH_W) 'start_eltorito.S'; else $(CYGPATH_W) '$(srcdir)/start_eltorito.S'; fi`
|
||||
|
||||
iso9660_stage1_5_exec-asm.o: asm.S
|
||||
$(CCAS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o iso9660_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
|
||||
|
||||
iso9660_stage1_5_exec-asm.obj: asm.S
|
||||
$(CCAS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o iso9660_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
|
||||
|
||||
jfs_stage1_5_exec-start.o: start.S
|
||||
$(CCAS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o jfs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
|
||||
|
||||
|
@ -990,6 +1068,12 @@ start_exec-start.o: start.S
|
|||
start_exec-start.obj: start.S
|
||||
$(CCAS) $(start_exec_CCASFLAGS) $(CCASFLAGS) -c -o start_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
|
||||
|
||||
start_eltorito_exec-start_eltorito.o: start_eltorito.S
|
||||
$(CCAS) $(start_eltorito_exec_CCASFLAGS) $(CCASFLAGS) -c -o start_eltorito_exec-start_eltorito.o `test -f 'start_eltorito.S' || echo '$(srcdir)/'`start_eltorito.S
|
||||
|
||||
start_eltorito_exec-start_eltorito.obj: start_eltorito.S
|
||||
$(CCAS) $(start_eltorito_exec_CCASFLAGS) $(CCASFLAGS) -c -o start_eltorito_exec-start_eltorito.obj `if test -f 'start_eltorito.S'; then $(CYGPATH_W) 'start_eltorito.S'; else $(CYGPATH_W) '$(srcdir)/start_eltorito.S'; fi`
|
||||
|
||||
vstafs_stage1_5_exec-start.o: start.S
|
||||
$(CCAS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o vstafs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
|
||||
|
||||
|
@ -1234,6 +1318,28 @@ libgrub_a-fsys_ffs.obj: fsys_ffs.c
|
|||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`
|
||||
|
||||
libgrub_a-fsys_iso9660.o: fsys_iso9660.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_iso9660.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o libgrub_a-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c; \
|
||||
@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo" "$(DEPDIR)/libgrub_a-fsys_iso9660.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_iso9660.c' object='libgrub_a-fsys_iso9660.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libgrub_a-fsys_iso9660.Po' tmpdepfile='$(DEPDIR)/libgrub_a-fsys_iso9660.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c
|
||||
|
||||
libgrub_a-fsys_iso9660.obj: fsys_iso9660.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_iso9660.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o libgrub_a-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`; \
|
||||
@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo" "$(DEPDIR)/libgrub_a-fsys_iso9660.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_iso9660.c' object='libgrub_a-fsys_iso9660.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/libgrub_a-fsys_iso9660.Po' tmpdepfile='$(DEPDIR)/libgrub_a-fsys_iso9660.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`
|
||||
|
||||
libgrub_a-fsys_jfs.o: fsys_jfs.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_jfs.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_jfs.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o libgrub_a-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c; \
|
||||
|
@ -1718,6 +1824,28 @@ diskless_exec-fsys_ffs.obj: fsys_ffs.c
|
|||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`
|
||||
|
||||
diskless_exec-fsys_iso9660.o: fsys_iso9660.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_iso9660.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o diskless_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c; \
|
||||
@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo" "$(DEPDIR)/diskless_exec-fsys_iso9660.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_iso9660.c' object='diskless_exec-fsys_iso9660.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/diskless_exec-fsys_iso9660.Po' tmpdepfile='$(DEPDIR)/diskless_exec-fsys_iso9660.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c
|
||||
|
||||
diskless_exec-fsys_iso9660.obj: fsys_iso9660.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_iso9660.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o diskless_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`; \
|
||||
@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo" "$(DEPDIR)/diskless_exec-fsys_iso9660.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_iso9660.c' object='diskless_exec-fsys_iso9660.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/diskless_exec-fsys_iso9660.Po' tmpdepfile='$(DEPDIR)/diskless_exec-fsys_iso9660.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`
|
||||
|
||||
diskless_exec-fsys_jfs.o: fsys_jfs.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_jfs.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_jfs.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o diskless_exec-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c; \
|
||||
|
@ -2400,6 +2528,138 @@ ffs_stage1_5_exec-bios.obj: bios.c
|
|||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
|
||||
|
||||
iso9660_stage1_5_exec-common.o: common.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o iso9660_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
|
||||
@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-common.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='iso9660_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/iso9660_stage1_5_exec-common.Po' tmpdepfile='$(DEPDIR)/iso9660_stage1_5_exec-common.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
|
||||
|
||||
iso9660_stage1_5_exec-common.obj: common.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o iso9660_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
|
||||
@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-common.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='iso9660_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/iso9660_stage1_5_exec-common.Po' tmpdepfile='$(DEPDIR)/iso9660_stage1_5_exec-common.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
|
||||
|
||||
iso9660_stage1_5_exec-char_io.o: char_io.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o iso9660_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
|
||||
@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='iso9660_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/iso9660_stage1_5_exec-char_io.Po' tmpdepfile='$(DEPDIR)/iso9660_stage1_5_exec-char_io.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
|
||||
|
||||
iso9660_stage1_5_exec-char_io.obj: char_io.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o iso9660_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
|
||||
@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='iso9660_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/iso9660_stage1_5_exec-char_io.Po' tmpdepfile='$(DEPDIR)/iso9660_stage1_5_exec-char_io.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
|
||||
|
||||
iso9660_stage1_5_exec-disk_io.o: disk_io.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o iso9660_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
|
||||
@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='iso9660_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Po' tmpdepfile='$(DEPDIR)/iso9660_stage1_5_exec-disk_io.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
|
||||
|
||||
iso9660_stage1_5_exec-disk_io.obj: disk_io.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o iso9660_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
|
||||
@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='iso9660_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Po' tmpdepfile='$(DEPDIR)/iso9660_stage1_5_exec-disk_io.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
|
||||
|
||||
iso9660_stage1_5_exec-stage1_5.o: stage1_5.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o iso9660_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \
|
||||
@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='iso9660_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Po' tmpdepfile='$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
|
||||
|
||||
iso9660_stage1_5_exec-stage1_5.obj: stage1_5.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o iso9660_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`; \
|
||||
@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='iso9660_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Po' tmpdepfile='$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
|
||||
|
||||
iso9660_stage1_5_exec-fsys_iso9660.o: fsys_iso9660.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-fsys_iso9660.o -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o iso9660_stage1_5_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c; \
|
||||
@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_iso9660.c' object='iso9660_stage1_5_exec-fsys_iso9660.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Po' tmpdepfile='$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c
|
||||
|
||||
iso9660_stage1_5_exec-fsys_iso9660.obj: fsys_iso9660.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-fsys_iso9660.obj -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o iso9660_stage1_5_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`; \
|
||||
@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_iso9660.c' object='iso9660_stage1_5_exec-fsys_iso9660.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Po' tmpdepfile='$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`
|
||||
|
||||
iso9660_stage1_5_exec-bios.o: bios.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o iso9660_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
|
||||
@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-bios.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='iso9660_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/iso9660_stage1_5_exec-bios.Po' tmpdepfile='$(DEPDIR)/iso9660_stage1_5_exec-bios.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
|
||||
|
||||
iso9660_stage1_5_exec-bios.obj: bios.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o iso9660_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
|
||||
@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-bios.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='iso9660_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/iso9660_stage1_5_exec-bios.Po' tmpdepfile='$(DEPDIR)/iso9660_stage1_5_exec-bios.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
|
||||
|
||||
jfs_stage1_5_exec-common.o: common.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-common.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o jfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
|
||||
|
@ -2906,6 +3166,28 @@ pre_stage2_exec-fsys_ffs.obj: fsys_ffs.c
|
|||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`
|
||||
|
||||
pre_stage2_exec-fsys_iso9660.o: fsys_iso9660.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_iso9660.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o pre_stage2_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c; \
|
||||
@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_iso9660.c' object='pre_stage2_exec-fsys_iso9660.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Po' tmpdepfile='$(DEPDIR)/pre_stage2_exec-fsys_iso9660.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c
|
||||
|
||||
pre_stage2_exec-fsys_iso9660.obj: fsys_iso9660.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_iso9660.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o pre_stage2_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`; \
|
||||
@am__fastdepCC_TRUE@ then mv "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Po"; \
|
||||
@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo"; exit 1; \
|
||||
@am__fastdepCC_TRUE@ fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_iso9660.c' object='pre_stage2_exec-fsys_iso9660.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Po' tmpdepfile='$(DEPDIR)/pre_stage2_exec-fsys_iso9660.TPo' @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`
|
||||
|
||||
pre_stage2_exec-fsys_jfs.o: fsys_jfs.c
|
||||
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_jfs.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo" \
|
||||
@am__fastdepCC_TRUE@ -c -o pre_stage2_exec-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c; \
|
||||
|
@ -3875,6 +4157,12 @@ stage2: pre_stage2 start
|
|||
-rm -f stage2
|
||||
cat start pre_stage2 > stage2
|
||||
|
||||
start_eltorito_exec-start.$(OBJEXT): stage2_size.h
|
||||
|
||||
stage2_eltorito: pre_stage2 start_eltorito
|
||||
-rm -f stage2_eltorito
|
||||
cat start_eltorito pre_stage2 > stage2_eltorito
|
||||
|
||||
diskless_size.h: diskless
|
||||
-rm -f $@
|
||||
set dummy `ls -l $^`; \
|
||||
|
|
58
stage2/asm.S
58
stage2/asm.S
|
@ -938,9 +938,9 @@ realcseg:
|
|||
|
||||
|
||||
/*
|
||||
* int biosdisk_int13_extensions (int ah, int drive, void *dap)
|
||||
* int biosdisk_int13_extensions (int ax, int drive, void *dap)
|
||||
*
|
||||
* Call IBM/MS INT13 Extensions (int 13 %ah=AH) for DRIVE. DAP
|
||||
* Call IBM/MS INT13 Extensions (int 13 %ax=AX) for DRIVE. DAP
|
||||
* is passed for disk address packet. If an error occurs, return
|
||||
* non-zero, otherwise zero.
|
||||
*/
|
||||
|
@ -950,6 +950,7 @@ ENTRY(biosdisk_int13_extensions)
|
|||
movl %esp, %ebp
|
||||
|
||||
pushl %esi
|
||||
pushl %ebx
|
||||
|
||||
/* compute the address of disk_address_packet */
|
||||
movl 0x10(%ebp), %eax
|
||||
|
@ -960,13 +961,13 @@ ENTRY(biosdisk_int13_extensions)
|
|||
|
||||
/* drive */
|
||||
movb 0xc(%ebp), %dl
|
||||
/* ah */
|
||||
movb 0x8(%ebp), %dh
|
||||
/* ax */
|
||||
movw 0x8(%ebp), %bx
|
||||
/* enter real mode */
|
||||
call EXT_C(prot_to_real)
|
||||
|
||||
.code16
|
||||
movb %dh, %ah
|
||||
movw %bx, %ax
|
||||
movw %cx, %ds
|
||||
int $0x13 /* do the operation */
|
||||
movb %ah, %dl /* save return value */
|
||||
|
@ -979,6 +980,7 @@ ENTRY(biosdisk_int13_extensions)
|
|||
|
||||
movb %dl, %al /* return value in %eax */
|
||||
|
||||
popl %ebx
|
||||
popl %esi
|
||||
popl %ebp
|
||||
|
||||
|
@ -1107,52 +1109,6 @@ ENTRY(check_int13_extensions)
|
|||
ret
|
||||
|
||||
|
||||
/*
|
||||
* int get_diskinfo_int13_extensions (int drive, void *drp)
|
||||
*
|
||||
* Return the geometry of DRIVE in a drive parameters, DRP. If an error
|
||||
* occurs, then return non-zero, otherwise zero.
|
||||
*/
|
||||
|
||||
ENTRY(get_diskinfo_int13_extensions)
|
||||
pushl %ebp
|
||||
movl %esp, %ebp
|
||||
|
||||
pushl %ebx
|
||||
pushl %esi
|
||||
|
||||
/* compute the address of drive parameters */
|
||||
movl 0xc(%ebp), %eax
|
||||
movw %ax, %si
|
||||
xorw %ax, %ax
|
||||
shrl $4, %eax
|
||||
movw %ax, %bx /* save the segment into %bx */
|
||||
/* drive */
|
||||
movb 0x8(%ebp), %dl
|
||||
/* enter real mode */
|
||||
call EXT_C(prot_to_real)
|
||||
|
||||
.code16
|
||||
movb $0x48, %ah
|
||||
movw %bx, %ds
|
||||
int $0x13 /* do the operation */
|
||||
movb %ah, %bl /* save return value in %bl */
|
||||
/* clear the data segment */
|
||||
xorw %ax, %ax
|
||||
movw %ax, %ds
|
||||
/* back to protected mode */
|
||||
DATA32 call EXT_C(real_to_prot)
|
||||
.code32
|
||||
|
||||
movb %bl, %al /* return value in %eax */
|
||||
|
||||
popl %esi
|
||||
popl %ebx
|
||||
popl %ebp
|
||||
|
||||
ret
|
||||
|
||||
|
||||
/*
|
||||
* int get_diskinfo_standard (int drive, unsigned long *cylinders,
|
||||
* unsigned long *heads, unsigned long *sectors)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* bios.c - implement C part of low-level BIOS disk input and output */
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 1999,2000,2003 Free Software Foundation, Inc.
|
||||
* Copyright (C) 1999,2000,2003,2004 Free Software Foundation, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -23,12 +23,11 @@
|
|||
|
||||
/* These are defined in asm.S, and never be used elsewhere, so declare the
|
||||
prototypes here. */
|
||||
extern int biosdisk_int13_extensions (int ah, int drive, void *dap);
|
||||
extern int biosdisk_int13_extensions (int ax, int drive, void *dap);
|
||||
extern int biosdisk_standard (int ah, int drive,
|
||||
int coff, int hoff, int soff,
|
||||
int nsec, int segment);
|
||||
extern int check_int13_extensions (int drive);
|
||||
extern int get_diskinfo_int13_extensions (int drive, void *drp);
|
||||
extern int get_diskinfo_standard (int drive,
|
||||
unsigned long *cylinders,
|
||||
unsigned long *heads,
|
||||
|
@ -61,7 +60,7 @@ biosdisk (int read, int drive, struct geometry *geometry,
|
|||
unsigned short blocks;
|
||||
unsigned long buffer;
|
||||
unsigned long long block;
|
||||
} dap;
|
||||
} __attribute__ ((packed)) dap;
|
||||
|
||||
/* XXX: Don't check the geometry by default, because some buggy
|
||||
BIOSes don't return the number of total sectors correctly,
|
||||
|
@ -81,12 +80,15 @@ biosdisk (int read, int drive, struct geometry *geometry,
|
|||
SEGMENT:ADDRESS. */
|
||||
dap.buffer = segment << 16;
|
||||
|
||||
err = biosdisk_int13_extensions (read + 0x42, drive, &dap);
|
||||
err = biosdisk_int13_extensions ((read + 0x42) << 8, drive, &dap);
|
||||
|
||||
/* #undef NO_INT13_FALLBACK */
|
||||
#ifndef NO_INT13_FALLBACK
|
||||
if (err)
|
||||
{
|
||||
if (geometry->flags & BIOSDISK_FLAG_CDROM)
|
||||
return err;
|
||||
|
||||
geometry->flags &= ~BIOSDISK_FLAG_LBA_EXTENSION;
|
||||
geometry->total_sectors = (geometry->cylinders
|
||||
* geometry->heads
|
||||
|
@ -119,6 +121,63 @@ biosdisk (int read, int drive, struct geometry *geometry,
|
|||
return err;
|
||||
}
|
||||
|
||||
/* Check bootable CD-ROM emulation status. */
|
||||
static int
|
||||
get_cdinfo (int drive, struct geometry *geometry)
|
||||
{
|
||||
int err;
|
||||
struct iso_spec_packet
|
||||
{
|
||||
unsigned char size;
|
||||
unsigned char media_type;
|
||||
unsigned char drive_no;
|
||||
unsigned char controller_no;
|
||||
unsigned long image_lba;
|
||||
unsigned short device_spec;
|
||||
unsigned short cache_seg;
|
||||
unsigned short load_seg;
|
||||
unsigned short length_sec512;
|
||||
unsigned char cylinders;
|
||||
unsigned char sectors;
|
||||
unsigned char heads;
|
||||
|
||||
unsigned char dummy[16];
|
||||
} __attribute__ ((packed)) cdrp;
|
||||
|
||||
grub_memset (&cdrp, 0, sizeof (cdrp));
|
||||
cdrp.size = sizeof (cdrp) - sizeof (cdrp.dummy);
|
||||
err = biosdisk_int13_extensions (0x4B01, drive, &cdrp);
|
||||
if (! err && cdrp.drive_no == drive)
|
||||
{
|
||||
if ((cdrp.media_type & 0x0F) == 0)
|
||||
{
|
||||
/* No emulation bootable CD-ROM */
|
||||
geometry->flags = BIOSDISK_FLAG_LBA_EXTENSION | BIOSDISK_FLAG_CDROM;
|
||||
geometry->cylinders = 0;
|
||||
geometry->heads = 1;
|
||||
geometry->sectors = 15;
|
||||
geometry->sector_size = 2048;
|
||||
geometry->total_sectors = MAXINT;
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Floppy or hard-disk emulation */
|
||||
geometry->cylinders
|
||||
= ((unsigned int) cdrp.cylinders
|
||||
+ (((unsigned int) (cdrp.sectors & 0xC0)) << 2));
|
||||
geometry->heads = cdrp.heads;
|
||||
geometry->sectors = cdrp.sectors & 0x3F;
|
||||
geometry->sector_size = SECTOR_SIZE;
|
||||
geometry->total_sectors = (geometry->cylinders
|
||||
* geometry->heads
|
||||
* geometry->sectors);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Return the geometry of DRIVE in GEOMETRY. If an error occurs, return
|
||||
non-zero, otherwise zero. */
|
||||
int
|
||||
|
@ -131,11 +190,19 @@ get_diskinfo (int drive, struct geometry *geometry)
|
|||
|
||||
if (drive & 0x80)
|
||||
{
|
||||
/* hard disk */
|
||||
/* hard disk or CD-ROM */
|
||||
int version;
|
||||
unsigned long total_sectors = 0;
|
||||
|
||||
version = check_int13_extensions (drive);
|
||||
|
||||
if (drive >= 0x88 || version)
|
||||
{
|
||||
/* Possible CD-ROM - check the status. */
|
||||
if (get_cdinfo (drive, geometry))
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (version)
|
||||
{
|
||||
struct drive_parameters
|
||||
|
@ -177,7 +244,7 @@ get_diskinfo (int drive, struct geometry *geometry)
|
|||
bytes. */
|
||||
drp.size = sizeof (drp) - sizeof (drp.dummy);
|
||||
|
||||
err = get_diskinfo_int13_extensions (drive, &drp);
|
||||
err = biosdisk_int13_extensions (0x4800, drive, &drp);
|
||||
if (! err)
|
||||
{
|
||||
/* Set the LBA flag. */
|
||||
|
@ -216,6 +283,7 @@ get_diskinfo (int drive, struct geometry *geometry)
|
|||
* geometry->sectors);
|
||||
}
|
||||
geometry->total_sectors = total_sectors;
|
||||
geometry->sector_size = SECTOR_SIZE;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -242,6 +310,7 @@ get_diskinfo (int drive, struct geometry *geometry)
|
|||
geometry->total_sectors = (geometry->cylinders
|
||||
* geometry->heads
|
||||
* geometry->sectors);
|
||||
geometry->sector_size = SECTOR_SIZE;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -1720,7 +1720,7 @@ install_func (char *arg, int flags)
|
|||
/* XXX: Probably SECTOR_SIZE is reasonable. */
|
||||
char *config_filename = stage2_second_buffer + SECTOR_SIZE;
|
||||
char *dummy = config_filename + SECTOR_SIZE;
|
||||
int new_drive = 0xFF;
|
||||
int new_drive = GRUB_INVALID_DRIVE;
|
||||
int dest_drive, dest_partition, dest_sector;
|
||||
int src_drive, src_partition, src_part_start;
|
||||
int i;
|
||||
|
@ -2051,7 +2051,7 @@ install_func (char *arg, int flags)
|
|||
/* If the drive where the Stage 2 resides is the same as
|
||||
the one where the Stage 1.5 resides, do not embed the
|
||||
drive number. */
|
||||
current_drive = 0xFF;
|
||||
current_drive = GRUB_INVALID_DRIVE;
|
||||
}
|
||||
|
||||
device = (current_drive << 24) | current_partition;
|
||||
|
@ -3748,6 +3748,7 @@ setup_func (char *arg, int flags)
|
|||
{"ext2fs", "/e2fs_stage1_5"},
|
||||
{"fat", "/fat_stage1_5"},
|
||||
{"ffs", "/ffs_stage1_5"},
|
||||
{"iso9660", "/iso9660_stage1_5"},
|
||||
{"jfs", "/jfs_stage1_5"},
|
||||
{"minix", "/minix_stage1_5"},
|
||||
{"reiserfs", "/reiserfs_stage1_5"},
|
||||
|
|
|
@ -1265,3 +1265,9 @@ grub_strcpy (char *dest, const char *src)
|
|||
return dest;
|
||||
}
|
||||
#endif /* ! STAGE1_5 */
|
||||
|
||||
#ifndef GRUB_UTIL
|
||||
# undef memcpy
|
||||
/* GCC emits references to memcpy() for struct copies etc. */
|
||||
void *memcpy (void *dest, const void *src, int n) __attribute__ ((alias ("grub_memmove")));
|
||||
#endif
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* cmdline.c - the device-independent GRUB text command line */
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 1999,2000,2001,2002 Free Software Foundation, Inc.
|
||||
* Copyright (C) 1999,2000,2001,2002,2004 Free Software Foundation, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -101,7 +101,7 @@ init_cmdline (void)
|
|||
/* Initialization. */
|
||||
saved_drive = boot_drive;
|
||||
saved_partition = install_partition;
|
||||
current_drive = 0xFF;
|
||||
current_drive = GRUB_INVALID_DRIVE;
|
||||
errnum = 0;
|
||||
count_lines = -1;
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* common.c - miscellaneous shared variables and routines */
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 1999,2000,2001,2002 Free Software Foundation, Inc.
|
||||
* Copyright (C) 1999,2000,2001,2002,2004 Free Software Foundation, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -32,6 +32,7 @@
|
|||
struct multiboot_info mbi;
|
||||
unsigned long saved_drive;
|
||||
unsigned long saved_partition;
|
||||
unsigned long cdrom_drive;
|
||||
#ifndef STAGE1_5
|
||||
unsigned long saved_mem_upper;
|
||||
|
||||
|
@ -319,6 +320,18 @@ init_bios_info (void)
|
|||
saved_drive = boot_drive;
|
||||
saved_partition = install_partition;
|
||||
|
||||
/* Set cdrom drive. */
|
||||
{
|
||||
struct geometry geom;
|
||||
|
||||
/* Get the geometry. */
|
||||
if (get_diskinfo (boot_drive, &geom)
|
||||
|| ! (geom.flags & BIOSDISK_FLAG_CDROM))
|
||||
cdrom_drive = GRUB_INVALID_DRIVE;
|
||||
else
|
||||
cdrom_drive = boot_drive;
|
||||
}
|
||||
|
||||
/* Start main routine here. */
|
||||
cmain ();
|
||||
}
|
||||
|
|
133
stage2/disk_io.c
133
stage2/disk_io.c
|
@ -1,7 +1,7 @@
|
|||
/* disk_io.c - implement abstract BIOS disk input and output */
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 1999,2000,2001,2002,2003 Free Software Foundation, Inc.
|
||||
* Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -72,6 +72,9 @@ struct fsys_entry fsys_table[NUM_FSYS + 1] =
|
|||
# ifdef FSYS_XFS
|
||||
{"xfs", xfs_mount, xfs_read, xfs_dir, 0, 0},
|
||||
# endif
|
||||
#ifdef FSYS_ISO9660
|
||||
{ "iso9660", iso9660_mount, iso9660_read, iso9660_dir, 0, 0},
|
||||
#endif
|
||||
/* XX FFS should come last as it's superblock is commonly crossing tracks
|
||||
on floppies from track 1 to 2, while others only use 1. */
|
||||
# ifdef FSYS_FFS
|
||||
|
@ -83,7 +86,7 @@ struct fsys_entry fsys_table[NUM_FSYS + 1] =
|
|||
|
||||
/* These have the same format as "boot_drive" and "install_partition", but
|
||||
are meant to be working values. */
|
||||
unsigned long current_drive = 0xFF;
|
||||
unsigned long current_drive = GRUB_INVALID_DRIVE;
|
||||
unsigned long current_partition;
|
||||
|
||||
#ifndef STAGE1_5
|
||||
|
@ -121,17 +124,28 @@ struct geometry buf_geom;
|
|||
int filepos;
|
||||
int filemax;
|
||||
|
||||
static inline unsigned long
|
||||
log2 (unsigned long word)
|
||||
{
|
||||
asm volatile ("bsfl %1,%0"
|
||||
: "=r" (word)
|
||||
: "r" (word));
|
||||
return word;
|
||||
}
|
||||
|
||||
int
|
||||
rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
|
||||
{
|
||||
int slen = (byte_offset + byte_len + SECTOR_SIZE - 1) >> SECTOR_BITS;
|
||||
int slen, sectors_per_vtrack;
|
||||
int sector_size_bits = log2 (buf_geom.sector_size);
|
||||
|
||||
if (byte_len <= 0)
|
||||
return 1;
|
||||
|
||||
while (byte_len > 0 && !errnum)
|
||||
{
|
||||
int soff, num_sect, bufaddr, track, size = byte_len;
|
||||
int soff, num_sect, track, size = byte_len;
|
||||
char *bufaddr;
|
||||
|
||||
/*
|
||||
* Check track buffer. If it isn't valid or it is from the
|
||||
|
@ -146,6 +160,7 @@ rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
|
|||
}
|
||||
buf_drive = drive;
|
||||
buf_track = -1;
|
||||
sector_size_bits = log2 (buf_geom.sector_size);
|
||||
}
|
||||
|
||||
/* Make sure that SECTOR is valid. */
|
||||
|
@ -155,15 +170,25 @@ rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* Get first sector of track */
|
||||
soff = sector % buf_geom.sectors;
|
||||
slen = ((byte_offset + byte_len + buf_geom.sector_size - 1)
|
||||
>> sector_size_bits);
|
||||
|
||||
/* Eliminate a buffer overflow. */
|
||||
if ((buf_geom.sectors << sector_size_bits) > BUFFERLEN)
|
||||
sectors_per_vtrack = (BUFFERLEN >> sector_size_bits);
|
||||
else
|
||||
sectors_per_vtrack = buf_geom.sectors;
|
||||
|
||||
/* Get the first sector of track. */
|
||||
soff = sector % sectors_per_vtrack;
|
||||
track = sector - soff;
|
||||
num_sect = buf_geom.sectors - soff;
|
||||
bufaddr = BUFFERADDR + (soff * SECTOR_SIZE) + byte_offset;
|
||||
num_sect = sectors_per_vtrack - soff;
|
||||
bufaddr = ((char *) BUFFERADDR
|
||||
+ (soff << sector_size_bits) + byte_offset);
|
||||
|
||||
if (track != buf_track)
|
||||
{
|
||||
int bios_err, read_start = track, read_len = buf_geom.sectors;
|
||||
int bios_err, read_start = track, read_len = sectors_per_vtrack;
|
||||
|
||||
/*
|
||||
* If there's more than one read in this entire loop, then
|
||||
|
@ -174,7 +199,7 @@ rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
|
|||
{
|
||||
read_start = sector;
|
||||
read_len = num_sect;
|
||||
bufaddr = BUFFERADDR + byte_offset;
|
||||
bufaddr = (char *) BUFFERADDR + byte_offset;
|
||||
}
|
||||
|
||||
bios_err = biosdisk (BIOSDISK_READ, drive, &buf_geom,
|
||||
|
@ -196,7 +221,7 @@ rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
|
|||
sector, slen, BUFFERSEG))
|
||||
errnum = ERR_READ;
|
||||
|
||||
bufaddr = BUFFERADDR + byte_offset;
|
||||
bufaddr = (char *) BUFFERADDR + byte_offset;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -213,7 +238,8 @@ rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
|
|||
{
|
||||
/* We already read the sector 1, copy it to sector 0 */
|
||||
memmove ((char *) BUFFERADDR,
|
||||
(char *) BUFFERADDR + SECTOR_SIZE, SECTOR_SIZE);
|
||||
(char *) BUFFERADDR + buf_geom.sector_size,
|
||||
buf_geom.sector_size);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -224,8 +250,8 @@ rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
|
|||
}
|
||||
}
|
||||
|
||||
if (size > ((num_sect * SECTOR_SIZE) - byte_offset))
|
||||
size = (num_sect * SECTOR_SIZE) - byte_offset;
|
||||
if (size > ((num_sect << sector_size_bits) - byte_offset))
|
||||
size = (num_sect << sector_size_bits) - byte_offset;
|
||||
|
||||
/*
|
||||
* Instrumentation to tell which sectors were read and used.
|
||||
|
@ -233,28 +259,27 @@ rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
|
|||
if (disk_read_func)
|
||||
{
|
||||
int sector_num = sector;
|
||||
int length = SECTOR_SIZE - byte_offset;
|
||||
int length = buf_geom.sector_size - byte_offset;
|
||||
if (length > size)
|
||||
length = size;
|
||||
(*disk_read_func) (sector_num++, byte_offset, length);
|
||||
length = size - length;
|
||||
if (length > 0)
|
||||
{
|
||||
while (length > SECTOR_SIZE)
|
||||
while (length > buf_geom.sector_size)
|
||||
{
|
||||
(*disk_read_func) (sector_num++, 0, SECTOR_SIZE);
|
||||
length -= SECTOR_SIZE;
|
||||
(*disk_read_func) (sector_num++, 0, buf_geom.sector_size);
|
||||
length -= buf_geom.sector_size;
|
||||
}
|
||||
(*disk_read_func) (sector_num, 0, length);
|
||||
}
|
||||
}
|
||||
|
||||
memmove (buf, (char *) bufaddr, size);
|
||||
grub_memmove (buf, bufaddr, size);
|
||||
|
||||
buf += size;
|
||||
byte_len -= size;
|
||||
sector += num_sect;
|
||||
slen -= num_sect;
|
||||
byte_offset = 0;
|
||||
}
|
||||
|
||||
|
@ -371,7 +396,8 @@ sane_partition (void)
|
|||
return 1;
|
||||
|
||||
if (!(current_partition & 0xFF000000uL)
|
||||
&& (current_drive & 0xFFFFFF7F) < 8
|
||||
&& ((current_drive & 0xFFFFFF7F) < 8
|
||||
|| current_drive == cdrom_drive)
|
||||
&& (current_partition & 0xFF) == 0xFF
|
||||
&& ((current_partition & 0xFF00) == 0xFF00
|
||||
|| (current_partition & 0xFF00) < 0x800)
|
||||
|
@ -918,8 +944,8 @@ set_device (char *device)
|
|||
int drive = (dev >> 24) & 0xFF;
|
||||
int partition = dev & 0xFFFFFF;
|
||||
|
||||
/* If DRIVE is disabled (0xFF), use SAVED_DRIVE instead. */
|
||||
if (drive == 0xFF)
|
||||
/* If DRIVE is disabled, use SAVED_DRIVE instead. */
|
||||
if (drive == GRUB_INVALID_DRIVE)
|
||||
current_drive = saved_drive;
|
||||
else
|
||||
current_drive = drive;
|
||||
|
@ -949,10 +975,12 @@ set_device (char *device)
|
|||
{
|
||||
char ch = *device;
|
||||
#ifdef SUPPORT_NETBOOT
|
||||
if (*device == 'f' || *device == 'h' ||
|
||||
(*device == 'n' && network_ready))
|
||||
if (*device == 'f' || *device == 'h'
|
||||
|| (*device == 'n' && network_ready)
|
||||
|| (*device == 'c' && cdrom_drive != GRUB_INVALID_DRIVE))
|
||||
#else
|
||||
if (*device == 'f' || *device == 'h')
|
||||
if (*device == 'f' || *device == 'h'
|
||||
|| (*device == 'c' && cdrom_drive != GRUB_INVALID_DRIVE))
|
||||
#endif /* SUPPORT_NETBOOT */
|
||||
{
|
||||
/* user has given '([fhn]', check for resp. add 'd' and
|
||||
|
@ -968,26 +996,31 @@ set_device (char *device)
|
|||
return device + 2;
|
||||
}
|
||||
|
||||
if ((*device == 'f'
|
||||
|| *device == 'h'
|
||||
#ifdef SUPPORT_NETBOOT
|
||||
if ((*device == 'f' || *device == 'h' ||
|
||||
(*device == 'n' && network_ready))
|
||||
#else
|
||||
if ((*device == 'f' || *device == 'h')
|
||||
#endif /* SUPPORT_NETBOOT */
|
||||
|| (*device == 'n' && network_ready)
|
||||
#endif
|
||||
|| (*device == 'c' && cdrom_drive != GRUB_INVALID_DRIVE))
|
||||
&& (device += 2, (*(device - 1) != 'd')))
|
||||
errnum = ERR_NUMBER_PARSING;
|
||||
|
||||
|
||||
#ifdef SUPPORT_NETBOOT
|
||||
if (ch == 'n' && network_ready)
|
||||
current_drive = NETWORK_DRIVE;
|
||||
else
|
||||
#endif /* SUPPORT_NETBOOT */
|
||||
{
|
||||
safe_parse_maxint (&device, (int *) ¤t_drive);
|
||||
|
||||
disk_choice = 0;
|
||||
if (ch == 'h')
|
||||
current_drive += 0x80;
|
||||
if (*device == 'c' && cdrom_drive != GRUB_INVALID_DRIVE)
|
||||
current_drive = cdrom_drive;
|
||||
else
|
||||
{
|
||||
safe_parse_maxint (&device, (int *) ¤t_drive);
|
||||
|
||||
disk_choice = 0;
|
||||
if (ch == 'h')
|
||||
current_drive += 0x80;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1145,7 +1178,7 @@ setup_part (char *filename)
|
|||
|
||||
if (! (filename = set_device (filename)))
|
||||
{
|
||||
current_drive = 0xFF;
|
||||
current_drive = GRUB_INVALID_DRIVE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1162,7 +1195,7 @@ setup_part (char *filename)
|
|||
{
|
||||
if ((filename = set_device (filename)) == 0)
|
||||
{
|
||||
current_drive = 0xFF;
|
||||
current_drive = GRUB_INVALID_DRIVE;
|
||||
return 0;
|
||||
}
|
||||
# ifndef NO_BLOCK_FILES
|
||||
|
@ -1337,9 +1370,12 @@ print_completions (int is_filename, int is_completion)
|
|||
if (! is_completion)
|
||||
grub_printf (" Possible disks are: ");
|
||||
|
||||
if (!ptr
|
||||
|| *(ptr-1) != 'd'
|
||||
#ifdef SUPPORT_NETBOOT
|
||||
if (!ptr || *(ptr-1) != 'd' || *(ptr-2) != 'n')
|
||||
|| *(ptr-2) != 'n'
|
||||
#endif /* SUPPORT_NETBOOT */
|
||||
|| *(ptr-2) != 'c')
|
||||
{
|
||||
for (i = (ptr && (*(ptr-1) == 'd' && *(ptr-2) == 'h') ? 1:0);
|
||||
i < (ptr && (*(ptr-1) == 'd' && *(ptr-2) == 'f') ? 1:2);
|
||||
|
@ -1359,11 +1395,20 @@ print_completions (int is_filename, int is_completion)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (cdrom_drive != GRUB_INVALID_DRIVE
|
||||
&& (disk_choice || cdrom_drive == current_drive)
|
||||
&& (!ptr
|
||||
|| *(ptr-1) == '('
|
||||
|| (*(ptr-1) == 'd' && *(ptr-2) == 'c')))
|
||||
print_a_completion ("cd");
|
||||
|
||||
# ifdef SUPPORT_NETBOOT
|
||||
if (network_ready &&
|
||||
(disk_choice || NETWORK_DRIVE == current_drive) &&
|
||||
(!ptr || *(ptr-1) == '(' ||
|
||||
(*(ptr-1) == 'd' && *(ptr-2) == 'n')))
|
||||
if (network_ready
|
||||
&& (disk_choice || NETWORK_DRIVE == current_drive)
|
||||
&& (!ptr
|
||||
|| *(ptr-1) == '('
|
||||
|| (*(ptr-1) == 'd' && *(ptr-2) == 'n')))
|
||||
print_a_completion ("nd");
|
||||
# endif /* SUPPORT_NETBOOT */
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* filesys.h - abstract filesystem interface */
|
||||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
* Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -105,11 +105,20 @@ void tftp_close (void);
|
|||
#define FSYS_TFTP_NUM 0
|
||||
#endif
|
||||
|
||||
#ifdef FSYS_ISO9660
|
||||
#define FSYS_ISO9660_NUM 1
|
||||
int iso9660_mount (void);
|
||||
int iso9660_read (char *buf, int len);
|
||||
int iso9660_dir (char *dirname);
|
||||
#else
|
||||
#define FSYS_ISO9660_NUM 0
|
||||
#endif
|
||||
|
||||
#ifndef NUM_FSYS
|
||||
#define NUM_FSYS \
|
||||
(FSYS_FFS_NUM + FSYS_FAT_NUM + FSYS_EXT2FS_NUM + FSYS_MINIX_NUM \
|
||||
+ FSYS_REISERFS_NUM + FSYS_VSTAFS_NUM + FSYS_JFS_NUM + FSYS_XFS_NUM \
|
||||
+ FSYS_TFTP_NUM)
|
||||
+ FSYS_TFTP_NUM + FSYS_ISO9660_NUM)
|
||||
#endif
|
||||
|
||||
/* defines for the block filesystem info area */
|
||||
|
|
442
stage2/fsys_iso9660.c
Normal file
442
stage2/fsys_iso9660.c
Normal file
|
@ -0,0 +1,442 @@
|
|||
/*
|
||||
* ISO 9660 filesystem backend for GRUB (GRand Unified Bootloader)
|
||||
* including Rock Ridge Extensions support
|
||||
*
|
||||
* Copyright (C) 1998, 1999 Kousuke Takai <tak@kmc.kyoto-u.ac.jp>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/*
|
||||
* References:
|
||||
* linux/fs/isofs/rock.[ch]
|
||||
* mkisofs-1.11.1/diag/isoinfo.c
|
||||
* mkisofs-1.11.1/iso9660.h
|
||||
* (all are written by Eric Youngdale)
|
||||
*
|
||||
* Modifications by:
|
||||
* Leonid Lisovskiy <lly@pisem.net> 2003
|
||||
*/
|
||||
|
||||
#ifdef FSYS_ISO9660
|
||||
|
||||
#include "shared.h"
|
||||
#include "filesys.h"
|
||||
#include "iso9660.h"
|
||||
|
||||
/* iso9660 super-block data in memory */
|
||||
struct iso_sb_info {
|
||||
unsigned long vol_sector;
|
||||
|
||||
};
|
||||
|
||||
/* iso fs inode data in memory */
|
||||
struct iso_inode_info {
|
||||
unsigned long file_start;
|
||||
};
|
||||
|
||||
#define ISO_SUPER \
|
||||
((struct iso_sb_info *)(FSYS_BUF))
|
||||
#define INODE \
|
||||
((struct iso_inode_info *)(FSYS_BUF+sizeof(struct iso_sb_info)))
|
||||
#define PRIMDESC ((struct iso_primary_descriptor *)(FSYS_BUF + 2048))
|
||||
#define DIRREC ((struct iso_directory_record *)(FSYS_BUF + 4096))
|
||||
#define RRCONT_BUF ((unsigned char *)(FSYS_BUF + 6144))
|
||||
#define NAME_BUF ((unsigned char *)(FSYS_BUF + 8192))
|
||||
|
||||
|
||||
static inline unsigned long
|
||||
log2 (unsigned long word)
|
||||
{
|
||||
asm volatile ("bsfl %1,%0"
|
||||
: "=r" (word)
|
||||
: "r" (word));
|
||||
return word;
|
||||
}
|
||||
|
||||
static int
|
||||
iso9660_devread (int sector, int byte_offset, int byte_len, char *buf)
|
||||
{
|
||||
unsigned short sector_size_lg2 = log2(buf_geom.sector_size);
|
||||
|
||||
/*
|
||||
* We have to use own devread() function since BIOS return wrong geometry
|
||||
*/
|
||||
if (sector < 0)
|
||||
{
|
||||
errnum = ERR_OUTSIDE_PART;
|
||||
return 0;
|
||||
}
|
||||
if (byte_len <= 0)
|
||||
return 1;
|
||||
|
||||
sector += (byte_offset >> sector_size_lg2);
|
||||
byte_offset &= (buf_geom.sector_size - 1);
|
||||
asm volatile ("shl%L0 %1,%0"
|
||||
: "=r"(sector)
|
||||
: "Ic"((int8_t)(ISO_SECTOR_BITS - sector_size_lg2)),
|
||||
"0"(sector));
|
||||
|
||||
#if !defined(STAGE1_5)
|
||||
if (disk_read_hook && debug)
|
||||
printf ("<%d, %d, %d>", sector, byte_offset, byte_len);
|
||||
#endif /* !STAGE1_5 */
|
||||
|
||||
return rawread(current_drive, part_start + sector, byte_offset, byte_len, buf);
|
||||
}
|
||||
|
||||
int
|
||||
iso9660_mount (void)
|
||||
{
|
||||
unsigned int sector;
|
||||
|
||||
/*
|
||||
* Because there is no defined slice type ID for ISO-9660 filesystem,
|
||||
* this test will pass only either (1) if entire disk is used, or
|
||||
* (2) if current partition is BSD style sub-partition whose ID is
|
||||
* ISO-9660.
|
||||
*/
|
||||
if ((current_partition != 0xFFFFFF)
|
||||
&& !IS_PC_SLICE_TYPE_BSD_WITH_FS(current_slice, FS_ISO9660))
|
||||
return 0;
|
||||
|
||||
/*
|
||||
* Currently, only FIRST session of MultiSession disks are supported !!!
|
||||
*/
|
||||
for (sector = 16 ; sector < 32 ; sector++)
|
||||
{
|
||||
if (!iso9660_devread(sector, 0, sizeof(*PRIMDESC), (char *)PRIMDESC))
|
||||
break;
|
||||
/* check ISO_VD_PRIMARY and ISO_STANDARD_ID */
|
||||
if (PRIMDESC->type.l == ISO_VD_PRIMARY
|
||||
&& !__builtin_memcmp(PRIMDESC->id, ISO_STANDARD_ID, sizeof(PRIMDESC->id)))
|
||||
{
|
||||
ISO_SUPER->vol_sector = sector;
|
||||
INODE->file_start = 0;
|
||||
fsmax = PRIMDESC->volume_space_size.l;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
iso9660_dir (char *dirname)
|
||||
{
|
||||
struct iso_directory_record *idr;
|
||||
RR_ptr_t rr_ptr;
|
||||
struct rock_ridge *ce_ptr;
|
||||
unsigned int pathlen;
|
||||
int size;
|
||||
unsigned int extent;
|
||||
unsigned char file_type;
|
||||
unsigned int rr_len;
|
||||
unsigned char rr_flag;
|
||||
|
||||
idr = &PRIMDESC->root_directory_record;
|
||||
INODE->file_start = 0;
|
||||
|
||||
do
|
||||
{
|
||||
while (*dirname == '/') /* skip leading slashes */
|
||||
dirname++;
|
||||
/* pathlen = strcspn(dirname, "/\n\t "); */
|
||||
for (pathlen = 0 ;
|
||||
dirname[pathlen]
|
||||
&& !isspace(dirname[pathlen]) && dirname[pathlen] != '/' ;
|
||||
pathlen++)
|
||||
;
|
||||
|
||||
size = idr->size.l;
|
||||
extent = idr->extent.l;
|
||||
|
||||
while (size > 0)
|
||||
{
|
||||
if (!iso9660_devread(extent, 0, ISO_SECTOR_SIZE, (char *)DIRREC))
|
||||
{
|
||||
errnum = ERR_FSYS_CORRUPT;
|
||||
return 0;
|
||||
}
|
||||
extent++;
|
||||
|
||||
idr = (struct iso_directory_record *)DIRREC;
|
||||
for (; idr->length.l > 0;
|
||||
idr = (struct iso_directory_record *)((char *)idr + idr->length.l) )
|
||||
{
|
||||
const char *name = idr->name;
|
||||
unsigned int name_len = idr->name_len.l;
|
||||
|
||||
file_type = (idr->flags.l & 2) ? ISO_DIRECTORY : ISO_REGULAR;
|
||||
if (name_len == 1)
|
||||
{
|
||||
if ((name[0] == 0) || /* self */
|
||||
(name[0] == 1)) /* parent */
|
||||
continue;
|
||||
}
|
||||
if (name_len > 2 && CHECK2(name + name_len - 2, ';', '1'))
|
||||
{
|
||||
name_len -= 2; /* truncate trailing file version */
|
||||
if (name_len > 1 && name[name_len - 1] == '.')
|
||||
name_len--; /* truncate trailing dot */
|
||||
}
|
||||
|
||||
/*
|
||||
* Parse Rock-Ridge extension
|
||||
*/
|
||||
rr_len = (idr->length.l - idr->name_len.l
|
||||
- sizeof(struct iso_directory_record)
|
||||
+ sizeof(idr->name));
|
||||
rr_ptr.ptr = ((unsigned char *)idr + idr->name_len.l
|
||||
+ sizeof(struct iso_directory_record)
|
||||
- sizeof(idr->name));
|
||||
if (rr_ptr.i & 1)
|
||||
rr_ptr.i++, rr_len--;
|
||||
ce_ptr = NULL;
|
||||
rr_flag = RR_FLAG_NM | RR_FLAG_PX /*| RR_FLAG_SL*/;
|
||||
|
||||
while (rr_len >= 4)
|
||||
{
|
||||
if (rr_ptr.rr->version != 1)
|
||||
{
|
||||
#ifndef STAGE1_5
|
||||
if (debug)
|
||||
printf(
|
||||
"Non-supported version (%d) RockRidge chunk "
|
||||
"`%c%c'\n", rr_ptr.rr->version,
|
||||
rr_ptr.rr->signature & 0xFF,
|
||||
rr_ptr.rr->signature >> 8);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (rr_ptr.rr->signature)
|
||||
{
|
||||
case RRMAGIC('R', 'R'):
|
||||
if ( rr_ptr.rr->len >= (4+sizeof(struct RR)))
|
||||
rr_flag &= rr_ptr.rr->u.rr.flags.l;
|
||||
break;
|
||||
case RRMAGIC('N', 'M'):
|
||||
name = rr_ptr.rr->u.nm.name;
|
||||
name_len = rr_ptr.rr->len - (4+sizeof(struct NM));
|
||||
rr_flag &= ~RR_FLAG_NM;
|
||||
break;
|
||||
case RRMAGIC('P', 'X'):
|
||||
if (rr_ptr.rr->len >= (4+sizeof(struct PX)))
|
||||
{
|
||||
file_type = ((rr_ptr.rr->u.px.mode.l & POSIX_S_IFMT)
|
||||
== POSIX_S_IFREG
|
||||
? ISO_REGULAR
|
||||
: ((rr_ptr.rr->u.px.mode.l & POSIX_S_IFMT)
|
||||
== POSIX_S_IFDIR
|
||||
? ISO_DIRECTORY : ISO_OTHER));
|
||||
rr_flag &= ~RR_FLAG_PX;
|
||||
}
|
||||
break;
|
||||
case RRMAGIC('C', 'E'):
|
||||
if (rr_ptr.rr->len >= (4+sizeof(struct CE)))
|
||||
ce_ptr = rr_ptr.rr;
|
||||
break;
|
||||
#if 0 // RockRidge symlinks are not supported yet
|
||||
case RRMAGIC('S', 'L'):
|
||||
{
|
||||
int slen;
|
||||
unsigned char rootflag, prevflag;
|
||||
char *rpnt = NAME_BUF+1024;
|
||||
struct SL_component *slp;
|
||||
|
||||
slen = rr_ptr.rr->len - (4+1);
|
||||
slp = &rr_ptr.rr->u.sl.link;
|
||||
while (slen > 1)
|
||||
{
|
||||
rootflag = 0;
|
||||
switch (slp->flags.l)
|
||||
{
|
||||
case 0:
|
||||
memcpy(rpnt, slp->text, slp->len);
|
||||
rpnt += slp->len;
|
||||
break;
|
||||
case 4:
|
||||
*rpnt++ = '.';
|
||||
/* fallthru */
|
||||
case 2:
|
||||
*rpnt++ = '.';
|
||||
break;
|
||||
case 8:
|
||||
rootflag = 1;
|
||||
*rpnt++ = '/';
|
||||
break;
|
||||
default:
|
||||
printf("Symlink component flag not implemented (%d)\n",
|
||||
slp->flags.l);
|
||||
slen = 0;
|
||||
break;
|
||||
}
|
||||
slen -= slp->len + 2;
|
||||
prevflag = slp->flags.l;
|
||||
slp = (struct SL_component *) ((char *) slp + slp->len + 2);
|
||||
|
||||
if (slen < 2)
|
||||
{
|
||||
/*
|
||||
* If there is another SL record, and this component
|
||||
* record isn't continued, then add a slash.
|
||||
*/
|
||||
if ((!rootflag) && (rr_ptr.rr->u.sl.flags.l & 1) && !(prevflag & 1))
|
||||
*rpnt++='/';
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
* If this component record isn't continued, then append a '/'.
|
||||
*/
|
||||
if (!rootflag && !(prevflag & 1))
|
||||
*rpnt++ = '/';
|
||||
}
|
||||
*rpnt++ = '\0';
|
||||
grub_putstr(NAME_BUF+1024);// debug print!
|
||||
}
|
||||
rr_flag &= ~RR_FLAG_SL;
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!rr_flag)
|
||||
/*
|
||||
* There is no more extension we expects...
|
||||
*/
|
||||
break;
|
||||
|
||||
rr_len -= rr_ptr.rr->len;
|
||||
rr_ptr.ptr += rr_ptr.rr->len;
|
||||
if (rr_len < 4 && ce_ptr != NULL)
|
||||
{
|
||||
/* preserve name before loading new extent. */
|
||||
if( RRCONT_BUF <= (unsigned char *)name
|
||||
&& (unsigned char *)name < RRCONT_BUF + ISO_SECTOR_SIZE )
|
||||
{
|
||||
memcpy(NAME_BUF, name, name_len);
|
||||
name = NAME_BUF;
|
||||
}
|
||||
rr_ptr.ptr = RRCONT_BUF + ce_ptr->u.ce.offset.l;
|
||||
rr_len = ce_ptr->u.ce.size.l;
|
||||
if (!iso9660_devread(ce_ptr->u.ce.extent.l, 0, ISO_SECTOR_SIZE, RRCONT_BUF))
|
||||
{
|
||||
errnum = 0; /* this is not fatal. */
|
||||
break;
|
||||
}
|
||||
ce_ptr = NULL;
|
||||
}
|
||||
} /* rr_len >= 4 */
|
||||
|
||||
filemax = MAXINT;
|
||||
if (name_len >= pathlen
|
||||
&& !__builtin_memcmp(name, dirname, pathlen))
|
||||
{
|
||||
if (dirname[pathlen] == '/' || !print_possibilities)
|
||||
{
|
||||
/*
|
||||
* DIRNAME is directory component of pathname,
|
||||
* or we are to open a file.
|
||||
*/
|
||||
if (pathlen == name_len)
|
||||
{
|
||||
if (dirname[pathlen] == '/')
|
||||
{
|
||||
if (file_type != ISO_DIRECTORY)
|
||||
{
|
||||
errnum = ERR_BAD_FILETYPE;
|
||||
return 0;
|
||||
}
|
||||
goto next_dir_level;
|
||||
}
|
||||
if (file_type != ISO_REGULAR)
|
||||
{
|
||||
errnum = ERR_BAD_FILETYPE;
|
||||
return 0;
|
||||
}
|
||||
INODE->file_start = idr->extent.l;
|
||||
filepos = 0;
|
||||
filemax = idr->size.l;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else /* Completion */
|
||||
{
|
||||
#ifndef STAGE1_5
|
||||
if (print_possibilities > 0)
|
||||
print_possibilities = -print_possibilities;
|
||||
memcpy(NAME_BUF, name, name_len);
|
||||
NAME_BUF[name_len] = '\0';
|
||||
print_a_completion (NAME_BUF);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
} /* for */
|
||||
|
||||
size -= ISO_SECTOR_SIZE;
|
||||
} /* size>0 */
|
||||
|
||||
if (dirname[pathlen] == '/' || print_possibilities >= 0)
|
||||
{
|
||||
errnum = ERR_FILE_NOT_FOUND;
|
||||
return 0;
|
||||
}
|
||||
|
||||
next_dir_level:
|
||||
dirname += pathlen;
|
||||
|
||||
} while (*dirname == '/');
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
iso9660_read (char *buf, int len)
|
||||
{
|
||||
int sector, blkoffset, size, ret;
|
||||
|
||||
if (INODE->file_start == 0)
|
||||
return 0;
|
||||
|
||||
ret = 0;
|
||||
blkoffset = filepos & (ISO_SECTOR_SIZE - 1);
|
||||
sector = filepos >> ISO_SECTOR_BITS;
|
||||
while (len > 0)
|
||||
{
|
||||
size = ISO_SECTOR_SIZE - blkoffset;
|
||||
if (size > len)
|
||||
size = len;
|
||||
|
||||
disk_read_func = disk_read_hook;
|
||||
|
||||
if (!iso9660_devread(INODE->file_start + sector, blkoffset, size, buf))
|
||||
return 0;
|
||||
|
||||
disk_read_func = NULL;
|
||||
|
||||
len -= size;
|
||||
buf += size;
|
||||
ret += size;
|
||||
filepos += size;
|
||||
sector++;
|
||||
blkoffset = 0;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif /* FSYS_ISO9660 */
|
206
stage2/iso9660.h
Normal file
206
stage2/iso9660.h
Normal file
|
@ -0,0 +1,206 @@
|
|||
/*
|
||||
* ISO 9660 filesystem backend for GRUB (GRand Unified Bootloader)
|
||||
* including Rock Ridge Extensions support
|
||||
*
|
||||
* Copyright (C) 1998, 1999 Kousuke Takai <tak@kmc.kyoto-u.ac.jp>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
/*
|
||||
* References:
|
||||
* linux/fs/isofs/rock.[ch]
|
||||
* mkisofs-1.11.1/diag/isoinfo.c
|
||||
* mkisofs-1.11.1/iso9660.h
|
||||
* (all are written by Eric Youngdale)
|
||||
*/
|
||||
|
||||
#ifndef _ISO9660_H_
|
||||
#define _ISO9660_H_
|
||||
|
||||
#define ISO_SECTOR_BITS (11)
|
||||
#define ISO_SECTOR_SIZE (1<<ISO_SECTOR_BITS)
|
||||
|
||||
#define ISO_REGULAR 1 /* regular file */
|
||||
#define ISO_DIRECTORY 2 /* directory */
|
||||
#define ISO_OTHER 0 /* other file (with Rock Ridge) */
|
||||
|
||||
#define RR_FLAG_PX 0x01 /* have POSIX file attributes */
|
||||
#define RR_FLAG_PN 0x02 /* POSIX devices */
|
||||
#define RR_FLAG_SL 0x04 /* Symbolic link */
|
||||
#define RR_FLAG_NM 0x08 /* have alternate file name */
|
||||
#define RR_FLAG_CL 0x10 /* Child link */
|
||||
#define RR_FLAG_PL 0x20 /* Parent link */
|
||||
#define RR_FLAG_RE 0x40 /* Relocation directory */
|
||||
#define RR_FLAG_TF 0x80 /* Timestamps */
|
||||
|
||||
/* POSIX file attributes for Rock Ridge extensions */
|
||||
#define POSIX_S_IFMT 0xF000
|
||||
#define POSIX_S_IFREG 0x8000
|
||||
#define POSIX_S_IFDIR 0x4000
|
||||
|
||||
/* volume descriptor types */
|
||||
#define ISO_VD_PRIMARY 1
|
||||
#define ISO_VD_END 255
|
||||
|
||||
#define ISO_STANDARD_ID "CD001"
|
||||
|
||||
#ifndef ASM_FILE
|
||||
|
||||
#ifndef __BIT_TYPES_DEFINED__
|
||||
typedef int int8_t __attribute__((mode(QI)));
|
||||
typedef unsigned int u_int8_t __attribute__((mode(QI)));
|
||||
typedef int int16_t __attribute__((mode(HI)));
|
||||
typedef unsigned int u_int16_t __attribute__((mode(HI)));
|
||||
typedef int int32_t __attribute__((mode(SI)));
|
||||
typedef unsigned int u_int32_t __attribute__((mode(SI)));
|
||||
#endif
|
||||
|
||||
typedef union {
|
||||
u_int8_t l,b;
|
||||
} iso_8bit_t;
|
||||
|
||||
typedef struct __iso_16bit {
|
||||
u_int16_t l, b;
|
||||
} iso_16bit_t __attribute__ ((packed));
|
||||
|
||||
typedef struct __iso_32bit {
|
||||
u_int32_t l, b;
|
||||
} iso_32bit_t __attribute__ ((packed));
|
||||
|
||||
typedef u_int8_t iso_date_t[7];
|
||||
|
||||
struct iso_directory_record {
|
||||
iso_8bit_t length;
|
||||
iso_8bit_t ext_attr_length;
|
||||
iso_32bit_t extent;
|
||||
iso_32bit_t size;
|
||||
iso_date_t date;
|
||||
iso_8bit_t flags;
|
||||
iso_8bit_t file_unit_size;
|
||||
iso_8bit_t interleave;
|
||||
iso_16bit_t volume_seq_number;
|
||||
iso_8bit_t name_len;
|
||||
u_int8_t name[1];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct iso_primary_descriptor {
|
||||
iso_8bit_t type;
|
||||
u_int8_t id[5];
|
||||
iso_8bit_t version;
|
||||
u_int8_t _unused1[1];
|
||||
u_int8_t system_id[32];
|
||||
u_int8_t volume_id[32];
|
||||
u_int8_t _unused2[8];
|
||||
iso_32bit_t volume_space_size;
|
||||
u_int8_t _unused3[32];
|
||||
iso_16bit_t volume_set_size;
|
||||
iso_16bit_t volume_seq_number;
|
||||
iso_16bit_t logical_block_size;
|
||||
iso_32bit_t path_table_size;
|
||||
u_int8_t type_l_path_table[4];
|
||||
u_int8_t opt_type_l_path_table[4];
|
||||
u_int8_t type_m_path_table[4];
|
||||
u_int8_t opt_type_m_path_table[4];
|
||||
struct iso_directory_record root_directory_record;
|
||||
u_int8_t volume_set_id[128];
|
||||
u_int8_t publisher_id[128];
|
||||
u_int8_t preparer_id[128];
|
||||
u_int8_t application_id[128];
|
||||
u_int8_t copyright_file_id[37];
|
||||
u_int8_t abstract_file_id[37];
|
||||
u_int8_t bibliographic_file_id[37];
|
||||
u_int8_t creation_date[17];
|
||||
u_int8_t modification_date[17];
|
||||
u_int8_t expiration_date[17];
|
||||
u_int8_t effective_date[17];
|
||||
iso_8bit_t file_structure_version;
|
||||
u_int8_t _unused4[1];
|
||||
u_int8_t application_data[512];
|
||||
u_int8_t _unused5[653];
|
||||
} __attribute__ ((packed));
|
||||
|
||||
struct rock_ridge {
|
||||
u_int16_t signature;
|
||||
u_int8_t len;
|
||||
u_int8_t version;
|
||||
union {
|
||||
struct SP {
|
||||
u_int16_t magic;
|
||||
u_int8_t skip;
|
||||
} sp;
|
||||
struct CE {
|
||||
iso_32bit_t extent;
|
||||
iso_32bit_t offset;
|
||||
iso_32bit_t size;
|
||||
} ce;
|
||||
struct ER {
|
||||
u_int8_t len_id;
|
||||
u_int8_t len_des;
|
||||
u_int8_t len_src;
|
||||
u_int8_t ext_ver;
|
||||
u_int8_t data[0];
|
||||
} er;
|
||||
struct RR {
|
||||
iso_8bit_t flags;
|
||||
} rr;
|
||||
struct PX {
|
||||
iso_32bit_t mode;
|
||||
iso_32bit_t nlink;
|
||||
iso_32bit_t uid;
|
||||
iso_32bit_t gid;
|
||||
} px;
|
||||
struct PN {
|
||||
iso_32bit_t dev_high;
|
||||
iso_32bit_t dev_low;
|
||||
} pn;
|
||||
struct SL {
|
||||
iso_8bit_t flags;
|
||||
struct SL_component {
|
||||
iso_8bit_t flags;
|
||||
u_int8_t len;
|
||||
u_int8_t text[0];
|
||||
} link;
|
||||
} sl;
|
||||
struct NM {
|
||||
iso_8bit_t flags;
|
||||
u_int8_t name[0];
|
||||
} nm;
|
||||
struct CL {
|
||||
iso_32bit_t location;
|
||||
} cl;
|
||||
struct PL {
|
||||
iso_32bit_t location;
|
||||
} pl;
|
||||
struct TF {
|
||||
iso_8bit_t flags;
|
||||
iso_date_t times[0];
|
||||
} tf;
|
||||
} u;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
typedef union RR_ptr {
|
||||
struct rock_ridge *rr;
|
||||
char *ptr;
|
||||
int i;
|
||||
} RR_ptr_t;
|
||||
|
||||
#define RRMAGIC(c1, c2) ((c1)|(c2) << 8)
|
||||
|
||||
#define CHECK2(ptr, c1, c2) \
|
||||
(*(unsigned short *)(ptr) == (((c1) | (c2) << 8) & 0xFFFF))
|
||||
|
||||
#endif /* !ASM_FILE */
|
||||
|
||||
#endif /* _ISO9660_H_ */
|
|
@ -73,10 +73,11 @@ extern char *grub_scratch_mem;
|
|||
/*
|
||||
* BIOS disk defines
|
||||
*/
|
||||
#define BIOSDISK_READ 0x0
|
||||
#define BIOSDISK_WRITE 0x1
|
||||
#define BIOSDISK_ERROR_GEOMETRY 0x100
|
||||
#define BIOSDISK_FLAG_LBA_EXTENSION 0x1
|
||||
#define BIOSDISK_READ 0x0
|
||||
#define BIOSDISK_WRITE 0x1
|
||||
#define BIOSDISK_ERROR_GEOMETRY 0x100
|
||||
#define BIOSDISK_FLAG_LBA_EXTENSION 0x1
|
||||
#define BIOSDISK_FLAG_CDROM 0x2
|
||||
|
||||
/*
|
||||
* This is the filesystem (not raw device) buffer.
|
||||
|
@ -205,6 +206,7 @@ extern char *grub_scratch_mem;
|
|||
#define STAGE2_ID_VSTAFS_STAGE1_5 6
|
||||
#define STAGE2_ID_JFS_STAGE1_5 7
|
||||
#define STAGE2_ID_XFS_STAGE1_5 8
|
||||
#define STAGE2_ID_ISO9660_STAGE1_5 9
|
||||
|
||||
#ifndef STAGE1_5
|
||||
# define STAGE2_ID STAGE2_ID_STAGE2
|
||||
|
@ -225,6 +227,8 @@ extern char *grub_scratch_mem;
|
|||
# define STAGE2_ID STAGE2_ID_JFS_STAGE1_5
|
||||
# elif defined(FSYS_XFS)
|
||||
# define STAGE2_ID STAGE2_ID_XFS_STAGE1_5
|
||||
# elif defined(FSYS_ISO9660)
|
||||
# define STAGE2_ID STAGE2_ID_ISO9660_STAGE1_5
|
||||
# else
|
||||
# error "unknown Stage 2"
|
||||
# endif
|
||||
|
@ -634,6 +638,8 @@ struct geometry
|
|||
unsigned long sectors;
|
||||
/* The total number of sectors */
|
||||
unsigned long total_sectors;
|
||||
/* Device sector size */
|
||||
unsigned long sector_size;
|
||||
/* Flags */
|
||||
unsigned long flags;
|
||||
};
|
||||
|
@ -658,6 +664,7 @@ extern int filemax;
|
|||
extern struct multiboot_info mbi;
|
||||
extern unsigned long saved_drive;
|
||||
extern unsigned long saved_partition;
|
||||
extern unsigned long cdrom_drive;
|
||||
#ifndef STAGE1_5
|
||||
extern unsigned long saved_mem_upper;
|
||||
extern unsigned long extended_memory;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
|
||||
* Copyright (C) 2000,2001,2002,2004 Free Software Foundation, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -661,7 +661,7 @@ restart:
|
|||
|
||||
saved_drive = boot_drive;
|
||||
saved_partition = install_partition;
|
||||
current_drive = 0xFF;
|
||||
current_drive = GRUB_INVALID_DRIVE;
|
||||
|
||||
if (! get_cmdline (PACKAGE " edit> ", new_heap,
|
||||
NEW_HEAPSIZE + 1, 0, 1))
|
||||
|
|
326
stage2/start_eltorito.S
Normal file
326
stage2/start_eltorito.S
Normal file
|
@ -0,0 +1,326 @@
|
|||
/*
|
||||
* GRUB -- GRand Unified Bootloader
|
||||
* Copyright (C) 1994-2002 H. Peter Anvin
|
||||
* Copyright (C) 1999,2000,2001,2004 Free Software Foundation, Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
Most of this file was originally "isolinux.asm" from SYSLINUX package.
|
||||
It has been very heavily modified.
|
||||
*/
|
||||
|
||||
#define ASM_FILE
|
||||
#include "stage1.h"
|
||||
#include "shared.h"
|
||||
#include "iso9660.h"
|
||||
|
||||
#ifndef STAGE1_5
|
||||
#include "stage2_size.h"
|
||||
#endif
|
||||
|
||||
|
||||
/* Absolute addresses
|
||||
This makes the assembler generate the address without support
|
||||
from the linker. (ELF can't relocate 16-bit addresses!) */
|
||||
#define ABS(x) (x-_start+BOOTSEC_LOCATION)
|
||||
|
||||
#ifdef STAGE1_5
|
||||
# define STAGE_ADDR 0x2000
|
||||
#else
|
||||
# define STAGE_ADDR 0x8000
|
||||
#endif /* STAGE1_5 */
|
||||
|
||||
/* Print message string */
|
||||
#define MSG(x) mov $ABS(x), %si; call message;
|
||||
|
||||
.file "start_eltorito.S"
|
||||
|
||||
.text
|
||||
|
||||
/* Tell GAS to generate 16-bit instructions so that this code works
|
||||
in real mode. */
|
||||
.code16
|
||||
|
||||
.globl start, _start
|
||||
|
||||
/*
|
||||
* Primary entry point. Because BIOSes are buggy, we only load the first
|
||||
* CD-ROM sector (2K) of the file, so the number one priority is actually
|
||||
* loading the rest.
|
||||
*/
|
||||
start:
|
||||
_start:
|
||||
cli
|
||||
ljmp $0, $ABS(real_start)
|
||||
|
||||
. = _start + 8 /* Pad to file offset 8 */
|
||||
|
||||
/* This table gets filled in by mkisofs using the
|
||||
-boot-info-table option */
|
||||
bi_pvd: .long 0xDEADBEEF /* LBA of primary volume descript */
|
||||
bi_file: .long 0xDEADBEEF /* LBA of boot file */
|
||||
bi_length: .long 0xDEADBEEF /* Length of boot file */
|
||||
bi_csum: .long 0xDEADBEEF /* Checksum of boot file */
|
||||
bi_reserved: .space (10*4) /* Reserved */
|
||||
|
||||
real_start:
|
||||
xor %ax, %ax
|
||||
mov %ax, %ss
|
||||
mov %ax, %ds
|
||||
mov %ax, %es
|
||||
mov %ax, %fs
|
||||
mov %ax, %gs
|
||||
mov $STAGE1_STACKSEG, %sp /* set up the REAL stack */
|
||||
sti
|
||||
cld
|
||||
|
||||
/* save drive reference first thing! */
|
||||
mov %dl, ABS(BootDrive)
|
||||
|
||||
/* print a notification message on the screen */
|
||||
MSG(notification_string)
|
||||
|
||||
load_image:
|
||||
/* Set up boot file sector, size, load address */
|
||||
mov ABS(bi_length), %eax
|
||||
add $(ISO_SECTOR_SIZE-1), %eax
|
||||
shr $ISO_SECTOR_BITS, %eax /* dwords->sectors */
|
||||
mov %ax, %bp /* boot file sectors */
|
||||
mov $(STAGE_ADDR >> 4), %bx
|
||||
mov %bx, %es
|
||||
xor %bx, %bx
|
||||
mov ABS(bi_file), %eax
|
||||
call getlinsec
|
||||
mov %ds, %ax
|
||||
mov %ax, %es
|
||||
|
||||
MSG(notification_done)
|
||||
bootit:
|
||||
/* save the sector number of the second sector in %ebp */
|
||||
mov $ABS(firstlist - BOOTSEC_LISTSIZE), %si
|
||||
mov (%si), %ebp
|
||||
mov ABS(BootDrive), %dl /* this makes sure %dl is our "boot" drive */
|
||||
ljmp $0, $(STAGE_ADDR+SECTOR_SIZE) /* jump to main() in asm.S */
|
||||
|
||||
/* go here when you need to stop the machine hard after an error condition */
|
||||
stop: jmp stop
|
||||
|
||||
|
||||
/*
|
||||
* Get linear sectors - EBIOS LBA addressing, 2048-byte sectors.
|
||||
*
|
||||
* Note that we can't always do this as a single request, because at least
|
||||
* Phoenix BIOSes has a 127-sector limit. To be on the safe side, stick
|
||||
* to 16 sectors (32K) per request.
|
||||
*
|
||||
* Input:
|
||||
* EAX - Linear sector number
|
||||
* ES:BX - Target buffer
|
||||
* BP - Sector count
|
||||
*/
|
||||
getlinsec:
|
||||
mov $ABS(dapa), %si /* Load up the DAPA */
|
||||
mov %bx, 4(%si)
|
||||
mov %es, %bx
|
||||
mov %bx, 6(%si)
|
||||
mov %eax, 8(%si)
|
||||
1:
|
||||
push %bp
|
||||
push %si
|
||||
cmp ABS(MaxTransfer), %bp
|
||||
jbe 2f
|
||||
mov ABS(MaxTransfer), %bp
|
||||
2:
|
||||
mov %bp, 2(%si)
|
||||
mov ABS(BootDrive), %dl
|
||||
mov $0x42, %ah /* Extended Read */
|
||||
call xint13
|
||||
pop %si
|
||||
pop %bp
|
||||
movzwl 2(%si), %eax /* Sectors we read */
|
||||
add %eax, 8(%si) /* Advance sector pointer */
|
||||
sub %ax, %bp /* Sectors left */
|
||||
shl $(ISO_SECTOR_BITS-4), %ax /* 2048-byte sectors -> segment */
|
||||
add %ax, 6(%si) /* Advance buffer pointer */
|
||||
|
||||
pushal
|
||||
MSG(notification_step)
|
||||
popal
|
||||
cmp $0, %bp
|
||||
ja 1b
|
||||
mov 8(%si), %eax /* Return next sector */
|
||||
ret
|
||||
|
||||
/*
|
||||
* INT 13h with retry
|
||||
*/
|
||||
xint13:
|
||||
movb $6, ABS(RetryCount)
|
||||
pushal
|
||||
.try:
|
||||
int $0x13
|
||||
jc 1f
|
||||
add $(8*4), %sp /* Clean up stack */
|
||||
ret
|
||||
1:
|
||||
mov %ah, %dl /* Save error code */
|
||||
decb ABS(RetryCount)
|
||||
jz .real_error
|
||||
mov ABS(RetryCount), %al
|
||||
mov ABS(dapa+2), %ah /* Sector transfer count */
|
||||
cmp $2, %al /* Only 2 attempts left */
|
||||
ja 2f
|
||||
mov $1, %ah /* Drop transfer size to 1 */
|
||||
jmp .setmaxtr
|
||||
2:
|
||||
cmp $3, %al
|
||||
ja 3f /* First time, just try again */
|
||||
shr $1, %ah /* Otherwise, try to reduce */
|
||||
adc $0, %ah /* the max transfer size, but not */
|
||||
.setmaxtr:
|
||||
mov %ah, ABS(MaxTransfer)
|
||||
mov %ah, ABS(dapa+2)
|
||||
3:
|
||||
popal
|
||||
jmp .try
|
||||
|
||||
.real_error:
|
||||
MSG(read_error_string)
|
||||
mov %dl, %al
|
||||
call printhex2
|
||||
popal
|
||||
jmp stop
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* message: write the string pointed to by %si
|
||||
*
|
||||
* WARNING: trashes %si, %ax, and %bx
|
||||
*/
|
||||
|
||||
/*
|
||||
* Use BIOS "int 10H Function 0Eh" to write character in teletype mode
|
||||
* %ah = 0xe %al = character
|
||||
* %bh = page %bl = foreground color (graphics modes)
|
||||
*/
|
||||
1:
|
||||
mov $0x0001, %bx
|
||||
mov $0x0E, %ah
|
||||
int $0x10 /* display a byte */
|
||||
|
||||
message:
|
||||
lodsb
|
||||
or %al, %al
|
||||
jne 1b /* if not end of string, jmp to display */
|
||||
ret
|
||||
|
||||
/*
|
||||
* printhex[248]: Write a hex number in (AL, AX, EAX) to the console
|
||||
*/
|
||||
printhex2:
|
||||
pushal
|
||||
rol $24, %eax
|
||||
mov $2, %cx
|
||||
jmp 1f
|
||||
printhex4:
|
||||
pushal
|
||||
rol $16, %eax
|
||||
mov $4, %cx
|
||||
jmp 1f
|
||||
printhex8:
|
||||
pushal
|
||||
mov $8, %cx
|
||||
1:
|
||||
rol $4, %eax
|
||||
push %eax
|
||||
and $0x0F, %al
|
||||
cmp $10, %al
|
||||
jae .high
|
||||
.low: add $('0'), %al
|
||||
jmp 2f
|
||||
.high: add $('A'-10), %al
|
||||
2:
|
||||
mov $0x0001, %bx
|
||||
mov $0x0E, %ah
|
||||
int $0x10 /* display a char */
|
||||
pop %eax
|
||||
loop 1b
|
||||
popal
|
||||
ret
|
||||
|
||||
/**************************************************************************/
|
||||
#ifdef STAGE1_5
|
||||
notification_string: .string "Loading stage1.5 "
|
||||
#else
|
||||
notification_string: .string "Loading stage2 "
|
||||
#endif
|
||||
|
||||
notification_step: .string "."
|
||||
notification_done: .string "\r\n"
|
||||
|
||||
read_error_string: .string "Read error 0x"
|
||||
|
||||
/*
|
||||
* EBIOS disk address packet
|
||||
*/
|
||||
.align 8
|
||||
dapa: .byte 16 /* Packet size */
|
||||
.byte 0 /* reserved */
|
||||
.word 0 /* +2 Block count */
|
||||
.word 0 /* +4 Offset of buffer */
|
||||
.word 0 /* +6 Segment of buffer */
|
||||
.long 0 /* +8 LBA (LSW) */
|
||||
.long 0 /* +C LBA (MSW) */
|
||||
|
||||
VARIABLE(BootDrive)
|
||||
.byte 0xFF
|
||||
VARIABLE(MaxTransfer)
|
||||
.word 16 /* Max sectors per transfer (32Kb) */
|
||||
VARIABLE(RetryCount)
|
||||
.byte 0
|
||||
|
||||
|
||||
/*
|
||||
* This area is an empty space between the main body of code below which
|
||||
* grows up (fixed after compilation, but between releases it may change
|
||||
* in size easily), and the lists of sectors to read, which grows down
|
||||
* from a fixed top location.
|
||||
*/
|
||||
|
||||
.word 0
|
||||
.word 0
|
||||
|
||||
. = _start + SECTOR_SIZE - BOOTSEC_LISTSIZE
|
||||
|
||||
/* fill the first data listing with the default */
|
||||
blocklist_default_start:/* this is the sector start parameter, in logical
|
||||
sectors from the start of the disk, sector 0 */
|
||||
.long 0
|
||||
|
||||
blocklist_default_len: /* this is the number of sectors to read */
|
||||
#ifdef STAGE1_5
|
||||
.word 0
|
||||
#else
|
||||
.word (STAGE2_SIZE + ISO_SECTOR_SIZE - 1) >> ISO_SECTOR_BITS
|
||||
#endif
|
||||
blocklist_default_seg: /* this is the segment of the starting address
|
||||
to load the data into */
|
||||
.word (STAGE_ADDR + SECTOR_SIZE) >> 4
|
||||
|
||||
firstlist: /* this label has to be after the list data!!! */
|
Loading…
Add table
Add a link
Reference in a new issue