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.
|
network device completion.
|
||||||
|
|
||||||
Eric Kvaalen fixed a lot of problems in the GRUB manual.
|
Eric Kvaalen fixed a lot of problems in the GRUB manual.
|
||||||
|
|
||||||
|
Leonid Lisovskiy added El Torito support.
|
||||||
|
|
93
ChangeLog
93
ChangeLog
|
@ -1,3 +1,96 @@
|
||||||
|
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>
|
2004-03-13 Yoshinori K. Okuji <okuji@enbug.org>
|
||||||
|
|
||||||
From Daniele Zelante <zeldan@email.it>:
|
From Daniele Zelante <zeldan@email.it>:
|
||||||
|
|
3
INSTALL
3
INSTALL
|
@ -216,6 +216,9 @@ operates.
|
||||||
`--disable-xfs'
|
`--disable-xfs'
|
||||||
Omit the XFS support in Stage 2.
|
Omit the XFS support in Stage 2.
|
||||||
|
|
||||||
|
`--disable-iso9660'
|
||||||
|
Omit the ISO9660 support in Stage 2.
|
||||||
|
|
||||||
`--disable-gunzip'
|
`--disable-gunzip'
|
||||||
Omit the decompression support in Stage 2.
|
Omit the decompression support in Stage 2.
|
||||||
|
|
||||||
|
|
2
NEWS
2
NEWS
|
@ -4,6 +4,8 @@ New:
|
||||||
* Add support for ReiserFS 3.
|
* Add support for ReiserFS 3.
|
||||||
* Fix support for FreeBSD 5.
|
* Fix support for FreeBSD 5.
|
||||||
* Support ATARAID for Linux in the grub shell and grub-install.
|
* 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:
|
New in 0.94 - 2004-01-25:
|
||||||
* Support building on x86-64 with gcc -m32.
|
* 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>
|
Kristoffer Branemyr <ztion@swipnet.se>
|
||||||
Kunihiro Ishiguro <kunihiro@zebra.org>
|
Kunihiro Ishiguro <kunihiro@zebra.org>
|
||||||
Leendert Meyer <leen.meyer@home.nl>
|
Leendert Meyer <leen.meyer@home.nl>
|
||||||
|
Leonid Lisovskiy <lly@pisem.net>
|
||||||
M. Meiarashi <mes@st.rim.or.jp>
|
M. Meiarashi <mes@st.rim.or.jp>
|
||||||
Mark Kettenis <kettenis@chello.nl>
|
Mark Kettenis <kettenis@chello.nl>
|
||||||
Mark Lundeberg <aa026@pgfn.bc.ca>
|
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-vstafs disable VSTa FS support in Stage 2
|
||||||
--disable-jfs disable IBM JFS support in Stage 2
|
--disable-jfs disable IBM JFS support in Stage 2
|
||||||
--disable-xfs disable SGI XFS 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-gunzip disable decompression in Stage 2
|
||||||
--disable-md5-password disable MD5 password support in Stage 2
|
--disable-md5-password disable MD5 password support in Stage 2
|
||||||
--disable-packet-retransmission
|
--disable-packet-retransmission
|
||||||
|
@ -5098,6 +5099,16 @@ if test x"$enable_xfs" != xno; then
|
||||||
FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_XFS=1"
|
FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_XFS=1"
|
||||||
fi
|
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.
|
# Check whether --enable-gunzip or --disable-gunzip was given.
|
||||||
if test "${enable_gunzip+set}" = set; then
|
if test "${enable_gunzip+set}" = set; then
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
dnl Configure script for GRUB.
|
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 Permission to use, copy, modify and distribute this software and its
|
||||||
dnl documentation is hereby granted, provided that both the copyright
|
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"
|
FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_XFS=1"
|
||||||
fi
|
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 AC_ARG_ENABLE(tftp,
|
||||||
dnl [ --enable-tftp enable TFTP support in Stage 2])
|
dnl [ --enable-tftp enable TFTP support in Stage 2])
|
||||||
dnl
|
dnl
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.23.
|
.\" 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
|
.SH NAME
|
||||||
grub-md5-crypt \- Encrypt a password in MD5 format
|
grub-md5-crypt \- Encrypt a password in MD5 format
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.23.
|
.\" 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
|
.SH NAME
|
||||||
grub-terminfo \- Generate a terminfo command from a terminfo name
|
grub-terminfo \- Generate a terminfo command from a terminfo name
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
|
|
|
@ -142,9 +142,9 @@ sharedstatedir = @sharedstatedir@
|
||||||
sysconfdir = @sysconfdir@
|
sysconfdir = @sysconfdir@
|
||||||
target_alias = @target_alias@
|
target_alias = @target_alias@
|
||||||
sbin_PROGRAMS = grub
|
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_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 \
|
AM_CPPFLAGS = -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 \
|
||||||
-DFSYS_FFS=1 -DFSYS_MINIX=1 -DSUPPORT_HERCULES=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
|
else
|
||||||
fd = geom->flags;
|
fd = geom->flags;
|
||||||
|
|
||||||
|
/* XXX This is the default size. */
|
||||||
|
geom->sector_size = SECTOR_SIZE;
|
||||||
|
|
||||||
#if defined(__linux__)
|
#if defined(__linux__)
|
||||||
/* Linux */
|
/* Linux */
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* -*-Asm-*- */
|
/* -*-Asm-*- */
|
||||||
/*
|
/*
|
||||||
* GRUB -- GRand Unified Bootloader
|
* 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
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -91,8 +91,7 @@ cylinder_start:
|
||||||
stage1_version:
|
stage1_version:
|
||||||
.byte COMPAT_VERSION_MAJOR, COMPAT_VERSION_MINOR
|
.byte COMPAT_VERSION_MAJOR, COMPAT_VERSION_MINOR
|
||||||
boot_drive:
|
boot_drive:
|
||||||
.byte 0xff /* the disk to load stage2 from */
|
.byte GRUB_INVALID_DRIVE /* the disk to load stage2 from */
|
||||||
/* 0xff means use the boot drive */
|
|
||||||
force_lba:
|
force_lba:
|
||||||
.byte 0
|
.byte 0
|
||||||
stage2_address:
|
stage2_address:
|
||||||
|
@ -138,7 +137,7 @@ real_start:
|
||||||
* Check if we have a forced disk reference here
|
* Check if we have a forced disk reference here
|
||||||
*/
|
*/
|
||||||
MOV_MEM_TO_AL(ABS(boot_drive)) /* movb ABS(boot_drive), %al */
|
MOV_MEM_TO_AL(ABS(boot_drive)) /* movb ABS(boot_drive), %al */
|
||||||
cmpb $0xff, %al
|
cmpb $GRUB_INVALID_DRIVE, %al
|
||||||
je 1f
|
je 1f
|
||||||
movb %al, %dl
|
movb %al, %dl
|
||||||
1:
|
1:
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* GRUB -- GRand Unified Bootloader
|
* 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
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -80,4 +80,7 @@
|
||||||
floppy. */
|
floppy. */
|
||||||
#define STAGE1_BIOS_HD_FLAG 0x80
|
#define STAGE1_BIOS_HD_FLAG 0x80
|
||||||
|
|
||||||
|
/* The drive number of an invalid drive. */
|
||||||
|
#define GRUB_INVALID_DRIVE 0xFF
|
||||||
|
|
||||||
#endif /* ! STAGE1_HEADER */
|
#endif /* ! STAGE1_HEADER */
|
||||||
|
|
|
@ -5,9 +5,9 @@ noinst_SCRIPTS = $(TESTS)
|
||||||
# For dist target.
|
# For dist target.
|
||||||
noinst_HEADERS = apic.h defs.h dir.h disk_inode.h disk_inode_ffs.h \
|
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 \
|
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 \
|
imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \
|
||||||
pc_slice.h serial.h shared.h smp-imps.h term.h terminfo.h \
|
nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \
|
||||||
tparm.h nbi.h vstafs.h xfs.h
|
terminfo.h tparm.h nbi.h vstafs.h xfs.h
|
||||||
EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS)
|
EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS)
|
||||||
|
|
||||||
# For <stage1.h>.
|
# For <stage1.h>.
|
||||||
|
@ -16,13 +16,13 @@ INCLUDES = -I$(top_srcdir)/stage1
|
||||||
# The library for /sbin/grub.
|
# The library for /sbin/grub.
|
||||||
noinst_LIBRARIES = libgrub.a
|
noinst_LIBRARIES = libgrub.a
|
||||||
libgrub_a_SOURCES = boot.c builtins.c char_io.c cmdline.c common.c \
|
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 \
|
disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \
|
||||||
fsys_minix.c fsys_reiserfs.c fsys_vstafs.c fsys_xfs.c gunzip.c \
|
fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_vstafs.c \
|
||||||
md5.c serial.c stage2.c terminfo.c tparm.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 \
|
libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
|
||||||
-DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
|
-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_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
|
||||||
-DFSYS_XFS=1 -DUSE_MD5_PASSWORDS=1 \
|
-DFSYS_VSTAFS=1 -DFSYS_XFS=1 -DUSE_MD5_PASSWORDS=1 \
|
||||||
-DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 -fwritable-strings
|
-DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 -fwritable-strings
|
||||||
|
|
||||||
# Stage 2 and Stage 1.5's.
|
# 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
|
EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec
|
||||||
|
|
||||||
if DISKLESS_SUPPORT
|
if DISKLESS_SUPPORT
|
||||||
pkgdata_DATA = stage2 e2fs_stage1_5 fat_stage1_5 ffs_stage1_5 \
|
pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
|
||||||
jfs_stage1_5 minix_stage1_5 reiserfs_stage1_5 vstafs_stage1_5 \
|
ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
|
||||||
xfs_stage1_5 nbgrub pxegrub
|
reiserfs_stage1_5 vstafs_stage1_5 xfs_stage1_5 nbgrub pxegrub
|
||||||
noinst_DATA = pre_stage2 start nbloader pxeloader diskless
|
noinst_DATA = pre_stage2 start start_eltorito nbloader pxeloader diskless
|
||||||
noinst_PROGRAMS = pre_stage2.exec start.exec e2fs_stage1_5.exec \
|
noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \
|
||||||
fat_stage1_5.exec ffs_stage1_5.exec jfs_stage1_5.exec \
|
e2fs_stage1_5.exec fat_stage1_5.exec ffs_stage1_5.exec \
|
||||||
minix_stage1_5.exec reiserfs_stage1_5.exec \
|
iso9660_stage1_5.exec jfs_stage1_5.exec minix_stage1_5.exec \
|
||||||
vstafs_stage1_5.exec xfs_stage1_5.exec nbloader.exec \
|
reiserfs_stage1_5.exec vstafs_stage1_5.exec xfs_stage1_5.exec \
|
||||||
pxeloader.exec diskless.exec
|
nbloader.exec pxeloader.exec diskless.exec
|
||||||
else
|
else
|
||||||
pkgdata_DATA = stage2 e2fs_stage1_5 fat_stage1_5 ffs_stage1_5 \
|
pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
|
||||||
jfs_stage1_5 minix_stage1_5 reiserfs_stage1_5 vstafs_stage1_5 \
|
ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
|
||||||
xfs_stage1_5
|
reiserfs_stage1_5 vstafs_stage1_5 xfs_stage1_5
|
||||||
noinst_DATA = pre_stage2 start
|
noinst_DATA = pre_stage2 start start_eltorito
|
||||||
noinst_PROGRAMS = pre_stage2.exec start.exec e2fs_stage1_5.exec \
|
noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \
|
||||||
fat_stage1_5.exec ffs_stage1_5.exec jfs_stage1_5.exec \
|
e2fs_stage1_5.exec fat_stage1_5.exec ffs_stage1_5.exec \
|
||||||
minix_stage1_5.exec reiserfs_stage1_5.exec \
|
iso9660_stage1_5.exec jfs_stage1_5.exec minix_stage1_5.exec \
|
||||||
vstafs_stage1_5.exec xfs_stage1_5.exec
|
reiserfs_stage1_5.exec vstafs_stage1_5.exec xfs_stage1_5.exec
|
||||||
endif
|
endif
|
||||||
MOSTLYCLEANFILES = $(noinst_PROGRAMS)
|
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
|
START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000
|
||||||
NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0
|
NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0
|
||||||
PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
|
PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
|
||||||
|
START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
|
||||||
|
|
||||||
if NETBOOT_SUPPORT
|
if NETBOOT_SUPPORT
|
||||||
NETBOOT_FLAGS = -I$(top_srcdir)/netboot -DSUPPORT_NETBOOT=1
|
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.
|
# For stage2 target.
|
||||||
pre_stage2_exec_SOURCES = asm.S bios.c boot.c builtins.c char_io.c \
|
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 \
|
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_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \
|
||||||
fsys_vstafs.c fsys_xfs.c gunzip.c hercules.c md5.c serial.c \
|
fsys_reiserfs.c fsys_vstafs.c fsys_xfs.c gunzip.c hercules.c \
|
||||||
smp-imps.c stage2.c terminfo.c tparm.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_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
|
||||||
pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
|
pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
|
||||||
pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK)
|
pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK)
|
||||||
|
@ -122,6 +123,16 @@ stage2: pre_stage2 start
|
||||||
-rm -f stage2
|
-rm -f stage2
|
||||||
cat start pre_stage2 > 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.
|
# For e2fs_stage1_5 target.
|
||||||
e2fs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
|
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
|
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
|
-DNO_BLOCK_FILES=1
|
||||||
xfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
|
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.
|
# For diskless target.
|
||||||
diskless_exec_SOURCES = $(pre_stage2_exec_SOURCES)
|
diskless_exec_SOURCES = $(pre_stage2_exec_SOURCES)
|
||||||
diskless_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \
|
diskless_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \
|
||||||
|
|
|
@ -151,9 +151,9 @@ noinst_SCRIPTS = $(TESTS)
|
||||||
# For dist target.
|
# For dist target.
|
||||||
noinst_HEADERS = apic.h defs.h dir.h disk_inode.h disk_inode_ffs.h \
|
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 \
|
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 \
|
imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \
|
||||||
pc_slice.h serial.h shared.h smp-imps.h term.h terminfo.h \
|
nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \
|
||||||
tparm.h nbi.h vstafs.h xfs.h
|
terminfo.h tparm.h nbi.h vstafs.h xfs.h
|
||||||
|
|
||||||
EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS)
|
EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS)
|
||||||
|
|
||||||
|
@ -163,39 +163,39 @@ INCLUDES = -I$(top_srcdir)/stage1
|
||||||
# The library for /sbin/grub.
|
# The library for /sbin/grub.
|
||||||
noinst_LIBRARIES = libgrub.a
|
noinst_LIBRARIES = libgrub.a
|
||||||
libgrub_a_SOURCES = boot.c builtins.c char_io.c cmdline.c common.c \
|
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 \
|
disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \
|
||||||
fsys_minix.c fsys_reiserfs.c fsys_vstafs.c fsys_xfs.c gunzip.c \
|
fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_vstafs.c \
|
||||||
md5.c serial.c stage2.c terminfo.c tparm.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 \
|
libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
|
||||||
-DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
|
-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_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
|
||||||
-DFSYS_XFS=1 -DUSE_MD5_PASSWORDS=1 \
|
-DFSYS_VSTAFS=1 -DFSYS_XFS=1 -DUSE_MD5_PASSWORDS=1 \
|
||||||
-DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 -fwritable-strings
|
-DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 -fwritable-strings
|
||||||
|
|
||||||
|
|
||||||
EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec
|
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@pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
|
||||||
@DISKLESS_SUPPORT_TRUE@ jfs_stage1_5 minix_stage1_5 reiserfs_stage1_5 vstafs_stage1_5 \
|
@DISKLESS_SUPPORT_TRUE@ ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
|
||||||
@DISKLESS_SUPPORT_TRUE@ xfs_stage1_5 nbgrub pxegrub
|
@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@pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
|
||||||
@DISKLESS_SUPPORT_FALSE@ jfs_stage1_5 minix_stage1_5 reiserfs_stage1_5 vstafs_stage1_5 \
|
@DISKLESS_SUPPORT_FALSE@ ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
|
||||||
@DISKLESS_SUPPORT_FALSE@ xfs_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_TRUE@noinst_DATA = pre_stage2 start start_eltorito nbloader pxeloader diskless
|
||||||
@DISKLESS_SUPPORT_FALSE@noinst_DATA = pre_stage2 start
|
@DISKLESS_SUPPORT_FALSE@noinst_DATA = pre_stage2 start start_eltorito
|
||||||
@DISKLESS_SUPPORT_TRUE@noinst_PROGRAMS = pre_stage2.exec start.exec e2fs_stage1_5.exec \
|
@DISKLESS_SUPPORT_TRUE@noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \
|
||||||
@DISKLESS_SUPPORT_TRUE@ fat_stage1_5.exec ffs_stage1_5.exec jfs_stage1_5.exec \
|
@DISKLESS_SUPPORT_TRUE@ e2fs_stage1_5.exec fat_stage1_5.exec ffs_stage1_5.exec \
|
||||||
@DISKLESS_SUPPORT_TRUE@ minix_stage1_5.exec reiserfs_stage1_5.exec \
|
@DISKLESS_SUPPORT_TRUE@ iso9660_stage1_5.exec jfs_stage1_5.exec minix_stage1_5.exec \
|
||||||
@DISKLESS_SUPPORT_TRUE@ vstafs_stage1_5.exec xfs_stage1_5.exec nbloader.exec \
|
@DISKLESS_SUPPORT_TRUE@ reiserfs_stage1_5.exec vstafs_stage1_5.exec xfs_stage1_5.exec \
|
||||||
@DISKLESS_SUPPORT_TRUE@ pxeloader.exec diskless.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@noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \
|
||||||
@DISKLESS_SUPPORT_FALSE@ fat_stage1_5.exec ffs_stage1_5.exec jfs_stage1_5.exec \
|
@DISKLESS_SUPPORT_FALSE@ e2fs_stage1_5.exec fat_stage1_5.exec ffs_stage1_5.exec \
|
||||||
@DISKLESS_SUPPORT_FALSE@ minix_stage1_5.exec reiserfs_stage1_5.exec \
|
@DISKLESS_SUPPORT_FALSE@ iso9660_stage1_5.exec jfs_stage1_5.exec minix_stage1_5.exec \
|
||||||
@DISKLESS_SUPPORT_FALSE@ vstafs_stage1_5.exec xfs_stage1_5.exec
|
@DISKLESS_SUPPORT_FALSE@ reiserfs_stage1_5.exec vstafs_stage1_5.exec xfs_stage1_5.exec
|
||||||
|
|
||||||
MOSTLYCLEANFILES = $(noinst_PROGRAMS)
|
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
|
START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000
|
||||||
NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0
|
NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0
|
||||||
PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
|
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_TRUE@NETBOOT_FLAGS = -I$(top_srcdir)/netboot -DSUPPORT_NETBOOT=1
|
||||||
@NETBOOT_SUPPORT_FALSE@NETBOOT_FLAGS =
|
@NETBOOT_SUPPORT_FALSE@NETBOOT_FLAGS =
|
||||||
@SERIAL_SUPPORT_FALSE@SERIAL_FLAGS =
|
|
||||||
|
|
||||||
@SERIAL_SUPPORT_TRUE@SERIAL_FLAGS = -DSUPPORT_SERIAL=1
|
@SERIAL_SUPPORT_TRUE@SERIAL_FLAGS = -DSUPPORT_SERIAL=1
|
||||||
|
@SERIAL_SUPPORT_FALSE@SERIAL_FLAGS =
|
||||||
@HERCULES_SUPPORT_FALSE@HERCULES_FLAGS =
|
@HERCULES_SUPPORT_FALSE@HERCULES_FLAGS =
|
||||||
|
|
||||||
@HERCULES_SUPPORT_TRUE@HERCULES_FLAGS = -DSUPPORT_HERCULES=1
|
@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.
|
# For stage2 target.
|
||||||
pre_stage2_exec_SOURCES = asm.S bios.c boot.c builtins.c char_io.c \
|
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 \
|
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_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \
|
||||||
fsys_vstafs.c fsys_xfs.c gunzip.c hercules.c md5.c serial.c \
|
fsys_reiserfs.c fsys_vstafs.c fsys_xfs.c gunzip.c hercules.c \
|
||||||
smp-imps.c stage2.c terminfo.c tparm.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_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
|
||||||
pre_stage2_exec_CCASFLAGS = $(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_CCASFLAGS = $(STAGE2_COMPILE)
|
||||||
start_exec_LDFLAGS = $(START_LINK)
|
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.
|
# For e2fs_stage1_5 target.
|
||||||
e2fs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
|
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
|
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)
|
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.
|
# For diskless target.
|
||||||
diskless_exec_SOURCES = $(pre_stage2_exec_SOURCES)
|
diskless_exec_SOURCES = $(pre_stage2_exec_SOURCES)
|
||||||
diskless_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \
|
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-cmdline.$(OBJEXT) libgrub_a-common.$(OBJEXT) \
|
||||||
libgrub_a-disk_io.$(OBJEXT) libgrub_a-fsys_ext2fs.$(OBJEXT) \
|
libgrub_a-disk_io.$(OBJEXT) libgrub_a-fsys_ext2fs.$(OBJEXT) \
|
||||||
libgrub_a-fsys_fat.$(OBJEXT) libgrub_a-fsys_ffs.$(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_reiserfs.$(OBJEXT) \
|
||||||
libgrub_a-fsys_vstafs.$(OBJEXT) libgrub_a-fsys_xfs.$(OBJEXT) \
|
libgrub_a-fsys_vstafs.$(OBJEXT) libgrub_a-fsys_xfs.$(OBJEXT) \
|
||||||
libgrub_a-gunzip.$(OBJEXT) libgrub_a-md5.$(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.exec$(EXEEXT)
|
||||||
@DISKLESS_SUPPORT_TRUE@noinst_PROGRAMS = pre_stage2.exec$(EXEEXT) \
|
@DISKLESS_SUPPORT_TRUE@noinst_PROGRAMS = pre_stage2.exec$(EXEEXT) \
|
||||||
@DISKLESS_SUPPORT_TRUE@ start.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@ e2fs_stage1_5.exec$(EXEEXT) \
|
||||||
@DISKLESS_SUPPORT_TRUE@ fat_stage1_5.exec$(EXEEXT) \
|
@DISKLESS_SUPPORT_TRUE@ fat_stage1_5.exec$(EXEEXT) \
|
||||||
@DISKLESS_SUPPORT_TRUE@ ffs_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@ jfs_stage1_5.exec$(EXEEXT) \
|
||||||
@DISKLESS_SUPPORT_TRUE@ minix_stage1_5.exec$(EXEEXT) \
|
@DISKLESS_SUPPORT_TRUE@ minix_stage1_5.exec$(EXEEXT) \
|
||||||
@DISKLESS_SUPPORT_TRUE@ reiserfs_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_TRUE@ diskless.exec$(EXEEXT)
|
||||||
@DISKLESS_SUPPORT_FALSE@noinst_PROGRAMS = pre_stage2.exec$(EXEEXT) \
|
@DISKLESS_SUPPORT_FALSE@noinst_PROGRAMS = pre_stage2.exec$(EXEEXT) \
|
||||||
@DISKLESS_SUPPORT_FALSE@ start.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@ e2fs_stage1_5.exec$(EXEEXT) \
|
||||||
@DISKLESS_SUPPORT_FALSE@ fat_stage1_5.exec$(EXEEXT) \
|
@DISKLESS_SUPPORT_FALSE@ fat_stage1_5.exec$(EXEEXT) \
|
||||||
@DISKLESS_SUPPORT_FALSE@ ffs_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@ jfs_stage1_5.exec$(EXEEXT) \
|
||||||
@DISKLESS_SUPPORT_FALSE@ minix_stage1_5.exec$(EXEEXT) \
|
@DISKLESS_SUPPORT_FALSE@ minix_stage1_5.exec$(EXEEXT) \
|
||||||
@DISKLESS_SUPPORT_FALSE@ reiserfs_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_ext2fs.$(OBJEXT) \
|
||||||
diskless_exec-fsys_fat.$(OBJEXT) \
|
diskless_exec-fsys_fat.$(OBJEXT) \
|
||||||
diskless_exec-fsys_ffs.$(OBJEXT) \
|
diskless_exec-fsys_ffs.$(OBJEXT) \
|
||||||
|
diskless_exec-fsys_iso9660.$(OBJEXT) \
|
||||||
diskless_exec-fsys_jfs.$(OBJEXT) \
|
diskless_exec-fsys_jfs.$(OBJEXT) \
|
||||||
diskless_exec-fsys_minix.$(OBJEXT) \
|
diskless_exec-fsys_minix.$(OBJEXT) \
|
||||||
diskless_exec-fsys_reiserfs.$(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_OBJECTS = $(am_ffs_stage1_5_exec_OBJECTS)
|
||||||
ffs_stage1_5_exec_LDADD = $(LDADD)
|
ffs_stage1_5_exec_LDADD = $(LDADD)
|
||||||
ffs_stage1_5_exec_DEPENDENCIES =
|
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) \
|
am_jfs_stage1_5_exec_OBJECTS = jfs_stage1_5_exec-start.$(OBJEXT) \
|
||||||
jfs_stage1_5_exec-asm.$(OBJEXT) \
|
jfs_stage1_5_exec-asm.$(OBJEXT) \
|
||||||
jfs_stage1_5_exec-common.$(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_ext2fs.$(OBJEXT) \
|
||||||
pre_stage2_exec-fsys_fat.$(OBJEXT) \
|
pre_stage2_exec-fsys_fat.$(OBJEXT) \
|
||||||
pre_stage2_exec-fsys_ffs.$(OBJEXT) \
|
pre_stage2_exec-fsys_ffs.$(OBJEXT) \
|
||||||
|
pre_stage2_exec-fsys_iso9660.$(OBJEXT) \
|
||||||
pre_stage2_exec-fsys_jfs.$(OBJEXT) \
|
pre_stage2_exec-fsys_jfs.$(OBJEXT) \
|
||||||
pre_stage2_exec-fsys_minix.$(OBJEXT) \
|
pre_stage2_exec-fsys_minix.$(OBJEXT) \
|
||||||
pre_stage2_exec-fsys_reiserfs.$(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_OBJECTS = $(am_start_exec_OBJECTS)
|
||||||
start_exec_LDADD = $(LDADD)
|
start_exec_LDADD = $(LDADD)
|
||||||
start_exec_DEPENDENCIES =
|
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) \
|
am_vstafs_stage1_5_exec_OBJECTS = vstafs_stage1_5_exec-start.$(OBJEXT) \
|
||||||
vstafs_stage1_5_exec-asm.$(OBJEXT) \
|
vstafs_stage1_5_exec-asm.$(OBJEXT) \
|
||||||
vstafs_stage1_5_exec-common.$(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_ext2fs.Po \
|
||||||
@AMDEP_TRUE@ ./$(DEPDIR)/diskless_exec-fsys_fat.Po \
|
@AMDEP_TRUE@ ./$(DEPDIR)/diskless_exec-fsys_fat.Po \
|
||||||
@AMDEP_TRUE@ ./$(DEPDIR)/diskless_exec-fsys_ffs.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_jfs.Po \
|
||||||
@AMDEP_TRUE@ ./$(DEPDIR)/diskless_exec-fsys_minix.Po \
|
@AMDEP_TRUE@ ./$(DEPDIR)/diskless_exec-fsys_minix.Po \
|
||||||
@AMDEP_TRUE@ ./$(DEPDIR)/diskless_exec-fsys_reiserfs.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-disk_io.Po \
|
||||||
@AMDEP_TRUE@ ./$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Po \
|
@AMDEP_TRUE@ ./$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Po \
|
||||||
@AMDEP_TRUE@ ./$(DEPDIR)/ffs_stage1_5_exec-stage1_5.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-bios.Po \
|
||||||
@AMDEP_TRUE@ ./$(DEPDIR)/jfs_stage1_5_exec-char_io.Po \
|
@AMDEP_TRUE@ ./$(DEPDIR)/jfs_stage1_5_exec-char_io.Po \
|
||||||
@AMDEP_TRUE@ ./$(DEPDIR)/jfs_stage1_5_exec-common.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_ext2fs.Po \
|
||||||
@AMDEP_TRUE@ ./$(DEPDIR)/libgrub_a-fsys_fat.Po \
|
@AMDEP_TRUE@ ./$(DEPDIR)/libgrub_a-fsys_fat.Po \
|
||||||
@AMDEP_TRUE@ ./$(DEPDIR)/libgrub_a-fsys_ffs.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_jfs.Po \
|
||||||
@AMDEP_TRUE@ ./$(DEPDIR)/libgrub_a-fsys_minix.Po \
|
@AMDEP_TRUE@ ./$(DEPDIR)/libgrub_a-fsys_minix.Po \
|
||||||
@AMDEP_TRUE@ ./$(DEPDIR)/libgrub_a-fsys_reiserfs.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_ext2fs.Po \
|
||||||
@AMDEP_TRUE@ ./$(DEPDIR)/pre_stage2_exec-fsys_fat.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_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_jfs.Po \
|
||||||
@AMDEP_TRUE@ ./$(DEPDIR)/pre_stage2_exec-fsys_minix.Po \
|
@AMDEP_TRUE@ ./$(DEPDIR)/pre_stage2_exec-fsys_minix.Po \
|
||||||
@AMDEP_TRUE@ ./$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.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 $@
|
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||||
DIST_SOURCES = $(libgrub_a_SOURCES) $(diskless_exec_SOURCES) \
|
DIST_SOURCES = $(libgrub_a_SOURCES) $(diskless_exec_SOURCES) \
|
||||||
$(e2fs_stage1_5_exec_SOURCES) $(fat_stage1_5_exec_SOURCES) \
|
$(e2fs_stage1_5_exec_SOURCES) $(fat_stage1_5_exec_SOURCES) \
|
||||||
$(ffs_stage1_5_exec_SOURCES) $(jfs_stage1_5_exec_SOURCES) \
|
$(ffs_stage1_5_exec_SOURCES) $(iso9660_stage1_5_exec_SOURCES) \
|
||||||
$(minix_stage1_5_exec_SOURCES) $(nbloader_exec_SOURCES) \
|
$(jfs_stage1_5_exec_SOURCES) $(minix_stage1_5_exec_SOURCES) \
|
||||||
$(pre_stage2_exec_SOURCES) $(pxeloader_exec_SOURCES) \
|
$(nbloader_exec_SOURCES) $(pre_stage2_exec_SOURCES) \
|
||||||
$(reiserfs_stage1_5_exec_SOURCES) $(start_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)
|
$(vstafs_stage1_5_exec_SOURCES) $(xfs_stage1_5_exec_SOURCES)
|
||||||
DATA = $(noinst_DATA) $(pkgdata_DATA)
|
DATA = $(noinst_DATA) $(pkgdata_DATA)
|
||||||
|
|
||||||
HEADERS = $(noinst_HEADERS)
|
HEADERS = $(noinst_HEADERS)
|
||||||
|
|
||||||
DIST_COMMON = $(noinst_HEADERS) Makefile.am Makefile.in
|
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)
|
all: $(BUILT_SOURCES)
|
||||||
$(MAKE) $(AM_MAKEFLAGS) all-am
|
$(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)
|
ffs_stage1_5.exec$(EXEEXT): $(ffs_stage1_5_exec_OBJECTS) $(ffs_stage1_5_exec_DEPENDENCIES)
|
||||||
@rm -f ffs_stage1_5.exec$(EXEEXT)
|
@rm -f ffs_stage1_5.exec$(EXEEXT)
|
||||||
$(LINK) $(ffs_stage1_5_exec_LDFLAGS) $(ffs_stage1_5_exec_OBJECTS) $(ffs_stage1_5_exec_LDADD) $(LIBS)
|
$(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)
|
jfs_stage1_5.exec$(EXEEXT): $(jfs_stage1_5_exec_OBJECTS) $(jfs_stage1_5_exec_DEPENDENCIES)
|
||||||
@rm -f jfs_stage1_5.exec$(EXEEXT)
|
@rm -f jfs_stage1_5.exec$(EXEEXT)
|
||||||
$(LINK) $(jfs_stage1_5_exec_LDFLAGS) $(jfs_stage1_5_exec_OBJECTS) $(jfs_stage1_5_exec_LDADD) $(LIBS)
|
$(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)
|
start.exec$(EXEEXT): $(start_exec_OBJECTS) $(start_exec_DEPENDENCIES)
|
||||||
@rm -f start.exec$(EXEEXT)
|
@rm -f start.exec$(EXEEXT)
|
||||||
$(LINK) $(start_exec_LDFLAGS) $(start_exec_OBJECTS) $(start_exec_LDADD) $(LIBS)
|
$(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)
|
vstafs_stage1_5.exec$(EXEEXT): $(vstafs_stage1_5_exec_OBJECTS) $(vstafs_stage1_5_exec_DEPENDENCIES)
|
||||||
@rm -f vstafs_stage1_5.exec$(EXEEXT)
|
@rm -f vstafs_stage1_5.exec$(EXEEXT)
|
||||||
$(LINK) $(vstafs_stage1_5_exec_LDFLAGS) $(vstafs_stage1_5_exec_OBJECTS) $(vstafs_stage1_5_exec_LDADD) $(LIBS)
|
$(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_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_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_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_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_minix.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_reiserfs.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-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-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)/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-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-char_io.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs_stage1_5_exec-common.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_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_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_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_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_minix.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_reiserfs.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_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_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_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_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_minix.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.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
|
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`
|
$(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
|
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
|
$(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
|
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`
|
$(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
|
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
|
$(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@
|
@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`
|
@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
|
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@ 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; \
|
@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@
|
@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`
|
@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
|
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@ 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; \
|
@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@
|
@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`
|
@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
|
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@ 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; \
|
@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@
|
@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`
|
@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
|
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@ 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; \
|
@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
|
-rm -f stage2
|
||||||
cat start pre_stage2 > 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
|
diskless_size.h: diskless
|
||||||
-rm -f $@
|
-rm -f $@
|
||||||
set dummy `ls -l $^`; \
|
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
|
* is passed for disk address packet. If an error occurs, return
|
||||||
* non-zero, otherwise zero.
|
* non-zero, otherwise zero.
|
||||||
*/
|
*/
|
||||||
|
@ -950,6 +950,7 @@ ENTRY(biosdisk_int13_extensions)
|
||||||
movl %esp, %ebp
|
movl %esp, %ebp
|
||||||
|
|
||||||
pushl %esi
|
pushl %esi
|
||||||
|
pushl %ebx
|
||||||
|
|
||||||
/* compute the address of disk_address_packet */
|
/* compute the address of disk_address_packet */
|
||||||
movl 0x10(%ebp), %eax
|
movl 0x10(%ebp), %eax
|
||||||
|
@ -960,13 +961,13 @@ ENTRY(biosdisk_int13_extensions)
|
||||||
|
|
||||||
/* drive */
|
/* drive */
|
||||||
movb 0xc(%ebp), %dl
|
movb 0xc(%ebp), %dl
|
||||||
/* ah */
|
/* ax */
|
||||||
movb 0x8(%ebp), %dh
|
movw 0x8(%ebp), %bx
|
||||||
/* enter real mode */
|
/* enter real mode */
|
||||||
call EXT_C(prot_to_real)
|
call EXT_C(prot_to_real)
|
||||||
|
|
||||||
.code16
|
.code16
|
||||||
movb %dh, %ah
|
movw %bx, %ax
|
||||||
movw %cx, %ds
|
movw %cx, %ds
|
||||||
int $0x13 /* do the operation */
|
int $0x13 /* do the operation */
|
||||||
movb %ah, %dl /* save return value */
|
movb %ah, %dl /* save return value */
|
||||||
|
@ -979,6 +980,7 @@ ENTRY(biosdisk_int13_extensions)
|
||||||
|
|
||||||
movb %dl, %al /* return value in %eax */
|
movb %dl, %al /* return value in %eax */
|
||||||
|
|
||||||
|
popl %ebx
|
||||||
popl %esi
|
popl %esi
|
||||||
popl %ebp
|
popl %ebp
|
||||||
|
|
||||||
|
@ -1107,52 +1109,6 @@ ENTRY(check_int13_extensions)
|
||||||
ret
|
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,
|
* int get_diskinfo_standard (int drive, unsigned long *cylinders,
|
||||||
* unsigned long *heads, unsigned long *sectors)
|
* unsigned long *heads, unsigned long *sectors)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* bios.c - implement C part of low-level BIOS disk input and output */
|
/* bios.c - implement C part of low-level BIOS disk input and output */
|
||||||
/*
|
/*
|
||||||
* GRUB -- GRand Unified Bootloader
|
* 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
|
* 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
|
* 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
|
/* These are defined in asm.S, and never be used elsewhere, so declare the
|
||||||
prototypes here. */
|
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,
|
extern int biosdisk_standard (int ah, int drive,
|
||||||
int coff, int hoff, int soff,
|
int coff, int hoff, int soff,
|
||||||
int nsec, int segment);
|
int nsec, int segment);
|
||||||
extern int check_int13_extensions (int drive);
|
extern int check_int13_extensions (int drive);
|
||||||
extern int get_diskinfo_int13_extensions (int drive, void *drp);
|
|
||||||
extern int get_diskinfo_standard (int drive,
|
extern int get_diskinfo_standard (int drive,
|
||||||
unsigned long *cylinders,
|
unsigned long *cylinders,
|
||||||
unsigned long *heads,
|
unsigned long *heads,
|
||||||
|
@ -61,7 +60,7 @@ biosdisk (int read, int drive, struct geometry *geometry,
|
||||||
unsigned short blocks;
|
unsigned short blocks;
|
||||||
unsigned long buffer;
|
unsigned long buffer;
|
||||||
unsigned long long block;
|
unsigned long long block;
|
||||||
} dap;
|
} __attribute__ ((packed)) dap;
|
||||||
|
|
||||||
/* XXX: Don't check the geometry by default, because some buggy
|
/* XXX: Don't check the geometry by default, because some buggy
|
||||||
BIOSes don't return the number of total sectors correctly,
|
BIOSes don't return the number of total sectors correctly,
|
||||||
|
@ -81,12 +80,15 @@ biosdisk (int read, int drive, struct geometry *geometry,
|
||||||
SEGMENT:ADDRESS. */
|
SEGMENT:ADDRESS. */
|
||||||
dap.buffer = segment << 16;
|
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 */
|
/* #undef NO_INT13_FALLBACK */
|
||||||
#ifndef NO_INT13_FALLBACK
|
#ifndef NO_INT13_FALLBACK
|
||||||
if (err)
|
if (err)
|
||||||
{
|
{
|
||||||
|
if (geometry->flags & BIOSDISK_FLAG_CDROM)
|
||||||
|
return err;
|
||||||
|
|
||||||
geometry->flags &= ~BIOSDISK_FLAG_LBA_EXTENSION;
|
geometry->flags &= ~BIOSDISK_FLAG_LBA_EXTENSION;
|
||||||
geometry->total_sectors = (geometry->cylinders
|
geometry->total_sectors = (geometry->cylinders
|
||||||
* geometry->heads
|
* geometry->heads
|
||||||
|
@ -119,6 +121,63 @@ biosdisk (int read, int drive, struct geometry *geometry,
|
||||||
return err;
|
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
|
/* Return the geometry of DRIVE in GEOMETRY. If an error occurs, return
|
||||||
non-zero, otherwise zero. */
|
non-zero, otherwise zero. */
|
||||||
int
|
int
|
||||||
|
@ -131,11 +190,19 @@ get_diskinfo (int drive, struct geometry *geometry)
|
||||||
|
|
||||||
if (drive & 0x80)
|
if (drive & 0x80)
|
||||||
{
|
{
|
||||||
/* hard disk */
|
/* hard disk or CD-ROM */
|
||||||
int version;
|
int version;
|
||||||
unsigned long total_sectors = 0;
|
unsigned long total_sectors = 0;
|
||||||
|
|
||||||
version = check_int13_extensions (drive);
|
version = check_int13_extensions (drive);
|
||||||
|
|
||||||
|
if (drive >= 0x88 || version)
|
||||||
|
{
|
||||||
|
/* Possible CD-ROM - check the status. */
|
||||||
|
if (get_cdinfo (drive, geometry))
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (version)
|
if (version)
|
||||||
{
|
{
|
||||||
struct drive_parameters
|
struct drive_parameters
|
||||||
|
@ -177,7 +244,7 @@ get_diskinfo (int drive, struct geometry *geometry)
|
||||||
bytes. */
|
bytes. */
|
||||||
drp.size = sizeof (drp) - sizeof (drp.dummy);
|
drp.size = sizeof (drp) - sizeof (drp.dummy);
|
||||||
|
|
||||||
err = get_diskinfo_int13_extensions (drive, &drp);
|
err = biosdisk_int13_extensions (0x4800, drive, &drp);
|
||||||
if (! err)
|
if (! err)
|
||||||
{
|
{
|
||||||
/* Set the LBA flag. */
|
/* Set the LBA flag. */
|
||||||
|
@ -216,6 +283,7 @@ get_diskinfo (int drive, struct geometry *geometry)
|
||||||
* geometry->sectors);
|
* geometry->sectors);
|
||||||
}
|
}
|
||||||
geometry->total_sectors = total_sectors;
|
geometry->total_sectors = total_sectors;
|
||||||
|
geometry->sector_size = SECTOR_SIZE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -242,6 +310,7 @@ get_diskinfo (int drive, struct geometry *geometry)
|
||||||
geometry->total_sectors = (geometry->cylinders
|
geometry->total_sectors = (geometry->cylinders
|
||||||
* geometry->heads
|
* geometry->heads
|
||||||
* geometry->sectors);
|
* geometry->sectors);
|
||||||
|
geometry->sector_size = SECTOR_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -1720,7 +1720,7 @@ install_func (char *arg, int flags)
|
||||||
/* XXX: Probably SECTOR_SIZE is reasonable. */
|
/* XXX: Probably SECTOR_SIZE is reasonable. */
|
||||||
char *config_filename = stage2_second_buffer + SECTOR_SIZE;
|
char *config_filename = stage2_second_buffer + SECTOR_SIZE;
|
||||||
char *dummy = config_filename + 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 dest_drive, dest_partition, dest_sector;
|
||||||
int src_drive, src_partition, src_part_start;
|
int src_drive, src_partition, src_part_start;
|
||||||
int i;
|
int i;
|
||||||
|
@ -2051,7 +2051,7 @@ install_func (char *arg, int flags)
|
||||||
/* If the drive where the Stage 2 resides is the same as
|
/* If the drive where the Stage 2 resides is the same as
|
||||||
the one where the Stage 1.5 resides, do not embed the
|
the one where the Stage 1.5 resides, do not embed the
|
||||||
drive number. */
|
drive number. */
|
||||||
current_drive = 0xFF;
|
current_drive = GRUB_INVALID_DRIVE;
|
||||||
}
|
}
|
||||||
|
|
||||||
device = (current_drive << 24) | current_partition;
|
device = (current_drive << 24) | current_partition;
|
||||||
|
@ -3748,6 +3748,7 @@ setup_func (char *arg, int flags)
|
||||||
{"ext2fs", "/e2fs_stage1_5"},
|
{"ext2fs", "/e2fs_stage1_5"},
|
||||||
{"fat", "/fat_stage1_5"},
|
{"fat", "/fat_stage1_5"},
|
||||||
{"ffs", "/ffs_stage1_5"},
|
{"ffs", "/ffs_stage1_5"},
|
||||||
|
{"iso9660", "/iso9660_stage1_5"},
|
||||||
{"jfs", "/jfs_stage1_5"},
|
{"jfs", "/jfs_stage1_5"},
|
||||||
{"minix", "/minix_stage1_5"},
|
{"minix", "/minix_stage1_5"},
|
||||||
{"reiserfs", "/reiserfs_stage1_5"},
|
{"reiserfs", "/reiserfs_stage1_5"},
|
||||||
|
|
|
@ -1265,3 +1265,9 @@ grub_strcpy (char *dest, const char *src)
|
||||||
return dest;
|
return dest;
|
||||||
}
|
}
|
||||||
#endif /* ! STAGE1_5 */
|
#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 */
|
/* cmdline.c - the device-independent GRUB text command line */
|
||||||
/*
|
/*
|
||||||
* GRUB -- GRand Unified Bootloader
|
* 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
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -101,7 +101,7 @@ init_cmdline (void)
|
||||||
/* Initialization. */
|
/* Initialization. */
|
||||||
saved_drive = boot_drive;
|
saved_drive = boot_drive;
|
||||||
saved_partition = install_partition;
|
saved_partition = install_partition;
|
||||||
current_drive = 0xFF;
|
current_drive = GRUB_INVALID_DRIVE;
|
||||||
errnum = 0;
|
errnum = 0;
|
||||||
count_lines = -1;
|
count_lines = -1;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* common.c - miscellaneous shared variables and routines */
|
/* common.c - miscellaneous shared variables and routines */
|
||||||
/*
|
/*
|
||||||
* GRUB -- GRand Unified Bootloader
|
* 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
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -32,6 +32,7 @@
|
||||||
struct multiboot_info mbi;
|
struct multiboot_info mbi;
|
||||||
unsigned long saved_drive;
|
unsigned long saved_drive;
|
||||||
unsigned long saved_partition;
|
unsigned long saved_partition;
|
||||||
|
unsigned long cdrom_drive;
|
||||||
#ifndef STAGE1_5
|
#ifndef STAGE1_5
|
||||||
unsigned long saved_mem_upper;
|
unsigned long saved_mem_upper;
|
||||||
|
|
||||||
|
@ -319,6 +320,18 @@ init_bios_info (void)
|
||||||
saved_drive = boot_drive;
|
saved_drive = boot_drive;
|
||||||
saved_partition = install_partition;
|
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. */
|
/* Start main routine here. */
|
||||||
cmain ();
|
cmain ();
|
||||||
}
|
}
|
||||||
|
|
129
stage2/disk_io.c
129
stage2/disk_io.c
|
@ -1,7 +1,7 @@
|
||||||
/* disk_io.c - implement abstract BIOS disk input and output */
|
/* disk_io.c - implement abstract BIOS disk input and output */
|
||||||
/*
|
/*
|
||||||
* GRUB -- GRand Unified Bootloader
|
* 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
|
* 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
|
* 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
|
# ifdef FSYS_XFS
|
||||||
{"xfs", xfs_mount, xfs_read, xfs_dir, 0, 0},
|
{"xfs", xfs_mount, xfs_read, xfs_dir, 0, 0},
|
||||||
# endif
|
# 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
|
/* 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. */
|
on floppies from track 1 to 2, while others only use 1. */
|
||||||
# ifdef FSYS_FFS
|
# 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
|
/* These have the same format as "boot_drive" and "install_partition", but
|
||||||
are meant to be working values. */
|
are meant to be working values. */
|
||||||
unsigned long current_drive = 0xFF;
|
unsigned long current_drive = GRUB_INVALID_DRIVE;
|
||||||
unsigned long current_partition;
|
unsigned long current_partition;
|
||||||
|
|
||||||
#ifndef STAGE1_5
|
#ifndef STAGE1_5
|
||||||
|
@ -121,17 +124,28 @@ struct geometry buf_geom;
|
||||||
int filepos;
|
int filepos;
|
||||||
int filemax;
|
int filemax;
|
||||||
|
|
||||||
|
static inline unsigned long
|
||||||
|
log2 (unsigned long word)
|
||||||
|
{
|
||||||
|
asm volatile ("bsfl %1,%0"
|
||||||
|
: "=r" (word)
|
||||||
|
: "r" (word));
|
||||||
|
return word;
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
|
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)
|
if (byte_len <= 0)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
while (byte_len > 0 && !errnum)
|
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
|
* 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_drive = drive;
|
||||||
buf_track = -1;
|
buf_track = -1;
|
||||||
|
sector_size_bits = log2 (buf_geom.sector_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Make sure that SECTOR is valid. */
|
/* 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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get first sector of track */
|
slen = ((byte_offset + byte_len + buf_geom.sector_size - 1)
|
||||||
soff = sector % buf_geom.sectors;
|
>> 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;
|
track = sector - soff;
|
||||||
num_sect = buf_geom.sectors - soff;
|
num_sect = sectors_per_vtrack - soff;
|
||||||
bufaddr = BUFFERADDR + (soff * SECTOR_SIZE) + byte_offset;
|
bufaddr = ((char *) BUFFERADDR
|
||||||
|
+ (soff << sector_size_bits) + byte_offset);
|
||||||
|
|
||||||
if (track != buf_track)
|
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
|
* 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_start = sector;
|
||||||
read_len = num_sect;
|
read_len = num_sect;
|
||||||
bufaddr = BUFFERADDR + byte_offset;
|
bufaddr = (char *) BUFFERADDR + byte_offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
bios_err = biosdisk (BIOSDISK_READ, drive, &buf_geom,
|
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))
|
sector, slen, BUFFERSEG))
|
||||||
errnum = ERR_READ;
|
errnum = ERR_READ;
|
||||||
|
|
||||||
bufaddr = BUFFERADDR + byte_offset;
|
bufaddr = (char *) BUFFERADDR + byte_offset;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
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 */
|
/* We already read the sector 1, copy it to sector 0 */
|
||||||
memmove ((char *) BUFFERADDR,
|
memmove ((char *) BUFFERADDR,
|
||||||
(char *) BUFFERADDR + SECTOR_SIZE, SECTOR_SIZE);
|
(char *) BUFFERADDR + buf_geom.sector_size,
|
||||||
|
buf_geom.sector_size);
|
||||||
}
|
}
|
||||||
else
|
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))
|
if (size > ((num_sect << sector_size_bits) - byte_offset))
|
||||||
size = (num_sect * SECTOR_SIZE) - byte_offset;
|
size = (num_sect << sector_size_bits) - byte_offset;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Instrumentation to tell which sectors were read and used.
|
* 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)
|
if (disk_read_func)
|
||||||
{
|
{
|
||||||
int sector_num = sector;
|
int sector_num = sector;
|
||||||
int length = SECTOR_SIZE - byte_offset;
|
int length = buf_geom.sector_size - byte_offset;
|
||||||
if (length > size)
|
if (length > size)
|
||||||
length = size;
|
length = size;
|
||||||
(*disk_read_func) (sector_num++, byte_offset, length);
|
(*disk_read_func) (sector_num++, byte_offset, length);
|
||||||
length = size - length;
|
length = size - length;
|
||||||
if (length > 0)
|
if (length > 0)
|
||||||
{
|
{
|
||||||
while (length > SECTOR_SIZE)
|
while (length > buf_geom.sector_size)
|
||||||
{
|
{
|
||||||
(*disk_read_func) (sector_num++, 0, SECTOR_SIZE);
|
(*disk_read_func) (sector_num++, 0, buf_geom.sector_size);
|
||||||
length -= SECTOR_SIZE;
|
length -= buf_geom.sector_size;
|
||||||
}
|
}
|
||||||
(*disk_read_func) (sector_num, 0, length);
|
(*disk_read_func) (sector_num, 0, length);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
memmove (buf, (char *) bufaddr, size);
|
grub_memmove (buf, bufaddr, size);
|
||||||
|
|
||||||
buf += size;
|
buf += size;
|
||||||
byte_len -= size;
|
byte_len -= size;
|
||||||
sector += num_sect;
|
sector += num_sect;
|
||||||
slen -= num_sect;
|
|
||||||
byte_offset = 0;
|
byte_offset = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -371,7 +396,8 @@ sane_partition (void)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (!(current_partition & 0xFF000000uL)
|
if (!(current_partition & 0xFF000000uL)
|
||||||
&& (current_drive & 0xFFFFFF7F) < 8
|
&& ((current_drive & 0xFFFFFF7F) < 8
|
||||||
|
|| current_drive == cdrom_drive)
|
||||||
&& (current_partition & 0xFF) == 0xFF
|
&& (current_partition & 0xFF) == 0xFF
|
||||||
&& ((current_partition & 0xFF00) == 0xFF00
|
&& ((current_partition & 0xFF00) == 0xFF00
|
||||||
|| (current_partition & 0xFF00) < 0x800)
|
|| (current_partition & 0xFF00) < 0x800)
|
||||||
|
@ -918,8 +944,8 @@ set_device (char *device)
|
||||||
int drive = (dev >> 24) & 0xFF;
|
int drive = (dev >> 24) & 0xFF;
|
||||||
int partition = dev & 0xFFFFFF;
|
int partition = dev & 0xFFFFFF;
|
||||||
|
|
||||||
/* If DRIVE is disabled (0xFF), use SAVED_DRIVE instead. */
|
/* If DRIVE is disabled, use SAVED_DRIVE instead. */
|
||||||
if (drive == 0xFF)
|
if (drive == GRUB_INVALID_DRIVE)
|
||||||
current_drive = saved_drive;
|
current_drive = saved_drive;
|
||||||
else
|
else
|
||||||
current_drive = drive;
|
current_drive = drive;
|
||||||
|
@ -949,10 +975,12 @@ set_device (char *device)
|
||||||
{
|
{
|
||||||
char ch = *device;
|
char ch = *device;
|
||||||
#ifdef SUPPORT_NETBOOT
|
#ifdef SUPPORT_NETBOOT
|
||||||
if (*device == 'f' || *device == 'h' ||
|
if (*device == 'f' || *device == 'h'
|
||||||
(*device == 'n' && network_ready))
|
|| (*device == 'n' && network_ready)
|
||||||
|
|| (*device == 'c' && cdrom_drive != GRUB_INVALID_DRIVE))
|
||||||
#else
|
#else
|
||||||
if (*device == 'f' || *device == 'h')
|
if (*device == 'f' || *device == 'h'
|
||||||
|
|| (*device == 'c' && cdrom_drive != GRUB_INVALID_DRIVE))
|
||||||
#endif /* SUPPORT_NETBOOT */
|
#endif /* SUPPORT_NETBOOT */
|
||||||
{
|
{
|
||||||
/* user has given '([fhn]', check for resp. add 'd' and
|
/* user has given '([fhn]', check for resp. add 'd' and
|
||||||
|
@ -968,12 +996,12 @@ set_device (char *device)
|
||||||
return device + 2;
|
return device + 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((*device == 'f'
|
||||||
|
|| *device == 'h'
|
||||||
#ifdef SUPPORT_NETBOOT
|
#ifdef SUPPORT_NETBOOT
|
||||||
if ((*device == 'f' || *device == 'h' ||
|
|| (*device == 'n' && network_ready)
|
||||||
(*device == 'n' && network_ready))
|
#endif
|
||||||
#else
|
|| (*device == 'c' && cdrom_drive != GRUB_INVALID_DRIVE))
|
||||||
if ((*device == 'f' || *device == 'h')
|
|
||||||
#endif /* SUPPORT_NETBOOT */
|
|
||||||
&& (device += 2, (*(device - 1) != 'd')))
|
&& (device += 2, (*(device - 1) != 'd')))
|
||||||
errnum = ERR_NUMBER_PARSING;
|
errnum = ERR_NUMBER_PARSING;
|
||||||
|
|
||||||
|
@ -983,11 +1011,16 @@ set_device (char *device)
|
||||||
else
|
else
|
||||||
#endif /* SUPPORT_NETBOOT */
|
#endif /* SUPPORT_NETBOOT */
|
||||||
{
|
{
|
||||||
safe_parse_maxint (&device, (int *) ¤t_drive);
|
if (*device == 'c' && cdrom_drive != GRUB_INVALID_DRIVE)
|
||||||
|
current_drive = cdrom_drive;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
safe_parse_maxint (&device, (int *) ¤t_drive);
|
||||||
|
|
||||||
disk_choice = 0;
|
disk_choice = 0;
|
||||||
if (ch == 'h')
|
if (ch == 'h')
|
||||||
current_drive += 0x80;
|
current_drive += 0x80;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1145,7 +1178,7 @@ setup_part (char *filename)
|
||||||
|
|
||||||
if (! (filename = set_device (filename)))
|
if (! (filename = set_device (filename)))
|
||||||
{
|
{
|
||||||
current_drive = 0xFF;
|
current_drive = GRUB_INVALID_DRIVE;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1162,7 +1195,7 @@ setup_part (char *filename)
|
||||||
{
|
{
|
||||||
if ((filename = set_device (filename)) == 0)
|
if ((filename = set_device (filename)) == 0)
|
||||||
{
|
{
|
||||||
current_drive = 0xFF;
|
current_drive = GRUB_INVALID_DRIVE;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
# ifndef NO_BLOCK_FILES
|
# ifndef NO_BLOCK_FILES
|
||||||
|
@ -1337,9 +1370,12 @@ print_completions (int is_filename, int is_completion)
|
||||||
if (! is_completion)
|
if (! is_completion)
|
||||||
grub_printf (" Possible disks are: ");
|
grub_printf (" Possible disks are: ");
|
||||||
|
|
||||||
|
if (!ptr
|
||||||
|
|| *(ptr-1) != 'd'
|
||||||
#ifdef SUPPORT_NETBOOT
|
#ifdef SUPPORT_NETBOOT
|
||||||
if (!ptr || *(ptr-1) != 'd' || *(ptr-2) != 'n')
|
|| *(ptr-2) != 'n'
|
||||||
#endif /* SUPPORT_NETBOOT */
|
#endif /* SUPPORT_NETBOOT */
|
||||||
|
|| *(ptr-2) != 'c')
|
||||||
{
|
{
|
||||||
for (i = (ptr && (*(ptr-1) == 'd' && *(ptr-2) == 'h') ? 1:0);
|
for (i = (ptr && (*(ptr-1) == 'd' && *(ptr-2) == 'h') ? 1:0);
|
||||||
i < (ptr && (*(ptr-1) == 'd' && *(ptr-2) == 'f') ? 1:2);
|
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
|
# ifdef SUPPORT_NETBOOT
|
||||||
if (network_ready &&
|
if (network_ready
|
||||||
(disk_choice || NETWORK_DRIVE == current_drive) &&
|
&& (disk_choice || NETWORK_DRIVE == current_drive)
|
||||||
(!ptr || *(ptr-1) == '(' ||
|
&& (!ptr
|
||||||
(*(ptr-1) == 'd' && *(ptr-2) == 'n')))
|
|| *(ptr-1) == '('
|
||||||
|
|| (*(ptr-1) == 'd' && *(ptr-2) == 'n')))
|
||||||
print_a_completion ("nd");
|
print_a_completion ("nd");
|
||||||
# endif /* SUPPORT_NETBOOT */
|
# endif /* SUPPORT_NETBOOT */
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* filesys.h - abstract filesystem interface */
|
/* filesys.h - abstract filesystem interface */
|
||||||
/*
|
/*
|
||||||
* GRUB -- GRand Unified Bootloader
|
* 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
|
* 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
|
* 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
|
#define FSYS_TFTP_NUM 0
|
||||||
#endif
|
#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
|
#ifndef NUM_FSYS
|
||||||
#define NUM_FSYS \
|
#define NUM_FSYS \
|
||||||
(FSYS_FFS_NUM + FSYS_FAT_NUM + FSYS_EXT2FS_NUM + FSYS_MINIX_NUM \
|
(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_REISERFS_NUM + FSYS_VSTAFS_NUM + FSYS_JFS_NUM + FSYS_XFS_NUM \
|
||||||
+ FSYS_TFTP_NUM)
|
+ FSYS_TFTP_NUM + FSYS_ISO9660_NUM)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* defines for the block filesystem info area */
|
/* 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
|
* BIOS disk defines
|
||||||
*/
|
*/
|
||||||
#define BIOSDISK_READ 0x0
|
#define BIOSDISK_READ 0x0
|
||||||
#define BIOSDISK_WRITE 0x1
|
#define BIOSDISK_WRITE 0x1
|
||||||
#define BIOSDISK_ERROR_GEOMETRY 0x100
|
#define BIOSDISK_ERROR_GEOMETRY 0x100
|
||||||
#define BIOSDISK_FLAG_LBA_EXTENSION 0x1
|
#define BIOSDISK_FLAG_LBA_EXTENSION 0x1
|
||||||
|
#define BIOSDISK_FLAG_CDROM 0x2
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is the filesystem (not raw device) buffer.
|
* 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_VSTAFS_STAGE1_5 6
|
||||||
#define STAGE2_ID_JFS_STAGE1_5 7
|
#define STAGE2_ID_JFS_STAGE1_5 7
|
||||||
#define STAGE2_ID_XFS_STAGE1_5 8
|
#define STAGE2_ID_XFS_STAGE1_5 8
|
||||||
|
#define STAGE2_ID_ISO9660_STAGE1_5 9
|
||||||
|
|
||||||
#ifndef STAGE1_5
|
#ifndef STAGE1_5
|
||||||
# define STAGE2_ID STAGE2_ID_STAGE2
|
# define STAGE2_ID STAGE2_ID_STAGE2
|
||||||
|
@ -225,6 +227,8 @@ extern char *grub_scratch_mem;
|
||||||
# define STAGE2_ID STAGE2_ID_JFS_STAGE1_5
|
# define STAGE2_ID STAGE2_ID_JFS_STAGE1_5
|
||||||
# elif defined(FSYS_XFS)
|
# elif defined(FSYS_XFS)
|
||||||
# define STAGE2_ID STAGE2_ID_XFS_STAGE1_5
|
# define STAGE2_ID STAGE2_ID_XFS_STAGE1_5
|
||||||
|
# elif defined(FSYS_ISO9660)
|
||||||
|
# define STAGE2_ID STAGE2_ID_ISO9660_STAGE1_5
|
||||||
# else
|
# else
|
||||||
# error "unknown Stage 2"
|
# error "unknown Stage 2"
|
||||||
# endif
|
# endif
|
||||||
|
@ -634,6 +638,8 @@ struct geometry
|
||||||
unsigned long sectors;
|
unsigned long sectors;
|
||||||
/* The total number of sectors */
|
/* The total number of sectors */
|
||||||
unsigned long total_sectors;
|
unsigned long total_sectors;
|
||||||
|
/* Device sector size */
|
||||||
|
unsigned long sector_size;
|
||||||
/* Flags */
|
/* Flags */
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
};
|
};
|
||||||
|
@ -658,6 +664,7 @@ extern int filemax;
|
||||||
extern struct multiboot_info mbi;
|
extern struct multiboot_info mbi;
|
||||||
extern unsigned long saved_drive;
|
extern unsigned long saved_drive;
|
||||||
extern unsigned long saved_partition;
|
extern unsigned long saved_partition;
|
||||||
|
extern unsigned long cdrom_drive;
|
||||||
#ifndef STAGE1_5
|
#ifndef STAGE1_5
|
||||||
extern unsigned long saved_mem_upper;
|
extern unsigned long saved_mem_upper;
|
||||||
extern unsigned long extended_memory;
|
extern unsigned long extended_memory;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* GRUB -- GRand Unified Bootloader
|
* 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
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -661,7 +661,7 @@ restart:
|
||||||
|
|
||||||
saved_drive = boot_drive;
|
saved_drive = boot_drive;
|
||||||
saved_partition = install_partition;
|
saved_partition = install_partition;
|
||||||
current_drive = 0xFF;
|
current_drive = GRUB_INVALID_DRIVE;
|
||||||
|
|
||||||
if (! get_cmdline (PACKAGE " edit> ", new_heap,
|
if (! get_cmdline (PACKAGE " edit> ", new_heap,
|
||||||
NEW_HEAPSIZE + 1, 0, 1))
|
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