From d721eadce1aeb7213b61f557575259b9befe1755 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Jan 03 2013 15:38:19 +0000 Subject: GRUB Legacy is no longer maintained --- diff --git a/.gitignore b/.gitignore deleted file mode 100644 index bd383dc..0000000 --- a/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -grub-0.97.tar.gz -*.src.rpm -clog diff --git a/0001-Fix-strange-compilation-problem.patch b/0001-Fix-strange-compilation-problem.patch deleted file mode 100644 index 0e8b419..0000000 --- a/0001-Fix-strange-compilation-problem.patch +++ /dev/null @@ -1,31 +0,0 @@ -From a36b871255e0a05690f95942ed2a6be57c24ba1e Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Wed, 28 Sep 2011 17:03:39 -0400 -Subject: [PATCH] Fix strange compilation problem. - -the compiler seems to be optimizing finish_param_parse out and doing a -poor job of it. So make it a non-static function and that doesn't -happen. ---- - efi/efidp.c | 5 ++++- - 1 files changed, 4 insertions(+), 1 deletions(-) - -diff --git a/efi/efidp.c b/efi/efidp.c -index d8ca03d..f4ca452 100644 ---- a/efi/efidp.c -+++ b/efi/efidp.c -@@ -578,7 +578,10 @@ dpname_matches(char *str, char *candidate) - return rc; - } - --static void -+extern void -+finish_param_parse(char *pos, char **end, char *tmp); -+ -+void - finish_param_parse(char *pos, char **end, char *tmp) - { - if (!pos || !end || !tmp) --- -1.7.6 - diff --git a/0001-Revert-Added-support-for-btrfs-file-system.patch b/0001-Revert-Added-support-for-btrfs-file-system.patch deleted file mode 100644 index 4caa898..0000000 --- a/0001-Revert-Added-support-for-btrfs-file-system.patch +++ /dev/null @@ -1,3260 +0,0 @@ -From 1b85bab4c3f834f3699abbc98c309ac1f8c85110 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 6 Jun 2011 15:11:13 -0400 -Subject: [PATCH 1/2] Revert "Added support for btrfs file system." - -These patches don't handle get_sector_size() and such correctly, so they -break the build. - -This reverts commit ddfe55086e5e76383ca1acd482e3f9b2d8fd969b. ---- - stage2/btrfs.h | 1414 --------------------------------------- - stage2/fsys_btrfs.c | 1815 --------------------------------------------------- - 2 files changed, 0 insertions(+), 3229 deletions(-) - delete mode 100644 stage2/btrfs.h - delete mode 100644 stage2/fsys_btrfs.c - -diff --git a/stage2/btrfs.h b/stage2/btrfs.h -deleted file mode 100644 -index 79d879e..0000000 ---- a/stage2/btrfs.h -+++ /dev/null -@@ -1,1414 +0,0 @@ --/* btrfs.h - an extraction from btrfs-progs-0.18/ctree.h into one file -- * -- * Copyright (C) 2007 Oracle. All rights reserved. -- * -- * This program is free software; you can redistribute it and/or -- * modify it under the terms of the GNU General Public -- * License v2 as published by the Free Software Foundation. -- * -- * 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., 59 Temple Place - Suite 330, -- * Boston, MA 021110-1307, USA. -- */ -- --/* include/asm-i386/types.h */ -- --typedef __signed__ char __s8; --typedef unsigned char __u8; --typedef __signed__ short __s16; --typedef unsigned short __u16; --typedef __signed__ int __s32; --typedef unsigned int __u32; --typedef unsigned long long __u64; --typedef __signed__ long long __s64; -- --typedef __s8 s8; --typedef __u8 u8; --typedef __u16 u16; --typedef __u32 u32; --typedef __u64 u64; --typedef __s64 s64; -- --#define __bitwise -- --typedef u16 __bitwise __le16; --typedef u32 __bitwise __le32; --typedef u64 __bitwise __le64; -- --/* linux/posix_type.h */ --typedef long linux_off_t; -- --/* linux/little_endian.h */ --#define cpu_to_le64(x) ((__u64) (x)) --#define le64_to_cpu(x) ((__u64) (x)) --#define cpu_to_le32(x) ((__u32) (x)) --#define le32_to_cpu(x) ((__u32) (x)) --#define cpu_to_le16(x) ((__u16) (x)) --#define le16_to_cpu(x) ((__u16) (x)) --#define le8_to_cpu(x) ((__u8) (x)) --#define cpu_to_le8(x) ((__u8) (x)) -- --/* linux/stat.h */ --#define S_IFMT 00170000 --#define S_IFLNK 0120000 --#define S_IFREG 0100000 --#define S_IFDIR 0040000 --#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) --#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) --#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) -- --struct btrfs_root; --#define BTRFS_MAGIC "_BHRfS_M" -- --#define BTRFS_SUPER_INFO_OFFSET (64 * 1024) --#define BTRFS_SUPER_INFO_SIZE 4096 -- --#define BTRFS_SUPER_MIRROR_MAX 3 --#define BTRFS_SUPER_MIRROR_SHIFT 12 -- --#define PATH_MAX 1024 /* include/linux/limits.h */ --#define MAX_LINK_COUNT 5 /* number of symbolic links -- to follow */ --#define BTRFS_MAX_LEVEL 8 --#define BTRFS_ROOT_TREE_OBJECTID 1ULL --#define BTRFS_EXTENT_TREE_OBJECTID 2ULL --#define BTRFS_CHUNK_TREE_OBJECTID 3ULL --#define BTRFS_DEV_TREE_OBJECTID 4ULL --#define BTRFS_FS_TREE_OBJECTID 5ULL --#define BTRFS_ROOT_TREE_DIR_OBJECTID 6ULL --#define BTRFS_CSUM_TREE_OBJECTID 7ULL -- --#define BTRFS_ORPHAN_OBJECTID -5ULL --#define BTRFS_TREE_LOG_OBJECTID -6ULL --#define BTRFS_TREE_LOG_FIXUP_OBJECTID -7ULL --#define BTRFS_TREE_RELOC_OBJECTID -8ULL --#define BTRFS_DATA_RELOC_TREE_OBJECTID -9ULL --#define BTRFS_EXTENT_CSUM_OBJECTID -10ULL -- --#define BTRFS_MULTIPLE_OBJECTIDS -255ULL --#define BTRFS_FIRST_FREE_OBJECTID 256ULL --#define BTRFS_LAST_FREE_OBJECTID -256ULL --#define BTRFS_FIRST_CHUNK_TREE_OBJECTID 256ULL --#define BTRFS_DEV_ITEMS_OBJECTID 1ULL -- -- --#define BTRFS_NAME_LEN 255 --#define BTRFS_CSUM_SIZE 32 --#define BTRFS_CSUM_TYPE_CRC32 0 -- --static int btrfs_csum_sizes[] = { 4, 0 }; -- --/* four bytes for CRC32 */ --#define BTRFS_CRC32_SIZE 4 --#define BTRFS_EMPTY_DIR_SIZE 0 -- --#define BTRFS_FT_UNKNOWN 0 --#define BTRFS_FT_REG_FILE 1 --#define BTRFS_FT_DIR 2 --#define BTRFS_FT_CHRDEV 3 --#define BTRFS_FT_BLKDEV 4 --#define BTRFS_FT_FIFO 5 --#define BTRFS_FT_SOCK 6 --#define BTRFS_FT_SYMLINK 7 --#define BTRFS_FT_XATTR 8 --#define BTRFS_FT_MAX 9 -- --#define BTRFS_UUID_SIZE 16 -- --#define BTRFS_DEFAULT_NUM_DEVICES 1 --#define BTRFS_DEFAULT_NODE_SIZE 4096 --#define BTRFS_DEFAULT_LEAF_SIZE 4096 --#define BTRFS_NUM_CACHED_DEVICES 128 -- --#define WARN_ON(c) --#define cassert(cond) ({ switch (-1) { case (cond): case 0: break; } }) --#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) -- --#define offsetof(type, memb) \ -- ((unsigned long)(&((type *)0)->memb)) -- --struct btrfs_disk_key { -- __le64 objectid; -- u8 type; -- __le64 offset; --} __attribute__ ((__packed__)); -- --/* cpu key */ --struct btrfs_key { -- u64 objectid; -- u8 type; -- u64 offset; --} __attribute__ ((__packed__)); -- --/* this represents a divice in a chunk tree */ --struct btrfs_dev_item { -- __le64 devid; /* internal device id */ -- __le64 total_bytes; /* size of the device */ -- __le64 bytes_used; -- __le32 io_align; /* optimal io alignment */ -- __le32 io_width; /* optimal io width */ -- __le32 sector_size; /* minimal io size */ -- __le64 type; /* type and info about this device */ -- __le64 generation; /* expected generation */ -- __le64 start_offset; /* of the partition on a device */ -- -- /* info for allocation decisions */ -- __le32 dev_group; -- -- u8 seek_speed; /* 0-100 (100 is fastest) */ -- u8 bandwidth; /* 0-100 (100 is fastest) */ -- -- u8 uuid[BTRFS_UUID_SIZE]; /* dev uuid generated by btrfs */ -- u8 fsid[BTRFS_UUID_SIZE]; /* uuid of the host FS */ --} __attribute__ ((__packed__)); -- --struct btrfs_stripe { -- __le64 devid; -- __le64 offset; -- u8 dev_uuid[BTRFS_UUID_SIZE]; --} __attribute__ ((__packed__)); -- --struct btrfs_chunk { -- /* size of this chunk in bytes */ -- __le64 length; -- __le64 owner; /* objectid of the root referincing this chunk */ -- __le64 stripe_len; -- __le64 type; -- __le32 io_align; /* optimal io alignment for this chunk */ -- __le32 io_width; /* optimal io width for this chunk */ -- __le32 sector_size; /* minimal io size for this chunk */ -- __le16 num_stripes; -- __le16 sub_stripes; /* sub stripes (for raid10) */ -- struct btrfs_stripe stripe; --} __attribute__ ((__packed__)); -- --static inline unsigned long btrfs_chunk_item_size(int num_stripes) --{ -- return sizeof(struct btrfs_chunk) + -- sizeof(struct btrfs_stripe) * (num_stripes - 1); --} -- --#define BTRFS_FSID_SIZE 16 --#define BTRFS_HEADER_FLAG_WRITTEN (1 << 0) -- --struct btrfs_header { -- /* these first four must match the super block */ -- u8 csum[BTRFS_CSUM_SIZE]; -- u8 fsid[BTRFS_FSID_SIZE]; /* uuid of the host fs */ -- __le64 bytenr; /* which block this node is supposed to live in */ -- __le64 flags; -- -- /* allowed to be different from the super from here on down */ -- u8 chunk_tree_uuid[BTRFS_UUID_SIZE]; -- __le64 generation; -- __le64 owner; -- __le32 nritems; -- u8 level; --} __attribute__ ((__packed__)); -- --#define BTRFS_NODEPTRS_PER_BLOCK(r) (((r)->nodesize - \ -- sizeof(struct btrfs_header)) / \ -- sizeof(struct btrfs_key_ptr)) --#define __BTRFS_LEAF_DATA_SIZE(bs) ((bs) - sizeof(struct btrfs_header)) --#define BTRFS_LEAF_DATA_SIZE(r) (__BTRFS_LEAF_DATA_SIZE(r->leafsize)) --#define BTRFS_MAX_INLINE_DATA_SIZE(r) (BTRFS_LEAF_DATA_SIZE(r) - \ -- sizeof(struct btrfs_item) - \ -- sizeof(struct btrfs_file_extent_item)) -- --#define BTRFS_SUPER_FLAG_SEEDING (1ULL << 32) --#define BTRFS_SUPER_FLAG_METADUMP (1ULL << 33) -- --/* -- * a portion of superblock which is used -- * for chunk translation (up to 14 chunks -- * with 3 stripes each. -- */ --#define BTRFS_SYSTEM_CHUNK_ARRAY_SIZE 2048 --#define BTRFS_LABEL_SIZE 256 -- --/* -- * the super block basically lists the main trees of the FS -- * it currently lacks any block count etc etc -- */ --struct btrfs_super_block { -- u8 csum[BTRFS_CSUM_SIZE]; -- /* the first 3 fields must match struct btrfs_header */ -- u8 fsid[BTRFS_FSID_SIZE]; /* FS specific uuid */ -- __le64 bytenr; /* this block number */ -- __le64 flags; -- -- /* allowed to be different from the btrfs_header from here own down */ -- __le64 magic; -- __le64 generation; -- __le64 root; /* tree root */ -- __le64 chunk_root; -- __le64 log_root; -- -- /* this will help find the new super based on the log root */ -- __le64 log_root_transid; -- __le64 total_bytes; -- __le64 bytes_used; -- __le64 root_dir_objectid; -- __le64 num_devices; -- __le32 sectorsize; -- __le32 nodesize; -- __le32 leafsize; -- __le32 stripesize; -- __le32 sys_chunk_array_size; -- __le64 chunk_root_generation; -- __le64 compat_flags; -- __le64 compat_ro_flags; -- __le64 incompat_flags; -- __le16 csum_type; -- u8 root_level; -- u8 chunk_root_level; -- u8 log_root_level; -- struct btrfs_dev_item dev_item; -- -- char label[BTRFS_LABEL_SIZE]; -- -- /* future expansion */ -- __le64 reserved[32]; -- u8 sys_chunk_array[BTRFS_SYSTEM_CHUNK_ARRAY_SIZE]; --} __attribute__ ((__packed__)); -- --/* -- * Compat flags that we support. If any incompat flags are set other than the -- * ones specified below then we will fail to mount -- */ --#define BTRFS_FEATURE_COMPAT_SUPP 0x0 --#define BTRFS_FEATURE_COMPAT_RO_SUPP 0x0 --#define BTRFS_FEATURE_INCOMPAT_SUPP 0x0 -- --/* Item header for per-leaf lookup */ --struct btrfs_item { -- struct btrfs_disk_key key; -- __le32 offset; -- __le32 size; --} __attribute__ ((__packed__)); -- --/* -- * Format of the leaves: -- * [item0, item1....itemN] [free space] [dataN...data1, data0] -- */ --struct btrfs_leaf { -- struct btrfs_header header; -- struct btrfs_item items[]; --} __attribute__ ((__packed__)); -- --/* -- * keys-pointers pairs for per-node (non-leaf) lookup -- */ --struct btrfs_key_ptr { -- struct btrfs_disk_key key; -- __le64 blockptr; -- __le64 generation; --} __attribute__ ((__packed__)); -- --struct btrfs_node { -- struct btrfs_header header; -- struct btrfs_key_ptr ptrs[]; --} __attribute__ ((__packed__)); -- --struct btrfs_device { -- /* the internal btrfs device id */ -- u64 devid; -- /* the internal grub device representation */ -- unsigned long drive; -- unsigned long part; -- unsigned long length; --}; -- --struct extent_buffer { -- /* metadata */ -- struct btrfs_device dev; -- u64 start; -- u64 dev_bytenr; -- u32 len; -- /* data */ -- char *data; --}; -- --static inline void read_extent_buffer(struct extent_buffer *eb, -- void *dst, unsigned long start, -- unsigned long len) --{ -- memcpy(dst, eb->data + start, len); --} -- --static inline void write_extent_buffer(struct extent_buffer *eb, -- const void *src, unsigned long start, -- unsigned long len) --{ -- memcpy(eb->data + start, src, len); --} -- --/* -- * NOTE: -- * don't increase a number of levels for grub-0.97! -- */ --typedef enum { -- FIRST_EXTERNAL_LOOKUP_POOL, -- SECOND_EXTERNAL_LOOKUP_POOL, -- INTERNAL_LOOKUP_POOL, -- LAST_LOOKUP_POOL --} lookup_pool_id; -- --/* Relationship between lookup pools: -- * depth -- * -- * ^ +----> INTERNAL <----+ -- * | | | -- * | | | -- * - FIRST_EXTERNAL SECOND_EXTERNAL -- */ -- --struct btrfs_path { -- lookup_pool_id lpid; -- struct extent_buffer nodes[BTRFS_MAX_LEVEL]; -- int slots[BTRFS_MAX_LEVEL]; --}; -- --/* -- * items in the extent btree are used to record the objectid of the -- * owner of the block and the number of references -- */ --struct btrfs_extent_item { -- __le32 refs; --} __attribute__ ((__packed__)); -- --struct btrfs_extent_ref { -- __le64 root; -- __le64 generation; -- __le64 objectid; -- __le32 num_refs; --} __attribute__ ((__packed__)); -- --/* dev extents record free space on individual devices. The owner -- * field points back to the chunk allocation mapping tree that allocated -- * the extent. The chunk tree uuid field is a way to double check the owner -- */ --struct btrfs_dev_extent { -- __le64 chunk_tree; -- __le64 chunk_objectid; -- __le64 chunk_offset; -- __le64 length; -- u8 chunk_tree_uuid[BTRFS_UUID_SIZE]; --} __attribute__ ((__packed__)); -- --struct btrfs_inode_ref { -- __le64 index; -- __le16 name_len; -- /* name goes here */ --} __attribute__ ((__packed__)); -- --struct btrfs_timespec { -- __le64 sec; -- __le32 nsec; --} __attribute__ ((__packed__)); -- --typedef enum { -- BTRFS_COMPRESS_NONE = 0, -- BTRFS_COMPRESS_ZLIB = 1, -- BTRFS_COMPRESS_LAST = 2, --} btrfs_compression_type; -- --/* we don't understand any encryption methods right now */ --typedef enum { -- BTRFS_ENCRYPTION_NONE = 0, -- BTRFS_ENCRYPTION_LAST = 1, --} btrfs_encryption_type; -- --struct btrfs_inode_item { -- /* nfs style generation number */ -- __le64 generation; -- /* transid that last touched this inode */ -- __le64 transid; -- __le64 size; -- __le64 nbytes; -- __le64 block_group; -- __le32 nlink; -- __le32 uid; -- __le32 gid; -- __le32 mode; -- __le64 rdev; -- __le64 flags; -- -- /* modification sequence number for NFS */ -- __le64 sequence; -- -- /* -- * a little future expansion, for more than this we can -- * just grow the inode item and version it -- */ -- __le64 reserved[4]; -- struct btrfs_timespec atime; -- struct btrfs_timespec ctime; -- struct btrfs_timespec mtime; -- struct btrfs_timespec otime; --} __attribute__ ((__packed__)); -- --struct btrfs_dir_item { -- struct btrfs_disk_key location; -- __le64 transid; -- __le16 data_len; -- __le16 name_len; -- u8 type; --} __attribute__ ((__packed__)); -- --struct btrfs_root_item { -- struct btrfs_inode_item inode; -- __le64 generation; -- __le64 root_dirid; -- __le64 bytenr; -- __le64 byte_limit; -- __le64 bytes_used; -- __le64 last_snapshot; -- __le64 flags; -- __le32 refs; -- struct btrfs_disk_key drop_progress; -- u8 drop_level; -- u8 level; --} __attribute__ ((__packed__)); -- --/* -- * this is used for both forward and backward root refs -- */ --struct btrfs_root_ref { -- __le64 dirid; -- __le64 sequence; -- __le16 name_len; --} __attribute__ ((__packed__)); -- --#define BTRFS_FILE_EXTENT_INLINE 0 --#define BTRFS_FILE_EXTENT_REG 1 --#define BTRFS_FILE_EXTENT_PREALLOC 2 -- --struct btrfs_file_extent_item { -- /* -- * transaction id that created this extent -- */ -- __le64 generation; -- /* -- * max number of bytes to hold this extent in ram -- * when we split a compressed extent we can't know how big -- * each of the resulting pieces will be. So, this is -- * an upper limit on the size of the extent in ram instead of -- * an exact limit. -- */ -- __le64 ram_bytes; -- -- /* -- * 32 bits for the various ways we might encode the data, -- * including compression and encryption. If any of these -- * are set to something a given disk format doesn't understand -- * it is treated like an incompat flag for reading and writing, -- * but not for stat. -- */ -- u8 compression; -- u8 encryption; -- __le16 other_encoding; /* spare for later use */ -- -- /* are we inline data or a real extent? */ -- u8 type; -- -- /* -- * disk space consumed by the extent, checksum blocks are included -- * in these numbers -- */ -- __le64 disk_bytenr; -- __le64 disk_num_bytes; -- /* -- * the logical offset in file blocks (no csums) -- * this extent record is for. This allows a file extent to point -- * into the middle of an existing extent on disk, sharing it -- * between two snapshots (useful if some bytes in the middle of the -- * extent have changed -- */ -- __le64 offset; -- /* -- * the logical number of file blocks (no csums included) -- */ -- __le64 num_bytes; -- --} __attribute__ ((__packed__)); -- --struct btrfs_csum_item { -- u8 csum; --} __attribute__ ((__packed__)); -- --/* tag for the radix tree of block groups in ram */ --#define BTRFS_BLOCK_GROUP_DATA (1 << 0) --#define BTRFS_BLOCK_GROUP_SYSTEM (1 << 1) --#define BTRFS_BLOCK_GROUP_METADATA (1 << 2) --#define BTRFS_BLOCK_GROUP_RAID0 (1 << 3) --#define BTRFS_BLOCK_GROUP_RAID1 (1 << 4) --#define BTRFS_BLOCK_GROUP_DUP (1 << 5) --#define BTRFS_BLOCK_GROUP_RAID10 (1 << 6) -- --struct btrfs_block_group_item { -- __le64 used; -- __le64 chunk_objectid; -- __le64 flags; --} __attribute__ ((__packed__)); -- --/* -- * in ram representation of the tree. extent_root is used for all allocations -- * and for the extent tree extent_root root. -- */ --struct btrfs_root { -- struct extent_buffer node; -- char data[4096]; -- struct btrfs_root_item root_item; -- u64 objectid; -- -- /* data allocations are done in sectorsize units */ -- u32 sectorsize; -- -- /* node allocations are done in nodesize units */ -- u32 nodesize; -- -- /* leaf allocations are done in leafsize units */ -- u32 leafsize; -- -- /* leaf allocations are done in leafsize units */ -- u32 stripesize; --}; -- --struct btrfs_file_info { -- struct btrfs_key key; --}; -- --struct btrfs_root; --struct btrfs_fs_devices; --struct btrfs_fs_info { -- u8 fsid[BTRFS_FSID_SIZE]; -- struct btrfs_root fs_root; -- struct btrfs_root tree_root; -- struct btrfs_root chunk_root; -- -- struct btrfs_file_info file_info; /* currently opened file */ -- struct btrfs_path paths [LAST_LOOKUP_POOL]; -- -- char mbr[SECTOR_SIZE]; -- -- int sb_mirror; -- u64 sb_transid; -- struct btrfs_device sb_dev; -- struct btrfs_super_block sb_copy; -- -- struct btrfs_device devices[BTRFS_NUM_CACHED_DEVICES + 1]; --}; -- --/* -- * inode items have the data typically returned from stat and store other -- * info about object characteristics. There is one for every file and dir in -- * the FS -- */ --#define BTRFS_INODE_ITEM_KEY 1 --#define BTRFS_INODE_REF_KEY 12 --#define BTRFS_XATTR_ITEM_KEY 24 --#define BTRFS_ORPHAN_ITEM_KEY 48 -- --#define BTRFS_DIR_LOG_ITEM_KEY 60 --#define BTRFS_DIR_LOG_INDEX_KEY 72 --/* -- * dir items are the name -> inode pointers in a directory. There is one -- * for every name in a directory. -- */ --#define BTRFS_DIR_ITEM_KEY 84 --#define BTRFS_DIR_INDEX_KEY 96 -- --/* -- * extent data is for file data -- */ --#define BTRFS_EXTENT_DATA_KEY 108 -- --/* -- * csum items have the checksums for data in the extents -- */ --#define BTRFS_CSUM_ITEM_KEY 120 --/* -- * extent csums are stored in a separate tree and hold csums for -- * an entire extent on disk. -- */ --#define BTRFS_EXTENT_CSUM_KEY 128 -- --/* -- * root items point to tree roots. There are typically in the root -- * tree used by the super block to find all the other trees -- */ --#define BTRFS_ROOT_ITEM_KEY 132 -- --/* -- * root backrefs tie subvols and snapshots to the directory entries that -- * reference them -- */ --#define BTRFS_ROOT_BACKREF_KEY 144 -- --/* -- * root refs make a fast index for listing all of the snapshots and -- * subvolumes referenced by a given root. They point directly to the -- * directory item in the root that references the subvol -- */ --#define BTRFS_ROOT_REF_KEY 156 -- --/* -- * extent items are in the extent map tree. These record which blocks -- * are used, and how many references there are to each block -- */ --#define BTRFS_EXTENT_ITEM_KEY 168 --#define BTRFS_EXTENT_REF_KEY 180 -- --/* -- * block groups give us hints into the extent allocation trees. Which -- * blocks are free etc etc -- */ --#define BTRFS_BLOCK_GROUP_ITEM_KEY 192 -- --#define BTRFS_DEV_EXTENT_KEY 204 --#define BTRFS_DEV_ITEM_KEY 216 --#define BTRFS_CHUNK_ITEM_KEY 228 -- --/* -- * string items are for debugging. They just store a short string of -- * data in the FS -- */ --#define BTRFS_STRING_ITEM_KEY 253 --/* -- * Inode flags -- */ --#define BTRFS_INODE_NODATASUM (1 << 0) --#define BTRFS_INODE_NODATACOW (1 << 1) --#define BTRFS_INODE_READONLY (1 << 2) -- --#define read_eb_member(eb, ptr, type, member, result) ( \ -- read_extent_buffer(eb, (char *)(result), \ -- ((unsigned long)(ptr)) + \ -- offsetof(type, member), \ -- sizeof(((type *)0)->member))) -- --#define BTRFS_SETGET_HEADER_FUNCS(name, type, member, bits) \ --static inline u##bits btrfs_##name(struct extent_buffer *eb) \ --{ \ -- struct btrfs_header *h = (struct btrfs_header *)eb->data; \ -- return le##bits##_to_cpu(h->member); \ --} \ --static inline void btrfs_set_##name(struct extent_buffer *eb, \ -- u##bits val) \ --{ \ -- struct btrfs_header *h = (struct btrfs_header *)eb->data; \ -- h->member = cpu_to_le##bits(val); \ --} -- --#define BTRFS_SETGET_FUNCS(name, type, member, bits) \ --static inline u##bits btrfs_##name(struct extent_buffer *eb, \ -- type *s) \ --{ \ -- unsigned long offset = (unsigned long)s; \ -- type *p = (type *) (eb->data + offset); \ -- return le##bits##_to_cpu(p->member); \ --} \ --static inline void btrfs_set_##name(struct extent_buffer *eb, \ -- type *s, u##bits val) \ --{ \ -- unsigned long offset = (unsigned long)s; \ -- type *p = (type *) (eb->data + offset); \ -- p->member = cpu_to_le##bits(val); \ --} -- --#define BTRFS_SETGET_STACK_FUNCS(name, type, member, bits) \ --static inline u##bits btrfs_##name(type *s) \ --{ \ -- return le##bits##_to_cpu(s->member); \ --} \ --static inline void btrfs_set_##name(type *s, u##bits val) \ --{ \ -- s->member = cpu_to_le##bits(val); \ --} -- --BTRFS_SETGET_FUNCS(device_type, struct btrfs_dev_item, type, 64); --BTRFS_SETGET_FUNCS(device_total_bytes, struct btrfs_dev_item, total_bytes, 64); --BTRFS_SETGET_FUNCS(device_bytes_used, struct btrfs_dev_item, bytes_used, 64); --BTRFS_SETGET_FUNCS(device_io_align, struct btrfs_dev_item, io_align, 32); --BTRFS_SETGET_FUNCS(device_io_width, struct btrfs_dev_item, io_width, 32); --BTRFS_SETGET_FUNCS(device_start_offset, struct btrfs_dev_item, -- start_offset, 64); --BTRFS_SETGET_FUNCS(device_sector_size, struct btrfs_dev_item, sector_size, 32); --BTRFS_SETGET_FUNCS(device_id, struct btrfs_dev_item, devid, 64); --BTRFS_SETGET_FUNCS(device_group, struct btrfs_dev_item, dev_group, 32); --BTRFS_SETGET_FUNCS(device_seek_speed, struct btrfs_dev_item, seek_speed, 8); --BTRFS_SETGET_FUNCS(device_bandwidth, struct btrfs_dev_item, bandwidth, 8); --BTRFS_SETGET_FUNCS(device_generation, struct btrfs_dev_item, generation, 64); -- --BTRFS_SETGET_STACK_FUNCS(stack_device_type, struct btrfs_dev_item, type, 64); --BTRFS_SETGET_STACK_FUNCS(stack_device_total_bytes, struct btrfs_dev_item, -- total_bytes, 64); --BTRFS_SETGET_STACK_FUNCS(stack_device_bytes_used, struct btrfs_dev_item, -- bytes_used, 64); --BTRFS_SETGET_STACK_FUNCS(stack_device_io_align, struct btrfs_dev_item, -- io_align, 32); --BTRFS_SETGET_STACK_FUNCS(stack_device_io_width, struct btrfs_dev_item, -- io_width, 32); --BTRFS_SETGET_STACK_FUNCS(stack_device_sector_size, struct btrfs_dev_item, -- sector_size, 32); --BTRFS_SETGET_STACK_FUNCS(stack_device_id, struct btrfs_dev_item, devid, 64); --BTRFS_SETGET_STACK_FUNCS(stack_device_group, struct btrfs_dev_item, -- dev_group, 32); --BTRFS_SETGET_STACK_FUNCS(stack_device_seek_speed, struct btrfs_dev_item, -- seek_speed, 8); --BTRFS_SETGET_STACK_FUNCS(stack_device_bandwidth, struct btrfs_dev_item, -- bandwidth, 8); --BTRFS_SETGET_STACK_FUNCS(stack_device_generation, struct btrfs_dev_item, -- generation, 64); -- --static inline char *btrfs_device_uuid(struct btrfs_dev_item *d) --{ -- return (char *)d + offsetof(struct btrfs_dev_item, uuid); --} -- --static inline char *btrfs_device_fsid(struct btrfs_dev_item *d) --{ -- return (char *)d + offsetof(struct btrfs_dev_item, fsid); --} -- --BTRFS_SETGET_FUNCS(chunk_length, struct btrfs_chunk, length, 64); --BTRFS_SETGET_FUNCS(chunk_owner, struct btrfs_chunk, owner, 64); --BTRFS_SETGET_FUNCS(chunk_stripe_len, struct btrfs_chunk, stripe_len, 64); --BTRFS_SETGET_FUNCS(chunk_io_align, struct btrfs_chunk, io_align, 32); --BTRFS_SETGET_FUNCS(chunk_io_width, struct btrfs_chunk, io_width, 32); --BTRFS_SETGET_FUNCS(chunk_sector_size, struct btrfs_chunk, sector_size, 32); --BTRFS_SETGET_FUNCS(chunk_type, struct btrfs_chunk, type, 64); --BTRFS_SETGET_FUNCS(chunk_num_stripes, struct btrfs_chunk, num_stripes, 16); --BTRFS_SETGET_FUNCS(chunk_sub_stripes, struct btrfs_chunk, sub_stripes, 16); --BTRFS_SETGET_FUNCS(stripe_devid, struct btrfs_stripe, devid, 64); --BTRFS_SETGET_FUNCS(stripe_offset, struct btrfs_stripe, offset, 64); -- --static inline char *btrfs_stripe_dev_uuid(struct btrfs_stripe *s) --{ -- return (char *)s + offsetof(struct btrfs_stripe, dev_uuid); --} -- --BTRFS_SETGET_STACK_FUNCS(stack_chunk_length, struct btrfs_chunk, length, 64); --BTRFS_SETGET_STACK_FUNCS(stack_chunk_owner, struct btrfs_chunk, owner, 64); --BTRFS_SETGET_STACK_FUNCS(stack_chunk_stripe_len, struct btrfs_chunk, -- stripe_len, 64); --BTRFS_SETGET_STACK_FUNCS(stack_chunk_io_align, struct btrfs_chunk, -- io_align, 32); --BTRFS_SETGET_STACK_FUNCS(stack_chunk_io_width, struct btrfs_chunk, -- io_width, 32); --BTRFS_SETGET_STACK_FUNCS(stack_chunk_sector_size, struct btrfs_chunk, -- sector_size, 32); --BTRFS_SETGET_STACK_FUNCS(stack_chunk_type, struct btrfs_chunk, type, 64); --BTRFS_SETGET_STACK_FUNCS(stack_chunk_num_stripes, struct btrfs_chunk, -- num_stripes, 16); --BTRFS_SETGET_STACK_FUNCS(stack_chunk_sub_stripes, struct btrfs_chunk, -- sub_stripes, 16); --BTRFS_SETGET_STACK_FUNCS(stack_stripe_devid, struct btrfs_stripe, devid, 64); --BTRFS_SETGET_STACK_FUNCS(stack_stripe_offset, struct btrfs_stripe, offset, 64); -- --static inline struct btrfs_stripe *btrfs_stripe_nr(struct btrfs_chunk *c, -- int nr) --{ -- unsigned long offset = (unsigned long)c; -- offset += offsetof(struct btrfs_chunk, stripe); -- offset += nr * sizeof(struct btrfs_stripe); -- return (struct btrfs_stripe *)offset; --} -- --static inline char *btrfs_stripe_dev_uuid_nr(struct btrfs_chunk *c, int nr) --{ -- return btrfs_stripe_dev_uuid(btrfs_stripe_nr(c, nr)); --} -- --static inline u64 btrfs_stripe_offset_nr(struct extent_buffer *eb, -- struct btrfs_chunk *c, int nr) --{ -- return btrfs_stripe_offset(eb, btrfs_stripe_nr(c, nr)); --} -- --static inline void btrfs_set_stripe_offset_nr(struct extent_buffer *eb, -- struct btrfs_chunk *c, int nr, -- u64 val) --{ -- btrfs_set_stripe_offset(eb, btrfs_stripe_nr(c, nr), val); --} -- --static inline u64 btrfs_stripe_devid_nr(struct extent_buffer *eb, -- struct btrfs_chunk *c, int nr) --{ -- return btrfs_stripe_devid(eb, btrfs_stripe_nr(c, nr)); --} -- --static inline void btrfs_set_stripe_devid_nr(struct extent_buffer *eb, -- struct btrfs_chunk *c, int nr, -- u64 val) --{ -- btrfs_set_stripe_devid(eb, btrfs_stripe_nr(c, nr), val); --} -- --/* struct btrfs_block_group_item */ --BTRFS_SETGET_STACK_FUNCS(block_group_used, struct btrfs_block_group_item, -- used, 64); --BTRFS_SETGET_FUNCS(disk_block_group_used, struct btrfs_block_group_item, -- used, 64); --BTRFS_SETGET_STACK_FUNCS(block_group_chunk_objectid, -- struct btrfs_block_group_item, chunk_objectid, 64); -- --BTRFS_SETGET_FUNCS(disk_block_group_chunk_objectid, -- struct btrfs_block_group_item, chunk_objectid, 64); --BTRFS_SETGET_FUNCS(disk_block_group_flags, -- struct btrfs_block_group_item, flags, 64); --BTRFS_SETGET_STACK_FUNCS(block_group_flags, -- struct btrfs_block_group_item, flags, 64); -- --/* struct btrfs_inode_ref */ --BTRFS_SETGET_FUNCS(inode_ref_name_len, struct btrfs_inode_ref, name_len, 16); --BTRFS_SETGET_FUNCS(inode_ref_index, struct btrfs_inode_ref, index, 64); -- --/* struct btrfs_inode_item */ --BTRFS_SETGET_FUNCS(inode_generation, struct btrfs_inode_item, generation, 64); --BTRFS_SETGET_FUNCS(inode_sequence, struct btrfs_inode_item, sequence, 64); --BTRFS_SETGET_FUNCS(inode_transid, struct btrfs_inode_item, transid, 64); --BTRFS_SETGET_FUNCS(inode_size, struct btrfs_inode_item, size, 64); --BTRFS_SETGET_FUNCS(inode_nbytes, struct btrfs_inode_item, nbytes, 64); --BTRFS_SETGET_FUNCS(inode_block_group, struct btrfs_inode_item, block_group, 64); --BTRFS_SETGET_FUNCS(inode_nlink, struct btrfs_inode_item, nlink, 32); --BTRFS_SETGET_FUNCS(inode_uid, struct btrfs_inode_item, uid, 32); --BTRFS_SETGET_FUNCS(inode_gid, struct btrfs_inode_item, gid, 32); --BTRFS_SETGET_FUNCS(inode_mode, struct btrfs_inode_item, mode, 32); --BTRFS_SETGET_FUNCS(inode_rdev, struct btrfs_inode_item, rdev, 64); --BTRFS_SETGET_FUNCS(inode_flags, struct btrfs_inode_item, flags, 64); -- --BTRFS_SETGET_STACK_FUNCS(stack_inode_generation, -- struct btrfs_inode_item, generation, 64); --BTRFS_SETGET_STACK_FUNCS(stack_inode_sequence, -- struct btrfs_inode_item, generation, 64); --BTRFS_SETGET_STACK_FUNCS(stack_inode_size, -- struct btrfs_inode_item, size, 64); --BTRFS_SETGET_STACK_FUNCS(stack_inode_nbytes, -- struct btrfs_inode_item, nbytes, 64); --BTRFS_SETGET_STACK_FUNCS(stack_inode_block_group, -- struct btrfs_inode_item, block_group, 64); --BTRFS_SETGET_STACK_FUNCS(stack_inode_nlink, -- struct btrfs_inode_item, nlink, 32); --BTRFS_SETGET_STACK_FUNCS(stack_inode_uid, -- struct btrfs_inode_item, uid, 32); --BTRFS_SETGET_STACK_FUNCS(stack_inode_gid, -- struct btrfs_inode_item, gid, 32); --BTRFS_SETGET_STACK_FUNCS(stack_inode_mode, -- struct btrfs_inode_item, mode, 32); --BTRFS_SETGET_STACK_FUNCS(stack_inode_rdev, -- struct btrfs_inode_item, rdev, 64); --BTRFS_SETGET_STACK_FUNCS(stack_inode_flags, -- struct btrfs_inode_item, flags, 64); -- --BTRFS_SETGET_FUNCS(timespec_sec, struct btrfs_timespec, sec, 64); --BTRFS_SETGET_FUNCS(timespec_nsec, struct btrfs_timespec, nsec, 32); --BTRFS_SETGET_STACK_FUNCS(stack_timespec_sec, struct btrfs_timespec, -- sec, 64); --BTRFS_SETGET_STACK_FUNCS(stack_timespec_nsec, struct btrfs_timespec, -- nsec, 32); -- --/* struct btrfs_dev_extent */ --BTRFS_SETGET_FUNCS(dev_extent_chunk_tree, struct btrfs_dev_extent, -- chunk_tree, 64); --BTRFS_SETGET_FUNCS(dev_extent_chunk_objectid, struct btrfs_dev_extent, -- chunk_objectid, 64); --BTRFS_SETGET_FUNCS(dev_extent_chunk_offset, struct btrfs_dev_extent, -- chunk_offset, 64); --BTRFS_SETGET_FUNCS(dev_extent_length, struct btrfs_dev_extent, length, 64); -- --static inline u8 *btrfs_dev_extent_chunk_tree_uuid(struct btrfs_dev_extent *dev) --{ -- unsigned long ptr = offsetof(struct btrfs_dev_extent, chunk_tree_uuid); -- return (u8 *)((unsigned long)dev + ptr); --} -- --/* struct btrfs_extent_ref */ --BTRFS_SETGET_FUNCS(ref_root, struct btrfs_extent_ref, root, 64); --BTRFS_SETGET_FUNCS(ref_generation, struct btrfs_extent_ref, generation, 64); --BTRFS_SETGET_FUNCS(ref_objectid, struct btrfs_extent_ref, objectid, 64); --BTRFS_SETGET_FUNCS(ref_num_refs, struct btrfs_extent_ref, num_refs, 32); -- --BTRFS_SETGET_STACK_FUNCS(stack_ref_root, struct btrfs_extent_ref, root, 64); --BTRFS_SETGET_STACK_FUNCS(stack_ref_generation, struct btrfs_extent_ref, -- generation, 64); --BTRFS_SETGET_STACK_FUNCS(stack_ref_objectid, struct btrfs_extent_ref, -- objectid, 64); --BTRFS_SETGET_STACK_FUNCS(stack_ref_num_refs, struct btrfs_extent_ref, -- num_refs, 32); -- --/* struct btrfs_extent_item */ --BTRFS_SETGET_FUNCS(extent_refs, struct btrfs_extent_item, refs, 32); --BTRFS_SETGET_STACK_FUNCS(stack_extent_refs, struct btrfs_extent_item, -- refs, 32); -- --/* struct btrfs_node */ --BTRFS_SETGET_FUNCS(key_blockptr, struct btrfs_key_ptr, blockptr, 64); --BTRFS_SETGET_FUNCS(key_generation, struct btrfs_key_ptr, generation, 64); -- --static inline u64 btrfs_node_blockptr(struct extent_buffer *eb, int nr) --{ -- unsigned long ptr; -- ptr = offsetof(struct btrfs_node, ptrs) + -- sizeof(struct btrfs_key_ptr) * nr; -- return btrfs_key_blockptr(eb, (struct btrfs_key_ptr *)ptr); --} -- --static inline void btrfs_set_node_blockptr(struct extent_buffer *eb, -- int nr, u64 val) --{ -- unsigned long ptr; -- ptr = offsetof(struct btrfs_node, ptrs) + -- sizeof(struct btrfs_key_ptr) * nr; -- btrfs_set_key_blockptr(eb, (struct btrfs_key_ptr *)ptr, val); --} -- --static inline u64 btrfs_node_ptr_generation(struct extent_buffer *eb, int nr) --{ -- unsigned long ptr; -- ptr = offsetof(struct btrfs_node, ptrs) + -- sizeof(struct btrfs_key_ptr) * nr; -- return btrfs_key_generation(eb, (struct btrfs_key_ptr *)ptr); --} -- --static inline void btrfs_set_node_ptr_generation(struct extent_buffer *eb, -- int nr, u64 val) --{ -- unsigned long ptr; -- ptr = offsetof(struct btrfs_node, ptrs) + -- sizeof(struct btrfs_key_ptr) * nr; -- btrfs_set_key_generation(eb, (struct btrfs_key_ptr *)ptr, val); --} -- --static inline unsigned long btrfs_node_key_ptr_offset(int nr) --{ -- return offsetof(struct btrfs_node, ptrs) + -- sizeof(struct btrfs_key_ptr) * nr; --} -- --static inline void btrfs_node_key(struct extent_buffer *eb, -- struct btrfs_disk_key *disk_key, int nr) --{ -- unsigned long ptr; -- ptr = btrfs_node_key_ptr_offset(nr); -- read_eb_member(eb, (struct btrfs_key_ptr *)ptr, -- struct btrfs_key_ptr, key, disk_key); --} -- --/* struct btrfs_item */ --BTRFS_SETGET_FUNCS(item_offset, struct btrfs_item, offset, 32); --BTRFS_SETGET_FUNCS(item_size, struct btrfs_item, size, 32); -- --static inline unsigned long btrfs_item_nr_offset(int nr) --{ -- return offsetof(struct btrfs_leaf, items) + -- sizeof(struct btrfs_item) * nr; --} -- --static inline struct btrfs_item *btrfs_item_nr(struct extent_buffer *eb, -- int nr) --{ -- return (struct btrfs_item *)btrfs_item_nr_offset(nr); --} -- --static inline u32 btrfs_item_end(struct extent_buffer *eb, -- struct btrfs_item *item) --{ -- return btrfs_item_offset(eb, item) + btrfs_item_size(eb, item); --} -- --static inline u32 btrfs_item_end_nr(struct extent_buffer *eb, int nr) --{ -- return btrfs_item_end(eb, btrfs_item_nr(eb, nr)); --} -- --static inline u32 btrfs_item_offset_nr(struct extent_buffer *eb, int nr) --{ -- return btrfs_item_offset(eb, btrfs_item_nr(eb, nr)); --} -- --static inline u32 btrfs_item_size_nr(struct extent_buffer *eb, int nr) --{ -- return btrfs_item_size(eb, btrfs_item_nr(eb, nr)); --} -- --static inline void btrfs_item_key(struct extent_buffer *eb, -- struct btrfs_disk_key *disk_key, int nr) --{ -- struct btrfs_item *item = btrfs_item_nr(eb, nr); -- read_eb_member(eb, item, struct btrfs_item, key, disk_key); --} -- --/* -- * struct btrfs_root_ref -- */ --BTRFS_SETGET_FUNCS(root_ref_dirid, struct btrfs_root_ref, dirid, 64); --BTRFS_SETGET_FUNCS(root_ref_sequence, struct btrfs_root_ref, sequence, 64); --BTRFS_SETGET_FUNCS(root_ref_name_len, struct btrfs_root_ref, name_len, 16); -- --/* struct btrfs_dir_item */ --BTRFS_SETGET_FUNCS(dir_data_len, struct btrfs_dir_item, data_len, 16); --BTRFS_SETGET_FUNCS(dir_type, struct btrfs_dir_item, type, 8); --BTRFS_SETGET_FUNCS(dir_name_len, struct btrfs_dir_item, name_len, 16); --BTRFS_SETGET_FUNCS(dir_transid, struct btrfs_dir_item, transid, 64); -- --static inline void btrfs_dir_item_key(struct extent_buffer *eb, -- struct btrfs_dir_item *item, -- struct btrfs_disk_key *key) --{ -- read_eb_member(eb, item, struct btrfs_dir_item, location, key); --} -- --/* struct btrfs_disk_key */ --BTRFS_SETGET_STACK_FUNCS(disk_key_objectid, struct btrfs_disk_key, -- objectid, 64); --BTRFS_SETGET_STACK_FUNCS(disk_key_offset, struct btrfs_disk_key, offset, 64); --BTRFS_SETGET_STACK_FUNCS(disk_key_type, struct btrfs_disk_key, type, 8); -- --static inline void btrfs_disk_key_to_cpu(struct btrfs_key *cpu, -- struct btrfs_disk_key *disk) --{ -- cpu->offset = le64_to_cpu(disk->offset); -- cpu->type = disk->type; -- cpu->objectid = le64_to_cpu(disk->objectid); --} -- --static inline void btrfs_cpu_key_to_disk(struct btrfs_disk_key *disk, -- struct btrfs_key *cpu) --{ -- disk->offset = cpu_to_le64(cpu->offset); -- disk->type = cpu->type; -- disk->objectid = cpu_to_le64(cpu->objectid); --} -- --static inline void btrfs_node_key_to_cpu(struct extent_buffer *eb, -- struct btrfs_key *key, int nr) --{ -- struct btrfs_disk_key disk_key; -- btrfs_node_key(eb, &disk_key, nr); -- btrfs_disk_key_to_cpu(key, &disk_key); --} -- --static inline void btrfs_item_key_to_cpu(struct extent_buffer *eb, -- struct btrfs_key *key, int nr) --{ -- struct btrfs_disk_key disk_key; -- btrfs_item_key(eb, &disk_key, nr); -- btrfs_disk_key_to_cpu(key, &disk_key); --} -- --static inline void btrfs_dir_item_key_to_cpu(struct extent_buffer *eb, -- struct btrfs_dir_item *item, -- struct btrfs_key *key) --{ -- struct btrfs_disk_key disk_key; -- btrfs_dir_item_key(eb, item, &disk_key); -- btrfs_disk_key_to_cpu(key, &disk_key); --} -- --static inline u8 btrfs_key_type(struct btrfs_key *key) --{ -- return key->type; --} -- --static inline void btrfs_set_key_type(struct btrfs_key *key, u8 val) --{ -- key->type = val; --} -- --static inline u64 btrfs_super_devid(struct btrfs_super_block *disk_super) --{ -- return le64_to_cpu(disk_super->dev_item.devid); --} -- --/* struct btrfs_header */ --BTRFS_SETGET_HEADER_FUNCS(header_bytenr, struct btrfs_header, bytenr, 64); --BTRFS_SETGET_HEADER_FUNCS(header_generation, struct btrfs_header, -- generation, 64); --BTRFS_SETGET_HEADER_FUNCS(header_owner, struct btrfs_header, owner, 64); --BTRFS_SETGET_HEADER_FUNCS(header_nritems, struct btrfs_header, nritems, 32); --BTRFS_SETGET_HEADER_FUNCS(header_flags, struct btrfs_header, flags, 64); --BTRFS_SETGET_HEADER_FUNCS(header_level, struct btrfs_header, level, 8); -- --/* struct btrfs_root_item */ --BTRFS_SETGET_FUNCS(disk_root_generation, struct btrfs_root_item, -- generation, 64); --BTRFS_SETGET_FUNCS(disk_root_refs, struct btrfs_root_item, refs, 32); --BTRFS_SETGET_FUNCS(disk_root_bytenr, struct btrfs_root_item, bytenr, 64); --BTRFS_SETGET_FUNCS(disk_root_level, struct btrfs_root_item, level, 8); -- --BTRFS_SETGET_STACK_FUNCS(root_generation, struct btrfs_root_item, -- generation, 64); --BTRFS_SETGET_STACK_FUNCS(root_bytenr, struct btrfs_root_item, bytenr, 64); --BTRFS_SETGET_STACK_FUNCS(root_level, struct btrfs_root_item, level, 8); --BTRFS_SETGET_STACK_FUNCS(root_dirid, struct btrfs_root_item, root_dirid, 64); --BTRFS_SETGET_STACK_FUNCS(root_refs, struct btrfs_root_item, refs, 32); --BTRFS_SETGET_STACK_FUNCS(root_flags, struct btrfs_root_item, flags, 64); --BTRFS_SETGET_STACK_FUNCS(root_used, struct btrfs_root_item, bytes_used, 64); --BTRFS_SETGET_STACK_FUNCS(root_limit, struct btrfs_root_item, byte_limit, 64); --BTRFS_SETGET_STACK_FUNCS(root_last_snapshot, struct btrfs_root_item, -- last_snapshot, 64); -- --/* struct btrfs_super_block */ -- --BTRFS_SETGET_STACK_FUNCS(super_bytenr, struct btrfs_super_block, bytenr, 64); --BTRFS_SETGET_STACK_FUNCS(super_flags, struct btrfs_super_block, flags, 64); --BTRFS_SETGET_STACK_FUNCS(super_generation, struct btrfs_super_block, -- generation, 64); --BTRFS_SETGET_STACK_FUNCS(super_root, struct btrfs_super_block, root, 64); --BTRFS_SETGET_STACK_FUNCS(super_sys_array_size, -- struct btrfs_super_block, sys_chunk_array_size, 32); --BTRFS_SETGET_STACK_FUNCS(super_chunk_root_generation, -- struct btrfs_super_block, chunk_root_generation, 64); --BTRFS_SETGET_STACK_FUNCS(super_root_level, struct btrfs_super_block, -- root_level, 8); --BTRFS_SETGET_STACK_FUNCS(super_chunk_root, struct btrfs_super_block, -- chunk_root, 64); --BTRFS_SETGET_STACK_FUNCS(super_chunk_root_level, struct btrfs_super_block, -- chunk_root_level, 8); --BTRFS_SETGET_STACK_FUNCS(super_log_root, struct btrfs_super_block, -- log_root, 64); --BTRFS_SETGET_STACK_FUNCS(super_log_root_transid, struct btrfs_super_block, -- log_root_transid, 64); --BTRFS_SETGET_STACK_FUNCS(super_log_root_level, struct btrfs_super_block, -- log_root_level, 8); --BTRFS_SETGET_STACK_FUNCS(super_total_bytes, struct btrfs_super_block, -- total_bytes, 64); --BTRFS_SETGET_STACK_FUNCS(super_bytes_used, struct btrfs_super_block, -- bytes_used, 64); --BTRFS_SETGET_STACK_FUNCS(super_sectorsize, struct btrfs_super_block, -- sectorsize, 32); --BTRFS_SETGET_STACK_FUNCS(super_nodesize, struct btrfs_super_block, -- nodesize, 32); --BTRFS_SETGET_STACK_FUNCS(super_leafsize, struct btrfs_super_block, -- leafsize, 32); --BTRFS_SETGET_STACK_FUNCS(super_stripesize, struct btrfs_super_block, -- stripesize, 32); --BTRFS_SETGET_STACK_FUNCS(super_root_dir, struct btrfs_super_block, -- root_dir_objectid, 64); --BTRFS_SETGET_STACK_FUNCS(super_num_devices, struct btrfs_super_block, -- num_devices, 64); --BTRFS_SETGET_STACK_FUNCS(super_compat_flags, struct btrfs_super_block, -- compat_flags, 64); --BTRFS_SETGET_STACK_FUNCS(super_compat_ro_flags, struct btrfs_super_block, -- compat_flags, 64); --BTRFS_SETGET_STACK_FUNCS(super_incompat_flags, struct btrfs_super_block, -- incompat_flags, 64); --BTRFS_SETGET_STACK_FUNCS(super_csum_type, struct btrfs_super_block, -- csum_type, 16); -- --static inline int btrfs_super_csum_size(struct btrfs_super_block *s) --{ -- int t = btrfs_super_csum_type(s); -- //BUG_ON(t >= ARRAY_SIZE(btrfs_csum_sizes)); -- return btrfs_csum_sizes[t]; --} -- --static inline unsigned long btrfs_leaf_data(struct extent_buffer *l) --{ -- return offsetof(struct btrfs_leaf, items); --} -- --/* struct btrfs_file_extent_item */ --BTRFS_SETGET_FUNCS(file_extent_type, struct btrfs_file_extent_item, type, 8); -- --static inline unsigned long btrfs_file_extent_inline_start(struct -- btrfs_file_extent_item *e) --{ -- unsigned long offset = (unsigned long)e; -- offset += offsetof(struct btrfs_file_extent_item, disk_bytenr); -- return offset; --} -- --static inline u32 btrfs_file_extent_calc_inline_size(u32 datasize) --{ -- return offsetof(struct btrfs_file_extent_item, disk_bytenr) + datasize; --} -- --BTRFS_SETGET_FUNCS(file_extent_disk_bytenr, struct btrfs_file_extent_item, -- disk_bytenr, 64); --BTRFS_SETGET_FUNCS(file_extent_generation, struct btrfs_file_extent_item, -- generation, 64); --BTRFS_SETGET_FUNCS(file_extent_disk_num_bytes, struct btrfs_file_extent_item, -- disk_num_bytes, 64); --BTRFS_SETGET_FUNCS(file_extent_offset, struct btrfs_file_extent_item, -- offset, 64); --BTRFS_SETGET_FUNCS(file_extent_num_bytes, struct btrfs_file_extent_item, -- num_bytes, 64); --BTRFS_SETGET_FUNCS(file_extent_ram_bytes, struct btrfs_file_extent_item, -- ram_bytes, 64); --BTRFS_SETGET_FUNCS(file_extent_compression, struct btrfs_file_extent_item, -- compression, 8); --BTRFS_SETGET_FUNCS(file_extent_encryption, struct btrfs_file_extent_item, -- encryption, 8); --BTRFS_SETGET_FUNCS(file_extent_other_encoding, struct btrfs_file_extent_item, -- other_encoding, 16); -- --/* this returns the number of file bytes represented by the inline item. -- * If an item is compressed, this is the uncompressed size -- */ --static inline u32 btrfs_file_extent_inline_len(struct extent_buffer *eb, -- struct btrfs_file_extent_item *e) --{ -- return btrfs_file_extent_ram_bytes(eb, e); --} -- --/* -- * this returns the number of bytes used by the item on disk, minus the -- * size of any extent headers. If a file is compressed on disk, this is -- * the compressed size -- */ --static inline u32 btrfs_file_extent_inline_item_len(struct extent_buffer *eb, -- struct btrfs_item *e) --{ -- unsigned long offset; -- offset = offsetof(struct btrfs_file_extent_item, disk_bytenr); -- return btrfs_item_size(eb, e) - offset; --} -- --static inline u32 btrfs_level_size(struct btrfs_root *root, int level) { -- if (level == 0) -- return root->leafsize; -- return root->nodesize; --} -- --static inline u32 btrfs_root_level_size(struct btrfs_super_block *sb) { -- return btrfs_super_root_level(sb) == 0 ? -- btrfs_super_leafsize(sb) : -- btrfs_super_nodesize(sb); --} -- --static inline u32 btrfs_chunk_root_level_size(struct btrfs_super_block *sb) { -- return btrfs_super_chunk_root_level(sb) == 0 ? -- btrfs_super_leafsize(sb) : -- btrfs_super_nodesize(sb); --} -- --/* helper function to cast into the data area of the leaf. */ --#define btrfs_item_ptr(leaf, slot, type) \ -- ((type *)(btrfs_leaf_data(leaf) + \ -- btrfs_item_offset_nr(leaf, slot))) -- --#define btrfs_item_ptr_offset(leaf, slot) \ -- ((unsigned long)(btrfs_leaf_data(leaf) + \ -- btrfs_item_offset_nr(leaf, slot))) -- --/*volumes.h */ -- --struct btrfs_fs_devices { -- u8 fsid[BTRFS_FSID_SIZE]; /* FS specific uuid */ -- -- /* the device with this id has the most recent coyp of the super */ -- u64 latest_devid; -- u64 latest_trans; -- u64 lowest_devid; -- int latest_bdev; -- int lowest_bdev; -- int seeding; -- struct btrfs_fs_devices *seed; --}; -- --struct btrfs_bio_stripe { -- struct btrfs_device dev; -- u64 physical; --}; -- --#define MAX_NRSTRIPES 8 --struct btrfs_multi_bio { -- int error; -- int num_stripes; -- struct btrfs_bio_stripe stripes[MAX_NRSTRIPES]; --}; -- --#define btrfs_multi_bio_size(n) (sizeof(struct btrfs_multi_bio) + \ -- (sizeof(struct btrfs_bio_stripe) * (n))) -- --static int aux_tree_lookup(struct btrfs_root *root, -- struct btrfs_key *key, -- struct btrfs_path *path); -- --struct cache_extent { -- u64 start; -- u64 size; --}; -- --struct map_lookup { -- struct cache_extent ce; -- u64 type; -- int io_align; -- int io_width; -- int stripe_len; -- int sector_size; -- int num_stripes; -- int sub_stripes; -- struct btrfs_bio_stripe stripes[MAX_NRSTRIPES]; --}; -- --/* "VFS" things */ -- --/* file types recognized by grub */ --typedef enum { -- BTRFS_REGULAR_FILE, -- BTRFS_DIRECTORY_FILE, -- BTRFS_SYMLINK_FILE, -- BTRFS_UNKNOWN_FILE --} btrfs_file_type; -- --static inline int coord_is_root(struct btrfs_root *root, -- struct btrfs_path *path) --{ -- return btrfs_header_bytenr(&path->nodes[0]) == -- btrfs_header_bytenr(&root->node); --} -- --static inline btrfs_file_type btrfs_get_file_type (int mode) --{ -- if (S_ISLNK(mode)) -- return BTRFS_SYMLINK_FILE; -- if (S_ISREG(mode)) -- return BTRFS_REGULAR_FILE; -- if (S_ISDIR(mode)) -- return BTRFS_DIRECTORY_FILE; -- return BTRFS_UNKNOWN_FILE; --} -- --#define min_t(type,x,y) \ -- ({ type __x = (x); type __y = (y); __x < __y ? __x: __y; }) --#define max_t(type,x,y) \ -- ({ type __x = (x); type __y = (y); __x > __y ? __x: __y; }) -- -- --int sys_array_lookup(struct map_lookup *map, u64 logical); --int tree_chunk_lookup(struct map_lookup *map, -- u64 logical); --int __btrfs_map_block(u64 logical, u64 *length, -- struct btrfs_multi_bio *multi_ret, int mirror_num); --int read_tree_block(struct btrfs_root *root, -- struct extent_buffer *eb, -- u64 bytenr, /* logical */ -- u32 blocksize, -- u64 parent_transid, -- lookup_pool_id lpid); --int check_read_chunk(struct btrfs_key *key, -- struct extent_buffer *leaf, -- struct btrfs_chunk *chunk, -- struct map_lookup *map, -- u64 logical); --/* -- Local variables: -- c-indentation-style: "K&R" -- mode-name: "LC" -- c-basic-offset: 8 -- tab-width: 8 -- fill-column: 80 -- scroll-step: 1 -- End: --*/ -diff --git a/stage2/fsys_btrfs.c b/stage2/fsys_btrfs.c -deleted file mode 100644 -index f47f317..0000000 ---- a/stage2/fsys_btrfs.c -+++ /dev/null -@@ -1,1815 +0,0 @@ --/* fsys_btrfs.c - an implementation for the Btrfs filesystem -- * -- * Copyright 2009 Red Hat, Inc. All rights reserved. -- * -- * 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, see . -- */ -- --#ifdef FSYS_BTRFS -- --#include "shared.h" --#include "filesys.h" --#include "btrfs.h" -- --#define BTRFS_VERBOSE 0 -- --/* Cache layouts */ -- --#define LOOKUP_CACHE_BUF_SIZE (4096) --#define LOOKUP_CACHE_SIZE (LOOKUP_CACHE_BUF_SIZE * LAST_LOOKUP_POOL) --#define BTRFS_FS_INFO \ -- ((struct btrfs_fs_info *)((unsigned long)FSYS_BUF + \ -- LOOKUP_CACHE_SIZE)) --#define BTRFS_CACHE_SIZE (sizeof(struct btrfs_fs_info) + \ -- LOOKUP_CACHE_SIZE) --#define BTRFS_TREE_ROOT (&BTRFS_FS_INFO->tree_root) --#define BTRFS_CHUNK_ROOT (&BTRFS_FS_INFO->chunk_root) --#define BTRFS_FS_ROOT (&BTRFS_FS_INFO->fs_root) --#define BTRFS_SUPER (&BTRFS_FS_INFO->sb_copy) --#define BTRFS_DEVICES (&BTRFS_FS_INFO->devices[0]) --#define BTRFS_FILE_INFO (&BTRFS_FS_INFO->file_info) --#define BTRFS_FILE_INFO_KEY (&BTRFS_FILE_INFO->key) -- --#define BTRFS_VOLATILE_DEV_CACHE \ -- (&BTRFS_FS_INFO->devices[BTRFS_NUM_CACHED_DEVICES]) -- --#define LOOKUP_CACHE_BUF(id) ((char *)((unsigned long)FSYS_BUF + \ -- id * LOOKUP_CACHE_BUF_SIZE)) -- --#define noop do {; } while (0) -- --#if BTRFS_VERBOSE --#define btrfs_msg(format, ...) printf(format , ## __VA_ARGS__) --#else --#define btrfs_msg(format, args...) noop --#endif -- --/* compile-time check to make sure we don't overlap -- filesystem buffer */ --static inline void check_btrfs_cache_size(void) --{ -- cassert(BTRFS_CACHE_SIZE <= FSYS_BUFLEN); --} -- --static inline u64 btrfs_sb_offset(int mirror) --{ -- u64 start = 16 * 1024; -- if (mirror) -- return start << (BTRFS_SUPER_MIRROR_SHIFT * mirror); -- return BTRFS_SUPER_INFO_OFFSET; --} -- --static inline char *grab_lookup_cache(lookup_pool_id lpid) --{ -- char *buf = LOOKUP_CACHE_BUF(lpid); -- memset(buf, 0, LOOKUP_CACHE_BUF_SIZE); -- return buf; --} -- --static inline struct btrfs_path *btrfs_grab_path(lookup_pool_id lpid) --{ -- return &BTRFS_FS_INFO->paths[lpid]; --} -- --static inline void btrfs_set_path_key(struct btrfs_path *path, -- struct btrfs_key *key) --{ -- btrfs_item_key_to_cpu(&path->nodes[0], -- key, -- path->slots[0]); --} -- --static inline void btrfs_update_file_info(struct btrfs_path *path) --{ -- btrfs_set_path_key(path, BTRFS_FILE_INFO_KEY); --} -- --static inline void btrfs_set_root_dir_key(struct btrfs_key *key) --{ -- key->objectid = BTRFS_FIRST_FREE_OBJECTID; -- btrfs_set_key_type(key, BTRFS_INODE_ITEM_KEY); -- key->offset = 0; --} -- --static inline void copy_extent_buffer(struct extent_buffer *dst, -- struct extent_buffer *src) --{ -- char *data = dst->data; -- memcpy(dst, src, sizeof(*dst)); -- memcpy(data, src->data, 4096); -- dst->data = data; --} -- --static inline void move_extent_buffer(struct extent_buffer *dst, -- struct extent_buffer *src) --{ -- memcpy(dst, src, sizeof(*dst)); --} -- --static inline void init_btrfs_root (struct btrfs_root *root) --{ -- root->node.data = root->data; --} -- --static inline void init_btrfs_path(lookup_pool_id lpid) --{ -- struct btrfs_path *path; -- path = btrfs_grab_path(lpid); -- path->lpid = lpid; --} -- --static inline void init_btrfs_info(void) --{ -- int i; -- -- memset(BTRFS_FS_INFO, 0, sizeof(struct btrfs_fs_info)); -- for(i = 0; i < LAST_LOOKUP_POOL; i++) -- init_btrfs_path(i); -- init_btrfs_root(BTRFS_TREE_ROOT); -- init_btrfs_root(BTRFS_CHUNK_ROOT); -- init_btrfs_root(BTRFS_FS_ROOT); --} -- --static void setup_root(struct btrfs_root *root, -- u32 nodesize, -- u32 leafsize, -- u32 sectorsize, -- u32 stripesize, -- u64 objectid) --{ -- root->nodesize = nodesize; -- root->leafsize = leafsize; -- root->sectorsize = sectorsize; -- root->stripesize = stripesize; -- root->objectid = objectid; --} -- --/* -- * Pick up the latest root of a -- * tree with specified @objectid -- */ --static int btrfs_find_last_root(struct btrfs_root *tree_root, -- u64 objectid, -- struct btrfs_root_item *item, -- lookup_pool_id lpid) --{ -- int ret; -- int slot; -- struct btrfs_key search_key; -- struct btrfs_key found_key; -- struct btrfs_path *path; -- -- search_key.objectid = objectid; -- search_key.type = BTRFS_ROOT_ITEM_KEY; -- search_key.offset = (u64)-1; -- path = btrfs_grab_path(lpid); -- -- ret = aux_tree_lookup(tree_root, &search_key, path); -- if (ret < 0) -- return 1; -- slot = path->slots[0]; -- WARN_ON(slot == 0); -- slot -= 1; -- btrfs_item_key_to_cpu(&path->nodes[0], &found_key, slot); -- if (found_key.objectid != objectid) -- return 1; -- -- read_extent_buffer(&path->nodes[0], item, -- btrfs_item_ptr_offset(&path->nodes[0], slot), -- sizeof(*item)); -- return 0; --} -- --static int find_setup_root(struct btrfs_root *tree_root, -- u32 nodesize, -- u32 leafsize, -- u32 sectorsize, -- u32 stripesize, -- u64 objectid, -- struct btrfs_root *dest_root, -- u64 bytenr, -- u32 blocksize, -- u64 generation, -- lookup_pool_id lpid) --{ -- int ret; -- struct extent_buffer eb; -- -- setup_root(dest_root, -- nodesize, -- leafsize, -- sectorsize, -- stripesize, -- objectid); -- if (tree_root) { -- /* -- * pick up the latest version -- * of the root we want to set up -- */ -- ret = btrfs_find_last_root(tree_root, objectid, -- &dest_root->root_item, -- lpid); -- if (ret) -- return ret; -- bytenr = btrfs_root_bytenr(&dest_root->root_item); -- blocksize = btrfs_level_size(dest_root, -- btrfs_root_level(&dest_root->root_item)); -- generation = btrfs_root_generation(&dest_root->root_item); -- } -- ret = read_tree_block(dest_root, -- &eb, -- bytenr, -- blocksize, -- generation, -- lpid); -- if (!ret) -- return 1; -- copy_extent_buffer(&dest_root->node, &eb); -- return 0; --} -- --static inline int btrfs_strncmp(const char *cs, const char *ct, int count) --{ -- signed char __res = 0; -- -- while (count) { -- if ((__res = *cs - *ct++) != 0 || !*cs++) -- break; -- count--; -- } -- return __res; --} -- --/* -- * the same as devread, but accepts -- * device number, start and length. -- */ --static int btrfs_devread(unsigned long drive, unsigned long part, -- unsigned long dev_len, int sector, -- int byte_offset, int byte_len, char *buf) --{ -- if (sector < 0 -- || ((sector + ((byte_offset + byte_len - 1) >> SECTOR_BITS)) -- >= dev_len)) { -- errnum = ERR_OUTSIDE_PART; -- return 0; -- } -- sector += byte_offset >> SECTOR_BITS; -- byte_offset &= SECTOR_SIZE - 1; --#if !defined(STAGE1_5) -- if (disk_read_hook && debug) -- printf ("<%d, %d, %d>", sector, byte_offset, byte_len); --#endif /* !STAGE1_5 */ -- return rawread(drive, part + sector, byte_offset, -- byte_len, buf); --} -- --static int btrfs_check_super(void) --{ -- struct btrfs_super_block *sb = BTRFS_SUPER; -- -- if (sb->nodesize != BTRFS_DEFAULT_NODE_SIZE) { -- btrfs_msg("Btrfs node size (%d) != %d unsupported\n", -- sb->nodesize, BTRFS_DEFAULT_NODE_SIZE); -- goto error; -- } -- if (sb->leafsize != BTRFS_DEFAULT_LEAF_SIZE) { -- btrfs_msg("Btrfs leaf size (%d) != %d unsupported\n", -- sb->leafsize, BTRFS_DEFAULT_LEAF_SIZE); -- goto error; -- } -- return 0; -- error: -- return 1; --} -- --/* lift the super block */ --static int btrfs_uptodate_super_copy(struct btrfs_fs_info *fs) --{ -- errnum = ERR_NONE; -- btrfs_devread(BTRFS_FS_INFO->sb_dev.drive, -- BTRFS_FS_INFO->sb_dev.part, -- BTRFS_FS_INFO->sb_dev.length, -- btrfs_sb_offset(BTRFS_FS_INFO->sb_mirror) >> SECTOR_BITS, -- 0, -- sizeof(struct btrfs_super_block), -- (char *)BTRFS_SUPER); -- return btrfs_check_super(); --} -- --/* -- * Looking for a btrfs super block by magic, @fsid and @devid -- * (the last two ones are optional). Update latest transid (if -- * any). Return 0, if such super block was found. Otherwise, -- * return 1. -- * -- * NOTE: -- * After calling this function the sb_copy of global btrfs_fs_info -- * can contain garbage, so the caller is responsible for this to be -- * uptodate (see the function btrfs_uptodate_super_copy()). -- */ --static int btrfs_find_super(struct btrfs_device *dev, char *fsid, u64 *devid) --{ -- int i, ret; -- int found = 0; -- -- for (i = 0; i < BTRFS_SUPER_MIRROR_MAX; i++) { -- ret = btrfs_devread(dev->drive, -- dev->part, -- dev->length, -- btrfs_sb_offset(i) >> SECTOR_BITS, -- 0, -- sizeof(struct btrfs_super_block), -- (char *)BTRFS_SUPER); -- if (!ret) { -- if (errnum == ERR_OUTSIDE_PART) { -- errnum = ERR_NONE; -- break; -- } else { -- errnum = ERR_NONE; -- continue; -- } -- } -- if (btrfs_super_bytenr(BTRFS_SUPER) != btrfs_sb_offset(i) || -- btrfs_strncmp((char *)(&BTRFS_SUPER->magic), -- BTRFS_MAGIC, -- sizeof(BTRFS_SUPER->magic))) -- continue; -- if (fsid && -- btrfs_strncmp(fsid, -- (char *)BTRFS_SUPER->fsid, -- BTRFS_FSID_SIZE)) -- return 1; -- if (devid && -- *devid != btrfs_super_devid(BTRFS_SUPER)) -- return 1; -- found = 1; -- dev->devid = btrfs_super_devid(BTRFS_SUPER); -- -- if (btrfs_super_generation(BTRFS_SUPER) > -- BTRFS_FS_INFO->sb_transid) { -- BTRFS_FS_INFO->sb_transid = -- btrfs_super_generation(BTRFS_SUPER); -- BTRFS_FS_INFO->sb_mirror = i; -- BTRFS_FS_INFO->sb_dev.devid = -- btrfs_super_devid(BTRFS_SUPER); -- BTRFS_FS_INFO->sb_dev.drive = dev->drive; -- BTRFS_FS_INFO->sb_dev.part = dev->part; -- BTRFS_FS_INFO->sb_dev.length = dev->length; -- } -- } -- return !found; --} -- --/* -- * "Discern" a btrfs device by fsid and -- * optionaly by devid (if lookup is set). -- * Populate persistent device cache (if -- * there are free slots). -- */ --static int btrfs_discerner(struct btrfs_device **dev, int lookup) --{ -- if (btrfs_find_super(*dev, -- (char *)BTRFS_FS_INFO->fsid, -- (lookup ? &(*dev)->devid : 0))) -- /* not found */ -- return 0; -- if (*dev < BTRFS_VOLATILE_DEV_CACHE) { -- /* populate persistent device cache */ -- memcpy(*dev + 1, *dev, sizeof(struct btrfs_device)); -- (*dev)++; -- } -- return 1; --} -- --/* -- * Scan available grub devices and call discerner -- * for them. Return a number of discerned devices -- * The scanner was stolen from print_completions(). -- * -- * Preconditions: -- * The global structure btrfs_fs_info contains -- * the latest valid version of btrfs superblock -- * (the field @sb_copy) -- */ --static u64 scan_grub_devices(struct btrfs_device *dev, -- int (*discerner)(struct btrfs_device **, int), -- int lookup) --{ -- int i, j; -- u64 count = 0; -- struct geometry geom; -- -- for (i = 0; i < 2; i++) -- for (j = 0; j < 8; j++) { -- unsigned long part = 0xFFFFFF; -- int type, entry, gpt_count, gpt_size; -- unsigned long offset, ext_offset, gpt_offset; -- -- dev->drive = (i * 0x80) + j; -- if (get_diskinfo(dev->drive, &geom)) -- continue; -- while (1) { -- int ret; -- buf_drive = -1; -- errnum = ERR_NONE; -- ret = next_partition(dev->drive, 0xFFFFFF, -- &part, &type, &dev->part, -- &dev->length, &offset, -- &entry, &ext_offset, -- &gpt_offset, &gpt_count, -- &gpt_size, -- BTRFS_FS_INFO->mbr); -- if (!ret) -- break; -- if (discerner(&dev, lookup)) { -- count++; -- if (lookup) -- goto exit; -- } -- } -- } -- errnum = ERR_NONE; -- if (cdrom_drive != GRUB_INVALID_DRIVE && -- !get_diskinfo(cdrom_drive, &geom)) { -- dev->drive = cdrom_drive; -- dev->part = 0; -- dev->length = geom.total_sectors; -- if (discerner(&dev, lookup)) { -- count++; -- if (lookup) -- goto exit; -- } -- } --#if 0 -- errnum = ERR_NONE; -- if (network_ready && -- !get_diskinfo(NETWORK_DRIVE, &geom)) { -- dev->drive = NETWORK_DRIVE; -- dev->part = 0; -- dev->length = geom.total_sectors; -- if (discerner(&dev, lookup)) { -- count++; -- if (lookup) -- goto exit; -- } -- } --#endif /* 0 */ -- exit: -- return count; --} -- --#if 0 --static int btrfs_next_item(struct btrfs_root *root, -- struct btrfs_path *path); -- --/* -- * Scan the chunk tree for dev items -- * and call a seeker for all of them. -- * Preconditions: chunk root is installed -- * to the global btrfs_fs_info. -- */ --static int scan_dev_tree(struct btrfs_device* (*seeker)(u64)) --{ -- int ret; -- u64 num_devices = 0; -- struct btrfs_key key; -- struct btrfs_key found_key; -- struct btrfs_path *path; -- struct btrfs_root *root; -- -- root = BTRFS_CHUNK_ROOT; -- path = btrfs_grab_path(FIRST_EXTERNAL_LOOKUP_POOL); -- key.objectid = BTRFS_DEV_ITEMS_OBJECTID; -- key.type = 0; -- key.offset = 0; -- -- ret = aux_tree_lookup(root, &key, path); -- if (ret == -1) -- goto corrupted; -- while (1) { -- struct btrfs_device *result; -- struct btrfs_dev_item *dev_item; -- -- btrfs_item_key_to_cpu(&path->nodes[0], -- &found_key, -- path->slots[0]); -- if (found_key.objectid != BTRFS_DEV_ITEMS_OBJECTID) -- break; -- dev_item = btrfs_item_ptr(&path->nodes[0], -- path->slots[0], -- struct btrfs_dev_item); -- result = seeker(btrfs_device_id(&path->nodes[0], dev_item)); -- if (result == NULL) { -- btrfs_msg("Btrfs device %llu is not available\n", -- btrfs_device_id(&path->nodes[0], dev_item)); -- goto missed_dev; -- } -- num_devices++; -- ret = btrfs_next_item(root, path); -- if (ret) -- break; -- } -- if (num_devices == btrfs_super_num_devices(BTRFS_SUPER)) -- return 0; -- corrupted: -- errnum = ERR_FSYS_CORRUPT; -- return 1; -- missed_dev: -- errnum = ERR_FSYS_MOUNT; -- return 1; --} --#endif /* 0 */ -- --/* -- * Find a grub btrfs device by devid. -- * Preconditions: global btrfs_fs_info -- * contains a copy of btrfs super block. -- * -- * Return pointer to the cached device on success. -- * Otherwise return NULL. -- */ --static struct btrfs_device *btrfs_lookup_device(u64 devid) --{ -- int i, result; -- struct btrfs_device *cdev; -- -- for (i = 0; i < BTRFS_NUM_CACHED_DEVICES; i++) { -- cdev = &BTRFS_DEVICES[i]; -- if (cdev->devid == devid) -- goto found_in_cache; -- if (cdev->devid == 0) -- goto not_found_in_cache; -- } -- not_found_in_cache: -- cdev = BTRFS_VOLATILE_DEV_CACHE; -- cdev->devid = devid; -- result = scan_grub_devices(cdev, -- btrfs_discerner, -- 1); -- if (result == 0) -- /* -- * At mount time we have figured out that -- * number of available devices is not less -- * then number of devices recorded in the -- * super block. Hence we treat this case as -- * file system corruption. -- */ -- goto corrupt; -- result = btrfs_uptodate_super_copy(BTRFS_FS_INFO); -- if (result) -- goto corrupt; -- found_in_cache: -- return cdev; -- corrupt: -- errnum = ERR_FSYS_CORRUPT; -- return NULL; --} -- --static int btrfs_find_device(struct btrfs_device *dev) --{ -- struct btrfs_device *cdev; -- -- if (btrfs_super_num_devices(BTRFS_SUPER) == 1) { -- dev->drive = current_drive; -- dev->part = part_start; -- dev->length = part_length; -- return 0; -- } -- cdev = btrfs_lookup_device(dev->devid); -- if (cdev == NULL) -- return 1; -- dev->drive = cdev->drive; -- dev->part = cdev->part; -- dev->length = cdev->length; -- return 0; --} -- --static inline void init_btrfs_volatile_dev_cache(void) --{ -- BTRFS_VOLATILE_DEV_CACHE->devid = 0; -- BTRFS_VOLATILE_DEV_CACHE->drive = current_drive; -- BTRFS_VOLATILE_DEV_CACHE->part = part_start; -- BTRFS_VOLATILE_DEV_CACHE->length = part_length; --} -- --/* -- * check availability of btrfs devices -- * and populate the persistent device cache -- */ --static int btrfs_check_devices(void) --{ -- u64 num_dev; -- -- if (btrfs_super_num_devices(BTRFS_SUPER) == 1) -- return 0; -- num_dev = scan_grub_devices(BTRFS_DEVICES, -- btrfs_discerner, 0); -- if (btrfs_uptodate_super_copy(BTRFS_FS_INFO)) -- return 1; -- if (num_dev < btrfs_super_num_devices(BTRFS_SUPER)) { -- btrfs_msg("Some (%llu) Btrfs devices is not available\n", -- btrfs_super_num_devices(BTRFS_SUPER) - num_dev); -- return 1; -- } -- return 0; --} -- --int btrfs_mount(void) --{ -- int ret; -- -- check_btrfs_cache_size(); -- init_btrfs_info(); -- init_btrfs_volatile_dev_cache(); -- -- ret = btrfs_find_super(BTRFS_VOLATILE_DEV_CACHE, NULL, NULL); -- if (ret) { -- btrfs_msg("Drive %lu, partition %lu: no Btrfs metadata\n", -- current_drive, part_start); -- return 0; -- } -- ret = btrfs_uptodate_super_copy(BTRFS_FS_INFO); -- if (ret) -- goto error; -- BTRFS_FS_INFO->sb_transid = -- btrfs_super_generation(BTRFS_SUPER); -- memcpy(BTRFS_FS_INFO->fsid, -- BTRFS_SUPER->fsid, -- BTRFS_FSID_SIZE); -- ret = btrfs_check_devices(); -- if (ret) -- goto error; -- /* setup chunk root */ -- ret = find_setup_root(NULL, -- btrfs_super_nodesize(BTRFS_SUPER), -- btrfs_super_leafsize(BTRFS_SUPER), -- btrfs_super_sectorsize(BTRFS_SUPER), -- btrfs_super_stripesize(BTRFS_SUPER), -- BTRFS_CHUNK_TREE_OBJECTID, -- BTRFS_CHUNK_ROOT, -- btrfs_super_chunk_root(BTRFS_SUPER), -- btrfs_chunk_root_level_size(BTRFS_SUPER), -- btrfs_super_chunk_root_generation(BTRFS_SUPER), -- FIRST_EXTERNAL_LOOKUP_POOL); -- if (ret) -- return 0; -- /* setup tree root */ -- ret = find_setup_root(NULL, -- btrfs_super_nodesize(BTRFS_SUPER), -- btrfs_super_leafsize(BTRFS_SUPER), -- btrfs_super_sectorsize(BTRFS_SUPER), -- btrfs_super_stripesize(BTRFS_SUPER), -- BTRFS_ROOT_TREE_OBJECTID, -- BTRFS_TREE_ROOT, -- btrfs_super_root(BTRFS_SUPER), -- btrfs_root_level_size(BTRFS_SUPER), -- btrfs_super_generation(BTRFS_SUPER), -- FIRST_EXTERNAL_LOOKUP_POOL); -- if (ret) -- return 0; -- /* setup fs_root */ -- ret = find_setup_root(BTRFS_TREE_ROOT, -- btrfs_super_nodesize(BTRFS_SUPER), -- btrfs_super_leafsize(BTRFS_SUPER), -- btrfs_super_sectorsize(BTRFS_SUPER), -- btrfs_super_stripesize(BTRFS_SUPER), -- BTRFS_FS_TREE_OBJECTID, -- BTRFS_FS_ROOT, -- 0, -- 0, -- 0, -- FIRST_EXTERNAL_LOOKUP_POOL); -- return !ret; -- error: -- errnum = ERR_FSYS_MOUNT; -- return 0; --} -- --/* -- * Check, whether @chunk is the map for a -- * block with @logical block number. -- * If yes, then fill the @map. -- * Return 1 on affirmative result, -- * otherwise return 0. -- */ --int check_read_chunk(struct btrfs_key *key, -- struct extent_buffer *leaf, -- struct btrfs_chunk *chunk, -- struct map_lookup *map, -- u64 logical) --{ -- int i, ret; -- u64 chunk_start; -- u64 chunk_size; -- int num_stripes; -- -- chunk_start = key->offset; -- chunk_size = btrfs_chunk_length(leaf, chunk); -- -- if (logical + 1 > chunk_start + chunk_size || -- logical < chunk_start) -- /* not a fit */ -- return 0; -- num_stripes = btrfs_chunk_num_stripes(leaf, chunk); -- map->ce.start = chunk_start; -- map->ce.size = chunk_size; -- map->num_stripes = num_stripes; -- map->io_width = btrfs_chunk_io_width(leaf, chunk); -- map->io_align = btrfs_chunk_io_align(leaf, chunk); -- map->sector_size = btrfs_chunk_sector_size(leaf, chunk); -- map->stripe_len = btrfs_chunk_stripe_len(leaf, chunk); -- map->type = btrfs_chunk_type(leaf, chunk); -- map->sub_stripes = btrfs_chunk_sub_stripes(leaf, chunk); -- -- for (i = 0; i < num_stripes; i++) { -- map->stripes[i].physical = -- btrfs_stripe_offset_nr(leaf, chunk, i); -- map->stripes[i].dev.devid = -- btrfs_stripe_devid_nr(leaf, chunk, i); -- ret = btrfs_find_device(&map->stripes[i].dev); -- if (ret) -- return 0; -- } -- return 1; --} -- --static void init_extent_buffer(struct extent_buffer *eb, -- struct btrfs_device *dev, -- u64 logical, -- u32 blocksize, -- u64 physical, -- lookup_pool_id lpid) --{ -- if (dev) -- memcpy(&eb->dev, dev, sizeof(*dev)); -- eb->start = logical; -- eb->len = blocksize; -- eb->dev_bytenr = physical; -- eb->data = grab_lookup_cache(lpid); --} -- --/* -- * Search for a map by logical offset in sys array. -- * Return -1 on errors; -- * Return 1 if the map is found, -- * Return 0 if the map is not found. -- */ --int sys_array_lookup(struct map_lookup *map, u64 logical) --{ -- struct extent_buffer sb; -- struct btrfs_disk_key *disk_key; -- struct btrfs_chunk *chunk; -- struct btrfs_key key; -- u32 num_stripes; -- u32 array_size; -- u32 len = 0; -- u8 *ptr; -- unsigned long sb_ptr; -- u32 cur; -- int ret; -- int i = 0; -- -- sb.data = (char *)BTRFS_SUPER; -- array_size = btrfs_super_sys_array_size(BTRFS_SUPER); -- -- ptr = BTRFS_SUPER->sys_chunk_array; -- sb_ptr = offsetof(struct btrfs_super_block, sys_chunk_array); -- cur = 0; -- -- while (cur < array_size) { -- disk_key = (struct btrfs_disk_key *)ptr; -- btrfs_disk_key_to_cpu(&key, disk_key); -- -- len = sizeof(*disk_key); -- ptr += len; -- sb_ptr += len; -- cur += len; -- -- if (key.type == BTRFS_CHUNK_ITEM_KEY) { -- chunk = (struct btrfs_chunk *)sb_ptr; -- ret = check_read_chunk(&key, &sb, -- chunk, map, logical); -- if (ret) -- /* map is found */ -- return ret; -- num_stripes = btrfs_chunk_num_stripes(&sb, chunk); -- len = btrfs_chunk_item_size(num_stripes); -- } else { -- errnum = ERR_FSYS_CORRUPT; -- return -1; -- } -- ptr += len; -- sb_ptr += len; -- cur += len; -- i++; -- } -- return 0; --} -- --/* -- * Search for a map by logical offset in the chunk tree. -- * Return 1 if map is found, otherwise return 0. -- */ --static int chunk_tree_lookup(struct map_lookup *map, -- u64 logical) --{ -- int ret; -- int slot; -- struct extent_buffer *leaf; -- struct btrfs_key key; -- struct btrfs_key found_key; -- struct btrfs_chunk *chunk; -- struct btrfs_path *path; -- -- path = btrfs_grab_path(INTERNAL_LOOKUP_POOL); -- -- key.objectid = BTRFS_FIRST_CHUNK_TREE_OBJECTID; -- key.offset = logical; -- key.type = BTRFS_CHUNK_ITEM_KEY; -- -- ret = aux_tree_lookup(BTRFS_CHUNK_ROOT, &key, path); -- if (ret < 0) -- return 0; -- leaf = &path->nodes[0]; -- slot = path->slots[0]; -- if (ret == 1) { -- WARN_ON(slot == 0); -- slot -= 1; -- } -- btrfs_item_key_to_cpu(leaf, &found_key, slot); -- if (found_key.type != BTRFS_CHUNK_ITEM_KEY) -- return 0; -- chunk = btrfs_item_ptr(leaf, slot, struct btrfs_chunk); -- return check_read_chunk(&found_key, leaf, -- chunk, map, logical); --} -- --/* -- * Btrfs logical/physical block mapper. -- * Look for an appropriate map-extent and -- * perform a translation. Return 1 on errors. -- */ --static int btrfs_map_block(u64 logical, u64 *length, -- struct btrfs_multi_bio *multi, -- int mirror_num) --{ -- struct map_lookup map; -- u64 offset; -- u64 stripe_offset; -- u64 stripe_nr; -- struct cache_extent *ce; -- int stripe_index; -- int i; -- int ret; -- -- memset(&map, 0, sizeof(map)); -- ret = sys_array_lookup(&map, logical); -- if (ret == -1) { -- errnum = ERR_FSYS_CORRUPT; -- return 1; -- } -- if (ret == 0) { -- ret = chunk_tree_lookup(&map, logical); -- if (!ret) { -- /* something should be found! */ -- errnum = ERR_FSYS_CORRUPT; -- return 1; -- } -- } -- /* do translation */ -- ce = &map.ce; -- -- offset = logical - ce->start; -- stripe_nr = offset / map.stripe_len; -- stripe_offset = stripe_nr * map.stripe_len; -- WARN_ON(offset < stripe_offset); -- -- stripe_offset = offset - stripe_offset; -- -- if (map.type & (BTRFS_BLOCK_GROUP_RAID0 | BTRFS_BLOCK_GROUP_RAID1 | -- BTRFS_BLOCK_GROUP_RAID10 | -- BTRFS_BLOCK_GROUP_DUP)) { -- *length = min_t(u64, ce->size - offset, -- map.stripe_len - stripe_offset); -- } else { -- *length = ce->size - offset; -- } -- multi->num_stripes = 1; -- stripe_index = 0; -- if (map.type & BTRFS_BLOCK_GROUP_RAID1) { -- if (mirror_num) -- stripe_index = mirror_num - 1; -- else -- stripe_index = stripe_nr % map.num_stripes; -- } else if (map.type & BTRFS_BLOCK_GROUP_RAID10) { -- int factor = map.num_stripes / map.sub_stripes; -- -- stripe_index = stripe_nr % factor; -- stripe_index *= map.sub_stripes; -- -- if (mirror_num) -- stripe_index += mirror_num - 1; -- else -- stripe_index = stripe_nr % map.sub_stripes; -- -- stripe_nr = stripe_nr / factor; -- } else if (map.type & BTRFS_BLOCK_GROUP_DUP) { -- if (mirror_num) -- stripe_index = mirror_num - 1; -- } else { -- stripe_index = stripe_nr % map.num_stripes; -- stripe_nr = stripe_nr / map.num_stripes; -- } -- WARN_ON(stripe_index >= map.num_stripes); -- -- for (i = 0; i < multi->num_stripes; i++) { -- multi->stripes[i].physical = -- map.stripes[stripe_index].physical + stripe_offset + -- stripe_nr * map.stripe_len; -- memcpy(&multi->stripes[i].dev, -- &map.stripes[stripe_index].dev, -- sizeof(struct btrfs_device)); -- stripe_index++; -- } -- return 0; --} -- --static u64 read_data_extent(u64 logical_start, u64 to_read, char *pos) --{ -- int ret; -- u64 length; -- struct btrfs_multi_bio multi; -- -- while (to_read) { -- ret = btrfs_map_block(logical_start, &length, &multi, 0); -- if (ret) { -- errnum = ERR_FSYS_CORRUPT; -- return ret; -- } -- if (length > to_read) -- length = to_read; -- disk_read_func = disk_read_hook; -- ret = btrfs_devread(multi.stripes[0].dev.drive, -- multi.stripes[0].dev.part, -- multi.stripes[0].dev.length, -- multi.stripes[0].physical >> SECTOR_BITS, -- logical_start & ((u64)SECTOR_SIZE - 1), -- length, -- pos); -- disk_read_func = NULL; -- if (!ret) -- return 1; -- btrfs_msg("BTRFS data extent: read %llu bytes\n", length); -- to_read -= length; -- pos += length; -- logical_start += length; -- } -- return 0; --} -- --static int read_extent_from_disk(struct extent_buffer *eb) --{ -- WARN_ON(eb->dev_bytenr % SECTOR_BITS); -- return btrfs_devread(eb->dev.drive, -- eb->dev.part, -- eb->dev.length, -- eb->dev_bytenr >> SECTOR_BITS, -- 0, -- eb->len, -- eb->data); --} -- --static int verify_parent_transid(struct extent_buffer *eb, u64 parent_transid) --{ -- return parent_transid && (btrfs_header_generation(eb) != parent_transid); --} -- --static int btrfs_num_copies(u64 logical, u64 len) --{ -- return 1; --} -- --static int check_tree_block(struct btrfs_root *root, struct extent_buffer *buf) --{ -- return 0; --} -- --static int csum_tree_block(struct btrfs_root *root, struct extent_buffer *buf, -- int verify) --{ -- return 0; --} -- --/* -- * Read a block of logical number @bytenr -- * from disk to buffer @eb. -- * Return 1 on success. -- */ --int read_tree_block(struct btrfs_root *root, -- struct extent_buffer *eb, -- u64 bytenr, /* logical */ -- u32 blocksize, -- u64 parent_transid, -- lookup_pool_id lpid) --{ -- int ret; -- int dev_nr; -- u64 length; -- struct btrfs_multi_bio multi; -- int mirror_num = 0; -- int num_copies; -- -- dev_nr = 0; -- length = blocksize; -- while (1) { -- ret = btrfs_map_block(bytenr, -- &length, &multi, mirror_num); -- if (ret) { -- errnum = ERR_FSYS_CORRUPT; -- return 0; -- } -- init_extent_buffer(eb, -- &multi.stripes[0].dev, -- bytenr, -- blocksize, -- multi.stripes[0].physical, -- lpid); -- -- ret = read_extent_from_disk(eb); -- if (ret && -- check_tree_block(root, eb) == 0 && -- csum_tree_block(root, eb, 1) == 0 && -- verify_parent_transid(eb, parent_transid) == 0) -- return 1; -- -- num_copies = btrfs_num_copies(eb->start, eb->len); -- if (num_copies == 1) -- break; -- mirror_num++; -- if (mirror_num > num_copies) -- break; -- } -- return 0; --} -- --/* -- * Read a child pointed by @slot node pointer -- * of @parent. Put the result to @parent. -- * Return 1 on success. -- */ --static int parent2child(struct btrfs_root *root, -- struct extent_buffer *parent, -- int slot, -- lookup_pool_id lpid) --{ -- int level; -- -- WARN_ON(slot < 0); -- WARN_ON(slot >= btrfs_header_nritems(parent)); -- -- level = btrfs_header_level(parent); -- WARN_ON(level <= 0); -- -- return read_tree_block(root, -- parent, -- btrfs_node_blockptr(parent, slot), -- btrfs_level_size(root, level - 1), -- btrfs_node_ptr_generation(parent, slot), -- lpid); --} -- --static int btrfs_comp_keys(struct btrfs_disk_key *disk, struct btrfs_key *k2) --{ -- struct btrfs_key k1; -- -- btrfs_disk_key_to_cpu(&k1, disk); -- -- if (k1.objectid > k2->objectid) -- return 1; -- if (k1.objectid < k2->objectid) -- return -1; -- if (k1.type > k2->type) -- return 1; -- if (k1.type < k2->type) -- return -1; -- if (k1.offset > k2->offset) -- return 1; -- if (k1.offset < k2->offset) -- return -1; -- return 0; --} -- --static int bin_search(struct extent_buffer *eb, unsigned long p, -- int item_size, struct btrfs_key *key, -- int max, int *slot) --{ -- int low = 0; -- int high = max; -- int mid; -- int ret; -- unsigned long offset; -- struct btrfs_disk_key *tmp; -- -- while(low < high) { -- mid = (low + high) / 2; -- offset = p + mid * item_size; -- -- tmp = (struct btrfs_disk_key *)(eb->data + offset); -- ret = btrfs_comp_keys(tmp, key); -- -- if (ret < 0) -- low = mid + 1; -- else if (ret > 0) -- high = mid; -- else { -- *slot = mid; -- return 0; -- } -- } -- *slot = low; -- return 1; --} -- --/* look for a key in a node */ --static int node_lookup(struct extent_buffer *eb, -- struct btrfs_key *key, -- int *slot) --{ -- if (btrfs_header_level(eb) == 0) { -- return bin_search(eb, -- offsetof(struct btrfs_leaf, items), -- sizeof(struct btrfs_item), -- key, btrfs_header_nritems(eb), -- slot); -- } else { -- return bin_search(eb, -- offsetof(struct btrfs_node, ptrs), -- sizeof(struct btrfs_key_ptr), -- key, btrfs_header_nritems(eb), -- slot); -- } -- return -1; --} -- --static inline int check_node(struct extent_buffer *buf, int slot) --{ -- return 0; --} -- --/* -- * Look for an item by key in read-only tree. -- * Return 0, if key was found. Return -1 on io errors. -- * -- * Preconditions: btrfs_mount already executed. -- * Postconditions: if returned value is non-negative, -- * then path[0] represents the found position in the -- * tree. All components of the @path from leaf to root -- * are valid except their data buffers (only path[0] -- * has valid attached data buffer). -- */ -- --int aux_tree_lookup(struct btrfs_root *root, -- struct btrfs_key *key, -- struct btrfs_path *path) --{ -- int ret; -- int slot = 0; -- int level; -- struct extent_buffer node; -- init_extent_buffer(&node, -- NULL, -- 0, -- 0, -- 0, -- path->lpid); -- copy_extent_buffer(&node, &root->node); -- do { -- level = btrfs_header_level(&node); -- ret = check_node(&node, slot); -- if (ret) -- return -1; -- move_extent_buffer(&path->nodes[level], -- &node); -- ret = node_lookup(&node, key, &slot); -- if (ret < 0) -- return ret; -- if (level) { -- /* -- * non-leaf, -- * jump to the next level -- */ -- if (ret && slot > 0) -- slot -= 1; -- ret = parent2child(root, &node, slot, path->lpid); -- if (ret == 0) -- return -1; -- } -- path->slots[level] = slot; -- } while (level); -- return ret; --} -- --static int readup_buffer(struct extent_buffer *buf, lookup_pool_id lpid) --{ -- buf->data = grab_lookup_cache(lpid); -- return read_extent_from_disk(buf); --} -- --/* -- * Find the next leaf in accordance with tree order; -- * walk up the tree as far as required to find it. -- * Returns 0 if something was found, or 1 if there -- * are no greater leaves. Returns < 0 on io errors. -- * -- * Preconditions: all @path components from leaf to -- * root have valid meta-data fields. path[0] has a -- * valid attached data buffer with initial leaf. -- * Postcondition: the same as above, but path[0] has -- * an attached data buffer with the next leaf. -- */ --static int btrfs_next_leaf(struct btrfs_root *root, -- struct btrfs_path *path) --{ -- int res; -- int slot; -- int level = 1; -- struct extent_buffer *buf; -- -- while(level < BTRFS_MAX_LEVEL) { -- buf = &path->nodes[level]; -- slot = path->slots[level] + 1; -- /* -- * lift data on this level -- */ -- res = readup_buffer(buf, path->lpid); -- if (!res) -- break; -- if (slot >= btrfs_header_nritems(buf)) { -- /* alas, go to parent (if any) */ -- level++; -- res = 1; -- continue; -- } -- break; -- } -- if (!res) -- return 1; -- /* -- * At this level slot points to -- * the subtree we are interested in. -- */ -- path->slots[level] = slot; -- while(level) { -- struct extent_buffer tmp; -- move_extent_buffer(&tmp, &path->nodes[level]); -- res = parent2child(root, &tmp, slot, path->lpid); -- if (res == 0) -- return -1; -- level --; -- slot = 0; -- move_extent_buffer(&path->nodes[level], &tmp); -- path->slots[level] = slot; -- } -- return 0; --} -- --/* Preconditions: path is valid, data buffer -- * is attached to leaf node. -- * Postcondition: path is updated to point to -- * the next position with respect to the tree -- * order. -- * -- * Return -1 on io errors. -- * Return 0, if next item was found. -- * Return 1, if next item wasn't found (no more items). -- */ --static int btrfs_next_item(struct btrfs_root *root, -- struct btrfs_path *path) --{ -- WARN_ON(path->slots[0] >= btrfs_header_nritems(&path->nodes[0])); -- -- path->slots[0] += 1; -- -- if (path->slots[0] < btrfs_header_nritems(&path->nodes[0])) -- return 0; -- if (coord_is_root(root, path)) -- /* no more items */ -- return 1; -- return btrfs_next_leaf(root, path); --} -- --/* -- * check if we can reuse results of previous -- * search for read operation -- */ --static int path_is_valid(struct btrfs_path *path, -- struct btrfs_key *key, u64 offset) --{ -- btrfs_item_key_to_cpu(&path->nodes[0], -- key, -- path->slots[0]); -- if (BTRFS_FILE_INFO_KEY->objectid != key->objectid) -- return 0; -- if (btrfs_key_type(key) == BTRFS_INODE_ITEM_KEY) -- return 1; -- if (btrfs_key_type(key) != BTRFS_EXTENT_DATA_KEY) -- return 0; -- return BTRFS_FILE_INFO_KEY->offset <= offset; --} -- --/* ->read_func() */ --int btrfs_read(char *buf, int len) --{ -- int ret; -- struct btrfs_root *fs_root; -- struct btrfs_path *path; -- struct btrfs_key path_key; -- u64 ioff; -- u64 bytes; -- int to_read; -- char *pos = buf; -- -- fs_root = BTRFS_FS_ROOT; -- path = btrfs_grab_path(FIRST_EXTERNAL_LOOKUP_POOL); -- -- if (!path_is_valid(path, &path_key, filepos)) { -- ret = aux_tree_lookup(fs_root, BTRFS_FILE_INFO_KEY, path); -- if (ret < 0) -- errnum = ERR_FSYS_CORRUPT; -- } -- while (!errnum) { -- struct btrfs_item *item; -- struct btrfs_file_extent_item *fi; -- u64 from; -- -- btrfs_item_key_to_cpu(&path->nodes[0], -- &path_key, -- path->slots[0]); -- if (BTRFS_FILE_INFO_KEY->objectid != path_key.objectid) -- break; -- if (btrfs_key_type(&path_key) != BTRFS_EXTENT_DATA_KEY) -- goto next; -- /* -- * current position is extent item -- */ -- item = btrfs_item_nr(&path->nodes[0], path->slots[0]); -- fi = btrfs_item_ptr(&path->nodes[0], -- path->slots[0], -- struct btrfs_file_extent_item); -- if (btrfs_file_extent_compression(&path->nodes[0], fi)) { -- btrfs_msg("Btrfs transparent compression unsupported\n"); -- errnum = ERR_BAD_FILETYPE; -- goto exit; -- } -- ioff = filepos - path_key.offset; -- -- switch (btrfs_file_extent_type(&path->nodes[0], fi)) { -- case BTRFS_FILE_EXTENT_INLINE: -- bytes = btrfs_file_extent_inline_item_len(&path-> -- nodes[0], -- item); -- if (path_key.offset + bytes < filepos) -- goto next; -- to_read = bytes - ioff; -- if (to_read > len) -- to_read = len; -- from = ioff + btrfs_file_extent_inline_start(fi); -- if (disk_read_hook != NULL) { -- disk_read_func = disk_read_hook; -- ret = btrfs_devread(path->nodes[0].dev.drive, -- path->nodes[0].dev.part, -- path->nodes[0].dev.length, -- path->nodes[0].dev_bytenr >> -- SECTOR_BITS, -- from, -- to_read, -- pos); -- disk_read_func = NULL; -- if (ret) -- goto exit; -- } else -- memcpy(pos, -- path->nodes[0].data + from, -- to_read); -- btrfs_msg("BTRFS inline extent: read %d bytes pos %d\n", -- to_read, filepos); -- break; -- case BTRFS_FILE_EXTENT_REG: -- bytes = btrfs_file_extent_num_bytes(&path->nodes[0], -- fi); -- if (path_key.offset + bytes < filepos) -- goto next; -- to_read = bytes - ioff; -- if (to_read > len) -- to_read = len; -- from = ioff + -- btrfs_file_extent_disk_bytenr(&path->nodes[0], -- fi) + -- btrfs_file_extent_offset(&path->nodes[0], -- fi); -- ret = read_data_extent(from, to_read, pos); -- if (ret) -- goto exit; -- break; -- case BTRFS_FILE_EXTENT_PREALLOC: -- btrfs_msg("Btrfs preallocated extents unsupported\n"); -- errnum = ERR_BAD_FILETYPE; -- goto exit; -- default: -- errnum = ERR_FSYS_CORRUPT; -- goto exit; -- } -- len -= to_read; -- pos += to_read; -- filepos += to_read; -- if (len == 0) -- break; -- /* not everything was read */ -- next: -- ret = btrfs_next_item(fs_root, path); -- if (ret < 0) { -- errnum = ERR_FSYS_CORRUPT; -- break; -- } -- btrfs_update_file_info(path); -- continue; -- } -- exit: -- return errnum ? 0 : pos - buf; --} -- --static int btrfs_follow_link(struct btrfs_root *root, -- struct btrfs_path *path, -- char **dirname, char *linkbuf, -- int *link_count, -- struct btrfs_inode_item *sd) --{ -- int ret; -- int len; -- char *name = *dirname; -- -- if (++(*link_count) > MAX_LINK_COUNT) { -- errnum = ERR_SYMLINK_LOOP; -- return 0; -- } -- /* calculate remaining name size */ -- filemax = btrfs_inode_size(&path->nodes[0], sd); -- for (len = 0; -- name[len] && isspace(name[len]); -- len ++); -- -- if (filemax + len > PATH_MAX - 1) { -- errnum = ERR_FILELENGTH; -- return 0; -- } -- grub_memmove(linkbuf + filemax, name, len + 1); -- btrfs_update_file_info(path); -- filepos = 0; -- /* extract symlink content */ -- while (1) { -- u64 oid = BTRFS_FILE_INFO_KEY->objectid; -- ret = btrfs_next_item(root, path); -- if (ret) -- break; -- btrfs_update_file_info(path); -- if (oid != BTRFS_FILE_INFO_KEY->objectid) -- break; -- if (btrfs_key_type(BTRFS_FILE_INFO_KEY) == -- BTRFS_EXTENT_DATA_KEY) -- goto found; -- } -- /* no target was found */ -- errnum = ERR_FSYS_CORRUPT; -- return 0; -- found: -- /* fill the rest of linkbuf with the content */ -- ret = btrfs_read(linkbuf, filemax); -- if (ret != filemax) { -- errnum = ERR_FSYS_CORRUPT; -- return 0; -- } -- return 1; --} -- --static int update_fs_root(struct btrfs_root *fs_root, -- struct btrfs_key *location) --{ -- int ret; -- struct btrfs_root *tree_root; -- -- if (location->offset != (u64)-1) -- return 0; -- tree_root = &BTRFS_FS_INFO->tree_root; -- ret = find_setup_root(tree_root, -- tree_root->nodesize, -- tree_root->leafsize, -- tree_root->sectorsize, -- tree_root->stripesize, -- location->objectid, -- fs_root, -- 0, -- 0, -- 0, -- SECOND_EXTERNAL_LOOKUP_POOL); -- if (ret) -- return ret; -- location->objectid = btrfs_root_dirid(&fs_root->root_item); -- btrfs_set_key_type(location, BTRFS_INODE_ITEM_KEY); -- location->offset = 0; -- return 0; --} -- --#ifndef STAGE1_5 --static inline void update_possibilities(void) --{ -- if (print_possibilities > 0) -- print_possibilities = -- -print_possibilities; --} --#endif -- --/* -- * Look for a directory item by name. -- * Print possibilities, if needed. -- * Postconditions: on success @sd_key points -- * to the key contained in the directory entry. -- */ --static int btrfs_de_index_by_name(struct btrfs_root *root, -- struct btrfs_path *path, -- char **dirname, -- struct btrfs_key *sd_key) --{ -- char ch; -- int ret; -- char *rest; -- struct btrfs_dir_item *di; --#ifndef STAGE1_5 -- int do_possibilities = 0; --#endif -- for (; **dirname == '/'; (*dirname)++); -- for (rest = *dirname; -- (ch = *rest) && !isspace(ch) && ch != '/'; -- rest++); -- *rest = 0; /* for substrung() */ --#ifndef STAGE1_5 -- if (print_possibilities && ch != '/') -- do_possibilities = 1; --#endif -- /* scan a directory */ -- while (1) { -- u32 total; -- u32 cur = 0; -- u32 len; -- struct btrfs_key di_key; -- struct btrfs_disk_key location; -- struct btrfs_item *item; -- -- /* extract next dir entry */ -- ret = btrfs_next_item(root, path); -- if (ret) -- break; -- item = btrfs_item_nr(&path->nodes[0], -- path->slots[0]); -- btrfs_item_key_to_cpu(&path->nodes[0], -- &di_key, -- path->slots[0]); -- if (di_key.objectid != sd_key->objectid) -- /* no more entries */ -- break; -- di = btrfs_item_ptr(&path->nodes[0], -- path->slots[0], -- struct btrfs_dir_item); -- /* -- * working around special cases: -- * btrfs doesn't maintain directory entries -- * which contain names "." and ".." -- */ -- if (!substring(".", *dirname)) { --#ifndef STAGE1_5 -- if (do_possibilities) { -- update_possibilities(); -- return 1; -- } --#endif -- goto found; -- } -- if (!substring("..", *dirname)) { -- if (di_key.type != BTRFS_INODE_REF_KEY) -- continue; -- sd_key->objectid = di_key.offset; -- btrfs_set_key_type(sd_key, BTRFS_INODE_ITEM_KEY); -- sd_key->offset = 0; --#ifndef STAGE1_5 -- if (do_possibilities) { -- update_possibilities(); -- return 1; -- } --#endif -- goto found; -- } -- if (di_key.type != BTRFS_DIR_ITEM_KEY) -- continue; -- total = btrfs_item_size(&path->nodes[0], item); -- /* scan a directory item */ -- while (cur < total) { -- char tmp; -- int result; -- char *filename; -- char *end_of_name; -- int name_len; -- int data_len; -- -- btrfs_dir_item_key(&path->nodes[0], di, &location); -- -- name_len = btrfs_dir_name_len(&path->nodes[0], di); -- data_len = btrfs_dir_data_len(&path->nodes[0], di); -- -- WARN_ON(name_len > BTRFS_NAME_LEN); -- -- filename = (char *)(path->nodes[0].data + -- (unsigned long)(di + 1)); -- end_of_name = filename + name_len; -- /* -- * working around not null-terminated -- * directory names in btrfs: just -- * a short-term overwrite of the -- * cache with the following rollback -- * of the change. -- */ -- tmp = *end_of_name; -- *end_of_name = 0; -- result = substring(*dirname, filename); -- *end_of_name = tmp; --#ifndef STAGE1_5 -- if (do_possibilities) { -- if (result <= 0) { -- update_possibilities(); -- *end_of_name = 0; -- print_a_completion(filename); -- *end_of_name = tmp; -- } -- } -- else --#endif -- if (result == 0) { -- btrfs_dir_item_key_to_cpu(&path->nodes[0], -- di, sd_key); -- goto found; -- } -- len = sizeof(*di) + name_len + data_len; -- di = (struct btrfs_dir_item *)((char *)di + len); -- cur += len; -- } -- } --#ifndef STAGE1_5 -- if (print_possibilities < 0) -- return 1; --#endif -- errnum = ERR_FILE_NOT_FOUND; -- *rest = ch; -- return 0; -- found: -- *rest = ch; -- *dirname = rest; -- return 1; --} -- --/* -- * ->dir_func(). -- * Postcondition: on a non-zero return BTRFS_FS_INFO -- * contains the latest fs_root of file's subvolume. -- * BTRFS_FS_INFO points to a subvolume of a file we -- * were trying to look up. -- * BTRFS_FILE_INFO contains info of the file we were -- * trying to look up. -- */ -- --int btrfs_dir(char *dirname) --{ -- int ret; -- int mode; -- u64 size; -- int linkcount = 0; -- char linkbuf[PATH_MAX]; -- -- struct btrfs_path *path; -- struct btrfs_root *root; -- -- struct btrfs_key sd_key; -- struct btrfs_inode_item *sd; -- struct btrfs_key parent_sd_key; -- -- root = BTRFS_FS_ROOT; -- path = btrfs_grab_path(FIRST_EXTERNAL_LOOKUP_POOL); -- -- btrfs_set_root_dir_key(&sd_key); -- while (1) { -- struct extent_buffer *leaf; -- ret = aux_tree_lookup(root, &sd_key, path); -- if (ret) -- return 0; -- leaf = &path->nodes[0]; -- sd = btrfs_item_ptr(leaf, -- path->slots[0], -- struct btrfs_inode_item); -- mode = btrfs_inode_mode(leaf, sd); -- size = btrfs_inode_size(leaf, sd); -- switch (btrfs_get_file_type(mode)) { -- case BTRFS_SYMLINK_FILE: -- ret = btrfs_follow_link(root, -- path, -- &dirname, -- linkbuf, -- &linkcount, -- sd); -- if (!ret) -- return 0; -- dirname = linkbuf; -- if (*dirname == '/') -- /* absolute name */ -- btrfs_set_root_dir_key(&sd_key); -- else -- memcpy(&sd_key, &parent_sd_key, -- sizeof(sd_key)); -- continue; -- case BTRFS_REGULAR_FILE: -- /* -- * normally we want to exit here -- */ -- if (*dirname && !isspace (*dirname)) { -- errnum = ERR_BAD_FILETYPE; -- return 0; -- } -- filepos = 0; -- filemax = btrfs_inode_size(leaf, sd); -- btrfs_update_file_info(path); -- return 1; -- case BTRFS_DIRECTORY_FILE: -- memcpy(&parent_sd_key, &sd_key, sizeof(sd_key)); -- ret = btrfs_de_index_by_name(root, -- path, -- &dirname, -- &sd_key); -- if (!ret) -- return 0; --#ifndef STAGE1_5 -- if (print_possibilities < 0) -- return 1; --#endif -- /* -- * update fs_tree: -- * subvolume stuff goes here -- */ -- ret = update_fs_root(root, &sd_key); -- if (ret) -- return 0; -- continue; -- case BTRFS_UNKNOWN_FILE: -- default: -- btrfs_msg("Btrfs: bad file type\n"); -- errnum = ERR_BAD_FILETYPE; -- return 0; -- } -- } --} -- --int btrfs_embed(int *start_sector, int needed_sectors) --{ -- int ret; -- init_btrfs_info(); -- init_btrfs_volatile_dev_cache(); -- -- ret = btrfs_find_super(BTRFS_VOLATILE_DEV_CACHE, NULL, NULL); -- if (ret) -- return 0; -- ret = btrfs_uptodate_super_copy(BTRFS_FS_INFO); -- if (ret) -- return 0; -- *start_sector = 1; /* reserve first sector for stage1 */ -- return needed_sectors <= -- ((BTRFS_SUPER_INFO_OFFSET >> SECTOR_BITS) - 1); --} --#endif /* FSYS_BTRFS */ -- --/* -- Local variables: -- c-indentation-style: "K&R" -- mode-name: "LC" -- c-basic-offset: 8 -- tab-width: 8 -- fill-column: 80 -- scroll-step: 1 -- End: --*/ --- -1.7.5.2 - diff --git a/0002-Revert-Make-changes-in-the-following-files-for-btrfs.patch b/0002-Revert-Make-changes-in-the-following-files-for-btrfs.patch deleted file mode 100644 index 5fc7e8c..0000000 --- a/0002-Revert-Make-changes-in-the-following-files-for-btrfs.patch +++ /dev/null @@ -1,302 +0,0 @@ -From ef79dc933b08e9da766cd2435a4c2338262f8619 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 6 Jun 2011 15:11:50 -0400 -Subject: [PATCH 2/2] Revert "Make changes in the following files for btrfs - support:" - -These patches don't handle get_sector_size() and such correctly, so they -break the build. - -This reverts commit 25acc2e0f4b7c9b45babadd2305e9c76c254c2ad. ---- - AUTHORS | 2 -- - INSTALL | 3 --- - configure.in | 7 ------- - docs/grub.texi | 3 +-- - grub/Makefile.am | 2 +- - stage2/Makefile.am | 39 +++++++++++++-------------------------- - stage2/builtins.c | 13 +------------ - stage2/disk_io.c | 3 --- - stage2/filesys.h | 15 ++------------- - stage2/shared.h | 7 ++----- - 10 files changed, 20 insertions(+), 74 deletions(-) - -diff --git a/AUTHORS b/AUTHORS -index 236e423..ea8cb4a 100644 ---- a/AUTHORS -+++ b/AUTHORS -@@ -41,8 +41,6 @@ Kristoffer Branemyr added VSTa filesystem support. - - Serguei Tzukanov added JFS and XFS support. - --Edward Shishkin added Btrfs support. -- - Jason Thomas added Linux DAC960 support and support for hiding/unhiding - logical partitions, and did a significant bugfix for the terminal stuff. - -diff --git a/INSTALL b/INSTALL -index a8bce4b..1ba68a6 100644 ---- a/INSTALL -+++ b/INSTALL -@@ -216,9 +216,6 @@ operates. - `--disable-xfs' - Omit the XFS support in Stage 2. - --`--disable-btrfs' -- Omit the BtrFS support in Stage 2. -- - `--disable-ufs2' - Omit the UFS2 support in Stage 2. - -diff --git a/configure.in b/configure.in -index 1580801..e9745e6 100644 ---- a/configure.in -+++ b/configure.in -@@ -362,13 +362,6 @@ if test x"$enable_xfs" != xno; then - FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_XFS=1" - fi - --AC_ARG_ENABLE(btrfs, -- [ --disable-btrfs disable BtrFS support in Stage 2]) -- --if test x"$enable_btrfs" != xno; then -- FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_BTRFS=1" --fi -- - AC_ARG_ENABLE(iso9660, - [ --disable-iso9660 disable ISO9660 support in Stage 2]) - -diff --git a/docs/grub.texi b/docs/grub.texi -index ca10751..5fd324d 100644 ---- a/docs/grub.texi -+++ b/docs/grub.texi -@@ -285,7 +285,7 @@ devices, partitions, and files in a directory depending on context. - Support multiple filesystem types transparently, plus a useful explicit - blocklist notation. The currently supported filesystem types are - @dfn{BSD FFS}, @dfn{DOS FAT16 and FAT32}, @dfn{Minix fs}, @dfn{Linux --ext2fs}, @dfn{ReiserFS}, @dfn{JFS}, @dfn{XFS}, @dfn{BtrFS}, and @dfn{VSTa -+ext2fs}, @dfn{ReiserFS}, @dfn{JFS}, @dfn{XFS}, and @dfn{VSTa - fs}. @xref{Filesystem}, for more information. - - @item Support automatic decompression -@@ -1770,7 +1770,6 @@ itself. Usually, this is put in a filesystem, but that is not required. - @itemx reiserfs_stage1_5 - @itemx vstafs_stage1_5 - @itemx xfs_stage1_5 --@itemx btrfs_stage1_5 - - These are called @dfn{Stage 1.5}, because they serve as a bridge - between @file{stage1} and @file{stage2}, that is to say, Stage 1.5 is -diff --git a/grub/Makefile.am b/grub/Makefile.am -index c569174..d4353f7 100644 ---- a/grub/Makefile.am -+++ b/grub/Makefile.am -@@ -8,7 +8,7 @@ endif - - AM_CPPFLAGS = -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \ - -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \ -- -DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 -DFSYS_BTRFS=1 \ -+ -DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 \ - -DUSE_MD5_PASSWORDS=1 -DSUPPORT_HERCULES=1 \ - $(SERIAL_FLAGS) -I$(top_srcdir)/stage2 \ - -I$(top_srcdir)/stage1 -I$(top_srcdir)/lib -diff --git a/stage2/Makefile.am b/stage2/Makefile.am -index 9dabffb..477d129 100644 ---- a/stage2/Makefile.am -+++ b/stage2/Makefile.am -@@ -22,13 +22,12 @@ endif - 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_iso9660.c \ - fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \ -- fsys_vstafs.c fsys_xfs.c fsys_btrfs.c gunzip.c md5.c serial.c \ -- sha256crypt.c sha512crypt.c stage2.c terminfo.c tparm.c graphics.c \ -- efistubs.c -+ fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c sha256crypt.c \ -+ sha512crypt.c stage2.c terminfo.c tparm.c graphics.c efistubs.c - libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \ - -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \ - -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \ -- -DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 -DFSYS_BTRFS=1 \ -+ -DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 \ - -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 - - # Stage 2 and Stage 1.5's. -@@ -41,26 +40,24 @@ EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec - if DISKLESS_SUPPORT - pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ - ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \ -- reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 \ -- xfs_stage1_5 btrfs_stage1_5 nbgrub pxegrub -+ reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 \ -+ nbgrub pxegrub - noinst_DATA = pre_stage2 start start_eltorito nbloader pxeloader diskless - noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \ - e2fs_stage1_5.exec fat_stage1_5.exec ffs_stage1_5.exec \ - iso9660_stage1_5.exec jfs_stage1_5.exec minix_stage1_5.exec \ - reiserfs_stage1_5.exec ufs2_stage1_5.exec vstafs_stage1_5.exec \ -- xfs_stage1_5.exec btrfs_stage1_5.exec nbloader.exec \ -- pxeloader.exec diskless.exec -+ xfs_stage1_5.exec nbloader.exec pxeloader.exec diskless.exec - else - pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ - ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \ -- reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 \ -- btrfs_stage1_5 -+ reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 - noinst_DATA = pre_stage2 start start_eltorito - noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \ - e2fs_stage1_5.exec fat_stage1_5.exec ffs_stage1_5.exec \ - iso9660_stage1_5.exec jfs_stage1_5.exec minix_stage1_5.exec \ - reiserfs_stage1_5.exec ufs2_stage1_5.exec vstafs_stage1_5.exec \ -- xfs_stage1_5.exec btrfs_stage1_5.exec -+ xfs_stage1_5.exec - endif - MOSTLYCLEANFILES = $(noinst_PROGRAMS) - -@@ -101,8 +98,8 @@ STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ - - libstage2_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_iso9660.c \ -- fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c \ -- fsys_xfs.c fsys_btrfs.c gunzip.c md5.c serial.c sha256crypt.c \ -+ fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \ -+ fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c sha256crypt.c \ - sha512crypt.c stage2.c terminfo.c tparm.c efistubs.c - libstage2_a_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) - -@@ -115,9 +112,9 @@ STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1 - pre_stage2_exec_SOURCES = asm.S bios.c boot.c builtins.c char_io.c \ - cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \ - fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \ -- fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c fsys_btrfs.c \ -- gunzip.c hercules.c md5.c serial.c smp-imps.c sha256crypt.c \ -- sha512crypt.c stage2.c terminfo.c tparm.c graphics.c -+ fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \ -+ hercules.c md5.c serial.c smp-imps.c sha256crypt.c sha512crypt.c \ -+ stage2.c terminfo.c tparm.c graphics.c - pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) - pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) - pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK) -@@ -256,16 +253,6 @@ xfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \ - xfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) - xfs_stage1_5_exec_LDADD = @LIBGCC@ - --# For btrfs_stage1_5 target. --btrfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \ -- disk_io.c stage1_5.c fsys_btrfs.c bios.c --btrfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_BTRFS=1 \ -- -DNO_BLOCK_FILES=1 --btrfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_BTRFS=1 \ -- -DNO_BLOCK_FILES=1 --btrfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) --btrfs_stage1_5_exec_LDADD = @LIBGCC@ -- - # 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 -diff --git a/stage2/builtins.c b/stage2/builtins.c -index 6c6e3fa..178c889 100644 ---- a/stage2/builtins.c -+++ b/stage2/builtins.c -@@ -2491,16 +2491,6 @@ install_func (char *arg, int flags) - else - #endif /* GRUB_UTIL */ - { -- /* -- * FIXME: Ugly hack. -- * Do not write to btrfs partition -- * without a help of the file system! -- */ -- if (!strcmp(fsys_table[fsys_type].name, "btrfs")) -- { -- errnum = ERR_BAD_ARGUMENT; -- goto fail; -- } - if (! devwrite (*saved_sector - part_start, 1, stage2_buffer)) - goto fail; - } -@@ -4262,8 +4252,7 @@ setup_func (char *arg, int flags) - {"minix", "/minix_stage1_5"}, - {"reiserfs", "/reiserfs_stage1_5"}, - {"vstafs", "/vstafs_stage1_5"}, -- {"xfs", "/xfs_stage1_5"}, -- {"btrfs", "/btrfs_stage1_5"} -+ {"xfs", "/xfs_stage1_5"} - }; - - tmp_drive = saved_drive; -diff --git a/stage2/disk_io.c b/stage2/disk_io.c -index e07ca77..09a0b75 100644 ---- a/stage2/disk_io.c -+++ b/stage2/disk_io.c -@@ -80,9 +80,6 @@ struct fsys_entry fsys_table[NUM_FSYS + 1] = - # ifdef FSYS_XFS - {"xfs", xfs_mount, xfs_read, xfs_dir, 0, 0}, - # endif --# ifdef FSYS_BTRFS -- {"btrfs", btrfs_mount, btrfs_read, btrfs_dir, 0, btrfs_embed}, --# endif - # ifdef FSYS_UFS2 - {"ufs2", ufs2_mount, ufs2_read, ufs2_dir, 0, ufs2_embed}, - # endif -diff --git a/stage2/filesys.h b/stage2/filesys.h -index 9d159a8..4295e45 100644 ---- a/stage2/filesys.h -+++ b/stage2/filesys.h -@@ -105,16 +105,6 @@ int xfs_dir (char *dirname); - #define FSYS_XFS_NUM 0 - #endif - --#ifdef FSYS_BTRFS --#define FSYS_BTRFS_NUM 1 --int btrfs_mount (void); --int btrfs_read (char *buf, int len); --int btrfs_dir (char *dirname); --int btrfs_embed (int *start_sector, int needed_sectors); --#else --#define FSYS_BTRFS_NUM 0 --#endif -- - #ifdef FSYS_TFTP - #define FSYS_TFTP_NUM 1 - int tftp_mount (void); -@@ -148,9 +138,8 @@ int iso9660_dir (char *dirname); - #ifndef NUM_FSYS - #define NUM_FSYS \ - (FSYS_FFS_NUM + FSYS_FAT_NUM + FSYS_EXT2FS_NUM + FSYS_MINIX_NUM \ -- + FSYS_REISERFS_NUM + FSYS_BTRFS_NUM + FSYS_VSTAFS_NUM + FSYS_JFS_NUM \ -- + FSYS_XFS_NUM + FSYS_TFTP_NUM + FSYS_EFI_TFTP_NUM + FSYS_ISO9660_NUM \ -- + FSYS_UFS2_NUM) -+ + FSYS_REISERFS_NUM + FSYS_VSTAFS_NUM + FSYS_JFS_NUM + FSYS_XFS_NUM \ -+ + FSYS_TFTP_NUM + FSYS_EFI_TFTP_NUM + FSYS_ISO9660_NUM + FSYS_UFS2_NUM) - #endif - - /* defines for the block filesystem info area */ -diff --git a/stage2/shared.h b/stage2/shared.h -index 587f9a1..7a77744 100644 ---- a/stage2/shared.h -+++ b/stage2/shared.h -@@ -215,9 +215,8 @@ extern void *grub_scratch_mem; - #define STAGE2_ID_VSTAFS_STAGE1_5 6 - #define STAGE2_ID_JFS_STAGE1_5 7 - #define STAGE2_ID_XFS_STAGE1_5 8 --#define STAGE2_ID_BTRFS_STAGE1_5 9 --#define STAGE2_ID_ISO9660_STAGE1_5 10 --#define STAGE2_ID_UFS2_STAGE1_5 11 -+#define STAGE2_ID_ISO9660_STAGE1_5 9 -+#define STAGE2_ID_UFS2_STAGE1_5 10 - - #ifndef STAGE1_5 - # define STAGE2_ID STAGE2_ID_STAGE2 -@@ -238,8 +237,6 @@ extern void *grub_scratch_mem; - # define STAGE2_ID STAGE2_ID_JFS_STAGE1_5 - # elif defined(FSYS_XFS) - # define STAGE2_ID STAGE2_ID_XFS_STAGE1_5 --# elif defined(FSYS_BTRFS) --# define STAGE2_ID STAGE2_ID_BTRFS_STAGE1_5 - # elif defined(FSYS_ISO9660) - # define STAGE2_ID STAGE2_ID_ISO9660_STAGE1_5 - # elif defined(FSYS_UFS2) --- -1.7.5.2 - diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..3eaa8f2 --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +GRUB Legacy is no longer maintained diff --git a/grub-fedora-18.patch b/grub-fedora-18.patch deleted file mode 100644 index e87c180..0000000 --- a/grub-fedora-18.patch +++ /dev/null @@ -1,48870 +0,0 @@ -From: Peter Jones " -Date: Wed Apr 18 12:53:49 EDT 2012 -Subject: [PATCH] Changes from grub-0.97 to master - -This patch is a bundle of the changes between grub-0.97 and master. -It can be reginerated from the git repository at: - -git://github.com/vathpela/grub-fedora.git - -Using the command: - -git diff grub-0.97 master - - .gitignore | 10 - ChangeLog | 48 - Makefile.am | 7 - Makefile.in | 605 --- - acinclude.m4 | 4 - aclocal.m4 | 1061 ----- - config.h.in | 106 - configure | 7639 ----------------------------------------- - configure.in | 113 - docs/.gitignore | 3 - docs/Makefile.am | 9 - docs/Makefile.in | 770 ---- - docs/grub-crypt.8 | 39 - docs/grub-install.8 | 2 - docs/grub.8 | 2 - docs/grub.info | 370 + - docs/grub.texi | 79 - docs/stamp-vti | 4 - docs/version.texi | 4 - efi/.gitignore | 7 - efi/Makefile.am | 76 - efi/byteswap.h | 37 - efi/dhcp.h | 133 - efi/efichainloader.c | 265 + - efi/eficon.c | 306 + - efi/eficore.c | 241 + - efi/efidisk.c | 801 ++++ - efi/efidp.c | 999 +++++ - efi/efigraph.c | 1501 ++++++++ - efi/efimain.c | 129 - efi/efimisc.c | 665 +++ - efi/efimm.c | 539 ++ - efi/efiserial.c | 265 + - efi/efitftp.c | 228 + - efi/efiuga.c | 982 +++++ - efi/font_8x16.c | 4638 ++++++++++++++++++++++++ - efi/graphics.c | 666 +++ - efi/graphics.h | 81 - efi/grub/.gitignore | 1 - efi/grub/efi/api.h | 1716 +++++++++ - efi/grub/efi/console_control.h | 59 - efi/grub/efi/efi.h | 85 - efi/grub/efi/eficall.h | 162 - efi/grub/efi/misc.h | 60 - efi/grub/efi/time.h | 31 - efi/grub/i386/linux.h | 226 + - efi/grub/i386/types.h | 32 - efi/grub/misc.h | 71 - efi/grub/symbol.h | 34 - efi/grub/types.h | 158 - efi/grub/x86_64/linux.h | 234 + - efi/grub/x86_64/types.h | 32 - efi/ia32/callwrap.S | 1 - efi/ia32/callwrap.c | 131 - efi/ia32/loader/bin_to_h.c | 29 - efi/ia32/loader/linux.c | 648 +++ - efi/ia32/loader/switch.S | 118 - efi/ia32/loader/switch.h | 19 - efi/ia32/reloc.c | 79 - efi/ia32/setjmp.S | 86 - efi/pxe.c | 460 ++ - efi/pxe.h | 237 + - efi/ugadebug.h | 201 + - efi/x86_64/callwrap.S | 274 + - efi/x86_64/crt0-efi.S | 63 - efi/x86_64/elf_efi.lds | 58 - efi/x86_64/loader/Makefile | 20 - efi/x86_64/loader/bin_to_h.c | 29 - efi/x86_64/loader/linux.c | 760 ++++ - efi/x86_64/loader/switch.S | 92 - efi/x86_64/loader/switch.h | 25 - efi/x86_64/reloc.c | 79 - efi/x86_64/setjmp.S | 56 - efi/xpm.c | 231 + - efi/xpm.h | 36 - grub.spec | 438 ++ - grub/.gitignore | 2 - grub/Makefile.am | 2 - grub/Makefile.in | 445 -- - grub/asmstub.c | 194 - - grub/efitftp.c | 34 - grub/main.c | 2 - lib/.gitignore | 2 - lib/Makefile.in | 416 -- - lib/device.c | 360 + - makediff | 21 - netboot/.gitignore | 2 - netboot/Makefile.in | 1091 ----- - netboot/etherboot.h | 34 - netboot/main.c | 6 - netboot/misc.c | 58 - netboot/osdep.h | 24 - stage1/.gitignore | 2 - stage1/Makefile.am | 15 - stage1/Makefile.in | 433 -- - stage1/stage1.S | 4 - stage2/.gitignore | 5 - stage2/Makefile.am | 77 - stage2/Makefile.in | 3250 ----------------- - stage2/asm.S | 284 + - stage2/boot.c | 114 - stage2/builtins.c | 1368 +++++-- - stage2/char_io.c | 609 ++- - stage2/cmdline.c | 19 - stage2/common.c | 16 - stage2/disk_io.c | 213 - - stage2/efistubs.c | 7 - stage2/efistubs.h | 8 - stage2/fat.h | 2 - stage2/filesys.h | 28 - stage2/fsys_ext2fs.c | 394 +- - stage2/fsys_fat.c | 41 - stage2/fsys_iso9660.c | 8 - stage2/fsys_jfs.c | 12 - stage2/fsys_minix.c | 10 - stage2/fsys_reiserfs.c | 44 - stage2/fsys_uefi.c | 265 + - stage2/fsys_vstafs.c | 28 - stage2/fsys_xfs.c | 22 - stage2/gpt.h | 69 - stage2/graphics.c | 573 +++ - stage2/graphics.h | 42 - stage2/gunzip.c | 15 - stage2/iso9660.h | 4 - stage2/mb_info.h | 4 - stage2/pc_slice.h | 51 - stage2/serial.c | 4 - stage2/sha256crypt.c | 723 +++ - stage2/sha512crypt.c | 795 ++++ - stage2/shared.h | 126 - stage2/smp-imps.h | 1 - stage2/stage1_5.c | 3 - stage2/stage2.c | 203 - - stage2/start.S | 13 - stage2/term.h | 35 - stage2/tparm.c | 14 - test | 1 - util/.gitignore | 7 - util/Makefile.am | 11 - util/Makefile.in | 478 -- - util/grub-crypt.in | 80 - util/grub-install.in | 334 + - 142 files changed, 26410 insertions(+), 17652 deletions(-) - -diff --git a/.gitignore b/.gitignore -new file mode 100644 -index 0000000..3d7295a ---- /dev/null -+++ b/.gitignore -@@ -0,0 +1,10 @@ -+Makefile.in -+Makefile -+configure -+aclocal.m4 -+autom4te.cache -+config.h -+config.h.in -+config.log -+config.status -+stamp-h1 -diff --git a/ChangeLog b/ChangeLog -index 0f93033..9602fb9 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -772,6 +772,18 @@ - DATA_LEN is less than or equal to MULTIBOOT_SEARCH. - Reported by Neelkanth Natu . - -+2003-03-12 Leonid Lisovskiy -+ -+ * lib/device.c (get_drive_geometry): grub utility didn't work -+ due to uninitialized 'sector_size' struct geometry member. -+ * stage1/stage1.h (GRUB_NO_DRIVE): Constant moved from -+ stage2/shared.h and its value rolled back to 0xFF for backward -+ compatibility with original grub. -+ * stage1/stage1.S (boot_drive): Use GRUB_NO_DRIVE instead of -+ constant. -+ * stage2/bios.c (get_diskinfo): Workaround for BIOS'es that -+ has CD-ROM drive number = last harddisk + 1. -+ - 2003-03-10 Yoshinori K. Okuji - - From Andrew Walrond : -@@ -816,6 +828,42 @@ - thus corrupts the stack. This is why we specify the exactly - necessary size of 0x42 bytes. - -+2003-01-28 Leonid Lisovskiy -+ -+ ISO9660 support is added. -+ -+ * stage2/fsys_iso9660.c: New file - a lot of code stolen from -+ GRUB/98 0.5. -+ * stage2/iso9660.h: Likewise. -+ * stage2/start_torito.S: New file - El Torito boot sector. -+ * stage2/Makefile.am (noinst_HEADERS): iso9660.h added. -+ (libgrub_a_SOURCES): fsys_iso9660.c added. -+ (pkgdata_DATA): iso9660_stage1_5 added. -+ (noinst_PROGRAMS): iso9660_stage1_5.exec added. -+ * configure.in (--disable-iso9660): New option. -+ * stage2/builtins.c (setup_func): Add item for ISO9660 into -+ STAGE1_5_MAP. -+ * stage2/disk_io.c (rawread): Ability to read devices with -+ sector size other than 512 added. -+ (fsys_table): Added entry for ISO9660. -+ (check_and_print_mount): Don't print error when probing -+ partition. -+ (real_open_partition): Cleanup globals after probing. -+ * stage2/filesys.h [FSYS_ISO9660]: Add entries for ISO9660 -+ functions. -+ (NUM_FSYS): Added FSYS_ISO9660_NUM. -+ * stage2/shared.h (STAGE2_ID_ISO9660_STAGE1_5): New macro. -+ (GRUB_NO_DRIVE): New constant. -+ (struct geometry): New member 'sector_size'. -+ * stage2/bios.c (get_diskinfo): Request 1.xx version of -+ int13 extensions only since higher version request can -+ destroy El Torito emulation on some BIOS'es. -+ (get_cdinfo): New function - get El Torito emulation parameters. -+ * stage2/asm.S (biosdisk_int13_extensions): pass AX, instead -+ of AH for universality, save EBX,ECX,EDX registers content to -+ avoid data corruption in caller functions. -+ (get_diskinfo_int13_extensions): Removed. -+ - 2003-01-25 Yoshinori K. Okuji - - From Steven Dick : -diff --git a/Makefile.am b/Makefile.am -index 63a9a4f..9bde872 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -1,4 +1,9 @@ - # Do not change this order if you don't know what you are doing. - AUTOMAKE_OPTIONS = 1.7 gnu --SUBDIRS = netboot stage2 stage1 lib grub util docs -+SUBDIRS = netboot stage2 stage1 lib util docs -+if PLATFORM_EFI -+SUBDIRS += efi -+else -+SUBDIRS += grub -+endif - EXTRA_DIST = BUGS MAINTENANCE -diff --git a/Makefile.in b/Makefile.in -deleted file mode 100644 -index 6652366..0000000 ---- a/Makefile.in -+++ /dev/null -@@ -1,605 +0,0 @@ --# Makefile.in generated by automake 1.9.4 from Makefile.am. --# @configure_input@ -- --# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, --# 2003, 2004 Free Software Foundation, Inc. --# This Makefile.in is free software; the Free Software Foundation --# gives unlimited permission to copy and/or distribute it, --# with or without modifications, as long as this notice is preserved. -- --# This program is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY, to the extent permitted by law; without --# even the implied warranty of MERCHANTABILITY or FITNESS FOR A --# PARTICULAR PURPOSE. -- --@SET_MAKE@ --srcdir = @srcdir@ --top_srcdir = @top_srcdir@ --VPATH = @srcdir@ --pkgdatadir = $(datadir)/@PACKAGE@ --pkglibdir = $(libdir)/@PACKAGE@ --pkgincludedir = $(includedir)/@PACKAGE@ --top_builddir = . --am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd --INSTALL = @INSTALL@ --install_sh_DATA = $(install_sh) -c -m 644 --install_sh_PROGRAM = $(install_sh) -c --install_sh_SCRIPT = $(install_sh) -c --INSTALL_HEADER = $(INSTALL_DATA) --transform = $(program_transform_name) --NORMAL_INSTALL = : --PRE_INSTALL = : --POST_INSTALL = : --NORMAL_UNINSTALL = : --PRE_UNINSTALL = : --POST_UNINSTALL = : --build_triplet = @build@ --host_triplet = @host@ --DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ -- $(srcdir)/Makefile.in $(srcdir)/config.h.in \ -- $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ -- THANKS TODO compile config.guess config.sub depcomp install-sh \ -- missing mkinstalldirs --subdir = . --ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 --am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ -- $(top_srcdir)/configure.ac --am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ -- $(ACLOCAL_M4) --am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ -- configure.lineno configure.status.lineno --mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs --CONFIG_HEADER = config.h --CONFIG_CLEAN_FILES = --SOURCES = --DIST_SOURCES = --RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ -- html-recursive info-recursive install-data-recursive \ -- install-exec-recursive install-info-recursive \ -- install-recursive installcheck-recursive installdirs-recursive \ -- pdf-recursive ps-recursive uninstall-info-recursive \ -- uninstall-recursive --ETAGS = etags --CTAGS = ctags --DIST_SUBDIRS = $(SUBDIRS) --DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) --distdir = $(PACKAGE)-$(VERSION) --top_distdir = $(distdir) --am__remove_distdir = \ -- { test ! -d $(distdir) \ -- || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ -- && rm -fr $(distdir); }; } --DIST_ARCHIVES = $(distdir).tar.gz --GZIP_ENV = --best --distuninstallcheck_listfiles = find . -type f -print --distcleancheck_listfiles = find . -type f -print --ACLOCAL = @ACLOCAL@ --AMDEP_FALSE = @AMDEP_FALSE@ --AMDEP_TRUE = @AMDEP_TRUE@ --AMTAR = @AMTAR@ --AUTOCONF = @AUTOCONF@ --AUTOHEADER = @AUTOHEADER@ --AUTOMAKE = @AUTOMAKE@ --AWK = @AWK@ --BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@ --BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@ --CC = @CC@ --CCAS = @CCAS@ --CCASFLAGS = @CCASFLAGS@ --CCDEPMODE = @CCDEPMODE@ --CFLAGS = @CFLAGS@ --CPP = @CPP@ --CPPFLAGS = @CPPFLAGS@ --CYGPATH_W = @CYGPATH_W@ --DEFS = @DEFS@ --DEPDIR = @DEPDIR@ --DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@ --DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@ --ECHO_C = @ECHO_C@ --ECHO_N = @ECHO_N@ --ECHO_T = @ECHO_T@ --EGREP = @EGREP@ --EXEEXT = @EXEEXT@ --FSYS_CFLAGS = @FSYS_CFLAGS@ --GRUB_CFLAGS = @GRUB_CFLAGS@ --GRUB_LIBS = @GRUB_LIBS@ --HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@ --HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@ --INSTALL_DATA = @INSTALL_DATA@ --INSTALL_PROGRAM = @INSTALL_PROGRAM@ --INSTALL_SCRIPT = @INSTALL_SCRIPT@ --INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ --LDFLAGS = @LDFLAGS@ --LIBOBJS = @LIBOBJS@ --LIBS = @LIBS@ --LTLIBOBJS = @LTLIBOBJS@ --MAINT = @MAINT@ --MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ --MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ --MAKEINFO = @MAKEINFO@ --NETBOOT_DRIVERS = @NETBOOT_DRIVERS@ --NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@ --NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@ --NET_CFLAGS = @NET_CFLAGS@ --NET_EXTRAFLAGS = @NET_EXTRAFLAGS@ --OBJCOPY = @OBJCOPY@ --OBJEXT = @OBJEXT@ --PACKAGE = @PACKAGE@ --PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ --PACKAGE_NAME = @PACKAGE_NAME@ --PACKAGE_STRING = @PACKAGE_STRING@ --PACKAGE_TARNAME = @PACKAGE_TARNAME@ --PACKAGE_VERSION = @PACKAGE_VERSION@ --PATH_SEPARATOR = @PATH_SEPARATOR@ --PERL = @PERL@ --RANLIB = @RANLIB@ --SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@ --SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@ --SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@ --SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@ --SET_MAKE = @SET_MAKE@ --SHELL = @SHELL@ --STAGE1_CFLAGS = @STAGE1_CFLAGS@ --STAGE2_CFLAGS = @STAGE2_CFLAGS@ --STRIP = @STRIP@ --VERSION = @VERSION@ --ac_ct_CC = @ac_ct_CC@ --ac_ct_OBJCOPY = @ac_ct_OBJCOPY@ --ac_ct_RANLIB = @ac_ct_RANLIB@ --ac_ct_STRIP = @ac_ct_STRIP@ --am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ --am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ --am__include = @am__include@ --am__leading_dot = @am__leading_dot@ --am__quote = @am__quote@ --am__tar = @am__tar@ --am__untar = @am__untar@ --bindir = @bindir@ --build = @build@ --build_alias = @build_alias@ --build_cpu = @build_cpu@ --build_os = @build_os@ --build_vendor = @build_vendor@ --datadir = @datadir@ --exec_prefix = @exec_prefix@ --host = @host@ --host_alias = @host_alias@ --host_cpu = @host_cpu@ --host_os = @host_os@ --host_vendor = @host_vendor@ --includedir = @includedir@ --infodir = @infodir@ --install_sh = @install_sh@ --libdir = @libdir@ --libexecdir = @libexecdir@ --localstatedir = @localstatedir@ --mandir = @mandir@ --mkdir_p = @mkdir_p@ --oldincludedir = @oldincludedir@ --prefix = @prefix@ --program_transform_name = @program_transform_name@ --sbindir = @sbindir@ --sharedstatedir = @sharedstatedir@ --sysconfdir = @sysconfdir@ --target_alias = @target_alias@ -- --# Do not change this order if you don't know what you are doing. --AUTOMAKE_OPTIONS = 1.7 gnu --SUBDIRS = netboot stage2 stage1 lib grub util docs --EXTRA_DIST = BUGS MAINTENANCE --all: config.h -- $(MAKE) $(AM_MAKEFLAGS) all-recursive -- --.SUFFIXES: --am--refresh: -- @: --$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) -- @for dep in $?; do \ -- case '$(am__configure_deps)' in \ -- *$$dep*) \ -- echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \ -- cd $(srcdir) && $(AUTOMAKE) --gnu \ -- && exit 0; \ -- exit 1;; \ -- esac; \ -- done; \ -- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ -- cd $(top_srcdir) && \ -- $(AUTOMAKE) --gnu Makefile --.PRECIOUS: Makefile --Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -- @case '$?' in \ -- *config.status*) \ -- echo ' $(SHELL) ./config.status'; \ -- $(SHELL) ./config.status;; \ -- *) \ -- echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ -- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ -- esac; -- --$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) -- $(SHELL) ./config.status --recheck -- --$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) -- cd $(srcdir) && $(AUTOCONF) --$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) -- cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -- --config.h: stamp-h1 -- @if test ! -f $@; then \ -- rm -f stamp-h1; \ -- $(MAKE) stamp-h1; \ -- else :; fi -- --stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status -- @rm -f stamp-h1 -- cd $(top_builddir) && $(SHELL) ./config.status config.h --$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) -- cd $(top_srcdir) && $(AUTOHEADER) -- rm -f stamp-h1 -- touch $@ -- --distclean-hdr: -- -rm -f config.h stamp-h1 --uninstall-info-am: -- --# This directory's subdirectories are mostly independent; you can cd --# into them and run `make' without going through this Makefile. --# To change the values of `make' variables: instead of editing Makefiles, --# (1) if the variable is set in `config.status', edit `config.status' --# (which will cause the Makefiles to be regenerated when you run `make'); --# (2) otherwise, pass the desired values on the `make' command line. --$(RECURSIVE_TARGETS): -- @set fnord $$MAKEFLAGS; amf=$$2; \ -- dot_seen=no; \ -- target=`echo $@ | sed s/-recursive//`; \ -- list='$(SUBDIRS)'; for subdir in $$list; do \ -- echo "Making $$target in $$subdir"; \ -- if test "$$subdir" = "."; then \ -- dot_seen=yes; \ -- local_target="$$target-am"; \ -- else \ -- local_target="$$target"; \ -- fi; \ -- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ -- done; \ -- if test "$$dot_seen" = "no"; then \ -- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ -- fi; test -z "$$fail" -- --mostlyclean-recursive clean-recursive distclean-recursive \ --maintainer-clean-recursive: -- @set fnord $$MAKEFLAGS; amf=$$2; \ -- dot_seen=no; \ -- case "$@" in \ -- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ -- *) list='$(SUBDIRS)' ;; \ -- esac; \ -- rev=''; for subdir in $$list; do \ -- if test "$$subdir" = "."; then :; else \ -- rev="$$subdir $$rev"; \ -- fi; \ -- done; \ -- rev="$$rev ."; \ -- target=`echo $@ | sed s/-recursive//`; \ -- for subdir in $$rev; do \ -- echo "Making $$target in $$subdir"; \ -- if test "$$subdir" = "."; then \ -- local_target="$$target-am"; \ -- else \ -- local_target="$$target"; \ -- fi; \ -- (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ -- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ -- done && test -z "$$fail" --tags-recursive: -- list='$(SUBDIRS)'; for subdir in $$list; do \ -- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ -- done --ctags-recursive: -- list='$(SUBDIRS)'; for subdir in $$list; do \ -- test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ -- done -- --ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- mkid -fID $$unique --tags: TAGS -- --TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ -- $(TAGS_FILES) $(LISP) -- tags=; \ -- here=`pwd`; \ -- if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ -- include_option=--etags-include; \ -- empty_fix=.; \ -- else \ -- include_option=--include; \ -- empty_fix=; \ -- fi; \ -- list='$(SUBDIRS)'; for subdir in $$list; do \ -- if test "$$subdir" = .; then :; else \ -- test ! -f $$subdir/TAGS || \ -- tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ -- fi; \ -- done; \ -- list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -- test -n "$$unique" || unique=$$empty_fix; \ -- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -- $$tags $$unique; \ -- fi --ctags: CTAGS --CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ -- $(TAGS_FILES) $(LISP) -- tags=; \ -- here=`pwd`; \ -- list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- test -z "$(CTAGS_ARGS)$$tags$$unique" \ -- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -- $$tags $$unique -- --GTAGS: -- here=`$(am__cd) $(top_builddir) && pwd` \ -- && cd $(top_srcdir) \ -- && gtags -i $(GTAGS_ARGS) $$here -- --distclean-tags: -- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -- --distdir: $(DISTFILES) -- $(am__remove_distdir) -- mkdir $(distdir) -- $(mkdir_p) $(distdir)/util -- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ -- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -- list='$(DISTFILES)'; for file in $$list; do \ -- case $$file in \ -- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ -- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ -- esac; \ -- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ -- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -- if test "$$dir" != "$$file" && test "$$dir" != "."; then \ -- dir="/$$dir"; \ -- $(mkdir_p) "$(distdir)$$dir"; \ -- else \ -- dir=''; \ -- fi; \ -- if test -d $$d/$$file; then \ -- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -- fi; \ -- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -- else \ -- test -f $(distdir)/$$file \ -- || cp -p $$d/$$file $(distdir)/$$file \ -- || exit 1; \ -- fi; \ -- done -- list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ -- if test "$$subdir" = .; then :; else \ -- test -d "$(distdir)/$$subdir" \ -- || $(mkdir_p) "$(distdir)/$$subdir" \ -- || exit 1; \ -- distdir=`$(am__cd) $(distdir) && pwd`; \ -- top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ -- (cd $$subdir && \ -- $(MAKE) $(AM_MAKEFLAGS) \ -- top_distdir="$$top_distdir" \ -- distdir="$$distdir/$$subdir" \ -- distdir) \ -- || exit 1; \ -- fi; \ -- done -- -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ -- ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ -- ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ -- ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ -- || chmod -R a+r $(distdir) --dist-gzip: distdir -- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz -- $(am__remove_distdir) -- --dist-bzip2: distdir -- tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 -- $(am__remove_distdir) -- --dist-tarZ: distdir -- tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z -- $(am__remove_distdir) -- --dist-shar: distdir -- shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz -- $(am__remove_distdir) -- --dist-zip: distdir -- -rm -f $(distdir).zip -- zip -rq $(distdir).zip $(distdir) -- $(am__remove_distdir) -- --dist dist-all: distdir -- tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz -- $(am__remove_distdir) -- --# This target untars the dist file and tries a VPATH configuration. Then --# it guarantees that the distribution is self-contained by making another --# tarfile. --distcheck: dist -- case '$(DIST_ARCHIVES)' in \ -- *.tar.gz*) \ -- GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ -- *.tar.bz2*) \ -- bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ -- *.tar.Z*) \ -- uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ -- *.shar.gz*) \ -- GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ -- *.zip*) \ -- unzip $(distdir).zip ;;\ -- esac -- chmod -R a-w $(distdir); chmod a+w $(distdir) -- mkdir $(distdir)/_build -- mkdir $(distdir)/_inst -- chmod a-w $(distdir) -- dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ -- && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ -- && cd $(distdir)/_build \ -- && ../configure --srcdir=.. --prefix="$$dc_install_base" \ -- $(DISTCHECK_CONFIGURE_FLAGS) \ -- && $(MAKE) $(AM_MAKEFLAGS) \ -- && $(MAKE) $(AM_MAKEFLAGS) dvi \ -- && $(MAKE) $(AM_MAKEFLAGS) check \ -- && $(MAKE) $(AM_MAKEFLAGS) install \ -- && $(MAKE) $(AM_MAKEFLAGS) installcheck \ -- && $(MAKE) $(AM_MAKEFLAGS) uninstall \ -- && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ -- distuninstallcheck \ -- && chmod -R a-w "$$dc_install_base" \ -- && ({ \ -- (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ -- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ -- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ -- && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ -- distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ -- } || { rm -rf "$$dc_destdir"; exit 1; }) \ -- && rm -rf "$$dc_destdir" \ -- && $(MAKE) $(AM_MAKEFLAGS) dist \ -- && rm -rf $(DIST_ARCHIVES) \ -- && $(MAKE) $(AM_MAKEFLAGS) distcleancheck -- $(am__remove_distdir) -- @(echo "$(distdir) archives ready for distribution: "; \ -- list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ -- sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' --distuninstallcheck: -- @cd $(distuninstallcheck_dir) \ -- && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ -- || { echo "ERROR: files left after uninstall:" ; \ -- if test -n "$(DESTDIR)"; then \ -- echo " (check DESTDIR support)"; \ -- fi ; \ -- $(distuninstallcheck_listfiles) ; \ -- exit 1; } >&2 --distcleancheck: distclean -- @if test '$(srcdir)' = . ; then \ -- echo "ERROR: distcleancheck can only run from a VPATH build" ; \ -- exit 1 ; \ -- fi -- @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ -- || { echo "ERROR: files left in build directory after distclean:" ; \ -- $(distcleancheck_listfiles) ; \ -- exit 1; } >&2 --check-am: all-am --check: check-recursive --all-am: Makefile config.h --installdirs: installdirs-recursive --installdirs-am: --install: install-recursive --install-exec: install-exec-recursive --install-data: install-data-recursive --uninstall: uninstall-recursive -- --install-am: all-am -- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -- --installcheck: installcheck-recursive --install-strip: -- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ -- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ -- `test -z '$(STRIP)' || \ -- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install --mostlyclean-generic: -- --clean-generic: -- --distclean-generic: -- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -- --maintainer-clean-generic: -- @echo "This command is intended for maintainers to use" -- @echo "it deletes files that may require special tools to rebuild." --clean: clean-recursive -- --clean-am: clean-generic mostlyclean-am -- --distclean: distclean-recursive -- -rm -f $(am__CONFIG_DISTCLEAN_FILES) -- -rm -f Makefile --distclean-am: clean-am distclean-generic distclean-hdr distclean-tags -- --dvi: dvi-recursive -- --dvi-am: -- --html: html-recursive -- --info: info-recursive -- --info-am: -- --install-data-am: -- --install-exec-am: -- --install-info: install-info-recursive -- --install-man: -- --installcheck-am: -- --maintainer-clean: maintainer-clean-recursive -- -rm -f $(am__CONFIG_DISTCLEAN_FILES) -- -rm -rf $(top_srcdir)/autom4te.cache -- -rm -f Makefile --maintainer-clean-am: distclean-am maintainer-clean-generic -- --mostlyclean: mostlyclean-recursive -- --mostlyclean-am: mostlyclean-generic -- --pdf: pdf-recursive -- --pdf-am: -- --ps: ps-recursive -- --ps-am: -- --uninstall-am: uninstall-info-am -- --uninstall-info: uninstall-info-recursive -- --.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ -- check-am clean clean-generic clean-recursive ctags \ -- ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \ -- dist-tarZ dist-zip distcheck distclean distclean-generic \ -- distclean-hdr distclean-recursive distclean-tags \ -- distcleancheck distdir distuninstallcheck dvi dvi-am html \ -- html-am info info-am install install-am install-data \ -- install-data-am install-exec install-exec-am install-info \ -- install-info-am install-man install-strip installcheck \ -- installcheck-am installdirs installdirs-am maintainer-clean \ -- maintainer-clean-generic maintainer-clean-recursive \ -- mostlyclean mostlyclean-generic mostlyclean-recursive pdf \ -- pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ -- uninstall-info-am -- --# Tell versions [3.59,3.63) of GNU make to not export all variables. --# Otherwise a system limit (for SysV at least) may be exceeded. --.NOEXPORT: -diff --git a/acinclude.m4 b/acinclude.m4 -index 368839c..1cf1d67 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -44,6 +44,8 @@ AC_DEFUN([grub_PROG_OBJCOPY_ABSOLUTE], - [AC_MSG_CHECKING([whether ${OBJCOPY} works for absolute addresses]) - AC_CACHE_VAL(grub_cv_prog_objcopy_absolute, - [cat > conftest.c <<\EOF -+void cmain(void); -+ - void - cmain (void) - { -@@ -57,7 +59,7 @@ else - fi - grub_cv_prog_objcopy_absolute=yes - for link_addr in 2000 8000 7C00; do -- if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr conftest.o -o conftest.exec]); then : -+ if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr -Wl,--build-id=none conftest.o -o conftest.exec]); then : - else - AC_MSG_ERROR([${CC-cc} cannot link at address $link_addr]) - fi -diff --git a/aclocal.m4 b/aclocal.m4 -deleted file mode 100644 -index aa691f6..0000000 ---- a/aclocal.m4 -+++ /dev/null -@@ -1,1061 +0,0 @@ --# generated automatically by aclocal 1.9.4 -*- Autoconf -*- -- --# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 --# Free Software Foundation, Inc. --# This file is free software; the Free Software Foundation --# gives unlimited permission to copy and/or distribute it, --# with or without modifications, as long as this notice is preserved. -- --# This program is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY, to the extent permitted by law; without --# even the implied warranty of MERCHANTABILITY or FITNESS FOR A --# PARTICULAR PURPOSE. -- --# -*- Autoconf -*- --# Copyright (C) 2002, 2003 Free Software Foundation, Inc. --# Generated from amversion.in; do not edit by hand. -- --# 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, 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., 59 Temple Place - Suite 330, Boston, MA -- --# AM_AUTOMAKE_VERSION(VERSION) --# ---------------------------- --# Automake X.Y traces this macro to ensure aclocal.m4 has been --# generated from the m4 files accompanying Automake X.Y. --AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) -- --# AM_SET_CURRENT_AUTOMAKE_VERSION --# ------------------------------- --# Call AM_AUTOMAKE_VERSION so it can be traced. --# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. --AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -- [AM_AUTOMAKE_VERSION([1.9.4])]) -- --# AM_AUX_DIR_EXPAND -- --# Copyright (C) 2001, 2003 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, 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., 59 Temple Place - Suite 330, Boston, MA --# 02111-1307, USA. -- --# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets --# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to --# `$srcdir', `$srcdir/..', or `$srcdir/../..'. --# --# Of course, Automake must honor this variable whenever it calls a --# tool from the auxiliary directory. The problem is that $srcdir (and --# therefore $ac_aux_dir as well) can be either absolute or relative, --# depending on how configure is run. This is pretty annoying, since --# it makes $ac_aux_dir quite unusable in subdirectories: in the top --# source directory, any form will work fine, but in subdirectories a --# relative path needs to be adjusted first. --# --# $ac_aux_dir/missing --# fails when called from a subdirectory if $ac_aux_dir is relative --# $top_srcdir/$ac_aux_dir/missing --# fails if $ac_aux_dir is absolute, --# fails when called from a subdirectory in a VPATH build with --# a relative $ac_aux_dir --# --# The reason of the latter failure is that $top_srcdir and $ac_aux_dir --# are both prefixed by $srcdir. In an in-source build this is usually --# harmless because $srcdir is `.', but things will broke when you --# start a VPATH build or use an absolute $srcdir. --# --# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, --# iff we strip the leading $srcdir from $ac_aux_dir. That would be: --# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` --# and then we would define $MISSING as --# MISSING="\${SHELL} $am_aux_dir/missing" --# This will work as long as MISSING is not called from configure, because --# unfortunately $(top_srcdir) has no meaning in configure. --# However there are other variables, like CC, which are often used in --# configure, and could therefore not use this "fixed" $ac_aux_dir. --# --# Another solution, used here, is to always expand $ac_aux_dir to an --# absolute PATH. The drawback is that using absolute paths prevent a --# configured tree to be moved without reconfiguration. -- --AC_DEFUN([AM_AUX_DIR_EXPAND], --[dnl Rely on autoconf to set up CDPATH properly. --AC_PREREQ([2.50])dnl --# expand $ac_aux_dir to an absolute path --am_aux_dir=`cd $ac_aux_dir && pwd` --]) -- --# AM_CONDITIONAL -*- Autoconf -*- -- --# Copyright (C) 1997, 2000, 2001, 2003, 2004 Free Software Foundation, Inc. -- --# This program is free software; you can redistribute it and/or modify --# it under the terms of the GNU General Public License as published by --# the Free Software Foundation; either version 2, 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., 59 Temple Place - Suite 330, Boston, MA --# 02111-1307, USA. -- --# serial 6 -- --# AM_CONDITIONAL(NAME, SHELL-CONDITION) --# ------------------------------------- --# Define a conditional. --AC_DEFUN([AM_CONDITIONAL], --[AC_PREREQ(2.52)dnl -- ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], -- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl --AC_SUBST([$1_TRUE]) --AC_SUBST([$1_FALSE]) --if $2; then -- $1_TRUE= -- $1_FALSE='#' --else -- $1_TRUE='#' -- $1_FALSE= --fi --AC_CONFIG_COMMANDS_PRE( --[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then -- AC_MSG_ERROR([[conditional "$1" was never defined. --Usually this means the macro was only invoked conditionally.]]) --fi])]) -- --# serial 7 -*- Autoconf -*- -- --# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 --# Free Software Foundation, Inc. -- --# This program is free software; you can redistribute it and/or modify --# it under the terms of the GNU General Public License as published by --# the Free Software Foundation; either version 2, 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., 59 Temple Place - Suite 330, Boston, MA --# 02111-1307, USA. -- -- --# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be --# written in clear, in which case automake, when reading aclocal.m4, --# will think it sees a *use*, and therefore will trigger all it's --# C support machinery. Also note that it means that autoscan, seeing --# CC etc. in the Makefile, will ask for an AC_PROG_CC use... -- -- -- --# _AM_DEPENDENCIES(NAME) --# ---------------------- --# See how the compiler implements dependency checking. --# NAME is "CC", "CXX", "GCJ", or "OBJC". --# We try a few techniques and use that to set a single cache variable. --# --# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was --# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular --# dependency, and given that the user is not expected to run this macro, --# just rely on AC_PROG_CC. --AC_DEFUN([_AM_DEPENDENCIES], --[AC_REQUIRE([AM_SET_DEPDIR])dnl --AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl --AC_REQUIRE([AM_MAKE_INCLUDE])dnl --AC_REQUIRE([AM_DEP_TRACK])dnl -- --ifelse([$1], CC, [depcc="$CC" am_compiler_list=], -- [$1], CXX, [depcc="$CXX" am_compiler_list=], -- [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], -- [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], -- [depcc="$$1" am_compiler_list=]) -- --AC_CACHE_CHECK([dependency style of $depcc], -- [am_cv_$1_dependencies_compiler_type], --[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then -- # We make a subdir and do the tests there. Otherwise we can end up -- # making bogus files that we don't know about and never remove. For -- # instance it was reported that on HP-UX the gcc test will end up -- # making a dummy file named `D' -- because `-MD' means `put the output -- # in D'. -- mkdir conftest.dir -- # Copy depcomp to subdir because otherwise we won't find it if we're -- # using a relative directory. -- cp "$am_depcomp" conftest.dir -- cd conftest.dir -- # We will build objects and dependencies in a subdirectory because -- # it helps to detect inapplicable dependency modes. For instance -- # both Tru64's cc and ICC support -MD to output dependencies as a -- # side effect of compilation, but ICC will put the dependencies in -- # the current directory while Tru64 will put them in the object -- # directory. -- mkdir sub -- -- am_cv_$1_dependencies_compiler_type=none -- if test "$am_compiler_list" = ""; then -- am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` -- fi -- for depmode in $am_compiler_list; do -- # Setup a source with many dependencies, because some compilers -- # like to wrap large dependency lists on column 80 (with \), and -- # we should not choose a depcomp mode which is confused by this. -- # -- # We need to recreate these files for each test, as the compiler may -- # overwrite some of them when testing with obscure command lines. -- # This happens at least with the AIX C compiler. -- : > sub/conftest.c -- for i in 1 2 3 4 5 6; do -- echo '#include "conftst'$i'.h"' >> sub/conftest.c -- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with -- # Solaris 8's {/usr,}/bin/sh. -- touch sub/conftst$i.h -- done -- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf -- -- case $depmode in -- nosideeffect) -- # after this tag, mechanisms are not by side-effect, so they'll -- # only be used when explicitly requested -- if test "x$enable_dependency_tracking" = xyes; then -- continue -- else -- break -- fi -- ;; -- none) break ;; -- esac -- # We check with `-c' and `-o' for the sake of the "dashmstdout" -- # mode. It turns out that the SunPro C++ compiler does not properly -- # handle `-M -o', and we need to detect this. -- if depmode=$depmode \ -- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ -- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ -- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ -- >/dev/null 2>conftest.err && -- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && -- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && -- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then -- # icc doesn't choke on unknown options, it will just issue warnings -- # or remarks (even with -Werror). So we grep stderr for any message -- # that says an option was ignored or not supported. -- # When given -MP, icc 7.0 and 7.1 complain thusly: -- # icc: Command line warning: ignoring option '-M'; no argument required -- # The diagnosis changed in icc 8.0: -- # icc: Command line remark: option '-MP' not supported -- if (grep 'ignoring option' conftest.err || -- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else -- am_cv_$1_dependencies_compiler_type=$depmode -- break -- fi -- fi -- done -- -- cd .. -- rm -rf conftest.dir --else -- am_cv_$1_dependencies_compiler_type=none --fi --]) --AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) --AM_CONDITIONAL([am__fastdep$1], [ -- test "x$enable_dependency_tracking" != xno \ -- && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) --]) -- -- --# AM_SET_DEPDIR --# ------------- --# Choose a directory name for dependency files. --# This macro is AC_REQUIREd in _AM_DEPENDENCIES --AC_DEFUN([AM_SET_DEPDIR], --[AC_REQUIRE([AM_SET_LEADING_DOT])dnl --AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl --]) -- -- --# AM_DEP_TRACK --# ------------ --AC_DEFUN([AM_DEP_TRACK], --[AC_ARG_ENABLE(dependency-tracking, --[ --disable-dependency-tracking speeds up one-time build -- --enable-dependency-tracking do not reject slow dependency extractors]) --if test "x$enable_dependency_tracking" != xno; then -- am_depcomp="$ac_aux_dir/depcomp" -- AMDEPBACKSLASH='\' --fi --AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) --AC_SUBST([AMDEPBACKSLASH]) --]) -- --# Generate code to set up dependency tracking. -*- Autoconf -*- -- --# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 --# Free Software Foundation, Inc. -- --# This program is free software; you can redistribute it and/or modify --# it under the terms of the GNU General Public License as published by --# the Free Software Foundation; either version 2, 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., 59 Temple Place - Suite 330, Boston, MA --# 02111-1307, USA. -- --#serial 2 -- --# _AM_OUTPUT_DEPENDENCY_COMMANDS --# ------------------------------ --AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], --[for mf in $CONFIG_FILES; do -- # Strip MF so we end up with the name of the file. -- mf=`echo "$mf" | sed -e 's/:.*$//'` -- # Check whether this is an Automake generated Makefile or not. -- # We used to match only the files named `Makefile.in', but -- # some people rename them; so instead we look at the file content. -- # Grep'ing the first line is not enough: some people post-process -- # each Makefile.in and add a new line on top of each file to say so. -- # So let's grep whole file. -- if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then -- dirpart=`AS_DIRNAME("$mf")` -- else -- continue -- fi -- # Extract the definition of DEPDIR, am__include, and am__quote -- # from the Makefile without running `make'. -- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` -- test -z "$DEPDIR" && continue -- am__include=`sed -n 's/^am__include = //p' < "$mf"` -- test -z "am__include" && continue -- am__quote=`sed -n 's/^am__quote = //p' < "$mf"` -- # When using ansi2knr, U may be empty or an underscore; expand it -- U=`sed -n 's/^U = //p' < "$mf"` -- # Find all dependency output files, they are included files with -- # $(DEPDIR) in their names. We invoke sed twice because it is the -- # simplest approach to changing $(DEPDIR) to its actual value in the -- # expansion. -- for file in `sed -n " -- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ -- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do -- # Make sure the directory exists. -- test -f "$dirpart/$file" && continue -- fdir=`AS_DIRNAME(["$file"])` -- AS_MKDIR_P([$dirpart/$fdir]) -- # echo "creating $dirpart/$file" -- echo '# dummy' > "$dirpart/$file" -- done --done --])# _AM_OUTPUT_DEPENDENCY_COMMANDS -- -- --# AM_OUTPUT_DEPENDENCY_COMMANDS --# ----------------------------- --# This macro should only be invoked once -- use via AC_REQUIRE. --# --# This code is only required when automatic dependency tracking --# is enabled. FIXME. This creates each `.P' file that we will --# need in order to bootstrap the dependency handling code. --AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], --[AC_CONFIG_COMMANDS([depfiles], -- [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], -- [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) --]) -- --# Do all the work for Automake. -*- Autoconf -*- -- --# This macro actually does too much some checks are only needed if --# your package does certain things. But this isn't really a big deal. -- --# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 --# Free Software Foundation, Inc. -- --# This program is free software; you can redistribute it and/or modify --# it under the terms of the GNU General Public License as published by --# the Free Software Foundation; either version 2, 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., 59 Temple Place - Suite 330, Boston, MA --# 02111-1307, USA. -- --# serial 11 -- --# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) --# AM_INIT_AUTOMAKE([OPTIONS]) --# ----------------------------------------------- --# The call with PACKAGE and VERSION arguments is the old style --# call (pre autoconf-2.50), which is being phased out. PACKAGE --# and VERSION should now be passed to AC_INIT and removed from --# the call to AM_INIT_AUTOMAKE. --# We support both call styles for the transition. After --# the next Automake release, Autoconf can make the AC_INIT --# arguments mandatory, and then we can depend on a new Autoconf --# release and drop the old call support. --AC_DEFUN([AM_INIT_AUTOMAKE], --[AC_PREREQ([2.58])dnl --dnl Autoconf wants to disallow AM_ names. We explicitly allow --dnl the ones we care about. --m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl --AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl --AC_REQUIRE([AC_PROG_INSTALL])dnl --# test to see if srcdir already configured --if test "`cd $srcdir && pwd`" != "`pwd`" && -- test -f $srcdir/config.status; then -- AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) --fi -- --# test whether we have cygpath --if test -z "$CYGPATH_W"; then -- if (cygpath --version) >/dev/null 2>/dev/null; then -- CYGPATH_W='cygpath -w' -- else -- CYGPATH_W=echo -- fi --fi --AC_SUBST([CYGPATH_W]) -- --# Define the identity of the package. --dnl Distinguish between old-style and new-style calls. --m4_ifval([$2], --[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl -- AC_SUBST([PACKAGE], [$1])dnl -- AC_SUBST([VERSION], [$2])], --[_AM_SET_OPTIONS([$1])dnl -- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl -- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl -- --_AM_IF_OPTION([no-define],, --[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) -- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl -- --# Some tools Automake needs. --AC_REQUIRE([AM_SANITY_CHECK])dnl --AC_REQUIRE([AC_ARG_PROGRAM])dnl --AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) --AM_MISSING_PROG(AUTOCONF, autoconf) --AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) --AM_MISSING_PROG(AUTOHEADER, autoheader) --AM_MISSING_PROG(MAKEINFO, makeinfo) --AM_PROG_INSTALL_SH --AM_PROG_INSTALL_STRIP --AC_REQUIRE([AM_PROG_MKDIR_P])dnl --# We need awk for the "check" target. The system "awk" is bad on --# some platforms. --AC_REQUIRE([AC_PROG_AWK])dnl --AC_REQUIRE([AC_PROG_MAKE_SET])dnl --AC_REQUIRE([AM_SET_LEADING_DOT])dnl --_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], -- [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], -- [_AM_PROG_TAR([v7])])]) --_AM_IF_OPTION([no-dependencies],, --[AC_PROVIDE_IFELSE([AC_PROG_CC], -- [_AM_DEPENDENCIES(CC)], -- [define([AC_PROG_CC], -- defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl --AC_PROVIDE_IFELSE([AC_PROG_CXX], -- [_AM_DEPENDENCIES(CXX)], -- [define([AC_PROG_CXX], -- defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl --]) --]) -- -- --# When config.status generates a header, we must update the stamp-h file. --# This file resides in the same directory as the config header --# that is generated. The stamp files are numbered to have different names. -- --# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the --# loop where config.status creates the headers, so we can generate --# our stamp files there. --AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], --[# Compute $1's index in $config_headers. --_am_stamp_count=1 --for _am_header in $config_headers :; do -- case $_am_header in -- $1 | $1:* ) -- break ;; -- * ) -- _am_stamp_count=`expr $_am_stamp_count + 1` ;; -- esac --done --echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) -- --# AM_PROG_INSTALL_SH --# ------------------ --# Define $install_sh. -- --# Copyright (C) 2001, 2003 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, 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., 59 Temple Place - Suite 330, Boston, MA --# 02111-1307, USA. -- --AC_DEFUN([AM_PROG_INSTALL_SH], --[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl --install_sh=${install_sh-"$am_aux_dir/install-sh"} --AC_SUBST(install_sh)]) -- --# -*- Autoconf -*- --# Copyright (C) 2003 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, 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., 59 Temple Place - Suite 330, Boston, MA --# 02111-1307, USA. -- --# serial 1 -- --# Check whether the underlying file-system supports filenames --# with a leading dot. For instance MS-DOS doesn't. --AC_DEFUN([AM_SET_LEADING_DOT], --[rm -rf .tst 2>/dev/null --mkdir .tst 2>/dev/null --if test -d .tst; then -- am__leading_dot=. --else -- am__leading_dot=_ --fi --rmdir .tst 2>/dev/null --AC_SUBST([am__leading_dot])]) -- --# Add --enable-maintainer-mode option to configure. --# From Jim Meyering -- --# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004 --# Free Software Foundation, Inc. -- --# This program is free software; you can redistribute it and/or modify --# it under the terms of the GNU General Public License as published by --# the Free Software Foundation; either version 2, 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., 59 Temple Place - Suite 330, Boston, MA --# 02111-1307, USA. -- --# serial 3 -- --AC_DEFUN([AM_MAINTAINER_MODE], --[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) -- dnl maintainer-mode is disabled by default -- AC_ARG_ENABLE(maintainer-mode, --[ --enable-maintainer-mode enable make rules and dependencies not useful -- (and sometimes confusing) to the casual installer], -- USE_MAINTAINER_MODE=$enableval, -- USE_MAINTAINER_MODE=no) -- AC_MSG_RESULT([$USE_MAINTAINER_MODE]) -- AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes]) -- MAINT=$MAINTAINER_MODE_TRUE -- AC_SUBST(MAINT)dnl --] --) -- --AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) -- --# Check to see how 'make' treats includes. -*- Autoconf -*- -- --# Copyright (C) 2001, 2002, 2003 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, 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., 59 Temple Place - Suite 330, Boston, MA --# 02111-1307, USA. -- --# serial 2 -- --# AM_MAKE_INCLUDE() --# ----------------- --# Check to see how make treats includes. --AC_DEFUN([AM_MAKE_INCLUDE], --[am_make=${MAKE-make} --cat > confinc << 'END' --am__doit: -- @echo done --.PHONY: am__doit --END --# If we don't find an include directive, just comment out the code. --AC_MSG_CHECKING([for style of include used by $am_make]) --am__include="#" --am__quote= --_am_result=none --# First try GNU make style include. --echo "include confinc" > confmf --# We grep out `Entering directory' and `Leaving directory' --# messages which can occur if `w' ends up in MAKEFLAGS. --# In particular we don't look at `^make:' because GNU make might --# be invoked under some other name (usually "gmake"), in which --# case it prints its new name instead of `make'. --if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then -- am__include=include -- am__quote= -- _am_result=GNU --fi --# Now try BSD make style include. --if test "$am__include" = "#"; then -- echo '.include "confinc"' > confmf -- if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then -- am__include=.include -- am__quote="\"" -- _am_result=BSD -- fi --fi --AC_SUBST([am__include]) --AC_SUBST([am__quote]) --AC_MSG_RESULT([$_am_result]) --rm -f confinc confmf --]) -- --# -*- Autoconf -*- -- -- --# Copyright (C) 1997, 1999, 2000, 2001, 2003 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, 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., 59 Temple Place - Suite 330, Boston, MA --# 02111-1307, USA. -- --# serial 3 -- --# AM_MISSING_PROG(NAME, PROGRAM) --# ------------------------------ --AC_DEFUN([AM_MISSING_PROG], --[AC_REQUIRE([AM_MISSING_HAS_RUN]) --$1=${$1-"${am_missing_run}$2"} --AC_SUBST($1)]) -- -- --# AM_MISSING_HAS_RUN --# ------------------ --# Define MISSING if not defined so far and test if it supports --run. --# If it does, set am_missing_run to use it, otherwise, to nothing. --AC_DEFUN([AM_MISSING_HAS_RUN], --[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl --test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" --# Use eval to expand $SHELL --if eval "$MISSING --run true"; then -- am_missing_run="$MISSING --run " --else -- am_missing_run= -- AC_MSG_WARN([`missing' script is too old or missing]) --fi --]) -- --# AM_PROG_MKDIR_P --# --------------- --# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. -- --# Copyright (C) 2003, 2004 Free Software Foundation, Inc. -- --# This program is free software; you can redistribute it and/or modify --# it under the terms of the GNU General Public License as published by --# the Free Software Foundation; either version 2, 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., 59 Temple Place - Suite 330, Boston, MA --# 02111-1307, USA. -- --# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories --# created by `make install' are always world readable, even if the --# installer happens to have an overly restrictive umask (e.g. 077). --# This was a mistake. There are at least two reasons why we must not --# use `-m 0755': --# - it causes special bits like SGID to be ignored, --# - it may be too restrictive (some setups expect 775 directories). --# --# Do not use -m 0755 and let people choose whatever they expect by --# setting umask. --# --# We cannot accept any implementation of `mkdir' that recognizes `-p'. --# Some implementations (such as Solaris 8's) are not thread-safe: if a --# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' --# concurrently, both version can detect that a/ is missing, but only --# one can create it and the other will error out. Consequently we --# restrict ourselves to GNU make (using the --version option ensures --# this.) --AC_DEFUN([AM_PROG_MKDIR_P], --[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then -- # We used to keeping the `.' as first argument, in order to -- # allow $(mkdir_p) to be used without argument. As in -- # $(mkdir_p) $(somedir) -- # where $(somedir) is conditionally defined. However this is wrong -- # for two reasons: -- # 1. if the package is installed by a user who cannot write `.' -- # make install will fail, -- # 2. the above comment should most certainly read -- # $(mkdir_p) $(DESTDIR)$(somedir) -- # so it does not work when $(somedir) is undefined and -- # $(DESTDIR) is not. -- # To support the latter case, we have to write -- # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), -- # so the `.' trick is pointless. -- mkdir_p='mkdir -p --' --else -- # On NextStep and OpenStep, the `mkdir' command does not -- # recognize any option. It will interpret all options as -- # directories to create, and then abort because `.' already -- # exists. -- for d in ./-p ./--version; -- do -- test -d $d && rmdir $d -- done -- # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. -- if test -f "$ac_aux_dir/mkinstalldirs"; then -- mkdir_p='$(mkinstalldirs)' -- else -- mkdir_p='$(install_sh) -d' -- fi --fi --AC_SUBST([mkdir_p])]) -- --# Helper functions for option handling. -*- Autoconf -*- -- --# Copyright (C) 2001, 2002, 2003 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, 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., 59 Temple Place - Suite 330, Boston, MA --# 02111-1307, USA. -- --# serial 2 -- --# _AM_MANGLE_OPTION(NAME) --# ----------------------- --AC_DEFUN([_AM_MANGLE_OPTION], --[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) -- --# _AM_SET_OPTION(NAME) --# ------------------------------ --# Set option NAME. Presently that only means defining a flag for this option. --AC_DEFUN([_AM_SET_OPTION], --[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) -- --# _AM_SET_OPTIONS(OPTIONS) --# ---------------------------------- --# OPTIONS is a space-separated list of Automake options. --AC_DEFUN([_AM_SET_OPTIONS], --[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) -- --# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) --# ------------------------------------------- --# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. --AC_DEFUN([_AM_IF_OPTION], --[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -- --# --# Check to make sure that the build environment is sane. --# -- --# Copyright (C) 1996, 1997, 2000, 2001, 2003 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, 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., 59 Temple Place - Suite 330, Boston, MA --# 02111-1307, USA. -- --# serial 3 -- --# AM_SANITY_CHECK --# --------------- --AC_DEFUN([AM_SANITY_CHECK], --[AC_MSG_CHECKING([whether build environment is sane]) --# Just in case --sleep 1 --echo timestamp > conftest.file --# Do `set' in a subshell so we don't clobber the current shell's --# arguments. Must try -L first in case configure is actually a --# symlink; some systems play weird games with the mod time of symlinks --# (eg FreeBSD returns the mod time of the symlink's containing --# directory). --if ( -- set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` -- if test "$[*]" = "X"; then -- # -L didn't work. -- set X `ls -t $srcdir/configure conftest.file` -- fi -- rm -f conftest.file -- if test "$[*]" != "X $srcdir/configure conftest.file" \ -- && test "$[*]" != "X conftest.file $srcdir/configure"; then -- -- # If neither matched, then we have a broken ls. This can happen -- # if, for instance, CONFIG_SHELL is bash and it inherits a -- # broken ls alias from the environment. This has actually -- # happened. Such a system could not be considered "sane". -- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken --alias in your environment]) -- fi -- -- test "$[2]" = conftest.file -- ) --then -- # Ok. -- : --else -- AC_MSG_ERROR([newly created file is older than distributed files! --Check your system clock]) --fi --AC_MSG_RESULT(yes)]) -- --# AM_PROG_INSTALL_STRIP -- --# Copyright (C) 2001, 2003 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, 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., 59 Temple Place - Suite 330, Boston, MA --# 02111-1307, USA. -- --# One issue with vendor `install' (even GNU) is that you can't --# specify the program used to strip binaries. This is especially --# annoying in cross-compiling environments, where the build's strip --# is unlikely to handle the host's binaries. --# Fortunately install-sh will honor a STRIPPROG variable, so we --# always use install-sh in `make install-strip', and initialize --# STRIPPROG with the value of the STRIP variable (set by the user). --AC_DEFUN([AM_PROG_INSTALL_STRIP], --[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl --# Installed binaries are usually stripped using `strip' when the user --# run `make install-strip'. However `strip' might not be the right --# tool to use in cross-compilation environments, therefore Automake --# will honor the `STRIP' environment variable to overrule this program. --dnl Don't test for $cross_compiling = yes, because it might be `maybe'. --if test "$cross_compiling" != no; then -- AC_CHECK_TOOL([STRIP], [strip], :) --fi --INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" --AC_SUBST([INSTALL_STRIP_PROGRAM])]) -- --# Check how to create a tarball. -*- Autoconf -*- -- --# Copyright (C) 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, 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., 59 Temple Place - Suite 330, Boston, MA --# 02111-1307, USA. -- --# serial 1 -- -- --# _AM_PROG_TAR(FORMAT) --# -------------------- --# Check how to create a tarball in format FORMAT. --# FORMAT should be one of `v7', `ustar', or `pax'. --# --# Substitute a variable $(am__tar) that is a command --# writing to stdout a FORMAT-tarball containing the directory --# $tardir. --# tardir=directory && $(am__tar) > result.tar --# --# Substitute a variable $(am__untar) that extract such --# a tarball read from stdin. --# $(am__untar) < result.tar --AC_DEFUN([_AM_PROG_TAR], --[# Always define AMTAR for backward compatibility. --AM_MISSING_PROG([AMTAR], [tar]) --m4_if([$1], [v7], -- [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], -- [m4_case([$1], [ustar],, [pax],, -- [m4_fatal([Unknown tar format])]) --AC_MSG_CHECKING([how to create a $1 tar archive]) --# Loop over all known methods to create a tar archive until one works. --_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' --_am_tools=${am_cv_prog_tar_$1-$_am_tools} --# Do not fold the above two line into one, because Tru64 sh and --# Solaris sh will not grok spaces in the rhs of `-'. --for _am_tool in $_am_tools --do -- case $_am_tool in -- gnutar) -- for _am_tar in tar gnutar gtar; -- do -- AM_RUN_LOG([$_am_tar --version]) && break -- done -- am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' -- am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' -- am__untar="$_am_tar -xf -" -- ;; -- plaintar) -- # Must skip GNU tar: if it does not support --format= it doesn't create -- # ustar tarball either. -- (tar --version) >/dev/null 2>&1 && continue -- am__tar='tar chf - "$$tardir"' -- am__tar_='tar chf - "$tardir"' -- am__untar='tar xf -' -- ;; -- pax) -- am__tar='pax -L -x $1 -w "$$tardir"' -- am__tar_='pax -L -x $1 -w "$tardir"' -- am__untar='pax -r' -- ;; -- cpio) -- am__tar='find "$$tardir" -print | cpio -o -H $1 -L' -- am__tar_='find "$tardir" -print | cpio -o -H $1 -L' -- am__untar='cpio -i -H $1 -d' -- ;; -- none) -- am__tar=false -- am__tar_=false -- am__untar=false -- ;; -- esac -- -- # If the value was cached, stop now. We just wanted to have am__tar -- # and am__untar set. -- test -n "${am_cv_prog_tar_$1}" && break -- -- # tar/untar a dummy directory, and stop if the command works -- rm -rf conftest.dir -- mkdir conftest.dir -- echo GrepMe > conftest.dir/file -- AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) -- rm -rf conftest.dir -- if test -s conftest.tar; then -- AM_RUN_LOG([$am__untar /dev/null 2>&1 && break -- fi --done --rm -rf conftest.dir -- --AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) --AC_MSG_RESULT([$am_cv_prog_tar_$1])]) --AC_SUBST([am__tar]) --AC_SUBST([am__untar]) --]) # _AM_PROG_TAR -- --m4_include([acinclude.m4]) -diff --git a/config.h.in b/config.h.in -deleted file mode 100644 -index 68d7c8c..0000000 ---- a/config.h.in -+++ /dev/null -@@ -1,106 +0,0 @@ --/* config.h.in. Generated from configure.ac by autoheader. */ -- --/* Define if an absolute indirect call/jump must NOT be prefixed with `*' */ --#undef ABSOLUTE_WITHOUT_ASTERISK -- --/* Define it to \"addr32\" or \"addr32;\" to make GAS happy */ --#undef ADDR32 -- --/* Define if you don't want to pass the mem= option to Linux */ --#undef AUTO_LINUX_MEM_OPT -- --/* Define it to \"data32\" or \"data32;\" to make GAS happy */ --#undef DATA32 -- --/* Define if C symbols get an underscore after compilation */ --#undef HAVE_ASM_USCORE -- --/* Define to 1 if you have the header file. */ --#undef HAVE_CURSES_H -- --/* Define if edata is defined */ --#undef HAVE_EDATA_SYMBOL -- --/* Define if end is defined */ --#undef HAVE_END_SYMBOL -- --/* Define to 1 if you have the header file. */ --#undef HAVE_INTTYPES_H -- --/* Define if you have a curses library */ --#undef HAVE_LIBCURSES -- --/* Define to 1 if you have the header file. */ --#undef HAVE_MEMORY_H -- --/* Define to 1 if you have the header file. */ --#undef HAVE_NCURSES_CURSES_H -- --/* Define to 1 if you have the header file. */ --#undef HAVE_NCURSES_H -- --/* Define if opendisk() in -lutil can be used */ --#undef HAVE_OPENDISK -- --/* Define if start is defined */ --#undef HAVE_START_SYMBOL -- --/* Define to 1 if you have the header file. */ --#undef HAVE_STDINT_H -- --/* Define to 1 if you have the header file. */ --#undef HAVE_STDLIB_H -- --/* Define to 1 if you have the header file. */ --#undef HAVE_STRINGS_H -- --/* Define to 1 if you have the header file. */ --#undef HAVE_STRING_H -- --/* Define to 1 if you have the header file. */ --#undef HAVE_SYS_STAT_H -- --/* Define to 1 if you have the header file. */ --#undef HAVE_SYS_TYPES_H -- --/* Define to 1 if you have the header file. */ --#undef HAVE_UNISTD_H -- --/* Define if _edata is defined */ --#undef HAVE_USCORE_EDATA_SYMBOL -- --/* Define if end is defined */ --#undef HAVE_USCORE_END_SYMBOL -- --/* Define if _start is defined */ --#undef HAVE_USCORE_START_SYMBOL -- --/* Define if __bss_start is defined */ --#undef HAVE_USCORE_USCORE_BSS_START_SYMBOL -- --/* Name of package */ --#undef PACKAGE -- --/* Define to the address where bug reports for this package should be sent. */ --#undef PACKAGE_BUGREPORT -- --/* Define to the full name of this package. */ --#undef PACKAGE_NAME -- --/* Define to the full name and version of this package. */ --#undef PACKAGE_STRING -- --/* Define to the one symbol short name of this package. */ --#undef PACKAGE_TARNAME -- --/* Define to the version of this package. */ --#undef PACKAGE_VERSION -- --/* Define if there is user specified preset menu string */ --#undef PRESET_MENU_STRING -- --/* Define to 1 if you have the ANSI C header files. */ --#undef STDC_HEADERS -- --/* Version number of package */ --#undef VERSION -diff --git a/configure b/configure -deleted file mode 100755 -index 537ab89..0000000 ---- a/configure -+++ /dev/null -@@ -1,7639 +0,0 @@ --#! /bin/sh --# Guess values for system-dependent variables and create Makefiles. --# Generated by GNU Autoconf 2.59 for GRUB 0.97. --# --# Report bugs to . --# --# Copyright (C) 2003 Free Software Foundation, Inc. --# This configure script is free software; the Free Software Foundation --# gives unlimited permission to copy, distribute and modify it. --## --------------------- ## --## M4sh Initialization. ## --## --------------------- ## -- --# Be Bourne compatible --if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then -- emulate sh -- NULLCMD=: -- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which -- # is contrary to our usage. Disable this feature. -- alias -g '${1+"$@"}'='"$@"' --elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then -- set -o posix --fi --DUALCASE=1; export DUALCASE # for MKS sh -- --# Support unset when possible. --if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then -- as_unset=unset --else -- as_unset=false --fi -- -- --# Work around bugs in pre-3.0 UWIN ksh. --$as_unset ENV MAIL MAILPATH --PS1='$ ' --PS2='> ' --PS4='+ ' -- --# NLS nuisances. --for as_var in \ -- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ -- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ -- LC_TELEPHONE LC_TIME --do -- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then -- eval $as_var=C; export $as_var -- else -- $as_unset $as_var -- fi --done -- --# Required to use basename. --if expr a : '\(a\)' >/dev/null 2>&1; then -- as_expr=expr --else -- as_expr=false --fi -- --if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then -- as_basename=basename --else -- as_basename=false --fi -- -- --# Name of the executable. --as_me=`$as_basename "$0" || --$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ -- X"$0" : 'X\(//\)$' \| \ -- X"$0" : 'X\(/\)$' \| \ -- . : '\(.\)' 2>/dev/null || --echo X/"$0" | -- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } -- /^X\/\(\/\/\)$/{ s//\1/; q; } -- /^X\/\(\/\).*/{ s//\1/; q; } -- s/.*/./; q'` -- -- --# PATH needs CR, and LINENO needs CR and PATH. --# Avoid depending upon Character Ranges. --as_cr_letters='abcdefghijklmnopqrstuvwxyz' --as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' --as_cr_Letters=$as_cr_letters$as_cr_LETTERS --as_cr_digits='0123456789' --as_cr_alnum=$as_cr_Letters$as_cr_digits -- --# The user is always right. --if test "${PATH_SEPARATOR+set}" != set; then -- echo "#! /bin/sh" >conf$$.sh -- echo "exit 0" >>conf$$.sh -- chmod +x conf$$.sh -- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then -- PATH_SEPARATOR=';' -- else -- PATH_SEPARATOR=: -- fi -- rm -f conf$$.sh --fi -- -- -- as_lineno_1=$LINENO -- as_lineno_2=$LINENO -- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` -- test "x$as_lineno_1" != "x$as_lineno_2" && -- test "x$as_lineno_3" = "x$as_lineno_2" || { -- # Find who we are. Look in the path if we contain no path at all -- # relative or not. -- case $0 in -- *[\\/]* ) as_myself=$0 ;; -- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break --done -- -- ;; -- esac -- # We did not find ourselves, most probably we were run as `sh COMMAND' -- # in which case we are not to be found in the path. -- if test "x$as_myself" = x; then -- as_myself=$0 -- fi -- if test ! -f "$as_myself"; then -- { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 -- { (exit 1); exit 1; }; } -- fi -- case $CONFIG_SHELL in -- '') -- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for as_base in sh bash ksh sh5; do -- case $as_dir in -- /*) -- if ("$as_dir/$as_base" -c ' -- as_lineno_1=$LINENO -- as_lineno_2=$LINENO -- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` -- test "x$as_lineno_1" != "x$as_lineno_2" && -- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then -- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } -- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } -- CONFIG_SHELL=$as_dir/$as_base -- export CONFIG_SHELL -- exec "$CONFIG_SHELL" "$0" ${1+"$@"} -- fi;; -- esac -- done --done --;; -- esac -- -- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO -- # uniformly replaced by the line number. The first 'sed' inserts a -- # line-number line before each line; the second 'sed' does the real -- # work. The second script uses 'N' to pair each line-number line -- # with the numbered line, and appends trailing '-' during -- # substitution so that $LINENO is not a special case at line end. -- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the -- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) -- sed '=' <$as_myself | -- sed ' -- N -- s,$,-, -- : loop -- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, -- t loop -- s,-$,, -- s,^['$as_cr_digits']*\n,, -- ' >$as_me.lineno && -- chmod +x $as_me.lineno || -- { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 -- { (exit 1); exit 1; }; } -- -- # Don't try to exec as it changes $[0], causing all sort of problems -- # (the dirname of $[0] is not the place where we might find the -- # original and so on. Autoconf is especially sensible to this). -- . ./$as_me.lineno -- # Exit status is that of the last command. -- exit --} -- -- --case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in -- *c*,-n*) ECHO_N= ECHO_C=' --' ECHO_T=' ' ;; -- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; -- *) ECHO_N= ECHO_C='\c' ECHO_T= ;; --esac -- --if expr a : '\(a\)' >/dev/null 2>&1; then -- as_expr=expr --else -- as_expr=false --fi -- --rm -f conf$$ conf$$.exe conf$$.file --echo >conf$$.file --if ln -s conf$$.file conf$$ 2>/dev/null; then -- # We could just check for DJGPP; but this test a) works b) is more generic -- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). -- if test -f conf$$.exe; then -- # Don't use ln at all; we don't have any links -- as_ln_s='cp -p' -- else -- as_ln_s='ln -s' -- fi --elif ln conf$$.file conf$$ 2>/dev/null; then -- as_ln_s=ln --else -- as_ln_s='cp -p' --fi --rm -f conf$$ conf$$.exe conf$$.file -- --if mkdir -p . 2>/dev/null; then -- as_mkdir_p=: --else -- test -d ./-p && rmdir ./-p -- as_mkdir_p=false --fi -- --as_executable_p="test -f" -- --# Sed expression to map a string onto a valid CPP name. --as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" -- --# Sed expression to map a string onto a valid variable name. --as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" -- -- --# IFS --# We need space, tab and new line, in precisely that order. --as_nl=' --' --IFS=" $as_nl" -- --# CDPATH. --$as_unset CDPATH -- -- --# Name of the host. --# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, --# so uname gets run too. --ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` -- --exec 6>&1 -- --# --# Initializations. --# --ac_default_prefix=/usr/local --ac_config_libobj_dir=. --cross_compiling=no --subdirs= --MFLAGS= --MAKEFLAGS= --SHELL=${CONFIG_SHELL-/bin/sh} -- --# Maximum number of lines to put in a shell here document. --# This variable seems obsolete. It should probably be removed, and --# only ac_max_sed_lines should be used. --: ${ac_max_here_lines=38} -- --# Identity of this package. --PACKAGE_NAME='GRUB' --PACKAGE_TARNAME='grub' --PACKAGE_VERSION='0.97' --PACKAGE_STRING='GRUB 0.97' --PACKAGE_BUGREPORT='bug-grub@gnu.org' -- --ac_unique_file="stage2/stage2.c" --# Factoring default headers for most tests. --ac_includes_default="\ --#include --#if HAVE_SYS_TYPES_H --# include --#endif --#if HAVE_SYS_STAT_H --# include --#endif --#if STDC_HEADERS --# include --# include --#else --# if HAVE_STDLIB_H --# include --# endif --#endif --#if HAVE_STRING_H --# if !STDC_HEADERS && HAVE_MEMORY_H --# include --# endif --# include --#endif --#if HAVE_STRINGS_H --# include --#endif --#if HAVE_INTTYPES_H --# include --#else --# if HAVE_STDINT_H --# include --# endif --#endif --#if HAVE_UNISTD_H --# include --#endif" -- --ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar build build_cpu build_vendor build_os host host_cpu host_vendor host_os MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT PERL CC ac_ct_CC CFLAGS LDFLAGS CPPFLAGS EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CCAS RANLIB ac_ct_RANLIB STAGE1_CFLAGS STAGE2_CFLAGS GRUB_CFLAGS OBJCOPY ac_ct_OBJCOPY GRUB_LIBS CPP EGREP NETBOOT_SUPPORT_TRUE NETBOOT_SUPPORT_FALSE DISKLESS_SUPPORT_TRUE DISKLESS_SUPPORT_FALSE HERCULES_SUPPORT_TRUE HERCULES_SUPPORT_FALSE SERIAL_SUPPORT_TRUE SERIAL_SUPPORT_FALSE SERIAL_SPEED_SIMULATION_TRUE SERIAL_SPEED_SIMULATION_FALSE BUILD_EXAMPLE_KERNEL_TRUE BUILD_EXAMPLE_KERNEL_FALSE FSYS_CFLAGS NET_CFLAGS NET_EXTRAFLAGS NETBOOT_DRIVERS CCASFLAGS LIBOBJS LTLIBOBJS' --ac_subst_files='' -- --# Initialize some variables set by options. --ac_init_help= --ac_init_version=false --# The variables have the same names as the options, with --# dashes changed to underlines. --cache_file=/dev/null --exec_prefix=NONE --no_create= --no_recursion= --prefix=NONE --program_prefix=NONE --program_suffix=NONE --program_transform_name=s,x,x, --silent= --site= --srcdir= --verbose= --x_includes=NONE --x_libraries=NONE -- --# Installation directory options. --# These are left unexpanded so users can "make install exec_prefix=/foo" --# and all the variables that are supposed to be based on exec_prefix --# by default will actually change. --# Use braces instead of parens because sh, perl, etc. also accept them. --bindir='${exec_prefix}/bin' --sbindir='${exec_prefix}/sbin' --libexecdir='${exec_prefix}/libexec' --datadir='${prefix}/share' --sysconfdir='${prefix}/etc' --sharedstatedir='${prefix}/com' --localstatedir='${prefix}/var' --libdir='${exec_prefix}/lib' --includedir='${prefix}/include' --oldincludedir='/usr/include' --infodir='${prefix}/info' --mandir='${prefix}/man' -- --ac_prev= --for ac_option --do -- # If the previous option needs an argument, assign it. -- if test -n "$ac_prev"; then -- eval "$ac_prev=\$ac_option" -- ac_prev= -- continue -- fi -- -- ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` -- -- # Accept the important Cygnus configure options, so we can diagnose typos. -- -- case $ac_option in -- -- -bindir | --bindir | --bindi | --bind | --bin | --bi) -- ac_prev=bindir ;; -- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) -- bindir=$ac_optarg ;; -- -- -build | --build | --buil | --bui | --bu) -- ac_prev=build_alias ;; -- -build=* | --build=* | --buil=* | --bui=* | --bu=*) -- build_alias=$ac_optarg ;; -- -- -cache-file | --cache-file | --cache-fil | --cache-fi \ -- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) -- ac_prev=cache_file ;; -- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ -- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) -- cache_file=$ac_optarg ;; -- -- --config-cache | -C) -- cache_file=config.cache ;; -- -- -datadir | --datadir | --datadi | --datad | --data | --dat | --da) -- ac_prev=datadir ;; -- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ -- | --da=*) -- datadir=$ac_optarg ;; -- -- -disable-* | --disable-*) -- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` -- # Reject names that are not valid shell variable names. -- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && -- { echo "$as_me: error: invalid feature name: $ac_feature" >&2 -- { (exit 1); exit 1; }; } -- ac_feature=`echo $ac_feature | sed 's/-/_/g'` -- eval "enable_$ac_feature=no" ;; -- -- -enable-* | --enable-*) -- ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` -- # Reject names that are not valid shell variable names. -- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && -- { echo "$as_me: error: invalid feature name: $ac_feature" >&2 -- { (exit 1); exit 1; }; } -- ac_feature=`echo $ac_feature | sed 's/-/_/g'` -- case $ac_option in -- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; -- *) ac_optarg=yes ;; -- esac -- eval "enable_$ac_feature='$ac_optarg'" ;; -- -- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ -- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ -- | --exec | --exe | --ex) -- ac_prev=exec_prefix ;; -- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ -- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ -- | --exec=* | --exe=* | --ex=*) -- exec_prefix=$ac_optarg ;; -- -- -gas | --gas | --ga | --g) -- # Obsolete; use --with-gas. -- with_gas=yes ;; -- -- -help | --help | --hel | --he | -h) -- ac_init_help=long ;; -- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) -- ac_init_help=recursive ;; -- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) -- ac_init_help=short ;; -- -- -host | --host | --hos | --ho) -- ac_prev=host_alias ;; -- -host=* | --host=* | --hos=* | --ho=*) -- host_alias=$ac_optarg ;; -- -- -includedir | --includedir | --includedi | --included | --include \ -- | --includ | --inclu | --incl | --inc) -- ac_prev=includedir ;; -- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ -- | --includ=* | --inclu=* | --incl=* | --inc=*) -- includedir=$ac_optarg ;; -- -- -infodir | --infodir | --infodi | --infod | --info | --inf) -- ac_prev=infodir ;; -- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) -- infodir=$ac_optarg ;; -- -- -libdir | --libdir | --libdi | --libd) -- ac_prev=libdir ;; -- -libdir=* | --libdir=* | --libdi=* | --libd=*) -- libdir=$ac_optarg ;; -- -- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ -- | --libexe | --libex | --libe) -- ac_prev=libexecdir ;; -- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ -- | --libexe=* | --libex=* | --libe=*) -- libexecdir=$ac_optarg ;; -- -- -localstatedir | --localstatedir | --localstatedi | --localstated \ -- | --localstate | --localstat | --localsta | --localst \ -- | --locals | --local | --loca | --loc | --lo) -- ac_prev=localstatedir ;; -- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ -- | --localstate=* | --localstat=* | --localsta=* | --localst=* \ -- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) -- localstatedir=$ac_optarg ;; -- -- -mandir | --mandir | --mandi | --mand | --man | --ma | --m) -- ac_prev=mandir ;; -- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) -- mandir=$ac_optarg ;; -- -- -nfp | --nfp | --nf) -- # Obsolete; use --without-fp. -- with_fp=no ;; -- -- -no-create | --no-create | --no-creat | --no-crea | --no-cre \ -- | --no-cr | --no-c | -n) -- no_create=yes ;; -- -- -no-recursion | --no-recursion | --no-recursio | --no-recursi \ -- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) -- no_recursion=yes ;; -- -- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ -- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ -- | --oldin | --oldi | --old | --ol | --o) -- ac_prev=oldincludedir ;; -- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ -- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ -- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) -- oldincludedir=$ac_optarg ;; -- -- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) -- ac_prev=prefix ;; -- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) -- prefix=$ac_optarg ;; -- -- -program-prefix | --program-prefix | --program-prefi | --program-pref \ -- | --program-pre | --program-pr | --program-p) -- ac_prev=program_prefix ;; -- -program-prefix=* | --program-prefix=* | --program-prefi=* \ -- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) -- program_prefix=$ac_optarg ;; -- -- -program-suffix | --program-suffix | --program-suffi | --program-suff \ -- | --program-suf | --program-su | --program-s) -- ac_prev=program_suffix ;; -- -program-suffix=* | --program-suffix=* | --program-suffi=* \ -- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) -- program_suffix=$ac_optarg ;; -- -- -program-transform-name | --program-transform-name \ -- | --program-transform-nam | --program-transform-na \ -- | --program-transform-n | --program-transform- \ -- | --program-transform | --program-transfor \ -- | --program-transfo | --program-transf \ -- | --program-trans | --program-tran \ -- | --progr-tra | --program-tr | --program-t) -- ac_prev=program_transform_name ;; -- -program-transform-name=* | --program-transform-name=* \ -- | --program-transform-nam=* | --program-transform-na=* \ -- | --program-transform-n=* | --program-transform-=* \ -- | --program-transform=* | --program-transfor=* \ -- | --program-transfo=* | --program-transf=* \ -- | --program-trans=* | --program-tran=* \ -- | --progr-tra=* | --program-tr=* | --program-t=*) -- program_transform_name=$ac_optarg ;; -- -- -q | -quiet | --quiet | --quie | --qui | --qu | --q \ -- | -silent | --silent | --silen | --sile | --sil) -- silent=yes ;; -- -- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) -- ac_prev=sbindir ;; -- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ -- | --sbi=* | --sb=*) -- sbindir=$ac_optarg ;; -- -- -sharedstatedir | --sharedstatedir | --sharedstatedi \ -- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ -- | --sharedst | --shareds | --shared | --share | --shar \ -- | --sha | --sh) -- ac_prev=sharedstatedir ;; -- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ -- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ -- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ -- | --sha=* | --sh=*) -- sharedstatedir=$ac_optarg ;; -- -- -site | --site | --sit) -- ac_prev=site ;; -- -site=* | --site=* | --sit=*) -- site=$ac_optarg ;; -- -- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) -- ac_prev=srcdir ;; -- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) -- srcdir=$ac_optarg ;; -- -- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ -- | --syscon | --sysco | --sysc | --sys | --sy) -- ac_prev=sysconfdir ;; -- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ -- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) -- sysconfdir=$ac_optarg ;; -- -- -target | --target | --targe | --targ | --tar | --ta | --t) -- ac_prev=target_alias ;; -- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) -- target_alias=$ac_optarg ;; -- -- -v | -verbose | --verbose | --verbos | --verbo | --verb) -- verbose=yes ;; -- -- -version | --version | --versio | --versi | --vers | -V) -- ac_init_version=: ;; -- -- -with-* | --with-*) -- ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` -- # Reject names that are not valid shell variable names. -- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && -- { echo "$as_me: error: invalid package name: $ac_package" >&2 -- { (exit 1); exit 1; }; } -- ac_package=`echo $ac_package| sed 's/-/_/g'` -- case $ac_option in -- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; -- *) ac_optarg=yes ;; -- esac -- eval "with_$ac_package='$ac_optarg'" ;; -- -- -without-* | --without-*) -- ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` -- # Reject names that are not valid shell variable names. -- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && -- { echo "$as_me: error: invalid package name: $ac_package" >&2 -- { (exit 1); exit 1; }; } -- ac_package=`echo $ac_package | sed 's/-/_/g'` -- eval "with_$ac_package=no" ;; -- -- --x) -- # Obsolete; use --with-x. -- with_x=yes ;; -- -- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ -- | --x-incl | --x-inc | --x-in | --x-i) -- ac_prev=x_includes ;; -- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ -- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) -- x_includes=$ac_optarg ;; -- -- -x-libraries | --x-libraries | --x-librarie | --x-librari \ -- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) -- ac_prev=x_libraries ;; -- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ -- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) -- x_libraries=$ac_optarg ;; -- -- -*) { echo "$as_me: error: unrecognized option: $ac_option --Try \`$0 --help' for more information." >&2 -- { (exit 1); exit 1; }; } -- ;; -- -- *=*) -- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` -- # Reject names that are not valid shell variable names. -- expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && -- { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 -- { (exit 1); exit 1; }; } -- ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` -- eval "$ac_envvar='$ac_optarg'" -- export $ac_envvar ;; -- -- *) -- # FIXME: should be removed in autoconf 3.0. -- echo "$as_me: WARNING: you should use --build, --host, --target" >&2 -- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && -- echo "$as_me: WARNING: invalid host type: $ac_option" >&2 -- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} -- ;; -- -- esac --done -- --if test -n "$ac_prev"; then -- ac_option=--`echo $ac_prev | sed 's/_/-/g'` -- { echo "$as_me: error: missing argument to $ac_option" >&2 -- { (exit 1); exit 1; }; } --fi -- --# Be sure to have absolute paths. --for ac_var in exec_prefix prefix --do -- eval ac_val=$`echo $ac_var` -- case $ac_val in -- [\\/$]* | ?:[\\/]* | NONE | '' ) ;; -- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 -- { (exit 1); exit 1; }; };; -- esac --done -- --# Be sure to have absolute paths. --for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ -- localstatedir libdir includedir oldincludedir infodir mandir --do -- eval ac_val=$`echo $ac_var` -- case $ac_val in -- [\\/$]* | ?:[\\/]* ) ;; -- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 -- { (exit 1); exit 1; }; };; -- esac --done -- --# There might be people who depend on the old broken behavior: `$host' --# used to hold the argument of --host etc. --# FIXME: To remove some day. --build=$build_alias --host=$host_alias --target=$target_alias -- --# FIXME: To remove some day. --if test "x$host_alias" != x; then -- if test "x$build_alias" = x; then -- cross_compiling=maybe -- echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. -- If a cross compiler is detected then cross compile mode will be used." >&2 -- elif test "x$build_alias" != "x$host_alias"; then -- cross_compiling=yes -- fi --fi -- --ac_tool_prefix= --test -n "$host_alias" && ac_tool_prefix=$host_alias- -- --test "$silent" = yes && exec 6>/dev/null -- -- --# Find the source files, if location was not specified. --if test -z "$srcdir"; then -- ac_srcdir_defaulted=yes -- # Try the directory containing this script, then its parent. -- ac_confdir=`(dirname "$0") 2>/dev/null || --$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -- X"$0" : 'X\(//\)[^/]' \| \ -- X"$0" : 'X\(//\)$' \| \ -- X"$0" : 'X\(/\)' \| \ -- . : '\(.\)' 2>/dev/null || --echo X"$0" | -- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } -- /^X\(\/\/\)[^/].*/{ s//\1/; q; } -- /^X\(\/\/\)$/{ s//\1/; q; } -- /^X\(\/\).*/{ s//\1/; q; } -- s/.*/./; q'` -- srcdir=$ac_confdir -- if test ! -r $srcdir/$ac_unique_file; then -- srcdir=.. -- fi --else -- ac_srcdir_defaulted=no --fi --if test ! -r $srcdir/$ac_unique_file; then -- if test "$ac_srcdir_defaulted" = yes; then -- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 -- { (exit 1); exit 1; }; } -- else -- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 -- { (exit 1); exit 1; }; } -- fi --fi --(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || -- { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 -- { (exit 1); exit 1; }; } --srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` --ac_env_build_alias_set=${build_alias+set} --ac_env_build_alias_value=$build_alias --ac_cv_env_build_alias_set=${build_alias+set} --ac_cv_env_build_alias_value=$build_alias --ac_env_host_alias_set=${host_alias+set} --ac_env_host_alias_value=$host_alias --ac_cv_env_host_alias_set=${host_alias+set} --ac_cv_env_host_alias_value=$host_alias --ac_env_target_alias_set=${target_alias+set} --ac_env_target_alias_value=$target_alias --ac_cv_env_target_alias_set=${target_alias+set} --ac_cv_env_target_alias_value=$target_alias --ac_env_CC_set=${CC+set} --ac_env_CC_value=$CC --ac_cv_env_CC_set=${CC+set} --ac_cv_env_CC_value=$CC --ac_env_CFLAGS_set=${CFLAGS+set} --ac_env_CFLAGS_value=$CFLAGS --ac_cv_env_CFLAGS_set=${CFLAGS+set} --ac_cv_env_CFLAGS_value=$CFLAGS --ac_env_LDFLAGS_set=${LDFLAGS+set} --ac_env_LDFLAGS_value=$LDFLAGS --ac_cv_env_LDFLAGS_set=${LDFLAGS+set} --ac_cv_env_LDFLAGS_value=$LDFLAGS --ac_env_CPPFLAGS_set=${CPPFLAGS+set} --ac_env_CPPFLAGS_value=$CPPFLAGS --ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} --ac_cv_env_CPPFLAGS_value=$CPPFLAGS --ac_env_CPP_set=${CPP+set} --ac_env_CPP_value=$CPP --ac_cv_env_CPP_set=${CPP+set} --ac_cv_env_CPP_value=$CPP -- --# --# Report the --help message. --# --if test "$ac_init_help" = "long"; then -- # Omit some internal or obsolete options to make the list less imposing. -- # This message is too long to be a string in the A/UX 3.1 sh. -- cat <<_ACEOF --\`configure' configures GRUB 0.97 to adapt to many kinds of systems. -- --Usage: $0 [OPTION]... [VAR=VALUE]... -- --To assign environment variables (e.g., CC, CFLAGS...), specify them as --VAR=VALUE. See below for descriptions of some of the useful variables. -- --Defaults for the options are specified in brackets. -- --Configuration: -- -h, --help display this help and exit -- --help=short display options specific to this package -- --help=recursive display the short help of all the included packages -- -V, --version display version information and exit -- -q, --quiet, --silent do not print \`checking...' messages -- --cache-file=FILE cache test results in FILE [disabled] -- -C, --config-cache alias for \`--cache-file=config.cache' -- -n, --no-create do not create output files -- --srcdir=DIR find the sources in DIR [configure dir or \`..'] -- --_ACEOF -- -- cat <<_ACEOF --Installation directories: -- --prefix=PREFIX install architecture-independent files in PREFIX -- [$ac_default_prefix] -- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX -- [PREFIX] -- --By default, \`make install' will install all the files in --\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify --an installation prefix other than \`$ac_default_prefix' using \`--prefix', --for instance \`--prefix=\$HOME'. -- --For better control, use the options below. -- --Fine tuning of the installation directories: -- --bindir=DIR user executables [EPREFIX/bin] -- --sbindir=DIR system admin executables [EPREFIX/sbin] -- --libexecdir=DIR program executables [EPREFIX/libexec] -- --datadir=DIR read-only architecture-independent data [PREFIX/share] -- --sysconfdir=DIR read-only single-machine data [PREFIX/etc] -- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] -- --localstatedir=DIR modifiable single-machine data [PREFIX/var] -- --libdir=DIR object code libraries [EPREFIX/lib] -- --includedir=DIR C header files [PREFIX/include] -- --oldincludedir=DIR C header files for non-gcc [/usr/include] -- --infodir=DIR info documentation [PREFIX/info] -- --mandir=DIR man documentation [PREFIX/man] --_ACEOF -- -- cat <<\_ACEOF -- --Program names: -- --program-prefix=PREFIX prepend PREFIX to installed program names -- --program-suffix=SUFFIX append SUFFIX to installed program names -- --program-transform-name=PROGRAM run sed PROGRAM on installed program names -- --System types: -- --build=BUILD configure for building on BUILD [guessed] -- --host=HOST cross-compile to build programs to run on HOST [BUILD] --_ACEOF --fi -- --if test -n "$ac_init_help"; then -- case $ac_init_help in -- short | recursive ) echo "Configuration of GRUB 0.97:";; -- esac -- cat <<\_ACEOF -- --Optional Features: -- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) -- --enable-FEATURE[=ARG] include FEATURE [ARG=yes] -- --enable-maintainer-mode enable make rules and dependencies not useful -- (and sometimes confusing) to the casual installer -- --disable-dependency-tracking speeds up one-time build -- --enable-dependency-tracking do not reject slow dependency extractors -- --disable-ext2fs disable ext2fs support in Stage 2 -- --disable-fat disable FAT support in Stage 2 -- --disable-ffs disable FFS support in Stage 2 -- --disable-ufs2 disable UFS2 support in Stage 2 -- --disable-minix disable Minix fs support in Stage 2 -- --disable-reiserfs disable ReiserFS support in Stage 2 -- --disable-vstafs disable VSTa FS support in Stage 2 -- --disable-jfs disable IBM JFS support in Stage 2 -- --disable-xfs disable SGI XFS support in Stage 2 -- --disable-iso9660 disable ISO9660 support in Stage 2 -- --disable-gunzip disable decompression in Stage 2 -- --disable-md5-password disable MD5 password support in Stage 2 -- --disable-packet-retransmission -- turn off packet retransmission -- --enable-pci-direct access PCI directly instead of using BIOS -- --enable-3c509 enable 3Com509 driver -- --enable-3c529 enable 3Com529 driver -- --enable-3c595 enable 3Com595 driver -- --enable-3c90x enable 3Com90x driver -- --enable-cs89x0 enable CS89x0 driver -- --enable-davicom enable Davicom driver -- --enable-depca enable DEPCA and EtherWORKS driver -- --enable-eepro enable Etherexpress Pro/10 driver -- --enable-eepro100 enable Etherexpress Pro/100 driver -- --enable-epic100 enable SMC 83c170 EPIC/100 driver -- --enable-3c507 enable 3Com507 driver -- --enable-exos205 enable EXOS205 driver -- --enable-ni5210 enable Racal-Interlan NI5210 driver -- --enable-lance enable Lance PCI PCNet/32 driver -- --enable-ne2100 enable Novell NE2100 driver -- --enable-ni6510 enable Racal-Interlan NI6510 driver -- --enable-natsemi enable NatSemi DP8381x driver -- --enable-ni5010 enable Racal-Interlan NI5010 driver -- --enable-3c503 enable 3Com503 driver -- --enable-ne enable NE1000/2000 ISA driver -- --enable-ns8390 enable NE2000 PCI driver -- --enable-wd enable WD8003/8013, SMC8216/8416 driver -- --enable-otulip enable old Tulip driver -- --enable-rtl8139 enable Realtek 8139 driver -- --enable-sis900 enable SIS 900 and SIS 7016 driver -- --enable-sk-g16 enable Schneider and Koch G16 driver -- --enable-smc9000 enable SMC9000 driver -- --enable-tiara enable Tiara driver -- --enable-tulip enable Tulip driver -- --enable-via-rhine enable Rhine-I/II driver -- --enable-w89c840 enable Winbond W89c840, Compex RL100-ATX driver -- --enable-3c503-shmem use 3c503 shared memory mode -- --enable-3c503-aui use AUI by default on 3c503 cards -- --enable-compex-rl2000-fix -- specify this if you have a Compex RL2000 PCI -- --enable-smc9000-scan=LIST -- probe for SMC9000 I/O addresses using LIST -- --enable-ne-scan=LIST probe for NE base address using LIST -- --enable-wd-default-mem=MEM -- set the default memory location for WD/SMC -- --enable-cs-scan=LIST probe for CS89x0 base address using LIST -- --enable-diskless enable diskless support -- --disable-hercules disable hercules terminal support -- --disable-serial disable serial terminal support -- --enable-serial-speed-simulation -- simulate the slowness of a serial device -- --enable-preset-menu=FILE -- preset a menu file FILE in Stage 2 -- --enable-example-kernel -- build the example Multiboot kernel -- --disable-auto-linux-mem-opt -- don't pass Linux mem= option automatically -- --Optional Packages: -- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] -- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) -- --with-binutils=DIR search the directory DIR to find binutils -- --without-curses do not use curses -- --Some influential environment variables: -- CC C compiler command -- CFLAGS C compiler flags -- LDFLAGS linker flags, e.g. -L if you have libraries in a -- nonstandard directory -- CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have -- headers in a nonstandard directory -- CPP C preprocessor -- --Use these variables to override the choices made by `configure' or to help --it to find libraries and programs with nonstandard names/locations. -- --Report bugs to . --_ACEOF --fi -- --if test "$ac_init_help" = "recursive"; then -- # If there are subdirs, report their specific --help. -- ac_popdir=`pwd` -- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue -- test -d $ac_dir || continue -- ac_builddir=. -- --if test "$ac_dir" != .; then -- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` -- # A "../" for each directory in $ac_dir_suffix. -- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` --else -- ac_dir_suffix= ac_top_builddir= --fi -- --case $srcdir in -- .) # No --srcdir option. We are building in place. -- ac_srcdir=. -- if test -z "$ac_top_builddir"; then -- ac_top_srcdir=. -- else -- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` -- fi ;; -- [\\/]* | ?:[\\/]* ) # Absolute path. -- ac_srcdir=$srcdir$ac_dir_suffix; -- ac_top_srcdir=$srcdir ;; -- *) # Relative path. -- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix -- ac_top_srcdir=$ac_top_builddir$srcdir ;; --esac -- --# Do not use `cd foo && pwd` to compute absolute paths, because --# the directories may not exist. --case `pwd` in --.) ac_abs_builddir="$ac_dir";; --*) -- case "$ac_dir" in -- .) ac_abs_builddir=`pwd`;; -- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; -- *) ac_abs_builddir=`pwd`/"$ac_dir";; -- esac;; --esac --case $ac_abs_builddir in --.) ac_abs_top_builddir=${ac_top_builddir}.;; --*) -- case ${ac_top_builddir}. in -- .) ac_abs_top_builddir=$ac_abs_builddir;; -- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; -- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; -- esac;; --esac --case $ac_abs_builddir in --.) ac_abs_srcdir=$ac_srcdir;; --*) -- case $ac_srcdir in -- .) ac_abs_srcdir=$ac_abs_builddir;; -- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; -- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; -- esac;; --esac --case $ac_abs_builddir in --.) ac_abs_top_srcdir=$ac_top_srcdir;; --*) -- case $ac_top_srcdir in -- .) ac_abs_top_srcdir=$ac_abs_builddir;; -- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; -- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; -- esac;; --esac -- -- cd $ac_dir -- # Check for guested configure; otherwise get Cygnus style configure. -- if test -f $ac_srcdir/configure.gnu; then -- echo -- $SHELL $ac_srcdir/configure.gnu --help=recursive -- elif test -f $ac_srcdir/configure; then -- echo -- $SHELL $ac_srcdir/configure --help=recursive -- elif test -f $ac_srcdir/configure.ac || -- test -f $ac_srcdir/configure.in; then -- echo -- $ac_configure --help -- else -- echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 -- fi -- cd $ac_popdir -- done --fi -- --test -n "$ac_init_help" && exit 0 --if $ac_init_version; then -- cat <<\_ACEOF --GRUB configure 0.97 --generated by GNU Autoconf 2.59 -- --Copyright (C) 2003 Free Software Foundation, Inc. --This configure script is free software; the Free Software Foundation --gives unlimited permission to copy, distribute and modify it. --_ACEOF -- exit 0 --fi --exec 5>config.log --cat >&5 <<_ACEOF --This file contains any messages produced by compilers while --running configure, to aid debugging if configure makes a mistake. -- --It was created by GRUB $as_me 0.97, which was --generated by GNU Autoconf 2.59. Invocation command line was -- -- $ $0 $@ -- --_ACEOF --{ --cat <<_ASUNAME --## --------- ## --## Platform. ## --## --------- ## -- --hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` --uname -m = `(uname -m) 2>/dev/null || echo unknown` --uname -r = `(uname -r) 2>/dev/null || echo unknown` --uname -s = `(uname -s) 2>/dev/null || echo unknown` --uname -v = `(uname -v) 2>/dev/null || echo unknown` -- --/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` --/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` -- --/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` --/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` --/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` --hostinfo = `(hostinfo) 2>/dev/null || echo unknown` --/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` --/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` --/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` -- --_ASUNAME -- --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- echo "PATH: $as_dir" --done -- --} >&5 -- --cat >&5 <<_ACEOF -- -- --## ----------- ## --## Core tests. ## --## ----------- ## -- --_ACEOF -- -- --# Keep a trace of the command line. --# Strip out --no-create and --no-recursion so they do not pile up. --# Strip out --silent because we don't want to record it for future runs. --# Also quote any args containing shell meta-characters. --# Make two passes to allow for proper duplicate-argument suppression. --ac_configure_args= --ac_configure_args0= --ac_configure_args1= --ac_sep= --ac_must_keep_next=false --for ac_pass in 1 2 --do -- for ac_arg -- do -- case $ac_arg in -- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -- -q | -quiet | --quiet | --quie | --qui | --qu | --q \ -- | -silent | --silent | --silen | --sile | --sil) -- continue ;; -- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) -- ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; -- esac -- case $ac_pass in -- 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; -- 2) -- ac_configure_args1="$ac_configure_args1 '$ac_arg'" -- if test $ac_must_keep_next = true; then -- ac_must_keep_next=false # Got value, back to normal. -- else -- case $ac_arg in -- *=* | --config-cache | -C | -disable-* | --disable-* \ -- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ -- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ -- | -with-* | --with-* | -without-* | --without-* | --x) -- case "$ac_configure_args0 " in -- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; -- esac -- ;; -- -* ) ac_must_keep_next=true ;; -- esac -- fi -- ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" -- # Get rid of the leading space. -- ac_sep=" " -- ;; -- esac -- done --done --$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } --$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } -- --# When interrupted or exit'd, cleanup temporary files, and complete --# config.log. We remove comments because anyway the quotes in there --# would cause problems or look ugly. --# WARNING: Be sure not to use single quotes in there, as some shells, --# such as our DU 5.0 friend, will then `close' the trap. --trap 'exit_status=$? -- # Save into config.log some information that might help in debugging. -- { -- echo -- -- cat <<\_ASBOX --## ---------------- ## --## Cache variables. ## --## ---------------- ## --_ASBOX -- echo -- # The following way of writing the cache mishandles newlines in values, --{ -- (set) 2>&1 | -- case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in -- *ac_space=\ *) -- sed -n \ -- "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; -- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" -- ;; -- *) -- sed -n \ -- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" -- ;; -- esac; --} -- echo -- -- cat <<\_ASBOX --## ----------------- ## --## Output variables. ## --## ----------------- ## --_ASBOX -- echo -- for ac_var in $ac_subst_vars -- do -- eval ac_val=$`echo $ac_var` -- echo "$ac_var='"'"'$ac_val'"'"'" -- done | sort -- echo -- -- if test -n "$ac_subst_files"; then -- cat <<\_ASBOX --## ------------- ## --## Output files. ## --## ------------- ## --_ASBOX -- echo -- for ac_var in $ac_subst_files -- do -- eval ac_val=$`echo $ac_var` -- echo "$ac_var='"'"'$ac_val'"'"'" -- done | sort -- echo -- fi -- -- if test -s confdefs.h; then -- cat <<\_ASBOX --## ----------- ## --## confdefs.h. ## --## ----------- ## --_ASBOX -- echo -- sed "/^$/d" confdefs.h | sort -- echo -- fi -- test "$ac_signal" != 0 && -- echo "$as_me: caught signal $ac_signal" -- echo "$as_me: exit $exit_status" -- } >&5 -- rm -f core *.core && -- rm -rf conftest* confdefs* conf$$* $ac_clean_files && -- exit $exit_status -- ' 0 --for ac_signal in 1 2 13 15; do -- trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal --done --ac_signal=0 -- --# confdefs.h avoids OS command line length limits that DEFS can exceed. --rm -rf conftest* confdefs.h --# AIX cpp loses on an empty file, so make sure it contains at least a newline. --echo >confdefs.h -- --# Predefined preprocessor variables. -- --cat >>confdefs.h <<_ACEOF --#define PACKAGE_NAME "$PACKAGE_NAME" --_ACEOF -- -- --cat >>confdefs.h <<_ACEOF --#define PACKAGE_TARNAME "$PACKAGE_TARNAME" --_ACEOF -- -- --cat >>confdefs.h <<_ACEOF --#define PACKAGE_VERSION "$PACKAGE_VERSION" --_ACEOF -- -- --cat >>confdefs.h <<_ACEOF --#define PACKAGE_STRING "$PACKAGE_STRING" --_ACEOF -- -- --cat >>confdefs.h <<_ACEOF --#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" --_ACEOF -- -- --# Let the site file select an alternate cache file if it wants to. --# Prefer explicitly selected file to automatically selected ones. --if test -z "$CONFIG_SITE"; then -- if test "x$prefix" != xNONE; then -- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" -- else -- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" -- fi --fi --for ac_site_file in $CONFIG_SITE; do -- if test -r "$ac_site_file"; then -- { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 --echo "$as_me: loading site script $ac_site_file" >&6;} -- sed 's/^/| /' "$ac_site_file" >&5 -- . "$ac_site_file" -- fi --done -- --if test -r "$cache_file"; then -- # Some versions of bash will fail to source /dev/null (special -- # files actually), so we avoid doing that. -- if test -f "$cache_file"; then -- { echo "$as_me:$LINENO: loading cache $cache_file" >&5 --echo "$as_me: loading cache $cache_file" >&6;} -- case $cache_file in -- [\\/]* | ?:[\\/]* ) . $cache_file;; -- *) . ./$cache_file;; -- esac -- fi --else -- { echo "$as_me:$LINENO: creating cache $cache_file" >&5 --echo "$as_me: creating cache $cache_file" >&6;} -- >$cache_file --fi -- --# Check that the precious variables saved in the cache have kept the same --# value. --ac_cache_corrupted=false --for ac_var in `(set) 2>&1 | -- sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do -- eval ac_old_set=\$ac_cv_env_${ac_var}_set -- eval ac_new_set=\$ac_env_${ac_var}_set -- eval ac_old_val="\$ac_cv_env_${ac_var}_value" -- eval ac_new_val="\$ac_env_${ac_var}_value" -- case $ac_old_set,$ac_new_set in -- set,) -- { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 --echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} -- ac_cache_corrupted=: ;; -- ,set) -- { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 --echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} -- ac_cache_corrupted=: ;; -- ,);; -- *) -- if test "x$ac_old_val" != "x$ac_new_val"; then -- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 --echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} -- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 --echo "$as_me: former value: $ac_old_val" >&2;} -- { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 --echo "$as_me: current value: $ac_new_val" >&2;} -- ac_cache_corrupted=: -- fi;; -- esac -- # Pass precious variables to config.status. -- if test "$ac_new_set" = set; then -- case $ac_new_val in -- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) -- ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; -- *) ac_arg=$ac_var=$ac_new_val ;; -- esac -- case " $ac_configure_args " in -- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. -- *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; -- esac -- fi --done --if $ac_cache_corrupted; then -- { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 --echo "$as_me: error: changes in the environment can compromise the build" >&2;} -- { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 --echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} -- { (exit 1); exit 1; }; } --fi -- --ac_ext=c --ac_cpp='$CPP $CPPFLAGS' --ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' --ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' --ac_compiler_gnu=$ac_cv_c_compiler_gnu -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- ac_config_headers="$ac_config_headers config.h" -- --am__api_version="1.9" --ac_aux_dir= --for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do -- if test -f $ac_dir/install-sh; then -- ac_aux_dir=$ac_dir -- ac_install_sh="$ac_aux_dir/install-sh -c" -- break -- elif test -f $ac_dir/install.sh; then -- ac_aux_dir=$ac_dir -- ac_install_sh="$ac_aux_dir/install.sh -c" -- break -- elif test -f $ac_dir/shtool; then -- ac_aux_dir=$ac_dir -- ac_install_sh="$ac_aux_dir/shtool install -c" -- break -- fi --done --if test -z "$ac_aux_dir"; then -- { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 --echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} -- { (exit 1); exit 1; }; } --fi --ac_config_guess="$SHELL $ac_aux_dir/config.guess" --ac_config_sub="$SHELL $ac_aux_dir/config.sub" --ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. -- --# Find a good install program. We prefer a C program (faster), --# so one script is as good as another. But avoid the broken or --# incompatible versions: --# SysV /etc/install, /usr/sbin/install --# SunOS /usr/etc/install --# IRIX /sbin/install --# AIX /bin/install --# AmigaOS /C/install, which installs bootblocks on floppy discs --# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag --# AFS /usr/afsws/bin/install, which mishandles nonexistent args --# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" --# OS/2's system install, which has a completely different semantic --# ./install, which can be erroneously created by make from ./install.sh. --echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 --echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 --if test -z "$INSTALL"; then --if test "${ac_cv_path_install+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- # Account for people who put trailing slashes in PATH elements. --case $as_dir/ in -- ./ | .// | /cC/* | \ -- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ -- ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ -- /usr/ucb/* ) ;; -- *) -- # OSF1 and SCO ODT 3.0 have their own names for install. -- # Don't use installbsd from OSF since it installs stuff as root -- # by default. -- for ac_prog in ginstall scoinst install; do -- for ac_exec_ext in '' $ac_executable_extensions; do -- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then -- if test $ac_prog = install && -- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then -- # AIX install. It has an incompatible calling convention. -- : -- elif test $ac_prog = install && -- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then -- # program-specific install script used by HP pwplus--don't use. -- : -- else -- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" -- break 3 -- fi -- fi -- done -- done -- ;; --esac --done -- -- --fi -- if test "${ac_cv_path_install+set}" = set; then -- INSTALL=$ac_cv_path_install -- else -- # As a last resort, use the slow shell script. We don't cache a -- # path for INSTALL within a source directory, because that will -- # break other packages using the cache if that directory is -- # removed, or if the path is relative. -- INSTALL=$ac_install_sh -- fi --fi --echo "$as_me:$LINENO: result: $INSTALL" >&5 --echo "${ECHO_T}$INSTALL" >&6 -- --# Use test -z because SunOS4 sh mishandles braces in ${var-val}. --# It thinks the first close brace ends the variable substitution. --test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' -- --test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' -- --test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' -- --echo "$as_me:$LINENO: checking whether build environment is sane" >&5 --echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 --# Just in case --sleep 1 --echo timestamp > conftest.file --# Do `set' in a subshell so we don't clobber the current shell's --# arguments. Must try -L first in case configure is actually a --# symlink; some systems play weird games with the mod time of symlinks --# (eg FreeBSD returns the mod time of the symlink's containing --# directory). --if ( -- set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` -- if test "$*" = "X"; then -- # -L didn't work. -- set X `ls -t $srcdir/configure conftest.file` -- fi -- rm -f conftest.file -- if test "$*" != "X $srcdir/configure conftest.file" \ -- && test "$*" != "X conftest.file $srcdir/configure"; then -- -- # If neither matched, then we have a broken ls. This can happen -- # if, for instance, CONFIG_SHELL is bash and it inherits a -- # broken ls alias from the environment. This has actually -- # happened. Such a system could not be considered "sane". -- { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken --alias in your environment" >&5 --echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken --alias in your environment" >&2;} -- { (exit 1); exit 1; }; } -- fi -- -- test "$2" = conftest.file -- ) --then -- # Ok. -- : --else -- { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! --Check your system clock" >&5 --echo "$as_me: error: newly created file is older than distributed files! --Check your system clock" >&2;} -- { (exit 1); exit 1; }; } --fi --echo "$as_me:$LINENO: result: yes" >&5 --echo "${ECHO_T}yes" >&6 --test "$program_prefix" != NONE && -- program_transform_name="s,^,$program_prefix,;$program_transform_name" --# Use a double $ so make ignores it. --test "$program_suffix" != NONE && -- program_transform_name="s,\$,$program_suffix,;$program_transform_name" --# Double any \ or $. echo might interpret backslashes. --# By default was `s,x,x', remove it if useless. --cat <<\_ACEOF >conftest.sed --s/[\\$]/&&/g;s/;s,x,x,$// --_ACEOF --program_transform_name=`echo $program_transform_name | sed -f conftest.sed` --rm conftest.sed -- --# expand $ac_aux_dir to an absolute path --am_aux_dir=`cd $ac_aux_dir && pwd` -- --test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" --# Use eval to expand $SHELL --if eval "$MISSING --run true"; then -- am_missing_run="$MISSING --run " --else -- am_missing_run= -- { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 --echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} --fi -- --if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then -- # We used to keeping the `.' as first argument, in order to -- # allow $(mkdir_p) to be used without argument. As in -- # $(mkdir_p) $(somedir) -- # where $(somedir) is conditionally defined. However this is wrong -- # for two reasons: -- # 1. if the package is installed by a user who cannot write `.' -- # make install will fail, -- # 2. the above comment should most certainly read -- # $(mkdir_p) $(DESTDIR)$(somedir) -- # so it does not work when $(somedir) is undefined and -- # $(DESTDIR) is not. -- # To support the latter case, we have to write -- # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), -- # so the `.' trick is pointless. -- mkdir_p='mkdir -p --' --else -- # On NextStep and OpenStep, the `mkdir' command does not -- # recognize any option. It will interpret all options as -- # directories to create, and then abort because `.' already -- # exists. -- for d in ./-p ./--version; -- do -- test -d $d && rmdir $d -- done -- # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. -- if test -f "$ac_aux_dir/mkinstalldirs"; then -- mkdir_p='$(mkinstalldirs)' -- else -- mkdir_p='$(install_sh) -d' -- fi --fi -- --for ac_prog in gawk mawk nawk awk --do -- # Extract the first word of "$ac_prog", so it can be a program name with args. --set dummy $ac_prog; ac_word=$2 --echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 --if test "${ac_cv_prog_AWK+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$AWK"; then -- ac_cv_prog_AWK="$AWK" # Let the user override the test. --else --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_prog_AWK="$ac_prog" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done -- --fi --fi --AWK=$ac_cv_prog_AWK --if test -n "$AWK"; then -- echo "$as_me:$LINENO: result: $AWK" >&5 --echo "${ECHO_T}$AWK" >&6 --else -- echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6 --fi -- -- test -n "$AWK" && break --done -- --echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 --echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 --set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` --if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat >conftest.make <<\_ACEOF --all: -- @echo 'ac_maketemp="$(MAKE)"' --_ACEOF --# GNU make sometimes prints "make[1]: Entering...", which would confuse us. --eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` --if test -n "$ac_maketemp"; then -- eval ac_cv_prog_make_${ac_make}_set=yes --else -- eval ac_cv_prog_make_${ac_make}_set=no --fi --rm -f conftest.make --fi --if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then -- echo "$as_me:$LINENO: result: yes" >&5 --echo "${ECHO_T}yes" >&6 -- SET_MAKE= --else -- echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6 -- SET_MAKE="MAKE=${MAKE-make}" --fi -- --rm -rf .tst 2>/dev/null --mkdir .tst 2>/dev/null --if test -d .tst; then -- am__leading_dot=. --else -- am__leading_dot=_ --fi --rmdir .tst 2>/dev/null -- --# test to see if srcdir already configured --if test "`cd $srcdir && pwd`" != "`pwd`" && -- test -f $srcdir/config.status; then -- { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 --echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} -- { (exit 1); exit 1; }; } --fi -- --# test whether we have cygpath --if test -z "$CYGPATH_W"; then -- if (cygpath --version) >/dev/null 2>/dev/null; then -- CYGPATH_W='cygpath -w' -- else -- CYGPATH_W=echo -- fi --fi -- -- --# Define the identity of the package. -- PACKAGE='grub' -- VERSION='0.97' -- -- --cat >>confdefs.h <<_ACEOF --#define PACKAGE "$PACKAGE" --_ACEOF -- -- --cat >>confdefs.h <<_ACEOF --#define VERSION "$VERSION" --_ACEOF -- --# Some tools Automake needs. -- --ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} -- -- --AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} -- -- --AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} -- -- --AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} -- -- --MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} -- --install_sh=${install_sh-"$am_aux_dir/install-sh"} -- --# Installed binaries are usually stripped using `strip' when the user --# run `make install-strip'. However `strip' might not be the right --# tool to use in cross-compilation environments, therefore Automake --# will honor the `STRIP' environment variable to overrule this program. --if test "$cross_compiling" != no; then -- if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. --set dummy ${ac_tool_prefix}strip; ac_word=$2 --echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 --if test "${ac_cv_prog_STRIP+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$STRIP"; then -- ac_cv_prog_STRIP="$STRIP" # Let the user override the test. --else --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_prog_STRIP="${ac_tool_prefix}strip" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done -- --fi --fi --STRIP=$ac_cv_prog_STRIP --if test -n "$STRIP"; then -- echo "$as_me:$LINENO: result: $STRIP" >&5 --echo "${ECHO_T}$STRIP" >&6 --else -- echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6 --fi -- --fi --if test -z "$ac_cv_prog_STRIP"; then -- ac_ct_STRIP=$STRIP -- # Extract the first word of "strip", so it can be a program name with args. --set dummy strip; ac_word=$2 --echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 --if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$ac_ct_STRIP"; then -- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. --else --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_prog_ac_ct_STRIP="strip" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done -- -- test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" --fi --fi --ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP --if test -n "$ac_ct_STRIP"; then -- echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 --echo "${ECHO_T}$ac_ct_STRIP" >&6 --else -- echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6 --fi -- -- STRIP=$ac_ct_STRIP --else -- STRIP="$ac_cv_prog_STRIP" --fi -- --fi --INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" -- --# We need awk for the "check" target. The system "awk" is bad on --# some platforms. --# Always define AMTAR for backward compatibility. -- --AMTAR=${AMTAR-"${am_missing_run}tar"} -- --am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' -- -- -- -- -- -- --# Make sure we can run config.sub. --$ac_config_sub sun4 >/dev/null 2>&1 || -- { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 --echo "$as_me: error: cannot run $ac_config_sub" >&2;} -- { (exit 1); exit 1; }; } -- --echo "$as_me:$LINENO: checking build system type" >&5 --echo $ECHO_N "checking build system type... $ECHO_C" >&6 --if test "${ac_cv_build+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- ac_cv_build_alias=$build_alias --test -z "$ac_cv_build_alias" && -- ac_cv_build_alias=`$ac_config_guess` --test -z "$ac_cv_build_alias" && -- { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 --echo "$as_me: error: cannot guess build type; you must specify one" >&2;} -- { (exit 1); exit 1; }; } --ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || -- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 --echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} -- { (exit 1); exit 1; }; } -- --fi --echo "$as_me:$LINENO: result: $ac_cv_build" >&5 --echo "${ECHO_T}$ac_cv_build" >&6 --build=$ac_cv_build --build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` --build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` --build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -- -- --echo "$as_me:$LINENO: checking host system type" >&5 --echo $ECHO_N "checking host system type... $ECHO_C" >&6 --if test "${ac_cv_host+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- ac_cv_host_alias=$host_alias --test -z "$ac_cv_host_alias" && -- ac_cv_host_alias=$ac_cv_build_alias --ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || -- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 --echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} -- { (exit 1); exit 1; }; } -- --fi --echo "$as_me:$LINENO: result: $ac_cv_host" >&5 --echo "${ECHO_T}$ac_cv_host" >&6 --host=$ac_cv_host --host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` --host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` --host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` -- -- -- --case "$host_cpu" in --i[3456]86) host_cpu=i386 ;; --x86_64) host_cpu=x86_64 ;; --*) { { echo "$as_me:$LINENO: error: unsupported CPU type" >&5 --echo "$as_me: error: unsupported CPU type" >&2;} -- { (exit 1); exit 1; }; } ;; --esac -- -- -- -- --# --# Options --# -- --echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 --echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 -- # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. --if test "${enable_maintainer_mode+set}" = set; then -- enableval="$enable_maintainer_mode" -- USE_MAINTAINER_MODE=$enableval --else -- USE_MAINTAINER_MODE=no --fi; -- echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 --echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6 -- -- --if test $USE_MAINTAINER_MODE = yes; then -- MAINTAINER_MODE_TRUE= -- MAINTAINER_MODE_FALSE='#' --else -- MAINTAINER_MODE_TRUE='#' -- MAINTAINER_MODE_FALSE= --fi -- -- MAINT=$MAINTAINER_MODE_TRUE -- -- --if test "x$enable_maintainer_mode" = xyes; then -- # Extract the first word of "perl", so it can be a program name with args. --set dummy perl; ac_word=$2 --echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 --if test "${ac_cv_path_PERL+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- case $PERL in -- [\\/]* | ?:[\\/]*) -- ac_cv_path_PERL="$PERL" # Let the user override the test with a path. -- ;; -- *) -- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done -- -- ;; --esac --fi --PERL=$ac_cv_path_PERL -- --if test -n "$PERL"; then -- echo "$as_me:$LINENO: result: $PERL" >&5 --echo "${ECHO_T}$PERL" >&6 --else -- echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6 --fi -- -- if test -z "$PERL"; then -- { { echo "$as_me:$LINENO: error: perl not found" >&5 --echo "$as_me: error: perl not found" >&2;} -- { (exit 1); exit 1; }; } -- fi --fi -- --# This should be checked before AC_PROG_CC --if test "x$CFLAGS" = x; then -- default_CFLAGS=yes --fi -- --if test "x$host_cpu" = xx86_64; then -- CFLAGS="-m32 $CFLAGS" --fi -- --# --# Programs --# -- --if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. --set dummy ${ac_tool_prefix}gcc; ac_word=$2 --echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 --if test "${ac_cv_prog_CC+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$CC"; then -- ac_cv_prog_CC="$CC" # Let the user override the test. --else --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_prog_CC="${ac_tool_prefix}gcc" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done -- --fi --fi --CC=$ac_cv_prog_CC --if test -n "$CC"; then -- echo "$as_me:$LINENO: result: $CC" >&5 --echo "${ECHO_T}$CC" >&6 --else -- echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6 --fi -- --fi --if test -z "$ac_cv_prog_CC"; then -- ac_ct_CC=$CC -- # Extract the first word of "gcc", so it can be a program name with args. --set dummy gcc; ac_word=$2 --echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 --if test "${ac_cv_prog_ac_ct_CC+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$ac_ct_CC"; then -- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. --else --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_prog_ac_ct_CC="gcc" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done -- --fi --fi --ac_ct_CC=$ac_cv_prog_ac_ct_CC --if test -n "$ac_ct_CC"; then -- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 --echo "${ECHO_T}$ac_ct_CC" >&6 --else -- echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6 --fi -- -- CC=$ac_ct_CC --else -- CC="$ac_cv_prog_CC" --fi -- --ac_ext=c --ac_cpp='$CPP $CPPFLAGS' --ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' --ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' --ac_compiler_gnu=$ac_cv_c_compiler_gnu --if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. --set dummy ${ac_tool_prefix}gcc; ac_word=$2 --echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 --if test "${ac_cv_prog_CC+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$CC"; then -- ac_cv_prog_CC="$CC" # Let the user override the test. --else --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_prog_CC="${ac_tool_prefix}gcc" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done -- --fi --fi --CC=$ac_cv_prog_CC --if test -n "$CC"; then -- echo "$as_me:$LINENO: result: $CC" >&5 --echo "${ECHO_T}$CC" >&6 --else -- echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6 --fi -- --fi --if test -z "$ac_cv_prog_CC"; then -- ac_ct_CC=$CC -- # Extract the first word of "gcc", so it can be a program name with args. --set dummy gcc; ac_word=$2 --echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 --if test "${ac_cv_prog_ac_ct_CC+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$ac_ct_CC"; then -- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. --else --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_prog_ac_ct_CC="gcc" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done -- --fi --fi --ac_ct_CC=$ac_cv_prog_ac_ct_CC --if test -n "$ac_ct_CC"; then -- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 --echo "${ECHO_T}$ac_ct_CC" >&6 --else -- echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6 --fi -- -- CC=$ac_ct_CC --else -- CC="$ac_cv_prog_CC" --fi -- --if test -z "$CC"; then -- if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. --set dummy ${ac_tool_prefix}cc; ac_word=$2 --echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 --if test "${ac_cv_prog_CC+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$CC"; then -- ac_cv_prog_CC="$CC" # Let the user override the test. --else --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_prog_CC="${ac_tool_prefix}cc" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done -- --fi --fi --CC=$ac_cv_prog_CC --if test -n "$CC"; then -- echo "$as_me:$LINENO: result: $CC" >&5 --echo "${ECHO_T}$CC" >&6 --else -- echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6 --fi -- --fi --if test -z "$ac_cv_prog_CC"; then -- ac_ct_CC=$CC -- # Extract the first word of "cc", so it can be a program name with args. --set dummy cc; ac_word=$2 --echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 --if test "${ac_cv_prog_ac_ct_CC+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$ac_ct_CC"; then -- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. --else --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_prog_ac_ct_CC="cc" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done -- --fi --fi --ac_ct_CC=$ac_cv_prog_ac_ct_CC --if test -n "$ac_ct_CC"; then -- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 --echo "${ECHO_T}$ac_ct_CC" >&6 --else -- echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6 --fi -- -- CC=$ac_ct_CC --else -- CC="$ac_cv_prog_CC" --fi -- --fi --if test -z "$CC"; then -- # Extract the first word of "cc", so it can be a program name with args. --set dummy cc; ac_word=$2 --echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 --if test "${ac_cv_prog_CC+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$CC"; then -- ac_cv_prog_CC="$CC" # Let the user override the test. --else -- ac_prog_rejected=no --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then -- ac_prog_rejected=yes -- continue -- fi -- ac_cv_prog_CC="cc" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done -- --if test $ac_prog_rejected = yes; then -- # We found a bogon in the path, so make sure we never use it. -- set dummy $ac_cv_prog_CC -- shift -- if test $# != 0; then -- # We chose a different compiler from the bogus one. -- # However, it has the same basename, so the bogon will be chosen -- # first if we set CC to just the basename; use the full file name. -- shift -- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" -- fi --fi --fi --fi --CC=$ac_cv_prog_CC --if test -n "$CC"; then -- echo "$as_me:$LINENO: result: $CC" >&5 --echo "${ECHO_T}$CC" >&6 --else -- echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6 --fi -- --fi --if test -z "$CC"; then -- if test -n "$ac_tool_prefix"; then -- for ac_prog in cl -- do -- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. --set dummy $ac_tool_prefix$ac_prog; ac_word=$2 --echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 --if test "${ac_cv_prog_CC+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$CC"; then -- ac_cv_prog_CC="$CC" # Let the user override the test. --else --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_prog_CC="$ac_tool_prefix$ac_prog" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done -- --fi --fi --CC=$ac_cv_prog_CC --if test -n "$CC"; then -- echo "$as_me:$LINENO: result: $CC" >&5 --echo "${ECHO_T}$CC" >&6 --else -- echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6 --fi -- -- test -n "$CC" && break -- done --fi --if test -z "$CC"; then -- ac_ct_CC=$CC -- for ac_prog in cl --do -- # Extract the first word of "$ac_prog", so it can be a program name with args. --set dummy $ac_prog; ac_word=$2 --echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 --if test "${ac_cv_prog_ac_ct_CC+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$ac_ct_CC"; then -- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. --else --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_prog_ac_ct_CC="$ac_prog" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done -- --fi --fi --ac_ct_CC=$ac_cv_prog_ac_ct_CC --if test -n "$ac_ct_CC"; then -- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 --echo "${ECHO_T}$ac_ct_CC" >&6 --else -- echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6 --fi -- -- test -n "$ac_ct_CC" && break --done -- -- CC=$ac_ct_CC --fi -- --fi -- -- --test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH --See \`config.log' for more details." >&5 --echo "$as_me: error: no acceptable C compiler found in \$PATH --See \`config.log' for more details." >&2;} -- { (exit 1); exit 1; }; } -- --# Provide some information about the compiler. --echo "$as_me:$LINENO:" \ -- "checking for C compiler version" >&5 --ac_compiler=`set X $ac_compile; echo $2` --{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 -- (eval $ac_compiler --version &5) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } --{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 -- (eval $ac_compiler -v &5) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } --{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 -- (eval $ac_compiler -V &5) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } -- --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --int --main () --{ -- -- ; -- return 0; --} --_ACEOF --ac_clean_files_save=$ac_clean_files --ac_clean_files="$ac_clean_files a.out a.exe b.out" --# Try to create an executable without -o first, disregard a.out. --# It will help us diagnose broken compilers, and finding out an intuition --# of exeext. --echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 --echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 --ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` --if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 -- (eval $ac_link_default) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; then -- # Find the output, starting from the most likely. This scheme is --# not robust to junk in `.', hence go to wildcards (a.*) only as a last --# resort. -- --# Be careful to initialize this variable, since it used to be cached. --# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. --ac_cv_exeext= --# b.out is created by i960 compilers. --for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out --do -- test -f "$ac_file" || continue -- case $ac_file in -- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) -- ;; -- conftest.$ac_ext ) -- # This is the source file. -- ;; -- [ab].out ) -- # We found the default executable, but exeext='' is most -- # certainly right. -- break;; -- *.* ) -- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` -- # FIXME: I believe we export ac_cv_exeext for Libtool, -- # but it would be cool to find out if it's true. Does anybody -- # maintain Libtool? --akim. -- export ac_cv_exeext -- break;; -- * ) -- break;; -- esac --done --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --{ { echo "$as_me:$LINENO: error: C compiler cannot create executables --See \`config.log' for more details." >&5 --echo "$as_me: error: C compiler cannot create executables --See \`config.log' for more details." >&2;} -- { (exit 77); exit 77; }; } --fi -- --ac_exeext=$ac_cv_exeext --echo "$as_me:$LINENO: result: $ac_file" >&5 --echo "${ECHO_T}$ac_file" >&6 -- --# Check the compiler produces executables we can run. If not, either --# the compiler is broken, or we cross compile. --echo "$as_me:$LINENO: checking whether the C compiler works" >&5 --echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 --# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 --# If not cross compiling, check that we can run a simple program. --if test "$cross_compiling" != yes; then -- if { ac_try='./$ac_file' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- cross_compiling=no -- else -- if test "$cross_compiling" = maybe; then -- cross_compiling=yes -- else -- { { echo "$as_me:$LINENO: error: cannot run C compiled programs. --If you meant to cross compile, use \`--host'. --See \`config.log' for more details." >&5 --echo "$as_me: error: cannot run C compiled programs. --If you meant to cross compile, use \`--host'. --See \`config.log' for more details." >&2;} -- { (exit 1); exit 1; }; } -- fi -- fi --fi --echo "$as_me:$LINENO: result: yes" >&5 --echo "${ECHO_T}yes" >&6 -- --rm -f a.out a.exe conftest$ac_cv_exeext b.out --ac_clean_files=$ac_clean_files_save --# Check the compiler produces executables we can run. If not, either --# the compiler is broken, or we cross compile. --echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 --echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 --echo "$as_me:$LINENO: result: $cross_compiling" >&5 --echo "${ECHO_T}$cross_compiling" >&6 -- --echo "$as_me:$LINENO: checking for suffix of executables" >&5 --echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 --if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -- (eval $ac_link) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; then -- # If both `conftest.exe' and `conftest' are `present' (well, observable) --# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will --# work properly (i.e., refer to `conftest.exe'), while it won't with --# `rm'. --for ac_file in conftest.exe conftest conftest.*; do -- test -f "$ac_file" || continue -- case $ac_file in -- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; -- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` -- export ac_cv_exeext -- break;; -- * ) break;; -- esac --done --else -- { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link --See \`config.log' for more details." >&5 --echo "$as_me: error: cannot compute suffix of executables: cannot compile and link --See \`config.log' for more details." >&2;} -- { (exit 1); exit 1; }; } --fi -- --rm -f conftest$ac_cv_exeext --echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 --echo "${ECHO_T}$ac_cv_exeext" >&6 -- --rm -f conftest.$ac_ext --EXEEXT=$ac_cv_exeext --ac_exeext=$EXEEXT --echo "$as_me:$LINENO: checking for suffix of object files" >&5 --echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 --if test "${ac_cv_objext+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --int --main () --{ -- -- ; -- return 0; --} --_ACEOF --rm -f conftest.o conftest.obj --if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -- (eval $ac_compile) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; then -- for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do -- case $ac_file in -- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; -- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` -- break;; -- esac --done --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile --See \`config.log' for more details." >&5 --echo "$as_me: error: cannot compute suffix of object files: cannot compile --See \`config.log' for more details." >&2;} -- { (exit 1); exit 1; }; } --fi -- --rm -f conftest.$ac_cv_objext conftest.$ac_ext --fi --echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 --echo "${ECHO_T}$ac_cv_objext" >&6 --OBJEXT=$ac_cv_objext --ac_objext=$OBJEXT --echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 --echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 --if test "${ac_cv_c_compiler_gnu+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --int --main () --{ --#ifndef __GNUC__ -- choke me --#endif -- -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext --if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -- (eval $ac_compile) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest.$ac_objext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- ac_compiler_gnu=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --ac_compiler_gnu=no --fi --rm -f conftest.err conftest.$ac_objext conftest.$ac_ext --ac_cv_c_compiler_gnu=$ac_compiler_gnu -- --fi --echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 --echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 --GCC=`test $ac_compiler_gnu = yes && echo yes` --ac_test_CFLAGS=${CFLAGS+set} --ac_save_CFLAGS=$CFLAGS --CFLAGS="-g" --echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 --echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 --if test "${ac_cv_prog_cc_g+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --int --main () --{ -- -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext --if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -- (eval $ac_compile) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest.$ac_objext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- ac_cv_prog_cc_g=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --ac_cv_prog_cc_g=no --fi --rm -f conftest.err conftest.$ac_objext conftest.$ac_ext --fi --echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 --echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 --if test "$ac_test_CFLAGS" = set; then -- CFLAGS=$ac_save_CFLAGS --elif test $ac_cv_prog_cc_g = yes; then -- if test "$GCC" = yes; then -- CFLAGS="-g -O2" -- else -- CFLAGS="-g" -- fi --else -- if test "$GCC" = yes; then -- CFLAGS="-O2" -- else -- CFLAGS= -- fi --fi --echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 --echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 --if test "${ac_cv_prog_cc_stdc+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- ac_cv_prog_cc_stdc=no --ac_save_CC=$CC --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include --#include --#include --#include --/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ --struct buf { int x; }; --FILE * (*rcsopen) (struct buf *, struct stat *, int); --static char *e (p, i) -- char **p; -- int i; --{ -- return p[i]; --} --static char *f (char * (*g) (char **, int), char **p, ...) --{ -- char *s; -- va_list v; -- va_start (v,p); -- s = g (p, va_arg (v,int)); -- va_end (v); -- return s; --} -- --/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has -- function prototypes and stuff, but not '\xHH' hex character constants. -- These don't provoke an error unfortunately, instead are silently treated -- as 'x'. The following induces an error, until -std1 is added to get -- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an -- array size at least. It's necessary to write '\x00'==0 to get something -- that's true only with -std1. */ --int osf4_cc_array ['\x00' == 0 ? 1 : -1]; -- --int test (int i, double x); --struct s1 {int (*f) (int a);}; --struct s2 {int (*f) (double a);}; --int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); --int argc; --char **argv; --int --main () --{ --return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; -- ; -- return 0; --} --_ACEOF --# Don't try gcc -ansi; that turns off useful extensions and --# breaks some systems' header files. --# AIX -qlanglvl=ansi --# Ultrix and OSF/1 -std1 --# HP-UX 10.20 and later -Ae --# HP-UX older versions -Aa -D_HPUX_SOURCE --# SVR4 -Xc -D__EXTENSIONS__ --for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" --do -- CC="$ac_save_CC $ac_arg" -- rm -f conftest.$ac_objext --if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -- (eval $ac_compile) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest.$ac_objext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- ac_cv_prog_cc_stdc=$ac_arg --break --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --fi --rm -f conftest.err conftest.$ac_objext --done --rm -f conftest.$ac_ext conftest.$ac_objext --CC=$ac_save_CC -- --fi -- --case "x$ac_cv_prog_cc_stdc" in -- x|xno) -- echo "$as_me:$LINENO: result: none needed" >&5 --echo "${ECHO_T}none needed" >&6 ;; -- *) -- echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 --echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 -- CC="$CC $ac_cv_prog_cc_stdc" ;; --esac -- --# Some people use a C++ compiler to compile C. Since we use `exit', --# in C++ we need to declare it. In case someone uses the same compiler --# for both compiling C and C++ we need to have the C++ compiler decide --# the declaration of exit, since it's the most demanding environment. --cat >conftest.$ac_ext <<_ACEOF --#ifndef __cplusplus -- choke me --#endif --_ACEOF --rm -f conftest.$ac_objext --if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -- (eval $ac_compile) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest.$ac_objext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- for ac_declaration in \ -- '' \ -- 'extern "C" void std::exit (int) throw (); using std::exit;' \ -- 'extern "C" void std::exit (int); using std::exit;' \ -- 'extern "C" void exit (int) throw ();' \ -- 'extern "C" void exit (int);' \ -- 'void exit (int);' --do -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_declaration --#include --int --main () --{ --exit (42); -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext --if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -- (eval $ac_compile) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest.$ac_objext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- : --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --continue --fi --rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_declaration --int --main () --{ --exit (42); -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext --if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -- (eval $ac_compile) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest.$ac_objext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- break --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --fi --rm -f conftest.err conftest.$ac_objext conftest.$ac_ext --done --rm -f conftest* --if test -n "$ac_declaration"; then -- echo '#ifdef __cplusplus' >>confdefs.h -- echo $ac_declaration >>confdefs.h -- echo '#endif' >>confdefs.h --fi -- --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --fi --rm -f conftest.err conftest.$ac_objext conftest.$ac_ext --ac_ext=c --ac_cpp='$CPP $CPPFLAGS' --ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' --ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' --ac_compiler_gnu=$ac_cv_c_compiler_gnu --DEPDIR="${am__leading_dot}deps" -- -- ac_config_commands="$ac_config_commands depfiles" -- -- --am_make=${MAKE-make} --cat > confinc << 'END' --am__doit: -- @echo done --.PHONY: am__doit --END --# If we don't find an include directive, just comment out the code. --echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 --echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 --am__include="#" --am__quote= --_am_result=none --# First try GNU make style include. --echo "include confinc" > confmf --# We grep out `Entering directory' and `Leaving directory' --# messages which can occur if `w' ends up in MAKEFLAGS. --# In particular we don't look at `^make:' because GNU make might --# be invoked under some other name (usually "gmake"), in which --# case it prints its new name instead of `make'. --if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then -- am__include=include -- am__quote= -- _am_result=GNU --fi --# Now try BSD make style include. --if test "$am__include" = "#"; then -- echo '.include "confinc"' > confmf -- if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then -- am__include=.include -- am__quote="\"" -- _am_result=BSD -- fi --fi -- -- --echo "$as_me:$LINENO: result: $_am_result" >&5 --echo "${ECHO_T}$_am_result" >&6 --rm -f confinc confmf -- --# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. --if test "${enable_dependency_tracking+set}" = set; then -- enableval="$enable_dependency_tracking" -- --fi; --if test "x$enable_dependency_tracking" != xno; then -- am_depcomp="$ac_aux_dir/depcomp" -- AMDEPBACKSLASH='\' --fi -- -- --if test "x$enable_dependency_tracking" != xno; then -- AMDEP_TRUE= -- AMDEP_FALSE='#' --else -- AMDEP_TRUE='#' -- AMDEP_FALSE= --fi -- -- -- -- --depcc="$CC" am_compiler_list= -- --echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 --echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 --if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then -- # We make a subdir and do the tests there. Otherwise we can end up -- # making bogus files that we don't know about and never remove. For -- # instance it was reported that on HP-UX the gcc test will end up -- # making a dummy file named `D' -- because `-MD' means `put the output -- # in D'. -- mkdir conftest.dir -- # Copy depcomp to subdir because otherwise we won't find it if we're -- # using a relative directory. -- cp "$am_depcomp" conftest.dir -- cd conftest.dir -- # We will build objects and dependencies in a subdirectory because -- # it helps to detect inapplicable dependency modes. For instance -- # both Tru64's cc and ICC support -MD to output dependencies as a -- # side effect of compilation, but ICC will put the dependencies in -- # the current directory while Tru64 will put them in the object -- # directory. -- mkdir sub -- -- am_cv_CC_dependencies_compiler_type=none -- if test "$am_compiler_list" = ""; then -- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` -- fi -- for depmode in $am_compiler_list; do -- # Setup a source with many dependencies, because some compilers -- # like to wrap large dependency lists on column 80 (with \), and -- # we should not choose a depcomp mode which is confused by this. -- # -- # We need to recreate these files for each test, as the compiler may -- # overwrite some of them when testing with obscure command lines. -- # This happens at least with the AIX C compiler. -- : > sub/conftest.c -- for i in 1 2 3 4 5 6; do -- echo '#include "conftst'$i'.h"' >> sub/conftest.c -- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with -- # Solaris 8's {/usr,}/bin/sh. -- touch sub/conftst$i.h -- done -- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf -- -- case $depmode in -- nosideeffect) -- # after this tag, mechanisms are not by side-effect, so they'll -- # only be used when explicitly requested -- if test "x$enable_dependency_tracking" = xyes; then -- continue -- else -- break -- fi -- ;; -- none) break ;; -- esac -- # We check with `-c' and `-o' for the sake of the "dashmstdout" -- # mode. It turns out that the SunPro C++ compiler does not properly -- # handle `-M -o', and we need to detect this. -- if depmode=$depmode \ -- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ -- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ -- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ -- >/dev/null 2>conftest.err && -- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && -- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && -- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then -- # icc doesn't choke on unknown options, it will just issue warnings -- # or remarks (even with -Werror). So we grep stderr for any message -- # that says an option was ignored or not supported. -- # When given -MP, icc 7.0 and 7.1 complain thusly: -- # icc: Command line warning: ignoring option '-M'; no argument required -- # The diagnosis changed in icc 8.0: -- # icc: Command line remark: option '-MP' not supported -- if (grep 'ignoring option' conftest.err || -- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else -- am_cv_CC_dependencies_compiler_type=$depmode -- break -- fi -- fi -- done -- -- cd .. -- rm -rf conftest.dir --else -- am_cv_CC_dependencies_compiler_type=none --fi -- --fi --echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 --echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 --CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type -- -- -- --if -- test "x$enable_dependency_tracking" != xno \ -- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then -- am__fastdepCC_TRUE= -- am__fastdepCC_FALSE='#' --else -- am__fastdepCC_TRUE='#' -- am__fastdepCC_FALSE= --fi -- -- --# We need this for older versions of Autoconf. -- --depcc="$CC" am_compiler_list= -- --echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 --echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 --if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then -- # We make a subdir and do the tests there. Otherwise we can end up -- # making bogus files that we don't know about and never remove. For -- # instance it was reported that on HP-UX the gcc test will end up -- # making a dummy file named `D' -- because `-MD' means `put the output -- # in D'. -- mkdir conftest.dir -- # Copy depcomp to subdir because otherwise we won't find it if we're -- # using a relative directory. -- cp "$am_depcomp" conftest.dir -- cd conftest.dir -- # We will build objects and dependencies in a subdirectory because -- # it helps to detect inapplicable dependency modes. For instance -- # both Tru64's cc and ICC support -MD to output dependencies as a -- # side effect of compilation, but ICC will put the dependencies in -- # the current directory while Tru64 will put them in the object -- # directory. -- mkdir sub -- -- am_cv_CC_dependencies_compiler_type=none -- if test "$am_compiler_list" = ""; then -- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` -- fi -- for depmode in $am_compiler_list; do -- # Setup a source with many dependencies, because some compilers -- # like to wrap large dependency lists on column 80 (with \), and -- # we should not choose a depcomp mode which is confused by this. -- # -- # We need to recreate these files for each test, as the compiler may -- # overwrite some of them when testing with obscure command lines. -- # This happens at least with the AIX C compiler. -- : > sub/conftest.c -- for i in 1 2 3 4 5 6; do -- echo '#include "conftst'$i'.h"' >> sub/conftest.c -- # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with -- # Solaris 8's {/usr,}/bin/sh. -- touch sub/conftst$i.h -- done -- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf -- -- case $depmode in -- nosideeffect) -- # after this tag, mechanisms are not by side-effect, so they'll -- # only be used when explicitly requested -- if test "x$enable_dependency_tracking" = xyes; then -- continue -- else -- break -- fi -- ;; -- none) break ;; -- esac -- # We check with `-c' and `-o' for the sake of the "dashmstdout" -- # mode. It turns out that the SunPro C++ compiler does not properly -- # handle `-M -o', and we need to detect this. -- if depmode=$depmode \ -- source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ -- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ -- $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ -- >/dev/null 2>conftest.err && -- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && -- grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && -- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then -- # icc doesn't choke on unknown options, it will just issue warnings -- # or remarks (even with -Werror). So we grep stderr for any message -- # that says an option was ignored or not supported. -- # When given -MP, icc 7.0 and 7.1 complain thusly: -- # icc: Command line warning: ignoring option '-M'; no argument required -- # The diagnosis changed in icc 8.0: -- # icc: Command line remark: option '-MP' not supported -- if (grep 'ignoring option' conftest.err || -- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else -- am_cv_CC_dependencies_compiler_type=$depmode -- break -- fi -- fi -- done -- -- cd .. -- rm -rf conftest.dir --else -- am_cv_CC_dependencies_compiler_type=none --fi -- --fi --echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 --echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 --CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type -- -- -- --if -- test "x$enable_dependency_tracking" != xno \ -- && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then -- am__fastdepCC_TRUE= -- am__fastdepCC_FALSE='#' --else -- am__fastdepCC_TRUE='#' -- am__fastdepCC_FALSE= --fi -- -- -- --CCAS="$CC" -- -- -- --# Check whether --with-binutils or --without-binutils was given. --if test "${with_binutils+set}" = set; then -- withval="$with_binutils" -- --fi; -- --if test "x$with_binutils" != x; then -- # Extract the first word of "ranlib", so it can be a program name with args. --set dummy ranlib; ac_word=$2 --echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 --if test "${ac_cv_path_RANLIB+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- case $RANLIB in -- [\\/]* | ?:[\\/]*) -- ac_cv_path_RANLIB="$RANLIB" # Let the user override the test with a path. -- ;; -- *) -- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --as_dummy=""$with_binutils:$PATH"" --for as_dir in $as_dummy --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_path_RANLIB="$as_dir/$ac_word$ac_exec_ext" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done -- -- test -z "$ac_cv_path_RANLIB" && ac_cv_path_RANLIB=":" -- ;; --esac --fi --RANLIB=$ac_cv_path_RANLIB -- --if test -n "$RANLIB"; then -- echo "$as_me:$LINENO: result: $RANLIB" >&5 --echo "${ECHO_T}$RANLIB" >&6 --else -- echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6 --fi -- --else -- if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. --set dummy ${ac_tool_prefix}ranlib; ac_word=$2 --echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 --if test "${ac_cv_prog_RANLIB+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$RANLIB"; then -- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. --else --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done -- --fi --fi --RANLIB=$ac_cv_prog_RANLIB --if test -n "$RANLIB"; then -- echo "$as_me:$LINENO: result: $RANLIB" >&5 --echo "${ECHO_T}$RANLIB" >&6 --else -- echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6 --fi -- --fi --if test -z "$ac_cv_prog_RANLIB"; then -- ac_ct_RANLIB=$RANLIB -- # Extract the first word of "ranlib", so it can be a program name with args. --set dummy ranlib; ac_word=$2 --echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 --if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$ac_ct_RANLIB"; then -- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. --else --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_prog_ac_ct_RANLIB="ranlib" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done -- -- test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" --fi --fi --ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB --if test -n "$ac_ct_RANLIB"; then -- echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 --echo "${ECHO_T}$ac_ct_RANLIB" >&6 --else -- echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6 --fi -- -- RANLIB=$ac_ct_RANLIB --else -- RANLIB="$ac_cv_prog_RANLIB" --fi -- --fi -- --# optimization flags --if test "x$ac_cv_c_compiler_gnu" = xyes; then -- if test "x$default_CFLAGS" = xyes; then -- # Autoconf may set CFLAGS to -O2 and/or -g. So eliminate them. -- CFLAGS="`echo $CFLAGS | sed -e 's/-g//g' -e 's/-O[0-9]//g'` -g" -- # If the user specify the directory for binutils, add the option `-B'. -- if test "x$with_binutils" != x; then -- CFLAGS="-B$with_binutils/ $CFLAGS" -- fi -- STAGE1_CFLAGS="-O2" -- GRUB_CFLAGS="-O2" -- --echo "$as_me:$LINENO: checking whether optimization for size works" >&5 --echo $ECHO_N "checking whether optimization for size works... $ECHO_C" >&6 --if test "${size_flag+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- -- saved_CFLAGS=$CFLAGS -- CFLAGS="-Os -g" -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --int --main () --{ -- -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext --if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -- (eval $ac_compile) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest.$ac_objext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- size_flag=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --size_flag=no --fi --rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -- CFLAGS=$saved_CFLAGS -- --fi --echo "$as_me:$LINENO: result: $size_flag" >&5 --echo "${ECHO_T}$size_flag" >&6 -- if test "x$size_flag" = xyes; then -- STAGE2_CFLAGS="-Os" -- else -- STAGE2_CFLAGS="-O2 -fno-strength-reduce -fno-unroll-loops" -- fi -- # OpenBSD has a GCC extension for protecting applications from -- # stack smashing attacks, but GRUB doesn't want this feature. -- echo "$as_me:$LINENO: checking whether gcc has -fno-stack-protector" >&5 --echo $ECHO_N "checking whether gcc has -fno-stack-protector... $ECHO_C" >&6 --if test "${no_stack_protector_flag+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- -- saved_CFLAGS=$CFLAGS -- CFLAGS="-fno-stack-protector" -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --int --main () --{ -- -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext --if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -- (eval $ac_compile) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest.$ac_objext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- no_stack_protector_flag=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --no_stack_protector_flag=no --fi --rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -- CFLAGS=$saved_CFLAGS -- --fi --echo "$as_me:$LINENO: result: $no_stack_protector_flag" >&5 --echo "${ECHO_T}$no_stack_protector_flag" >&6 -- if test "x$no_stack_protector_flag" = xyes; then -- STAGE2_CFLAGS="$STAGE2_CFLAGS -fno-stack-protector" -- fi -- fi --fi -- -- -- -- -- --# Enforce coding standards. --CPPFLAGS="$CPPFLAGS -Wall -Wmissing-prototypes -Wunused -Wshadow" --CPPFLAGS="$CPPFLAGS -Wpointer-arith" -- --echo "$as_me:$LINENO: checking whether -Wundef works" >&5 --echo $ECHO_N "checking whether -Wundef works... $ECHO_C" >&6 --if test "${undef_flag+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- -- saved_CPPFLAGS="$CPPFLAGS" -- CPPFLAGS="-Wundef" -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --int --main () --{ -- -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext --if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -- (eval $ac_compile) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest.$ac_objext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- undef_flag=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --undef_flag=no --fi --rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -- CPPFLAGS="$saved_CPPFLAGS" -- --fi --echo "$as_me:$LINENO: result: $undef_flag" >&5 --echo "${ECHO_T}$undef_flag" >&6 -- --# The options `-falign-*' are supported by gcc 3.0 or later. --# Probably it is sufficient to only check for -falign-loops. --echo "$as_me:$LINENO: checking whether -falign-loops works" >&5 --echo $ECHO_N "checking whether -falign-loops works... $ECHO_C" >&6 --if test "${falign_loop_flag+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- -- saved_CPPFLAGS="$CPPFLAGS" -- CPPFLAGS="-falign-loops=1" -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --int --main () --{ -- -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext --if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -- (eval $ac_compile) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest.$ac_objext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- falign_loop_flag=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --falign_loop_flag=no --fi --rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -- CPPFLAGS="$saved_CPPFLAGS" -- --fi --echo "$as_me:$LINENO: result: $falign_loop_flag" >&5 --echo "${ECHO_T}$falign_loop_flag" >&6 -- --# Force no alignment to save space. --if test "x$falign_loop_flag" = xyes; then -- CPPFLAGS="$CPPFLAGS -falign-jumps=1 -falign-loops=1 -falign-functions=1" --else -- CPPFLAGS="$CPPFLAGS -malign-jumps=1 -malign-loops=1 -malign-functions=1" --fi -- --if test "x$undef_flag" = xyes; then -- CPPFLAGS="$CPPFLAGS -Wundef" --fi -- --if test "x$with_binutils" != x; then -- # Extract the first word of "objcopy", so it can be a program name with args. --set dummy objcopy; ac_word=$2 --echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 --if test "${ac_cv_path_OBJCOPY+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- case $OBJCOPY in -- [\\/]* | ?:[\\/]*) -- ac_cv_path_OBJCOPY="$OBJCOPY" # Let the user override the test with a path. -- ;; -- *) -- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --as_dummy=""$with_binutils:$PATH"" --for as_dir in $as_dummy --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_path_OBJCOPY="$as_dir/$ac_word$ac_exec_ext" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done -- -- ;; --esac --fi --OBJCOPY=$ac_cv_path_OBJCOPY -- --if test -n "$OBJCOPY"; then -- echo "$as_me:$LINENO: result: $OBJCOPY" >&5 --echo "${ECHO_T}$OBJCOPY" >&6 --else -- echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6 --fi -- --else -- if test -n "$ac_tool_prefix"; then -- # Extract the first word of "${ac_tool_prefix}objcopy", so it can be a program name with args. --set dummy ${ac_tool_prefix}objcopy; ac_word=$2 --echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 --if test "${ac_cv_prog_OBJCOPY+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$OBJCOPY"; then -- ac_cv_prog_OBJCOPY="$OBJCOPY" # Let the user override the test. --else --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_prog_OBJCOPY="${ac_tool_prefix}objcopy" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done -- --fi --fi --OBJCOPY=$ac_cv_prog_OBJCOPY --if test -n "$OBJCOPY"; then -- echo "$as_me:$LINENO: result: $OBJCOPY" >&5 --echo "${ECHO_T}$OBJCOPY" >&6 --else -- echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6 --fi -- --fi --if test -z "$ac_cv_prog_OBJCOPY"; then -- ac_ct_OBJCOPY=$OBJCOPY -- # Extract the first word of "objcopy", so it can be a program name with args. --set dummy objcopy; ac_word=$2 --echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 --if test "${ac_cv_prog_ac_ct_OBJCOPY+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$ac_ct_OBJCOPY"; then -- ac_cv_prog_ac_ct_OBJCOPY="$ac_ct_OBJCOPY" # Let the user override the test. --else --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then -- ac_cv_prog_ac_ct_OBJCOPY="objcopy" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done -- --fi --fi --ac_ct_OBJCOPY=$ac_cv_prog_ac_ct_OBJCOPY --if test -n "$ac_ct_OBJCOPY"; then -- echo "$as_me:$LINENO: result: $ac_ct_OBJCOPY" >&5 --echo "${ECHO_T}$ac_ct_OBJCOPY" >&6 --else -- echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6 --fi -- -- OBJCOPY=$ac_ct_OBJCOPY --else -- OBJCOPY="$ac_cv_prog_OBJCOPY" --fi -- --fi -- --# Defined in acinclude.m4. -- --echo "$as_me:$LINENO: checking if C symbols get an underscore after compilation" >&5 --echo $ECHO_N "checking if C symbols get an underscore after compilation... $ECHO_C" >&6 --if test "${grub_cv_asm_uscore+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat > conftest.c <<\EOF --int --func (int *list) --{ -- *list = 0; -- return *list; --} --EOF -- --if { ac_try='${CC-cc} ${CFLAGS} -S conftest.c' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && test -s conftest.s; then -- true --else -- { { echo "$as_me:$LINENO: error: ${CC-cc} failed to produce assembly code" >&5 --echo "$as_me: error: ${CC-cc} failed to produce assembly code" >&2;} -- { (exit 1); exit 1; }; } --fi -- --if grep _func conftest.s >/dev/null 2>&1; then -- grub_cv_asm_uscore=yes --else -- grub_cv_asm_uscore=no --fi -- --rm -f conftest* --fi -- -- --if test "x$grub_cv_asm_uscore" = xyes; then -- --cat >>confdefs.h <<_ACEOF --#define HAVE_ASM_USCORE $grub_cv_asm_uscore --_ACEOF -- --fi -- --echo "$as_me:$LINENO: result: $grub_cv_asm_uscore" >&5 --echo "${ECHO_T}$grub_cv_asm_uscore" >&6 -- --echo "$as_me:$LINENO: checking whether ${OBJCOPY} works for absolute addresses" >&5 --echo $ECHO_N "checking whether ${OBJCOPY} works for absolute addresses... $ECHO_C" >&6 --if test "${grub_cv_prog_objcopy_absolute+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat > conftest.c <<\EOF --void --cmain (void) --{ -- *((int *) 0x1000) = 2; --} --EOF -- --if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -- (eval $ac_compile) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && test -s conftest.o; then : --else -- { { echo "$as_me:$LINENO: error: ${CC-cc} cannot compile C source code" >&5 --echo "$as_me: error: ${CC-cc} cannot compile C source code" >&2;} -- { (exit 1); exit 1; }; } --fi --grub_cv_prog_objcopy_absolute=yes --for link_addr in 2000 8000 7C00; do -- if { ac_try='${CC-cc} ${CFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr conftest.o -o conftest.exec' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then : -- else -- { { echo "$as_me:$LINENO: error: ${CC-cc} cannot link at address $link_addr" >&5 --echo "$as_me: error: ${CC-cc} cannot link at address $link_addr" >&2;} -- { (exit 1); exit 1; }; } -- fi -- if { ac_try='${OBJCOPY-objcopy} -O binary conftest.exec conftest' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then : -- else -- { { echo "$as_me:$LINENO: error: ${OBJCOPY-objcopy} cannot create binary files" >&5 --echo "$as_me: error: ${OBJCOPY-objcopy} cannot create binary files" >&2;} -- { (exit 1); exit 1; }; } -- fi -- if test ! -f conftest.old || { ac_try='cmp -s conftest.old conftest' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- mv -f conftest conftest.old -- else -- grub_cv_prog_objcopy_absolute=no -- break -- fi --done --rm -f conftest* --fi -- --echo "$as_me:$LINENO: result: $grub_cv_prog_objcopy_absolute" >&5 --echo "${ECHO_T}$grub_cv_prog_objcopy_absolute" >&6 --if test "x$grub_cv_prog_objcopy_absolute" != xyes; then -- { { echo "$as_me:$LINENO: error: GRUB requires a working absolute objcopy; upgrade your binutils" >&5 --echo "$as_me: error: GRUB requires a working absolute objcopy; upgrade your binutils" >&2;} -- { (exit 1); exit 1; }; } --fi -- -- --echo "$as_me:$LINENO: checking whether addr32 must be in the same line as the instruction" >&5 --echo $ECHO_N "checking whether addr32 must be in the same line as the instruction... $ECHO_C" >&6 --if test "${grub_cv_asm_prefix_requirement+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat > conftest.s <<\EOF -- .code16 --l1: addr32 movb %al, l1 --EOF -- --if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && test -s conftest.o; then -- grub_cv_asm_prefix_requirement=yes --else -- grub_cv_asm_prefix_requirement=no --fi -- --rm -f conftest* --fi -- -- --if test "x$grub_cv_asm_prefix_requirement" = xyes; then -- grub_tmp_addr32="addr32" -- grub_tmp_data32="data32" --else -- grub_tmp_addr32="addr32;" -- grub_tmp_data32="data32;" --fi -- -- --cat >>confdefs.h <<_ACEOF --#define ADDR32 $grub_tmp_addr32 --_ACEOF -- -- --cat >>confdefs.h <<_ACEOF --#define DATA32 $grub_tmp_data32 --_ACEOF -- -- --echo "$as_me:$LINENO: result: $grub_cv_asm_prefix_requirement" >&5 --echo "${ECHO_T}$grub_cv_asm_prefix_requirement" >&6 -- -- -- --echo "$as_me:$LINENO: checking for .code16 addr32 assembler support" >&5 --echo $ECHO_N "checking for .code16 addr32 assembler support... $ECHO_C" >&6 --if test "${grub_cv_asm_addr32+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat > conftest.s.in <<\EOF -- .code16 --l1: @ADDR32@ movb %al, l1 --EOF -- --if test "x$grub_cv_asm_prefix_requirement" = xyes; then -- sed -e s/@ADDR32@/addr32/ < conftest.s.in > conftest.s --else -- sed -e s/@ADDR32@/addr32\;/ < conftest.s.in > conftest.s --fi -- --if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && test -s conftest.o; then -- grub_cv_asm_addr32=yes --else -- grub_cv_asm_addr32=no --fi -- --rm -f conftest* --fi -- -- --echo "$as_me:$LINENO: result: $grub_cv_asm_addr32" >&5 --echo "${ECHO_T}$grub_cv_asm_addr32" >&6 --if test "x$grub_cv_asm_addr32" != xyes; then -- { { echo "$as_me:$LINENO: error: GRUB requires GAS .code16 addr32 support; upgrade your binutils" >&5 --echo "$as_me: error: GRUB requires GAS .code16 addr32 support; upgrade your binutils" >&2;} -- { (exit 1); exit 1; }; } --fi -- -- --echo "$as_me:$LINENO: checking whether an absolute indirect call/jump must not be prefixed with an asterisk" >&5 --echo $ECHO_N "checking whether an absolute indirect call/jump must not be prefixed with an asterisk... $ECHO_C" >&6 --if test "${grub_cv_asm_absolute_without_asterisk+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat > conftest.s <<\EOF -- lcall *(offset) --offset: -- .long 0 -- .word 0 --EOF -- --if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && test -s conftest.o; then -- grub_cv_asm_absolute_without_asterisk=no --else -- grub_cv_asm_absolute_without_asterisk=yes --fi -- --rm -f conftest* --fi -- -- --if test "x$grub_cv_asm_absolute_without_asterisk" = xyes; then -- --cat >>confdefs.h <<\_ACEOF --#define ABSOLUTE_WITHOUT_ASTERISK 1 --_ACEOF -- --fi -- --echo "$as_me:$LINENO: result: $grub_cv_asm_absolute_without_asterisk" >&5 --echo "${ECHO_T}$grub_cv_asm_absolute_without_asterisk" >&6 -- -- --echo "$as_me:$LINENO: checking if start is defined by the compiler" >&5 --echo $ECHO_N "checking if start is defined by the compiler... $ECHO_C" >&6 --if test "${grub_cv_check_start_symbol+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --int --main () --{ --asm ("incl start") -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -- (eval $ac_link) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest$ac_exeext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- grub_cv_check_start_symbol=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --grub_cv_check_start_symbol=no --fi --rm -f conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext --fi -- -- --if test "x$grub_cv_check_start_symbol" = xyes; then -- --cat >>confdefs.h <<\_ACEOF --#define HAVE_START_SYMBOL 1 --_ACEOF -- --fi -- --echo "$as_me:$LINENO: result: $grub_cv_check_start_symbol" >&5 --echo "${ECHO_T}$grub_cv_check_start_symbol" >&6 -- -- --echo "$as_me:$LINENO: checking if _start is defined by the compiler" >&5 --echo $ECHO_N "checking if _start is defined by the compiler... $ECHO_C" >&6 --if test "${grub_cv_check_uscore_start_symbol+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --int --main () --{ --asm ("incl _start") -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -- (eval $ac_link) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest$ac_exeext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- grub_cv_check_uscore_start_symbol=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --grub_cv_check_uscore_start_symbol=no --fi --rm -f conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext --fi -- -- --if test "x$grub_cv_check_uscore_start_symbol" = xyes; then -- --cat >>confdefs.h <<\_ACEOF --#define HAVE_USCORE_START_SYMBOL 1 --_ACEOF -- --fi -- --echo "$as_me:$LINENO: result: $grub_cv_check_uscore_start_symbol" >&5 --echo "${ECHO_T}$grub_cv_check_uscore_start_symbol" >&6 -- --if test "x$grub_cv_check_start_symbol" != "xyes" \ -- -a "x$grub_cv_check_uscore_start_symbol" != "xyes"; then -- { { echo "$as_me:$LINENO: error: Neither start nor _start is defined" >&5 --echo "$as_me: error: Neither start nor _start is defined" >&2;} -- { (exit 1); exit 1; }; } --fi -- -- --echo "$as_me:$LINENO: checking if __bss_start is defined by the compiler" >&5 --echo $ECHO_N "checking if __bss_start is defined by the compiler... $ECHO_C" >&6 --if test "${grub_cv_check_uscore_uscore_bss_start_symbol+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --int --main () --{ --asm ("incl __bss_start") -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -- (eval $ac_link) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest$ac_exeext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- grub_cv_check_uscore_uscore_bss_start_symbol=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --grub_cv_check_uscore_uscore_bss_start_symbol=no --fi --rm -f conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext --fi -- -- --if test "x$grub_cv_check_uscore_uscore_bss_start_symbol" = xyes; then -- --cat >>confdefs.h <<\_ACEOF --#define HAVE_USCORE_USCORE_BSS_START_SYMBOL 1 --_ACEOF -- --fi -- --echo "$as_me:$LINENO: result: $grub_cv_check_uscore_uscore_bss_start_symbol" >&5 --echo "${ECHO_T}$grub_cv_check_uscore_uscore_bss_start_symbol" >&6 -- -- --echo "$as_me:$LINENO: checking if _edata is defined by the compiler" >&5 --echo $ECHO_N "checking if _edata is defined by the compiler... $ECHO_C" >&6 --if test "${grub_cv_check_uscore_edata_symbol+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --int --main () --{ --asm ("incl _edata") -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -- (eval $ac_link) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest$ac_exeext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- grub_cv_check_uscore_edata_symbol=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --grub_cv_check_uscore_edata_symbol=no --fi --rm -f conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext --fi -- -- --if test "x$grub_cv_check_uscore_edata_symbol" = xyes; then -- --cat >>confdefs.h <<\_ACEOF --#define HAVE_USCORE_EDATA_SYMBOL 1 --_ACEOF -- --fi -- --echo "$as_me:$LINENO: result: $grub_cv_check_uscore_edata_symbol" >&5 --echo "${ECHO_T}$grub_cv_check_uscore_edata_symbol" >&6 -- -- --echo "$as_me:$LINENO: checking if edata is defined by the compiler" >&5 --echo $ECHO_N "checking if edata is defined by the compiler... $ECHO_C" >&6 --if test "${grub_cv_check_edata_symbol+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --int --main () --{ --asm ("incl edata") -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -- (eval $ac_link) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest$ac_exeext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- grub_cv_check_edata_symbol=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --grub_cv_check_edata_symbol=no --fi --rm -f conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext --fi -- -- --if test "x$grub_cv_check_edata_symbol" = xyes; then -- --cat >>confdefs.h <<\_ACEOF --#define HAVE_EDATA_SYMBOL 1 --_ACEOF -- --fi -- --echo "$as_me:$LINENO: result: $grub_cv_check_edata_symbol" >&5 --echo "${ECHO_T}$grub_cv_check_edata_symbol" >&6 -- --if test "x$grub_cv_check_uscore_uscore_bss_start_symbol" != "xyes" \ -- -a "x$grub_cv_check_uscore_edata_symbol" != "xyes" \ -- -a "x$grub_cv_check_edata_symbol" != "xyes"; then -- { { echo "$as_me:$LINENO: error: None of __bss_start, _edata, edata defined" >&5 --echo "$as_me: error: None of __bss_start, _edata, edata defined" >&2;} -- { (exit 1); exit 1; }; } --fi -- -- --echo "$as_me:$LINENO: checking if end is defined by the compiler" >&5 --echo $ECHO_N "checking if end is defined by the compiler... $ECHO_C" >&6 --if test "${grub_cv_check_end_symbol+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --int --main () --{ --asm ("incl end") -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -- (eval $ac_link) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest$ac_exeext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- grub_cv_check_end_symbol=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --grub_cv_check_end_symbol=no --fi --rm -f conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext --fi -- -- --if test "x$grub_cv_check_end_symbol" = xyes; then -- --cat >>confdefs.h <<\_ACEOF --#define HAVE_END_SYMBOL 1 --_ACEOF -- --fi -- --echo "$as_me:$LINENO: result: $grub_cv_check_end_symbol" >&5 --echo "${ECHO_T}$grub_cv_check_end_symbol" >&6 -- -- --echo "$as_me:$LINENO: checking if _end is defined by the compiler" >&5 --echo $ECHO_N "checking if _end is defined by the compiler... $ECHO_C" >&6 --if test "${grub_cv_check_uscore_end_symbol+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --int --main () --{ --asm ("incl _end") -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -- (eval $ac_link) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest$ac_exeext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- grub_cv_check_uscore_end_symbol=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --grub_cv_check_uscore_end_symbol=no --fi --rm -f conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext --fi -- -- --if test "x$grub_cv_check_uscore_end_symbol" = xyes; then -- --cat >>confdefs.h <<\_ACEOF --#define HAVE_USCORE_END_SYMBOL 1 --_ACEOF -- --fi -- --echo "$as_me:$LINENO: result: $grub_cv_check_uscore_end_symbol" >&5 --echo "${ECHO_T}$grub_cv_check_uscore_end_symbol" >&6 -- --if test "x$grub_cv_check_end_symbol" != "xyes" \ -- -a "x$grub_cv_check_uscore_end_symbol" != "xyes"; then -- { { echo "$as_me:$LINENO: error: Neither end nor _end is defined" >&5 --echo "$as_me: error: Neither end nor _end is defined" >&2;} -- { (exit 1); exit 1; }; } --fi -- --# Check for curses libraries. -- --# Check whether --with-curses or --without-curses was given. --if test "${with_curses+set}" = set; then -- withval="$with_curses" -- --fi; -- --# Get the filename or the whole disk and open it. --# Known to work on NetBSD. --echo "$as_me:$LINENO: checking for opendisk in -lutil" >&5 --echo $ECHO_N "checking for opendisk in -lutil... $ECHO_C" >&6 --if test "${ac_cv_lib_util_opendisk+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-lutil $LIBS" --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --/* Override any gcc2 internal prototype to avoid an error. */ --#ifdef __cplusplus --extern "C" --#endif --/* We use char because int might match the return type of a gcc2 -- builtin and then its argument prototype would still apply. */ --char opendisk (); --int --main () --{ --opendisk (); -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -- (eval $ac_link) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest$ac_exeext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- ac_cv_lib_util_opendisk=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --ac_cv_lib_util_opendisk=no --fi --rm -f conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext --LIBS=$ac_check_lib_save_LIBS --fi --echo "$as_me:$LINENO: result: $ac_cv_lib_util_opendisk" >&5 --echo "${ECHO_T}$ac_cv_lib_util_opendisk" >&6 --if test $ac_cv_lib_util_opendisk = yes; then -- GRUB_LIBS="$GRUB_LIBS -lutil" -- --cat >>confdefs.h <<\_ACEOF --#define HAVE_OPENDISK 1 --_ACEOF -- --fi -- -- --# Unless the user specify --without-curses, check for curses. --if test "x$with_curses" != "xno"; then -- echo "$as_me:$LINENO: checking for wgetch in -lncurses" >&5 --echo $ECHO_N "checking for wgetch in -lncurses... $ECHO_C" >&6 --if test "${ac_cv_lib_ncurses_wgetch+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-lncurses $LIBS" --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --/* Override any gcc2 internal prototype to avoid an error. */ --#ifdef __cplusplus --extern "C" --#endif --/* We use char because int might match the return type of a gcc2 -- builtin and then its argument prototype would still apply. */ --char wgetch (); --int --main () --{ --wgetch (); -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -- (eval $ac_link) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest$ac_exeext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- ac_cv_lib_ncurses_wgetch=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --ac_cv_lib_ncurses_wgetch=no --fi --rm -f conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext --LIBS=$ac_check_lib_save_LIBS --fi --echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_wgetch" >&5 --echo "${ECHO_T}$ac_cv_lib_ncurses_wgetch" >&6 --if test $ac_cv_lib_ncurses_wgetch = yes; then -- GRUB_LIBS="$GRUB_LIBS -lncurses" -- --cat >>confdefs.h <<\_ACEOF --#define HAVE_LIBCURSES 1 --_ACEOF -- --else -- echo "$as_me:$LINENO: checking for wgetch in -lcurses" >&5 --echo $ECHO_N "checking for wgetch in -lcurses... $ECHO_C" >&6 --if test "${ac_cv_lib_curses_wgetch+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-lcurses $LIBS" --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --/* Override any gcc2 internal prototype to avoid an error. */ --#ifdef __cplusplus --extern "C" --#endif --/* We use char because int might match the return type of a gcc2 -- builtin and then its argument prototype would still apply. */ --char wgetch (); --int --main () --{ --wgetch (); -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -- (eval $ac_link) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest$ac_exeext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- ac_cv_lib_curses_wgetch=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --ac_cv_lib_curses_wgetch=no --fi --rm -f conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext --LIBS=$ac_check_lib_save_LIBS --fi --echo "$as_me:$LINENO: result: $ac_cv_lib_curses_wgetch" >&5 --echo "${ECHO_T}$ac_cv_lib_curses_wgetch" >&6 --if test $ac_cv_lib_curses_wgetch = yes; then -- GRUB_LIBS="$GRUB_LIBS -lcurses" -- --cat >>confdefs.h <<\_ACEOF --#define HAVE_LIBCURSES 1 --_ACEOF -- --fi -- --fi -- --fi -- -- -- --# Check for headers. --ac_ext=c --ac_cpp='$CPP $CPPFLAGS' --ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' --ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' --ac_compiler_gnu=$ac_cv_c_compiler_gnu --echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 --echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 --# On Suns, sometimes $CPP names a directory. --if test -n "$CPP" && test -d "$CPP"; then -- CPP= --fi --if test -z "$CPP"; then -- if test "${ac_cv_prog_CPP+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- # Double quotes because CPP needs to be expanded -- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" -- do -- ac_preproc_ok=false --for ac_c_preproc_warn_flag in '' yes --do -- # Use a header file that comes with gcc, so configuring glibc -- # with a fresh cross-compiler works. -- # Prefer to if __STDC__ is defined, since -- # exists even on freestanding compilers. -- # On the NeXT, cc -E runs the code through the compiler's parser, -- # not just through cpp. "Syntax error" is here to catch this case. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#ifdef __STDC__ --# include --#else --# include --#endif -- Syntax error --_ACEOF --if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 -- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } >/dev/null; then -- if test -s conftest.err; then -- ac_cpp_err=$ac_c_preproc_warn_flag -- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag -- else -- ac_cpp_err= -- fi --else -- ac_cpp_err=yes --fi --if test -z "$ac_cpp_err"; then -- : --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- # Broken: fails on valid input. --continue --fi --rm -f conftest.err conftest.$ac_ext -- -- # OK, works on sane cases. Now check whether non-existent headers -- # can be detected and how. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include --_ACEOF --if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 -- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } >/dev/null; then -- if test -s conftest.err; then -- ac_cpp_err=$ac_c_preproc_warn_flag -- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag -- else -- ac_cpp_err= -- fi --else -- ac_cpp_err=yes --fi --if test -z "$ac_cpp_err"; then -- # Broken: success on invalid input. --continue --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- # Passes both tests. --ac_preproc_ok=: --break --fi --rm -f conftest.err conftest.$ac_ext -- --done --# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. --rm -f conftest.err conftest.$ac_ext --if $ac_preproc_ok; then -- break --fi -- -- done -- ac_cv_prog_CPP=$CPP -- --fi -- CPP=$ac_cv_prog_CPP --else -- ac_cv_prog_CPP=$CPP --fi --echo "$as_me:$LINENO: result: $CPP" >&5 --echo "${ECHO_T}$CPP" >&6 --ac_preproc_ok=false --for ac_c_preproc_warn_flag in '' yes --do -- # Use a header file that comes with gcc, so configuring glibc -- # with a fresh cross-compiler works. -- # Prefer to if __STDC__ is defined, since -- # exists even on freestanding compilers. -- # On the NeXT, cc -E runs the code through the compiler's parser, -- # not just through cpp. "Syntax error" is here to catch this case. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#ifdef __STDC__ --# include --#else --# include --#endif -- Syntax error --_ACEOF --if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 -- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } >/dev/null; then -- if test -s conftest.err; then -- ac_cpp_err=$ac_c_preproc_warn_flag -- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag -- else -- ac_cpp_err= -- fi --else -- ac_cpp_err=yes --fi --if test -z "$ac_cpp_err"; then -- : --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- # Broken: fails on valid input. --continue --fi --rm -f conftest.err conftest.$ac_ext -- -- # OK, works on sane cases. Now check whether non-existent headers -- # can be detected and how. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include --_ACEOF --if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 -- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } >/dev/null; then -- if test -s conftest.err; then -- ac_cpp_err=$ac_c_preproc_warn_flag -- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag -- else -- ac_cpp_err= -- fi --else -- ac_cpp_err=yes --fi --if test -z "$ac_cpp_err"; then -- # Broken: success on invalid input. --continue --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- # Passes both tests. --ac_preproc_ok=: --break --fi --rm -f conftest.err conftest.$ac_ext -- --done --# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. --rm -f conftest.err conftest.$ac_ext --if $ac_preproc_ok; then -- : --else -- { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check --See \`config.log' for more details." >&5 --echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check --See \`config.log' for more details." >&2;} -- { (exit 1); exit 1; }; } --fi -- --ac_ext=c --ac_cpp='$CPP $CPPFLAGS' --ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' --ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' --ac_compiler_gnu=$ac_cv_c_compiler_gnu -- -- --echo "$as_me:$LINENO: checking for egrep" >&5 --echo $ECHO_N "checking for egrep... $ECHO_C" >&6 --if test "${ac_cv_prog_egrep+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if echo a | (grep -E '(a|b)') >/dev/null 2>&1 -- then ac_cv_prog_egrep='grep -E' -- else ac_cv_prog_egrep='egrep' -- fi --fi --echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 --echo "${ECHO_T}$ac_cv_prog_egrep" >&6 -- EGREP=$ac_cv_prog_egrep -- -- --echo "$as_me:$LINENO: checking for ANSI C header files" >&5 --echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 --if test "${ac_cv_header_stdc+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include --#include --#include --#include -- --int --main () --{ -- -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext --if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -- (eval $ac_compile) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest.$ac_objext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- ac_cv_header_stdc=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --ac_cv_header_stdc=no --fi --rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -- --if test $ac_cv_header_stdc = yes; then -- # SunOS 4.x string.h does not declare mem*, contrary to ANSI. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include -- --_ACEOF --if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -- $EGREP "memchr" >/dev/null 2>&1; then -- : --else -- ac_cv_header_stdc=no --fi --rm -f conftest* -- --fi -- --if test $ac_cv_header_stdc = yes; then -- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include -- --_ACEOF --if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | -- $EGREP "free" >/dev/null 2>&1; then -- : --else -- ac_cv_header_stdc=no --fi --rm -f conftest* -- --fi -- --if test $ac_cv_header_stdc = yes; then -- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. -- if test "$cross_compiling" = yes; then -- : --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include --#if ((' ' & 0x0FF) == 0x020) --# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') --# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) --#else --# define ISLOWER(c) \ -- (('a' <= (c) && (c) <= 'i') \ -- || ('j' <= (c) && (c) <= 'r') \ -- || ('s' <= (c) && (c) <= 'z')) --# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) --#endif -- --#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) --int --main () --{ -- int i; -- for (i = 0; i < 256; i++) -- if (XOR (islower (i), ISLOWER (i)) -- || toupper (i) != TOUPPER (i)) -- exit(2); -- exit (0); --} --_ACEOF --rm -f conftest$ac_exeext --if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 -- (eval $ac_link) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && { ac_try='./conftest$ac_exeext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- : --else -- echo "$as_me: program exited with status $ac_status" >&5 --echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --( exit $ac_status ) --ac_cv_header_stdc=no --fi --rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext --fi --fi --fi --echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 --echo "${ECHO_T}$ac_cv_header_stdc" >&6 --if test $ac_cv_header_stdc = yes; then -- --cat >>confdefs.h <<\_ACEOF --#define STDC_HEADERS 1 --_ACEOF -- --fi -- --# On IRIX 5.3, sys/types and inttypes.h are conflicting. -- -- -- -- -- -- -- -- -- --for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ -- inttypes.h stdint.h unistd.h --do --as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` --echo "$as_me:$LINENO: checking for $ac_header" >&5 --echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 --if eval "test \"\${$as_ac_Header+set}\" = set"; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default -- --#include <$ac_header> --_ACEOF --rm -f conftest.$ac_objext --if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -- (eval $ac_compile) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest.$ac_objext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- eval "$as_ac_Header=yes" --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --eval "$as_ac_Header=no" --fi --rm -f conftest.err conftest.$ac_objext conftest.$ac_ext --fi --echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 --echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --if test `eval echo '${'$as_ac_Header'}'` = yes; then -- cat >>confdefs.h <<_ACEOF --#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 --_ACEOF -- --fi -- --done -- -- -- -- -- -- -- --for ac_header in string.h strings.h ncurses/curses.h ncurses.h curses.h --do --as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` --if eval "test \"\${$as_ac_Header+set}\" = set"; then -- echo "$as_me:$LINENO: checking for $ac_header" >&5 --echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 --if eval "test \"\${$as_ac_Header+set}\" = set"; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --fi --echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 --echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 --else -- # Is the header compilable? --echo "$as_me:$LINENO: checking $ac_header usability" >&5 --echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --$ac_includes_default --#include <$ac_header> --_ACEOF --rm -f conftest.$ac_objext --if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 -- (eval $ac_compile) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" -- || test ! -s conftest.err' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest.$ac_objext' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- ac_header_compiler=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --ac_header_compiler=no --fi --rm -f conftest.err conftest.$ac_objext conftest.$ac_ext --echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 --echo "${ECHO_T}$ac_header_compiler" >&6 -- --# Is the header present? --echo "$as_me:$LINENO: checking $ac_header presence" >&5 --echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ --#include <$ac_header> --_ACEOF --if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 -- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } >/dev/null; then -- if test -s conftest.err; then -- ac_cpp_err=$ac_c_preproc_warn_flag -- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag -- else -- ac_cpp_err= -- fi --else -- ac_cpp_err=yes --fi --if test -z "$ac_cpp_err"; then -- ac_header_preproc=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_header_preproc=no --fi --rm -f conftest.err conftest.$ac_ext --echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 --echo "${ECHO_T}$ac_header_preproc" >&6 -- --# So? What about this header? --case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in -- yes:no: ) -- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 --echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} -- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 --echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} -- ac_header_preproc=yes -- ;; -- no:yes:* ) -- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 --echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} -- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 --echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} -- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 --echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} -- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 --echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} -- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 --echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} -- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 --echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} -- ( -- cat <<\_ASBOX --## ------------------------------- ## --## Report this to bug-grub@gnu.org ## --## ------------------------------- ## --_ASBOX -- ) | -- sed "s/^/$as_me: WARNING: /" >&2 -- ;; --esac --echo "$as_me:$LINENO: checking for $ac_header" >&5 --echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 --if eval "test \"\${$as_ac_Header+set}\" = set"; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- eval "$as_ac_Header=\$ac_header_preproc" --fi --echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 --echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -- --fi --if test `eval echo '${'$as_ac_Header'}'` = yes; then -- cat >>confdefs.h <<_ACEOF --#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 --_ACEOF -- --fi -- --done -- -- --# Check for user options. -- --# filesystems support. --# Check whether --enable-ext2fs or --disable-ext2fs was given. --if test "${enable_ext2fs+set}" = set; then -- enableval="$enable_ext2fs" -- --fi; -- --if test x"$enable_ext2fs" != xno; then -- FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_EXT2FS=1" --fi -- --# Check whether --enable-fat or --disable-fat was given. --if test "${enable_fat+set}" = set; then -- enableval="$enable_fat" -- --fi; -- --if test x"$enable_fat" != xno; then -- FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_FAT=1" --fi -- --# Check whether --enable-ffs or --disable-ffs was given. --if test "${enable_ffs+set}" = set; then -- enableval="$enable_ffs" -- --fi; -- --if test x"$enable_ffs" != xno; then -- FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_FFS=1" --fi -- --# Check whether --enable-ufs2 or --disable-ufs2 was given. --if test "${enable_ufs2+set}" = set; then -- enableval="$enable_ufs2" -- --fi; -- --if test x"$enable_ufs2" != xno; then -- FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_UFS2=1" --fi -- --# Check whether --enable-minix or --disable-minix was given. --if test "${enable_minix+set}" = set; then -- enableval="$enable_minix" -- --fi; -- --if test x"$enable_minix" != xno; then -- FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_MINIX=1" --fi -- --# Check whether --enable-reiserfs or --disable-reiserfs was given. --if test "${enable_reiserfs+set}" = set; then -- enableval="$enable_reiserfs" -- --fi; -- --if test x"$enable_reiserfs" != xno; then -- FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_REISERFS=1" --fi -- --# Check whether --enable-vstafs or --disable-vstafs was given. --if test "${enable_vstafs+set}" = set; then -- enableval="$enable_vstafs" -- --fi; -- --if test x"$enable_vstafs" != xno; then -- FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_VSTAFS=1" --fi -- --# Check whether --enable-jfs or --disable-jfs was given. --if test "${enable_jfs+set}" = set; then -- enableval="$enable_jfs" -- --fi; -- --if test x"$enable_jfs" != xno; then -- FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_JFS=1" --fi -- --# Check whether --enable-xfs or --disable-xfs was given. --if test "${enable_xfs+set}" = set; then -- enableval="$enable_xfs" -- --fi; -- --if test x"$enable_xfs" != xno; then -- FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_XFS=1" --fi -- --# Check whether --enable-iso9660 or --disable-iso9660 was given. --if test "${enable_iso9660+set}" = set; then -- enableval="$enable_iso9660" -- --fi; -- --if test x"$enable_iso9660" != xno; then -- FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_ISO9660=1" --fi -- -- --# Check whether --enable-gunzip or --disable-gunzip was given. --if test "${enable_gunzip+set}" = set; then -- enableval="$enable_gunzip" -- --fi; -- --if test x"$enable_gunzip" = xno; then -- FSYS_CFLAGS="$FSYS_CFLAGS -DNO_DECOMPRESSION=1" --fi -- --# Check whether --enable-md5-password or --disable-md5-password was given. --if test "${enable_md5_password+set}" = set; then -- enableval="$enable_md5_password" -- --fi; --if test "x$enable_md5_password" != xno; then -- FSYS_CFLAGS="$FSYS_CFLAGS -DUSE_MD5_PASSWORDS=1" --fi -- --# Check whether --enable-packet-retransmission or --disable-packet-retransmission was given. --if test "${enable_packet_retransmission+set}" = set; then -- enableval="$enable_packet_retransmission" -- --fi; --if test "x$enable_packet_retransmission" != xno; then -- NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCONGESTED=1" --fi -- --# Check whether --enable-pci-direct or --disable-pci-direct was given. --if test "${enable_pci_direct+set}" = set; then -- enableval="$enable_pci_direct" -- --fi; --if test "x$enable_pci_direct" = xyes; then -- NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCONFIG_PCI_DIRECT=1" --fi -- --# Check whether --enable-3c509 or --disable-3c509 was given. --if test "${enable_3c509+set}" = set; then -- enableval="$enable_3c509" -- --fi; --if test "x$enable_3c509" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C509" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c509.o" --fi -- --# Check whether --enable-3c529 or --disable-3c529 was given. --if test "${enable_3c529+set}" = set; then -- enableval="$enable_3c529" -- --fi; --if test "x$enable_3c529" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C529=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c529.o" --fi -- --# Check whether --enable-3c595 or --disable-3c595 was given. --if test "${enable_3c595+set}" = set; then -- enableval="$enable_3c595" -- --fi; --if test "x$enable_3c595" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C595=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c595.o" --fi -- --# Check whether --enable-3c90x or --disable-3c90x was given. --if test "${enable_3c90x+set}" = set; then -- enableval="$enable_3c90x" -- --fi; --if test "x$enable_3c90x" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C90X=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c90x.o" --fi -- --# Check whether --enable-cs89x0 or --disable-cs89x0 was given. --if test "${enable_cs89x0+set}" = set; then -- enableval="$enable_cs89x0" -- --fi; --if test "x$enable_cs89x0" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_CS89X0=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS cs89x0.o" --fi -- --# Check whether --enable-davicom or --disable-davicom was given. --if test "${enable_davicom+set}" = set; then -- enableval="$enable_davicom" -- --fi; --if test "x$enable_davicom" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_DAVICOM=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS davicom.o" --fi -- --# Check whether --enable-depca or --disable-depca was given. --if test "${enable_depca+set}" = set; then -- enableval="$enable_depca" -- --fi; --if test "x$enable_depca" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_DEPCA=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS depca.o" --fi -- --# Check whether --enable-eepro or --disable-eepro was given. --if test "${enable_eepro+set}" = set; then -- enableval="$enable_eepro" -- --fi; --if test "x$enable_eepro" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EEPRO=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS eepro.o" --fi -- --# Check whether --enable-eepro100 or --disable-eepro100 was given. --if test "${enable_eepro100+set}" = set; then -- enableval="$enable_eepro100" -- --fi; --if test "x$enable_eepro100" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EEPRO100=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS eepro100.o" --fi -- --# Check whether --enable-epic100 or --disable-epic100 was given. --if test "${enable_epic100+set}" = set; then -- enableval="$enable_epic100" -- --fi; --if test "x$enable_epic100" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EPIC100=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS epic100.o" --fi -- --# Check whether --enable-3c507 or --disable-3c507 was given. --if test "${enable_3c507+set}" = set; then -- enableval="$enable_3c507" -- --fi; --if test "x$enable_3c507" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C507=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c507.o" --fi -- --# Check whether --enable-exos205 or --disable-exos205 was given. --if test "${enable_exos205+set}" = set; then -- enableval="$enable_exos205" -- --fi; --if test "x$enable_exos205" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EXOS205=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS exos205.o" --fi -- --# Check whether --enable-ni5210 or --disable-ni5210 was given. --if test "${enable_ni5210+set}" = set; then -- enableval="$enable_ni5210" -- --fi; --if test "x$enable_ni5210" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NI5210=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS ni5210.o" --fi -- --# Check whether --enable-lance or --disable-lance was given. --if test "${enable_lance+set}" = set; then -- enableval="$enable_lance" -- --fi; --if test "x$enable_lance" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_LANCE=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS lance.o" --fi -- --# Check whether --enable-ne2100 or --disable-ne2100 was given. --if test "${enable_ne2100+set}" = set; then -- enableval="$enable_ne2100" -- --fi; --if test "x$enable_ne2100" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NE2100=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS ne2100.o" --fi -- --# Check whether --enable-ni6510 or --disable-ni6510 was given. --if test "${enable_ni6510+set}" = set; then -- enableval="$enable_ni6510" -- --fi; --if test "x$enable_ni6510" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NI6510=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS ni6510.o" --fi -- --# Check whether --enable-natsemi or --disable-natsemi was given. --if test "${enable_natsemi+set}" = set; then -- enableval="$enable_natsemi" -- --fi; --if test "x$enable_natsemi" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NATSEMI=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS natsemi.o" --fi -- --# Check whether --enable-ni5010 or --disable-ni5010 was given. --if test "${enable_ni5010+set}" = set; then -- enableval="$enable_ni5010" -- --fi; --if test "x$enable_ni5010" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NI5010=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS ni5010.o" --fi -- --# Check whether --enable-3c503 or --disable-3c503 was given. --if test "${enable_3c503+set}" = set; then -- enableval="$enable_3c503" -- --fi; --if test "x$enable_3c503" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C503=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c503.o" --fi -- --# Check whether --enable-ne or --disable-ne was given. --if test "${enable_ne+set}" = set; then -- enableval="$enable_ne" -- --fi; --if test "x$enable_ne" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NE=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS ne.o" --fi -- --# Check whether --enable-ns8390 or --disable-ns8390 was given. --if test "${enable_ns8390+set}" = set; then -- enableval="$enable_ns8390" -- --fi; --if test "x$enable_ns8390" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NS8390=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS ns8390.o" --fi -- --# Check whether --enable-wd or --disable-wd was given. --if test "${enable_wd+set}" = set; then -- enableval="$enable_wd" -- --fi; --if test "x$enable_wd" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_WD=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS wd.o" --fi -- --# Check whether --enable-otulip or --disable-otulip was given. --if test "${enable_otulip+set}" = set; then -- enableval="$enable_otulip" -- --fi; --if test "x$enable_otulip" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_OTULIP=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS otulip.o" --fi -- --# Check whether --enable-rtl8139 or --disable-rtl8139 was given. --if test "${enable_rtl8139+set}" = set; then -- enableval="$enable_rtl8139" -- --fi; --if test "x$enable_rtl8139" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_RTL8139=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS rtl8139.o" --fi -- --# Check whether --enable-sis900 or --disable-sis900 was given. --if test "${enable_sis900+set}" = set; then -- enableval="$enable_sis900" -- --fi; --if test "x$enable_sis900" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_SIS900=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS sis900.o" --fi -- --# Check whether --enable-sk-g16 or --disable-sk-g16 was given. --if test "${enable_sk_g16+set}" = set; then -- enableval="$enable_sk_g16" -- --fi; --if test "x$enable_sk_g16" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_SK_G16=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS sk_g16.o" --fi -- --# Check whether --enable-smc9000 or --disable-smc9000 was given. --if test "${enable_smc9000+set}" = set; then -- enableval="$enable_smc9000" -- --fi; --if test "x$enable_smc9000" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_SMC9000=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS smc9000.o" --fi -- --# Check whether --enable-tiara or --disable-tiara was given. --if test "${enable_tiara+set}" = set; then -- enableval="$enable_tiara" -- --fi; --if test "x$enable_tiara" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_TIARA=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS tiara.o" --fi -- --# Check whether --enable-tulip or --disable-tulip was given. --if test "${enable_tulip+set}" = set; then -- enableval="$enable_tulip" -- --fi; --if test "x$enable_tulip" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_TULIP=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS tulip.o" --fi -- --# Check whether --enable-via-rhine or --disable-via-rhine was given. --if test "${enable_via_rhine+set}" = set; then -- enableval="$enable_via_rhine" -- --fi; --if test "x$enable_via_rhine" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_VIA_RHINE=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS via_rhine.o" --fi -- --# Check whether --enable-w89c840 or --disable-w89c840 was given. --if test "${enable_w89c840+set}" = set; then -- enableval="$enable_w89c840" -- --fi; --if test "x$enable_w89c840" = xyes; then -- NET_CFLAGS="$NET_CFLAGS -DINCLUDE_W89C840=1" -- NETBOOT_DRIVERS="$NETBOOT_DRIVERS w89c840.o" --fi -- -- -- --if test "x$NET_CFLAGS" != x; then -- NETBOOT_SUPPORT_TRUE= -- NETBOOT_SUPPORT_FALSE='#' --else -- NETBOOT_SUPPORT_TRUE='#' -- NETBOOT_SUPPORT_FALSE= --fi -- --if test "x$NET_CFLAGS" != x; then -- FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_TFTP=1" --fi -- --# Check whether --enable-3c503-shmem or --disable-3c503-shmem was given. --if test "${enable_3c503_shmem+set}" = set; then -- enableval="$enable_3c503_shmem" -- --fi; --if test "x$enable_3c503_shmem" = xyes; then -- NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DT503_SHMEM=1" --fi -- --# Check whether --enable-3c503-aui or --disable-3c503-aui was given. --if test "${enable_3c503_aui+set}" = set; then -- enableval="$enable_3c503_aui" -- --fi; --if test "x$enable_3c503_aui" = xyes; then -- NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DT503_AUI=1" --fi -- --# Check whether --enable-compex-rl2000-fix or --disable-compex-rl2000-fix was given. --if test "${enable_compex_rl2000_fix+set}" = set; then -- enableval="$enable_compex_rl2000_fix" -- --fi; --if test "x$enable_compex_rl2000_fix" = xyes; then -- NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCOMPEX_RL2000_FIX=1" --fi -- --# Check whether --enable-smc9000-scan or --disable-smc9000-scan was given. --if test "${enable_smc9000_scan+set}" = set; then -- enableval="$enable_smc9000_scan" -- NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DSMC9000_SCAN=$enable_smc9000_scan" --fi; -- --# Check whether --enable-ne-scan or --disable-ne-scan was given. --if test "${enable_ne_scan+set}" = set; then -- enableval="$enable_ne_scan" -- NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DNE_SCAN=$enable_ne_scan" --else -- NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DNE_SCAN=0x280,0x300,0x320,0x340" --fi; -- --# Check whether --enable-wd-default-mem or --disable-wd-default-mem was given. --if test "${enable_wd_default_mem+set}" = set; then -- enableval="$enable_wd_default_mem" -- NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DWD_DEFAULT_MEM=$enable_wd_default_mem" --else -- NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DWD_DEFAULT_MEM=0xCC000" --fi; -- --# Check whether --enable-cs-scan or --disable-cs-scan was given. --if test "${enable_cs_scan+set}" = set; then -- enableval="$enable_cs_scan" -- NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCS_SCAN=$enable_cs_scan" --fi; -- --# Check whether --enable-diskless or --disable-diskless was given. --if test "${enable_diskless+set}" = set; then -- enableval="$enable_diskless" -- --fi; -- -- --if test "x$enable_diskless" = xyes; then -- DISKLESS_SUPPORT_TRUE= -- DISKLESS_SUPPORT_FALSE='#' --else -- DISKLESS_SUPPORT_TRUE='#' -- DISKLESS_SUPPORT_FALSE= --fi -- -- --# Check whether --enable-hercules or --disable-hercules was given. --if test "${enable_hercules+set}" = set; then -- enableval="$enable_hercules" -- --fi; -- -- --if test "x$enable_hercules" != xno; then -- HERCULES_SUPPORT_TRUE= -- HERCULES_SUPPORT_FALSE='#' --else -- HERCULES_SUPPORT_TRUE='#' -- HERCULES_SUPPORT_FALSE= --fi -- -- --# Check whether --enable-serial or --disable-serial was given. --if test "${enable_serial+set}" = set; then -- enableval="$enable_serial" -- --fi; -- -- --if test "x$enable_serial" != xno; then -- SERIAL_SUPPORT_TRUE= -- SERIAL_SUPPORT_FALSE='#' --else -- SERIAL_SUPPORT_TRUE='#' -- SERIAL_SUPPORT_FALSE= --fi -- -- --# Check whether --enable-serial-speed-simulation or --disable-serial-speed-simulation was given. --if test "${enable_serial_speed_simulation+set}" = set; then -- enableval="$enable_serial_speed_simulation" -- --fi; -- -- --if test "x$enable_serial_speed_simulation" = xyes; then -- SERIAL_SPEED_SIMULATION_TRUE= -- SERIAL_SPEED_SIMULATION_FALSE='#' --else -- SERIAL_SPEED_SIMULATION_TRUE='#' -- SERIAL_SPEED_SIMULATION_FALSE= --fi -- -- --# Sanity check. --if test "x$enable_diskless" = xyes; then -- if test "x$NET_CFLAGS" = x; then -- { { echo "$as_me:$LINENO: error: You must enable at least one network driver" >&5 --echo "$as_me: error: You must enable at least one network driver" >&2;} -- { (exit 1); exit 1; }; } -- fi --fi -- --# Check whether --enable-preset-menu or --disable-preset-menu was given. --if test "${enable_preset_menu+set}" = set; then -- enableval="$enable_preset_menu" -- --fi; --if test "x$enable_preset_menu" = x; then -- : --else -- if test -r $enable_preset_menu; then -- --# Because early versions of GNU sed 3.x are too buggy, use a C program --# instead of shell commands. *sigh* --cat >conftest.c <<\EOF --#include -- --int --main (void) --{ -- int c; -- -- while ((c = getchar ()) != EOF) -- { -- switch (c) -- { -- case '\n': -- fputs ("\\n", stdout); -- break; -- case '\r': -- fputs ("\\r", stdout); -- break; -- case '\\': -- fputs ("\\\\", stdout); -- break; -- case '"': -- fputs ("\\\"", stdout); -- break; -- default: -- putchar (c); -- } -- } -- -- return 0; --} --EOF -- --if { ac_try='${CC-cc} ${CFLAGS} conftest.c -o conftest' -- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 -- (eval $ac_try) 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && test -s conftest; then -- grub_tmp_value=`./conftest < "$enable_preset_menu"` --else -- { { echo "$as_me:$LINENO: error: ${CC-cc} failed to produce an executable file" >&5 --echo "$as_me: error: ${CC-cc} failed to produce an executable file" >&2;} -- { (exit 1); exit 1; }; } --fi -- -- --cat >>confdefs.h <<_ACEOF --#define PRESET_MENU_STRING "$grub_tmp_value" --_ACEOF -- --rm -f conftest* -- -- else -- { { echo "$as_me:$LINENO: error: Cannot read the preset menu file $enable_preset_menu" >&5 --echo "$as_me: error: Cannot read the preset menu file $enable_preset_menu" >&2;} -- { (exit 1); exit 1; }; } -- fi --fi -- --# Check whether --enable-example-kernel or --disable-example-kernel was given. --if test "${enable_example_kernel+set}" = set; then -- enableval="$enable_example_kernel" -- --fi; -- -- --if test "x$enable_example_kernel" = xyes; then -- BUILD_EXAMPLE_KERNEL_TRUE= -- BUILD_EXAMPLE_KERNEL_FALSE='#' --else -- BUILD_EXAMPLE_KERNEL_TRUE='#' -- BUILD_EXAMPLE_KERNEL_FALSE= --fi -- -- --# Check whether --enable-auto-linux-mem-opt or --disable-auto-linux-mem-opt was given. --if test "${enable_auto_linux_mem_opt+set}" = set; then -- enableval="$enable_auto_linux_mem_opt" -- --fi; --if test "x$enable_auto_linux_mem_opt" = xno; then -- : --else -- --cat >>confdefs.h <<\_ACEOF --#define AUTO_LINUX_MEM_OPT 1 --_ACEOF -- --fi -- -- -- -- -- -- --CCASFLAGS='$(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)' -- -- -- -- ac_config_files="$ac_config_files Makefile stage1/Makefile stage2/Makefile docs/Makefile lib/Makefile util/Makefile grub/Makefile netboot/Makefile util/grub-image util/grub-install util/grub-md5-crypt util/grub-terminfo util/grub-set-default" -- --cat >confcache <<\_ACEOF --# This file is a shell script that caches the results of configure --# tests run on this system so they can be shared between configure --# scripts and configure runs, see configure's option --config-cache. --# It is not useful on other systems. If it contains results you don't --# want to keep, you may remove or edit it. --# --# config.status only pays attention to the cache file if you give it --# the --recheck option to rerun configure. --# --# `ac_cv_env_foo' variables (set or unset) will be overridden when --# loading this file, other *unset* `ac_cv_foo' will be assigned the --# following values. -- --_ACEOF -- --# The following way of writing the cache mishandles newlines in values, --# but we know of no workaround that is simple, portable, and efficient. --# So, don't put newlines in cache variables' values. --# Ultrix sh set writes to stderr and can't be redirected directly, --# and sets the high bit in the cache file unless we assign to the vars. --{ -- (set) 2>&1 | -- case `(ac_space=' '; set | grep ac_space) 2>&1` in -- *ac_space=\ *) -- # `set' does not quote correctly, so add quotes (double-quote -- # substitution turns \\\\ into \\, and sed turns \\ into \). -- sed -n \ -- "s/'/'\\\\''/g; -- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" -- ;; -- *) -- # `set' quotes correctly as required by POSIX, so do not add quotes. -- sed -n \ -- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" -- ;; -- esac; --} | -- sed ' -- t clear -- : clear -- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ -- t end -- /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ -- : end' >>confcache --if diff $cache_file confcache >/dev/null 2>&1; then :; else -- if test -w $cache_file; then -- test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" -- cat confcache >$cache_file -- else -- echo "not updating unwritable cache $cache_file" -- fi --fi --rm -f confcache -- --test "x$prefix" = xNONE && prefix=$ac_default_prefix --# Let make expand exec_prefix. --test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' -- --# VPATH may cause trouble with some makes, so we remove $(srcdir), --# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and --# trailing colons and then remove the whole line if VPATH becomes empty --# (actually we leave an empty line to preserve line numbers). --if test "x$srcdir" = x.; then -- ac_vpsub='/^[ ]*VPATH[ ]*=/{ --s/:*\$(srcdir):*/:/; --s/:*\${srcdir}:*/:/; --s/:*@srcdir@:*/:/; --s/^\([^=]*=[ ]*\):*/\1/; --s/:*$//; --s/^[^=]*=[ ]*$//; --}' --fi -- --DEFS=-DHAVE_CONFIG_H -- --ac_libobjs= --ac_ltlibobjs= --for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue -- # 1. Remove the extension, and $U if already installed. -- ac_i=`echo "$ac_i" | -- sed 's/\$U\././;s/\.o$//;s/\.obj$//'` -- # 2. Add them. -- ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" -- ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' --done --LIBOBJS=$ac_libobjs -- --LTLIBOBJS=$ac_ltlibobjs -- -- --if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then -- { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. --Usually this means the macro was only invoked conditionally." >&5 --echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. --Usually this means the macro was only invoked conditionally." >&2;} -- { (exit 1); exit 1; }; } --fi --if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then -- { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. --Usually this means the macro was only invoked conditionally." >&5 --echo "$as_me: error: conditional \"AMDEP\" was never defined. --Usually this means the macro was only invoked conditionally." >&2;} -- { (exit 1); exit 1; }; } --fi --if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then -- { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. --Usually this means the macro was only invoked conditionally." >&5 --echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. --Usually this means the macro was only invoked conditionally." >&2;} -- { (exit 1); exit 1; }; } --fi --if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then -- { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. --Usually this means the macro was only invoked conditionally." >&5 --echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. --Usually this means the macro was only invoked conditionally." >&2;} -- { (exit 1); exit 1; }; } --fi --if test -z "${NETBOOT_SUPPORT_TRUE}" && test -z "${NETBOOT_SUPPORT_FALSE}"; then -- { { echo "$as_me:$LINENO: error: conditional \"NETBOOT_SUPPORT\" was never defined. --Usually this means the macro was only invoked conditionally." >&5 --echo "$as_me: error: conditional \"NETBOOT_SUPPORT\" was never defined. --Usually this means the macro was only invoked conditionally." >&2;} -- { (exit 1); exit 1; }; } --fi --if test -z "${DISKLESS_SUPPORT_TRUE}" && test -z "${DISKLESS_SUPPORT_FALSE}"; then -- { { echo "$as_me:$LINENO: error: conditional \"DISKLESS_SUPPORT\" was never defined. --Usually this means the macro was only invoked conditionally." >&5 --echo "$as_me: error: conditional \"DISKLESS_SUPPORT\" was never defined. --Usually this means the macro was only invoked conditionally." >&2;} -- { (exit 1); exit 1; }; } --fi --if test -z "${HERCULES_SUPPORT_TRUE}" && test -z "${HERCULES_SUPPORT_FALSE}"; then -- { { echo "$as_me:$LINENO: error: conditional \"HERCULES_SUPPORT\" was never defined. --Usually this means the macro was only invoked conditionally." >&5 --echo "$as_me: error: conditional \"HERCULES_SUPPORT\" was never defined. --Usually this means the macro was only invoked conditionally." >&2;} -- { (exit 1); exit 1; }; } --fi --if test -z "${SERIAL_SUPPORT_TRUE}" && test -z "${SERIAL_SUPPORT_FALSE}"; then -- { { echo "$as_me:$LINENO: error: conditional \"SERIAL_SUPPORT\" was never defined. --Usually this means the macro was only invoked conditionally." >&5 --echo "$as_me: error: conditional \"SERIAL_SUPPORT\" was never defined. --Usually this means the macro was only invoked conditionally." >&2;} -- { (exit 1); exit 1; }; } --fi --if test -z "${SERIAL_SPEED_SIMULATION_TRUE}" && test -z "${SERIAL_SPEED_SIMULATION_FALSE}"; then -- { { echo "$as_me:$LINENO: error: conditional \"SERIAL_SPEED_SIMULATION\" was never defined. --Usually this means the macro was only invoked conditionally." >&5 --echo "$as_me: error: conditional \"SERIAL_SPEED_SIMULATION\" was never defined. --Usually this means the macro was only invoked conditionally." >&2;} -- { (exit 1); exit 1; }; } --fi --if test -z "${BUILD_EXAMPLE_KERNEL_TRUE}" && test -z "${BUILD_EXAMPLE_KERNEL_FALSE}"; then -- { { echo "$as_me:$LINENO: error: conditional \"BUILD_EXAMPLE_KERNEL\" was never defined. --Usually this means the macro was only invoked conditionally." >&5 --echo "$as_me: error: conditional \"BUILD_EXAMPLE_KERNEL\" was never defined. --Usually this means the macro was only invoked conditionally." >&2;} -- { (exit 1); exit 1; }; } --fi -- --: ${CONFIG_STATUS=./config.status} --ac_clean_files_save=$ac_clean_files --ac_clean_files="$ac_clean_files $CONFIG_STATUS" --{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 --echo "$as_me: creating $CONFIG_STATUS" >&6;} --cat >$CONFIG_STATUS <<_ACEOF --#! $SHELL --# Generated by $as_me. --# Run this file to recreate the current configuration. --# Compiler output produced by configure, useful for debugging --# configure, is in config.log if it exists. -- --debug=false --ac_cs_recheck=false --ac_cs_silent=false --SHELL=\${CONFIG_SHELL-$SHELL} --_ACEOF -- --cat >>$CONFIG_STATUS <<\_ACEOF --## --------------------- ## --## M4sh Initialization. ## --## --------------------- ## -- --# Be Bourne compatible --if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then -- emulate sh -- NULLCMD=: -- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which -- # is contrary to our usage. Disable this feature. -- alias -g '${1+"$@"}'='"$@"' --elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then -- set -o posix --fi --DUALCASE=1; export DUALCASE # for MKS sh -- --# Support unset when possible. --if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then -- as_unset=unset --else -- as_unset=false --fi -- -- --# Work around bugs in pre-3.0 UWIN ksh. --$as_unset ENV MAIL MAILPATH --PS1='$ ' --PS2='> ' --PS4='+ ' -- --# NLS nuisances. --for as_var in \ -- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ -- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ -- LC_TELEPHONE LC_TIME --do -- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then -- eval $as_var=C; export $as_var -- else -- $as_unset $as_var -- fi --done -- --# Required to use basename. --if expr a : '\(a\)' >/dev/null 2>&1; then -- as_expr=expr --else -- as_expr=false --fi -- --if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then -- as_basename=basename --else -- as_basename=false --fi -- -- --# Name of the executable. --as_me=`$as_basename "$0" || --$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ -- X"$0" : 'X\(//\)$' \| \ -- X"$0" : 'X\(/\)$' \| \ -- . : '\(.\)' 2>/dev/null || --echo X/"$0" | -- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } -- /^X\/\(\/\/\)$/{ s//\1/; q; } -- /^X\/\(\/\).*/{ s//\1/; q; } -- s/.*/./; q'` -- -- --# PATH needs CR, and LINENO needs CR and PATH. --# Avoid depending upon Character Ranges. --as_cr_letters='abcdefghijklmnopqrstuvwxyz' --as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' --as_cr_Letters=$as_cr_letters$as_cr_LETTERS --as_cr_digits='0123456789' --as_cr_alnum=$as_cr_Letters$as_cr_digits -- --# The user is always right. --if test "${PATH_SEPARATOR+set}" != set; then -- echo "#! /bin/sh" >conf$$.sh -- echo "exit 0" >>conf$$.sh -- chmod +x conf$$.sh -- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then -- PATH_SEPARATOR=';' -- else -- PATH_SEPARATOR=: -- fi -- rm -f conf$$.sh --fi -- -- -- as_lineno_1=$LINENO -- as_lineno_2=$LINENO -- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` -- test "x$as_lineno_1" != "x$as_lineno_2" && -- test "x$as_lineno_3" = "x$as_lineno_2" || { -- # Find who we are. Look in the path if we contain no path at all -- # relative or not. -- case $0 in -- *[\\/]* ) as_myself=$0 ;; -- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break --done -- -- ;; -- esac -- # We did not find ourselves, most probably we were run as `sh COMMAND' -- # in which case we are not to be found in the path. -- if test "x$as_myself" = x; then -- as_myself=$0 -- fi -- if test ! -f "$as_myself"; then -- { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 --echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} -- { (exit 1); exit 1; }; } -- fi -- case $CONFIG_SHELL in -- '') -- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for as_base in sh bash ksh sh5; do -- case $as_dir in -- /*) -- if ("$as_dir/$as_base" -c ' -- as_lineno_1=$LINENO -- as_lineno_2=$LINENO -- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` -- test "x$as_lineno_1" != "x$as_lineno_2" && -- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then -- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } -- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } -- CONFIG_SHELL=$as_dir/$as_base -- export CONFIG_SHELL -- exec "$CONFIG_SHELL" "$0" ${1+"$@"} -- fi;; -- esac -- done --done --;; -- esac -- -- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO -- # uniformly replaced by the line number. The first 'sed' inserts a -- # line-number line before each line; the second 'sed' does the real -- # work. The second script uses 'N' to pair each line-number line -- # with the numbered line, and appends trailing '-' during -- # substitution so that $LINENO is not a special case at line end. -- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the -- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) -- sed '=' <$as_myself | -- sed ' -- N -- s,$,-, -- : loop -- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, -- t loop -- s,-$,, -- s,^['$as_cr_digits']*\n,, -- ' >$as_me.lineno && -- chmod +x $as_me.lineno || -- { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 --echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} -- { (exit 1); exit 1; }; } -- -- # Don't try to exec as it changes $[0], causing all sort of problems -- # (the dirname of $[0] is not the place where we might find the -- # original and so on. Autoconf is especially sensible to this). -- . ./$as_me.lineno -- # Exit status is that of the last command. -- exit --} -- -- --case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in -- *c*,-n*) ECHO_N= ECHO_C=' --' ECHO_T=' ' ;; -- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; -- *) ECHO_N= ECHO_C='\c' ECHO_T= ;; --esac -- --if expr a : '\(a\)' >/dev/null 2>&1; then -- as_expr=expr --else -- as_expr=false --fi -- --rm -f conf$$ conf$$.exe conf$$.file --echo >conf$$.file --if ln -s conf$$.file conf$$ 2>/dev/null; then -- # We could just check for DJGPP; but this test a) works b) is more generic -- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). -- if test -f conf$$.exe; then -- # Don't use ln at all; we don't have any links -- as_ln_s='cp -p' -- else -- as_ln_s='ln -s' -- fi --elif ln conf$$.file conf$$ 2>/dev/null; then -- as_ln_s=ln --else -- as_ln_s='cp -p' --fi --rm -f conf$$ conf$$.exe conf$$.file -- --if mkdir -p . 2>/dev/null; then -- as_mkdir_p=: --else -- test -d ./-p && rmdir ./-p -- as_mkdir_p=false --fi -- --as_executable_p="test -f" -- --# Sed expression to map a string onto a valid CPP name. --as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" -- --# Sed expression to map a string onto a valid variable name. --as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" -- -- --# IFS --# We need space, tab and new line, in precisely that order. --as_nl=' --' --IFS=" $as_nl" -- --# CDPATH. --$as_unset CDPATH -- --exec 6>&1 -- --# Open the log real soon, to keep \$[0] and so on meaningful, and to --# report actual input values of CONFIG_FILES etc. instead of their --# values after options handling. Logging --version etc. is OK. --exec 5>>config.log --{ -- echo -- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX --## Running $as_me. ## --_ASBOX --} >&5 --cat >&5 <<_CSEOF -- --This file was extended by GRUB $as_me 0.97, which was --generated by GNU Autoconf 2.59. Invocation command line was -- -- CONFIG_FILES = $CONFIG_FILES -- CONFIG_HEADERS = $CONFIG_HEADERS -- CONFIG_LINKS = $CONFIG_LINKS -- CONFIG_COMMANDS = $CONFIG_COMMANDS -- $ $0 $@ -- --_CSEOF --echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 --echo >&5 --_ACEOF -- --# Files that config.status was made for. --if test -n "$ac_config_files"; then -- echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS --fi -- --if test -n "$ac_config_headers"; then -- echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS --fi -- --if test -n "$ac_config_links"; then -- echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS --fi -- --if test -n "$ac_config_commands"; then -- echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS --fi -- --cat >>$CONFIG_STATUS <<\_ACEOF -- --ac_cs_usage="\ --\`$as_me' instantiates files from templates according to the --current configuration. -- --Usage: $0 [OPTIONS] [FILE]... -- -- -h, --help print this help, then exit -- -V, --version print version number, then exit -- -q, --quiet do not print progress messages -- -d, --debug don't remove temporary files -- --recheck update $as_me by reconfiguring in the same conditions -- --file=FILE[:TEMPLATE] -- instantiate the configuration file FILE -- --header=FILE[:TEMPLATE] -- instantiate the configuration header FILE -- --Configuration files: --$config_files -- --Configuration headers: --$config_headers -- --Configuration commands: --$config_commands -- --Report bugs to ." --_ACEOF -- --cat >>$CONFIG_STATUS <<_ACEOF --ac_cs_version="\\ --GRUB config.status 0.97 --configured by $0, generated by GNU Autoconf 2.59, -- with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" -- --Copyright (C) 2003 Free Software Foundation, Inc. --This config.status script is free software; the Free Software Foundation --gives unlimited permission to copy, distribute and modify it." --srcdir=$srcdir --INSTALL="$INSTALL" --_ACEOF -- --cat >>$CONFIG_STATUS <<\_ACEOF --# If no file are specified by the user, then we need to provide default --# value. By we need to know if files were specified by the user. --ac_need_defaults=: --while test $# != 0 --do -- case $1 in -- --*=*) -- ac_option=`expr "x$1" : 'x\([^=]*\)='` -- ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` -- ac_shift=: -- ;; -- -*) -- ac_option=$1 -- ac_optarg=$2 -- ac_shift=shift -- ;; -- *) # This is not an option, so the user has probably given explicit -- # arguments. -- ac_option=$1 -- ac_need_defaults=false;; -- esac -- -- case $ac_option in -- # Handling of the options. --_ACEOF --cat >>$CONFIG_STATUS <<\_ACEOF -- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) -- ac_cs_recheck=: ;; -- --version | --vers* | -V ) -- echo "$ac_cs_version"; exit 0 ;; -- --he | --h) -- # Conflict between --help and --header -- { { echo "$as_me:$LINENO: error: ambiguous option: $1 --Try \`$0 --help' for more information." >&5 --echo "$as_me: error: ambiguous option: $1 --Try \`$0 --help' for more information." >&2;} -- { (exit 1); exit 1; }; };; -- --help | --hel | -h ) -- echo "$ac_cs_usage"; exit 0 ;; -- --debug | --d* | -d ) -- debug=: ;; -- --file | --fil | --fi | --f ) -- $ac_shift -- CONFIG_FILES="$CONFIG_FILES $ac_optarg" -- ac_need_defaults=false;; -- --header | --heade | --head | --hea ) -- $ac_shift -- CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" -- ac_need_defaults=false;; -- -q | -quiet | --quiet | --quie | --qui | --qu | --q \ -- | -silent | --silent | --silen | --sile | --sil | --si | --s) -- ac_cs_silent=: ;; -- -- # This is an error. -- -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 --Try \`$0 --help' for more information." >&5 --echo "$as_me: error: unrecognized option: $1 --Try \`$0 --help' for more information." >&2;} -- { (exit 1); exit 1; }; } ;; -- -- *) ac_config_targets="$ac_config_targets $1" ;; -- -- esac -- shift --done -- --ac_configure_extra_args= -- --if $ac_cs_silent; then -- exec 6>/dev/null -- ac_configure_extra_args="$ac_configure_extra_args --silent" --fi -- --_ACEOF --cat >>$CONFIG_STATUS <<_ACEOF --if \$ac_cs_recheck; then -- echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 -- exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion --fi -- --_ACEOF -- --cat >>$CONFIG_STATUS <<_ACEOF --# --# INIT-COMMANDS section. --# -- --AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" -- --_ACEOF -- -- -- --cat >>$CONFIG_STATUS <<\_ACEOF --for ac_config_target in $ac_config_targets --do -- case "$ac_config_target" in -- # Handling of arguments. -- "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; -- "stage1/Makefile" ) CONFIG_FILES="$CONFIG_FILES stage1/Makefile" ;; -- "stage2/Makefile" ) CONFIG_FILES="$CONFIG_FILES stage2/Makefile" ;; -- "docs/Makefile" ) CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;; -- "lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; -- "util/Makefile" ) CONFIG_FILES="$CONFIG_FILES util/Makefile" ;; -- "grub/Makefile" ) CONFIG_FILES="$CONFIG_FILES grub/Makefile" ;; -- "netboot/Makefile" ) CONFIG_FILES="$CONFIG_FILES netboot/Makefile" ;; -- "util/grub-image" ) CONFIG_FILES="$CONFIG_FILES util/grub-image" ;; -- "util/grub-install" ) CONFIG_FILES="$CONFIG_FILES util/grub-install" ;; -- "util/grub-md5-crypt" ) CONFIG_FILES="$CONFIG_FILES util/grub-md5-crypt" ;; -- "util/grub-terminfo" ) CONFIG_FILES="$CONFIG_FILES util/grub-terminfo" ;; -- "util/grub-set-default" ) CONFIG_FILES="$CONFIG_FILES util/grub-set-default" ;; -- "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; -- "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; -- *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 --echo "$as_me: error: invalid argument: $ac_config_target" >&2;} -- { (exit 1); exit 1; }; };; -- esac --done -- --# If the user did not use the arguments to specify the items to instantiate, --# then the envvar interface is used. Set only those that are not. --# We use the long form for the default assignment because of an extremely --# bizarre bug on SunOS 4.1.3. --if $ac_need_defaults; then -- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files -- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers -- test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands --fi -- --# Have a temporary directory for convenience. Make it in the build tree --# simply because there is no reason to put it here, and in addition, --# creating and moving files from /tmp can sometimes cause problems. --# Create a temporary directory, and hook for its removal unless debugging. --$debug || --{ -- trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 -- trap '{ (exit 1); exit 1; }' 1 2 13 15 --} -- --# Create a (secure) tmp directory for tmp files. -- --{ -- tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && -- test -n "$tmp" && test -d "$tmp" --} || --{ -- tmp=./confstat$$-$RANDOM -- (umask 077 && mkdir $tmp) --} || --{ -- echo "$me: cannot create a temporary directory in ." >&2 -- { (exit 1); exit 1; } --} -- --_ACEOF -- --cat >>$CONFIG_STATUS <<_ACEOF -- --# --# CONFIG_FILES section. --# -- --# No need to generate the scripts if there are no CONFIG_FILES. --# This happens for instance when ./config.status config.h --if test -n "\$CONFIG_FILES"; then -- # Protect against being on the right side of a sed subst in config.status. -- sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; -- s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF --s,@SHELL@,$SHELL,;t t --s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t --s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t --s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t --s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t --s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t --s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t --s,@exec_prefix@,$exec_prefix,;t t --s,@prefix@,$prefix,;t t --s,@program_transform_name@,$program_transform_name,;t t --s,@bindir@,$bindir,;t t --s,@sbindir@,$sbindir,;t t --s,@libexecdir@,$libexecdir,;t t --s,@datadir@,$datadir,;t t --s,@sysconfdir@,$sysconfdir,;t t --s,@sharedstatedir@,$sharedstatedir,;t t --s,@localstatedir@,$localstatedir,;t t --s,@libdir@,$libdir,;t t --s,@includedir@,$includedir,;t t --s,@oldincludedir@,$oldincludedir,;t t --s,@infodir@,$infodir,;t t --s,@mandir@,$mandir,;t t --s,@build_alias@,$build_alias,;t t --s,@host_alias@,$host_alias,;t t --s,@target_alias@,$target_alias,;t t --s,@DEFS@,$DEFS,;t t --s,@ECHO_C@,$ECHO_C,;t t --s,@ECHO_N@,$ECHO_N,;t t --s,@ECHO_T@,$ECHO_T,;t t --s,@LIBS@,$LIBS,;t t --s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t --s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t --s,@INSTALL_DATA@,$INSTALL_DATA,;t t --s,@CYGPATH_W@,$CYGPATH_W,;t t --s,@PACKAGE@,$PACKAGE,;t t --s,@VERSION@,$VERSION,;t t --s,@ACLOCAL@,$ACLOCAL,;t t --s,@AUTOCONF@,$AUTOCONF,;t t --s,@AUTOMAKE@,$AUTOMAKE,;t t --s,@AUTOHEADER@,$AUTOHEADER,;t t --s,@MAKEINFO@,$MAKEINFO,;t t --s,@install_sh@,$install_sh,;t t --s,@STRIP@,$STRIP,;t t --s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t --s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t --s,@mkdir_p@,$mkdir_p,;t t --s,@AWK@,$AWK,;t t --s,@SET_MAKE@,$SET_MAKE,;t t --s,@am__leading_dot@,$am__leading_dot,;t t --s,@AMTAR@,$AMTAR,;t t --s,@am__tar@,$am__tar,;t t --s,@am__untar@,$am__untar,;t t --s,@build@,$build,;t t --s,@build_cpu@,$build_cpu,;t t --s,@build_vendor@,$build_vendor,;t t --s,@build_os@,$build_os,;t t --s,@host@,$host,;t t --s,@host_cpu@,$host_cpu,;t t --s,@host_vendor@,$host_vendor,;t t --s,@host_os@,$host_os,;t t --s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t --s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t --s,@MAINT@,$MAINT,;t t --s,@PERL@,$PERL,;t t --s,@CC@,$CC,;t t --s,@ac_ct_CC@,$ac_ct_CC,;t t --s,@CFLAGS@,$CFLAGS,;t t --s,@LDFLAGS@,$LDFLAGS,;t t --s,@CPPFLAGS@,$CPPFLAGS,;t t --s,@EXEEXT@,$EXEEXT,;t t --s,@OBJEXT@,$OBJEXT,;t t --s,@DEPDIR@,$DEPDIR,;t t --s,@am__include@,$am__include,;t t --s,@am__quote@,$am__quote,;t t --s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t --s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t --s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t --s,@CCDEPMODE@,$CCDEPMODE,;t t --s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t --s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t --s,@CCAS@,$CCAS,;t t --s,@RANLIB@,$RANLIB,;t t --s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t --s,@STAGE1_CFLAGS@,$STAGE1_CFLAGS,;t t --s,@STAGE2_CFLAGS@,$STAGE2_CFLAGS,;t t --s,@GRUB_CFLAGS@,$GRUB_CFLAGS,;t t --s,@OBJCOPY@,$OBJCOPY,;t t --s,@ac_ct_OBJCOPY@,$ac_ct_OBJCOPY,;t t --s,@GRUB_LIBS@,$GRUB_LIBS,;t t --s,@CPP@,$CPP,;t t --s,@EGREP@,$EGREP,;t t --s,@NETBOOT_SUPPORT_TRUE@,$NETBOOT_SUPPORT_TRUE,;t t --s,@NETBOOT_SUPPORT_FALSE@,$NETBOOT_SUPPORT_FALSE,;t t --s,@DISKLESS_SUPPORT_TRUE@,$DISKLESS_SUPPORT_TRUE,;t t --s,@DISKLESS_SUPPORT_FALSE@,$DISKLESS_SUPPORT_FALSE,;t t --s,@HERCULES_SUPPORT_TRUE@,$HERCULES_SUPPORT_TRUE,;t t --s,@HERCULES_SUPPORT_FALSE@,$HERCULES_SUPPORT_FALSE,;t t --s,@SERIAL_SUPPORT_TRUE@,$SERIAL_SUPPORT_TRUE,;t t --s,@SERIAL_SUPPORT_FALSE@,$SERIAL_SUPPORT_FALSE,;t t --s,@SERIAL_SPEED_SIMULATION_TRUE@,$SERIAL_SPEED_SIMULATION_TRUE,;t t --s,@SERIAL_SPEED_SIMULATION_FALSE@,$SERIAL_SPEED_SIMULATION_FALSE,;t t --s,@BUILD_EXAMPLE_KERNEL_TRUE@,$BUILD_EXAMPLE_KERNEL_TRUE,;t t --s,@BUILD_EXAMPLE_KERNEL_FALSE@,$BUILD_EXAMPLE_KERNEL_FALSE,;t t --s,@FSYS_CFLAGS@,$FSYS_CFLAGS,;t t --s,@NET_CFLAGS@,$NET_CFLAGS,;t t --s,@NET_EXTRAFLAGS@,$NET_EXTRAFLAGS,;t t --s,@NETBOOT_DRIVERS@,$NETBOOT_DRIVERS,;t t --s,@CCASFLAGS@,$CCASFLAGS,;t t --s,@LIBOBJS@,$LIBOBJS,;t t --s,@LTLIBOBJS@,$LTLIBOBJS,;t t --CEOF -- --_ACEOF -- -- cat >>$CONFIG_STATUS <<\_ACEOF -- # Split the substitutions into bite-sized pieces for seds with -- # small command number limits, like on Digital OSF/1 and HP-UX. -- ac_max_sed_lines=48 -- ac_sed_frag=1 # Number of current file. -- ac_beg=1 # First line for current file. -- ac_end=$ac_max_sed_lines # Line after last line for current file. -- ac_more_lines=: -- ac_sed_cmds= -- while $ac_more_lines; do -- if test $ac_beg -gt 1; then -- sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag -- else -- sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag -- fi -- if test ! -s $tmp/subs.frag; then -- ac_more_lines=false -- else -- # The purpose of the label and of the branching condition is to -- # speed up the sed processing (if there are no `@' at all, there -- # is no need to browse any of the substitutions). -- # These are the two extra sed commands mentioned above. -- (echo ':t -- /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed -- if test -z "$ac_sed_cmds"; then -- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" -- else -- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" -- fi -- ac_sed_frag=`expr $ac_sed_frag + 1` -- ac_beg=$ac_end -- ac_end=`expr $ac_end + $ac_max_sed_lines` -- fi -- done -- if test -z "$ac_sed_cmds"; then -- ac_sed_cmds=cat -- fi --fi # test -n "$CONFIG_FILES" -- --_ACEOF --cat >>$CONFIG_STATUS <<\_ACEOF --for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue -- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". -- case $ac_file in -- - | *:- | *:-:* ) # input from stdin -- cat >$tmp/stdin -- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` -- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; -- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` -- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; -- * ) ac_file_in=$ac_file.in ;; -- esac -- -- # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. -- ac_dir=`(dirname "$ac_file") 2>/dev/null || --$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -- X"$ac_file" : 'X\(//\)[^/]' \| \ -- X"$ac_file" : 'X\(//\)$' \| \ -- X"$ac_file" : 'X\(/\)' \| \ -- . : '\(.\)' 2>/dev/null || --echo X"$ac_file" | -- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } -- /^X\(\/\/\)[^/].*/{ s//\1/; q; } -- /^X\(\/\/\)$/{ s//\1/; q; } -- /^X\(\/\).*/{ s//\1/; q; } -- s/.*/./; q'` -- { if $as_mkdir_p; then -- mkdir -p "$ac_dir" -- else -- as_dir="$ac_dir" -- as_dirs= -- while test ! -d "$as_dir"; do -- as_dirs="$as_dir $as_dirs" -- as_dir=`(dirname "$as_dir") 2>/dev/null || --$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -- X"$as_dir" : 'X\(//\)[^/]' \| \ -- X"$as_dir" : 'X\(//\)$' \| \ -- X"$as_dir" : 'X\(/\)' \| \ -- . : '\(.\)' 2>/dev/null || --echo X"$as_dir" | -- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } -- /^X\(\/\/\)[^/].*/{ s//\1/; q; } -- /^X\(\/\/\)$/{ s//\1/; q; } -- /^X\(\/\).*/{ s//\1/; q; } -- s/.*/./; q'` -- done -- test ! -n "$as_dirs" || mkdir $as_dirs -- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 --echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} -- { (exit 1); exit 1; }; }; } -- -- ac_builddir=. -- --if test "$ac_dir" != .; then -- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` -- # A "../" for each directory in $ac_dir_suffix. -- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` --else -- ac_dir_suffix= ac_top_builddir= --fi -- --case $srcdir in -- .) # No --srcdir option. We are building in place. -- ac_srcdir=. -- if test -z "$ac_top_builddir"; then -- ac_top_srcdir=. -- else -- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` -- fi ;; -- [\\/]* | ?:[\\/]* ) # Absolute path. -- ac_srcdir=$srcdir$ac_dir_suffix; -- ac_top_srcdir=$srcdir ;; -- *) # Relative path. -- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix -- ac_top_srcdir=$ac_top_builddir$srcdir ;; --esac -- --# Do not use `cd foo && pwd` to compute absolute paths, because --# the directories may not exist. --case `pwd` in --.) ac_abs_builddir="$ac_dir";; --*) -- case "$ac_dir" in -- .) ac_abs_builddir=`pwd`;; -- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; -- *) ac_abs_builddir=`pwd`/"$ac_dir";; -- esac;; --esac --case $ac_abs_builddir in --.) ac_abs_top_builddir=${ac_top_builddir}.;; --*) -- case ${ac_top_builddir}. in -- .) ac_abs_top_builddir=$ac_abs_builddir;; -- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; -- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; -- esac;; --esac --case $ac_abs_builddir in --.) ac_abs_srcdir=$ac_srcdir;; --*) -- case $ac_srcdir in -- .) ac_abs_srcdir=$ac_abs_builddir;; -- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; -- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; -- esac;; --esac --case $ac_abs_builddir in --.) ac_abs_top_srcdir=$ac_top_srcdir;; --*) -- case $ac_top_srcdir in -- .) ac_abs_top_srcdir=$ac_abs_builddir;; -- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; -- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; -- esac;; --esac -- -- -- case $INSTALL in -- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; -- *) ac_INSTALL=$ac_top_builddir$INSTALL ;; -- esac -- -- if test x"$ac_file" != x-; then -- { echo "$as_me:$LINENO: creating $ac_file" >&5 --echo "$as_me: creating $ac_file" >&6;} -- rm -f "$ac_file" -- fi -- # Let's still pretend it is `configure' which instantiates (i.e., don't -- # use $as_me), people would be surprised to read: -- # /* config.h. Generated by config.status. */ -- if test x"$ac_file" = x-; then -- configure_input= -- else -- configure_input="$ac_file. " -- fi -- configure_input=$configure_input"Generated from `echo $ac_file_in | -- sed 's,.*/,,'` by configure." -- -- # First look for the input files in the build tree, otherwise in the -- # src tree. -- ac_file_inputs=`IFS=: -- for f in $ac_file_in; do -- case $f in -- -) echo $tmp/stdin ;; -- [\\/$]*) -- # Absolute (can't be DOS-style, as IFS=:) -- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 --echo "$as_me: error: cannot find input file: $f" >&2;} -- { (exit 1); exit 1; }; } -- echo "$f";; -- *) # Relative -- if test -f "$f"; then -- # Build tree -- echo "$f" -- elif test -f "$srcdir/$f"; then -- # Source tree -- echo "$srcdir/$f" -- else -- # /dev/null tree -- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 --echo "$as_me: error: cannot find input file: $f" >&2;} -- { (exit 1); exit 1; }; } -- fi;; -- esac -- done` || { (exit 1); exit 1; } --_ACEOF --cat >>$CONFIG_STATUS <<_ACEOF -- sed "$ac_vpsub --$extrasub --_ACEOF --cat >>$CONFIG_STATUS <<\_ACEOF --:t --/@[a-zA-Z_][a-zA-Z_0-9]*@/!b --s,@configure_input@,$configure_input,;t t --s,@srcdir@,$ac_srcdir,;t t --s,@abs_srcdir@,$ac_abs_srcdir,;t t --s,@top_srcdir@,$ac_top_srcdir,;t t --s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t --s,@builddir@,$ac_builddir,;t t --s,@abs_builddir@,$ac_abs_builddir,;t t --s,@top_builddir@,$ac_top_builddir,;t t --s,@abs_top_builddir@,$ac_abs_top_builddir,;t t --s,@INSTALL@,$ac_INSTALL,;t t --" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out -- rm -f $tmp/stdin -- if test x"$ac_file" != x-; then -- mv $tmp/out $ac_file -- else -- cat $tmp/out -- rm -f $tmp/out -- fi -- --done --_ACEOF --cat >>$CONFIG_STATUS <<\_ACEOF -- --# --# CONFIG_HEADER section. --# -- --# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where --# NAME is the cpp macro being defined and VALUE is the value it is being given. --# --# ac_d sets the value in "#define NAME VALUE" lines. --ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' --ac_dB='[ ].*$,\1#\2' --ac_dC=' ' --ac_dD=',;t' --# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". --ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' --ac_uB='$,\1#\2define\3' --ac_uC=' ' --ac_uD=',;t' -- --for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue -- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". -- case $ac_file in -- - | *:- | *:-:* ) # input from stdin -- cat >$tmp/stdin -- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` -- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; -- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` -- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; -- * ) ac_file_in=$ac_file.in ;; -- esac -- -- test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 --echo "$as_me: creating $ac_file" >&6;} -- -- # First look for the input files in the build tree, otherwise in the -- # src tree. -- ac_file_inputs=`IFS=: -- for f in $ac_file_in; do -- case $f in -- -) echo $tmp/stdin ;; -- [\\/$]*) -- # Absolute (can't be DOS-style, as IFS=:) -- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 --echo "$as_me: error: cannot find input file: $f" >&2;} -- { (exit 1); exit 1; }; } -- # Do quote $f, to prevent DOS paths from being IFS'd. -- echo "$f";; -- *) # Relative -- if test -f "$f"; then -- # Build tree -- echo "$f" -- elif test -f "$srcdir/$f"; then -- # Source tree -- echo "$srcdir/$f" -- else -- # /dev/null tree -- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 --echo "$as_me: error: cannot find input file: $f" >&2;} -- { (exit 1); exit 1; }; } -- fi;; -- esac -- done` || { (exit 1); exit 1; } -- # Remove the trailing spaces. -- sed 's/[ ]*$//' $ac_file_inputs >$tmp/in -- --_ACEOF -- --# Transform confdefs.h into two sed scripts, `conftest.defines' and --# `conftest.undefs', that substitutes the proper values into --# config.h.in to produce config.h. The first handles `#define' --# templates, and the second `#undef' templates. --# And first: Protect against being on the right side of a sed subst in --# config.status. Protect against being in an unquoted here document --# in config.status. --rm -f conftest.defines conftest.undefs --# Using a here document instead of a string reduces the quoting nightmare. --# Putting comments in sed scripts is not portable. --# --# `end' is used to avoid that the second main sed command (meant for --# 0-ary CPP macros) applies to n-ary macro definitions. --# See the Autoconf documentation for `clear'. --cat >confdef2sed.sed <<\_ACEOF --s/[\\&,]/\\&/g --s,[\\$`],\\&,g --t clear --: clear --s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp --t end --s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp --: end --_ACEOF --# If some macros were called several times there might be several times --# the same #defines, which is useless. Nevertheless, we may not want to --# sort them, since we want the *last* AC-DEFINE to be honored. --uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines --sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs --rm -f confdef2sed.sed -- --# This sed command replaces #undef with comments. This is necessary, for --# example, in the case of _POSIX_SOURCE, which is predefined and required --# on some systems where configure will not decide to define it. --cat >>conftest.undefs <<\_ACEOF --s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, --_ACEOF -- --# Break up conftest.defines because some shells have a limit on the size --# of here documents, and old seds have small limits too (100 cmds). --echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS --echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS --echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS --echo ' :' >>$CONFIG_STATUS --rm -f conftest.tail --while grep . conftest.defines >/dev/null --do -- # Write a limited-size here document to $tmp/defines.sed. -- echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS -- # Speed up: don't consider the non `#define' lines. -- echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS -- # Work around the forget-to-reset-the-flag bug. -- echo 't clr' >>$CONFIG_STATUS -- echo ': clr' >>$CONFIG_STATUS -- sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS -- echo 'CEOF -- sed -f $tmp/defines.sed $tmp/in >$tmp/out -- rm -f $tmp/in -- mv $tmp/out $tmp/in --' >>$CONFIG_STATUS -- sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail -- rm -f conftest.defines -- mv conftest.tail conftest.defines --done --rm -f conftest.defines --echo ' fi # grep' >>$CONFIG_STATUS --echo >>$CONFIG_STATUS -- --# Break up conftest.undefs because some shells have a limit on the size --# of here documents, and old seds have small limits too (100 cmds). --echo ' # Handle all the #undef templates' >>$CONFIG_STATUS --rm -f conftest.tail --while grep . conftest.undefs >/dev/null --do -- # Write a limited-size here document to $tmp/undefs.sed. -- echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS -- # Speed up: don't consider the non `#undef' -- echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS -- # Work around the forget-to-reset-the-flag bug. -- echo 't clr' >>$CONFIG_STATUS -- echo ': clr' >>$CONFIG_STATUS -- sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS -- echo 'CEOF -- sed -f $tmp/undefs.sed $tmp/in >$tmp/out -- rm -f $tmp/in -- mv $tmp/out $tmp/in --' >>$CONFIG_STATUS -- sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail -- rm -f conftest.undefs -- mv conftest.tail conftest.undefs --done --rm -f conftest.undefs -- --cat >>$CONFIG_STATUS <<\_ACEOF -- # Let's still pretend it is `configure' which instantiates (i.e., don't -- # use $as_me), people would be surprised to read: -- # /* config.h. Generated by config.status. */ -- if test x"$ac_file" = x-; then -- echo "/* Generated by configure. */" >$tmp/config.h -- else -- echo "/* $ac_file. Generated by configure. */" >$tmp/config.h -- fi -- cat $tmp/in >>$tmp/config.h -- rm -f $tmp/in -- if test x"$ac_file" != x-; then -- if diff $ac_file $tmp/config.h >/dev/null 2>&1; then -- { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 --echo "$as_me: $ac_file is unchanged" >&6;} -- else -- ac_dir=`(dirname "$ac_file") 2>/dev/null || --$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -- X"$ac_file" : 'X\(//\)[^/]' \| \ -- X"$ac_file" : 'X\(//\)$' \| \ -- X"$ac_file" : 'X\(/\)' \| \ -- . : '\(.\)' 2>/dev/null || --echo X"$ac_file" | -- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } -- /^X\(\/\/\)[^/].*/{ s//\1/; q; } -- /^X\(\/\/\)$/{ s//\1/; q; } -- /^X\(\/\).*/{ s//\1/; q; } -- s/.*/./; q'` -- { if $as_mkdir_p; then -- mkdir -p "$ac_dir" -- else -- as_dir="$ac_dir" -- as_dirs= -- while test ! -d "$as_dir"; do -- as_dirs="$as_dir $as_dirs" -- as_dir=`(dirname "$as_dir") 2>/dev/null || --$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -- X"$as_dir" : 'X\(//\)[^/]' \| \ -- X"$as_dir" : 'X\(//\)$' \| \ -- X"$as_dir" : 'X\(/\)' \| \ -- . : '\(.\)' 2>/dev/null || --echo X"$as_dir" | -- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } -- /^X\(\/\/\)[^/].*/{ s//\1/; q; } -- /^X\(\/\/\)$/{ s//\1/; q; } -- /^X\(\/\).*/{ s//\1/; q; } -- s/.*/./; q'` -- done -- test ! -n "$as_dirs" || mkdir $as_dirs -- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 --echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} -- { (exit 1); exit 1; }; }; } -- -- rm -f $ac_file -- mv $tmp/config.h $ac_file -- fi -- else -- cat $tmp/config.h -- rm -f $tmp/config.h -- fi --# Compute $ac_file's index in $config_headers. --_am_stamp_count=1 --for _am_header in $config_headers :; do -- case $_am_header in -- $ac_file | $ac_file:* ) -- break ;; -- * ) -- _am_stamp_count=`expr $_am_stamp_count + 1` ;; -- esac --done --echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null || --$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -- X$ac_file : 'X\(//\)[^/]' \| \ -- X$ac_file : 'X\(//\)$' \| \ -- X$ac_file : 'X\(/\)' \| \ -- . : '\(.\)' 2>/dev/null || --echo X$ac_file | -- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } -- /^X\(\/\/\)[^/].*/{ s//\1/; q; } -- /^X\(\/\/\)$/{ s//\1/; q; } -- /^X\(\/\).*/{ s//\1/; q; } -- s/.*/./; q'`/stamp-h$_am_stamp_count --done --_ACEOF --cat >>$CONFIG_STATUS <<\_ACEOF -- --# --# CONFIG_COMMANDS section. --# --for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue -- ac_dest=`echo "$ac_file" | sed 's,:.*,,'` -- ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` -- ac_dir=`(dirname "$ac_dest") 2>/dev/null || --$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -- X"$ac_dest" : 'X\(//\)[^/]' \| \ -- X"$ac_dest" : 'X\(//\)$' \| \ -- X"$ac_dest" : 'X\(/\)' \| \ -- . : '\(.\)' 2>/dev/null || --echo X"$ac_dest" | -- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } -- /^X\(\/\/\)[^/].*/{ s//\1/; q; } -- /^X\(\/\/\)$/{ s//\1/; q; } -- /^X\(\/\).*/{ s//\1/; q; } -- s/.*/./; q'` -- { if $as_mkdir_p; then -- mkdir -p "$ac_dir" -- else -- as_dir="$ac_dir" -- as_dirs= -- while test ! -d "$as_dir"; do -- as_dirs="$as_dir $as_dirs" -- as_dir=`(dirname "$as_dir") 2>/dev/null || --$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -- X"$as_dir" : 'X\(//\)[^/]' \| \ -- X"$as_dir" : 'X\(//\)$' \| \ -- X"$as_dir" : 'X\(/\)' \| \ -- . : '\(.\)' 2>/dev/null || --echo X"$as_dir" | -- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } -- /^X\(\/\/\)[^/].*/{ s//\1/; q; } -- /^X\(\/\/\)$/{ s//\1/; q; } -- /^X\(\/\).*/{ s//\1/; q; } -- s/.*/./; q'` -- done -- test ! -n "$as_dirs" || mkdir $as_dirs -- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 --echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} -- { (exit 1); exit 1; }; }; } -- -- ac_builddir=. -- --if test "$ac_dir" != .; then -- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` -- # A "../" for each directory in $ac_dir_suffix. -- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` --else -- ac_dir_suffix= ac_top_builddir= --fi -- --case $srcdir in -- .) # No --srcdir option. We are building in place. -- ac_srcdir=. -- if test -z "$ac_top_builddir"; then -- ac_top_srcdir=. -- else -- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` -- fi ;; -- [\\/]* | ?:[\\/]* ) # Absolute path. -- ac_srcdir=$srcdir$ac_dir_suffix; -- ac_top_srcdir=$srcdir ;; -- *) # Relative path. -- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix -- ac_top_srcdir=$ac_top_builddir$srcdir ;; --esac -- --# Do not use `cd foo && pwd` to compute absolute paths, because --# the directories may not exist. --case `pwd` in --.) ac_abs_builddir="$ac_dir";; --*) -- case "$ac_dir" in -- .) ac_abs_builddir=`pwd`;; -- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; -- *) ac_abs_builddir=`pwd`/"$ac_dir";; -- esac;; --esac --case $ac_abs_builddir in --.) ac_abs_top_builddir=${ac_top_builddir}.;; --*) -- case ${ac_top_builddir}. in -- .) ac_abs_top_builddir=$ac_abs_builddir;; -- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; -- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; -- esac;; --esac --case $ac_abs_builddir in --.) ac_abs_srcdir=$ac_srcdir;; --*) -- case $ac_srcdir in -- .) ac_abs_srcdir=$ac_abs_builddir;; -- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; -- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; -- esac;; --esac --case $ac_abs_builddir in --.) ac_abs_top_srcdir=$ac_top_srcdir;; --*) -- case $ac_top_srcdir in -- .) ac_abs_top_srcdir=$ac_abs_builddir;; -- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; -- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; -- esac;; --esac -- -- -- { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 --echo "$as_me: executing $ac_dest commands" >&6;} -- case $ac_dest in -- depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do -- # Strip MF so we end up with the name of the file. -- mf=`echo "$mf" | sed -e 's/:.*$//'` -- # Check whether this is an Automake generated Makefile or not. -- # We used to match only the files named `Makefile.in', but -- # some people rename them; so instead we look at the file content. -- # Grep'ing the first line is not enough: some people post-process -- # each Makefile.in and add a new line on top of each file to say so. -- # So let's grep whole file. -- if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then -- dirpart=`(dirname "$mf") 2>/dev/null || --$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -- X"$mf" : 'X\(//\)[^/]' \| \ -- X"$mf" : 'X\(//\)$' \| \ -- X"$mf" : 'X\(/\)' \| \ -- . : '\(.\)' 2>/dev/null || --echo X"$mf" | -- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } -- /^X\(\/\/\)[^/].*/{ s//\1/; q; } -- /^X\(\/\/\)$/{ s//\1/; q; } -- /^X\(\/\).*/{ s//\1/; q; } -- s/.*/./; q'` -- else -- continue -- fi -- # Extract the definition of DEPDIR, am__include, and am__quote -- # from the Makefile without running `make'. -- DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` -- test -z "$DEPDIR" && continue -- am__include=`sed -n 's/^am__include = //p' < "$mf"` -- test -z "am__include" && continue -- am__quote=`sed -n 's/^am__quote = //p' < "$mf"` -- # When using ansi2knr, U may be empty or an underscore; expand it -- U=`sed -n 's/^U = //p' < "$mf"` -- # Find all dependency output files, they are included files with -- # $(DEPDIR) in their names. We invoke sed twice because it is the -- # simplest approach to changing $(DEPDIR) to its actual value in the -- # expansion. -- for file in `sed -n " -- s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ -- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do -- # Make sure the directory exists. -- test -f "$dirpart/$file" && continue -- fdir=`(dirname "$file") 2>/dev/null || --$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -- X"$file" : 'X\(//\)[^/]' \| \ -- X"$file" : 'X\(//\)$' \| \ -- X"$file" : 'X\(/\)' \| \ -- . : '\(.\)' 2>/dev/null || --echo X"$file" | -- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } -- /^X\(\/\/\)[^/].*/{ s//\1/; q; } -- /^X\(\/\/\)$/{ s//\1/; q; } -- /^X\(\/\).*/{ s//\1/; q; } -- s/.*/./; q'` -- { if $as_mkdir_p; then -- mkdir -p $dirpart/$fdir -- else -- as_dir=$dirpart/$fdir -- as_dirs= -- while test ! -d "$as_dir"; do -- as_dirs="$as_dir $as_dirs" -- as_dir=`(dirname "$as_dir") 2>/dev/null || --$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -- X"$as_dir" : 'X\(//\)[^/]' \| \ -- X"$as_dir" : 'X\(//\)$' \| \ -- X"$as_dir" : 'X\(/\)' \| \ -- . : '\(.\)' 2>/dev/null || --echo X"$as_dir" | -- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } -- /^X\(\/\/\)[^/].*/{ s//\1/; q; } -- /^X\(\/\/\)$/{ s//\1/; q; } -- /^X\(\/\).*/{ s//\1/; q; } -- s/.*/./; q'` -- done -- test ! -n "$as_dirs" || mkdir $as_dirs -- fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 --echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} -- { (exit 1); exit 1; }; }; } -- -- # echo "creating $dirpart/$file" -- echo '# dummy' > "$dirpart/$file" -- done --done -- ;; -- esac --done --_ACEOF -- --cat >>$CONFIG_STATUS <<\_ACEOF -- --{ (exit 0); exit 0; } --_ACEOF --chmod +x $CONFIG_STATUS --ac_clean_files=$ac_clean_files_save -- -- --# configure is writing to config.log, and then calls config.status. --# config.status does its own redirection, appending to config.log. --# Unfortunately, on DOS this fails, as config.log is still kept open --# by configure, so config.status won't be able to write to it; its --# output is simply discarded. So we exec the FD to /dev/null, --# effectively closing config.log, so it can be properly (re)opened and --# appended to by config.status. When coming back to configure, we --# need to make the FD available again. --if test "$no_create" != yes; then -- ac_cs_success=: -- ac_config_status_args= -- test "$silent" = yes && -- ac_config_status_args="$ac_config_status_args --quiet" -- exec 5>/dev/null -- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false -- exec 5>>config.log -- # Use ||, not &&, to avoid exiting from the if with $? = 1, which -- # would make configure fail if this is the last instruction. -- $ac_cs_success || { (exit 1); exit 1; } --fi -- -diff --git a/configure.ac b/configure.in -similarity index 86% -rename from configure.ac -rename to configure.in -index bb9e1d9..e5970af 100644 ---- a/configure.ac -+++ b/configure.in -@@ -29,6 +29,65 @@ esac - AC_SUBST(host_cpu) - AC_SUBST(host_vendor) - -+# Specify the platform (such as firmware). -+AC_ARG_WITH([platform], -+ AS_HELP_STRING([--with-platform=PLATFORM], -+ [select the host platform [[guessed]]])) -+ -+# Guess the platform if not specified. -+if test "x$with_platform" = x; then -+ case "$host_cpu"-"$host_vendor" in -+ i386-*) platform=pc ;; -+ x86_64-*) platform=pc ;; -+ *) AC_MSG_ERROR([unsupported machine type $host_cpu-$host_vendor]) ;; -+ esac -+else -+ platform="$with_platform" -+fi -+ -+# Sanity check. -+case "$host_cpu"-"$platform" in -+ i386-pc) ;; -+ i386-efi) ;; -+ x86_64-pc) ;; -+ x86_64-efi) ;; -+ *) AC_MSG_ERROR([unsupported machine type "$host_cpu"-"$platform"]) ;; -+esac -+ -+if test "x$platform" = xefi; then -+ case "$host_cpu" in -+ i386) EFI_ARCH=ia32 ;; -+ x86_64) EFI_ARCH=x86_64 ;; -+ *) AC_MSG_ERROR([unsupported machine type "$host_cpu"]) ;; -+ esac -+ AC_SUBST(EFI_ARCH) -+fi -+ -+gnuefi_path=${libdir}/gnuefi -+gnuefi_crt0=${gnuefi_path}/crt0-efi-${EFI_ARCH}.o -+if ! test -f $gnuefi_crt0 ; then -+ gnuefi_crt0=crt0-efi.o -+fi -+GNUEFI_CRT0=${gnuefi_crt0} -+AC_SUBST(GNUEFI_CRT0) -+gnuefi_lds=${gnuefi_path}/elf_${EFI_ARCH}_efi.lds -+if ! test -f $gnuefi_lds ; then -+ gnuefi_lds=${EFI_ARCH}/elf_efi.lds -+fi -+GNUEFI_LDS=${gnuefi_lds} -+AC_SUBST(GNUEFI_LDS) -+LIBGNUEFI=${libdir}/libgnuefi.a -+AC_SUBST(LIBGNUEFI) -+LIBEFI=${libdir}/libefi.a -+AC_SUBST(LIBEFI) -+ -+AC_SUBST(platform) -+AM_CONDITIONAL(PLATFORM_EFI, test "x$platform" = xefi) -+ -+if test "x$platform" = xefi; then -+ AC_DEFINE(PLATFORM_EFI, 1, [Define if you run on EFI platform.]) -+fi -+ - # - # Options - # -@@ -46,7 +105,7 @@ if test "x$CFLAGS" = x; then - default_CFLAGS=yes - fi - --if test "x$host_cpu" = xx86_64; then -+if test "x$platform" = xpc -a "x$host_cpu" = xx86_64; then - CFLAGS="-m32 $CFLAGS" - fi - -@@ -63,6 +122,8 @@ dnl Because recent automake complains about AS, set it here. - CCAS="$CC" - AC_SUBST(CCAS) - -+_AM_DEPENDENCIES(CCAS) -+ - AC_ARG_WITH(binutils, - [ --with-binutils=DIR search the directory DIR to find binutils]) - -@@ -114,6 +175,20 @@ if test "x$ac_cv_prog_gcc" = xyes; then - fi - fi - fi -+STAGE2_CFLAGS="$STAGE2_CFLAGS -isystem `$CC -print-file-name=include`" -+ -+LIBGCC=$(gcc $CFLAGS -static-libgcc -print-libgcc-file-name) -+AC_SUBST(LIBGCC) -+ -+LOADER_LDFLAGS="-Wl,--build-id=none ${LIBGCC}" -+AC_SUBST(LOADER_LDFLAGS) -+ -+if test "x$platform" = xefi; then -+ STAGE2_CFLAGS="$STAGE2_CFLAGS -fpic -fshort-wchar -fno-strict-aliasing -fno-merge-constants -fno-reorder-functions" -+ if test "x$EFI_ARCH" = xx86_64; then -+ STAGE2_CFLAGS="$STAGE2_CFLAGS -DEFI_FUNCTION_WRAPPER" -+ fi -+fi - - AC_SUBST(STAGE1_CFLAGS) - AC_SUBST(STAGE2_CFLAGS) -@@ -159,9 +234,12 @@ fi - - # Defined in acinclude.m4. - grub_ASM_USCORE --grub_PROG_OBJCOPY_ABSOLUTE --if test "x$grub_cv_prog_objcopy_absolute" != xyes; then -- AC_MSG_ERROR([GRUB requires a working absolute objcopy; upgrade your binutils]) -+ -+if test "x$platform" != xefi; then -+ grub_PROG_OBJCOPY_ABSOLUTE -+ if test "x$grub_cv_prog_objcopy_absolute" != xyes; then -+ AC_MSG_ERROR([GRUB requires a working absolute objcopy; upgrade your binutils]) -+ fi - fi - - grub_ASM_PREFIX_REQUIREMENT -@@ -207,9 +285,9 @@ AC_CHECK_LIB(util, opendisk, [GRUB_LIBS="$GRUB_LIBS -lutil" - - # Unless the user specify --without-curses, check for curses. - if test "x$with_curses" != "xno"; then -- AC_CHECK_LIB(ncurses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lncurses" -+ AC_CHECK_LIB(ncurses, wgetch, [GRUB_LIBS="$GRUB_LIBS -Wl,-Bstatic -lncurses -ltinfo -Wl,-Bdynamic" - AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])], -- [AC_CHECK_LIB(curses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lcurses" -+ [AC_CHECK_LIB(curses, wgetch, [GRUB_LIBS="$GRUB_LIBS -Wl,-Bstatic -lcurses -Wl,-Bdynamic" - AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])])]) - fi - -@@ -595,9 +673,18 @@ AC_ARG_ENABLE(diskless, - [ --enable-diskless enable diskless support]) - AM_CONDITIONAL(DISKLESS_SUPPORT, test "x$enable_diskless" = xyes) - -+dnl Graphical splashscreen support -+AC_ARG_ENABLE(graphics, -+ [ --disable-graphics disable graphics terminal support]) -+AM_CONDITIONAL(GRAPHICS_SUPPORT, test "x$enable_graphics" != xno) -+ - dnl Hercules terminal --AC_ARG_ENABLE(hercules, -- [ --disable-hercules disable hercules terminal support]) -+if test "x$platform" = xefi; then -+ enable_hercules=no -+else -+ AC_ARG_ENABLE(hercules, -+ [ --disable-hercules disable hercules terminal support]) -+fi - AM_CONDITIONAL(HERCULES_SUPPORT, test "x$enable_hercules" != xno) - - dnl Serial terminal -@@ -662,9 +749,13 @@ AC_SUBST(CCASFLAGS) - - - dnl Output. -+if test "x$platform" = xefi; then -+ AC_CONFIG_FILES([efi/Makefile]) -+ AC_CONFIG_LINKS([efi/grub/cpu:efi/grub/$host_cpu]) -+fi - AC_CONFIG_FILES([Makefile stage1/Makefile stage2/Makefile \ - docs/Makefile lib/Makefile util/Makefile \ -- grub/Makefile netboot/Makefile util/grub-image \ -- util/grub-install util/grub-md5-crypt \ -- util/grub-terminfo util/grub-set-default]) -+ grub/Makefile netboot/Makefile util/grub-crypt \ -+ util/grub-image util/grub-install util/grub-md5-crypt \ -+ util/grub-terminfo]) - AC_OUTPUT -diff --git a/docs/.gitignore b/docs/.gitignore -new file mode 100644 -index 0000000..e440faf ---- /dev/null -+++ b/docs/.gitignore -@@ -0,0 +1,3 @@ -+Makefile.in -+Makefile -+.deps -diff --git a/docs/Makefile.am b/docs/Makefile.am -index db99e2d..fe6b22b 100644 ---- a/docs/Makefile.am -+++ b/docs/Makefile.am -@@ -2,7 +2,8 @@ info_TEXINFOS = grub.texi multiboot.texi - grub_TEXINFOS = internals.texi - EXAMPLES = boot.S kernel.c multiboot.h - multiboot_TEXINFOS = boot.S.texi kernel.c.texi multiboot.h.texi --man_MANS = grub.8 mbchk.1 grub-install.8 grub-md5-crypt.8 grub-terminfo.8 -+man_MANS = grub.8 mbchk.1 grub-crypt.8 grub-install.8 grub-md5-crypt.8 \ -+ grub-terminfo.8 - HELP2MAN = help2man - SRC2TEXI = src2texi - noinst_SCRIPTS = $(HELP2MAN) $(SRC2TEXI) -@@ -51,6 +52,12 @@ $(srcdir)/mbchk.1: ../util/mbchk $(srcdir)/$(HELP2MAN) - --name="check the format of a Multiboot kernel" \ - --section=1 --output=$@ $< - -+$(srcdir)/grub-crypt.8: ../util/grub-crypt $(srcdir)/$(HELP2MAN) -+ chmod 755 $< -+ $(PERL) $(srcdir)/$(HELP2MAN) \ -+ --name="Encrypt a password" \ -+ --section=8 --output=$@ $< -+ - $(srcdir)/grub-md5-crypt.8: ../util/grub-md5-crypt $(srcdir)/$(HELP2MAN) - chmod 755 $< - $(PERL) $(srcdir)/$(HELP2MAN) \ -diff --git a/docs/Makefile.in b/docs/Makefile.in -deleted file mode 100644 -index 3e2de4b..0000000 ---- a/docs/Makefile.in -+++ /dev/null -@@ -1,770 +0,0 @@ --# Makefile.in generated by automake 1.9.4 from Makefile.am. --# @configure_input@ -- --# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, --# 2003, 2004 Free Software Foundation, Inc. --# This Makefile.in is free software; the Free Software Foundation --# gives unlimited permission to copy and/or distribute it, --# with or without modifications, as long as this notice is preserved. -- --# This program is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY, to the extent permitted by law; without --# even the implied warranty of MERCHANTABILITY or FITNESS FOR A --# PARTICULAR PURPOSE. -- --@SET_MAKE@ -- -- --SOURCES = $(kernel_SOURCES) -- --srcdir = @srcdir@ --top_srcdir = @top_srcdir@ --VPATH = @srcdir@ --pkgdatadir = $(datadir)/@PACKAGE@ --pkglibdir = $(libdir)/@PACKAGE@ --pkgincludedir = $(includedir)/@PACKAGE@ --top_builddir = .. --am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd --INSTALL = @INSTALL@ --install_sh_DATA = $(install_sh) -c -m 644 --install_sh_PROGRAM = $(install_sh) -c --install_sh_SCRIPT = $(install_sh) -c --INSTALL_HEADER = $(INSTALL_DATA) --transform = $(program_transform_name) --NORMAL_INSTALL = : --PRE_INSTALL = : --POST_INSTALL = : --NORMAL_UNINSTALL = : --PRE_UNINSTALL = : --POST_UNINSTALL = : --build_triplet = @build@ --host_triplet = @host@ --EXTRA_PROGRAMS = kernel$(EXEEXT) --@BUILD_EXAMPLE_KERNEL_TRUE@noinst_PROGRAMS = kernel$(EXEEXT) --subdir = docs --DIST_COMMON = $(grub_TEXINFOS) $(multiboot_TEXINFOS) \ -- $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ -- $(srcdir)/stamp-vti $(srcdir)/version.texi mdate-sh \ -- texinfo.tex --ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 --am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ -- $(top_srcdir)/configure.ac --am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ -- $(ACLOCAL_M4) --mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs --CONFIG_HEADER = $(top_builddir)/config.h --CONFIG_CLEAN_FILES = --PROGRAMS = $(noinst_PROGRAMS) --am__kernel_SOURCES_DIST = boot.S kernel.c multiboot.h --am__objects_1 = boot.$(OBJEXT) kernel-kernel.$(OBJEXT) --@BUILD_EXAMPLE_KERNEL_TRUE@am_kernel_OBJECTS = $(am__objects_1) --kernel_OBJECTS = $(am_kernel_OBJECTS) --kernel_LDADD = $(LDADD) --SCRIPTS = $(noinst_SCRIPTS) --DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) --depcomp = $(SHELL) $(top_srcdir)/depcomp --am__depfiles_maybe = depfiles --CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS) --COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ -- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) --CCLD = $(CC) --LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ --SOURCES = $(kernel_SOURCES) --DIST_SOURCES = $(am__kernel_SOURCES_DIST) --INFO_DEPS = $(srcdir)/grub.info $(srcdir)/multiboot.info --am__TEXINFO_TEX_DIR = $(srcdir) --DVIS = grub.dvi multiboot.dvi --PDFS = grub.pdf multiboot.pdf --PSS = grub.ps multiboot.ps --HTMLS = grub.html multiboot.html --TEXINFOS = grub.texi multiboot.texi --TEXI2DVI = texi2dvi --TEXI2PDF = $(TEXI2DVI) --pdf --batch --MAKEINFOHTML = $(MAKEINFO) --html --AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) --DVIPS = dvips --am__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" \ -- "$(DESTDIR)$(man8dir)" --man1dir = $(mandir)/man1 --man8dir = $(mandir)/man8 --NROFF = nroff --MANS = $(man_MANS) --ETAGS = etags --CTAGS = ctags --DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) --ACLOCAL = @ACLOCAL@ --AMDEP_FALSE = @AMDEP_FALSE@ --AMDEP_TRUE = @AMDEP_TRUE@ --AMTAR = @AMTAR@ --AUTOCONF = @AUTOCONF@ --AUTOHEADER = @AUTOHEADER@ --AUTOMAKE = @AUTOMAKE@ --AWK = @AWK@ --BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@ --BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@ --CC = @CC@ --CCAS = @CCAS@ --CCASFLAGS = @CCASFLAGS@ --CCDEPMODE = @CCDEPMODE@ --CFLAGS = @CFLAGS@ --CPP = @CPP@ --CPPFLAGS = @CPPFLAGS@ --CYGPATH_W = @CYGPATH_W@ --DEFS = @DEFS@ --DEPDIR = @DEPDIR@ --DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@ --DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@ --ECHO_C = @ECHO_C@ --ECHO_N = @ECHO_N@ --ECHO_T = @ECHO_T@ --EGREP = @EGREP@ --EXEEXT = @EXEEXT@ --FSYS_CFLAGS = @FSYS_CFLAGS@ --GRUB_CFLAGS = @GRUB_CFLAGS@ --GRUB_LIBS = @GRUB_LIBS@ --HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@ --HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@ --INSTALL_DATA = @INSTALL_DATA@ --INSTALL_PROGRAM = @INSTALL_PROGRAM@ --INSTALL_SCRIPT = @INSTALL_SCRIPT@ --INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ --LDFLAGS = @LDFLAGS@ --LIBOBJS = @LIBOBJS@ --LIBS = @LIBS@ --LTLIBOBJS = @LTLIBOBJS@ --MAINT = @MAINT@ --MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ --MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ --MAKEINFO = @MAKEINFO@ --NETBOOT_DRIVERS = @NETBOOT_DRIVERS@ --NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@ --NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@ --NET_CFLAGS = @NET_CFLAGS@ --NET_EXTRAFLAGS = @NET_EXTRAFLAGS@ --OBJCOPY = @OBJCOPY@ --OBJEXT = @OBJEXT@ --PACKAGE = @PACKAGE@ --PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ --PACKAGE_NAME = @PACKAGE_NAME@ --PACKAGE_STRING = @PACKAGE_STRING@ --PACKAGE_TARNAME = @PACKAGE_TARNAME@ --PACKAGE_VERSION = @PACKAGE_VERSION@ --PATH_SEPARATOR = @PATH_SEPARATOR@ --PERL = @PERL@ --RANLIB = @RANLIB@ --SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@ --SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@ --SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@ --SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@ --SET_MAKE = @SET_MAKE@ --SHELL = @SHELL@ --STAGE1_CFLAGS = @STAGE1_CFLAGS@ --STAGE2_CFLAGS = @STAGE2_CFLAGS@ --STRIP = @STRIP@ --VERSION = @VERSION@ --ac_ct_CC = @ac_ct_CC@ --ac_ct_OBJCOPY = @ac_ct_OBJCOPY@ --ac_ct_RANLIB = @ac_ct_RANLIB@ --ac_ct_STRIP = @ac_ct_STRIP@ --am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ --am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ --am__include = @am__include@ --am__leading_dot = @am__leading_dot@ --am__quote = @am__quote@ --am__tar = @am__tar@ --am__untar = @am__untar@ --bindir = @bindir@ --build = @build@ --build_alias = @build_alias@ --build_cpu = @build_cpu@ --build_os = @build_os@ --build_vendor = @build_vendor@ --datadir = @datadir@ --exec_prefix = @exec_prefix@ --host = @host@ --host_alias = @host_alias@ --host_cpu = @host_cpu@ --host_os = @host_os@ --host_vendor = @host_vendor@ --includedir = @includedir@ --infodir = @infodir@ --install_sh = @install_sh@ --libdir = @libdir@ --libexecdir = @libexecdir@ --localstatedir = @localstatedir@ --mandir = @mandir@ --mkdir_p = @mkdir_p@ --oldincludedir = @oldincludedir@ --prefix = @prefix@ --program_transform_name = @program_transform_name@ --sbindir = @sbindir@ --sharedstatedir = @sharedstatedir@ --sysconfdir = @sysconfdir@ --target_alias = @target_alias@ --info_TEXINFOS = grub.texi multiboot.texi --grub_TEXINFOS = internals.texi --EXAMPLES = boot.S kernel.c multiboot.h --multiboot_TEXINFOS = boot.S.texi kernel.c.texi multiboot.h.texi --man_MANS = grub.8 mbchk.1 grub-install.8 grub-md5-crypt.8 grub-terminfo.8 --HELP2MAN = help2man --SRC2TEXI = src2texi --noinst_SCRIPTS = $(HELP2MAN) $(SRC2TEXI) --@BUILD_EXAMPLE_KERNEL_TRUE@kernel_SOURCES = $(EXAMPLES) --@BUILD_EXAMPLE_KERNEL_TRUE@kernel_CFLAGS = -fno-builtin -nostdinc -O -g -Wall \ --@BUILD_EXAMPLE_KERNEL_TRUE@ -imacros $(top_builddir)/config.h -- --@BUILD_EXAMPLE_KERNEL_TRUE@kernel_LDFLAGS = -nostdlib -Wl,-N -Wl,-Ttext -Wl,100000 --EXTRA_DIST = menu.lst $(man_MANS) $(noinst_SCRIPTS) \ -- $(EXAMPLES) $(multiboot_TEXINFOS) -- --CLEANFILES = $(noinst_PROGRAMS) --all: all-am -- --.SUFFIXES: --.SUFFIXES: .S .c .dvi .html .info .o .obj .pdf .ps .texi --$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) -- @for dep in $?; do \ -- case '$(am__configure_deps)' in \ -- *$$dep*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -- && exit 0; \ -- exit 1;; \ -- esac; \ -- done; \ -- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile'; \ -- cd $(top_srcdir) && \ -- $(AUTOMAKE) --gnu docs/Makefile --.PRECIOUS: Makefile --Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -- @case '$?' in \ -- *config.status*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ -- *) \ -- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ -- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ -- esac; -- --$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -- --$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh --$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -- --clean-noinstPROGRAMS: -- -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) --kernel$(EXEEXT): $(kernel_OBJECTS) $(kernel_DEPENDENCIES) -- @rm -f kernel$(EXEEXT) -- $(LINK) $(kernel_LDFLAGS) $(kernel_OBJECTS) $(kernel_LDADD) $(LIBS) -- --mostlyclean-compile: -- -rm -f *.$(OBJEXT) -- --distclean-compile: -- -rm -f *.tab.c -- --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kernel-kernel.Po@am__quote@ -- --.S.o: -- $(CCASCOMPILE) -c $< -- --.S.obj: -- $(CCASCOMPILE) -c `$(CYGPATH_W) '$<'` -- --.c.o: --@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(COMPILE) -c $< -- --.c.obj: --@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` -- --kernel-kernel.o: kernel.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kernel_CFLAGS) $(CFLAGS) -MT kernel-kernel.o -MD -MP -MF "$(DEPDIR)/kernel-kernel.Tpo" -c -o kernel-kernel.o `test -f 'kernel.c' || echo '$(srcdir)/'`kernel.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/kernel-kernel.Tpo" "$(DEPDIR)/kernel-kernel.Po"; else rm -f "$(DEPDIR)/kernel-kernel.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='kernel.c' object='kernel-kernel.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kernel_CFLAGS) $(CFLAGS) -c -o kernel-kernel.o `test -f 'kernel.c' || echo '$(srcdir)/'`kernel.c -- --kernel-kernel.obj: kernel.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kernel_CFLAGS) $(CFLAGS) -MT kernel-kernel.obj -MD -MP -MF "$(DEPDIR)/kernel-kernel.Tpo" -c -o kernel-kernel.obj `if test -f 'kernel.c'; then $(CYGPATH_W) 'kernel.c'; else $(CYGPATH_W) '$(srcdir)/kernel.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/kernel-kernel.Tpo" "$(DEPDIR)/kernel-kernel.Po"; else rm -f "$(DEPDIR)/kernel-kernel.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='kernel.c' object='kernel-kernel.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kernel_CFLAGS) $(CFLAGS) -c -o kernel-kernel.obj `if test -f 'kernel.c'; then $(CYGPATH_W) 'kernel.c'; else $(CYGPATH_W) '$(srcdir)/kernel.c'; fi` -- --.texi.info: -- restore=: && backupdir="$(am__leading_dot)am$$$$" && \ -- am__cwd=`pwd` && cd $(srcdir) && \ -- rm -rf $$backupdir && mkdir $$backupdir && \ -- for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ -- if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \ -- done; \ -- cd "$$am__cwd"; \ -- if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -- -o $@ $<; \ -- then \ -- rc=0; \ -- cd $(srcdir); \ -- else \ -- rc=$$?; \ -- cd $(srcdir) && \ -- $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \ -- fi; \ -- rm -rf $$backupdir; exit $$rc -- --.texi.dvi: -- TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ -- MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ -- $(TEXI2DVI) $< -- --.texi.pdf: -- TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ -- MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ -- $(TEXI2PDF) $< -- --.texi.html: -- rm -rf $(@:.html=.htp) -- if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -- -o $(@:.html=.htp) $<; \ -- then \ -- rm -rf $@; \ -- if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ -- mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \ -- else \ -- if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ -- rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \ -- exit 1; \ -- fi --$(srcdir)/grub.info: grub.texi $(srcdir)/version.texi $(grub_TEXINFOS) --grub.dvi: grub.texi $(srcdir)/version.texi $(grub_TEXINFOS) --grub.pdf: grub.texi $(srcdir)/version.texi $(grub_TEXINFOS) --grub.html: grub.texi $(srcdir)/version.texi $(grub_TEXINFOS) --$(srcdir)/version.texi: @MAINTAINER_MODE_TRUE@ $(srcdir)/stamp-vti --$(srcdir)/stamp-vti: grub.texi $(top_srcdir)/configure -- @(dir=.; test -f ./grub.texi || dir=$(srcdir); \ -- set `$(SHELL) $(srcdir)/mdate-sh $$dir/grub.texi`; \ -- echo "@set UPDATED $$1 $$2 $$3"; \ -- echo "@set UPDATED-MONTH $$2 $$3"; \ -- echo "@set EDITION $(VERSION)"; \ -- echo "@set VERSION $(VERSION)") > vti.tmp -- @cmp -s vti.tmp $(srcdir)/version.texi \ -- || (echo "Updating $(srcdir)/version.texi"; \ -- cp vti.tmp $(srcdir)/version.texi) -- -@rm -f vti.tmp -- @cp $(srcdir)/version.texi $@ -- --mostlyclean-vti: -- -rm -f vti.tmp -- --maintainer-clean-vti: --@MAINTAINER_MODE_TRUE@ -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi --$(srcdir)/multiboot.info: multiboot.texi $(multiboot_TEXINFOS) --multiboot.dvi: multiboot.texi $(multiboot_TEXINFOS) --multiboot.pdf: multiboot.texi $(multiboot_TEXINFOS) --multiboot.html: multiboot.texi $(multiboot_TEXINFOS) --.dvi.ps: -- $(DVIPS) -o $@ $< -- --uninstall-info-am: -- $(PRE_UNINSTALL) -- @if (install-info --version && \ -- install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \ -- list='$(INFO_DEPS)'; \ -- for file in $$list; do \ -- relfile=`echo "$$file" | sed 's|^.*/||'`; \ -- echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \ -- install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \ -- done; \ -- else :; fi -- @$(NORMAL_UNINSTALL) -- @list='$(INFO_DEPS)'; \ -- for file in $$list; do \ -- relfile=`echo "$$file" | sed 's|^.*/||'`; \ -- relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \ -- (if cd "$(DESTDIR)$(infodir)"; then \ -- echo " rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9])"; \ -- rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \ -- else :; fi); \ -- done -- --dist-info: $(INFO_DEPS) -- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ -- list='$(INFO_DEPS)'; \ -- for base in $$list; do \ -- case $$base in \ -- $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \ -- esac; \ -- if test -f $$base; then d=.; else d=$(srcdir); fi; \ -- for file in $$d/$$base*; do \ -- relfile=`expr "$$file" : "$$d/\(.*\)"`; \ -- test -f $(distdir)/$$relfile || \ -- cp -p $$file $(distdir)/$$relfile; \ -- done; \ -- done -- --mostlyclean-aminfo: -- -rm -rf grub.aux grub.cp grub.cps grub.fn grub.ky grub.log grub.pg grub.tmp \ -- grub.toc grub.tp grub.vr grub.dvi grub.pdf grub.ps grub.html \ -- multiboot.aux multiboot.cp multiboot.cps multiboot.fn \ -- multiboot.ky multiboot.log multiboot.pg multiboot.tmp \ -- multiboot.toc multiboot.tp multiboot.vr multiboot.dvi \ -- multiboot.pdf multiboot.ps multiboot.html -- --maintainer-clean-aminfo: -- @list='$(INFO_DEPS)'; for i in $$list; do \ -- i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \ -- echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \ -- rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \ -- done --install-man1: $(man1_MANS) $(man_MANS) -- @$(NORMAL_INSTALL) -- test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)" -- @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ -- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ -- for i in $$l2; do \ -- case "$$i" in \ -- *.1*) list="$$list $$i" ;; \ -- esac; \ -- done; \ -- for i in $$list; do \ -- if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ -- else file=$$i; fi; \ -- ext=`echo $$i | sed -e 's/^.*\\.//'`; \ -- case "$$ext" in \ -- 1*) ;; \ -- *) ext='1' ;; \ -- esac; \ -- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ -- inst=`echo $$inst | sed -e 's/^.*\///'`; \ -- inst=`echo $$inst | sed '$(transform)'`.$$ext; \ -- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ -- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \ -- done --uninstall-man1: -- @$(NORMAL_UNINSTALL) -- @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ -- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ -- for i in $$l2; do \ -- case "$$i" in \ -- *.1*) list="$$list $$i" ;; \ -- esac; \ -- done; \ -- for i in $$list; do \ -- ext=`echo $$i | sed -e 's/^.*\\.//'`; \ -- case "$$ext" in \ -- 1*) ;; \ -- *) ext='1' ;; \ -- esac; \ -- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ -- inst=`echo $$inst | sed -e 's/^.*\///'`; \ -- inst=`echo $$inst | sed '$(transform)'`.$$ext; \ -- echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \ -- rm -f "$(DESTDIR)$(man1dir)/$$inst"; \ -- done --install-man8: $(man8_MANS) $(man_MANS) -- @$(NORMAL_INSTALL) -- test -z "$(man8dir)" || $(mkdir_p) "$(DESTDIR)$(man8dir)" -- @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \ -- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ -- for i in $$l2; do \ -- case "$$i" in \ -- *.8*) list="$$list $$i" ;; \ -- esac; \ -- done; \ -- for i in $$list; do \ -- if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ -- else file=$$i; fi; \ -- ext=`echo $$i | sed -e 's/^.*\\.//'`; \ -- case "$$ext" in \ -- 8*) ;; \ -- *) ext='8' ;; \ -- esac; \ -- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ -- inst=`echo $$inst | sed -e 's/^.*\///'`; \ -- inst=`echo $$inst | sed '$(transform)'`.$$ext; \ -- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ -- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst"; \ -- done --uninstall-man8: -- @$(NORMAL_UNINSTALL) -- @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \ -- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ -- for i in $$l2; do \ -- case "$$i" in \ -- *.8*) list="$$list $$i" ;; \ -- esac; \ -- done; \ -- for i in $$list; do \ -- ext=`echo $$i | sed -e 's/^.*\\.//'`; \ -- case "$$ext" in \ -- 8*) ;; \ -- *) ext='8' ;; \ -- esac; \ -- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ -- inst=`echo $$inst | sed -e 's/^.*\///'`; \ -- inst=`echo $$inst | sed '$(transform)'`.$$ext; \ -- echo " rm -f '$(DESTDIR)$(man8dir)/$$inst'"; \ -- rm -f "$(DESTDIR)$(man8dir)/$$inst"; \ -- done -- --ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- mkid -fID $$unique --tags: TAGS -- --TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -- $(TAGS_FILES) $(LISP) -- tags=; \ -- here=`pwd`; \ -- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -- test -n "$$unique" || unique=$$empty_fix; \ -- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -- $$tags $$unique; \ -- fi --ctags: CTAGS --CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -- $(TAGS_FILES) $(LISP) -- tags=; \ -- here=`pwd`; \ -- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- test -z "$(CTAGS_ARGS)$$tags$$unique" \ -- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -- $$tags $$unique -- --GTAGS: -- here=`$(am__cd) $(top_builddir) && pwd` \ -- && cd $(top_srcdir) \ -- && gtags -i $(GTAGS_ARGS) $$here -- --distclean-tags: -- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -- --distdir: $(DISTFILES) -- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ -- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -- list='$(DISTFILES)'; for file in $$list; do \ -- case $$file in \ -- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ -- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ -- esac; \ -- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ -- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -- if test "$$dir" != "$$file" && test "$$dir" != "."; then \ -- dir="/$$dir"; \ -- $(mkdir_p) "$(distdir)$$dir"; \ -- else \ -- dir=''; \ -- fi; \ -- if test -d $$d/$$file; then \ -- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -- fi; \ -- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -- else \ -- test -f $(distdir)/$$file \ -- || cp -p $$d/$$file $(distdir)/$$file \ -- || exit 1; \ -- fi; \ -- done -- $(MAKE) $(AM_MAKEFLAGS) \ -- top_distdir="$(top_distdir)" distdir="$(distdir)" \ -- dist-info --check-am: all-am --check: check-am --all-am: Makefile $(INFO_DEPS) $(PROGRAMS) $(SCRIPTS) $(MANS) --installdirs: -- for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man8dir)"; do \ -- test -z "$$dir" || $(mkdir_p) "$$dir"; \ -- done --install: install-am --install-exec: install-exec-am --install-data: install-data-am --uninstall: uninstall-am -- --install-am: all-am -- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -- --installcheck: installcheck-am --install-strip: -- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ -- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ -- `test -z '$(STRIP)' || \ -- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install --mostlyclean-generic: -- --clean-generic: -- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) -- --distclean-generic: -- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -- --maintainer-clean-generic: -- @echo "This command is intended for maintainers to use" -- @echo "it deletes files that may require special tools to rebuild." --clean: clean-am -- --clean-am: clean-generic clean-noinstPROGRAMS mostlyclean-am -- --distclean: distclean-am -- -rm -rf ./$(DEPDIR) -- -rm -f Makefile --distclean-am: clean-am distclean-compile distclean-generic \ -- distclean-tags -- --dvi: dvi-am -- --dvi-am: $(DVIS) -- --html: html-am -- --html-am: $(HTMLS) -- --info: info-am -- --info-am: $(INFO_DEPS) -- --install-data-am: install-info-am install-man -- --install-exec-am: -- --install-info: install-info-am -- --install-info-am: $(INFO_DEPS) -- @$(NORMAL_INSTALL) -- test -z "$(infodir)" || $(mkdir_p) "$(DESTDIR)$(infodir)" -- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ -- list='$(INFO_DEPS)'; \ -- for file in $$list; do \ -- case $$file in \ -- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ -- esac; \ -- if test -f $$file; then d=.; else d=$(srcdir); fi; \ -- file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \ -- for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \ -- $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \ -- if test -f $$ifile; then \ -- relfile=`echo "$$ifile" | sed 's|^.*/||'`; \ -- echo " $(INSTALL_DATA) '$$ifile' '$(DESTDIR)$(infodir)/$$relfile'"; \ -- $(INSTALL_DATA) "$$ifile" "$(DESTDIR)$(infodir)/$$relfile"; \ -- else : ; fi; \ -- done; \ -- done -- @$(POST_INSTALL) -- @if (install-info --version && \ -- install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \ -- list='$(INFO_DEPS)'; \ -- for file in $$list; do \ -- relfile=`echo "$$file" | sed 's|^.*/||'`; \ -- echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\ -- install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\ -- done; \ -- else : ; fi --install-man: install-man1 install-man8 -- --installcheck-am: -- --maintainer-clean: maintainer-clean-am -- -rm -rf ./$(DEPDIR) -- -rm -f Makefile --maintainer-clean-am: distclean-am maintainer-clean-aminfo \ -- maintainer-clean-generic maintainer-clean-vti -- --mostlyclean: mostlyclean-am -- --mostlyclean-am: mostlyclean-aminfo mostlyclean-compile \ -- mostlyclean-generic mostlyclean-vti -- --pdf: pdf-am -- --pdf-am: $(PDFS) -- --ps: ps-am -- --ps-am: $(PSS) -- --uninstall-am: uninstall-info-am uninstall-man -- --uninstall-man: uninstall-man1 uninstall-man8 -- --.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ -- clean-noinstPROGRAMS ctags dist-info distclean \ -- distclean-compile distclean-generic distclean-tags distdir dvi \ -- dvi-am html html-am info info-am install install-am \ -- install-data install-data-am install-exec install-exec-am \ -- install-info install-info-am install-man install-man1 \ -- install-man8 install-strip installcheck installcheck-am \ -- installdirs maintainer-clean maintainer-clean-aminfo \ -- maintainer-clean-generic maintainer-clean-vti mostlyclean \ -- mostlyclean-aminfo mostlyclean-compile mostlyclean-generic \ -- mostlyclean-vti pdf pdf-am ps ps-am tags uninstall \ -- uninstall-am uninstall-info-am uninstall-man uninstall-man1 \ -- uninstall-man8 -- -- --@BUILD_EXAMPLE_KERNEL_TRUE@boot.o: multiboot.h -- --# Cancel the rule %.texi -> %. This rule may confuse make to determine --# the dependecies. --.texi: -- --%.c.texi: %.c $(srcdir)/$(SRC2TEXI) -- $(SHELL) $(srcdir)/$(SRC2TEXI) $(srcdir) $< $@ -- --%.h.texi: %.h $(srcdir)/$(SRC2TEXI) -- $(SHELL) $(srcdir)/$(SRC2TEXI) $(srcdir) $< $@ -- --%.S.texi: %.S $(srcdir)/$(SRC2TEXI) -- $(SHELL) $(srcdir)/$(SRC2TEXI) $(srcdir) $< $@ -- --@MAINTAINER_MODE_TRUE@$(srcdir)/grub.8: ../grub/grub $(srcdir)/$(HELP2MAN) --@MAINTAINER_MODE_TRUE@ $(PERL) $(srcdir)/$(HELP2MAN) --name="the grub shell" \ --@MAINTAINER_MODE_TRUE@ --section=8 --output=$@ $< -- --@MAINTAINER_MODE_TRUE@$(srcdir)/grub-install.8: ../util/grub-install $(srcdir)/$(HELP2MAN) --@MAINTAINER_MODE_TRUE@ chmod 755 $< --@MAINTAINER_MODE_TRUE@ $(PERL) $(srcdir)/$(HELP2MAN) --name="install GRUB on your drive" \ --@MAINTAINER_MODE_TRUE@ --section=8 --output=$@ $< -- --@MAINTAINER_MODE_TRUE@$(srcdir)/mbchk.1: ../util/mbchk $(srcdir)/$(HELP2MAN) --@MAINTAINER_MODE_TRUE@ $(PERL) $(srcdir)/$(HELP2MAN) \ --@MAINTAINER_MODE_TRUE@ --name="check the format of a Multiboot kernel" \ --@MAINTAINER_MODE_TRUE@ --section=1 --output=$@ $< -- --@MAINTAINER_MODE_TRUE@$(srcdir)/grub-md5-crypt.8: ../util/grub-md5-crypt $(srcdir)/$(HELP2MAN) --@MAINTAINER_MODE_TRUE@ chmod 755 $< --@MAINTAINER_MODE_TRUE@ $(PERL) $(srcdir)/$(HELP2MAN) \ --@MAINTAINER_MODE_TRUE@ --name="Encrypt a password in MD5 format" \ --@MAINTAINER_MODE_TRUE@ --section=8 --output=$@ $< -- --@MAINTAINER_MODE_TRUE@$(srcdir)/grub-terminfo.8: ../util/grub-terminfo $(srcdir)/$(HELP2MAN) --@MAINTAINER_MODE_TRUE@ chmod 755 $< --@MAINTAINER_MODE_TRUE@ $(PERL) $(srcdir)/$(HELP2MAN) \ --@MAINTAINER_MODE_TRUE@ --name="Generate a terminfo command from a terminfo name" \ --@MAINTAINER_MODE_TRUE@ --section=8 --output=$@ $< --# Tell versions [3.59,3.63) of GNU make to not export all variables. --# Otherwise a system limit (for SysV at least) may be exceeded. --.NOEXPORT: -diff --git a/docs/grub-crypt.8 b/docs/grub-crypt.8 -new file mode 100644 -index 0000000..eb132d7 ---- /dev/null -+++ b/docs/grub-crypt.8 -@@ -0,0 +1,39 @@ -+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.23. -+.TH GRUB-CRYPT "1" "January 2010" "grub-crypt (GNU GRUB 0.97)" FSF -+.SH NAME -+grub-crypt \- manual page for grub-crypt (GNU GRUB 0.97) -+.SH SYNOPSIS -+.B grub-crypt -+[\fIOPTION\fR]... -+.SH DESCRIPTION -+Encrypt a password. -+.TP -+\fB\-h\fR, \fB\-\-help\fR -+Print this message and exit -+.TP -+\fB\-v\fR, \fB\-\-version\fR -+Print the version information and exit -+.TP -+\fB\-\-md5\fR -+Use MD5 to encrypt the password -+.TP -+\fB\-\-sha\-256\fR -+Use SHA-256 to encrypt the password -+.TP -+\fB\-\-sha\-512\fR -+Use SHA-512 to encrypt the password (default) -+.SH "REPORTING BUGS" -+Report bugs to . -+EOF -+.SH "SEE ALSO" -+The full documentation for -+.B grub-crypt -+is maintained as a Texinfo manual. If the -+.B info -+and -+.B grub-crypt -+programs are properly installed at your site, the command -+.IP -+.B info grub-crypt -+.PP -+should give you access to the complete manual. -diff --git a/docs/grub-install.8 b/docs/grub-install.8 -index ac588a3..accff22 100644 ---- a/docs/grub-install.8 -+++ b/docs/grub-install.8 -@@ -30,6 +30,8 @@ BIOS - .TP - \fB\-\-recheck\fR - probe a device map even if it already exists -+ -+This option is unreliable and its use is strongly discouraged. - .PP - INSTALL_DEVICE can be a GRUB device name or a system device filename. - .PP -diff --git a/docs/grub.8 b/docs/grub.8 -index 92149f7..7a087d6 100644 ---- a/docs/grub.8 -+++ b/docs/grub.8 -@@ -15,7 +15,7 @@ turn on batch mode for non-interactive use - specify stage2 boot_drive [default=0x0] - .TP - \fB\-\-config\-file\fR=\fIFILE\fR --specify stage2 config_file [default=/boot/grub/menu.lst] -+specify stage2 config_file [default=/boot/grub/grub.conf] - .TP - \fB\-\-device\-map\fR=\fIFILE\fR - use the device map file FILE -diff --git a/docs/grub.info b/docs/grub.info -index f48783c..7692f31 100644 ---- a/docs/grub.info -+++ b/docs/grub.info -@@ -1,5 +1,4 @@ --This is ../../docs/grub.info, produced by makeinfo version 4.8 from --../../docs/grub.texi. -+This is grub.info, produced by makeinfo version 4.9 from grub.texi. - - INFO-DIR-SECTION Kernel - START-INFO-DIR-ENTRY -@@ -1147,7 +1146,7 @@ your OS. There's a solution to that - GRUB provides a menu interface - (*note Menu interface::) from which you can select an item (using arrow - keys) that will do everything to boot an OS. - -- To enable the menu, you need a configuration file, `menu.lst' under -+ To enable the menu, you need a configuration file, `grub.conf' under - the boot directory. We'll analyze an example file. - - The file first contains some general settings, the menu interface -@@ -1693,12 +1692,12 @@ There are two ways to specify files, by "absolute file name" and by - - An absolute file name resembles a Unix absolute file name, using `/' - for the directory separator (not `\' as in DOS). One example is --`(hd0,0)/boot/grub/menu.lst'. This means the file `/boot/grub/menu.lst' --in the first partition of the first hard disk. If you omit the device --name in an absolute file name, GRUB uses GRUB's "root device" --implicitly. So if you set the root device to, say, `(hd1,0)' by the --command `root' (*note root::), then `/boot/kernel' is the same as --`(hd1,0)/boot/kernel'. -+`(hd0,0)/boot/grub/grub.conf'. This means the file -+`/boot/grub/grub.conf' in the first partition of the first hard disk. -+If you omit the device name in an absolute file name, GRUB uses GRUB's -+"root device" implicitly. So if you set the root device to, say, -+`(hd1,0)' by the command `root' (*note root::), then `/boot/kernel' is -+the same as `(hd1,0)/boot/kernel'. - -  - File: grub.info, Node: Block list syntax, Prev: File name syntax, Up: Filesystem -@@ -2023,6 +2022,7 @@ Commands usable anywhere in the menu and in the command-line. - * rarp:: Initialize a network device via RARP - * serial:: Set up a serial device - * setkey:: Configure the key map -+* splashimage:: Use a splash image - * terminal:: Choose a terminal - * terminfo:: Define escape sequences for a terminal - * tftpserver:: Specify a TFTP server -@@ -2258,7 +2258,7 @@ File: grub.info, Node: serial, Next: setkey, Prev: rarp, Up: General command - support. See also *Note Serial terminal::. - -  --File: grub.info, Node: setkey, Next: terminal, Prev: serial, Up: General commands -+File: grub.info, Node: setkey, Next: splashimage, Prev: serial, Up: General commands - - 13.2.13 setkey - -------------- -@@ -2384,9 +2384,20 @@ File: grub.info, Node: setkey, Next: terminal, Prev: serial, Up: General com - ` ' - -  --File: grub.info, Node: terminal, Next: terminfo, Prev: setkey, Up: General commands -+File: grub.info, Node: splashimage, Next: terminal, Prev: setkey, Up: General commands - --13.2.14 terminal -+13.2.14 splashimage -+------------------- -+ -+ -- Command: splashimage file -+ Select an image to use as the background image. This should be -+ specified using normal GRUB device naming syntax. The format of -+ the file is a gzipped xpm which is 640x480 with a 14 color palette. -+ -+ -+File: grub.info, Node: terminal, Next: terminfo, Prev: splashimage, Up: General commands -+ -+13.2.15 terminal - ---------------- - - -- Command: terminal [`--dumb'] [`--no-echo'] [`--no-edit'] -@@ -2421,7 +2432,7 @@ File: grub.info, Node: terminal, Next: terminfo, Prev: setkey, Up: General c -  - File: grub.info, Node: terminfo, Next: tftpserver, Prev: terminal, Up: General commands - --13.2.15 terminfo -+13.2.16 terminfo - ---------------- - - -- Command: terminfo `--name=name' `--cursor-address=seq' -@@ -2439,7 +2450,7 @@ File: grub.info, Node: terminfo, Next: tftpserver, Prev: terminal, Up: Gener -  - File: grub.info, Node: tftpserver, Next: unhide, Prev: terminfo, Up: General commands - --13.2.16 tftpserver -+13.2.17 tftpserver - ------------------ - - -- Command: tftpserver ipaddr -@@ -2454,7 +2465,7 @@ File: grub.info, Node: tftpserver, Next: unhide, Prev: terminfo, Up: General -  - File: grub.info, Node: unhide, Prev: tftpserver, Up: General commands - --13.2.17 unhide -+13.2.18 unhide - -------------- - - -- Command: unhide partition -@@ -3405,9 +3416,9 @@ calls with UNIX system calls and libc functions. - grub shell just ignores this option. - - `--config-file=FILE' -- Read the configuration file FILE instead of `/boot/grub/menu.lst'. -- The format is the same as the normal GRUB syntax. See *Note -- Filesystem::, for more information. -+ Read the configuration file FILE instead of -+ `/boot/grub/grub.conf'. The format is the same as the normal GRUB -+ syntax. See *Note Filesystem::, for more information. - - `--boot-drive=DRIVE' - Set the stage2 BOOT_DRIVE to DRIVE. This argument should be an -@@ -3551,8 +3562,9 @@ name. - - `--recheck' - Recheck the device map, even if `/boot/grub/device.map' already -- exists. You should use this option whenever you add/remove a disk -- into/from your computer. -+ exists. -+ -+ This option is unreliable and its use is strongly discouraged. - -  - File: grub.info, Node: Invoking grub-md5-crypt, Next: Invoking grub-terminfo, Prev: Invoking grub-install, Up: Top -@@ -4279,6 +4291,7 @@ Index - * serial: serial. (line 9) - * setkey: setkey. (line 7) - * setup: setup. (line 8) -+* splashimage: splashimage. (line 7) - * terminal: terminal. (line 9) - * terminfo: terminfo. (line 9) - * testload: testload. (line 7) -@@ -4293,163 +4306,164 @@ Index - -  - Tag Table: --Node: Top1487 --Node: Introduction3266 --Node: Overview3643 --Node: Overview-Footnotes5865 --Ref: Overview-Footnote-15926 --Node: History6087 --Node: Features7208 --Node: Features-Footnotes12976 --Ref: Features-Footnote-113037 --Node: Role of a boot loader13182 --Node: Role of a boot loader-Footnotes14520 --Ref: Role of a boot loader-Footnote-114607 --Node: Naming convention14686 --Node: Installation17621 --Node: Creating a GRUB boot floppy19363 --Node: Installing GRUB natively20181 --Node: Installing GRUB natively-Footnotes22461 --Ref: Installing GRUB natively-Footnote-122554 --Node: Installing GRUB using grub-install22739 --Node: Making a GRUB bootable CD-ROM25685 --Node: Making a GRUB bootable CD-ROM-Footnotes27730 --Ref: Making a GRUB bootable CD-ROM-Footnote-127833 --Node: Booting27908 --Node: General boot methods28363 --Node: Loading an operating system directly29104 --Node: Chain-loading30408 --Node: Chain-loading-Footnotes31718 --Ref: Chain-loading-Footnote-131789 --Node: OS-specific notes31861 --Node: GNU/Hurd32237 --Node: GNU/Linux32856 --Node: FreeBSD34104 --Node: NetBSD34617 --Node: OpenBSD35275 --Node: DOS/Windows35475 --Node: SCO UnixWare37301 --Node: QNX37719 --Node: Making your system robust37969 --Node: Booting once-only39294 --Node: Booting fallback systems41219 --Node: Configuration44066 --Node: Network48495 --Node: General usage of network support48989 --Node: General usage of network support-Footnotes50850 --Ref: General usage of network support-Footnote-150959 --Node: Diskless51027 --Node: Serial terminal53211 --Node: Preset Menu55444 --Node: Security57812 --Node: Images60620 --Node: Filesystem63131 --Node: Device syntax63814 --Node: File name syntax65308 --Node: Block list syntax66051 --Node: Interface66784 --Node: Command-line interface67661 --Node: Command-line interface-Footnotes69602 --Ref: Command-line interface-Footnote-169691 --Node: Menu interface69786 --Node: Menu entry editor70796 --Node: Hidden menu interface71875 --Node: Commands72452 --Node: Menu-specific commands73029 --Node: default74200 --Node: fallback74678 --Node: hiddenmenu75229 --Node: timeout75717 --Node: title75995 --Node: General commands76266 --Node: bootp77579 --Node: color78058 --Node: device79532 --Node: dhcp80104 --Node: hide80689 --Node: ifconfig81066 --Node: pager81642 --Node: partnew81976 --Node: parttype82412 --Node: password82779 --Node: rarp83598 --Node: serial83899 --Node: setkey85172 --Node: terminal87341 --Node: terminfo88878 --Node: tftpserver89565 --Node: unhide90111 --Node: Command-line and menu entry commands90486 --Node: blocklist93017 --Node: boot93259 --Node: cat93580 --Node: chainloader93884 --Node: cmp94500 --Node: configfile95051 --Node: debug95265 --Node: displayapm95649 --Node: displaymem95860 --Node: embed96562 --Node: embed-Footnotes97096 --Ref: embed-Footnote-197151 --Node: find97208 --Node: fstest97588 --Node: geometry98273 --Node: halt98885 --Node: help99212 --Node: impsprobe99833 --Node: initrd100232 --Node: install100571 --Node: install-Footnotes103415 --Ref: install-Footnote-1103474 --Node: ioprobe103571 --Node: kernel103896 --Node: lock105016 --Node: makeactive105591 --Node: map105903 --Node: md5crypt106470 --Node: module106817 --Node: modulenounzip107394 --Node: pause107687 --Node: quit108101 --Node: reboot108377 --Node: read108558 --Node: root108800 --Node: rootnoverify109677 --Node: savedefault110232 --Node: setup111208 --Node: testload112274 --Node: testvbe112884 --Node: uppermem113255 --Node: vbeprobe113837 --Node: Troubleshooting114220 --Node: Stage1 errors114758 --Node: Stage1.5 errors116135 --Node: Stage2 errors116573 --Node: Invoking the grub shell124033 --Node: Basic usage124786 --Node: Installation under UNIX127073 --Node: Device map128748 --Node: Invoking grub-install129896 --Node: Invoking grub-md5-crypt131484 --Node: Invoking grub-terminfo132133 --Node: Invoking grub-set-default132899 --Node: Invoking mbchk134700 --Node: Obtaining and Building GRUB135214 --Node: Reporting bugs136631 --Node: Future139435 --Node: Internals139926 --Node: Memory map141149 --Node: Embedded data142627 --Node: Filesystem interface144644 --Node: Command interface148077 --Node: Bootstrap tricks149392 --Node: I/O ports detection151541 --Node: Memory detection151813 --Node: Low-level disk I/O152105 --Node: MBR152374 --Node: Partition table152571 --Node: Submitting patches152844 --Node: Index154332 -+Node: Top1465 -+Node: Introduction3244 -+Node: Overview3621 -+Node: Overview-Footnotes5843 -+Ref: Overview-Footnote-15904 -+Node: History6065 -+Node: Features7186 -+Node: Features-Footnotes12954 -+Ref: Features-Footnote-113015 -+Node: Role of a boot loader13160 -+Node: Role of a boot loader-Footnotes14498 -+Ref: Role of a boot loader-Footnote-114585 -+Node: Naming convention14664 -+Node: Installation17599 -+Node: Creating a GRUB boot floppy19341 -+Node: Installing GRUB natively20159 -+Node: Installing GRUB natively-Footnotes22439 -+Ref: Installing GRUB natively-Footnote-122532 -+Node: Installing GRUB using grub-install22717 -+Node: Making a GRUB bootable CD-ROM25663 -+Node: Making a GRUB bootable CD-ROM-Footnotes27708 -+Ref: Making a GRUB bootable CD-ROM-Footnote-127811 -+Node: Booting27886 -+Node: General boot methods28341 -+Node: Loading an operating system directly29082 -+Node: Chain-loading30386 -+Node: Chain-loading-Footnotes31696 -+Ref: Chain-loading-Footnote-131767 -+Node: OS-specific notes31839 -+Node: GNU/Hurd32215 -+Node: GNU/Linux32834 -+Node: FreeBSD34082 -+Node: NetBSD34595 -+Node: OpenBSD35253 -+Node: DOS/Windows35453 -+Node: SCO UnixWare37279 -+Node: QNX37697 -+Node: Making your system robust37947 -+Node: Booting once-only39272 -+Node: Booting fallback systems41197 -+Node: Configuration44044 -+Node: Network48474 -+Node: General usage of network support48968 -+Node: General usage of network support-Footnotes50829 -+Ref: General usage of network support-Footnote-150938 -+Node: Diskless51006 -+Node: Serial terminal53190 -+Node: Preset Menu55423 -+Node: Security57791 -+Node: Images60599 -+Node: Filesystem63110 -+Node: Device syntax63793 -+Node: File name syntax65287 -+Node: Block list syntax66032 -+Node: Interface66765 -+Node: Command-line interface67642 -+Node: Command-line interface-Footnotes69583 -+Ref: Command-line interface-Footnote-169672 -+Node: Menu interface69767 -+Node: Menu entry editor70777 -+Node: Hidden menu interface71856 -+Node: Commands72433 -+Node: Menu-specific commands73010 -+Node: default74181 -+Node: fallback74659 -+Node: hiddenmenu75210 -+Node: timeout75698 -+Node: title75976 -+Node: General commands76247 -+Node: bootp77611 -+Node: color78090 -+Node: device79564 -+Node: dhcp80136 -+Node: hide80721 -+Node: ifconfig81098 -+Node: pager81674 -+Node: partnew82008 -+Node: parttype82444 -+Node: password82811 -+Node: rarp83630 -+Node: serial83931 -+Node: setkey85204 -+Node: splashimage87376 -+Node: terminal87754 -+Node: terminfo89296 -+Node: tftpserver89983 -+Node: unhide90529 -+Node: Command-line and menu entry commands90904 -+Node: blocklist93435 -+Node: boot93677 -+Node: cat93998 -+Node: chainloader94302 -+Node: cmp94918 -+Node: configfile95469 -+Node: debug95683 -+Node: displayapm96067 -+Node: displaymem96278 -+Node: embed96980 -+Node: embed-Footnotes97514 -+Ref: embed-Footnote-197569 -+Node: find97626 -+Node: fstest98006 -+Node: geometry98691 -+Node: halt99303 -+Node: help99630 -+Node: impsprobe100251 -+Node: initrd100650 -+Node: install100989 -+Node: install-Footnotes103833 -+Ref: install-Footnote-1103892 -+Node: ioprobe103989 -+Node: kernel104314 -+Node: lock105434 -+Node: makeactive106009 -+Node: map106321 -+Node: md5crypt106888 -+Node: module107235 -+Node: modulenounzip107812 -+Node: pause108105 -+Node: quit108519 -+Node: reboot108795 -+Node: read108976 -+Node: root109218 -+Node: rootnoverify110095 -+Node: savedefault110650 -+Node: setup111626 -+Node: testload112692 -+Node: testvbe113302 -+Node: uppermem113673 -+Node: vbeprobe114255 -+Node: Troubleshooting114638 -+Node: Stage1 errors115176 -+Node: Stage1.5 errors116553 -+Node: Stage2 errors116991 -+Node: Invoking the grub shell124451 -+Node: Basic usage125204 -+Node: Installation under UNIX127492 -+Node: Device map129167 -+Node: Invoking grub-install130315 -+Node: Invoking grub-md5-crypt131884 -+Node: Invoking grub-terminfo132533 -+Node: Invoking grub-set-default133299 -+Node: Invoking mbchk135100 -+Node: Obtaining and Building GRUB135614 -+Node: Reporting bugs137031 -+Node: Future139835 -+Node: Internals140326 -+Node: Memory map141549 -+Node: Embedded data143027 -+Node: Filesystem interface145044 -+Node: Command interface148477 -+Node: Bootstrap tricks149792 -+Node: I/O ports detection151941 -+Node: Memory detection152213 -+Node: Low-level disk I/O152505 -+Node: MBR152774 -+Node: Partition table152971 -+Node: Submitting patches153244 -+Node: Index154732 -  - End Tag Table -diff --git a/docs/grub.texi b/docs/grub.texi -index 51d330a..5fd324d 100644 ---- a/docs/grub.texi -+++ b/docs/grub.texi -@@ -21,6 +21,7 @@ - @dircategory Kernel - @direntry - * GRUB: (grub). The GRand Unified Bootloader -+* grub-crypt: (grub)Invoking grub-crypt. Encrypt a password - * grub-install: (grub)Invoking grub-install. Install GRUB on your drive - * grub-md5-crypt: (grub)Invoking grub-md5-crypt. Encrypt a password - in MD5 format -@@ -115,8 +116,9 @@ This edition documents version @value{VERSION}. - * Commands:: The list of available builtin commands - * Troubleshooting:: Error messages produced by GRUB - * Invoking the grub shell:: How to use the grub shell -+* Invoking grub-crypt:: How to generate an encrypted password - * Invoking grub-install:: How to use the GRUB installer --* Invoking grub-md5-crypt:: How to generate a cryptic password -+* Invoking grub-md5-crypt:: How to generate an MD5-encrypted password - * Invoking grub-terminfo:: How to generate a terminfo command - * Invoking grub-set-default:: How to set a default boot entry - * Invoking mbchk:: How to use the Multiboot checker -@@ -1265,7 +1267,7 @@ OS. There's a solution to that - GRUB provides a menu interface - keys) that will do everything to boot an OS. - - To enable the menu, you need a configuration file, --@file{menu.lst} under the boot directory. We'll analyze an example -+@file{grub.conf} under the boot directory. We'll analyze an example - file. - - The file first contains some general settings, the menu interface -@@ -1685,27 +1687,17 @@ run the command @command{password} in your configuration file - (@pxref{password}), like this: - - @example --password --md5 PASSWORD -+password --encrypted PASSWORD - @end example - - If this is specified, GRUB disallows any interactive control, until you - press the key @key{p} and enter a correct password. The option --@option{--md5} tells GRUB that @samp{PASSWORD} is in MD5 format. If it -+@option{--encrypted} tells GRUB that @samp{PASSWORD} is encrypted format. If it - is omitted, GRUB assumes the @samp{PASSWORD} is in clear text. - --You can encrypt your password with the command @command{md5crypt} --(@pxref{md5crypt}). For example, run the grub shell (@pxref{Invoking the --grub shell}), and enter your password: -- --@example --@group --grub> md5crypt --Password: ********** --Encrypted: $1$U$JK7xFegdxWH6VuppCUSIb. --@end group --@end example -- --Then, cut and paste the encrypted password to your configuration file. -+You can encrypt your password with the program @command{grub-crypt} -+(@pxref{Invoking grub-crypt}). Then, cut and paste the encrypted password to -+your configuration file. - - Also, you can specify an optional argument to @command{password}. See - this example: -@@ -1882,8 +1874,8 @@ There are two ways to specify files, by @dfn{absolute file name} and by - - An absolute file name resembles a Unix absolute file name, using - @samp{/} for the directory separator (not @samp{\} as in DOS). One --example is @samp{(hd0,0)/boot/grub/menu.lst}. This means the file --@file{/boot/grub/menu.lst} in the first partition of the first hard -+example is @samp{(hd0,0)/boot/grub/grub.conf}. This means the file -+@file{/boot/grub/grub.conf} in the first partition of the first hard - disk. If you omit the device name in an absolute file name, GRUB uses - GRUB's @dfn{root device} implicitly. So if you set the root device to, - say, @samp{(hd1,0)} by the command @command{root} (@pxref{root}), then -@@ -2199,6 +2191,7 @@ Commands usable anywhere in the menu and in the command-line. - * rarp:: Initialize a network device via RARP - * serial:: Set up a serial device - * setkey:: Configure the key map -+* splashimage:: Use a splash image - * terminal:: Choose a terminal - * terminfo:: Define escape sequences for a terminal - * tftpserver:: Specify a TFTP server -@@ -2398,7 +2391,7 @@ is the new partition type and must be a number in the range 0-0xff. - @node password - @subsection password - --@deffn Command password [@option{--md5}] passwd [new-config-file] -+@deffn Command password [@option{--md5}] [@option{--encrypted}] passwd [new-config-file] - If used in the first section of a menu file, disable all interactive - editing control (menu entry editor and command-line) and entries - protected by the command @command{lock}. If the password @var{passwd} is -@@ -2408,7 +2401,9 @@ specified. Otherwise, GRUB will just unlock the privileged instructions. - You can also use this command in the script section, in which case it - will ask for the password, before continuing. The option - @option{--md5} tells GRUB that @var{passwd} is encrypted with --@command{md5crypt} (@pxref{md5crypt}). -+@command{md5crypt} (@pxref{md5crypt}), the option @option{--encrypted} -+tells GRUB that @var{passwd} is using one of the crypt formats (GRUB currently -+supports MD5, SHA-256 and SHA-512 encryption). - @end deffn - - -@@ -2578,6 +2573,16 @@ character each of the symbols corresponds: - @end deffn - - -+@node splashimage -+@subsection splashimage -+ -+@deffn Command splashimage file -+Select an image to use as the background image. This should be -+specified using normal GRUB device naming syntax. The format of the -+file is a gzipped xpm which is 640x480 with a 14 color palette. -+@end deffn -+ -+ - @node terminal - @subsection terminal - -@@ -3542,7 +3547,7 @@ ignores this option. - - @item --config-file=@var{file} - Read the configuration file @var{file} instead of --@file{/boot/grub/menu.lst}. The format is the same as the normal GRUB -+@file{/boot/grub/grub.conf}. The format is the same as the normal GRUB - syntax. See @ref{Filesystem}, for more information. - - @item --boot-drive=@var{drive} -@@ -3653,6 +3658,31 @@ comments in the file if needed, as the grub shell assumes that a line is - just a comment if the first character is @samp{#}. - - -+@node Invoking grub-crypt -+@chapter Invoking grub-crypt -+ -+The program @command{grub-crypt} encrypts a password in one of the specified -+formats. Passwords encrypted by this program can be used with the -+command @command{password} (@pxref{password}). -+ -+@command{grub-crypt} accepts the following options: -+ -+@table @option -+@item --help -+Print a summary of the command-line options and exit. -+ -+@item --version -+Print the version information and exit. -+ -+@item --md5 -+Use MD5 for password encryption. -+@item --sha-256 -+Use SHA-256 for password encryption. -+@item --sha-512 -+Use SHA-512 for password encryption. This is the default. -+@end table -+ -+ - @node Invoking grub-install - @chapter Invoking grub-install - -@@ -3702,8 +3732,9 @@ Use @var{file} as the grub shell. You can append arbitrary options to - - @item --recheck - Recheck the device map, even if @file{/boot/grub/device.map} already --exists. You should use this option whenever you add/remove a disk --into/from your computer. -+exists. -+ -+This option is unreliable and its use is strongly discouraged. - @end table - - -diff --git a/docs/stamp-vti b/docs/stamp-vti -index b97de24..eb5144d 100644 ---- a/docs/stamp-vti -+++ b/docs/stamp-vti -@@ -1,4 +1,4 @@ --@set UPDATED 8 May 2005 --@set UPDATED-MONTH May 2005 -+@set UPDATED 7 August 2007 -+@set UPDATED-MONTH August 2007 - @set EDITION 0.97 - @set VERSION 0.97 -diff --git a/docs/version.texi b/docs/version.texi -index b97de24..eb5144d 100644 ---- a/docs/version.texi -+++ b/docs/version.texi -@@ -1,4 +1,4 @@ --@set UPDATED 8 May 2005 --@set UPDATED-MONTH May 2005 -+@set UPDATED 7 August 2007 -+@set UPDATED-MONTH August 2007 - @set EDITION 0.97 - @set VERSION 0.97 -diff --git a/efi/.gitignore b/efi/.gitignore -new file mode 100644 -index 0000000..a0e4294 ---- /dev/null -+++ b/efi/.gitignore -@@ -0,0 +1,7 @@ -+.deps -+Makefile.in -+Makefile -+*.a -+*.o -+*.so -+*.efi -diff --git a/efi/Makefile.am b/efi/Makefile.am -new file mode 100644 -index 0000000..1d5bd15 ---- /dev/null -+++ b/efi/Makefile.am -@@ -0,0 +1,76 @@ -+ -+pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) -+pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) -+ -+if PLATFORM_EFI -+ -+if NETBOOT_SUPPORT -+NETBOOT_FLAGS = -I$(top_srcdir)/netboot -DSUPPORT_NETBOOT=1 -+else -+NETBOOT_FLAGS = -+endif -+ -+if SERIAL_SUPPORT -+SERIAL_FLAGS = -DSUPPORT_SERIAL=1 -+else -+SERIAL_FLAGS = -+endif -+ -+if HERCULES_SUPPORT -+HERCULES_FLAGS = -DSUPPORT_HERCULES=1 -+else -+HERCULES_FLAGS = -+endif -+ -+if GRAPHICS_SUPPORT -+GRAPHICS_FLAGS = -DSUPPORT_GRAPHICS=1 -+else -+GRAPHICS_FLAGS = -+endif -+ -+GRUBEFI_FORMAT = efi-app-$(EFI_ARCH) -+GRUBSO_LD_SCRIPT = @GNUEFI_LDS@ -+GRUBSO_LD_FLAGS = -T $(GRUBSO_LD_SCRIPT) -nostdlib -shared -Bsymbolic -+ -+GRUBSO_OBJS = efimain.o -+GRUBSO_LIBS = @GNUEFI_CRT0@ $(top_srcdir)/stage2/libstage2.a \ -+ libgrubefi.a @LIBGCC@ -+ -+if NETBOOT_SUPPORT -+GRUBSO_LIBS += $(top_srcdir)/netboot/libdrivers.a -+endif -+ -+pkgdata_DATA = grub.efi -+ -+grub.efi: grub.so -+ $(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel \ -+ -j .rela -j .reloc --target=$(GRUBEFI_FORMAT) $^ $@ -+ -+grub.so: $(GRUBSO_OBJS) $(GRUBSO_LIBS) @LIBGNUEFI@ -+ $(LD) -o $@ $(GRUBSO_LD_FLAGS) $^ -+ echo '-------------- unresolved symbols ---------------------' -+ ! nm $@ | grep -iw u -+ echo '-------------------------------------------------------' -+ -+crt0-efi.o: $(EFI_ARCH)/crt0-efi.S -+ $(CC) -o $@ -c $(libgrubefi_a_CFLAGS) $^ -+ -+efimain.o: efimain.c -+ $(CC) -o $@ -c $(libgrubefi_a_CFLAGS) $^ -+ -+clean-local: -+ -rm -rf grub.so grub.efi -+ -+RELOC_FLAGS = $(STAGE2_CFLAGS) -I$(top_srcdir)/stage1 \ -+ -I$(top_srcdir)/lib -I. -I$(top_srcdir) -I$(top_srcdir)/stage2 \ -+ -fno-builtin $(NETBOOT_FLAGS) $(SERIAL_FLAGS) \ -+ $(HERCULES_FLAGS) $(GRAPHICS_FLAGS) -+ -+noinst_LIBRARIES = libgrubefi.a -+libgrubefi_a_SOURCES = $(EFI_ARCH)/callwrap.S eficore.c efimm.c efimisc.c \ -+ eficon.c efidisk.c graphics.c efigraph.c efiuga.c efidp.c \ -+ font_8x16.c efiserial.c $(EFI_ARCH)/loader/linux.c efichainloader.c \ -+ xpm.c pxe.c efitftp.c -+libgrubefi_a_CFLAGS = $(RELOC_FLAGS) -nostdinc -+ -+endif -diff --git a/efi/byteswap.h b/efi/byteswap.h -new file mode 100644 -index 0000000..5a057c4 ---- /dev/null -+++ b/efi/byteswap.h -@@ -0,0 +1,37 @@ -+#ifndef BYTESWAP_H -+#define BYTESWAP_H 1 -+ -+#if defined(__i386__) -+#define LITTLE_ENDIAN 1 -+#elif defined(__x86_64__) -+#define LITTLE_ENDIAN 1 -+#else -+#error endian not defined -+#endif -+ -+#define bswap_16(x) \ -+ ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)) -+ -+#define bswap_32(x) \ -+ ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | \ -+ (((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24)) -+ -+static inline grub_efi_uint16_t htons(grub_efi_uint16_t hostshort) -+{ -+#ifdef LITTLE_ENDIAN -+ return bswap_16(hostshort); -+#else -+ return hostshort; -+#endif -+} -+ -+static inline grub_efi_uint32_t htonl(grub_efi_uint32_t hostshort) -+{ -+#ifdef LITTLE_ENDIAN -+ return bswap_32(hostshort); -+#else -+ return hostshort; -+#endif -+} -+ -+#endif /* BYTESWAP_H */ -diff --git a/efi/dhcp.h b/efi/dhcp.h -new file mode 100644 -index 0000000..a82a522 ---- /dev/null -+++ b/efi/dhcp.h -@@ -0,0 +1,133 @@ -+#ifndef DHCP_H -+#define DHCP_H 1 -+ -+#include "pxe.h" -+ -+#define EFI_DHCP4_PROTOCOL_GUID \ -+{ 0x8a219718, 0x4ef5, 0x4761, {0x91,0xc8,0xc0,0xf0,0x4b,0xda,0x9e,0x56} } -+static grub_efi_guid_t DHCP4Protocol = EFI_DHCP4_PROTOCOL_GUID; -+ -+#define EFI_DHCP4_SERVICE_BINDING_PROTOCOL_GUID \ -+{ 0x9d9a39d8, 0xbd42, 0x4a73, {0xa4,0xd5,0x8e,0xe9,0x4b,0xe1,0x13,0x80} } -+static grub_efi_guid_t DHCP4SbProtocol = EFI_DHCP4_SERVICE_BINDING_PROTOCOL_GUID; -+ -+#define EFI_PXE_DHCP4_PROTOCOL_GUID \ -+{ 0x03c4e624, 0xac28, 0x11d3, {0x9a,0x2d,0x00,0x90,0x29,0x3f,0xc1,0x4d} } -+static grub_efi_guid_t PxeDHCP4Protocol = EFI_PXE_DHCP4_PROTOCOL_GUID; -+ -+ -+typedef EFI_STATUS (*EFI_DHCP4_GET_MODE_DATA)(); -+typedef EFI_STATUS (*EFI_DHCP4_CONFIGURE)(); -+typedef EFI_STATUS (*EFI_DHCP4_START)(); -+typedef EFI_STATUS (*EFI_DHCP4_RENEW_REBIND)(); -+typedef EFI_STATUS (*EFI_DHCP4_RELEASE)(); -+typedef EFI_STATUS (*EFI_DHCP4_STOP)(); -+typedef EFI_STATUS (*EFI_DHCP4_BUILD)(); -+typedef EFI_STATUS (*EFI_DHCP4_TRANSMIT_RECIEVE)(); -+typedef EFI_STATUS (*EFI_DHCP4_PARSE)(); -+ -+typedef struct _EFI_DHCP4_PROTOCOL { -+ EFI_DHCP4_GET_MODE_DATA GetModeData; -+ EFI_DHCP4_CONFIGURE Configure; -+ EFI_DHCP4_START Start; -+ EFI_DHCP4_RENEW_REBIND RenewRebind; -+ EFI_DHCP4_RELEASE Release; -+ EFI_DHCP4_STOP Stop; -+ EFI_DHCP4_BUILD Build; -+ EFI_DHCP4_TRANSMIT_RECIEVE TransmitReceive; -+ EFI_DHCP4_PARSE Parse; -+} EFI_DHCP4_PROTOCOL; -+ -+typedef enum { -+ Dhcp4Stopped, -+ Dhcp4Init, -+ Dhcp4Selecting, -+ Dhcp4Requesting, -+ Dhcp4Bound, -+ Dhcp4Renewing, -+ Dhcp4Rebinding, -+ Dhcp4InitReboot, -+ Dhcp4Rebooting, -+} EFI_DHCP4_STATE; -+ -+typedef enum { -+ Dhcp4SendDiscover = 0x1, -+ Dhcp4RcvdOffer, -+ Dhcp4SelectOffer, -+ Dhcp4SendRequest, -+ Dhcp4RcvdAck, -+ Dhcp4RcvdNak, -+ Dhcp4SendDecline, -+ Dhcp4BoundCompleted, -+ Dhcp4EnterRenewing, -+ Dhcp4EnterRebinding, -+ Dhcp4AddressLost, -+ Dhcp4Fail, -+} EFI_DHCP4_EVENT; -+ -+typedef struct { -+ grub_efi_uint8_t OpCode; -+ grub_efi_uint8_t HwType; -+ grub_efi_uint8_t HwAddrLen; -+ grub_efi_uint8_t Hops; -+ grub_efi_uint32_t xid; -+ grub_efi_uint16_t Seconds; -+ grub_efi_uint16_t reserved; -+ EFI_IPv4_ADDRESS ClientAddr; -+ EFI_IPv4_ADDRESS YourAddr; -+ EFI_IPv4_ADDRESS ServerAddr; -+ EFI_IPv4_ADDRESS GatewayAddr; -+ grub_efi_uint8_t ClientHwAddr[16]; -+ char ServerName[64]; -+ char BootFileName[128]; -+} EFI_DHCP4_HEADER; -+ -+typedef struct { -+ grub_efi_uint32_t Size; -+ grub_efi_uint32_t Length; -+ struct { -+ EFI_DHCP4_HEADER Header; -+ grub_efi_uint32_t Magik; -+ grub_efi_uint8_t option[]; -+ } Dhcp4; -+} EFI_DHCP4_PACKET; -+ -+typedef struct { -+ grub_efi_uint8_t OpCode; -+ grub_efi_uint8_t Length; -+ grub_efi_uint8_t Data[1]; -+} EFI_DHCP4_PACKET_OPTION; -+ -+typedef EFI_STATUS (*EFI_DHCP4_CALLBACK) ( -+ EFI_DHCP4_PROTOCOL *This, -+ void *Context, -+ EFI_DHCP4_STATE CurrentState, -+ EFI_DHCP4_EVENT Dhcp4Event, -+ EFI_DHCP4_PACKET *Packet, -+ EFI_DHCP4_PACKET **NewPacket); -+ -+typedef struct { -+ grub_efi_uint32_t DiscoverTryCount; -+ grub_efi_uint32_t *DiscoverTimeout; -+ grub_efi_uint32_t RequestTryCount; -+ grub_efi_uint32_t *RequestTimeout; -+ EFI_IPv4_ADDRESS ClientAddress; -+ EFI_DHCP4_CALLBACK Dhcp4Callback; -+ void *CallbackContext; -+ grub_efi_uint32_t OptionCount; -+ EFI_DHCP4_PACKET_OPTION **OptionList; -+} EFI_DHCP4_CONFIG_DATA; -+ -+typedef struct { -+ EFI_DHCP4_STATE State; -+ EFI_DHCP4_CONFIG_DATA ConfigData; -+ EFI_IPv4_ADDRESS ClientAddress; -+ EFI_MAC_ADDRESS ClientMacAddress; -+ EFI_IPv4_ADDRESS ServerAddress; -+ EFI_IPv4_ADDRESS RouterAddress; -+ EFI_IPv4_ADDRESS SubnetMask; -+ grub_efi_uint32_t LeaseTime; -+ EFI_DHCP4_PACKET *ReplyPacket; -+} EFI_DHCP4_MODE_DATA; -+ -+#endif /* DHCP_H */ -diff --git a/efi/efichainloader.c b/efi/efichainloader.c -new file mode 100644 -index 0000000..016636c ---- /dev/null -+++ b/efi/efichainloader.c -@@ -0,0 +1,265 @@ -+/* efichainloader.c - boot another boot loader */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2002,2004,2006 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. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include -+ -+#define grub_file_size() filemax -+ -+static grub_efi_physical_address_t address; -+static grub_efi_uintn_t pages; -+static grub_efi_device_path_t *file_path; -+static grub_efi_handle_t image_handle; -+ -+static int -+grub_chainloader_unload (void) -+{ -+ grub_efi_boot_services_t *b; -+ -+ b = grub_efi_system_table->boot_services; -+ Call_Service_1 (b->unload_image, image_handle); -+ Call_Service_2 (b->free_pages, address, pages); -+ grub_free (file_path); -+ -+ return 0; -+} -+ -+static int -+grub_chainloader_boot (void) -+{ -+ grub_efi_boot_services_t *b; -+ grub_efi_status_t status; -+ grub_efi_uintn_t exit_data_size = 0; -+ grub_efi_char16_t *exit_data = NULL; -+ -+ b = grub_efi_system_table->boot_services; -+ status = Call_Service_3 (b->start_image, image_handle, -+ &exit_data_size, &exit_data); -+ if (status != GRUB_EFI_SUCCESS) -+ { -+ if (exit_data) -+ { -+ char *buf; -+ -+ buf = grub_malloc (exit_data_size * 4 + 1); -+ if (buf) -+ { -+ *grub_utf16_to_utf8 ((grub_uint8_t *) buf, -+ exit_data, exit_data_size) = 0; -+ -+ grub_printf (buf); -+ grub_free (buf); -+ } -+ else -+ grub_printf ("unknown error\n"); -+ } -+ errnum = ERR_UNRECOGNIZED; -+ } -+ -+ if (exit_data) -+ Call_Service_1 (b->free_pool, exit_data); -+ -+ grub_chainloader_unload (); -+ -+ return 0; -+} -+ -+static void -+copy_file_path (grub_efi_file_path_device_path_t *fp, -+ const char *str, grub_efi_uint16_t len) -+{ -+ grub_efi_char16_t *p; -+ grub_efi_uint16_t size; -+ -+ fp->header.type = GRUB_EFI_MEDIA_DEVICE_PATH_TYPE; -+ fp->header.subtype = GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE; -+ size = len * sizeof (grub_efi_char16_t) + sizeof (*fp); -+ fp->header.length[0] = (grub_efi_uint8_t) (size & 0xff); -+ fp->header.length[1] = (grub_efi_uint8_t) (size >> 8); -+ for (p = fp->path_name; len > 0; len--, p++, str++) -+ { -+ *p = (grub_efi_char16_t) (*str == '/' ? '\\' : *str); -+ } -+} -+ -+static grub_efi_device_path_t * -+make_file_path (const char *filename) -+{ -+ char *dir_start; -+ char *dir_end; -+ grub_size_t size; -+ grub_efi_device_path_t *d; -+ -+ dir_start = grub_strchr (filename, ')'); -+ if (! dir_start) -+ dir_start = (char *) filename; -+ else -+ dir_start++; -+ -+ dir_end = grub_strrchr (dir_start, '/'); -+ if (! dir_end) -+ { -+ errnum = ERR_BAD_FILENAME; -+ grub_printf ("invalid EFI file path"); -+ return 0; -+ } -+ -+ size = 0; -+ file_path = grub_malloc ((grub_strlen (dir_start) + 1) -+ * sizeof (grub_efi_char16_t) -+ + sizeof (grub_efi_file_path_device_path_t) * 2); -+ if (! file_path) -+ return 0; -+ -+ /* Fill the file path for the directory. */ -+ d = (grub_efi_device_path_t *) file_path; -+ -+ if (dir_end - dir_start) -+ { -+ copy_file_path ((grub_efi_file_path_device_path_t *) d, -+ dir_start, dir_end - dir_start); -+ d = GRUB_EFI_NEXT_DEVICE_PATH (d); -+ /* Fill the file path for the file. */ -+ copy_file_path ((grub_efi_file_path_device_path_t *) d, -+ dir_end + 1, grub_strlen (dir_end + 1)); -+ } -+ else -+ { -+ /* Fill the file path for the file. */ -+ copy_file_path ((grub_efi_file_path_device_path_t *) d, -+ dir_end, grub_strlen (dir_end)); -+ } -+ -+ /* Fill the end of device path nodes. */ -+ d = GRUB_EFI_NEXT_DEVICE_PATH (d); -+ d->type = GRUB_EFI_END_DEVICE_PATH_TYPE; -+ d->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -+ d->length[0] = sizeof (*d); -+ d->length[1] = 0; -+ -+ return file_path; -+} -+ -+int -+grub_chainloader (char *filename) -+{ -+ grub_ssize_t size; -+ grub_efi_status_t status; -+ grub_efi_boot_services_t *b; -+ grub_efi_handle_t dev_handle = 0; -+ grub_efi_loaded_image_t *loaded_image; -+ -+ /* Initialize some global variables. */ -+ address = 0xffffffff; -+ image_handle = 0; -+ -+ b = grub_efi_system_table->boot_services; -+ -+ if (! grub_open (filename)) -+ goto fail1; -+ -+ dev_handle = grub_efidisk_get_current_bdev_handle (); -+ if (! dev_handle) -+ { -+ errnum = ERR_UNRECOGNIZED; -+ grub_printf ("not a valid root device\n"); -+ goto fail; -+ } -+ -+ file_path = make_file_path (filename); -+ if (! file_path) -+ goto fail; -+ -+ grub_printf ("file path: "); -+ grub_efi_print_device_path (file_path); -+ -+ size = grub_file_size (); -+ pages = (((grub_efi_uintn_t) size + ((1 << 12) - 1)) >> 12); -+ -+ status = Call_Service_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_ANY_PAGES, -+ GRUB_EFI_LOADER_CODE, pages, &address); -+ if (status != GRUB_EFI_SUCCESS) -+ { -+ errnum = ERR_UNRECOGNIZED; -+ grub_printf ("cannot allocate %u pages", pages); -+ goto fail; -+ } -+ -+ if (grub_read ((void *) ((grub_addr_t) address), size) != size) -+ { -+ if (errnum == ERR_NONE) -+ { -+ errnum = ERR_UNRECOGNIZED; -+ grub_printf ("too small"); -+ } -+ goto fail; -+ } -+ -+ status = Call_Service_6 (b->load_image, 0, grub_efi_image_handle, file_path, -+ (void *) ((grub_addr_t) address), size, -+ &image_handle); -+ if (status != GRUB_EFI_SUCCESS) -+ { -+ errnum = ERR_UNRECOGNIZED; -+ if (status == GRUB_EFI_OUT_OF_RESOURCES) -+ grub_printf ("out of resources"); -+ else -+ grub_printf ("cannot load image"); -+ -+ goto fail; -+ } -+ -+ /* LoadImage does not set a device handler when the image is -+ loaded from memory, so it is necessary to set it explicitly here. -+ This is a mess. */ -+ loaded_image = grub_efi_get_loaded_image (image_handle); -+ if (! loaded_image) -+ { -+ errnum = ERR_UNRECOGNIZED; -+ grub_printf ("no loaded image available"); -+ goto fail; -+ } -+ loaded_image->device_handle = dev_handle; -+ -+ grub_close (); -+ return KERNEL_TYPE_CHAINLOADER; -+ -+ fail: -+ grub_close (); -+ fail1: -+ if (address) -+ b->free_pages (address, pages); -+ -+ return KERNEL_TYPE_NONE; -+} -+ -+/* calls for direct boot-loader chaining */ -+void -+chain_stage1 (unsigned long segment, unsigned long offset, -+ unsigned long part_table_addr) -+{ -+ grub_chainloader_boot (); -+ for (;;); -+} -diff --git a/efi/eficon.c b/efi/eficon.c -new file mode 100644 -index 0000000..037f050 ---- /dev/null -+++ b/efi/eficon.c -@@ -0,0 +1,306 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2006 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. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+static int -+grub_console_standard_color = GRUB_EFI_TEXT_ATTR (GRUB_EFI_YELLOW, -+ GRUB_EFI_BACKGROUND_BLACK); -+static int -+grub_console_normal_color = GRUB_EFI_TEXT_ATTR (GRUB_EFI_LIGHTGRAY, -+ GRUB_EFI_BACKGROUND_BLACK); -+static int -+grub_console_highlight_color = GRUB_EFI_TEXT_ATTR (GRUB_EFI_BLACK, -+ GRUB_EFI_BACKGROUND_LIGHTGRAY); -+ -+static int read_key = -1; -+ -+void -+console_putchar (int c) -+{ -+ grub_efi_char16_t str[2]; -+ grub_efi_simple_text_output_interface_t *o; -+ -+ o = grub_efi_system_table->con_out; -+ -+ switch (c) -+ { -+ case DISP_LEFT: -+ c = '<'; -+ break; -+ -+ case DISP_UP: -+ c = '^'; -+ break; -+ -+ case DISP_RIGHT: -+ c = '>'; -+ break; -+ -+ case DISP_DOWN: -+ c = 'v'; -+ break; -+ -+ case DISP_HORIZ: -+ c = '-'; -+ break; -+ -+ case DISP_VERT: -+ c = '|'; -+ break; -+ -+ case DISP_UL: -+ case DISP_UR: -+ case DISP_LL: -+ case DISP_LR: -+ c = '+'; -+ break; -+ } -+ -+ /* For now, do not try to use a surrogate pair. */ -+ if (c > 0xffff) -+ c = '?'; -+ -+ str[0] = (grub_efi_char16_t) (c & 0xffff); -+ str[1] = 0; -+ -+ /* Should this test be cached? */ -+ if (c > 0x7f && Call_Service_2 (o->test_string, o, str) != GRUB_EFI_SUCCESS) -+ return; -+ -+ Call_Service_2 (o->output_string, o, str); -+} -+ -+int -+console_checkkey (void) -+{ -+ grub_efi_simple_input_interface_t *i; -+ grub_efi_input_key_t key; -+ grub_efi_status_t status; -+ -+ if (read_key >= 0) -+ return 1; -+ -+ i = grub_efi_system_table->con_in; -+ status = Call_Service_2 (i->read_key_stroke ,i, &key); -+#if 0 -+ switch (status) -+ { -+ case GRUB_EFI_SUCCESS: -+ { -+ int xy; -+ -+ xy = console_getxy (); -+ console_gotoxy (0, 0); -+ grub_printf ("scan_code=%x,unicode_char=%x ", -+ (unsigned) key.scan_code, -+ (unsigned) key.unicode_char); -+ console_gotoxy (xy >> 8, xy & 0xff); -+ } -+ break; -+ -+ case GRUB_EFI_NOT_READY: -+ grub_printf ("not ready "); -+ break; -+ -+ default: -+ grub_printf ("device error "); -+ break; -+ } -+#endif -+ -+ if (status == GRUB_EFI_SUCCESS) -+ { -+ switch (key.scan_code) -+ { -+ case 0x00: -+ read_key = key.unicode_char; -+ break; -+ case 0x01: -+ read_key = 16; -+ break; -+ case 0x02: -+ read_key = 14; -+ break; -+ case 0x03: -+ read_key = 6; -+ break; -+ case 0x04: -+ read_key = 2; -+ break; -+ case 0x05: -+ read_key = 1; -+ break; -+ case 0x06: -+ read_key = 5; -+ break; -+ case 0x07: -+ break; -+ case 0x08: -+ read_key = 4; -+ break; -+ case 0x09: -+ break; -+ case 0x0a: -+ break; -+ case 0x17: -+ read_key = '\e'; -+ break; -+ default: -+ break; -+ } -+ } -+ -+ return read_key; -+} -+ -+int -+console_getkey (void) -+{ -+ grub_efi_simple_input_interface_t *i; -+ grub_efi_boot_services_t *b; -+ grub_efi_uintn_t index; -+ grub_efi_status_t status; -+ int key; -+ -+ if (read_key >= 0) -+ { -+ key = read_key; -+ read_key = -1; -+ return key; -+ } -+ -+ i = grub_efi_system_table->con_in; -+ b = grub_efi_system_table->boot_services; -+ -+ do -+ { -+ status = Call_Service_3 (b->wait_for_event , 1, &(i->wait_for_key), &index); -+ if (status != GRUB_EFI_SUCCESS) -+ return -1; -+ -+ console_checkkey (); -+ } -+ while (read_key < 0); -+ -+ key = read_key; -+ read_key = -1; -+ return key; -+} -+ -+int -+console_keystatus (void) -+{ -+ /* Doesn't look like EFI can support this... */ -+ return 0; -+} -+ -+int -+console_getxy (void) -+{ -+ grub_efi_simple_text_output_interface_t *o; -+ -+ o = grub_efi_system_table->con_out; -+ return ((o->mode->cursor_column << 8) | o->mode->cursor_row); -+} -+ -+void -+console_gotoxy (int x, int y) -+{ -+ grub_efi_simple_text_output_interface_t *o; -+ -+ o = grub_efi_system_table->con_out; -+ Call_Service_3 (o->set_cursor_position , o, x, y); -+} -+ -+void -+console_cls (void) -+{ -+ grub_efi_simple_text_output_interface_t *o; -+ grub_efi_int32_t orig_attr; -+ -+ o = grub_efi_system_table->con_out; -+ orig_attr = o->mode->attribute; -+ Call_Service_2 (o->set_attributes, o, GRUB_EFI_BACKGROUND_BLACK); -+ Call_Service_1 (o->clear_screen , o); -+ Call_Service_2 (o->set_attributes , o, orig_attr); -+} -+ -+void -+console_setcolorstate (color_state state) -+{ -+ grub_efi_simple_text_output_interface_t *o; -+ -+ o = grub_efi_system_table->con_out; -+ -+ switch (state) { -+ case COLOR_STATE_STANDARD: -+ Call_Service_2 (o->set_attributes, o, grub_console_standard_color); -+ break; -+ case COLOR_STATE_NORMAL: -+ Call_Service_2 (o->set_attributes, o, grub_console_normal_color); -+ break; -+ case COLOR_STATE_HIGHLIGHT: -+ Call_Service_2 (o->set_attributes, o, grub_console_highlight_color); -+ break; -+ default: -+ break; -+ } -+} -+ -+void -+console_setcolor (int normal_color, int highlight_color) -+{ -+ grub_console_normal_color = normal_color; -+ grub_console_highlight_color = highlight_color; -+} -+ -+int -+console_setcursor (int on) -+{ -+ grub_efi_simple_text_output_interface_t *o; -+ -+ o = grub_efi_system_table->con_out; -+ Call_Service_2 (o->enable_cursor, o, on); -+ return on; -+} -+ -+void -+grub_console_init (void) -+{ -+ /* FIXME: it is necessary to consider the case where no console control -+ is present but the default is already in text mode. */ -+ if (! grub_efi_set_text_mode (1)) -+ { -+ grub_printf ("cannot set text mode"); -+ return; -+ } -+} -+ -+void -+grub_console_fini (void) -+{ -+} -diff --git a/efi/eficore.c b/efi/eficore.c -new file mode 100644 -index 0000000..8abea7d ---- /dev/null -+++ b/efi/eficore.c -@@ -0,0 +1,241 @@ -+/* eficore.c - generic EFI support */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2006 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. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+ -+/* The handle of GRUB itself. Filled in by the startup code. */ -+grub_efi_handle_t grub_efi_image_handle; -+ -+/* The pointer to a system table. Filled in by the startup code. */ -+grub_efi_system_table_t *grub_efi_system_table; -+ -+static grub_efi_guid_t console_control_guid = GRUB_EFI_CONSOLE_CONTROL_GUID; -+static grub_efi_guid_t loaded_image_guid = GRUB_EFI_LOADED_IMAGE_GUID; -+static grub_efi_guid_t device_path_guid = GRUB_EFI_DEVICE_PATH_GUID; -+ -+/* temporary, until we're using gnu-efi's include files --pjones */ -+extern int setjmp(grub_jmp_buf env); -+int grub_setjmp(grub_jmp_buf env) -+{ -+ return setjmp(env); -+} -+ -+extern void longjmp(grub_jmp_buf env, int val); -+void grub_longjmp(grub_jmp_buf env, int val) -+{ -+ longjmp(env, val); -+} -+ -+grub_efi_status_t -+grub_efi_locate_device_path (grub_efi_guid_t *protocol, -+ grub_efi_device_path_t **dp, -+ grub_efi_handle_t *handle) -+{ -+ return Call_Service_3( -+ grub_efi_system_table->boot_services->locate_device_path, -+ protocol, dp, handle); -+} -+ -+grub_efi_status_t -+grub_efi_locate_handle_buffer (grub_efi_locate_search_type_t search_type, -+ grub_efi_guid_t *protocol, -+ void *search_key, -+ grub_efi_uintn_t *no_handles, -+ grub_efi_handle_t **buffer) -+{ -+ return Call_Service_5( -+ grub_efi_system_table->boot_services->locate_handle_buffer, -+ search_type, protocol, search_key, no_handles, buffer); -+} -+ -+void * -+grub_efi_locate_protocol (grub_efi_guid_t *protocol, void *registration) -+{ -+ void *interface; -+ grub_efi_status_t status; -+ -+ status = Call_Service_3 (grub_efi_system_table->boot_services->locate_protocol, -+ protocol, -+ registration, -+ &interface); -+ if (status != GRUB_EFI_SUCCESS) -+ return 0; -+ -+ return interface; -+} -+ -+/* Return the array of handles which meet the requirement. If successful, -+ the number of handles is stored in NUM_HANDLES. The array is allocated -+ from the heap. */ -+grub_efi_handle_t * -+grub_efi_locate_handle (grub_efi_locate_search_type_t search_type, -+ grub_efi_guid_t *protocol, -+ void *search_key, -+ grub_efi_uintn_t *num_handles) -+{ -+ grub_efi_boot_services_t *b; -+ grub_efi_status_t status; -+ grub_efi_handle_t *buffer; -+ grub_efi_uintn_t buffer_size = 8 * sizeof (grub_efi_handle_t); -+ -+ buffer = grub_malloc (buffer_size); -+ if (! buffer) -+ return 0; -+ -+ b = grub_efi_system_table->boot_services; -+ status = Call_Service_5 (b->locate_handle, search_type, protocol, -+ search_key, &buffer_size, buffer); -+ if (status == GRUB_EFI_BUFFER_TOO_SMALL) -+ { -+ grub_free (buffer); -+ buffer = grub_malloc (buffer_size); -+ if (! buffer) -+ return 0; -+ -+ status = Call_Service_5 (b->locate_handle, search_type, protocol, -+ search_key, &buffer_size, buffer); -+ } -+ -+ if (status != GRUB_EFI_SUCCESS) -+ { -+ grub_free (buffer); -+ return 0; -+ } -+ -+ *num_handles = buffer_size / sizeof (grub_efi_handle_t); -+ return buffer; -+} -+ -+void * -+grub_efi_open_protocol (grub_efi_handle_t handle, -+ grub_efi_guid_t *protocol, -+ grub_efi_uint32_t attributes) -+{ -+ grub_efi_boot_services_t *b; -+ grub_efi_status_t status; -+ void *interface; -+ -+ b = grub_efi_system_table->boot_services; -+ status = Call_Service_6 ( b->open_protocol, -+ handle, -+ protocol, -+ &interface, -+ grub_efi_image_handle, -+ 0, -+ attributes); -+ if (status != GRUB_EFI_SUCCESS) -+ return 0; -+ -+ return interface; -+} -+ -+int -+grub_efi_set_text_mode (int on) -+{ -+ grub_efi_console_control_protocol_t *c; -+ grub_efi_screen_mode_t mode, new_mode; -+ -+ c = grub_efi_locate_protocol (&console_control_guid, 0); -+ if (! c) -+ /* No console control protocol instance available, assume it is -+ already in text mode. */ -+ return 1; -+ -+ if (Call_Service_4 (c->get_mode , c, &mode, 0, 0) != GRUB_EFI_SUCCESS) -+ return 0; -+ -+ new_mode = on ? GRUB_EFI_SCREEN_TEXT : GRUB_EFI_SCREEN_GRAPHICS; -+ if (mode != new_mode) -+ if (Call_Service_2 (c->set_mode , c, new_mode) != GRUB_EFI_SUCCESS) -+ return 0; -+ -+ return 1; -+} -+ -+void -+grub_efi_stall (grub_efi_uintn_t microseconds) -+{ -+ Call_Service_1 (grub_efi_system_table->boot_services->stall , microseconds); -+} -+ -+grub_efi_loaded_image_t * -+grub_efi_get_loaded_image (grub_efi_handle_t image_handle) -+{ -+ return grub_efi_open_protocol (image_handle, -+ &loaded_image_guid, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+} -+ -+void -+grub_exit (void) -+{ -+ grub_efi_fini (); -+ Call_Service_4(grub_efi_system_table->boot_services->exit, -+ grub_efi_image_handle, -+ GRUB_EFI_SUCCESS, -+ 0, -+ 0 ); -+ for (;;); -+} -+ -+int -+grub_efi_exit_boot_services (grub_efi_uintn_t map_key) -+{ -+ grub_efi_boot_services_t *b; -+ grub_efi_status_t status; -+ -+ b = grub_efi_system_table->boot_services; -+ status = Call_Service_2 (b->exit_boot_services , -+ grub_efi_image_handle, -+ map_key); -+ return status == GRUB_EFI_SUCCESS; -+} -+ -+grub_uint32_t -+grub_get_rtc (void) -+{ -+ grub_efi_time_t time; -+ grub_efi_runtime_services_t *r; -+ -+ r = grub_efi_system_table->runtime_services; -+ if (Call_Service_2(r->get_time , &time, 0) != GRUB_EFI_SUCCESS) -+ /* What is possible in this case? */ -+ return 0; -+ -+ return (((time.minute * 60 + time.second) * 1000 -+ + time.nanosecond / 1000000) -+ * GRUB_TICKS_PER_SECOND / 1000); -+} -+ -+grub_efi_device_path_t * -+grub_efi_get_device_path (grub_efi_handle_t handle) -+{ -+ return grub_efi_open_protocol (handle, &device_path_guid, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+} -+ -diff --git a/efi/efidisk.c b/efi/efidisk.c -new file mode 100644 -index 0000000..6a505f3 ---- /dev/null -+++ b/efi/efidisk.c -@@ -0,0 +1,801 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2006 Free Software Foundation, Inc. -+ * -+ * GRUB 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 GRUB; if not, write to the Free Software -+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include -+ -+struct grub_efidisk_data -+{ -+ grub_efi_handle_t handle; -+ grub_efi_device_path_t *device_path; -+ grub_efi_device_path_t *last_device_path; -+ grub_efi_block_io_t *block_io; -+ grub_efi_disk_io_t *disk_io; -+ struct grub_efidisk_data *next; -+}; -+ -+/* GUIDs. */ -+static grub_efi_guid_t disk_io_guid = GRUB_EFI_DISK_IO_GUID; -+static grub_efi_guid_t block_io_guid = GRUB_EFI_BLOCK_IO_GUID; -+static grub_efi_guid_t device_path_from_text_guid = GRUB_EFI_DEVICE_PATH_FROM_TEXT_GUID; -+ -+static struct grub_efidisk_data *fd_devices; -+static struct grub_efidisk_data *hd_devices; -+static struct grub_efidisk_data *cd_devices; -+ -+static int get_device_sector_bits(struct grub_efidisk_data *device); -+static int get_device_sector_size(struct grub_efidisk_data *device); -+static struct grub_efidisk_data *get_device_from_drive (int drive); -+ -+static struct grub_efidisk_data * -+make_devices (void) -+{ -+ grub_efi_uintn_t num_handles; -+ grub_efi_handle_t *handles; -+ grub_efi_handle_t *handle; -+ struct grub_efidisk_data *devices = 0; -+ -+ /* Find handles which support the disk io interface. */ -+ handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL, &disk_io_guid, -+ 0, &num_handles); -+ if (! handles) -+ return 0; -+ -+ /* Make a linked list of devices. */ -+ for (handle = handles; num_handles--; handle++) -+ { -+ grub_efi_device_path_t *dp; -+ grub_efi_device_path_t *ldp; -+ struct grub_efidisk_data *d; -+ grub_efi_block_io_t *bio; -+ grub_efi_disk_io_t *dio; -+ -+ dp = grub_efi_get_device_path (*handle); -+ if (! dp) -+ continue; -+ -+ ldp = find_last_device_path (dp); -+ if (! ldp) -+ /* This is empty. Why? */ -+ continue; -+ -+ bio = grub_efi_open_protocol (*handle, &block_io_guid, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+ dio = grub_efi_open_protocol (*handle, &disk_io_guid, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+ if (! bio || ! dio) -+ /* This should not happen... Why? */ -+ continue; -+ -+ d = grub_malloc (sizeof (*d)); -+ if (! d) -+ { -+ /* Uggh. */ -+ grub_free (handles); -+ return 0; -+ } -+ -+ d->handle = *handle; -+ d->device_path = dp; -+ d->last_device_path = ldp; -+ d->block_io = bio; -+ d->disk_io = dio; -+ d->next = devices; -+ devices = d; -+ } -+ -+ grub_free (handles); -+ -+ return devices; -+} -+ -+static int -+iterate_child_devices (struct grub_efidisk_data *devices, -+ struct grub_efidisk_data *d, -+ int (*hook) (struct grub_efidisk_data *child)) -+{ -+ struct grub_efidisk_data *p; -+ -+ for (p = devices; p; p = p->next) -+ { -+ grub_efi_device_path_t *dp, *ldp; -+ -+ dp = duplicate_device_path (p->device_path); -+ if (! dp) -+ return 0; -+ -+ ldp = find_last_device_path (dp); -+ ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; -+ ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -+ ldp->length[0] = sizeof (*ldp); -+ ldp->length[1] = 0; -+ -+ if (compare_device_paths (dp, d->device_path) == 0) -+ if (hook (p)) -+ { -+ grub_free (dp); -+ return 1; -+ } -+ -+ grub_free (dp); -+ } -+ -+ return 0; -+} -+ -+/* Add a device into a list of devices in an ascending order. */ -+static void -+add_device (struct grub_efidisk_data **devices, struct grub_efidisk_data *d) -+{ -+ struct grub_efidisk_data **p; -+ struct grub_efidisk_data *n; -+ -+ for (p = devices; *p; p = &((*p)->next)) -+ { -+ int ret; -+ -+ ret = compare_device_paths (find_last_device_path ((*p)->device_path), -+ find_last_device_path (d->device_path)); -+ if (ret == 0) -+ ret = compare_device_paths ((*p)->device_path, -+ d->device_path); -+ if (ret == 0) -+ return; -+ else if (ret > 0) -+ break; -+ } -+ -+ n = grub_malloc (sizeof (*n)); -+ if (! n) -+ return; -+ -+ grub_memcpy (n, d, sizeof (*n)); -+ n->next = (*p); -+ (*p) = n; -+} -+ -+/* Name the devices. */ -+static void -+name_devices (struct grub_efidisk_data *devices) -+{ -+ struct grub_efidisk_data *d; -+ -+ /* Let's see what can be added more. */ -+ for (d = devices; d; d = d->next) -+ { -+ grub_efi_device_path_t *dp; -+ grub_efi_block_io_media_t *m; -+ -+ dp = d->last_device_path; -+ if (! dp) -+ continue; -+ -+ m = d->block_io->media; -+ if (GRUB_EFI_DEVICE_PATH_TYPE(dp) == GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE) -+ { -+ /* XXX FIXME this won't work if we see write-protected disks with -+ * 4k sectors */ -+ if (m->read_only && m->block_size > 0x200) -+ { -+ add_device (&cd_devices, d); -+ } else -+ { -+ add_device (&hd_devices, d); -+ } -+ } -+ if (GRUB_EFI_DEVICE_PATH_TYPE(dp) == GRUB_EFI_ACPI_DEVICE_PATH_TYPE) -+ { -+ add_device (&fd_devices, d); -+ } -+ } -+} -+ -+static void -+free_devices (struct grub_efidisk_data *devices) -+{ -+ struct grub_efidisk_data *p, *q; -+ -+ for (p = devices; p; p = q) -+ { -+ q = p->next; -+ grub_free (p); -+ } -+} -+ -+/* Enumerate all disks to name devices. */ -+static void -+enumerate_disks (void) -+{ -+ struct grub_efidisk_data *devices; -+ -+ devices = make_devices (); -+ if (! devices) -+ return; -+ -+ name_devices (devices); -+ free_devices (devices); -+} -+ -+static struct grub_efidisk_data * -+get_device (struct grub_efidisk_data *devices, int num) -+{ -+ struct grub_efidisk_data *d; -+ -+ for (d = devices; d && num; d = d->next, num--) -+ ; -+ -+ if (num == 0) -+ return d; -+ -+ return 0; -+} -+ -+static int -+grub_efidisk_read (struct grub_efidisk_data *d, grub_disk_addr_t sector, -+ grub_size_t size, char *buf) -+{ -+ /* For now, use the disk io interface rather than the block io's. */ -+ grub_efi_disk_io_t *dio; -+ grub_efi_block_io_t *bio; -+ grub_efi_status_t status; -+ grub_efi_uint64_t sector_size = get_device_sector_size(d); -+ -+ dio = d->disk_io; -+ bio = d->block_io; -+ -+ status = Call_Service_5 (dio->read, -+ dio, bio->media->media_id, -+ sector * sector_size, -+ size * sector_size, -+ buf); -+ if (status != GRUB_EFI_SUCCESS) -+ return -1; -+ -+ return 0; -+} -+ -+static int -+grub_efidisk_write (struct grub_efidisk_data *d, grub_disk_addr_t sector, -+ grub_size_t size, const char *buf) -+{ -+ /* For now, use the disk io interface rather than the block io's. */ -+ grub_efi_disk_io_t *dio; -+ grub_efi_block_io_t *bio; -+ grub_efi_status_t status; -+ grub_efi_uint64_t sector_size = get_device_sector_size(d); -+ -+ dio = d->disk_io; -+ bio = d->block_io; -+ -+ grub_dprintf ("efidisk", -+ "writing 0x%x sectors at the sector 0x%x to ??\n", -+ (unsigned) size, (unsigned int) sector); -+ -+ status = Call_Service_5 (dio->write , -+ dio, bio->media->media_id, -+ sector * sector_size, -+ size * sector_size, -+ (void *) buf); -+ if (status != GRUB_EFI_SUCCESS) -+ return -1; -+ -+ return 0; -+} -+ -+void -+grub_efidisk_init (void) -+{ -+ enumerate_disks (); -+} -+ -+void -+grub_efidisk_fini (void) -+{ -+ free_devices (fd_devices); -+ free_devices (hd_devices); -+ free_devices (cd_devices); -+} -+ -+static int -+get_device_sector_size(struct grub_efidisk_data *device) -+{ -+ return device->block_io->media->block_size; -+} -+ -+int -+get_sector_size(int drive) -+{ -+ struct grub_efidisk_data *device = get_device_from_drive(drive); -+ return get_device_sector_size(device); -+} -+ -+/* -+ * ffz = Find First Zero in word. Undefined if no zero exists, -+ * so code should check against ~0UL first.. -+ */ -+static __inline__ unsigned int -+ffz (unsigned int word) -+{ -+ __asm__ ("bsfl %1,%0" -+: "=r" (word) -+: "r" (~word)); -+ return word; -+} -+#define log2(n) ffz(~(n)) -+ -+static int -+get_device_sector_bits(struct grub_efidisk_data *device) -+{ -+ int sector_size = get_device_sector_size(device); -+ return log2(sector_size); -+} -+ -+int -+get_sector_bits(int drive) -+{ -+ int sector_size = get_sector_size(drive); -+ return log2(sector_size); -+} -+ -+static struct grub_efidisk_data * -+get_device_from_drive (int drive) -+{ -+#ifdef SUPPORT_NETBOOT -+ /* Not supported */ -+ if (drive == NETWORK_DRIVE) -+ return NULL; -+#endif -+ if (drive == GRUB_INVALID_DRIVE) -+ return NULL; -+ if (drive == cdrom_drive) -+ return get_device (cd_devices, 0); -+ /* Hard disk */ -+ if (drive & 0x80) -+ return get_device (hd_devices, drive - 0x80); -+ /* Floppy disk */ -+ else -+ return get_device (fd_devices, drive); -+} -+ -+/* Low-level disk I/O. Our stubbed version just returns a file -+ descriptor, not the actual geometry. */ -+int -+get_diskinfo (int drive, struct geometry *geometry) -+{ -+ struct grub_efidisk_data *d; -+ -+ d = get_device_from_drive (drive); -+ if (!d) -+ return -1; -+ geometry->total_sectors = d->block_io->media->last_block+1; -+ geometry->sector_size = d->block_io->media->block_size; -+ geometry->flags = BIOSDISK_FLAG_LBA_EXTENSION; -+ geometry->sectors = 63; -+ if (geometry->total_sectors / 63 < 255) -+ geometry->heads = 1; -+ else -+ geometry->heads = 255; -+ geometry->cylinders = geometry->total_sectors / 63 / geometry->heads; -+ return 0; -+} -+ -+int -+biosdisk (int subfunc, int drive, struct geometry *geometry, -+ int sector, int nsec, int segment) -+{ -+ char *buf; -+ struct grub_efidisk_data *d; -+ int ret; -+ -+ d = get_device_from_drive (drive); -+ if (!d) -+ return -1; -+ buf = (char *) ((unsigned long) segment << 4); -+ switch (subfunc) -+ { -+ case BIOSDISK_READ: -+ ret = grub_efidisk_read (d, sector, nsec, buf); -+ break; -+ case BIOSDISK_WRITE: -+ ret = grub_efidisk_write (d, sector, nsec, buf); -+ break; -+ default: -+ return -1; -+ } -+ -+ return 0; -+} -+ -+/* Some utility functions to map GRUB devices with EFI devices. */ -+grub_efi_handle_t -+grub_efidisk_get_current_bdev_handle (void) -+{ -+ struct grub_efidisk_data *d; -+ -+ d = get_device_from_drive (current_drive); -+ if (d == NULL) -+ return NULL; -+ -+ if (current_drive == GRUB_INVALID_DRIVE) -+ return NULL; -+ -+ if (current_drive == cdrom_drive) -+ return d->handle; -+ -+ if (! (current_drive & 0x80)) -+ return d->handle; -+ /* If this is the whole disk, just return its own data. */ -+ else if (current_partition == 0xFFFFFF) -+ return d->handle; -+ /* Otherwise, we must query the corresponding device to the firmware. */ -+ else -+ { -+ struct grub_efidisk_data *devices; -+ grub_efi_handle_t handle = 0; -+ auto int find_partition (struct grub_efidisk_data *c); -+ -+ int find_partition (struct grub_efidisk_data *c) -+ { -+ grub_efi_hard_drive_device_path_t hd; -+ -+ grub_memcpy (&hd, c->last_device_path, sizeof (hd)); -+ -+ if ((GRUB_EFI_DEVICE_PATH_TYPE (c->last_device_path) -+ == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE) -+ && (GRUB_EFI_DEVICE_PATH_SUBTYPE (c->last_device_path) -+ == GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE) -+ && (part_start == hd.partition_start)) -+ { -+ handle = c->handle; -+ return 1; -+ } -+ -+ return 0; -+ } -+ -+ devices = make_devices (); -+ iterate_child_devices (devices, d, find_partition); -+ free_devices (devices); -+ -+ if (handle != 0) -+ return handle; -+ } -+ -+ return 0; -+} -+ -+int -+grub_get_drive_partition_from_bdev_handle (grub_efi_handle_t handle, -+ unsigned long *drive, -+ unsigned long *partition) -+{ -+ grub_efi_device_path_t *dp, *dp1; -+ struct grub_efidisk_data *d, *devices; -+ int drv; -+ unsigned long part; -+ grub_efi_hard_drive_device_path_t hd; -+ int found; -+ int part_type, part_entry; -+ unsigned long partition_start, partition_len, part_offset, part_extoffset; -+ unsigned long gpt_offset; -+ int gpt_count, gpt_size; -+ auto int find_bdev (struct grub_efidisk_data *c); -+ -+ int find_bdev (struct grub_efidisk_data *c) -+ { -+ if (! compare_device_paths (c->device_path, dp)) -+ { -+ grub_memcpy (&hd, c->last_device_path, sizeof (hd)); -+ found = 1; -+ return 1; -+ } -+ return 0; -+ } -+ -+ dp = grub_efi_get_device_path (handle); -+ if (! dp) -+ return 0; -+ -+ dp1 = dp; -+ while (1) -+ { -+ grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp1); -+ grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE(dp1); -+ grub_efi_uint16_t len = GRUB_EFI_DEVICE_PATH_LENGTH (dp); -+ -+ if (type == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE && -+ subtype == GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE) -+ { -+ dp1->type = GRUB_EFI_END_DEVICE_PATH_TYPE; -+ dp1->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -+ dp1->length[0] = 4; -+ dp1->length[1] = 0; -+ } -+ -+ if (type == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE && -+ subtype == GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE) -+ { -+ grub_efi_hard_drive_device_path_t temp_hd; -+ grub_memcpy (&temp_hd, dp1, len); -+ if (temp_hd.signature_type == 0 && temp_hd.mbr_type >= 0x10) { -+ /* -+ * Apple Parttion Map CDs appear as hard drives with non-spec -+ * partition type fields. Fix them up. -+ */ -+ dp1->type = GRUB_EFI_END_DEVICE_PATH_TYPE; -+ dp1->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -+ dp1->length[0] = 4; -+ dp1->length[1] = 0; -+ } -+ } -+ -+ if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp1)) -+ break; -+ -+ dp1 = GRUB_EFI_NEXT_DEVICE_PATH(dp1); -+ } -+ -+ drv = 0; -+ for (d = fd_devices; d; d = d->next, drv++) -+ { -+ if (! compare_device_paths (d->device_path, dp)) -+ { -+ *partition = 0xFFFFFF; -+ *drive = drv; -+ return 1; -+ } -+ } -+ -+ drv = cdrom_drive; -+ if (cd_devices && ! compare_device_paths (cd_devices->device_path, dp)) -+ { -+ *partition = 0xFFFFFF; -+ *drive = drv; -+ return 1; -+ } -+ -+ drv = 0x80; -+ for (d = hd_devices; d; d = d->next, drv++) -+ { -+ if (! compare_device_paths (d->device_path, dp)) -+ { -+ *partition = 0xFFFFFF; -+ *drive = drv; -+ return 1; -+ } -+ } -+ -+ devices = make_devices (); -+ -+ drv = 0x80; -+ found = 0; -+ for (d = hd_devices; d; d = d->next, drv++) -+ { -+ iterate_child_devices (devices, d, find_bdev); -+ if (found) -+ break; -+ } -+ -+ free_devices (devices); -+ -+ if (! found) -+ return 0; -+ -+ char buf[get_sector_size(drv)]; -+ part = 0xFFFFFF; -+ while (next_partition (drv, 0, &part, &part_type, -+ &partition_start, &partition_len, -+ &part_offset, &part_entry, -+ &part_extoffset, &gpt_offset, &gpt_count, -+ &gpt_size, buf)) -+ { -+ if (part_type -+ && partition_start == hd.partition_start) -+ { -+ *drive = drv; -+ *partition = part; -+ return 1; -+ } -+ } -+ -+ return 0; -+} -+ -+int -+check_device (const char *device) -+{ -+ grub_efi_device_path_t *dp; -+ -+ dp = device_path_from_utf8(device); -+ if (dp == NULL) -+ return 0; -+ -+ grub_free(dp); -+ return 1; -+} -+ -+static void -+swap_devices (struct grub_efidisk_data *d0, -+ struct grub_efidisk_data *d1) -+{ -+ struct grub_efidisk_data tmp; -+ -+ if (!d0 || !d1) -+ return; -+ -+ memcpy(&tmp, d1, sizeof(*d1)); -+ -+ memcpy(&d0->handle, &d1->handle, sizeof(d1->handle)); -+ d0->device_path = d1->device_path; -+ d0->last_device_path = d1->last_device_path; -+ d0->block_io = d1->block_io; -+ d0->disk_io = d1->disk_io; -+ -+ memcpy(d1->handle, tmp.handle, sizeof(tmp.handle)); -+ d1->device_path = tmp.device_path; -+ d1->last_device_path = tmp.last_device_path; -+ d1->block_io = tmp.block_io; -+ d1->disk_io = tmp.disk_io; -+} -+ -+static int -+compare_hd_device_paths(grub_efi_hard_drive_device_path_t *hd0, -+ grub_efi_hard_drive_device_path_t *hd1) -+{ -+ grub_efi_uint64_t x; -+ int sigsize; -+ -+ if ((x = hd1->partition_number - hd0->partition_number)) -+ return x; -+ -+ if ((x = hd1->partition_start - hd0->partition_start)) -+ return x; -+ -+ -+ if ((x = hd1->partition_size - hd0->partition_size)) -+ return x; -+ -+ if ((x = hd1->signature_type - hd0->signature_type)) -+ return x; -+ -+ switch (hd0->signature_type) -+ { -+ case 1: -+ sigsize = 4; -+ break; -+ case 2: -+ sigsize = 16; -+ break; -+ default: -+ sigsize = 0; -+ break; -+ } -+ x = grub_memcmp((char *)hd0->partition_signature, -+ (char *)hd1->partition_signature, sigsize); -+ return x; -+} -+ -+static grub_efi_device_path_t * -+get_parent_of_disk(grub_efi_device_path_t *hd) -+{ -+ grub_efi_uintn_t num_handles; -+ grub_efi_handle_t *handles; -+ grub_efi_handle_t *handle; -+ grub_efi_device_path_t *ret; -+ -+ handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL, -+ &simple_file_system_guid, -+ 0, &num_handles); -+ for (handle = handles; num_handles--; handle++) -+ { -+ grub_efi_device_path_t *fsdp, *hddp; -+ -+ fsdp = grub_efi_get_device_path (*handle); -+ if (!fsdp) -+ continue; -+ hddp = find_last_device_path(fsdp); -+ -+ if (compare_hd_device_paths((grub_efi_hard_drive_device_path_t *)hddp, -+ (grub_efi_hard_drive_device_path_t *)hd) == 0) -+ { -+ grub_efi_device_path_t *p; -+ ret = duplicate_device_path((grub_efi_device_path_t *)fsdp); -+ if (!ret) -+ return NULL; -+ for (p = ret; ; p = GRUB_EFI_NEXT_DEVICE_PATH(p)) -+ { -+ if (GRUB_EFI_END_ENTIRE_DEVICE_PATH(p)) -+ break; -+ if ((GRUB_EFI_DEVICE_PATH_TYPE(p) == -+ GRUB_EFI_MEDIA_DEVICE_PATH_TYPE) -+ && (GRUB_EFI_DEVICE_PATH_SUBTYPE(p) == -+ GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE)) -+ { -+ p->type = GRUB_EFI_END_DEVICE_PATH_TYPE; -+ p->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -+ p->length[0] = 4; -+ p->length[1] = 0; -+ break; -+ } -+ } -+ return ret; -+ } -+ } -+ return NULL; -+} -+ -+void -+assign_device_name (int drive, const char *device) -+{ -+ grub_efi_device_path_t *dp0, *dp1; -+ struct grub_efidisk_data *devices; -+ struct grub_efidisk_data *d, *d0 = NULL, *d1 = NULL; -+ int n = -1; -+ -+ dp0 = device_path_from_utf8(device); -+ if (!dp0) -+ return; -+ -+ dp1 = get_parent_of_disk(dp0); -+ grub_free(dp0); -+ if (!dp1) -+ return; -+ -+ if (drive & 0x80) -+ { -+ drive -= 0x80; -+ devices = hd_devices; -+ } -+ else -+ { -+ devices = cd_devices; -+ drive -= 0x100; -+ } -+ -+ for (d = devices; d; d = d->next) -+ { -+ if (!d->device_path) -+ continue; -+ -+ if (++n == drive) -+ d0 = d; -+ -+ int x; -+ if (!(x = compare_device_paths(dp1, d->device_path))) -+ d1 = d; -+ -+ if (d0 && d1) -+ { -+ /* if they're the same node, that just means it's already at -+ * the right position. */ -+ if (d0 != d1) -+ { -+ swap_devices(d0, d1); -+ grub_free(dp1); -+ return; -+ } -+ } -+ } -+ grub_free(dp1); -+} -diff --git a/efi/efidp.c b/efi/efidp.c -new file mode 100644 -index 0000000..d8ca03d ---- /dev/null -+++ b/efi/efidp.c -@@ -0,0 +1,999 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2010 Free Software Foundation, Inc. -+ * -+ * GRUB 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 GRUB; if not, write to the Free Software -+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include -+ -+/* Duplicate a device path. */ -+grub_efi_device_path_t * -+duplicate_device_path (const grub_efi_device_path_t *dp) -+{ -+ grub_efi_device_path_t *p; -+ grub_size_t total_size = 0; -+ -+ for (p = (grub_efi_device_path_t *) dp; -+ ; -+ p = GRUB_EFI_NEXT_DEVICE_PATH (p)) -+ { -+ total_size += GRUB_EFI_DEVICE_PATH_LENGTH (p); -+ if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (p)) -+ break; -+ } -+ -+ p = grub_malloc (total_size); -+ if (! p) -+ return 0; -+ -+ grub_memcpy (p, dp, total_size); -+ return p; -+} -+ -+/* Return the device path node right before the end node. */ -+grub_efi_device_path_t * -+find_last_device_path (const grub_efi_device_path_t *dp) -+{ -+ grub_efi_device_path_t *next, *p; -+ -+ if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp)) -+ return 0; -+ -+ for (p = (grub_efi_device_path_t *) dp, next = GRUB_EFI_NEXT_DEVICE_PATH (p); -+ ! GRUB_EFI_END_ENTIRE_DEVICE_PATH (next); -+ p = next, next = GRUB_EFI_NEXT_DEVICE_PATH (next)) -+ ; -+ -+ return p; -+} -+ -+/* Return the parent device path node. Must be freed */ -+grub_efi_device_path_t * -+find_parent_device_path (const grub_efi_device_path_t *dp) -+{ -+ grub_efi_device_path_t *final, *dup; -+ -+ dup = duplicate_device_path(dp); -+ final = find_last_device_path(dup); -+ -+ final->type = GRUB_EFI_END_DEVICE_PATH_TYPE; -+ final->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -+ -+ return dup; -+} -+ -+/* Compare device paths. */ -+int -+compare_device_paths (const grub_efi_device_path_t *dp1, -+ const grub_efi_device_path_t *dp2) -+{ -+ if (! dp1 || ! dp2) -+ /* Return non-zero. */ -+ return 1; -+ -+ while (1) -+ { -+ grub_efi_uint8_t type1, type2; -+ grub_efi_uint8_t subtype1, subtype2; -+ grub_efi_uint16_t len1, len2; -+ int ret; -+ -+ type1 = GRUB_EFI_DEVICE_PATH_TYPE (dp1); -+ type2 = GRUB_EFI_DEVICE_PATH_TYPE (dp2); -+ -+ if (type1 != type2) -+ return (int) type2 - (int) type1; -+ -+ subtype1 = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp1); -+ subtype2 = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp2); -+ -+ if (subtype1 != subtype2) -+ return (int) subtype1 - (int) subtype2; -+ -+ len1 = GRUB_EFI_DEVICE_PATH_LENGTH (dp1); -+ len2 = GRUB_EFI_DEVICE_PATH_LENGTH (dp2); -+ -+ if (len1 != len2) -+ return (int) len1 - (int) len2; -+ -+ ret = grub_memcmp ((char *)dp1, (char *)dp2, len1); -+ if (ret != 0) -+ return ret; -+ -+ if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp1)) -+ break; -+ -+ dp1 = (grub_efi_device_path_t *) ((char *) dp1 + len1); -+ dp2 = (grub_efi_device_path_t *) ((char *) dp2 + len2); -+ } -+ -+ return 0; -+} -+ -+/* Print the chain of Device Path nodes. This is mainly for debugging. */ -+void -+grub_efi_print_device_path (grub_efi_device_path_t *dp) -+{ -+ while (1) -+ { -+ grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp); -+ grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp); -+ grub_efi_uint16_t len = GRUB_EFI_DEVICE_PATH_LENGTH (dp); -+ -+ switch (type) -+ { -+ case GRUB_EFI_END_DEVICE_PATH_TYPE: -+ switch (subtype) -+ { -+ case GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE: -+ grub_printf ("/EndEntire\n"); -+ //grub_putchar ('\n'); -+ break; -+ case GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE: -+ grub_printf ("/EndThis\n"); -+ //grub_putchar ('\n'); -+ break; -+ default: -+ grub_printf ("/EndUnknown(%x)\n", (unsigned) subtype); -+ break; -+ } -+ break; -+ -+ case GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE: -+ switch (subtype) -+ { -+ case GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_pci_device_path_t pci; -+ grub_memcpy (&pci, dp, len); -+ grub_printf ("/PCI(%x,%x)", -+ (unsigned) pci.function, (unsigned) pci.device); -+ } -+ break; -+ case GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_pccard_device_path_t pccard; -+ grub_memcpy (&pccard, dp, len); -+ grub_printf ("/PCCARD(%x)", -+ (unsigned) pccard.function); -+ } -+ break; -+ case GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_memory_mapped_device_path_t mmapped; -+ grub_memcpy (&mmapped, dp, len); -+ grub_printf ("/MMap(%x,%llx,%llx)", -+ (unsigned) mmapped.memory_type, -+ mmapped.start_address, -+ mmapped.end_address); -+ } -+ break; -+ case GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_vendor_device_path_t vendor; -+ grub_memcpy (&vendor, dp, sizeof (vendor)); -+ grub_printf ("/Vendor(%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x)", -+ (unsigned) vendor.vendor_guid.data1, -+ (unsigned) vendor.vendor_guid.data2, -+ (unsigned) vendor.vendor_guid.data3, -+ (unsigned) vendor.vendor_guid.data4[0], -+ (unsigned) vendor.vendor_guid.data4[1], -+ (unsigned) vendor.vendor_guid.data4[2], -+ (unsigned) vendor.vendor_guid.data4[3], -+ (unsigned) vendor.vendor_guid.data4[4], -+ (unsigned) vendor.vendor_guid.data4[5], -+ (unsigned) vendor.vendor_guid.data4[6], -+ (unsigned) vendor.vendor_guid.data4[7]); -+ } -+ break; -+ case GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_controller_device_path_t controller; -+ grub_memcpy (&controller, dp, len); -+ grub_printf ("/Ctrl(%x)", -+ (unsigned) controller.controller_number); -+ } -+ break; -+ default: -+ grub_printf ("/UnknownHW(%x)", (unsigned) subtype); -+ break; -+ } -+ break; -+ -+ case GRUB_EFI_ACPI_DEVICE_PATH_TYPE: -+ switch (subtype) -+ { -+ case GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_acpi_device_path_t acpi; -+ grub_memcpy (&acpi, dp, len); -+ grub_printf ("/ACPI(%x,%x)", -+ (unsigned) acpi.hid, -+ (unsigned) acpi.uid); -+ } -+ break; -+ case GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_expanded_acpi_device_path_t eacpi; -+ grub_memcpy (&eacpi, dp, sizeof (eacpi)); -+ grub_printf ("/ACPI("); -+ -+ if (GRUB_EFI_EXPANDED_ACPI_HIDSTR (dp)[0] == '\0') -+ grub_printf ("%x,", (unsigned) eacpi.hid); -+ else -+ grub_printf ("%s,", GRUB_EFI_EXPANDED_ACPI_HIDSTR (dp)); -+ -+ if (GRUB_EFI_EXPANDED_ACPI_UIDSTR (dp)[0] == '\0') -+ grub_printf ("%x,", (unsigned) eacpi.uid); -+ else -+ grub_printf ("%s,", GRUB_EFI_EXPANDED_ACPI_UIDSTR (dp)); -+ -+ if (GRUB_EFI_EXPANDED_ACPI_CIDSTR (dp)[0] == '\0') -+ grub_printf ("%x)", (unsigned) eacpi.cid); -+ else -+ grub_printf ("%s)", GRUB_EFI_EXPANDED_ACPI_CIDSTR (dp)); -+ } -+ break; -+ default: -+ grub_printf ("/UnknownACPI(%x)", (unsigned) subtype); -+ break; -+ } -+ break; -+ -+ case GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE: -+ switch (subtype) -+ { -+ case GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_atapi_device_path_t atapi; -+ grub_memcpy (&atapi, dp, len); -+ grub_printf ("/ATAPI(%x,%x,%x)", -+ (unsigned) atapi.primary_secondary, -+ (unsigned) atapi.slave_master, -+ (unsigned) atapi.lun); -+ } -+ break; -+ case GRUB_EFI_SCSI_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_scsi_device_path_t scsi; -+ grub_memcpy (&scsi, dp, len); -+ grub_printf ("/SCSI(%x,%x)", -+ (unsigned) scsi.pun, -+ (unsigned) scsi.lun); -+ } -+ break; -+ case GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_fibre_channel_device_path_t fc; -+ grub_memcpy (&fc, dp, len); -+ grub_printf ("/FibreChannel(%llx,%llx)", -+ fc.wwn, fc.lun); -+ } -+ break; -+ case GRUB_EFI_1394_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_1394_device_path_t firewire; -+ grub_memcpy (&firewire, dp, len); -+ grub_printf ("/1394(%llx)", firewire.guid); -+ } -+ break; -+ case GRUB_EFI_USB_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_usb_device_path_t usb; -+ grub_memcpy (&usb, dp, len); -+ grub_printf ("/USB(%x,%x)", -+ (unsigned) usb.parent_port_number, -+ (unsigned) usb.interface); -+ } -+ break; -+ case GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_usb_class_device_path_t usb_class; -+ grub_memcpy (&usb_class, dp, len); -+ grub_printf ("/USBClass(%x,%x,%x,%x,%x)", -+ (unsigned) usb_class.vendor_id, -+ (unsigned) usb_class.product_id, -+ (unsigned) usb_class.device_class, -+ (unsigned) usb_class.device_subclass, -+ (unsigned) usb_class.device_protocol); -+ } -+ break; -+ case GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_i2o_device_path_t i2o; -+ grub_memcpy (&i2o, dp, len); -+ grub_printf ("/I2O(%x)", (unsigned) i2o.tid); -+ } -+ break; -+ case GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_mac_address_device_path_t mac; -+ grub_memcpy (&mac, dp, len); -+ grub_printf ("/MacAddr(%x:%x:%x:%x:%x:%x,%x)", -+ (unsigned) mac.mac_address[0], -+ (unsigned) mac.mac_address[1], -+ (unsigned) mac.mac_address[2], -+ (unsigned) mac.mac_address[3], -+ (unsigned) mac.mac_address[4], -+ (unsigned) mac.mac_address[5], -+ (unsigned) mac.if_type); -+ } -+ break; -+ case GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_ipv4_device_path_t ipv4; -+ grub_memcpy (&ipv4, dp, len); -+ grub_printf ("/IPv4(%u.%u.%u.%u,%u.%u.%u.%u,%u,%u,%x,%x)", -+ (unsigned) ipv4.local_ip_address[0], -+ (unsigned) ipv4.local_ip_address[1], -+ (unsigned) ipv4.local_ip_address[2], -+ (unsigned) ipv4.local_ip_address[3], -+ (unsigned) ipv4.remote_ip_address[0], -+ (unsigned) ipv4.remote_ip_address[1], -+ (unsigned) ipv4.remote_ip_address[2], -+ (unsigned) ipv4.remote_ip_address[3], -+ (unsigned) ipv4.local_port, -+ (unsigned) ipv4.remote_port, -+ (unsigned) ipv4.protocol, -+ (unsigned) ipv4.static_ip_address); -+ } -+ break; -+ case GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_ipv6_device_path_t ipv6; -+ grub_memcpy (&ipv6, dp, len); -+ grub_printf ("/IPv6(%x:%x:%x:%x:%x:%x:%x:%x,%x:%x:%x:%x:%x:%x:%x:%x,%u,%u,%x,%x)", -+ (unsigned) ipv6.local_ip_address[0], -+ (unsigned) ipv6.local_ip_address[1], -+ (unsigned) ipv6.local_ip_address[2], -+ (unsigned) ipv6.local_ip_address[3], -+ (unsigned) ipv6.local_ip_address[4], -+ (unsigned) ipv6.local_ip_address[5], -+ (unsigned) ipv6.local_ip_address[6], -+ (unsigned) ipv6.local_ip_address[7], -+ (unsigned) ipv6.remote_ip_address[0], -+ (unsigned) ipv6.remote_ip_address[1], -+ (unsigned) ipv6.remote_ip_address[2], -+ (unsigned) ipv6.remote_ip_address[3], -+ (unsigned) ipv6.remote_ip_address[4], -+ (unsigned) ipv6.remote_ip_address[5], -+ (unsigned) ipv6.remote_ip_address[6], -+ (unsigned) ipv6.remote_ip_address[7], -+ (unsigned) ipv6.local_port, -+ (unsigned) ipv6.remote_port, -+ (unsigned) ipv6.protocol, -+ (unsigned) ipv6.static_ip_address); -+ } -+ break; -+ case GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_infiniband_device_path_t ib; -+ grub_memcpy (&ib, dp, len); -+ grub_printf ("/InfiniBand(%x,%llx,%llx,%llx)", -+ (unsigned) ib.port_gid[0], /* XXX */ -+ ib.remote_id, -+ ib.target_port_id, -+ ib.device_id); -+ } -+ break; -+ case GRUB_EFI_UART_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_uart_device_path_t uart; -+ grub_memcpy (&uart, dp, len); -+ grub_printf ("/UART(%llu,%u,%x,%x)", -+ uart.baud_rate, -+ uart.data_bits, -+ uart.parity, -+ uart.stop_bits); -+ } -+ break; -+ case GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_vendor_messaging_device_path_t vendor; -+ grub_memcpy (&vendor, dp, sizeof (vendor)); -+ grub_printf ("/Vendor(%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x)", -+ (unsigned) vendor.vendor_guid.data1, -+ (unsigned) vendor.vendor_guid.data2, -+ (unsigned) vendor.vendor_guid.data3, -+ (unsigned) vendor.vendor_guid.data4[0], -+ (unsigned) vendor.vendor_guid.data4[1], -+ (unsigned) vendor.vendor_guid.data4[2], -+ (unsigned) vendor.vendor_guid.data4[3], -+ (unsigned) vendor.vendor_guid.data4[4], -+ (unsigned) vendor.vendor_guid.data4[5], -+ (unsigned) vendor.vendor_guid.data4[6], -+ (unsigned) vendor.vendor_guid.data4[7]); -+ } -+ break; -+ default: -+ grub_printf ("/UnknownMessaging(%x)", (unsigned) subtype); -+ break; -+ } -+ break; -+ -+ case GRUB_EFI_MEDIA_DEVICE_PATH_TYPE: -+ switch (subtype) -+ { -+ case GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_hard_drive_device_path_t hd; -+ grub_memcpy (&hd, dp, len); -+ grub_printf ("/HD(%u,%llx,%llx,%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x)", -+ hd.partition_number, -+ hd.partition_start, -+ hd.partition_size, -+ (unsigned) hd.partition_signature[3], -+ (unsigned) hd.partition_signature[2], -+ (unsigned) hd.partition_signature[1], -+ (unsigned) hd.partition_signature[0], -+ (unsigned) hd.partition_signature[5], -+ (unsigned) hd.partition_signature[4], -+ (unsigned) hd.partition_signature[7], -+ (unsigned) hd.partition_signature[6], -+ (unsigned) hd.partition_signature[9], -+ (unsigned) hd.partition_signature[8], -+ (unsigned) hd.partition_signature[10], -+ (unsigned) hd.partition_signature[11], -+ (unsigned) hd.partition_signature[12], -+ (unsigned) hd.partition_signature[13], -+ (unsigned) hd.partition_signature[14], -+ (unsigned) hd.partition_signature[15]); -+ } -+ break; -+ case GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_cdrom_device_path_t cd; -+ grub_memcpy (&cd, dp, len); -+ grub_printf ("/CD(%u,%llx,%llx)", -+ cd.boot_entry, -+ cd.partition_start, -+ cd.partition_size); -+ } -+ break; -+ case GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_vendor_media_device_path_t vendor; -+ grub_memcpy (&vendor, dp, sizeof (vendor)); -+ grub_printf ("/Vendor(%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x)", -+ (unsigned) vendor.vendor_guid.data1, -+ (unsigned) vendor.vendor_guid.data2, -+ (unsigned) vendor.vendor_guid.data3, -+ (unsigned) vendor.vendor_guid.data4[0], -+ (unsigned) vendor.vendor_guid.data4[1], -+ (unsigned) vendor.vendor_guid.data4[2], -+ (unsigned) vendor.vendor_guid.data4[3], -+ (unsigned) vendor.vendor_guid.data4[4], -+ (unsigned) vendor.vendor_guid.data4[5], -+ (unsigned) vendor.vendor_guid.data4[6], -+ (unsigned) vendor.vendor_guid.data4[7]); -+ } -+ break; -+ case GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_file_path_device_path_t *fp; -+ grub_uint8_t buf[(len - 4) * 2 + 1]; -+ fp = (grub_efi_file_path_device_path_t *) dp; -+ *grub_utf16_to_utf8 (buf, fp->path_name, -+ (len - 4) / sizeof (grub_efi_char16_t)) -+ = '\0'; -+ grub_printf ("/File(%s)", buf); -+ } -+ break; -+ case GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_protocol_device_path_t proto; -+ grub_memcpy (&proto, dp, sizeof (proto)); -+ grub_printf ("/Protocol(%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x)", -+ (unsigned) proto.guid.data1, -+ (unsigned) proto.guid.data2, -+ (unsigned) proto.guid.data3, -+ (unsigned) proto.guid.data4[0], -+ (unsigned) proto.guid.data4[1], -+ (unsigned) proto.guid.data4[2], -+ (unsigned) proto.guid.data4[3], -+ (unsigned) proto.guid.data4[4], -+ (unsigned) proto.guid.data4[5], -+ (unsigned) proto.guid.data4[6], -+ (unsigned) proto.guid.data4[7]); -+ } -+ break; -+ default: -+ grub_printf ("/UnknownMedia(%x)", (unsigned) subtype); -+ break; -+ } -+ break; -+ -+ case GRUB_EFI_BIOS_DEVICE_PATH_TYPE: -+ switch (subtype) -+ { -+ case GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_bios_device_path_t bios; -+ grub_memcpy (&bios, dp, sizeof (bios)); -+ grub_printf ("/BIOS(%x,%x,%s)", -+ (unsigned) bios.device_type, -+ (unsigned) bios.status_flags, -+ (char *) (dp + 1)); -+ } -+ break; -+ default: -+ grub_printf ("/UnknownBIOS(%x)", (unsigned) subtype); -+ break; -+ } -+ break; -+ -+ default: -+ grub_printf ("/UnknownType(%x,%x)\n", -+ (unsigned) type, -+ (unsigned) subtype); -+ return; -+ break; -+ } -+ -+ if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp)) -+ break; -+ -+ dp = (grub_efi_device_path_t *) ((char *) dp + len); -+ } -+} -+ -+static inline int -+dpname_matches(char *str, char *candidate) -+{ -+ grub_size_t clen = grub_strlen(candidate); -+ char scratch[clen + 2]; -+ int rc; -+ -+ grub_strncpy(scratch, candidate, clen); -+ scratch[clen+1] = '\0'; -+ if (scratch[clen-1] == '$') -+ { -+ scratch[--clen] = '\0'; -+ rc = !grub_strncasecmp(str, scratch, clen); -+ return rc; -+ } -+ -+ grub_strncpy(scratch+clen, "(", 2); -+ clen = grub_strlen(scratch); -+ rc = !grub_strncasecmp(str, scratch, clen); -+ return rc; -+} -+ -+static void -+finish_param_parse(char *pos, char **end, char *tmp) -+{ -+ if (!pos || !end || !tmp) -+ return; -+ -+ if (*end) -+ **end = *tmp; -+} -+ -+static char * -+get_next_param(char *pos, char **end, char *tmp) -+{ -+ char *comma = NULL; -+ char *openparen = NULL; -+ char *closeparen = NULL; -+ -+ if (!pos || !end || !tmp) -+ return NULL; -+ -+ if (*end) -+ **end = *tmp; -+ -+ openparen = grub_strchr(pos, '('); -+ if (openparen && *openparen) -+ { -+ pos = grub_strnchr(openparen + 1, ' '); -+ comma = grub_strchr(pos, ','); -+ closeparen = grub_strchr(pos, ')'); -+ -+ if (comma && *comma) -+ { -+ *tmp = *comma; -+ *comma = '\0'; -+ *end = comma; -+ } -+ else if (closeparen && *closeparen) -+ { -+ *tmp = *closeparen; -+ *closeparen = '\0'; -+ *end = closeparen; -+ } -+ return pos; -+ } -+ -+ comma = grub_strchr(pos, ','); -+ if (comma && *comma) -+ { -+ pos = grub_strnchr(comma + 1, ' '); -+ comma = grub_strchr(pos, ','); -+ closeparen = grub_strchr(pos, ')'); -+ -+ if (comma && *comma) -+ { -+ *tmp = *comma; -+ *comma = '\0'; -+ *end = comma; -+ } -+ else if (closeparen && *closeparen) -+ { -+ *tmp = *closeparen; -+ *closeparen = '\0'; -+ *end = closeparen; -+ } -+ return pos; -+ } -+ -+ closeparen = grub_strchr(pos, ')'); -+ if (closeparen && *closeparen) -+ pos = grub_strnchr(closeparen + 1, ' '); -+ -+ return pos; -+} -+ -+struct generic_device_path -+ { -+ grub_efi_uint8_t type; -+ grub_efi_uint8_t subtype; -+ grub_efi_uint16_t length; -+ } __attribute__((packed)); -+ -+struct hd_media_device_path -+ { -+ grub_efi_uint8_t type; -+ grub_efi_uint8_t subtype; -+ grub_efi_uint16_t length; -+ grub_efi_uint32_t partition; -+ grub_efi_uint64_t startlba; -+ grub_efi_uint64_t size; -+ grub_efi_uint8_t signature[16]; -+ grub_efi_uint8_t mbr_type; -+ grub_efi_uint8_t signature_type; -+ } __attribute__((packed)); -+ -+static inline int -+parse_device_path_component(const char *orig_str, void *data) -+{ -+ int orig_str_len = strlen(orig_str) + 1; -+ char str[orig_str_len]; -+ char tmp; -+ char *pos = str; -+ int ret = 0; -+ -+ grub_strcpy(str, orig_str); -+ if (dpname_matches(str, "pci")) -+ { -+ } -+ else if (dpname_matches(str, "pccard")) -+ { -+ } -+ else if (dpname_matches(str, "mmap")) -+ { -+ } -+ else if (dpname_matches(str, "ctrl")) -+ { -+ } -+ else if (dpname_matches(str, "acpi")) -+ { -+ } -+ /* XXX what about _ADR? */ -+ /* messaging device paths */ -+ else if (dpname_matches(str, "atapi")) -+ { -+ } -+ else if (dpname_matches(str, "scsi")) -+ { -+ } -+ else if (dpname_matches(str, "fibrechannel")) -+ { -+ } -+ else if (dpname_matches(str, "1394")) -+ { -+ } -+ else if (dpname_matches(str, "usb")) -+ { -+ } -+ else if (dpname_matches(str, "sata")) -+ { -+ } -+ /* XXX what about usb-wwid */ -+ /* XXX what about lun */ -+ else if (dpname_matches(str, "usbclass")) -+ { -+ } -+ else if (dpname_matches(str, "i2o")) -+ { -+ } -+ else if (dpname_matches(str, "macaddr")) -+ { -+ } -+ else if (dpname_matches(str, "ipv4")) -+ { -+ } -+ else if (dpname_matches(str, "ipv6")) -+ { -+ } -+ /* XXX what about vlan */ -+ else if (dpname_matches(str, "infiniband")) -+ { -+ } -+ else if (dpname_matches(str, "uart")) -+ { -+ } -+ else if (dpname_matches(str, "uartflowctrl")) -+ { -+ } -+ else if (dpname_matches(str, "sas")) -+ { -+ } -+ else if (dpname_matches(str, "iscsi")) -+ { -+ } -+ /* media device paths */ -+ else if (dpname_matches(str, "hd")) -+ { -+ /* these look roughly like: -+ * HD(Partition,Type,Signature,Start, Size) -+ * but: -+ * - type may be optional. 1 or "MBR" means MBR. 2 or "GPT" means GPT. -+ * - start and size are optional -+ * - there can be random spaces -+ */ -+ struct hd_media_device_path hddp; -+ unsigned long tmpul; -+ char *end = NULL, c; -+ char tmps[19] = "0x"; -+ char *tmpsp; -+ -+ ret = 42; -+ -+ hddp.type = GRUB_EFI_MEDIA_DEVICE_PATH_TYPE; -+ hddp.subtype = GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE; -+ hddp.length = ret; -+ -+ //pos += grub_strcspn(pos, '('); -+ pos = get_next_param(pos, &end, &c); -+ if (!*pos) -+ { -+broken_hd: -+ finish_param_parse(pos, &end, &c); -+ return 0; -+ } -+ grub_strncpy(tmps+2, pos, 16); -+ tmps[18] = '\0'; -+ tmpsp = tmps; -+ safe_parse_maxulong(&tmpsp, &tmpul); -+ hddp.partition = tmpul; -+ -+ pos = get_next_param(pos, &end, &c); -+ if (!*pos) -+ goto broken_hd; -+ grub_strcpy(tmps+2, pos); -+ tmpsp = tmps; -+ safe_parse_maxulong(&tmpsp, &tmpul); -+ hddp.startlba = tmpul; -+ -+ pos = get_next_param(pos, &end, &c); -+ if (!*pos) -+ goto broken_hd; -+ grub_strcpy(tmps+2, pos); -+ tmpsp = tmps; -+ safe_parse_maxulong(&tmpsp, &tmpul); -+ hddp.size = tmpul; -+ -+ pos = get_next_param(pos, &end, &c); -+ if (!*pos) -+ goto broken_hd; -+ if (!grub_strcmp(pos, "None")) -+ { -+ hddp.signature_type = 0; -+ grub_memset(hddp.signature, '\0', sizeof(hddp.signature)); -+ } -+ else if (grub_strnlen(pos, 36) == 8) -+ { -+ grub_efi_uint32_t tmpu32; -+ grub_strncpy(tmps+2, pos, 8); -+ tmps[10] = '\0'; -+ tmpsp = tmps; -+ safe_parse_maxulong(&tmpsp, &tmpul); -+ tmpu32 = tmpul; -+ hddp.signature_type = 1; -+ grub_memcpy(hddp.signature, &tmpu32, sizeof(tmpu32)); -+ } -+ else if (grub_strnlen(pos, 36) == 36) -+ { -+ grub_efi_uint32_t tmpu32; -+ grub_efi_uint16_t tmpu16; -+ grub_efi_uint8_t tmpu8; -+ -+ grub_strncpy(tmps+2, pos, 8); -+ tmps[10] = '\0'; -+ tmpsp = tmps; -+ safe_parse_maxulong(&tmpsp, &tmpul); -+ tmpu32 = tmpul; -+ grub_memcpy(hddp.signature, &tmpu32, sizeof(tmpu32)); -+ -+ grub_strncpy(tmps+2, pos+9, 4); -+ tmps[6] = '\0'; -+ tmpsp = tmps; -+ safe_parse_maxulong(&tmpsp, &tmpul); -+ tmpu16 = tmpul; -+ grub_memcpy(hddp.signature + 4, &tmpu16, sizeof(tmpu16)); -+ -+ grub_strncpy(tmps+2, pos+14, 4); -+ tmps[6] = '\0'; -+ tmpsp = tmps; -+ safe_parse_maxulong(&tmpsp, &tmpul); -+ tmpu16 = tmpul; -+ grub_memcpy(hddp.signature + 6, &tmpu16, sizeof(tmpu16)); -+ -+ /* these are displayed like a u16, but they're a u8. thanks. */ -+ grub_strncpy(tmps+2, pos+19, 2); -+ tmps[4] = '\0'; -+ tmpsp = tmps; -+ safe_parse_maxulong(&tmpsp, &tmpul); -+ tmpu8 = tmpul; -+ grub_memcpy(hddp.signature + 8, &tmpu8, sizeof(tmpu8)); -+ grub_strncpy(tmps+2, pos+21, 2); -+ tmps[4] = '\0'; -+ tmpsp = tmps; -+ safe_parse_maxulong(&tmpsp, &tmpul); -+ tmpu8 = tmpul; -+ grub_memcpy(hddp.signature + 9, &tmpu8, sizeof(tmpu8)); -+ -+ grub_strncpy(tmps+2, pos+24, 2); -+ tmps[4] = '\0'; -+ tmpsp = tmps; -+ safe_parse_maxulong(&tmpsp, &tmpul); -+ tmpu8 = tmpul; -+ grub_memcpy(hddp.signature + 10, &tmpu8, sizeof(tmpu8)); -+ -+ grub_strncpy(tmps+2, pos+26, 2); -+ tmps[4] = '\0'; -+ tmpsp = tmps; -+ safe_parse_maxulong(&tmpsp, &tmpul); -+ tmpu8 = tmpul; -+ grub_memcpy(hddp.signature + 11, &tmpu8, sizeof(tmpu8)); -+ -+ grub_strncpy(tmps+2, pos+28, 2); -+ tmps[4] = '\0'; -+ tmpsp = tmps; -+ safe_parse_maxulong(&tmpsp, &tmpul); -+ tmpu8 = tmpul; -+ grub_memcpy(hddp.signature + 12, &tmpu8, sizeof(tmpu8)); -+ -+ grub_strncpy(tmps+2, pos+30, 2); -+ tmps[4] = '\0'; -+ tmpsp = tmps; -+ safe_parse_maxulong(&tmpsp, &tmpul); -+ tmpu8 = tmpul; -+ grub_memcpy(hddp.signature + 13, &tmpu8, sizeof(tmpu8)); -+ -+ grub_strncpy(tmps+2, pos+32, 2); -+ tmps[4] = '\0'; -+ tmpsp = tmps; -+ safe_parse_maxulong(&tmpsp, &tmpul); -+ tmpu8 = tmpul; -+ grub_memcpy(hddp.signature + 14, &tmpu8, sizeof(tmpu8)); -+ -+ grub_strncpy(tmps+2, pos+34, 2); -+ tmps[4] = '\0'; -+ tmpsp = tmps; -+ safe_parse_maxulong(&tmpsp, &tmpul); -+ tmpu8 = tmpul; -+ grub_memcpy(hddp.signature + 15, &tmpu8, sizeof(tmpu8)); -+ -+ hddp.signature_type = 2; -+ } -+ else -+ goto broken_hd; -+ -+ hddp.mbr_type = hddp.signature_type; -+ -+ if (data) -+ grub_memcpy(data, &hddp, sizeof(hddp)); -+ } -+ else if (dpname_matches(str, "cd")) -+ { -+ } -+ else if (dpname_matches(str, "file")) -+ { -+ } -+ else if (dpname_matches(str, "protocol")) -+ { -+ } -+ /* what about piwg firmware file? */ -+ /* what about piwg firmware volume? */ -+ /* what about relative offset media */ -+ else if (dpname_matches(str, "bios")) -+ { -+ } -+ /* This is the end beautiful friend */ -+ else if (dpname_matches(str, "EndEntire$")) -+ { -+ struct generic_device_path gdp = { -+ .type = GRUB_EFI_END_DEVICE_PATH_TYPE, -+ .subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE, -+ .length = 4 -+ }; -+ ret = 4; -+ if (data) -+ grub_memmove(data, &gdp, sizeof(gdp)); -+ } -+ else if (dpname_matches(str, "EndThis$")) -+ { -+ struct generic_device_path gdp = { -+ .type = GRUB_EFI_END_DEVICE_PATH_TYPE, -+ .subtype = GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE, -+ .length = 4 -+ }; -+ ret = 4; -+ if (data) -+ grub_memmove(data, &gdp, sizeof(gdp)); -+ } -+ else if (dpname_matches(str, "EndUnknown$")) -+ { -+ struct generic_device_path gdp = { -+ .type = GRUB_EFI_END_DEVICE_PATH_TYPE, -+ .subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE, -+ .length = 4 -+ }; -+ ret = 4; -+ if (data) -+ grub_memmove(data, &gdp, sizeof(gdp)); -+ } -+ /* handle anything we didn't recognize */ -+ else if (dpname_matches(str, "vendor")) -+ { -+ /* needs to handle: -+ * 1) hw vendor -+ * 2) messaging vendor -+ * 3) media vendor -+ */ -+ } -+ else -+ { -+ } -+ -+ return ret; -+} -+ -+grub_efi_device_path_t * -+device_path_from_utf8 (const char *device) -+{ -+ grub_size_t device_len; -+ grub_efi_device_path_t *dp = NULL; -+ -+ device_len = parse_device_path_component(device, dp); -+ device_len += parse_device_path_component("EndEntire", dp); -+ dp = grub_malloc(device_len); -+ if (!dp) -+ return NULL; -+ device_len = parse_device_path_component(device, dp); -+ device_len += parse_device_path_component("EndEntire", -+ (void *)((unsigned long)dp + device_len)); -+ -+ -+ return dp; -+} -diff --git a/efi/efigraph.c b/efi/efigraph.c -new file mode 100644 -index 0000000..6905e07 ---- /dev/null -+++ b/efi/efigraph.c -@@ -0,0 +1,1501 @@ -+/* efigraph.c - EFI "graphics output" support for GRUB/EFI */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright 2007 Red Hat, Inc. -+ * Copyright (C) 2007 Intel Corp. -+ * Copyright (C) 2001,2002 Red Hat, Inc. -+ * Portions copyright (C) 2000 Conectiva, 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. -+ */ -+ -+#ifdef SUPPORT_GRAPHICS -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+ -+#include "graphics.h" -+#include "xpm.h" -+ -+#define dbgdelay(_f, _l) ({\ -+ if (debug_graphics) { \ -+ do { \ -+ grub_efi_stall(1000); \ -+ } while (console_getkey() < 0); \ -+ } \ -+ }) -+ -+#define dprintf(format, args...) ({ \ -+ if (debug_graphics) { \ -+ struct term_entry *_tt = current_term; \ -+ current_term = term_table; \ -+ grub_printf(format, ##args); \ -+ current_term = _tt; \ -+ } \ -+ }) -+ -+struct grub_pixel_info -+{ -+ char depth_bits; -+ char depth_bytes; -+ unsigned char red_size; -+ unsigned char red_pos; -+ unsigned char green_size; -+ unsigned char green_pos; -+ unsigned char blue_size; -+ unsigned char blue_pos; -+ unsigned char reserved_size; -+ unsigned char reserved_pos; -+ int line_length; -+}; -+ -+typedef struct grub_pixel_info grub_pixel_info_t; -+ -+ -+static grub_efi_guid_t graphics_output_guid = GRUB_EFI_GRAPHICS_OUTPUT_GUID; -+static grub_efi_guid_t pci_io_guid = GRUB_EFI_PCI_IO_GUID; -+ -+#ifndef MIN -+#define MIN(x,y) ( ((x) < (y)) ? (x) : (y)) -+#endif -+#ifndef MAX -+#define MAX(x,y) ( ((x) < (y)) ? (y) : (x)) -+#endif -+ -+#define pixel_equal(x,y) ((x).bgrr.red == (y).bgrr.red && \ -+ (x).bgrr.green == (y).bgrr.green && \ -+ (x).bgrr.blue == (y).bgrr.blue && \ -+ (x).bgrr.reserved == (y).bgrr.reserved) -+ -+struct video_mode { -+ grub_efi_uint32_t number; -+ grub_efi_uintn_t size; -+ grub_efi_graphics_output_mode_information_t *info; -+}; -+ -+#define MAX_PALETTE 16 -+struct eg { -+ struct graphics_backend *backend; -+ grub_efi_graphics_output_t *output_intf; -+ struct video_mode **modes; -+ int max_mode; -+ grub_efi_uint32_t text_mode; -+ grub_efi_uint32_t graphics_mode; -+ grub_pixel_info_t pixel_info; -+ enum { TEXT, GRAPHICS } current_mode; -+ -+ position_t screen_size; -+ position_t screen_pos; -+ -+ struct bltbuf *background; -+ -+ grub_efi_graphics_output_pixel_t palette[MAX_PALETTE + 1]; -+}; -+ -+#define RGB(r,g,b) { .bgrr.red = r, .bgrr.green = g, .bgrr.blue = b } -+ -+static grub_efi_graphics_output_pixel_t cga_colors[] = { -+ RGB(0x00,0x00,0x00), // 0 Black -+ RGB(0x7f,0x00,0x00), // 1 Dark Red -+ RGB(0x00,0x7f,0x00), // 2 Dark Green -+ RGB(0x7f,0x7f,0x00), // 3 Dark Yellow -+ RGB(0x00,0x00,0x7f), // 4 Dark Blue -+ RGB(0x7f,0x00,0x7f), // 5 Dark Magenta -+ RGB(0x00,0x7f,0x7f), // 6 Dark Cyan -+ RGB(0xc0,0xc0,0xc0), // 7 Light Grey -+ RGB(0x7f,0x7f,0x7f), // 8 Dark Grey -+ RGB(0xff,0x00,0x00), // 9 Red -+ RGB(0x00,0xff,0x00), // 10 Green -+ RGB(0xff,0xff,0x00), // 11 Yellow -+ RGB(0x00,0x00,0xff), // 12 Blue -+ RGB(0xff,0x00,0xff), // 13 Magenta -+ RGB(0x00,0xff,0xff), // 14 Cyan -+ RGB(0xff,0xff,0xff), // 15 White -+ RGB(0xff,0xff,0xff), // 16 Also white ;) -+}; -+ -+static const int n_cga_colors = sizeof (cga_colors) / sizeof (cga_colors[0]); -+ -+static void -+find_bits (unsigned long mask, unsigned char *first, -+ unsigned char* len) -+{ -+ unsigned char bit_pos = 0, bit_len = 0; -+ *first =0; -+ *len = 0; -+ if (mask == 0) -+ return; -+ while (! (mask & 0x1)) { -+ mask = mask >> 1; -+ bit_pos++; -+ } -+ while (mask & 0x1) { -+ mask = mask >> 1; -+ bit_len++; -+ } -+ *first = bit_pos; -+ *len = bit_len; -+} -+ -+static grub_efi_graphics_output_mode_information_t * -+get_graphics_mode_info_for_mode(struct eg *eg, int mode) -+{ -+ int i; -+ -+ for (i = 0; i < eg->max_mode; i++) { -+ if (eg->modes[i] == NULL) -+ continue; -+ if (eg->modes[i]->number == mode) -+ return eg->modes[i]->info; -+ } -+ return NULL; -+} -+ -+static grub_efi_graphics_output_mode_information_t * -+get_graphics_mode_info(struct eg *eg) -+{ -+ return get_graphics_mode_info_for_mode(eg, eg->graphics_mode); -+} -+ -+static void -+print_mode_info(struct video_mode *mode) -+{ -+ grub_efi_graphics_output_mode_information_t *info = mode->info; -+ dprintf("mode %d (%dx%d, pitch %d, ", -+ mode->number, -+ info->horizontal_resolution, -+ info->vertical_resolution, -+ info->pixels_per_scan_line); -+ switch(info->pixel_format) { -+ case GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR: -+ dprintf("rgbr 8bpc"); -+ break; -+ case GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR: -+ dprintf("bgrr 8bpc"); -+ break; -+ case GRUB_EFI_PIXEL_BIT_MASK: -+ dprintf("bitmask color"); -+ break; -+ case GRUB_EFI_PIXEL_BLT_ONLY: -+ dprintf("blt only"); -+ break; -+ } -+ dprintf(")\n"); -+ if (info->pixel_format == GRUB_EFI_PIXEL_BIT_MASK) { -+ dprintf("red: %08x green: %08x blue: %08x res: %08x\n", -+ info->pixel_information.red_mask, -+ info->pixel_information.green_mask, -+ info->pixel_information.blue_mask, -+ info->pixel_information.reserved_mask); -+ } -+} -+ -+static void -+set_kernel_params(struct graphics_backend *backend, -+ struct linux_kernel_params *params) -+{ -+ struct eg *eg; -+ -+ if (!backend || !backend->priv) -+ return; -+ -+ eg = backend->priv; -+ grub_efi_graphics_output_t *gop_intf = NULL; -+ grub_efi_graphics_output_mode_t *gop_mode = NULL; -+ grub_efi_status_t efi_status = GRUB_EFI_SUCCESS; -+ grub_efi_graphics_output_mode_information_t *gop_info = NULL; -+ grub_efi_uintn_t size; -+ -+ gop_intf = grub_efi_locate_protocol (&graphics_output_guid, NULL); -+ if (gop_intf == NULL) -+ return; -+ -+ gop_mode = gop_intf->mode; -+ -+ efi_status = Call_Service_4 (gop_intf->query_mode, -+ gop_intf, gop_mode->mode, &size, &gop_info); -+ -+ -+ if (efi_status == GRUB_EFI_SUCCESS) { -+ /* No VBE on EFI. */ -+ params->lfb_width = gop_info->horizontal_resolution; -+ params->lfb_height = gop_info->vertical_resolution; -+ params->lfb_base = gop_mode->frame_buffer_base; -+ params->lfb_size = gop_mode->frame_buffer_size; -+ params->lfb_pages = 1; -+ params->vesapm_segment = 0; -+ params->vesapm_offset = 0; -+ params->vesa_attrib = 0; -+ if (gop_info->pixel_format == GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR) { -+ params->lfb_depth = 32; -+ params->red_mask_size = 8; -+ params->red_field_pos = 0; -+ params->green_mask_size = 8; -+ params->green_field_pos = 8; -+ params->blue_mask_size = 8; -+ params->blue_field_pos = 16; -+ params->reserved_mask_size = 8; -+ params->reserved_field_pos = 24; -+ params->lfb_line_len = gop_info->pixels_per_scan_line * 4; -+ } else if (gop_info->pixel_format == -+ GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR) { -+ params->lfb_depth = 32; -+ params->red_mask_size = 8; -+ params->red_field_pos = 16; -+ params->green_mask_size = 8; -+ params->green_field_pos = 8; -+ params->blue_mask_size = 8; -+ params->blue_field_pos = 0; -+ params->reserved_mask_size = 8; -+ params->reserved_field_pos = 24; -+ params->lfb_line_len = gop_info->pixels_per_scan_line * 4; -+ } else if (gop_info->pixel_format == GRUB_EFI_PIXEL_BIT_MASK) { -+ find_bits (gop_info->pixel_information.red_mask, -+ ¶ms->red_field_pos, ¶ms->red_mask_size); -+ find_bits (gop_info->pixel_information.green_mask, -+ ¶ms->green_field_pos, ¶ms->green_mask_size); -+ find_bits (gop_info->pixel_information.blue_mask, -+ ¶ms->blue_field_pos, ¶ms->blue_mask_size); -+ find_bits (gop_info->pixel_information.reserved_mask, -+ ¶ms->reserved_field_pos, ¶ms->reserved_mask_size); -+ params->lfb_depth = params->red_mask_size -+ + params->green_mask_size -+ + params->blue_mask_size -+ + params->reserved_mask_size; -+ params->lfb_line_len = -+ (gop_info->pixels_per_scan_line * params->lfb_depth) / 8; -+ } else { -+ params->lfb_depth = 4; -+ params->red_mask_size = 0; -+ params->red_field_pos = 0; -+ params->green_mask_size = 0; -+ params->green_field_pos = 0; -+ params->blue_mask_size = 0; -+ params->blue_field_pos = 0; -+ params->reserved_mask_size = 0; -+ params->reserved_field_pos = 0; -+ params->lfb_line_len = params->lfb_width / 2; -+ } -+#if 0 -+ params->video_cursor_x = 0; -+ params->video_cursor_y = 0; -+ params->video_page = 0; -+ params->video_mode = 0; -+ params->video_width = 0; -+ params->video_ega_bx = 0; -+ params->video_height = 0; -+ params->have_vga = 0x70; -+ params->font_size = 0; -+#else -+ params->video_cursor_x = grub_efi_system_table->con_out->mode->cursor_column; -+ params->video_cursor_y = grub_efi_system_table->con_out->mode->cursor_row; -+ params->video_page = 0; /* ??? */ -+ params->video_mode = grub_efi_system_table->con_out->mode->mode; -+ params->video_width = (grub_console_getwh () >> 8); -+ params->video_ega_bx = 0; -+ params->video_height = (grub_console_getwh () & 0xff); -+ params->have_vga = VIDEO_TYPE_EFI; -+ params->font_size = 16; /* XXX */ -+#endif -+ } -+} -+ -+static void -+pixel_to_rgb(grub_efi_graphics_output_pixel_t *pixel, -+ int *red, int *green, int *blue) -+{ -+ *red = pixel->bgrr.red; -+ *green = pixel->bgrr.green; -+ *blue = pixel->bgrr.blue; -+} -+ -+static void -+rgb_to_pixel(int red, int green, int blue, -+ grub_efi_graphics_output_pixel_t *pixel) -+{ -+ pixel->bgrr.red = red; -+ pixel->bgrr.green = green; -+ pixel->bgrr.blue = blue; -+} -+ -+static void -+position_to_phys(struct eg *eg, position_t *virt, position_t *phys) -+{ -+ phys->x = virt->x + eg->screen_pos.x; -+ phys->y = virt->y + eg->screen_pos.y; -+} -+ -+static int -+abs_paddr(struct eg *eg, position_t *virt) -+{ -+ position_t phys; -+ position_to_phys(eg, virt, &phys); -+ return phys.x + phys.y * eg->screen_size.x; -+} -+ -+struct bltbuf { -+ grub_efi_uintn_t width; -+ grub_efi_uintn_t height; -+ grub_efi_graphics_output_pixel_t pixbuf[]; -+}; -+ -+static struct bltbuf *alloc_bltbuf(grub_efi_uintn_t width, -+ grub_efi_uintn_t height) -+{ -+ struct bltbuf *buf = NULL; -+ grub_efi_uintn_t pixbuf_size = width * height * -+ sizeof (grub_efi_graphics_output_pixel_t); -+ -+ if (!(buf = grub_malloc(sizeof(buf->width) + sizeof(buf->height) + -+ pixbuf_size))) -+ return NULL; -+ -+ buf->width = width; -+ buf->height = height; -+ grub_memset(buf->pixbuf, '\0', pixbuf_size); -+ return buf; -+} -+ -+ -+static void -+hw_blt_pos_to_screen_pos(struct eg *eg, struct bltbuf *bltbuf, -+ position_t *bltpos, position_t *bltsz, position_t *pos) -+{ -+ position_t phys; -+ -+ position_to_phys(eg, pos, &phys); -+ -+ Call_Service_10(eg->output_intf->blt, eg->output_intf, (void *)bltbuf->pixbuf, -+ GRUB_EFI_BLT_BUFFER_TO_VIDEO, -+ bltpos->x, bltpos->y, -+ phys.x, phys.y, -+ bltsz->x, bltsz->y, -+ 0); -+} -+ -+static void -+blt_pos_to_screen_pos(struct eg *eg, struct bltbuf *bltbuf, -+ position_t *bltpos, position_t *bltsz, position_t *pos) -+{ -+ grub_efi_graphics_output_mode_information_t *info = get_graphics_mode_info(eg); -+ grub_efi_graphics_output_pixel_t *pixel; -+ position_t phys; -+ const int pxlstride = info->pixels_per_scan_line; -+ const int bytestride = pxlstride * sizeof (*pixel); -+ -+ position_to_phys(eg, pos, &phys); -+ -+ if (info->pixel_format == GRUB_EFI_PIXEL_BLT_ONLY || 1) { -+ hw_blt_pos_to_screen_pos(eg, bltbuf, bltpos, bltsz, pos); -+#if 0 -+ } else if (info->pixel_format == GRUB_EFI_PIXEL_BIT_MASK) { -+ int y; -+ grub_pixel_info_t *pinfo = &eg->pixel_info; -+ const int maxpixels = -+ MIN(info->horizontal_resolution - pos->x, bltsz->x); -+ -+ for (y = bltpos->y; y < bltpos->y + bltsz->y; y++, phys.y++) { -+ char raw_pixels[maxpixels * pinfo->depth_bytes]; -+ char *fb = (char *)(unsigned long)eg->output_intf->mode->frame_buffer_base; -+ int x; -+ -+ pixel = (void *)&bltbuf->pixbuf[y * bltbuf->width + bltpos->x]; -+ fb += phys.y * pinfo->line_length + phys.x * pinfo->depth_bytes; -+ -+ for (x = 0; x < maxpixels; x++) { -+ char depth_bytes = pinfo->depth_bytes; -+ char *raw_pixel = raw_pixels + x * depth_bytes; -+ -+ int red, green, blue, color; -+ char *colorp; -+ -+#if 0 -+ red = pixel[x].bgrr.red & 0x3f; -+ green = pixel[x].bgrr.green & 0x3f; -+ blue = pixel[x].bgrr.blue & 0x3f; -+ red = red * ((1 << pinfo->red_size) - 1) / 0x3f; -+ green = green * ((1 << pinfo->green_size) - 1) / 0x3f; -+ blue = blue * ((1 << pinfo->blue_size) - 1) / 0x3f; -+#else -+ red = pixel[x].bgrr.red; -+ green = pixel[x].bgrr.green; -+ blue = pixel[x].bgrr.blue; -+ -+ red >>= 8 - pinfo->red_size; -+ green >>= 8 - pinfo->green_size; -+ blue >>= 8 - pinfo->blue_size; -+#endif -+ -+ color = (red << pinfo->red_pos) | -+ (green << pinfo->green_pos) | -+ (blue << pinfo->blue_pos); -+ colorp = (void *)&color; -+ while (depth_bytes--) -+ *raw_pixel++ = *colorp++; -+ } -+ memmove(fb, raw_pixels, maxpixels * pinfo->depth_bytes); -+ } -+#endif -+ } else { -+ int y; -+ grub_pixel_info_t *pinfo = &eg->pixel_info; -+ const int maxpixels = -+ MIN(info->horizontal_resolution - pos->x, bltsz->x); -+ -+ //char *line = &fb[phys.y * bytestride + phys.x * sizeof(*pixel)]; -+ for (y = bltpos->y; y < bltpos->y + bltsz->y; y++, phys.y++) { -+ char raw_pixels[maxpixels * sizeof(*pixel)]; -+ char *fb = (char *)(unsigned long)eg->output_intf->mode->frame_buffer_base; -+ int x; -+ -+ pixel = (void *)&bltbuf->pixbuf[y * bltbuf->width + bltpos->x]; -+ fb += phys.y * pinfo->line_length + phys.x * pinfo->depth_bytes; -+ -+ if (info->pixel_format == GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR) { -+ memmove(raw_pixels, pixel, maxpixels * sizeof (*pixel)); -+ continue; -+ } else if (info->pixel_format==GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR) { -+ grub_efi_graphics_output_pixel_t shadow[maxpixels]; -+ for (x = 0; x < maxpixels; x++) { -+ shadow[x].rgbr.red = pixel[x].bgrr.red; -+ shadow[x].rgbr.green = pixel[x].bgrr.green; -+ shadow[x].rgbr.blue = pixel[x].bgrr.blue; -+ } -+ -+ memmove(raw_pixels, shadow, maxpixels * sizeof (*pixel)); -+ } else if (info->pixel_format == GRUB_EFI_PIXEL_BIT_MASK) { -+ for (x = 0; x < maxpixels; x++) { -+ char depth_bytes = pinfo->depth_bytes; -+ char *raw_pixel = raw_pixels + x * depth_bytes; -+ -+ int red, green, blue, color; -+ char *colorp; -+ -+#if 0 -+ red = pixel[x].bgrr.red & 0x3f; -+ green = pixel[x].bgrr.green & 0x3f; -+ blue = pixel[x].bgrr.blue & 0x3f; -+ red = red * ((1 << pinfo->red_size) - 1) / 0x3f; -+ green = green * ((1 << pinfo->green_size) - 1) / 0x3f; -+ blue = blue * ((1 << pinfo->blue_size) - 1) / 0x3f; -+#else -+ red = pixel[x].bgrr.red; -+ green = pixel[x].bgrr.green; -+ blue = pixel[x].bgrr.blue; -+ -+ red >>= 8 - pinfo->red_size; -+ green >>= 8 - pinfo->green_size; -+ blue >>= 8 - pinfo->blue_size; -+#endif -+ -+ color = (red << pinfo->red_pos) | -+ (green << pinfo->green_pos) | -+ (blue << pinfo->blue_pos); -+ colorp = (void *)&color; -+ while (depth_bytes--) -+ *raw_pixel++ = *colorp++; -+ } -+ } -+ memmove(fb, raw_pixels, maxpixels * pinfo->depth_bytes); -+ } -+ } -+} -+ -+static void -+blt_to_screen(struct eg *eg, struct bltbuf *bltbuf) -+{ -+#if 0 -+ position_t addr = {0, 0}; -+ -+ position_to_phys(eg, &addr, &addr); -+ -+ Call_Service_10(eg->output_intf->blt, eg->output_intf, bltbuf->pixbuf, -+ GRUB_EFI_BLT_BUFFER_TO_VIDEO, -+ 0, 0, -+ addr.x, addr.y, -+ bltbuf->width, bltbuf->height, -+ 0); -+#else -+ const int pxlstride = eg->output_intf->mode->info->pixels_per_scan_line; -+ position_t bltsz, bltpos = { 0, 0 }, pos = { 0, 0 }; -+ bltsz.x = MIN(bltbuf->width, pxlstride); -+ bltsz.y = MIN(bltbuf->height, eg->output_intf->mode->info->vertical_resolution); -+ -+ blt_pos_to_screen_pos(eg, bltbuf, &bltpos, &bltsz, &pos); -+#endif -+} -+ -+static void -+blt_to_screen_pos(struct eg *eg, struct bltbuf *bltbuf, position_t *pos) -+{ -+ position_t bltpos = {0, 0}; -+ position_t bltsz = { bltbuf->width, bltbuf->height }; -+ blt_pos_to_screen_pos(eg, bltbuf, &bltpos, &bltsz, pos); -+} -+ -+static int -+save_video_mode(struct eg *eg, struct video_mode *mode) -+{ -+ grub_efi_status_t status; -+ -+ -+ -+ status = Call_Service_4(eg->output_intf->query_mode, eg->output_intf, -+ mode->number, &mode->size, &mode->info); -+ return status == GRUB_EFI_SUCCESS; -+} -+ -+static void -+get_screen_size(struct graphics_backend *backend, position_t *size) -+{ -+ struct eg *eg = backend->priv; -+ grub_efi_graphics_output_mode_information_t *info; -+ -+ info = get_graphics_mode_info(eg); -+ -+ size->x = info->horizontal_resolution; -+ size->y = info->vertical_resolution; -+} -+ -+static void -+bltbuf_set_pixel(struct bltbuf *bltbuf, position_t *pos, -+ grub_efi_graphics_output_pixel_t *pixel) -+{ -+ if (pos->x < 0 || pos->x >= bltbuf->width) -+ return; -+ if (pos->x < 0 || pos->y >= bltbuf->height) -+ return; -+ grub_memmove(&bltbuf->pixbuf[pos->x + pos->y * bltbuf->width], pixel, -+ sizeof *pixel); -+} -+ -+static void -+bltbuf_get_pixel(struct bltbuf *bltbuf, position_t *pos, -+ grub_efi_graphics_output_pixel_t *pixel) -+{ -+ if (bltbuf && pos->x < bltbuf->width && pos->y < bltbuf->height) { -+ grub_memmove(pixel, &bltbuf->pixbuf[pos->x + pos->y * bltbuf->width], -+ sizeof *pixel); -+ } else { -+ pixel->bgrr.red = 0x00; -+ pixel->bgrr.green = 0x00; -+ pixel->bgrr.blue = 0x00; -+ } -+} -+ -+static void -+bltbuf_set_pixel_rgb(struct bltbuf *bltbuf, position_t *pos, -+ int red, int green, int blue) -+{ -+ grub_efi_graphics_output_pixel_t pixel; -+ rgb_to_pixel(red, green, blue, &pixel); -+ bltbuf_set_pixel(bltbuf, pos, &pixel); -+} -+ -+static void -+bltbuf_set_pixel_idx(struct eg *eg, struct bltbuf *bltbuf, -+ position_t *pos, int idx) -+{ -+ bltbuf_set_pixel(bltbuf, pos, &eg->palette[idx]); -+} -+ -+static void -+bltbuf_get_pixel_idx(struct bltbuf *bltbuf, position_t *pos, int *idx) -+{ -+ grub_efi_graphics_output_pixel_t pixel; -+ -+ rgb_to_pixel(0, 0, 0, &pixel); -+ bltbuf_get_pixel(bltbuf, pos, &pixel); -+ for (*idx = 0; *idx < 16; (*idx)++) { -+ if (pixel_equal(cga_colors[*idx], pixel)) -+ break; -+ } -+} -+ -+static struct bltbuf * -+xpm_to_bltbuf(struct xpm *xpm) -+{ -+ struct bltbuf *bltbuf = NULL; -+ position_t pos; -+ -+ if (!(bltbuf = alloc_bltbuf(xpm->width, xpm->height))) -+ return NULL; -+ -+ for (pos.y = 0; pos.y < xpm->height; pos.y++) { -+ for (pos.x = 0; pos.x < xpm->width; pos.x++) { -+ xpm_pixel_t xpl; -+ unsigned char idx; -+ -+ idx = xpm_get_pixel_idx(xpm, pos.x, pos.y); -+ xpm_get_idx(xpm, idx, &xpl); -+ -+ bltbuf_set_pixel_rgb(bltbuf, &pos, xpl.red, xpl.green, xpl.blue); -+ } -+ } -+ -+ return bltbuf; -+} -+ -+static void -+cursor(struct graphics_backend *backend, int set) -+{ -+ struct eg *eg; -+ int ch, invert; -+ unsigned short *text; -+ position_t fpos, screensz; -+ int offset; -+ -+ eg = backend->priv; -+ -+ if (set && !graphics_get_scroll()) -+ return; -+ -+ text = graphics_get_text_buf(); -+ graphics_get_font_position(&fpos); -+ graphics_get_screen_rowscols(&screensz); -+ -+ offset = fpos.y * screensz.x + fpos.x; -+ -+ if (set) -+ text[offset] |= 0x0200; -+ -+ graphics_clbl(fpos.x, fpos.y, 1, 1, 1); -+ -+ if (set) -+ text[offset] &= 0xfdff; -+} -+ -+static void blank(struct graphics_backend *backend); -+ -+static void -+reset_screen_geometry(struct graphics_backend *backend) -+{ -+ struct eg *eg = backend->priv; -+ struct xpm *xpm = graphics_get_splash_xpm(); -+ grub_efi_graphics_output_mode_information_t *info; -+ position_t screensz; -+ -+ info = get_graphics_mode_info(eg); -+ -+ if (xpm) { -+ eg->screen_pos.x = -+ (info->horizontal_resolution - xpm->width) / 2; -+ eg->screen_pos.y = -+ (info->vertical_resolution - xpm->height) / 2; -+ } else { -+ eg->screen_pos.x = 0; -+ eg->screen_pos.y = 0; -+ } -+ -+ blank(backend); -+ graphics_get_screen_rowscols(&screensz); -+ graphics_clbl(0, 0, screensz.x, screensz.y, 0); -+ graphics_clbl(0, 0, screensz.x, screensz.y, 1); -+} -+ -+static void -+setxy(struct graphics_backend *backend, position_t *pos) -+{ -+ position_t fpos; -+ -+ fpos.x = pos->x; -+ fpos.y = pos->y; -+ graphics_set_font_position(&fpos); -+} -+ -+static void -+eg_getxy(struct graphics_backend *backend, position_t *pos) -+{ -+ graphics_get_font_position(pos); -+} -+ -+static void -+draw_pixel(struct graphics_backend *backend, position_t *pos, pixel_t *pixel) -+{ -+ struct bltbuf *bltbuf = NULL; -+ grub_efi_graphics_output_pixel_t *eup = (grub_efi_graphics_output_pixel_t *)pixel; -+ -+ bltbuf = alloc_bltbuf(1,1); -+ if (!bltbuf) -+ return; -+ -+ grub_memmove(&bltbuf->pixbuf[0], eup, sizeof (*eup)); -+ -+ blt_to_screen_pos(backend->priv, bltbuf, pos); -+ -+ grub_free(bltbuf); -+} -+ -+static pixel_t * -+get_pixel_idx(struct graphics_backend *backend, int idx) -+{ -+ static grub_efi_graphics_output_pixel_t pixel; -+ struct eg *eg = backend->priv; -+ if (idx < 0 || idx > MAX_PALETTE) -+ return NULL; -+ pixel.bgrr.red = eg->palette[idx].bgrr.red; -+ pixel.bgrr.green = eg->palette[idx].bgrr.green; -+ pixel.bgrr.blue = eg->palette[idx].bgrr.blue; -+ return (pixel_t *)&pixel; -+} -+ -+static pixel_t * -+get_pixel_rgb(struct graphics_backend *backend, int red, int green, int blue) -+{ -+ static grub_efi_graphics_output_pixel_t pixel; -+ rgb_to_pixel(red, green, blue, &pixel); -+ return &pixel; -+} -+ -+static void -+set_palette(struct graphics_backend *backend, int idx, -+ int red, int green, int blue) -+{ -+ grub_efi_graphics_output_pixel_t pixel; -+ struct eg *eg = backend->priv; -+ -+ if (idx > MAX_PALETTE) -+ return; -+ rgb_to_pixel(red, green, blue, &pixel); -+ grub_memmove(&eg->palette[idx], &pixel, sizeof pixel); -+} -+ -+static void -+blank(struct graphics_backend *backend) -+{ -+ struct eg *eg = backend->priv; -+ struct bltbuf *bltbuf; -+ position_t pos = {0, 0}; -+ grub_efi_graphics_output_mode_information_t *info; -+ grub_efi_uintn_t x, y, i, j; -+ unsigned char r = 0 ,g = 0; -+ -+ info = get_graphics_mode_info(eg); -+ x = info->horizontal_resolution; -+ y = info->vertical_resolution; -+ -+ if (x == 0 || y == 0) -+ return; -+ -+ bltbuf = alloc_bltbuf(x, y); -+ for (j = 0; j < y; j++) { -+ if (debug_graphics && j % 16 == 0) { -+ g = g == 0 ? 7 : 0; -+ r = g == 0 ? 7 : 0; -+ } -+ for (i = 0; i < x; i++) { -+ if (debug_graphics && i % 16 == 0) { -+ g = g == 0 ? 7 : 0; -+ r = g == 0 ? 7 : 0; -+ } -+ pos.x = i; -+ pos.y = j; -+ bltbuf_set_pixel_rgb(bltbuf, &pos, r * 16, g * 16, 0x0); -+ } -+ } -+ -+ blt_to_screen(eg, bltbuf); -+ -+ grub_free(bltbuf); -+} -+ -+ -+static void -+draw_white_box(struct graphics_backend *backend) -+{ -+ struct eg *eg = backend->priv; -+ struct bltbuf *bltbuf; -+ position_t pos = {0, 0}, bltpos = {0, 0}, bltsz = {100,100}; -+ -+ bltbuf = alloc_bltbuf(bltsz.x, bltsz.y); -+ for (pos.y = 0; pos.y < bltsz.y; pos.y++) { -+ for (pos.x = 0; pos.x < bltsz.x; pos.x++) { -+ bltbuf_set_pixel_rgb(bltbuf, &pos, 0xff, 0xff, 0xff); -+ } -+ } -+ -+ blt_pos_to_screen_pos(eg, bltbuf, &bltpos, &bltsz, &pos); -+ -+#if 0 -+ Call_Service_10(eg->output_intf->blt, eg->output_intf, bltbuf->pixbuf, -+ GRUB_EFI_BLT_BUFFER_TO_VIDEO, 0, 0, 100, 100, x, y, 0); -+#endif -+ -+ grub_free(bltbuf); -+} -+ -+static void -+bltbuf_cp_bl(struct bltbuf *d, position_t dpos, -+ struct bltbuf *s, position_t spos) -+{ -+ grub_efi_graphics_output_pixel_t *dp, *sp; -+ -+ const int xavail = MAX(0, s ? s->width - spos.x : 0); -+ const int xtotal = MAX(0, d->width - dpos.x); -+ const int xcp = MAX(0, MIN(xtotal, xavail)); -+ const int xcl = MAX(0, xtotal - xcp); -+ -+ const int yavail = MAX(0, s ? s->height - spos.y : 0); -+ const int ytotal = MAX(0, d->height - dpos.y); -+ const int ycp = MAX(0, MIN(ytotal, yavail)); -+ const int ycl = MAX(0, ytotal - ycp); -+ -+ int y, x; -+ -+ for (y = 0; y < ytotal; y++) { -+ dp = &d->pixbuf[(dpos.y + y) * d->width + dpos.x]; -+ -+ if (y < yavail) { -+ sp = &s->pixbuf[(spos.y + y) * s->width + spos.x]; -+ memmove(dp, sp, xcp * sizeof (*dp)); -+ dp = &d->pixbuf[(dpos.y + y) * d->width + dpos.x + xcp]; -+ memset(dp, '\0', xcl * sizeof (*dp)); -+ } else { -+ memset(dp, '\0', xtotal * sizeof (*dp)); -+ } -+ } -+} -+ -+/* copy a region the size of bltbuf from the background into bltbuf, -+ * starting at offset bgpos -+ */ -+static void -+bltbuf_draw_bg(struct graphics_backend *backend, struct bltbuf *bltbuf, -+ position_t bgpos) -+{ -+ struct eg *eg = backend->priv; -+ position_t blpos = { 0, 0 }; -+ -+ bltbuf_cp_bl(bltbuf, blpos, eg->background, bgpos); -+} -+ -+static void -+dbg_dump_palette(struct graphics_backend *backend) -+{ -+ struct eg *eg; -+ int i; -+ if (!backend || !backend->priv) -+ return; -+ eg = backend->priv; -+ if (!eg->palette) -+ return; -+} -+ -+static int -+is_shadow_pixel(position_t screensz, position_t textpos, position_t bitpos, -+ position_t fontsz) -+{ -+ unsigned short *text = graphics_get_text_buf(); -+ const unsigned char *glyph; -+ position_t glyphpos = { textpos.x, textpos.y }; -+ position_t glyphbit = { bitpos.x, bitpos.y }; -+ unsigned short ch; -+ -+ if (glyphbit.x == 0) { -+ glyphbit.x = fontsz.x; -+ glyphpos.x--; -+ } -+ if (glyphbit.y == 0) { -+ glyphbit.y = fontsz.y; -+ glyphpos.y--; -+ } -+ glyphbit.x--; -+ glyphbit.y--; -+ -+ if (glyphpos.x < 0 || glyphpos.y < 0) -+ return 0; -+ -+ ch = text[glyphpos.y * screensz.x + glyphpos.x] & 0xff; -+ glyph = font8x16 + (ch << 4); -+ return glyph[glyphbit.y] & (1 << ((fontsz.x-1) - glyphbit.x)); -+} -+ -+static void -+bltbuf_draw_character(struct graphics_backend *backend, -+ struct bltbuf *bltbuf, /* the bltbuf to draw into */ -+ position_t target, /* the position in the bltbuf to draw to */ -+ position_t fontsz, /* the size of the font, in pixels */ -+ position_t charpos, /* the position of the character in the text -+ screen buffer */ -+ position_t screensz, /* the size of the screen in characters */ -+ unsigned short ch /* the character to draw, plus flags */ -+ ) -+{ -+ struct eg *eg = backend->priv; -+ position_t blpos; -+ position_t glyphpos; -+ -+ blpos.y = target.y; -+ for (glyphpos.y = 0; glyphpos.y < fontsz.y; glyphpos.y++, blpos.y++) { -+ blpos.x = target.x; -+ for (glyphpos.x = 0; glyphpos.x < fontsz.x; glyphpos.x++, blpos.x++) { -+ int invert = (ch & 0x0100) != 0; -+ int set = (ch & 0x0200) != 0; -+ const unsigned char *glyph = font8x16 + ((ch & 0xff) << 4); -+ int bit = glyph[glyphpos.y] & (1 << ((fontsz.x-1) - glyphpos.x)); -+ int idx = -1; -+ -+ if (!set) { -+ if (invert) -+ idx = bit ? 0 : 15; -+ else if (bit) -+ idx = 15; -+ -+ if (idx == -1) { -+ if (is_shadow_pixel(screensz, charpos, glyphpos, fontsz) || -+ !eg->background) -+ idx = invert ? 15 : 0; -+ } -+ } else { -+ idx = bit ? 0 : 15; -+ } -+ -+ if (idx != -1) -+ bltbuf_set_pixel_idx(eg, bltbuf, &blpos, idx); -+ } -+ } -+} -+ -+static void -+bltbuf_draw_text(struct graphics_backend *backend, -+ struct bltbuf *bltbuf, /* the buffer to draw into */ -+ position_t screensz, /* the size of the screen in characters */ -+ position_t fontsz, /* the size of the font in pixels */ -+ position_t txtpos, /* the position of the text on the screen -+ (in characters) */ -+ position_t txtsz /* the size of the block to fill in -+ (in characters) */ -+ ) -+{ -+ struct eg *eg = backend->priv; -+ unsigned short *text = graphics_get_text_buf(); -+ position_t charpos; -+ -+ for (charpos.y = txtpos.y; charpos.y < txtpos.y + txtsz.y; charpos.y++) { -+ for (charpos.x = txtpos.x; charpos.x < txtpos.x + txtsz.x; charpos.x++){ -+ int offset = charpos.y * screensz.x + charpos.x; -+ position_t blpos = { (charpos.x-txtpos.x)*fontsz.x, -+ (charpos.y-txtpos.y)*fontsz.y }; -+ -+ bltbuf_draw_character(backend, bltbuf, blpos, fontsz, charpos, -+ screensz, text[offset]); -+ } -+ } -+} -+ -+static void -+clbl(struct graphics_backend *backend, int col, int row, int width, int height, -+ int draw_text) -+{ -+ struct eg *eg = backend->priv; -+ struct xpm *xpm; -+ -+ struct bltbuf *bltbuf; -+ position_t fontsz, blpos, blsz, screensz; -+ unsigned short *text; -+ -+// blank(backend); -+// -+ xpm = graphics_get_splash_xpm(); -+ if (xpm && !eg->background) -+ eg->background = xpm_to_bltbuf(xpm); -+ -+ graphics_get_screen_rowscols(&screensz); -+ width = MIN(width, screensz.x - col); -+ height = MIN(height, screensz.y - row); -+ graphics_get_font_size(&fontsz); -+ -+ blsz.x = width * fontsz.x; -+ blsz.y = height * fontsz.y; -+ -+ bltbuf = alloc_bltbuf(blsz.x, blsz.y); -+ if (!bltbuf) -+ return; -+ -+ blsz.x = col * fontsz.x; -+ blsz.y = row * fontsz.y; -+ -+ text = graphics_get_text_buf(); -+ bltbuf_draw_bg(backend, bltbuf, blsz); -+ -+ if (draw_text) { -+ blsz.x = width; -+ blsz.y = height; -+ blpos.x = col; -+ blpos.y = row; -+ -+ bltbuf_draw_text(backend, bltbuf, screensz, fontsz, blpos, blsz); -+ } -+ -+ blpos.x = col * fontsz.x; -+ blpos.y = row * fontsz.y; -+ -+ blt_to_screen_pos(eg, bltbuf, &blpos); -+} -+ -+static void -+setup_cga_palette(struct eg *eg) -+{ -+ rgb_to_pixel(0x00,0x00,0x00, &eg->palette[0]); // 0 Black -+ rgb_to_pixel(0x7f,0x00,0x00, &eg->palette[1]); // 1 Dark Red -+ rgb_to_pixel(0x00,0x7f,0x00, &eg->palette[2]); // 2 Dark Green -+ rgb_to_pixel(0x7f,0x7f,0x00, &eg->palette[3]); // 3 Dark Yellow -+ rgb_to_pixel(0x00,0x00,0x7f, &eg->palette[4]); // 4 Dark Blue -+ rgb_to_pixel(0x7f,0x00,0x7f, &eg->palette[5]); // 5 Dark Magenta -+ rgb_to_pixel(0x00,0x7f,0x7f, &eg->palette[6]); // 6 Dark Cyan -+ rgb_to_pixel(0xc0,0xc0,0xc0, &eg->palette[7]); // 7 Light Grey -+ rgb_to_pixel(0x7f,0x7f,0x7f, &eg->palette[8]); // 8 Dark Grey -+ rgb_to_pixel(0xff,0x00,0x00, &eg->palette[9]); // 9 Red -+ rgb_to_pixel(0x00,0xff,0x00, &eg->palette[10]); // 10 Green -+ rgb_to_pixel(0xff,0xff,0x00, &eg->palette[11]); // 11 Yellow -+ rgb_to_pixel(0x00,0x00,0xff, &eg->palette[12]); // 12 Blue -+ rgb_to_pixel(0xff,0x00,0xff, &eg->palette[13]); // 13 Magenta -+ rgb_to_pixel(0x00,0xff,0xff, &eg->palette[14]); // 14 Cyan -+ rgb_to_pixel(0xff,0xff,0xff, &eg->palette[15]); // 15 White -+ rgb_to_pixel(0xff,0xff,0xff, &eg->palette[16]); // 16 Also white ;) -+} -+ -+static grub_efi_status_t -+set_video_mode(struct eg *eg, int mode) -+{ -+ grub_efi_status_t efi_status; -+ efi_status = Call_Service_2(eg->output_intf->set_mode, eg->output_intf, mode); -+ return efi_status; -+} -+ -+static void disable(struct graphics_backend *backend) -+{ -+ struct eg *eg; -+ -+ if (!backend) -+ return; -+ -+ eg = backend->priv; -+ if (!eg || eg->current_mode != GRAPHICS) -+ return; -+ -+#if 0 -+ blank(backend); -+ -+ set_video_mode(eg, eg->text_mode); -+ grub_efi_set_text_mode(1); -+#endif -+ eg->current_mode = TEXT; -+} -+ -+static int -+fill_pixel_info (grub_pixel_info_t *pixel_info, -+ grub_efi_graphics_output_mode_information_t *mode_info) -+{ -+ if (mode_info->pixel_format == GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR) -+ { -+ pixel_info->depth_bits = 32; -+ pixel_info->depth_bytes = 4; -+ pixel_info->red_size = 8; -+ pixel_info->red_pos = 0; -+ pixel_info->green_size = 8; -+ pixel_info->green_pos = 8; -+ pixel_info->blue_size = 8; -+ pixel_info->blue_pos = 16; -+ pixel_info->reserved_size = 8; -+ pixel_info->reserved_pos = 24; -+ pixel_info->line_length = mode_info->pixels_per_scan_line * 4; -+ } -+ else if (mode_info->pixel_format == GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR) -+ { -+ pixel_info->depth_bits = 32; -+ pixel_info->depth_bytes = 4; -+ pixel_info->red_size = 8; -+ pixel_info->red_pos = 16; -+ pixel_info->green_size = 8; -+ pixel_info->green_pos = 8; -+ pixel_info->blue_size = 8; -+ pixel_info->blue_pos = 0; -+ pixel_info->reserved_size = 8; -+ pixel_info->reserved_pos = 24; -+ pixel_info->line_length = mode_info->pixels_per_scan_line * 4; -+ } -+ else if (mode_info->pixel_format == GRUB_EFI_PIXEL_BIT_MASK) -+ { -+ find_bits (mode_info->pixel_information.red_mask, -+ &pixel_info->red_pos, &pixel_info->red_size); -+ find_bits (mode_info->pixel_information.green_mask, -+ &pixel_info->green_pos, &pixel_info->green_size); -+ find_bits (mode_info->pixel_information.blue_mask, -+ &pixel_info->blue_pos, &pixel_info->blue_size); -+ find_bits (mode_info->pixel_information.reserved_mask, -+ &pixel_info->reserved_pos, &pixel_info->reserved_size); -+ pixel_info->depth_bits = pixel_info->red_size + pixel_info->green_size + -+ pixel_info->blue_size + pixel_info->reserved_size; -+ pixel_info->depth_bytes = (pixel_info->depth_bits + 7) / 8; -+ pixel_info->line_length = mode_info->pixels_per_scan_line * -+ pixel_info->depth_bytes; -+ } -+ else -+ return 0; -+ return 1; -+} -+ -+/* 1 = prefer a -+ * 0 = prefer neither -+ * -1 = prefer b -+ */ -+static int -+modecmp_helper(struct eg *eg, struct video_mode *amode, struct video_mode *bmode) -+{ -+ grub_efi_graphics_output_mode_information_t *a = amode->info; -+ grub_efi_graphics_output_mode_information_t *b = bmode->info; -+ -+ if (a != NULL && b == NULL) -+ return 1; -+ if (a == NULL && b == NULL) -+ return 0; -+ if (a == NULL && b != NULL) -+ return -1; -+ -+#if 0 -+ if (amode->number == eg->graphics_mode && bmode->number != eg->graphics_mode) -+ return 1; -+ if (amode->number == eg->graphics_mode && bmode->number == eg->graphics_mode) -+ return 0; -+ if (amode->number != eg->graphics_mode && bmode->number == eg->graphics_mode) -+ return -1; -+#endif -+ -+ -+ /* kernel doesn't deal with blt only modes, so prefer against them. */ -+ if (a->pixel_format != GRUB_EFI_PIXEL_BLT_ONLY && -+ b->pixel_format == GRUB_EFI_PIXEL_BLT_ONLY) -+ return 1; -+ if (b->pixel_format != GRUB_EFI_PIXEL_BLT_ONLY && -+ a->pixel_format == GRUB_EFI_PIXEL_BLT_ONLY) -+ return -1; -+ -+ /* XXX PJFIX there's something wrong with what we're passing to the -+ * kernel for stride in the bgrr/rgbr modes, and I haven't figured out -+ * just what yet, so for now, prefer bitmask modes. -+ */ -+ if (a->pixel_format == GRUB_EFI_PIXEL_BIT_MASK && -+ b->pixel_format != GRUB_EFI_PIXEL_BIT_MASK) -+ return 1; -+ if (a->pixel_format != GRUB_EFI_PIXEL_BIT_MASK && -+ b->pixel_format == GRUB_EFI_PIXEL_BIT_MASK) -+ return -1; -+ -+ if (a->pixel_format == GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR && -+ b->pixel_format != GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR) -+ return 1; -+ if (a->pixel_format != GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR && -+ b->pixel_format == GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR) -+ return -1; -+ -+ if (a->pixel_format == GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR && -+ b->pixel_format != GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR) -+ return 1; -+ if (a->pixel_format != GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR && -+ b->pixel_format == GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR) -+ return -1; -+ -+ if (a->horizontal_resolution > b->horizontal_resolution && -+ a->vertical_resolution > b->vertical_resolution) -+ return 1; -+ if (a->horizontal_resolution < b->horizontal_resolution && -+ a->vertical_resolution < b->vertical_resolution) -+ return -1; -+ return 0; -+} -+ -+static int -+modecmp(struct eg *eg, struct video_mode *amode, struct video_mode *bmode) -+{ -+ int rc; -+#if 0 -+ grub_efi_graphics_output_mode_information_t *a = amode->info; -+ grub_efi_graphics_output_mode_information_t *b = bmode->info; -+#endif -+ rc = modecmp_helper(eg, amode, bmode); -+#if 0 -+ grub_printf("comparing nodes:\n"); -+ print_mode_info(amode); -+ print_mode_info(bmode); -+ if (rc > 0) -+ grub_printf("result: a > b\n"); -+ else if (rc < 0) -+ grub_printf("result: a < b\n"); -+ else -+ grub_printf("result: a == b\n"); -+ -+ //dbgdelay(__FILE__, __LINE__); -+#endif -+ return rc; -+} -+ -+static void -+modeswap(struct video_mode *amode, struct video_mode *bmode) -+{ -+ struct video_mode tmp; -+ -+ memcpy(&tmp, amode, sizeof (tmp)); -+ memcpy(amode, bmode, sizeof (tmp)); -+ memcpy(bmode, &tmp, sizeof(tmp)); -+} -+ -+static void -+sort_modes(struct eg *eg, int p, int r) -+{ -+ struct video_mode **modes = eg->modes; -+ -+ int i, j; -+ for (i = 0; i < eg->max_mode; i++) { -+ for (j = i + 1; j < eg->max_mode; j++) { -+ if (modecmp(eg, modes[j], modes[i]) < 0) -+ modeswap(modes[j], modes[i]); -+ } -+ } -+} -+ -+static int -+try_enable(struct graphics_backend *backend) -+{ -+ struct eg *eg = backend->priv; -+ grub_efi_status_t efi_status = GRUB_EFI_UNSUPPORTED; -+ int i; -+ -+ if (eg->text_mode == 0xffffffff) { -+ grub_efi_set_text_mode(1); -+ eg->text_mode = eg->output_intf->mode->mode; -+ } -+ -+ if (eg->graphics_mode == 0xffffffff) { -+ grub_efi_graphics_output_mode_information_t *info; -+ -+ if (!graphics_alloc_text_buf()) -+ return 0; -+ -+ grub_efi_set_text_mode(0); -+ eg->graphics_mode = eg->output_intf->mode->mode; -+ grub_efi_set_text_mode(1); -+#if 0 -+ dprintf("graphics mode is %d\n", eg->graphics_mode); -+ /* this is okay here because we haven't sorted yet.*/ -+ print_mode_info(eg->modes[eg->graphics_mode]); -+ dprintf("text mode is %d\n", eg->text_mode); -+ print_mode_info(eg->modes[eg->text_mode]); -+#endif -+ -+ sort_modes(eg, 0, eg->max_mode-1); -+ -+#if 0 -+ for (i = eg->max_mode - 1; i >= 0; i--) -+ print_mode_info(eg->modes[i]); -+ dbgdelay(__FILE__, __LINE__); -+#endif -+ -+ efi_status = GRUB_EFI_UNSUPPORTED; -+ -+ for (i = eg->max_mode - 1; i >= 0; i--) { -+ if (!eg->modes[i]) -+ continue; -+ -+ info = eg->modes[i]->info; -+ -+#if 0 -+ if (info->pixel_format != GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR && -+ info->pixel_format != GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR && -+ info->pixel_format != GRUB_EFI_PIXEL_BIT_MASK) { -+ continue; -+ } -+#endif -+ -+ grub_efi_set_text_mode(0); -+ efi_status = set_video_mode(eg, eg->modes[i]->number); -+ if (efi_status == GRUB_EFI_SUCCESS) { -+#if 0 -+ grub_efi_set_text_mode(1); -+ dprintf("switched to mode %d successfully\n", -+ eg->modes[i]->number); -+ dbgdelay(__FILE__,__LINE__); -+ grub_efi_set_text_mode(0); -+#endif -+ eg->graphics_mode = eg->modes[i]->number; -+ fill_pixel_info(&eg->pixel_info, info); -+ break; -+ } else { -+#if 0 -+ set_video_mode(eg, eg->text_mode); -+ grub_efi_set_text_mode(1); -+ dprintf("return code was %d\n", efi_status); -+#endif -+ } -+ } -+ if (efi_status != GRUB_EFI_SUCCESS) { -+#if 1 -+ grub_efi_set_text_mode(1); -+ set_video_mode(eg, eg->text_mode); -+#endif -+ return 0; -+ } -+ -+ } -+ -+ eg->current_mode = GRAPHICS; -+ return 1; -+} -+ -+static int -+enable(struct graphics_backend *backend) -+{ -+ struct eg *eg = backend->priv; -+ int i; -+ -+ if (eg) { -+ if (eg->current_mode == GRAPHICS) { -+ return 1; -+ } -+ } else { -+ grub_efi_status_t efi_status; -+ grub_efi_handle_t *handle, *handles; -+ grub_efi_uintn_t num_handles; -+ grub_efi_pci_io_t *pci_proto; -+ -+ if (!(eg = grub_malloc(sizeof (*eg)))) -+ return 0; -+ -+ grub_memset(eg, '\0', sizeof (*eg)); -+ -+ eg->backend = backend; -+ eg->current_mode = TEXT; -+ -+ handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL, -+ &graphics_output_guid, -+ NULL, &num_handles); -+ -+ if (!num_handles || !handles) -+ goto fail; -+ -+ for (handle = handles; num_handles--; handle++) -+ { -+ pci_proto = grub_efi_open_protocol (*handle, &pci_io_guid, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+ -+ if (!pci_proto) -+ continue; -+ -+ eg->output_intf = grub_efi_open_protocol (*handle, -+ &graphics_output_guid, GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+ -+ if (eg->output_intf) -+ { -+ grub_efi_setup_gfx_pci(*handle); -+ break; -+ } -+ } -+ -+ grub_free(handles); -+ -+ if (!eg->output_intf) -+ eg->output_intf = grub_efi_locate_protocol(&graphics_output_guid, NULL); -+ -+ if (!eg->output_intf) -+ goto fail; -+ -+ eg->text_mode = eg->graphics_mode = 0xffffffff; -+ -+ eg->max_mode = eg->output_intf->mode->max_mode; -+ eg->modes = grub_malloc(eg->max_mode * sizeof (void *)); -+ if (!eg->modes) -+ goto fail; -+ memset(eg->modes, '\0', eg->max_mode * sizeof (void *)); -+ -+ for (i = 0; i < eg->max_mode; i++) { -+ eg->modes[i] = grub_malloc(sizeof *(eg->modes[0])); -+ if (!eg->modes[i]) -+ goto fail; -+ memset(eg->modes[i], '\0', sizeof *(eg->modes[0])); -+ eg->modes[i]->number = i; -+ -+ efi_status = Call_Service_4(eg->output_intf->query_mode, -+ eg->output_intf, i, &eg->modes[i]->size, -+ &eg->modes[i]->info); -+ if (efi_status == GRUB_EFI_NOT_STARTED) { -+ /* The firmware didn't turn on GRAPHICS_OUTPUT_PROTOCOL, so -+ * try to do so ourselves. Thanks, Intel. */ -+ set_video_mode(eg, eg->output_intf->mode->mode); -+ efi_status = Call_Service_4(eg->output_intf->query_mode, -+ eg->output_intf, i, &eg->modes[i]->size, -+ &eg->modes[i]->info); -+ } -+ if (efi_status != GRUB_EFI_SUCCESS) { -+ grub_free(eg->modes[i]); -+ eg->modes[i] = NULL; -+ //eg->max_mode = i; -+ break; -+ } -+ } -+ -+ backend->priv = eg; -+ setup_cga_palette(eg); -+ for (i = 0; i < n_cga_colors; i++) { -+ eg->palette[i].bgrr.red = cga_colors[i].bgrr.red; -+ eg->palette[i].bgrr.green = cga_colors[i].bgrr.green; -+ eg->palette[i].bgrr.blue = cga_colors[i].bgrr.blue; -+ } -+ } -+ -+ if (try_enable(backend)) { -+ reset_screen_geometry(backend); -+ return 1; -+ } -+ -+fail: -+ backend->priv = NULL; -+ if (eg->modes) { -+ for (i = 0; i < eg->max_mode; i++) { -+ if (eg->modes[i]) -+ grub_free(eg->modes[i]); -+ } -+ grub_free(eg->modes); -+ } -+ grub_free(eg); -+ return 0; -+} -+ -+struct graphics_backend eg_backend = { -+ .name = "eg", -+ .enable = enable, -+ .disable = disable, -+ .set_kernel_params = set_kernel_params, -+ .clbl = clbl, -+ .set_palette = set_palette, -+ .get_pixel_idx = get_pixel_idx, -+ .get_pixel_rgb = get_pixel_rgb, -+ .draw_pixel = draw_pixel, -+ .reset_screen_geometry = reset_screen_geometry, -+ .get_screen_size = get_screen_size, -+ .getxy = eg_getxy, -+ .setxy = setxy, -+ .gotoxy = NULL, -+ .cursor = cursor, -+}; -+ -+#endif /* SUPPORT_GRAPHICS */ -diff --git a/efi/efimain.c b/efi/efimain.c -new file mode 100644 -index 0000000..e1a1e66 ---- /dev/null -+++ b/efi/efimain.c -@@ -0,0 +1,129 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2007 Intel Corp. -+ * -+ * 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., 51 Franklin Street, Fifth Floor, Boston, -+ * MA 02110-1301, USA. -+ */ -+ -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+#include "pxe.h" -+ -+#define GRUB_SCRATCH_MEM_PAGES (GRUB_SCRATCH_MEM_SIZE >> 12) -+ -+/* Emulation requirements. */ -+void *grub_scratch_mem = NULL; -+ -+#define LOW_STACK_SIZE 0x100000 -+#define LOW_STACK_PAGES (LOW_STACK_SIZE >> 12) -+static void *low_stack, *real_stack; -+ -+extern int grub_test_pxe(grub_efi_loaded_image_t *loaded_image); -+ -+static void -+real_main (void) -+{ -+ grub_efi_loaded_image_t *loaded_image; -+ char *path_name = NULL; -+ -+ loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle); -+ -+ path_name = grub_efi_pxe_get_config_path(loaded_image); -+ -+ if (path_name) { -+ network_ready = 1; -+ -+ grub_set_config_file (path_name); -+ grub_free (path_name); -+ } else { -+ grub_get_drive_partition_from_bdev_handle (loaded_image->device_handle, -+ &boot_drive, -+ &install_partition); -+ path_name = grub_efi_file_path_to_path_name (loaded_image->file_path); -+ -+ if (path_name) -+ { -+ grub_set_config_file (path_name); -+ grub_free (path_name); -+ } -+ -+ grub_load_saved_default (loaded_image->device_handle); -+ } -+ -+ init_bios_info (); -+ while (console_getkey() < 0) -+ grub_efi_stall(1000); -+} -+ -+grub_efi_status_t -+efi_main (grub_efi_handle_t image_handle, grub_efi_system_table_t *sys_tab) -+{ -+ grub_efi_image_handle = image_handle; -+ grub_efi_system_table = sys_tab; -+ grub_efi_init (); -+ -+ grub_scratch_mem = grub_efi_allocate_pages (0, GRUB_SCRATCH_MEM_PAGES); -+ if (! grub_scratch_mem) -+ { -+ grub_printf ("Failed to allocate scratch mem!\n"); -+ return GRUB_EFI_OUT_OF_RESOURCES; -+ } -+ -+ /* If current stack reside in memory region > 2G, switch stack to a -+ memory region < 2G */ -+ if ((unsigned long)&image_handle >= 0x80000000UL) -+ { -+ low_stack = grub_efi_allocate_pages (0, LOW_STACK_PAGES); -+ if (! low_stack) -+ { -+ grub_printf("Failed to allocate low memory stack!\n"); -+ return GRUB_EFI_OUT_OF_RESOURCES; -+ } -+ -+#ifdef __x86_64__ -+ asm volatile ("movq %%rsp, %0\n\tmovq %1, %%rsp\n" -+ : "=&r" (real_stack) : "r" (low_stack+LOW_STACK_SIZE)); -+#else -+ asm volatile ("movl %%esp, %0\n\tmovl %1, %%esp\n" -+ : "=&r" (real_stack) : "r" (low_stack+LOW_STACK_SIZE)); -+#endif -+ } -+ -+ real_main (); -+ -+ if (real_stack) { -+#ifdef __x86_64__ -+ asm volatile ("movq %0, %%rsp\n" : : "r" (real_stack)); -+#else -+ asm volatile ("movl %0, %%esp\n" : : "r" (real_stack)); -+#endif -+ -+ grub_efi_free_pages ((grub_efi_physical_address_t)(unsigned long) low_stack, -+ LOW_STACK_PAGES); -+ } -+ -+ grub_efi_free_pages ((grub_efi_physical_address_t)(unsigned long)grub_scratch_mem, -+ GRUB_SCRATCH_MEM_PAGES); -+ grub_efi_fini (); -+ -+ return GRUB_EFI_SUCCESS; -+} -diff --git a/efi/efimisc.c b/efi/efimisc.c -new file mode 100644 -index 0000000..480ba25 ---- /dev/null -+++ b/efi/efimisc.c -@@ -0,0 +1,665 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2006 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., 51 Franklin Street, Fifth Floor, Boston, -+ * MA 02110-1301, USA. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include -+ -+unsigned long install_partition = 0x20000; -+unsigned long boot_drive = 0x80; -+int saved_entryno = 0; -+char version_string[] = VERSION; -+char config_file[128] = "/boot/grub/menu.lst"; -+unsigned short io_map[IO_MAP_SIZE]; -+struct apm_info apm_bios_info; -+/* The key map. */ -+unsigned short bios_key_map[KEY_MAP_SIZE + 1]; -+unsigned short ascii_key_map[KEY_MAP_SIZE + 1]; -+ -+void -+grub_efi_init (void) -+{ -+ /* First of all, initialize the console so that GRUB can display -+ messages. */ -+ grub_console_init (); -+ /* Initialize the memory management system. */ -+ grub_efi_mm_init (); -+ grub_efidisk_init (); -+} -+ -+void -+grub_efi_fini (void) -+{ -+ grub_efidisk_fini (); -+ grub_efi_mm_fini (); -+ grub_console_fini (); -+} -+ -+void * -+grub_malloc (grub_size_t size) -+{ -+ return grub_efi_allocate_pool (size); -+} -+ -+void -+grub_free (void *p) -+{ -+ grub_efi_free_pool (p); -+} -+ -+char * -+grub_stpcpy (char *dest, const char *src) -+{ -+ char *d = dest; -+ const char *s = src; -+ -+ do -+ *d++ = *s; -+ while (*s++ != '\0'); -+ -+ return d - 1; -+} -+ -+void -+grub_fatal (const char *fmt, ...) -+{ -+ va_list ap; -+ -+ va_start (ap, fmt); -+ grub_vsprintf (NULL, fmt, ap); -+ va_end (ap); -+ -+ grub_exit (); -+} -+ -+void -+grub_real_dprintf (const char *file, const int line, const char *condition, -+ const char *fmt, ...) -+{ -+ va_list args; -+ -+ if (! debug) -+ return; -+ -+ grub_printf ("%s:%d: ", file, line); -+ va_start (args, fmt); -+ grub_vsprintf (0, fmt, args); -+ va_end (args); -+} -+ -+grub_size_t -+grub_utf8_char_len(grub_uint8_t ch) -+{ -+ return ((0xe5000000 >> ((ch >> 3) & 0x1e)) & 3) + 1; -+} -+ -+#define UTF8_SHIFT_AND_MASK(unicode, byte) (unicode)<<=6; (unicode) |= (0x3f & (byte)) -+ -+/* convert utf8 to utf32 */ -+grub_uint32_t -+grub_utf8_to_utf32(const grub_uint8_t *src, grub_size_t length) -+{ -+ grub_uint32_t unicode; -+ -+ switch (length) -+ { -+ case 1: -+ return src[0]; -+ case 2: -+ unicode = src[0] & 0x1f; -+ UTF8_SHIFT_AND_MASK(unicode, src[1]); -+ return unicode; -+ case 3: -+ unicode = src[0] & 0x0f; -+ UTF8_SHIFT_AND_MASK(unicode, src[1]); -+ UTF8_SHIFT_AND_MASK(unicode, src[2]); -+ return unicode; -+ case 4: -+ unicode = src[0] & 0x07; -+ UTF8_SHIFT_AND_MASK(unicode, src[1]); -+ UTF8_SHIFT_AND_MASK(unicode, src[2]); -+ UTF8_SHIFT_AND_MASK(unicode, src[3]); -+ return unicode; -+ default: -+ return 0xffff; -+ } -+} -+ -+/* convert utf8 to utf16 */ -+void -+grub_utf8_to_utf16(const grub_uint8_t *src, grub_size_t srclen, -+ grub_uint16_t *dst, grub_size_t dstlen) -+{ -+ const grub_uint8_t *end = src + srclen; -+ grub_efi_char16_t *dstend = dst + dstlen; -+ -+ while (src < end && dst < dstend) -+ { -+ grub_size_t len = grub_utf8_char_len(*src); -+ /* get the utf32 codepoint */ -+ grub_uint32_t codepoint = grub_utf8_to_utf32(src, len); -+ -+ /* convert that codepoint to utf16 codepoints */ -+ if (codepoint <= 0xffff) -+ { -+ /* it's a single utf16 character */ -+ *dst++ = (grub_efi_char16_t) codepoint; -+ } -+ else -+ { -+ /* it's multiple utf16 characters, with surrogate pairs */ -+ codepoint = codepoint - 0x10000; -+ *dst++ = (grub_efi_char16_t) ((codepoint >> 10) + 0xd800); -+ *dst++ = (grub_efi_char16_t) ((codepoint & 0x3ff) + 0xdc00); -+ } -+ -+ src += len; -+ } -+ -+ if (dst < dstend) -+ *dst = 0; -+} -+ -+/* Convert UTF-16 to UTF-8. */ -+grub_uint8_t * -+grub_utf16_to_utf8 (grub_uint8_t *dest, grub_uint16_t *src, -+ grub_size_t size) -+{ -+ grub_uint32_t code_high = 0; -+ -+ while (size--) -+ { -+ grub_uint32_t code = *src++; -+ -+ if (code_high) -+ { -+ if (code >= 0xDC00 && code <= 0xDFFF) -+ { -+ /* Surrogate pair. */ -+ code = ((code_high - 0xD800) << 12) + (code - 0xDC00) + 0x10000; -+ -+ *dest++ = (code >> 18) | 0xF0; -+ *dest++ = ((code >> 12) & 0x3F) | 0x80; -+ *dest++ = ((code >> 6) & 0x3F) | 0x80; -+ *dest++ = (code & 0x3F) | 0x80; -+ } -+ else -+ { -+ /* Error... */ -+ *dest++ = '?'; -+ } -+ -+ code_high = 0; -+ } -+ else -+ { -+ if (code <= 0x007F) -+ *dest++ = code; -+ else if (code <= 0x07FF) -+ { -+ *dest++ = (code >> 6) | 0xC0; -+ *dest++ = (code & 0x3F) | 0x80; -+ } -+ else if (code >= 0xD800 && code <= 0xDBFF) -+ { -+ code_high = code; -+ continue; -+ } -+ else if (code >= 0xDC00 && code <= 0xDFFF) -+ { -+ /* Error... */ -+ *dest++ = '?'; -+ } -+ else -+ { -+ *dest++ = (code >> 16) | 0xE0; -+ *dest++ = ((code >> 12) & 0x3F) | 0x80; -+ *dest++ = (code & 0x3F) | 0x80; -+ } -+ } -+ } -+ -+ return dest; -+} -+ -+/* low-level timing info */ -+int -+getrtsecs (void) -+{ -+ return grub_get_rtc() / GRUB_TICKS_PER_SECOND; -+} -+ -+void -+grub_reboot (void) -+{ -+ grub_efi_runtime_services_t *r; -+ -+ r = grub_efi_system_table->runtime_services; -+ Call_Service_4 (r->reset_system, GRUB_EFI_RESET_COLD, -+ GRUB_EFI_SUCCESS, 0, NULL); -+ for (;;); -+} -+ -+void -+grub_halt (int no_apm) -+{ -+ grub_efi_runtime_services_t *r; -+ -+ r = grub_efi_system_table->runtime_services; -+ Call_Service_4 (r->reset_system, GRUB_EFI_RESET_SHUTDOWN, -+ GRUB_EFI_SUCCESS, 0, NULL); -+ for (;;); -+} -+ -+void -+stop (void) -+{ -+ grub_exit (); -+} -+ -+/* booting a multiboot executable */ -+void -+multi_boot (int start, int mb_info) -+{ -+ stop (); -+} -+ -+/* sets it to linear or wired A20 operation */ -+void -+gateA20 (int linear) -+{ -+} -+ -+/* Set up the int15 handler. */ -+void -+set_int15_handler (void) -+{ -+} -+ -+/* Restore the original int15 handler. */ -+void -+unset_int15_handler (void) -+{ -+} -+ -+/* Copy MAP to the drive map and set up the int13 handler. */ -+void -+set_int13_handler (unsigned short *map) -+{ -+} -+ -+/* Get the ROM configuration table. */ -+unsigned long -+get_rom_config_table (void) -+{ -+ return 0; -+} -+ -+/* Get APM BIOS information. */ -+void -+get_apm_info (void) -+{ -+ /* Nothing to do in the simulator. */ -+} -+ -+void -+stop_floppy (void) -+{ -+ /* NOTUSED */ -+} -+ -+char * -+grub_strndup (const char *s, int n) -+{ -+ int l = grub_strnlen(s, n); -+ char *new = grub_malloc(l + 1); -+ -+ if (new == NULL) -+ return NULL; -+ -+ new[l] = '\0'; -+ return grub_strncpy(new, s, l); -+} -+ -+int -+safe_parse_maxulong (char **str_ptr, unsigned long *myulong_ptr) -+{ -+ char *ptr = *str_ptr; -+ unsigned long myulong = 0; -+ unsigned int mult = 10, found = 0; -+ -+ /* -+ * Is this a hex number? -+ */ -+ if (*ptr == '0' && tolower (*(ptr + 1)) == 'x') -+ { -+ ptr += 2; -+ mult = 16; -+ } -+ -+ while (1) -+ { -+ /* A bit tricky. This below makes use of the equivalence: -+ (A >= B && A <= C) <=> ((A - B) <= (C - B)) -+ when C > B and A is unsigned. */ -+ unsigned int digit; -+ -+ digit = tolower (*ptr) - '0'; -+ if (digit > 9) -+ { -+ digit -= 'a' - '0'; -+ if (mult == 10 || digit > 5) -+ break; -+ digit += 10; -+ } -+ -+ found = 1; -+ if (myulong > ((~0UL - digit) / mult)) -+ { -+ errnum = ERR_NUMBER_OVERFLOW; -+ return 0; -+ } -+ myulong = (myulong * mult) + digit; -+ ptr++; -+ } -+ -+ if (!found) -+ { -+ errnum = ERR_NUMBER_PARSING; -+ return 0; -+ } -+ -+ *str_ptr = ptr; -+ *myulong_ptr = myulong; -+ -+ return 1; -+} -+ -+int -+currticks (void) -+{ -+ return grub_get_rtc (); -+} -+ -+static char * -+fix_path_name (char *path_name) -+{ -+ char *p1, *p2; -+ -+ p1 = path_name; -+ p2 = p1 + 1; -+ if (*p1 == '\\') -+ *p1 = '/'; -+ while (*p1) -+ { -+ switch (*p2) -+ { -+ case '\0': -+ *++p1 = *p2; -+ break; -+ case '.': -+ if (*p1 == '/' && *(p2+1) == '\\') -+ p2 += 2; -+ else -+ *++p1=*p2++; -+ break; -+ case '\\': -+ if (*p1 == '/') -+ p2++; -+ else -+ *++p1 = '/'; -+ break; -+ default: -+ *++p1=*p2++; -+ break; -+ } -+ } -+ return path_name; -+} -+ -+char * -+grub_efi_file_path_to_path_name (grub_efi_device_path_t *file_path) -+{ -+ char *str; -+ grub_efi_uint32_t str_len = 16; -+ grub_efi_uint32_t str_pos = 0; -+ -+ str = grub_malloc (str_len); -+ if (! str) -+ return NULL; -+ str[0] = '\0'; -+ -+ while (1) -+ { -+ grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (file_path); -+ grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (file_path); -+ grub_efi_uint16_t len = GRUB_EFI_DEVICE_PATH_LENGTH (file_path); -+ -+ switch (type) -+ { -+ case GRUB_EFI_MEDIA_DEVICE_PATH_TYPE: -+ switch (subtype) -+ { -+ case GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE: -+ { -+ grub_efi_file_path_device_path_t *fp; -+ grub_uint8_t buf[(len - 4) * 2 + 2]; -+ grub_uint32_t path_name_len; -+ char *tmp_str; -+ -+ fp = (grub_efi_file_path_device_path_t *) file_path; -+ *grub_utf16_to_utf8 (buf, fp->path_name, -+ (len - 4) / sizeof (grub_efi_char16_t)) -+ = '\0'; -+ path_name_len = strlen ((char *)buf) + 1; -+ if ((str_len - str_pos) <= path_name_len) -+ { -+ do -+ str_len *= 2; -+ while ((str_len - str_pos) <= path_name_len); -+ tmp_str = grub_malloc (str_len); -+ if (tmp_str == NULL) -+ goto fail; -+ grub_memmove (tmp_str, str, str_pos); -+ grub_free (str); -+ str = tmp_str; -+ } -+ str[str_pos] = '\\'; -+ strcpy (str + str_pos + 1, (char *)buf); -+ str_pos += path_name_len; -+ } -+ break; -+ default: -+ break; -+ } -+ break; -+ default: -+ break; -+ } -+ -+ if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (file_path)) -+ break; -+ -+ file_path = (grub_efi_device_path_t *) ((char *) file_path + len); -+ } -+ return fix_path_name (str); -+ -+ fail: -+ grub_free (str); -+ return NULL; -+} -+ -+#define DEFAULT_SAVED_DEFAULT_FILE_NAME "grub.default" -+#define DEFAULT_CONFIG_FILE_NAME "grub.conf" -+ -+static char saved_default_file[128] = "/boot/grub/grub.default"; -+ -+void -+grub_set_config_file (char *path_name) -+{ -+ char *dir_end; -+ grub_uint32_t path_name_len; -+ -+ path_name_len = strlen (path_name); -+ if (path_name_len > 4 -+ && path_name[path_name_len - 4] == '.' -+ && grub_tolower (path_name[path_name_len - 3]) == 'e' -+ && grub_tolower (path_name[path_name_len - 2]) == 'f' -+ && grub_tolower (path_name[path_name_len - 1]) == 'i') -+ { -+ /* Bigger than buffer of config_file */ -+ if (path_name_len + 1 > 127) -+ return; -+ grub_memmove (config_file, path_name, path_name_len - 4); -+ grub_strcpy (config_file + path_name_len - 4, ".conf"); -+ /* Bigger than buffer of default file */ -+ if (path_name_len + 4 > 127) -+ return; -+ grub_memmove (saved_default_file, path_name, path_name_len - 4); -+ grub_strcpy (saved_default_file + path_name_len - 4, ".default"); -+ return; -+ } -+ dir_end = grub_strrchr (path_name, '/'); -+ if (! dir_end) -+ { -+ grub_strcpy (config_file, DEFAULT_CONFIG_FILE_NAME); -+ grub_strcpy (saved_default_file, DEFAULT_SAVED_DEFAULT_FILE_NAME); -+ return; -+ } -+ if (strlen(dir_end) == 1) { -+ path_name_len = dir_end + 1 - path_name; -+ if (path_name_len + sizeof (DEFAULT_CONFIG_FILE_NAME) > 128) -+ return; -+ grub_memmove (config_file, path_name, path_name_len); -+ grub_strcpy (config_file + path_name_len, DEFAULT_CONFIG_FILE_NAME); -+ } else { -+ grub_memmove (config_file, path_name, path_name_len+1); -+ } -+ if (path_name_len + sizeof (DEFAULT_SAVED_DEFAULT_FILE_NAME) > 128) -+ return; -+ path_name_len = dir_end + 1 - path_name; -+ grub_memmove (saved_default_file, path_name, path_name_len); -+ grub_strcpy (saved_default_file + path_name_len, -+ DEFAULT_SAVED_DEFAULT_FILE_NAME); -+} -+ -+grub_efi_guid_t simple_file_system_guid = GRUB_EFI_SIMPLE_FILE_SYSTEM_GUID; -+ -+static grub_efi_file_t * -+simple_open_file(grub_efi_handle_t dev_handle, -+ char *file_name, -+ int for_write) -+{ -+ grub_efi_simple_file_system_t *file_system; -+ grub_efi_file_t *root; -+ grub_efi_file_t *file = NULL; -+ grub_efi_status_t status; -+ grub_efi_char16_t *file_name_w = NULL; -+ grub_efi_char16_t *chp_w; -+ grub_efi_uint64_t open_mode; -+ -+ file_system = grub_efi_open_protocol (dev_handle, -+ &simple_file_system_guid, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+ if (! file_system) -+ return NULL; -+ status = Call_Service_2 (file_system->open_volume, file_system, &root); -+ if (status != GRUB_EFI_SUCCESS) -+ return NULL; -+ file_name_w = grub_malloc (2 * strlen(file_name) + 2); -+ if (! file_name_w) -+ goto done; -+ for (chp_w = file_name_w; *file_name; chp_w++, file_name++) -+ if (*file_name == '/') -+ *chp_w = '\\'; -+ else -+ *chp_w = *file_name; -+ *chp_w = '\0'; -+ open_mode = for_write ? GRUB_EFI_FILE_MODE_READ | GRUB_EFI_FILE_MODE_WRITE \ -+ | GRUB_EFI_FILE_MODE_CREATE : GRUB_EFI_FILE_MODE_READ; -+ status = Call_Service_5 (root->open, root, &file, file_name_w, -+ open_mode, 0); -+ done: -+ if (file_name_w) -+ grub_free (file_name_w); -+ Call_Service_1 (root->close, root); -+ return file; -+} -+ -+void -+grub_load_saved_default (grub_efi_handle_t dev_handle) -+{ -+ grub_efi_file_t *file; -+ char buf[16]; -+ char *ptr = buf; -+ grub_efi_status_t status; -+ int val; -+ grub_efi_uintn_t buf_size = sizeof(buf); -+ -+ file = simple_open_file (dev_handle, saved_default_file, 0); -+ if (! file) -+ return; -+ status = Call_Service_3 (file->read, file, &buf_size, buf); -+ if (status != GRUB_EFI_SUCCESS) -+ goto done; -+ if (buf_size >= sizeof(buf)) -+ buf_size = sizeof(buf) - 1; -+ buf[buf_size] = '\0'; -+ if (safe_parse_maxint (&ptr, &val)) -+ saved_entryno = val; -+ done: -+ Call_Service_1 (file->close, file); -+} -+ -+int -+grub_save_saved_default (int new_default) -+{ -+ grub_efi_loaded_image_t *loaded_image; -+ grub_efi_file_t *file; -+ char buf[16]; -+ grub_efi_status_t status; -+ grub_efi_uintn_t buf_size; -+ int ret = 0; -+ -+ loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle); -+ file = simple_open_file (loaded_image->device_handle, -+ saved_default_file, 1); -+ if (! file) -+ { -+ errnum = ERR_FILE_NOT_FOUND; -+ return 1; -+ } -+ sprintf (buf, "%d", new_default); -+ buf_size = strlen (buf); -+ status = Call_Service_3 (file->write, file, &buf_size, buf); -+ if (status != GRUB_EFI_SUCCESS) -+ { -+ errnum = ERR_WRITE; -+ ret = 1; -+ goto done; -+ } -+ done: -+ Call_Service_1 (file->close, file); -+ return ret; -+} -diff --git a/efi/efimm.c b/efi/efimm.c -new file mode 100644 -index 0000000..836188d ---- /dev/null -+++ b/efi/efimm.c -@@ -0,0 +1,539 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2006 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., 51 Franklin Street, Fifth Floor, Boston, -+ * MA 02110-1301, USA. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include -+ -+#define NEXT_MEMORY_DESCRIPTOR(desc, size) \ -+ ((grub_efi_memory_descriptor_t *) ((char *) (desc) + (size))) -+ -+#define BYTES_TO_PAGES(bytes) ((bytes) >> 12) -+#define PAGES_TO_BYTES(pages) ((pages) << 12) -+ -+/* Global variables used to store memory map, its size, and the number of -+ * pages allocated for the buffer. */ -+void *mmap_buf; -+grub_efi_uintn_t mmap_size; -+grub_efi_uintn_t mmap_pages; -+ -+/* Maintain the list of allocated pages. */ -+struct allocated_page -+{ -+ grub_efi_physical_address_t addr; -+ grub_efi_uint64_t num_pages; -+}; -+ -+#define ALLOCATED_PAGES_SIZE 0x1000 -+#define MAX_ALLOCATED_PAGES \ -+ (ALLOCATED_PAGES_SIZE / sizeof (struct allocated_page)) -+ -+static struct allocated_page *allocated_pages = 0; -+ -+/* The minimum and maximum heap size for GRUB itself. */ -+#define MIN_HEAP_SIZE 0x100000 -+#define MAX_HEAP_SIZE (16 * 0x100000) -+ -+ -+void * -+grub_efi_allocate_pool (grub_efi_uintn_t size) -+{ -+ grub_efi_status_t status; -+ void *p; -+ grub_efi_boot_services_t *b; -+ -+ b = grub_efi_system_table->boot_services; -+ status = Call_Service_3(b->allocate_pool, GRUB_EFI_LOADER_DATA, size, &p); -+ if (status != GRUB_EFI_SUCCESS) -+ return NULL; -+ -+ return p; -+} -+ -+void -+grub_efi_free_pool (void *buffer) -+{ -+ grub_efi_boot_services_t *b; -+ -+ b = grub_efi_system_table->boot_services; -+ Call_Service_1(b->free_pool, buffer); -+} -+ -+void * -+grub_efi_allocate_anypages(grub_efi_uintn_t pages) -+{ -+ grub_efi_boot_services_t *b; -+ grub_efi_status_t status; -+ grub_efi_physical_address_t address; -+ -+ b = grub_efi_system_table->boot_services; -+ status = Call_Service_4 (b->allocate_pages, -+ GRUB_EFI_ALLOCATE_ANY_PAGES, -+ GRUB_EFI_LOADER_DATA, -+ pages, -+ &address); -+ if (status != GRUB_EFI_SUCCESS) -+ return 0; -+ -+ if (allocated_pages) -+ { -+ unsigned i; -+ -+ for (i = 0; i < MAX_ALLOCATED_PAGES; i++) -+ if (allocated_pages[i].addr == 0) -+ { -+ allocated_pages[i].addr = address; -+ allocated_pages[i].num_pages = pages; -+ break; -+ } -+ -+ if (i == MAX_ALLOCATED_PAGES) -+ { -+ grub_printf ("too many page allocations"); -+ return NULL; -+ } -+ } -+ -+ return (void *) ((grub_addr_t) address); -+ -+} -+ -+/* Allocate pages. Return the pointer to the first of allocated pages. */ -+static void * -+grub_efi_allocate_pages_real (grub_efi_physical_address_t address, -+ grub_efi_uintn_t pages, -+ grub_efi_memory_type_t memtype) -+{ -+ grub_efi_allocate_type_t type; -+ grub_efi_status_t status; -+ grub_efi_boot_services_t *b; -+ -+ /* Limit the memory access to less than 2GB to avoid 64bit -+ * compatible problem of grub */ -+ if (address > 0x7fffffff) -+ return 0; -+ -+ if (address == 0) -+ { -+ type = GRUB_EFI_ALLOCATE_MAX_ADDRESS; -+ address = 0x7fffffff; -+ } -+ else -+ type = GRUB_EFI_ALLOCATE_ADDRESS; -+ -+ b = grub_efi_system_table->boot_services; -+ status = Call_Service_4 (b->allocate_pages, type, -+ memtype, pages, &address); -+ -+ if (status != GRUB_EFI_SUCCESS) -+ { -+ /* EFI_NOT_FOUND means the region was unavailable, which means we can -+ probably just use it. This is only for hacks to start with */ -+ if (memtype == GRUB_EFI_RUNTIME_SERVICES_DATA && -+ status == GRUB_EFI_NOT_FOUND) -+ return (void *) ((grub_addr_t) address); -+ else -+ return 0; -+ } -+ -+ if (address == 0) -+ { -+ /* Uggh, the address 0 was allocated... This is too annoying, -+ so reallocate another one. */ -+ address = 0x7fffffff; -+ status = Call_Service_4 (b->allocate_pages, -+ type, GRUB_EFI_LOADER_DATA, pages, &address); -+ grub_efi_free_pages (0, pages); -+ if (status != GRUB_EFI_SUCCESS) -+ return 0; -+ } -+ -+ /* We don't want to free anything we've allocated for runtime */ -+ if (allocated_pages && memtype != GRUB_EFI_RUNTIME_SERVICES_DATA) -+ { -+ unsigned i; -+ -+ for (i = 0; i < MAX_ALLOCATED_PAGES; i++) -+ if (allocated_pages[i].addr == 0) -+ { -+ allocated_pages[i].addr = address; -+ allocated_pages[i].num_pages = pages; -+ break; -+ } -+ -+ if (i == MAX_ALLOCATED_PAGES) -+ { -+ grub_printf ("too many page allocations"); -+ return NULL; -+ } -+ } -+ -+ return (void *) ((grub_addr_t) address); -+} -+ -+void * -+grub_efi_allocate_pages (grub_efi_physical_address_t address, -+ grub_efi_uintn_t pages) -+ -+{ -+ return grub_efi_allocate_pages_real(address, pages, GRUB_EFI_LOADER_DATA); -+} -+ -+void * -+grub_efi_allocate_runtime_pages (grub_efi_physical_address_t address, -+ grub_efi_uintn_t pages) -+ -+{ -+ return grub_efi_allocate_pages_real(address, pages, -+ GRUB_EFI_RUNTIME_SERVICES_DATA); -+} -+/* Free pages starting from ADDRESS. */ -+void -+grub_efi_free_pages (grub_efi_physical_address_t address, -+ grub_efi_uintn_t pages) -+{ -+ grub_efi_boot_services_t *b; -+ -+ if (allocated_pages -+ && ((grub_efi_physical_address_t) ((grub_addr_t) allocated_pages) -+ != address)) -+ { -+ unsigned i; -+ -+ for (i = 0; i < MAX_ALLOCATED_PAGES; i++) -+ if (allocated_pages[i].addr == address) -+ { -+ allocated_pages[i].addr = 0; -+ break; -+ } -+ } -+ -+ b = grub_efi_system_table->boot_services; -+ Call_Service_2 (b->free_pages ,address, pages); -+} -+ -+/* Get the memory map as defined in the EFI spec. Return 1 if successful, -+ return 0 if partial, or return -1 if an error occurs. -+ -+ This function will allocate memory for (global) mmap_buf if there isn't -+ already a buffer allocated, and will free & reallocate if it needs to -+ be larger. */ -+ -+int -+grub_efi_get_memory_map (grub_efi_uintn_t *map_key, -+ grub_efi_uintn_t *descriptor_size, -+ grub_efi_uint32_t *descriptor_version) -+{ -+ grub_efi_status_t status; -+ grub_efi_boot_services_t *b; -+ grub_efi_uintn_t key; -+ grub_efi_uint32_t version; -+ grub_efi_uintn_t tmp_mmap_size; -+ -+ /* Allow some parameters to be missing. */ -+ if (! map_key) -+ map_key = &key; -+ if (! descriptor_version) -+ descriptor_version = &version; -+ -+ while (1) -+ { -+ b = grub_efi_system_table->boot_services; -+ tmp_mmap_size = PAGES_TO_BYTES(mmap_pages); -+ status = Call_Service_5 (b->get_memory_map, -+ &tmp_mmap_size, mmap_buf, map_key, -+ descriptor_size, descriptor_version); -+ if (status == GRUB_EFI_SUCCESS) -+ { -+ mmap_size = tmp_mmap_size; -+ return 1; -+ } -+ else if (status != GRUB_EFI_BUFFER_TOO_SMALL) -+ return -1; -+ -+ /* we need a larger buffer */ -+ if (mmap_buf) -+ grub_efi_free_pages ((grub_addr_t) mmap_buf, mmap_pages); -+ -+ /* get 1 more page than we need, just in case */ -+ mmap_pages = BYTES_TO_PAGES(tmp_mmap_size + 4095) + 1; -+ mmap_buf = grub_efi_allocate_pages (0, mmap_pages); -+ if (! mmap_buf) -+ { -+ mmap_pages = 0; -+ grub_printf ("cannot allocate memory for memory map"); -+ return -1; -+ } -+ } -+} -+ -+#define MMAR_DESC_LENGTH 20 -+ -+/* -+ * Add a memory region to the kernel e820 map. -+ * -+ * Convert EFI memory map to E820 map for the operating system -+ * This code is based on a Linux kernel patch submitted by Edgar Hucek -+ */ -+static void -+add_memory_region (struct e820_entry *e820_map, -+ int *e820_nr_map, -+ unsigned long long start, -+ unsigned long long size, -+ unsigned int type) -+{ -+ int x = *e820_nr_map; -+ static unsigned long long estart = 0ULL; -+ static unsigned long esize = 0L; -+ static unsigned int etype = -1; -+ static int merge = 0; -+ -+ /* merge adjacent regions of same type */ -+ if ((x > 0) && e820_map[x-1].addr + e820_map[x-1].size == start -+ && e820_map[x-1].type == type) -+ { -+ e820_map[x-1].size += size; -+ estart = e820_map[x-1].addr; -+ esize = e820_map[x-1].size; -+ etype = e820_map[x-1].type; -+ merge++; -+ return; -+ } -+ -+ /* fill up to E820_MAX */ -+ if ( x < E820_MAX ) -+ { -+ e820_map[x].addr = start; -+ e820_map[x].size = size; -+ e820_map[x].type = type; -+ (*e820_nr_map)++; -+ merge=0; -+ return; -+ } -+ -+ /* different type means another region didn't fit */ -+ /* or same type, but there's a hole */ -+ if (etype != type || (estart + esize) != start) -+ { -+ merge = 0; -+ estart = start; -+ esize = size; -+ etype = type; -+ return; -+ } -+ -+ /* same type and no hole, merge it */ -+ estart += esize; -+ esize += size; -+ merge++; -+} -+ -+/* -+ * Make a e820 memory map -+ */ -+void -+e820_map_from_efi_map (struct e820_entry *e820_map, -+ int *e820_nr_map, -+ grub_efi_memory_descriptor_t *memory_map, -+ grub_efi_uintn_t desc_size, -+ grub_efi_uintn_t memory_map_size) -+{ -+ grub_efi_memory_descriptor_t *desc; -+ unsigned long long start = 0; -+ unsigned long long end = 0; -+ unsigned long long size = 0; -+ grub_efi_memory_descriptor_t *memory_map_end; -+ -+ memory_map_end = NEXT_MEMORY_DESCRIPTOR (memory_map, memory_map_size); -+ *e820_nr_map = 0; -+ for (desc = memory_map; -+ desc < memory_map_end; -+ desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size)) -+ { -+ switch (desc->type) -+ { -+ case GRUB_EFI_ACPI_RECLAIM_MEMORY: -+ add_memory_region (e820_map, e820_nr_map, -+ desc->physical_start, desc->num_pages << 12, -+ E820_ACPI); -+ break; -+ case GRUB_EFI_RUNTIME_SERVICES_CODE: -+ case GRUB_EFI_RUNTIME_SERVICES_DATA: -+ case GRUB_EFI_RESERVED_MEMORY_TYPE: -+ case GRUB_EFI_MEMORY_MAPPED_IO: -+ case GRUB_EFI_MEMORY_MAPPED_IO_PORT_SPACE: -+ case GRUB_EFI_UNUSABLE_MEMORY: -+ case GRUB_EFI_PAL_CODE: -+ add_memory_region (e820_map, e820_nr_map, -+ desc->physical_start, desc->num_pages << 12, -+ E820_RESERVED); -+ break; -+ case GRUB_EFI_LOADER_CODE: -+ case GRUB_EFI_LOADER_DATA: -+ case GRUB_EFI_BOOT_SERVICES_CODE: -+ case GRUB_EFI_BOOT_SERVICES_DATA: -+ case GRUB_EFI_CONVENTIONAL_MEMORY: -+ start = desc->physical_start; -+ size = desc->num_pages << 12; -+ end = start + size; -+ if (start < 0x100000ULL && end > 0xA0000ULL) -+ { -+ if (start < 0xA0000ULL) -+ add_memory_region (e820_map, e820_nr_map, -+ start, 0xA0000ULL-start, -+ E820_RAM); -+ if (end <= 0x100000ULL) -+ continue; -+ start = 0x100000ULL; -+ size = end - start; -+ } -+ add_memory_region (e820_map, e820_nr_map, -+ start, size, E820_RAM); -+ break; -+ case GRUB_EFI_ACPI_MEMORY_NVS: -+ add_memory_region (e820_map, e820_nr_map, -+ desc->physical_start, desc->num_pages << 12, -+ E820_NVS); -+ break; -+ } -+ } -+} -+ -+static void -+update_e820_map (struct e820_entry *e820_map, -+ int *e820_nr_map) -+{ -+ grub_efi_uintn_t desc_size; -+ -+ if (grub_efi_get_memory_map (0, &desc_size, 0) < 0) -+ { -+ grub_printf ("cannot get memory map"); -+ return; -+ } -+ -+ e820_map_from_efi_map (e820_map, e820_nr_map, -+ mmap_buf, desc_size, mmap_size); -+} -+ -+/* Simulated memory sizes. */ -+#define EXTENDED_MEMSIZE (3 * 1024 * 1024) /* 3MB */ -+#define CONVENTIONAL_MEMSIZE (640 * 1024) /* 640kB */ -+ -+int -+get_code_end (void) -+{ -+ /* Just return a little area for simulation. */ -+ return BOOTSEC_LOCATION + (60 * 1024); -+} -+ -+/* memory probe routines */ -+int -+get_memsize (int type) -+{ -+ if (! type) -+ return CONVENTIONAL_MEMSIZE >> 10; -+ else -+ return EXTENDED_MEMSIZE >> 10; -+} -+ -+/* get_eisamemsize() : return packed EISA memory map, lower 16 bits is -+ * memory between 1M and 16M in 1K parts, upper 16 bits is -+ * memory above 16M in 64K parts. If error, return -1. -+ */ -+int -+get_eisamemsize (void) -+{ -+ return (EXTENDED_MEMSIZE >> 10); -+} -+ -+static int grub_e820_nr_map; -+static struct e820_entry grub_e820_map[E820_MAX]; -+ -+/* Fetch the next entry in the memory map and return the continuation -+ value. DESC is a pointer to the descriptor buffer, and CONT is the -+ previous continuation value (0 to get the first entry in the -+ map). */ -+int -+get_mmap_entry (struct mmar_desc *desc, int cont) -+{ -+ if (cont < 0 || cont >= grub_e820_nr_map) -+ { -+ /* Should not happen. */ -+ desc->desc_len = 0; -+ } -+ else -+ { -+ struct e820_entry *entry; -+ /* Copy the entry. */ -+ desc->desc_len = MMAR_DESC_LENGTH; -+ entry = &grub_e820_map[cont++]; -+ desc->addr = entry->addr; -+ desc->length = entry->size; -+ desc->type = entry->type; -+ -+ /* If the next entry exists, return the index. */ -+ if (cont < grub_e820_nr_map) -+ return cont; -+ } -+ -+ return 0; -+} -+ -+void -+grub_efi_mm_init (void) -+{ -+ /* First of all, allocate pages to maintain allocations. */ -+ allocated_pages -+ = grub_efi_allocate_pages (0, BYTES_TO_PAGES (ALLOCATED_PAGES_SIZE)); -+ if (! allocated_pages) -+ { -+ grub_printf ("cannot allocate memory"); -+ return; -+ } -+ -+ grub_memset (allocated_pages, 0, ALLOCATED_PAGES_SIZE); -+ -+ update_e820_map (grub_e820_map, &grub_e820_nr_map); -+} -+ -+void -+grub_efi_mm_fini (void) -+{ -+ if (allocated_pages) -+ { -+ unsigned i; -+ -+ for (i = 0; i < MAX_ALLOCATED_PAGES; i++) -+ { -+ struct allocated_page *p; -+ -+ p = allocated_pages + i; -+ if (p->addr != 0) -+ grub_efi_free_pages ((grub_addr_t) p->addr, p->num_pages); -+ } -+ -+ grub_efi_free_pages ((grub_addr_t) allocated_pages, -+ BYTES_TO_PAGES (ALLOCATED_PAGES_SIZE)); -+ } -+} -diff --git a/efi/efinic.c b/efi/efinic.c -new file mode 100644 -index 0000000..e69de29 -diff --git a/efi/efiserial.c b/efi/efiserial.c -new file mode 100644 -index 0000000..32898a9 ---- /dev/null -+++ b/efi/efiserial.c -@@ -0,0 +1,265 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2007 Intel Corp. -+ * -+ * GRUB 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 GRUB; if not, write to the Free Software -+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -+ */ -+ -+#ifdef SUPPORT_SERIAL -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+ -+struct grub_efiserial_data -+{ -+ grub_efi_handle_t handle; -+ grub_efi_serial_io_t *serial_io; -+ struct grub_efiserial_data *next; -+}; -+ -+/* GUIDs. */ -+static grub_efi_guid_t serial_io_guid = GRUB_EFI_SERIAL_IO_GUID; -+ -+static grub_efi_serial_io_t *serial_device = NULL; -+ -+static struct grub_efiserial_data * -+make_devices (void) -+{ -+ grub_efi_uintn_t num_handles; -+ grub_efi_handle_t *handles; -+ grub_efi_handle_t *handle; -+ struct grub_efiserial_data *devices = 0; -+ -+ /* Find handles which support the serial io interface. */ -+ handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL, &serial_io_guid, -+ 0, &num_handles); -+ if (! handles) -+ return 0; -+ -+ /* Make a linked list of devices. */ -+ for (handle = handles; num_handles--; handle++) -+ { -+ struct grub_efiserial_data *s; -+ grub_efi_serial_io_t *sio; -+ -+ sio = grub_efi_open_protocol (*handle, &serial_io_guid, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+ if (! sio) -+ /* This should not happen... Why? */ -+ continue; -+ -+ s = grub_malloc (sizeof (*s)); -+ if (! s) -+ { -+ /* Uggh. */ -+ grub_free (handles); -+ return 0; -+ } -+ -+ s->handle = *handle; -+ s->serial_io = sio; -+ s->next = devices; -+ devices = s; -+ } -+ -+ grub_free (handles); -+ -+ return devices; -+} -+ -+static void -+free_devices (struct grub_efiserial_data *devices) -+{ -+ struct grub_efiserial_data *p, *q; -+ -+ for (p = devices; p; p = q) -+ { -+ q = p->next; -+ grub_free (p); -+ } -+} -+ -+static struct grub_efiserial_data * -+get_device (struct grub_efiserial_data *devices, int num) -+{ -+ struct grub_efiserial_data *s; -+ -+ for (s = devices; s && num; s = s->next, num--) -+ ; -+ -+ if (num == 0) -+ return s; -+ -+ return 0; -+} -+ -+/* Fetch a key from a serial device. */ -+int -+serial_hw_fetch (void) -+{ -+ grub_efi_status_t status; -+ char buf[1]; -+ grub_efi_uintn_t buf_siz = sizeof (buf); -+ grub_efi_uint32_t control; -+ -+ if (! serial_device) -+ return -1; -+ -+ status = Call_Service_2 (serial_device->get_control_bits, serial_device, &control); -+ if (status != GRUB_EFI_SUCCESS) -+ return -1; -+ if (control & GRUB_EFI_SERIAL_INPUT_BUFFER_EMPTY) -+ return -1; -+ status = Call_Service_3 (serial_device->read, serial_device, &buf_siz, buf); -+ if (status != GRUB_EFI_SUCCESS) -+ return -1; -+ -+ return buf[0]; -+} -+ -+/* Put a character to a serial device. */ -+void -+serial_hw_put (int c) -+{ -+ grub_efi_status_t status; -+ char ch = c; -+ grub_efi_uintn_t buf_size = sizeof (ch); -+ -+ if (! serial_device) -+ return; -+ -+ status = Call_Service_3 (serial_device->write, serial_device, &buf_size, &ch); -+} -+ -+void -+serial_hw_delay (void) -+{ -+} -+ -+/* Get the port number of the unit UNIT, the port number is same as -+ serial port unit number in EFI. */ -+unsigned short -+serial_hw_get_port (int unit) -+{ -+ return unit; -+} -+ -+static inline grub_efi_uint8_t -+efi_data_bits_from_8250_LCR (int word_len) -+{ -+ switch (word_len & 0x3) -+ { -+ case 0: -+ return 5; -+ case 1: -+ return 6; -+ case 2: -+ return 7; -+ case 3: -+ return 8; -+ default: -+ return 0; -+ } -+} -+ -+static inline grub_efi_stop_bits_t -+efi_stop_bits_from_8250_LCR (int stop_bit_len) -+{ -+ switch (stop_bit_len & 0x4) -+ { -+ case 0x0: -+ return GRUB_EFI_ONE_STOP_BIT; -+ case 0x4: -+ return GRUB_EFI_TWO_STOP_BITS; -+ default: -+ return GRUB_EFI_DEFAULT_STOP_BITS; -+ } -+} -+ -+static inline grub_efi_parity_t -+efi_parity_from_8250_LCR (int parity_8250) -+{ -+ if (! (parity_8250 & 0x8)) -+ return GRUB_EFI_NO_PARITY; -+ -+ switch (parity_8250 & 0x30) -+ { -+ case 0x00: -+ return GRUB_EFI_ODD_PARITY; -+ case 0x10: -+ return GRUB_EFI_EVEN_PARITY; -+ case 0x20: -+ return GRUB_EFI_MARK_PARITY; -+ case 0x30: -+ return GRUB_EFI_SPACE_PARITY; -+ default: -+ return GRUB_EFI_DEFAULT_PARITY; -+ } -+} -+ -+/* Initialize a serial device. In EFI, PORT is used to assign -+ serial port unit number. */ -+int -+serial_hw_init (unsigned short port, unsigned int speed, -+ int word_len, int parity, int stop_bit_len) -+{ -+ grub_efi_serial_io_t *sio; -+ struct grub_efiserial_data *devices, *s; -+ grub_efi_parity_t efi_parity; -+ grub_efi_stop_bits_t efi_stop_bits; -+ grub_efi_uint8_t efi_data_bits; -+ grub_efi_status_t status; -+ int i; -+ -+ devices = make_devices (); -+ s = get_device (devices, port); -+ if (!s) -+ return 0; -+ sio = s->serial_io; -+ free_devices (devices); -+ -+ efi_data_bits = efi_data_bits_from_8250_LCR (word_len); -+ efi_parity = efi_parity_from_8250_LCR (parity); -+ efi_stop_bits = efi_stop_bits_from_8250_LCR (stop_bit_len); -+ -+ status = Call_Service_1 (sio->reset, sio); -+ if (status != GRUB_EFI_SUCCESS) -+ return 0; -+ -+ status = Call_Service_7 (sio->set_attributes, sio, speed, 0, 0, -+ efi_parity, efi_data_bits, efi_stop_bits); -+ if (status != GRUB_EFI_SUCCESS) -+ return 0; -+ -+ serial_device = sio; -+ /* Get rid of TERM_NEED_INIT from the serial terminal. */ -+ for (i = 0; term_table[i].name; i++) -+ if (grub_strcmp (term_table[i].name, "serial") == 0) -+ { -+ term_table[i].flags &= ~TERM_NEED_INIT; -+ break; -+ } -+ -+ return 1; -+} -+ -+#endif /* SUPPORT_SERIAL */ -diff --git a/efi/efitftp.c b/efi/efitftp.c -new file mode 100644 -index 0000000..ba6918f ---- /dev/null -+++ b/efi/efitftp.c -@@ -0,0 +1,228 @@ -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include "pxe.h" -+ -+struct tftp_info tftp_info = { -+ .LoadedImage = NULL, -+ .Pxe = NULL, -+ .ServerIp = NULL, -+ .BasePath = NULL -+}; -+ -+/* -+ * CLIENT MAC ADDR: 00 15 17 4C E6 74 -+ * CLIENT IP: 10.16.52.158 MASK: 255.255.255.0 DHCP IP: 10.16.52.16 -+ * GATEWAY IP: 10.16.52.254 -+ * -+ * TSize.Running LoadFile() -+ * -+ * TFTP.status: 5 -+ * got to grub_efi_pxe_get_config_path -+ * SiAddr: 10.16.52.16 -+ * BootpHwAddr: 00:15:17:4c:e6:74:00:00:00:00:00:00:00:00:00:00 -+ * BootpSrvName: -+ * BootpBootFile: X86PC/UNDI/pxelinux/bootx64.efi -+ */ -+ -+static grub_efi_status_t tftp_get_file_size_defective_buffer_fallback( -+ char *Filename, -+ grub_efi_uintn_t *Size) -+{ -+ EFI_PXE_BASE_CODE_TFTP_OPCODE OpCode = EFI_PXE_BASE_CODE_TFTP_READ_FILE; -+ char *Buffer = NULL; -+ grub_efi_boolean_t Overwrite = 0; -+ grub_efi_boolean_t DontUseBuffer = 0; -+ grub_efi_uint64_t BufferSize = 4096; -+ grub_efi_uintn_t BlockSize = 512; -+ grub_efi_status_t rc = GRUB_EFI_BUFFER_TOO_SMALL; -+ char *FullPath = NULL; -+ -+ while (rc == GRUB_EFI_BUFFER_TOO_SMALL) { -+ char *NewBuffer; -+ -+ if (Buffer) { -+ grub_free(Buffer); -+ Buffer = NULL; -+ } -+ BufferSize *= 2; -+ NewBuffer = grub_malloc(BufferSize); -+ if (!NewBuffer) -+ return GRUB_EFI_OUT_OF_RESOURCES; -+ Buffer = NewBuffer; -+ -+ if (tftp_info.BasePath) { -+ int PathSize = 0; -+ PathSize = strlen(tftp_info.BasePath) + 2 + -+ strlen(Filename); -+ FullPath = grub_malloc(PathSize); -+ grub_sprintf(FullPath, "%s/%s", tftp_info.BasePath, -+ Filename); -+ } else { -+ FullPath = grub_malloc(strlen(Filename)); -+ strcpy(FullPath, Filename); -+ } -+ -+ rc = Call_Service_10(tftp_info.Pxe->Mtftp, tftp_info.Pxe, -+ OpCode, Buffer, Overwrite, &BufferSize, &BlockSize, -+ tftp_info.ServerIp, FullPath, NULL, DontUseBuffer); -+ if (rc == GRUB_EFI_SUCCESS || rc == GRUB_EFI_BUFFER_TOO_SMALL) -+ *Size = BufferSize; -+ } -+ grub_free(FullPath); -+ grub_free(Buffer); -+ return rc; -+} -+ -+grub_efi_status_t tftp_get_file_size( -+ char *Filename, -+ grub_efi_uintn_t *Size) -+{ -+ EFI_PXE_BASE_CODE_TFTP_OPCODE OpCode = EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE; -+ char Buffer[8192]; -+ grub_efi_boolean_t Overwrite = 0; -+ grub_efi_boolean_t DontUseBuffer = 0; -+ grub_efi_uint64_t BufferSize = 8192; -+ grub_efi_uintn_t BlockSize = 512; -+ grub_efi_status_t rc; -+ char *FullPath = NULL; -+ -+ if (tftp_info.BasePath) { -+ int PathSize = 0; -+ PathSize = strlen(tftp_info.BasePath) + 2 + strlen(Filename); -+ FullPath = grub_malloc(PathSize); -+ grub_sprintf(FullPath, "%s/%s", tftp_info.BasePath, Filename); -+ } else { -+ FullPath = grub_malloc(strlen(Filename)); -+ strcpy(FullPath, Filename); -+ } -+ -+ rc = Call_Service_10(tftp_info.Pxe->Mtftp, tftp_info.Pxe, OpCode, -+ Buffer, Overwrite, &BufferSize, &BlockSize, tftp_info.ServerIp, -+ FullPath, NULL, DontUseBuffer); -+ if (rc == GRUB_EFI_BUFFER_TOO_SMALL) -+ rc = tftp_get_file_size_defective_buffer_fallback(Filename, Size); -+ if (rc == GRUB_EFI_SUCCESS) -+ *Size = BufferSize; -+ grub_free(FullPath); -+ return rc; -+} -+ -+static grub_efi_status_t tftp_read_file( -+ char *Filename, -+ char *Buffer, -+ grub_efi_uint64_t BufferSize) -+{ -+ EFI_PXE_BASE_CODE_TFTP_OPCODE OpCode = EFI_PXE_BASE_CODE_TFTP_READ_FILE; -+ grub_efi_boolean_t Overwrite = 0; -+ grub_efi_boolean_t DontUseBuffer = 0; -+ grub_efi_uintn_t BlockSize = 512; -+ grub_efi_status_t rc; -+ char *FullPath = NULL; -+ -+ if (tftp_info.BasePath) { -+ int PathSize = 0; -+ PathSize = strlen(tftp_info.BasePath) + 2 + strlen(Filename); -+ FullPath = grub_malloc(PathSize); -+ grub_sprintf(FullPath, "%s/%s", tftp_info.BasePath, Filename); -+ } else { -+ FullPath = grub_malloc(strlen(Filename)); -+ strcpy(FullPath, Filename); -+ } -+ -+ rc = Call_Service_10(tftp_info.Pxe->Mtftp, tftp_info.Pxe, OpCode, -+ Buffer, Overwrite, &BufferSize, &BlockSize, tftp_info.ServerIp, -+ FullPath, NULL, DontUseBuffer); -+ grub_free(FullPath); -+ return rc; -+} -+ -+int -+efi_tftp_mount (void) -+{ -+ if (current_drive != NETWORK_DRIVE) { -+ return 0; -+ } -+ return 1; -+} -+ -+int -+efi_tftp_read (char *addr, int size) -+{ -+ int rc; -+ -+ if (tftp_info.LastPath == NULL) { -+ grub_printf(" = 0 (no path known)\n"); -+ return 0; -+ } -+ if (tftp_info.Buffer == NULL) { -+ grub_printf(" = 0 (no file open)\n"); -+ return 0; -+ } -+ if (filemax == -1) { -+ grub_printf(" = 0 (file not found)\n"); -+ return 0; -+ } -+ if (filepos == 0) { -+ rc = tftp_read_file(tftp_info.LastPath, tftp_info.Buffer, -+ filemax); -+ } -+ -+ grub_memmove(addr, tftp_info.Buffer+filepos, size); -+ filepos += size; -+ -+ return size; -+} -+ -+int -+efi_tftp_dir (char *dirname) -+{ -+ int rc; -+ int ch; -+ grub_efi_uintn_t size; -+ int len; -+ char *name; -+ -+ ch = nul_terminate(dirname); -+ len = strlen(dirname); -+ -+ name = grub_malloc(len + 1); -+ grub_memmove(name, dirname, len); -+ name[len] = '\0'; -+ dirname[len] = ch; -+ -+#if 0 -+ if (print_possibilities) -+ return 1; -+#endif -+ -+ filemax = -1; -+ -+ rc = tftp_get_file_size(name, &size); -+ if (rc == GRUB_EFI_SUCCESS) { -+ tftp_info.LastPath = grub_malloc(strlen(name) + 1); -+ sprintf(tftp_info.LastPath, "%s", name); -+ filemax = size; -+ filepos = 0; -+ -+ tftp_info.Buffer = grub_malloc(filemax); -+ -+ return 1; -+ } -+ return 0; -+} -+ -+void -+efi_tftp_close (void) -+{ -+ filepos = 0; -+ filemax = -1; -+ grub_free(tftp_info.LastPath); -+ tftp_info.LastPath = NULL; -+ grub_free(tftp_info.Buffer); -+ tftp_info.Buffer = NULL; -+} -diff --git a/efi/efiuga.c b/efi/efiuga.c -new file mode 100644 -index 0000000..b27500b ---- /dev/null -+++ b/efi/efiuga.c -@@ -0,0 +1,982 @@ -+/* efiuga.c - "univeral graphics adapter" support for GRUB/EFI */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright 2007 Red Hat, Inc. -+ * Copyright (C) 2007 Intel Corp. -+ * Copyright (C) 2001,2002 Red Hat, Inc. -+ * Portions copyright (C) 2000 Conectiva, 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. -+ */ -+ -+#ifdef SUPPORT_GRAPHICS -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+ -+#include "graphics.h" -+#include "xpm.h" -+ -+static grub_efi_guid_t draw_guid = GRUB_EFI_UGA_DRAW_GUID; -+static grub_efi_guid_t pci_io_guid = GRUB_EFI_PCI_IO_GUID; -+ -+#if 0 -+#define UGA -+#include "ugadebug.h" -+#endif -+ -+#ifndef MIN -+#define MIN(x,y) ( ((x) < (y)) ? (x) : (y)) -+#endif -+#ifndef MAX -+#define MAX(x,y) ( ((x) < (y)) ? (y) : (x)) -+#endif -+ -+#define pixel_equal(x,y) ((x).red == (y).red && \ -+ (x).green == (y).green && \ -+ (x).blue == (y).blue) -+ -+struct video_mode { -+ grub_efi_uint32_t horizontal_resolution; -+ grub_efi_uint32_t vertical_resolution; -+ grub_efi_uint32_t color_depth; -+ grub_efi_uint32_t refresh_rate; -+}; -+ -+static void -+xpnd_6_to_8(grub_efi_uga_pixel_t *pixel) -+{ -+ if (!((pixel->red | pixel->green | pixel->blue) & 0xc0)) { -+ pixel->red <<= 2; -+ pixel->red |= ((pixel->red & 0xc0) >> 6); -+ pixel->red &= 0xff; -+ pixel->green <<= 2; -+ pixel->green |= ((pixel->green & 0xc0) >> 6); -+ pixel->green &= 0xff; -+ pixel->blue <<= 2; -+ pixel->blue |= ((pixel->blue & 0xc0) >> 6); -+ pixel->blue &= 0xff; -+ } -+} -+ -+ -+ -+#define MAX_PALETTE 16 -+struct uga { -+ grub_efi_uga_draw_t *draw_intf; -+ struct video_mode graphics_mode; -+ struct video_mode text_mode; -+ enum { TEXT, GRAPHICS } current_mode; -+ -+ position_t screen_size; -+ position_t screen_pos; -+ -+ struct bltbuf *background; -+ -+ grub_efi_uga_pixel_t palette[MAX_PALETTE + 1]; -+}; -+ -+#define RGB(r,g,b) { .red = r, .green = g, .blue = b } -+ -+static grub_efi_uga_pixel_t cga_colors[] = { -+ RGB(0x00,0x00,0x00), // 0 Black -+ RGB(0x7f,0x00,0x00), // 1 Dark Red -+ RGB(0x00,0x7f,0x00), // 2 Dark Green -+ RGB(0x7f,0x7f,0x00), // 3 Dark Yellow -+ RGB(0x00,0x00,0x7f), // 4 Dark Blue -+ RGB(0x7f,0x00,0x7f), // 5 Dark Magenta -+ RGB(0x00,0x7f,0x7f), // 6 Dark Cyan -+ RGB(0xc0,0xc0,0xc0), // 7 Light Grey -+ RGB(0x7f,0x7f,0x7f), // 8 Dark Grey -+ RGB(0xff,0x00,0x00), // 9 Red -+ RGB(0x00,0xff,0x00), // 10 Green -+ RGB(0xff,0xff,0x00), // 11 Yellow -+ RGB(0x00,0x00,0xff), // 12 Blue -+ RGB(0xff,0x00,0xff), // 13 Magenta -+ RGB(0x00,0xff,0xff), // 14 Cyan -+ RGB(0xff,0xff,0xff), // 15 White -+ RGB(0xff,0xff,0xff), // 16 Also white ;) -+}; -+ -+static const int n_cga_colors = sizeof (cga_colors) / sizeof (cga_colors[0]); -+ -+static void -+set_kernel_params(struct graphics_backend *backend, -+ struct linux_kernel_params *params) -+{ -+ struct uga *uga; -+ -+ if (!backend || !backend->priv) -+ return; -+ -+ uga = backend->priv; -+ -+ params->lfb_width = uga->graphics_mode.horizontal_resolution; -+ params->lfb_height = uga->graphics_mode.vertical_resolution; -+ params->lfb_depth = 32; -+ params->red_mask_size = 8; -+ params->red_field_pos = 16; -+ params->green_mask_size = 8; -+ params->green_field_pos = 8; -+ params->blue_mask_size = 8; -+ params->blue_field_pos = 0; -+ params->reserved_mask_size = 8; -+ params->reserved_field_pos = 24; -+ params->have_vga = VIDEO_TYPE_EFI; -+} -+ -+static void -+pixel_to_rgb(grub_efi_uga_pixel_t *pixel, int *red, int *green, int *blue) -+{ -+ *red = pixel->red; -+ *green = pixel->green; -+ *blue = pixel->blue; -+} -+ -+static void -+rgb_to_pixel(int red, int green, int blue, grub_efi_uga_pixel_t *pixel) -+{ -+ pixel->red = red; -+ pixel->green = green; -+ pixel->blue = blue; -+} -+ -+static void -+position_to_phys(struct uga *uga, position_t *virt, position_t *phys) -+{ -+ phys->x = virt->x + uga->screen_pos.x; -+ phys->y = virt->y + uga->screen_pos.y; -+} -+ -+static int -+abs_paddr(struct uga *uga, position_t *virt) -+{ -+ position_t phys; -+ position_to_phys(uga, virt, &phys); -+ return phys.x + phys.y * uga->screen_size.x; -+} -+ -+struct bltbuf { -+ grub_efi_uintn_t width; -+ grub_efi_uintn_t height; -+ grub_efi_uga_pixel_t pixbuf[]; -+}; -+ -+static struct bltbuf *alloc_bltbuf(grub_efi_uintn_t width, -+ grub_efi_uintn_t height) -+{ -+ struct bltbuf *buf = NULL; -+ grub_efi_uintn_t pixbuf_size = width * height * -+ sizeof (grub_efi_uga_pixel_t); -+ -+ if (!(buf = grub_malloc(sizeof(buf->width) + sizeof(buf->height) + -+ pixbuf_size))) -+ return NULL; -+ -+ buf->width = width; -+ buf->height = height; -+ grub_memset(buf->pixbuf, '\0', pixbuf_size); -+ return buf; -+} -+ -+static void -+blt_to_screen(struct uga *uga, struct bltbuf *bltbuf) -+{ -+ position_t addr = {0, 0}; -+ -+ position_to_phys(uga, &addr, &addr); -+ -+ Call_Service_10(uga->draw_intf->blt, uga->draw_intf, bltbuf->pixbuf, -+ EfiUgaBltBufferToVideo, -+ 0, 0, -+ addr.x, addr.y, -+ bltbuf->width, bltbuf->height, -+ 0); -+} -+ -+static void -+blt_pos_to_screen_pos(struct uga *uga, struct bltbuf *bltbuf, -+ position_t *bltpos, position_t *bltsz, position_t *pos) -+{ -+ position_t phys; -+ -+ position_to_phys(uga, pos, &phys); -+ -+ Call_Service_10(uga->draw_intf->blt, uga->draw_intf, bltbuf->pixbuf, -+ EfiUgaBltBufferToVideo, -+ bltpos->x, bltpos->y, -+ phys.x, phys.y, -+ bltsz->x, bltsz->y, -+ 0); -+} -+ -+static void -+blt_to_screen_pos(struct uga *uga, struct bltbuf *bltbuf, position_t *pos) -+{ -+ position_t bltpos = {0, 0}; -+ position_t bltsz = { bltbuf->width, bltbuf->height }; -+ blt_pos_to_screen_pos(uga, bltbuf, &bltpos, &bltsz, pos); -+} -+ -+static int -+blt_from_screen_pos(struct uga *uga, struct bltbuf **retbuf, -+ position_t *pos, position_t *size) -+{ -+ struct bltbuf *bltbuf = NULL; -+ position_t phys; -+ -+ if (!retbuf) -+ return 0; -+ -+ if (*retbuf) -+ grub_free(*retbuf); -+ -+ bltbuf = alloc_bltbuf(size->x, size->y); -+ if (!bltbuf) -+ return 0; -+ -+ position_to_phys(uga, pos, &phys); -+ -+ Call_Service_10(uga->draw_intf->blt, uga->draw_intf, bltbuf->pixbuf, -+ EfiUgaVideoToBltBuffer, -+ phys.x, phys.y, -+ 0, 0, -+ size->x, size->y, 0); -+ *retbuf = bltbuf; -+ return 1; -+} -+ -+static int -+save_video_mode(struct uga *uga, struct video_mode *mode) -+{ -+ grub_efi_status_t status; -+ -+ status = Call_Service_5(uga->draw_intf->get_mode, uga->draw_intf, -+ &mode->horizontal_resolution, &mode->vertical_resolution, -+ &mode->color_depth, &mode->refresh_rate); -+ return status == GRUB_EFI_SUCCESS; -+} -+ -+static grub_efi_status_t -+set_video_mode(struct uga *uga, struct video_mode *mode) -+{ -+ grub_efi_status_t status; -+ -+ status = Call_Service_5(uga->draw_intf->set_mode, uga->draw_intf, -+ mode->horizontal_resolution, -+ mode->vertical_resolution, -+ mode->color_depth, -+ mode->refresh_rate); -+ return status; -+} -+ -+static int -+cmp_video_modes(struct video_mode *vm0, struct video_mode *vm1) -+{ -+ if (vm0->horizontal_resolution == vm1->horizontal_resolution && -+ vm0->vertical_resolution == vm1->vertical_resolution) -+ return 0; -+ if (vm0->horizontal_resolution >= vm1->horizontal_resolution && -+ vm0->vertical_resolution >= vm1->vertical_resolution) -+ return 1; -+ return -1; -+} -+ -+static int -+blt_from_screen(struct uga *uga, struct bltbuf **retbuf) -+{ -+ struct bltbuf *bltbuf = NULL; -+ position_t pos = {0 ,0}; -+ position_t size = { -+ .x = uga->graphics_mode.horizontal_resolution, -+ .y = uga->graphics_mode.vertical_resolution -+ }; -+ -+ return blt_from_screen_pos(uga, retbuf, &pos, &size); -+} -+ -+static void -+bltbuf_set_pixel(struct bltbuf *bltbuf, position_t *pos, -+ grub_efi_uga_pixel_t *pixel) -+{ -+ if (pos->x < 0 || pos->x >= bltbuf->width) -+ return; -+ if (pos->x < 0 || pos->y >= bltbuf->height) -+ return; -+ grub_memmove(&bltbuf->pixbuf[pos->x + pos->y * bltbuf->width], pixel, -+ sizeof *pixel); -+} -+ -+static void -+bltbuf_get_pixel(struct bltbuf *bltbuf, position_t *pos, -+ grub_efi_uga_pixel_t *pixel) -+{ -+ if (bltbuf && pos->x < bltbuf->width && pos->y < bltbuf->height) { -+ grub_memmove(pixel, &bltbuf->pixbuf[pos->x + pos->y * bltbuf->width], -+ sizeof *pixel); -+ } else { -+ pixel->red = 0x00; -+ pixel->green = 0x00; -+ pixel->blue = 0x00; -+ } -+} -+ -+static void -+bltbuf_set_pixel_rgb(struct bltbuf *bltbuf, position_t *pos, -+ int red, int green, int blue) -+{ -+ grub_efi_uga_pixel_t pixel; -+ rgb_to_pixel(red, green, blue, &pixel); -+ bltbuf_set_pixel(bltbuf, pos, &pixel); -+} -+ -+static void -+bltbuf_set_pixel_idx(struct uga *uga, struct bltbuf *bltbuf, -+ position_t *pos, int idx) -+{ -+ bltbuf_set_pixel(bltbuf, pos, &uga->palette[idx]); -+} -+ -+static void -+bltbuf_get_pixel_idx(struct bltbuf *bltbuf, position_t *pos, int *idx) -+{ -+ grub_efi_uga_pixel_t pixel; -+ -+ rgb_to_pixel(0, 0, 0, &pixel); -+ bltbuf_get_pixel(bltbuf, pos, &pixel); -+ for (*idx = 0; *idx < 16; (*idx)++) { -+ if (pixel_equal(cga_colors[*idx], pixel)) -+ break; -+ } -+} -+ -+static struct bltbuf * -+xpm_to_bltbuf(struct xpm *xpm) -+{ -+ struct bltbuf *bltbuf = NULL; -+ position_t pos; -+ -+ if (!(bltbuf = alloc_bltbuf(xpm->width, xpm->height))) -+ return NULL; -+ -+ for (pos.y = 0; pos.y < xpm->height; pos.y++) { -+ for (pos.x = 0; pos.x < xpm->width; pos.x++) { -+ xpm_pixel_t xpl; -+ unsigned char idx; -+ -+ idx = xpm_get_pixel_idx(xpm, pos.x, pos.y); -+ xpm_get_idx(xpm, idx, &xpl); -+ -+ bltbuf_set_pixel_rgb(bltbuf, &pos, xpl.red, xpl.green, xpl.blue); -+ } -+ } -+ -+ return bltbuf; -+} -+ -+static void -+cursor(struct graphics_backend *backend, int set) -+{ -+ struct uga *uga; -+ int ch, invert; -+ unsigned short *text; -+ position_t fpos, screensz; -+ int offset; -+ -+ uga = backend->priv; -+ -+ if (set && !graphics_get_scroll()) -+ return; -+ -+ text = graphics_get_text_buf(); -+ graphics_get_font_position(&fpos); -+ graphics_get_screen_rowscols(&screensz); -+ -+ offset = fpos.y * screensz.x + fpos.x; -+ -+ if (set) -+ text[offset] |= 0x200; -+ -+ graphics_clbl(fpos.x, fpos.y, 1, 1, 1); -+ -+ if (set) -+ text[offset] &= 0xfdff; -+} -+ -+static void blank(struct graphics_backend *backend); -+ -+static void -+reset_screen_geometry(struct graphics_backend *backend) -+{ -+ struct uga *uga = backend->priv; -+ struct xpm *xpm = graphics_get_splash_xpm(); -+ position_t screensz = { .x = 640, .y = 480 }; -+ -+ if (xpm) { -+ screensz.x = xpm->width; -+ screensz.y = xpm->height; -+ } -+ -+ uga->screen_pos.x = -+ (uga->graphics_mode.horizontal_resolution - screensz.x) / 2; -+ uga->screen_pos.y = -+ (uga->graphics_mode.vertical_resolution - screensz.y) / 2; -+ -+ blank(backend); -+ graphics_get_screen_rowscols(&screensz); -+ graphics_clbl(0, 0, screensz.x, screensz.y, 0); -+ graphics_clbl(0, 0, screensz.x, screensz.y, 1); -+} -+ -+static void -+get_screen_size(struct graphics_backend *backend, position_t *size) -+{ -+ struct uga *uga = backend->priv; -+ size->x = uga->graphics_mode.horizontal_resolution; -+ size->y = uga->graphics_mode.vertical_resolution; -+} -+ -+static void -+setxy(struct graphics_backend *backend, position_t *pos) -+{ -+ position_t fpos; -+ -+ fpos.x = pos->x; -+ fpos.y = pos->y; -+ graphics_set_font_position(&fpos); -+} -+ -+static void -+uga_getxy(struct graphics_backend *backend, position_t *pos) -+{ -+ graphics_get_font_position(pos); -+} -+ -+static void -+draw_pixel(struct graphics_backend *backend, position_t *pos, pixel_t *pixel) -+{ -+ struct bltbuf *bltbuf = NULL; -+ grub_efi_uga_pixel_t *eup = (grub_efi_uga_pixel_t *)pixel; -+ -+ bltbuf = alloc_bltbuf(1,1); -+ if (!bltbuf) -+ return; -+ -+ grub_memmove(&bltbuf->pixbuf[0], eup, sizeof (*eup)); -+ -+ blt_to_screen_pos(backend->priv, bltbuf, pos); -+ -+ grub_free(bltbuf); -+} -+ -+static pixel_t * -+get_pixel_idx(struct graphics_backend *backend, int idx) -+{ -+ static grub_efi_uga_pixel_t pixel; -+ struct uga *uga = backend->priv; -+ if (idx < 0 || idx > MAX_PALETTE) -+ return NULL; -+ pixel.red = uga->palette[idx].red; -+ pixel.green = uga->palette[idx].green; -+ pixel.blue = uga->palette[idx].blue; -+ return (pixel_t *)&pixel; -+} -+ -+static pixel_t * -+get_pixel_rgb(struct graphics_backend *backend, int red, int green, int blue) -+{ -+ static grub_efi_uga_pixel_t pixel; -+ rgb_to_pixel(red, green, blue, &pixel); -+ return &pixel; -+} -+ -+static void -+set_palette(struct graphics_backend *backend, int idx, -+ int red, int green, int blue) -+{ -+ grub_efi_uga_pixel_t pixel; -+ struct uga *uga = backend->priv; -+ -+ if (idx > MAX_PALETTE) -+ return; -+ rgb_to_pixel(red, green, blue, &pixel); -+ grub_memmove(&uga->palette[idx], &pixel, sizeof pixel); -+} -+ -+static void -+blank(struct graphics_backend *backend) -+{ -+ struct uga *uga = backend->priv; -+ struct bltbuf *bltbuf; -+ position_t pos = {0, 0}; -+ grub_efi_uintn_t x, y, i, j; -+ unsigned char r = 0 ,g = 0; -+ -+ x = uga->graphics_mode.horizontal_resolution; -+ y = uga->graphics_mode.vertical_resolution; -+ -+ if (x == 0 || y == 0) -+ return; -+ -+ bltbuf = alloc_bltbuf(x, y); -+ for (j = 0; j < y; j++) { -+ if (debug_graphics && j % 16 == 0) { -+ g = g == 0 ? 7 : 0; -+ r = g == 0 ? 7 : 0; -+ } -+ for (i = 0; i < x; i++) { -+ if (debug_graphics && i % 16 == 0) { -+ g = g == 0 ? 7 : 0; -+ r = g == 0 ? 7 : 0; -+ } -+ pos.x = i; -+ pos.y = j; -+ bltbuf_set_pixel_rgb(bltbuf, &pos, r * 16, g * 16, 0x0); -+ } -+ } -+ -+ Call_Service_10(uga->draw_intf->blt, uga->draw_intf, bltbuf->pixbuf, -+ EfiUgaBltBufferToVideo, 0, 0, 0, 0, x, y, 0); -+ -+ grub_free(bltbuf); -+} -+ -+static void -+bltbuf_cp_bl(struct bltbuf *d, position_t dpos, -+ struct bltbuf *s, position_t spos) -+{ -+ grub_efi_uga_pixel_t *dp, *sp; -+ -+ const int xavail = MAX(0, s ? s->width - spos.x : 0); -+ const int xtotal = MAX(0, d->width - dpos.x); -+ const int xcp = MAX(0, MIN(xtotal, xavail)); -+ const int xcl = MAX(0, xtotal - xcp); -+ -+ const int yavail = MAX(0, s ? s->height - spos.y : 0); -+ const int ytotal = MAX(0, d->height - dpos.y); -+ const int ycp = MAX(0, MIN(ytotal, yavail)); -+ const int ycl = MAX(0, ytotal - ycp); -+ -+ int y, x; -+ -+ for (y = 0; y < ytotal; y++) { -+ dp = &d->pixbuf[(dpos.y + y) * d->width + dpos.x]; -+ -+ if (y < yavail) { -+ sp = &s->pixbuf[(spos.y + y) * s->width + spos.x]; -+ memmove(dp, sp, xcp * sizeof (*dp)); -+ dp = &d->pixbuf[(dpos.y + y) * d->width + dpos.x + xcp]; -+ memset(dp, '\0', xcl * sizeof (*dp)); -+ } else { -+ memset(dp, '\0', xtotal * sizeof (*dp)); -+ } -+ } -+} -+ -+/* copy a region the size of bltbuf from the background into bltbuf, -+ * starting at offset bgpos -+ */ -+static void -+bltbuf_draw_bg(struct graphics_backend *backend, struct bltbuf *bltbuf, -+ position_t bgpos) -+{ -+ struct uga *uga = backend->priv; -+ position_t blpos = { 0, 0 }; -+ -+ bltbuf_cp_bl(bltbuf, blpos, uga->background, bgpos); -+} -+ -+static void -+dbg_dump_palette(struct graphics_backend *backend) -+{ -+ struct uga *uga; -+ int i; -+ if (!backend || !backend->priv) -+ return; -+ uga = backend->priv; -+ if (!uga->palette) -+ return; -+} -+ -+static int -+is_shadow_pixel(position_t screensz, position_t textpos, position_t bitpos, -+ position_t fontsz) -+{ -+ unsigned short *text = graphics_get_text_buf(); -+ const unsigned char *glyph; -+ position_t glyphpos = { textpos.x, textpos.y }; -+ position_t glyphbit = { bitpos.x, bitpos.y }; -+ unsigned short ch; -+ -+ if (glyphbit.x == 0) { -+ glyphbit.x = fontsz.x; -+ glyphpos.x--; -+ } -+ if (glyphbit.y == 0) { -+ glyphbit.y = fontsz.y; -+ glyphpos.y--; -+ } -+ glyphbit.x--; -+ glyphbit.y--; -+ -+ if (glyphpos.x < 0 || glyphpos.y < 0) -+ return 0; -+ -+ ch = text[glyphpos.y * screensz.x + glyphpos.x] & 0xff; -+ glyph = font8x16 + (ch << 4); -+ return glyph[glyphbit.y] & (1 << ((fontsz.x-1) - glyphbit.x)); -+} -+ -+static void -+bltbuf_draw_character(struct graphics_backend *backend, -+ struct bltbuf *bltbuf, /* the bltbuf to draw into */ -+ position_t target, /* the position in the bltbuf to draw to */ -+ position_t fontsz, /* the size of the font, in pixels */ -+ position_t charpos, /* the position of the character in the text -+ screen buffer */ -+ position_t screensz, /* the size of the screen in characters */ -+ unsigned short ch /* the character to draw, plus flags */ -+ ) -+{ -+ struct uga *uga = backend->priv; -+ position_t blpos; -+ position_t glyphpos; -+ -+ blpos.y = target.y; -+ for (glyphpos.y = 0; glyphpos.y < fontsz.y; glyphpos.y++, blpos.y++) { -+ blpos.x = target.x; -+ for (glyphpos.x = 0; glyphpos.x < fontsz.x; glyphpos.x++, blpos.x++) { -+ int invert = (ch & 0x0100) != 0; -+ int set = (ch & 0x0200) != 0; -+ const unsigned char *glyph = font8x16 + ((ch & 0xff) << 4); -+ int bit = glyph[glyphpos.y] & (1 << ((fontsz.x-1) - glyphpos.x)); -+ int idx = -1; -+ -+ if (!set) { -+ if (invert) -+ idx = bit ? 0 : 15; -+ else if (bit) -+ idx = 15; -+ -+ if (idx == -1) { -+ if (is_shadow_pixel(screensz, charpos, glyphpos, fontsz) || -+ !uga->background) -+ idx = invert ? 15 : 0; -+ } -+ } else { -+ idx = bit ? 0 : 15; -+ } -+ -+ if (idx != -1) -+ bltbuf_set_pixel_idx(uga, bltbuf, &blpos, idx); -+ } -+ } -+} -+ -+static void -+bltbuf_draw_text(struct graphics_backend *backend, -+ struct bltbuf *bltbuf, /* the buffer to draw into */ -+ position_t screensz, /* the size of the screen in characters */ -+ position_t fontsz, /* the size of the font in pixels */ -+ position_t txtpos, /* the position of the text on the screen -+ (in characters) */ -+ position_t txtsz /* the size of the block to fill in -+ (in characters) */ -+ ) -+{ -+ struct uga *uga = backend->priv; -+ unsigned short *text = graphics_get_text_buf(); -+ position_t charpos; -+ -+ for (charpos.y = txtpos.y; charpos.y < txtpos.y + txtsz.y; charpos.y++) { -+ for (charpos.x = txtpos.x; charpos.x < txtpos.x + txtsz.x; charpos.x++){ -+ int offset = charpos.y * screensz.x + charpos.x; -+ position_t blpos = { (charpos.x-txtpos.x)*fontsz.x, -+ (charpos.y-txtpos.y)*fontsz.y }; -+ -+ bltbuf_draw_character(backend, bltbuf, blpos, fontsz, charpos, -+ screensz, text[offset]); -+ } -+ } -+} -+ -+static void -+clbl(struct graphics_backend *backend, int col, int row, int width, int height, -+ int draw_text) -+{ -+ struct uga *uga = backend->priv; -+ struct xpm *xpm; -+ -+ struct bltbuf *bltbuf; -+ position_t fontsz, blpos, blsz, screensz; -+ unsigned short *text; -+ -+// blank(backend); -+// -+ xpm = graphics_get_splash_xpm(); -+ if (xpm && !uga->background) -+ uga->background = xpm_to_bltbuf(xpm); -+ -+ graphics_get_screen_rowscols(&screensz); -+ width = MIN(width, screensz.x - col); -+ height = MIN(height, screensz.y - row); -+ graphics_get_font_size(&fontsz); -+ -+ blsz.x = width * fontsz.x; -+ blsz.y = height * fontsz.y; -+ -+ bltbuf = alloc_bltbuf(blsz.x, blsz.y); -+ if (!bltbuf) -+ return; -+ -+ blsz.x = col * fontsz.x; -+ blsz.y = row * fontsz.y; -+ -+ text = graphics_get_text_buf(); -+ bltbuf_draw_bg(backend, bltbuf, blsz); -+ -+ if (draw_text) { -+ blsz.x = width; -+ blsz.y = height; -+ blpos.x = col; -+ blpos.y = row; -+ -+ bltbuf_draw_text(backend, bltbuf, screensz, fontsz, blpos, blsz); -+ } -+ -+ blpos.x = col * fontsz.x; -+ blpos.y = row * fontsz.y; -+ -+ blt_to_screen_pos(uga, bltbuf, &blpos); -+} -+ -+static void -+setup_cga_palette(void) -+{ -+/* -+ * Nov 27 15:53:19 ping? -+ * Nov 27 15:54:13 pong? -+ * Nov 27 15:54:16 say I've got a color channel in 6 bits, and it's -+ * stored in an 8-bit value. let's call it white. -+ * now let's say I've got hardware with 8 bits per -+ * channel that I'm blitting to. What's the right -+ * way to expand 0x3f to 0xff? -+ * Nov 27 15:55:17 (my naive idea, which I haven't tried yet, is -+ * "x <<= 2; if (x) x |= 3;") -+ * Nov 27 15:55:35 no. -+ * Nov 27 15:55:43 yeah, figured I'd ask instead of doing that. -+ * Nov 27 15:56:15 x <<= 2; x |= ((x & 0xc0) >> 6); -+ */ -+ int i; -+ for (i = 0; i < n_cga_colors; i++) { -+ grub_efi_uga_pixel_t *pixel = &cga_colors[i]; -+ -+ if ((pixel->red | pixel->green | pixel->blue) & 0xc0) -+ continue; -+ pixel->red <<= 2; -+ pixel->red |= ((pixel->red & 0xc0) >> 6); -+ pixel->red &= 0xff; -+ pixel->green <<= 2; -+ pixel->green |= ((pixel->green & 0xc0) >> 6); -+ pixel->green &= 0xff; -+ pixel->blue <<= 2; -+ pixel->blue |= ((pixel->blue & 0xc0) >> 6); -+ pixel->blue &= 0xff; -+ } -+} -+ -+static int -+try_enable(struct graphics_backend *backend) -+{ -+ struct uga *uga = backend->priv; -+ struct video_mode modes[] = { -+ { 1440, 900, 32, 60 }, -+ { 640, 480, 32, 60 }, -+ { 800, 600, 32, 60 }, -+ { 640, 480, 16, 60 }, -+ { 800, 600, 16, 60 }, -+ { 640, 480, 8, 60 }, -+ { 800, 600, 8, 60 } -+ }; -+ struct video_mode mode; -+ position_t font_size; -+ int i; -+ -+ if (uga->text_mode.horizontal_resolution == 0) { -+ grub_efi_set_text_mode(1); -+ save_video_mode(uga, &uga->text_mode); -+ } -+ -+ if (uga->graphics_mode.horizontal_resolution == 0) { -+ grub_efi_set_text_mode(0); -+ save_video_mode(uga, &uga->graphics_mode); -+ -+ if (cmp_video_modes(&uga->graphics_mode, &modes[0]) >= 0) { -+ uga->current_mode = GRAPHICS; -+ graphics_alloc_text_buf(); -+ return 1; -+ } -+ for (i = 0; i < sizeof (modes) / sizeof (modes[0]); i++) { -+ set_video_mode(uga, &modes[i]); -+ save_video_mode(uga, &mode); -+ if (!cmp_video_modes(&modes[i], &mode)) { -+ grub_memmove(&uga->graphics_mode, &mode, sizeof (mode)); -+ uga->current_mode = GRAPHICS; -+ graphics_alloc_text_buf(); -+ return 1; -+ } -+ } -+ set_video_mode(uga, &uga->graphics_mode); -+ save_video_mode(uga, &mode); -+ if (!cmp_video_modes(&uga->graphics_mode, &mode)) { -+ uga->current_mode = GRAPHICS; -+ graphics_alloc_text_buf(); -+ return 1; -+ } -+ grub_efi_set_text_mode(1); -+ return 0; -+ } -+ set_video_mode(uga, &uga->graphics_mode); -+ -+ uga->current_mode = GRAPHICS; -+ return 1; -+} -+ -+static int -+enable(struct graphics_backend *backend) -+{ -+ struct uga *uga = backend->priv; -+ grub_efi_handle_t *handle, *handles; -+ grub_efi_uintn_t num_handles; -+ grub_efi_pci_io_t *pci_proto; -+ int i; -+ -+ if (uga) { -+ if (uga->current_mode == GRAPHICS) { -+ return 1; -+ } -+ } else { -+ if (!(uga = grub_malloc(sizeof (*uga)))) { -+ return 0; -+ } -+ grub_memset(uga, '\0', sizeof (*uga)); -+ -+ uga->current_mode = TEXT; -+ -+ handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL, -+ &draw_guid, NULL, &num_handles); -+ -+ if (!num_handles || !handles) -+ { -+ grub_free(uga); -+ return 0; -+ } -+ -+ for (handle = handles; num_handles--; handle++) -+ { -+ pci_proto = grub_efi_open_protocol (*handle, &pci_io_guid, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+ -+ if (!pci_proto) -+ continue; -+ -+ uga->draw_intf = grub_efi_open_protocol (*handle, &draw_guid, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+ -+ if (uga->draw_intf) -+ { -+ grub_efi_setup_gfx_pci(*handle); -+ break; -+ } -+ } -+ -+ grub_free(handles); -+ -+ if (!uga->draw_intf) -+ uga->draw_intf = grub_efi_locate_protocol(&draw_guid, NULL); -+ -+ if (!uga->draw_intf) { -+ grub_free(uga); -+ return 0; -+ } -+ grub_memset(&uga->graphics_mode, '\0', sizeof (uga->graphics_mode)); -+ grub_memset(&uga->text_mode, '\0', sizeof (uga->text_mode)); -+ backend->priv = uga; -+ -+ setup_cga_palette(); -+ for (i = 0; i < n_cga_colors; i++) { -+ uga->palette[i].red = cga_colors[i].red; -+ uga->palette[i].green = cga_colors[i].green; -+ uga->palette[i].blue = cga_colors[i].blue; -+ } -+ } -+ -+ if (try_enable(backend)) { -+ reset_screen_geometry(backend); -+ return 1; -+ } -+ -+ backend->priv = NULL; -+ grub_free(uga); -+ return 0; -+} -+ -+static void disable(struct graphics_backend *backend) -+{ -+ struct uga *uga; -+ -+ if (!backend) -+ return; -+ -+ uga = backend->priv; -+ if (!uga || uga->current_mode != GRAPHICS) -+ return; -+ -+#if 0 -+ blank(backend); -+ -+ set_video_mode(uga, &uga->text_mode); -+ grub_efi_set_text_mode(1); -+#endif -+ uga->current_mode = TEXT; -+} -+ -+struct graphics_backend uga_backend = { -+ .name = "uga", -+ .enable = enable, -+ .disable = disable, -+ .set_kernel_params = set_kernel_params, -+ .clbl = clbl, -+ .set_palette = set_palette, -+ .get_pixel_idx = get_pixel_idx, -+ .get_pixel_rgb = get_pixel_rgb, -+ .draw_pixel = draw_pixel, -+ .reset_screen_geometry = reset_screen_geometry, -+ .get_screen_size = get_screen_size, -+ .getxy = uga_getxy, -+ .setxy = setxy, -+ .gotoxy = NULL, -+ .cursor = cursor, -+}; -+ -+#endif /* SUPPORT_GRAPHICS */ -diff --git a/efi/font_8x16.c b/efi/font_8x16.c -new file mode 100644 -index 0000000..94829ec ---- /dev/null -+++ b/efi/font_8x16.c -@@ -0,0 +1,4638 @@ -+/* font_8x16.c - 8x16 font for GRUB/EFI */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copied from Linux kernel drivers/video/console/font_8x16.c, -+ * which is generated by cpi2fnt. -+ * -+ * 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. -+ */ -+ -+#ifdef SUPPORT_GRAPHICS -+ -+#define FONTDATAMAX 4096 -+ -+const unsigned char font8x16[FONTDATAMAX] = { -+ -+ /* 0 0x00 '^@' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 1 0x01 '^A' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7e, /* 01111110 */ -+ 0x81, /* 10000001 */ -+ 0xa5, /* 10100101 */ -+ 0x81, /* 10000001 */ -+ 0x81, /* 10000001 */ -+ 0xbd, /* 10111101 */ -+ 0x99, /* 10011001 */ -+ 0x81, /* 10000001 */ -+ 0x81, /* 10000001 */ -+ 0x7e, /* 01111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 2 0x02 '^B' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7e, /* 01111110 */ -+ 0xff, /* 11111111 */ -+ 0xdb, /* 11011011 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xc3, /* 11000011 */ -+ 0xe7, /* 11100111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0x7e, /* 01111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 3 0x03 '^C' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x6c, /* 01101100 */ -+ 0xfe, /* 11111110 */ -+ 0xfe, /* 11111110 */ -+ 0xfe, /* 11111110 */ -+ 0xfe, /* 11111110 */ -+ 0x7c, /* 01111100 */ -+ 0x38, /* 00111000 */ -+ 0x10, /* 00010000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 4 0x04 '^D' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x10, /* 00010000 */ -+ 0x38, /* 00111000 */ -+ 0x7c, /* 01111100 */ -+ 0xfe, /* 11111110 */ -+ 0x7c, /* 01111100 */ -+ 0x38, /* 00111000 */ -+ 0x10, /* 00010000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 5 0x05 '^E' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x3c, /* 00111100 */ -+ 0x3c, /* 00111100 */ -+ 0xe7, /* 11100111 */ -+ 0xe7, /* 11100111 */ -+ 0xe7, /* 11100111 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x3c, /* 00111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 6 0x06 '^F' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x3c, /* 00111100 */ -+ 0x7e, /* 01111110 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0x7e, /* 01111110 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x3c, /* 00111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 7 0x07 '^G' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x3c, /* 00111100 */ -+ 0x3c, /* 00111100 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 8 0x08 '^H' */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xe7, /* 11100111 */ -+ 0xc3, /* 11000011 */ -+ 0xc3, /* 11000011 */ -+ 0xe7, /* 11100111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ -+ /* 9 0x09 '^I' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x3c, /* 00111100 */ -+ 0x66, /* 01100110 */ -+ 0x42, /* 01000010 */ -+ 0x42, /* 01000010 */ -+ 0x66, /* 01100110 */ -+ 0x3c, /* 00111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 10 0x0a '^J' */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xc3, /* 11000011 */ -+ 0x99, /* 10011001 */ -+ 0xbd, /* 10111101 */ -+ 0xbd, /* 10111101 */ -+ 0x99, /* 10011001 */ -+ 0xc3, /* 11000011 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ -+ /* 11 0x0b '^K' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x1e, /* 00011110 */ -+ 0x0e, /* 00001110 */ -+ 0x1a, /* 00011010 */ -+ 0x32, /* 00110010 */ -+ 0x78, /* 01111000 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0x78, /* 01111000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 12 0x0c '^L' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x3c, /* 00111100 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x3c, /* 00111100 */ -+ 0x18, /* 00011000 */ -+ 0x7e, /* 01111110 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 13 0x0d '^M' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x3f, /* 00111111 */ -+ 0x33, /* 00110011 */ -+ 0x3f, /* 00111111 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x70, /* 01110000 */ -+ 0xf0, /* 11110000 */ -+ 0xe0, /* 11100000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 14 0x0e '^N' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7f, /* 01111111 */ -+ 0x63, /* 01100011 */ -+ 0x7f, /* 01111111 */ -+ 0x63, /* 01100011 */ -+ 0x63, /* 01100011 */ -+ 0x63, /* 01100011 */ -+ 0x63, /* 01100011 */ -+ 0x67, /* 01100111 */ -+ 0xe7, /* 11100111 */ -+ 0xe6, /* 11100110 */ -+ 0xc0, /* 11000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 15 0x0f '^O' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0xdb, /* 11011011 */ -+ 0x3c, /* 00111100 */ -+ 0xe7, /* 11100111 */ -+ 0x3c, /* 00111100 */ -+ 0xdb, /* 11011011 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 16 0x10 '^P' */ -+ 0x00, /* 00000000 */ -+ 0x80, /* 10000000 */ -+ 0xc0, /* 11000000 */ -+ 0xe0, /* 11100000 */ -+ 0xf0, /* 11110000 */ -+ 0xf8, /* 11111000 */ -+ 0xfe, /* 11111110 */ -+ 0xf8, /* 11111000 */ -+ 0xf0, /* 11110000 */ -+ 0xe0, /* 11100000 */ -+ 0xc0, /* 11000000 */ -+ 0x80, /* 10000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 17 0x11 '^Q' */ -+ 0x00, /* 00000000 */ -+ 0x02, /* 00000010 */ -+ 0x06, /* 00000110 */ -+ 0x0e, /* 00001110 */ -+ 0x1e, /* 00011110 */ -+ 0x3e, /* 00111110 */ -+ 0xfe, /* 11111110 */ -+ 0x3e, /* 00111110 */ -+ 0x1e, /* 00011110 */ -+ 0x0e, /* 00001110 */ -+ 0x06, /* 00000110 */ -+ 0x02, /* 00000010 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 18 0x12 '^R' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x3c, /* 00111100 */ -+ 0x7e, /* 01111110 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x7e, /* 01111110 */ -+ 0x3c, /* 00111100 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 19 0x13 '^S' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x00, /* 00000000 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 20 0x14 '^T' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7f, /* 01111111 */ -+ 0xdb, /* 11011011 */ -+ 0xdb, /* 11011011 */ -+ 0xdb, /* 11011011 */ -+ 0x7b, /* 01111011 */ -+ 0x1b, /* 00011011 */ -+ 0x1b, /* 00011011 */ -+ 0x1b, /* 00011011 */ -+ 0x1b, /* 00011011 */ -+ 0x1b, /* 00011011 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 21 0x15 '^U' */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0x60, /* 01100000 */ -+ 0x38, /* 00111000 */ -+ 0x6c, /* 01101100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x6c, /* 01101100 */ -+ 0x38, /* 00111000 */ -+ 0x0c, /* 00001100 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 22 0x16 '^V' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xfe, /* 11111110 */ -+ 0xfe, /* 11111110 */ -+ 0xfe, /* 11111110 */ -+ 0xfe, /* 11111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 23 0x17 '^W' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x3c, /* 00111100 */ -+ 0x7e, /* 01111110 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x7e, /* 01111110 */ -+ 0x3c, /* 00111100 */ -+ 0x18, /* 00011000 */ -+ 0x7e, /* 01111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 24 0x18 '^X' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x3c, /* 00111100 */ -+ 0x7e, /* 01111110 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 25 0x19 '^Y' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x7e, /* 01111110 */ -+ 0x3c, /* 00111100 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 26 0x1a '^Z' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x0c, /* 00001100 */ -+ 0xfe, /* 11111110 */ -+ 0x0c, /* 00001100 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 27 0x1b '^[' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x30, /* 00110000 */ -+ 0x60, /* 01100000 */ -+ 0xfe, /* 11111110 */ -+ 0x60, /* 01100000 */ -+ 0x30, /* 00110000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 28 0x1c '^\' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xfe, /* 11111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 29 0x1d '^]' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x28, /* 00101000 */ -+ 0x6c, /* 01101100 */ -+ 0xfe, /* 11111110 */ -+ 0x6c, /* 01101100 */ -+ 0x28, /* 00101000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 30 0x1e '^^' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x10, /* 00010000 */ -+ 0x38, /* 00111000 */ -+ 0x38, /* 00111000 */ -+ 0x7c, /* 01111100 */ -+ 0x7c, /* 01111100 */ -+ 0xfe, /* 11111110 */ -+ 0xfe, /* 11111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 31 0x1f '^_' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xfe, /* 11111110 */ -+ 0xfe, /* 11111110 */ -+ 0x7c, /* 01111100 */ -+ 0x7c, /* 01111100 */ -+ 0x38, /* 00111000 */ -+ 0x38, /* 00111000 */ -+ 0x10, /* 00010000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 32 0x20 ' ' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 33 0x21 '!' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x3c, /* 00111100 */ -+ 0x3c, /* 00111100 */ -+ 0x3c, /* 00111100 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 34 0x22 '"' */ -+ 0x00, /* 00000000 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x24, /* 00100100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 35 0x23 '#' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x6c, /* 01101100 */ -+ 0x6c, /* 01101100 */ -+ 0xfe, /* 11111110 */ -+ 0x6c, /* 01101100 */ -+ 0x6c, /* 01101100 */ -+ 0x6c, /* 01101100 */ -+ 0xfe, /* 11111110 */ -+ 0x6c, /* 01101100 */ -+ 0x6c, /* 01101100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 36 0x24 '$' */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xc2, /* 11000010 */ -+ 0xc0, /* 11000000 */ -+ 0x7c, /* 01111100 */ -+ 0x06, /* 00000110 */ -+ 0x06, /* 00000110 */ -+ 0x86, /* 10000110 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 37 0x25 '%' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xc2, /* 11000010 */ -+ 0xc6, /* 11000110 */ -+ 0x0c, /* 00001100 */ -+ 0x18, /* 00011000 */ -+ 0x30, /* 00110000 */ -+ 0x60, /* 01100000 */ -+ 0xc6, /* 11000110 */ -+ 0x86, /* 10000110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 38 0x26 '&' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x38, /* 00111000 */ -+ 0x6c, /* 01101100 */ -+ 0x6c, /* 01101100 */ -+ 0x38, /* 00111000 */ -+ 0x76, /* 01110110 */ -+ 0xdc, /* 11011100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0x76, /* 01110110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 39 0x27 ''' */ -+ 0x00, /* 00000000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x60, /* 01100000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 40 0x28 '(' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x0c, /* 00001100 */ -+ 0x18, /* 00011000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x18, /* 00011000 */ -+ 0x0c, /* 00001100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 41 0x29 ')' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x30, /* 00110000 */ -+ 0x18, /* 00011000 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0x18, /* 00011000 */ -+ 0x30, /* 00110000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 42 0x2a '*' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x66, /* 01100110 */ -+ 0x3c, /* 00111100 */ -+ 0xff, /* 11111111 */ -+ 0x3c, /* 00111100 */ -+ 0x66, /* 01100110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 43 0x2b '+' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x7e, /* 01111110 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 44 0x2c ',' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x30, /* 00110000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 45 0x2d '-' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xfe, /* 11111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 46 0x2e '.' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 47 0x2f '/' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x02, /* 00000010 */ -+ 0x06, /* 00000110 */ -+ 0x0c, /* 00001100 */ -+ 0x18, /* 00011000 */ -+ 0x30, /* 00110000 */ -+ 0x60, /* 01100000 */ -+ 0xc0, /* 11000000 */ -+ 0x80, /* 10000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 48 0x30 '0' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x38, /* 00111000 */ -+ 0x6c, /* 01101100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xd6, /* 11010110 */ -+ 0xd6, /* 11010110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x6c, /* 01101100 */ -+ 0x38, /* 00111000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 49 0x31 '1' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x38, /* 00111000 */ -+ 0x78, /* 01111000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x7e, /* 01111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 50 0x32 '2' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0x06, /* 00000110 */ -+ 0x0c, /* 00001100 */ -+ 0x18, /* 00011000 */ -+ 0x30, /* 00110000 */ -+ 0x60, /* 01100000 */ -+ 0xc0, /* 11000000 */ -+ 0xc6, /* 11000110 */ -+ 0xfe, /* 11111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 51 0x33 '3' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0x06, /* 00000110 */ -+ 0x06, /* 00000110 */ -+ 0x3c, /* 00111100 */ -+ 0x06, /* 00000110 */ -+ 0x06, /* 00000110 */ -+ 0x06, /* 00000110 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 52 0x34 '4' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x0c, /* 00001100 */ -+ 0x1c, /* 00011100 */ -+ 0x3c, /* 00111100 */ -+ 0x6c, /* 01101100 */ -+ 0xcc, /* 11001100 */ -+ 0xfe, /* 11111110 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0x1e, /* 00011110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 53 0x35 '5' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xfe, /* 11111110 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xfc, /* 11111100 */ -+ 0x06, /* 00000110 */ -+ 0x06, /* 00000110 */ -+ 0x06, /* 00000110 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 54 0x36 '6' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x38, /* 00111000 */ -+ 0x60, /* 01100000 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xfc, /* 11111100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 55 0x37 '7' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xfe, /* 11111110 */ -+ 0xc6, /* 11000110 */ -+ 0x06, /* 00000110 */ -+ 0x06, /* 00000110 */ -+ 0x0c, /* 00001100 */ -+ 0x18, /* 00011000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 56 0x38 '8' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 57 0x39 '9' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x7e, /* 01111110 */ -+ 0x06, /* 00000110 */ -+ 0x06, /* 00000110 */ -+ 0x06, /* 00000110 */ -+ 0x0c, /* 00001100 */ -+ 0x78, /* 01111000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 58 0x3a ':' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 59 0x3b ';' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x30, /* 00110000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 60 0x3c '<' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x06, /* 00000110 */ -+ 0x0c, /* 00001100 */ -+ 0x18, /* 00011000 */ -+ 0x30, /* 00110000 */ -+ 0x60, /* 01100000 */ -+ 0x30, /* 00110000 */ -+ 0x18, /* 00011000 */ -+ 0x0c, /* 00001100 */ -+ 0x06, /* 00000110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 61 0x3d '=' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7e, /* 01111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7e, /* 01111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 62 0x3e '>' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x60, /* 01100000 */ -+ 0x30, /* 00110000 */ -+ 0x18, /* 00011000 */ -+ 0x0c, /* 00001100 */ -+ 0x06, /* 00000110 */ -+ 0x0c, /* 00001100 */ -+ 0x18, /* 00011000 */ -+ 0x30, /* 00110000 */ -+ 0x60, /* 01100000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 63 0x3f '?' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x0c, /* 00001100 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 64 0x40 '@' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xde, /* 11011110 */ -+ 0xde, /* 11011110 */ -+ 0xde, /* 11011110 */ -+ 0xdc, /* 11011100 */ -+ 0xc0, /* 11000000 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 65 0x41 'A' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x10, /* 00010000 */ -+ 0x38, /* 00111000 */ -+ 0x6c, /* 01101100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xfe, /* 11111110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 66 0x42 'B' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xfc, /* 11111100 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x7c, /* 01111100 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0xfc, /* 11111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 67 0x43 'C' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x3c, /* 00111100 */ -+ 0x66, /* 01100110 */ -+ 0xc2, /* 11000010 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc2, /* 11000010 */ -+ 0x66, /* 01100110 */ -+ 0x3c, /* 00111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 68 0x44 'D' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xf8, /* 11111000 */ -+ 0x6c, /* 01101100 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x6c, /* 01101100 */ -+ 0xf8, /* 11111000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 69 0x45 'E' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xfe, /* 11111110 */ -+ 0x66, /* 01100110 */ -+ 0x62, /* 01100010 */ -+ 0x68, /* 01101000 */ -+ 0x78, /* 01111000 */ -+ 0x68, /* 01101000 */ -+ 0x60, /* 01100000 */ -+ 0x62, /* 01100010 */ -+ 0x66, /* 01100110 */ -+ 0xfe, /* 11111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 70 0x46 'F' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xfe, /* 11111110 */ -+ 0x66, /* 01100110 */ -+ 0x62, /* 01100010 */ -+ 0x68, /* 01101000 */ -+ 0x78, /* 01111000 */ -+ 0x68, /* 01101000 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0xf0, /* 11110000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 71 0x47 'G' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x3c, /* 00111100 */ -+ 0x66, /* 01100110 */ -+ 0xc2, /* 11000010 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xde, /* 11011110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x66, /* 01100110 */ -+ 0x3a, /* 00111010 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 72 0x48 'H' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xfe, /* 11111110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 73 0x49 'I' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x3c, /* 00111100 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x3c, /* 00111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 74 0x4a 'J' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x1e, /* 00011110 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0x78, /* 01111000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 75 0x4b 'K' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xe6, /* 11100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x6c, /* 01101100 */ -+ 0x78, /* 01111000 */ -+ 0x78, /* 01111000 */ -+ 0x6c, /* 01101100 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0xe6, /* 11100110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 76 0x4c 'L' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xf0, /* 11110000 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0x62, /* 01100010 */ -+ 0x66, /* 01100110 */ -+ 0xfe, /* 11111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 77 0x4d 'M' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xc6, /* 11000110 */ -+ 0xee, /* 11101110 */ -+ 0xfe, /* 11111110 */ -+ 0xfe, /* 11111110 */ -+ 0xd6, /* 11010110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 78 0x4e 'N' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xc6, /* 11000110 */ -+ 0xe6, /* 11100110 */ -+ 0xf6, /* 11110110 */ -+ 0xfe, /* 11111110 */ -+ 0xde, /* 11011110 */ -+ 0xce, /* 11001110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 79 0x4f 'O' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 80 0x50 'P' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xfc, /* 11111100 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x7c, /* 01111100 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0xf0, /* 11110000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 81 0x51 'Q' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xd6, /* 11010110 */ -+ 0xde, /* 11011110 */ -+ 0x7c, /* 01111100 */ -+ 0x0c, /* 00001100 */ -+ 0x0e, /* 00001110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 82 0x52 'R' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xfc, /* 11111100 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x7c, /* 01111100 */ -+ 0x6c, /* 01101100 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0xe6, /* 11100110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 83 0x53 'S' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x60, /* 01100000 */ -+ 0x38, /* 00111000 */ -+ 0x0c, /* 00001100 */ -+ 0x06, /* 00000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 84 0x54 'T' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7e, /* 01111110 */ -+ 0x7e, /* 01111110 */ -+ 0x5a, /* 01011010 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x3c, /* 00111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 85 0x55 'U' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 86 0x56 'V' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x6c, /* 01101100 */ -+ 0x38, /* 00111000 */ -+ 0x10, /* 00010000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 87 0x57 'W' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xd6, /* 11010110 */ -+ 0xd6, /* 11010110 */ -+ 0xd6, /* 11010110 */ -+ 0xfe, /* 11111110 */ -+ 0xee, /* 11101110 */ -+ 0x6c, /* 01101100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 88 0x58 'X' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x6c, /* 01101100 */ -+ 0x7c, /* 01111100 */ -+ 0x38, /* 00111000 */ -+ 0x38, /* 00111000 */ -+ 0x7c, /* 01111100 */ -+ 0x6c, /* 01101100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 89 0x59 'Y' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x3c, /* 00111100 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x3c, /* 00111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 90 0x5a 'Z' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xfe, /* 11111110 */ -+ 0xc6, /* 11000110 */ -+ 0x86, /* 10000110 */ -+ 0x0c, /* 00001100 */ -+ 0x18, /* 00011000 */ -+ 0x30, /* 00110000 */ -+ 0x60, /* 01100000 */ -+ 0xc2, /* 11000010 */ -+ 0xc6, /* 11000110 */ -+ 0xfe, /* 11111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 91 0x5b '[' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x3c, /* 00111100 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x3c, /* 00111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 92 0x5c '\' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x80, /* 10000000 */ -+ 0xc0, /* 11000000 */ -+ 0xe0, /* 11100000 */ -+ 0x70, /* 01110000 */ -+ 0x38, /* 00111000 */ -+ 0x1c, /* 00011100 */ -+ 0x0e, /* 00001110 */ -+ 0x06, /* 00000110 */ -+ 0x02, /* 00000010 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 93 0x5d ']' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x3c, /* 00111100 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0x3c, /* 00111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 94 0x5e '^' */ -+ 0x10, /* 00010000 */ -+ 0x38, /* 00111000 */ -+ 0x6c, /* 01101100 */ -+ 0xc6, /* 11000110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 95 0x5f '_' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xff, /* 11111111 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 96 0x60 '`' */ -+ 0x00, /* 00000000 */ -+ 0x30, /* 00110000 */ -+ 0x18, /* 00011000 */ -+ 0x0c, /* 00001100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 97 0x61 'a' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x78, /* 01111000 */ -+ 0x0c, /* 00001100 */ -+ 0x7c, /* 01111100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0x76, /* 01110110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 98 0x62 'b' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xe0, /* 11100000 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0x78, /* 01111000 */ -+ 0x6c, /* 01101100 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 99 0x63 'c' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 100 0x64 'd' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x1c, /* 00011100 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0x3c, /* 00111100 */ -+ 0x6c, /* 01101100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0x76, /* 01110110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 101 0x65 'e' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xfe, /* 11111110 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 102 0x66 'f' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x1c, /* 00011100 */ -+ 0x36, /* 00110110 */ -+ 0x32, /* 00110010 */ -+ 0x30, /* 00110000 */ -+ 0x78, /* 01111000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x78, /* 01111000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 103 0x67 'g' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x76, /* 01110110 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0x7c, /* 01111100 */ -+ 0x0c, /* 00001100 */ -+ 0xcc, /* 11001100 */ -+ 0x78, /* 01111000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 104 0x68 'h' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xe0, /* 11100000 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0x6c, /* 01101100 */ -+ 0x76, /* 01110110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0xe6, /* 11100110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 105 0x69 'i' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x38, /* 00111000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x3c, /* 00111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 106 0x6a 'j' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x06, /* 00000110 */ -+ 0x06, /* 00000110 */ -+ 0x00, /* 00000000 */ -+ 0x0e, /* 00001110 */ -+ 0x06, /* 00000110 */ -+ 0x06, /* 00000110 */ -+ 0x06, /* 00000110 */ -+ 0x06, /* 00000110 */ -+ 0x06, /* 00000110 */ -+ 0x06, /* 00000110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x3c, /* 00111100 */ -+ 0x00, /* 00000000 */ -+ -+ /* 107 0x6b 'k' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xe0, /* 11100000 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0x66, /* 01100110 */ -+ 0x6c, /* 01101100 */ -+ 0x78, /* 01111000 */ -+ 0x78, /* 01111000 */ -+ 0x6c, /* 01101100 */ -+ 0x66, /* 01100110 */ -+ 0xe6, /* 11100110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 108 0x6c 'l' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x38, /* 00111000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x3c, /* 00111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 109 0x6d 'm' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xec, /* 11101100 */ -+ 0xfe, /* 11111110 */ -+ 0xd6, /* 11010110 */ -+ 0xd6, /* 11010110 */ -+ 0xd6, /* 11010110 */ -+ 0xd6, /* 11010110 */ -+ 0xc6, /* 11000110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 110 0x6e 'n' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xdc, /* 11011100 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 111 0x6f 'o' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 112 0x70 'p' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xdc, /* 11011100 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x7c, /* 01111100 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0xf0, /* 11110000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 113 0x71 'q' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x76, /* 01110110 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0x7c, /* 01111100 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0x1e, /* 00011110 */ -+ 0x00, /* 00000000 */ -+ -+ /* 114 0x72 'r' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xdc, /* 11011100 */ -+ 0x76, /* 01110110 */ -+ 0x66, /* 01100110 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0xf0, /* 11110000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 115 0x73 's' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0x60, /* 01100000 */ -+ 0x38, /* 00111000 */ -+ 0x0c, /* 00001100 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 116 0x74 't' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x10, /* 00010000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0xfc, /* 11111100 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x36, /* 00110110 */ -+ 0x1c, /* 00011100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 117 0x75 'u' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0x76, /* 01110110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 118 0x76 'v' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x6c, /* 01101100 */ -+ 0x38, /* 00111000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 119 0x77 'w' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xd6, /* 11010110 */ -+ 0xd6, /* 11010110 */ -+ 0xd6, /* 11010110 */ -+ 0xfe, /* 11111110 */ -+ 0x6c, /* 01101100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 120 0x78 'x' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xc6, /* 11000110 */ -+ 0x6c, /* 01101100 */ -+ 0x38, /* 00111000 */ -+ 0x38, /* 00111000 */ -+ 0x38, /* 00111000 */ -+ 0x6c, /* 01101100 */ -+ 0xc6, /* 11000110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 121 0x79 'y' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x7e, /* 01111110 */ -+ 0x06, /* 00000110 */ -+ 0x0c, /* 00001100 */ -+ 0xf8, /* 11111000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 122 0x7a 'z' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xfe, /* 11111110 */ -+ 0xcc, /* 11001100 */ -+ 0x18, /* 00011000 */ -+ 0x30, /* 00110000 */ -+ 0x60, /* 01100000 */ -+ 0xc6, /* 11000110 */ -+ 0xfe, /* 11111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 123 0x7b '{' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x0e, /* 00001110 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x70, /* 01110000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x0e, /* 00001110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 124 0x7c '|' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 125 0x7d '}' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x70, /* 01110000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x0e, /* 00001110 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x70, /* 01110000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 126 0x7e '~' */ -+ 0x00, /* 00000000 */ -+ 0x76, /* 01110110 */ -+ 0xdc, /* 11011100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 127 0x7f '' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x10, /* 00010000 */ -+ 0x38, /* 00111000 */ -+ 0x6c, /* 01101100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xfe, /* 11111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 128 0x80 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x3c, /* 00111100 */ -+ 0x66, /* 01100110 */ -+ 0xc2, /* 11000010 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc2, /* 11000010 */ -+ 0x66, /* 01100110 */ -+ 0x3c, /* 00111100 */ -+ 0x18, /* 00011000 */ -+ 0x70, /* 01110000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 129 0x81 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xcc, /* 11001100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0x76, /* 01110110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 130 0x82 '�' */ -+ 0x00, /* 00000000 */ -+ 0x0c, /* 00001100 */ -+ 0x18, /* 00011000 */ -+ 0x30, /* 00110000 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xfe, /* 11111110 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 131 0x83 '�' */ -+ 0x00, /* 00000000 */ -+ 0x10, /* 00010000 */ -+ 0x38, /* 00111000 */ -+ 0x6c, /* 01101100 */ -+ 0x00, /* 00000000 */ -+ 0x78, /* 01111000 */ -+ 0x0c, /* 00001100 */ -+ 0x7c, /* 01111100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0x76, /* 01110110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 132 0x84 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xcc, /* 11001100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x78, /* 01111000 */ -+ 0x0c, /* 00001100 */ -+ 0x7c, /* 01111100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0x76, /* 01110110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 133 0x85 '�' */ -+ 0x00, /* 00000000 */ -+ 0x60, /* 01100000 */ -+ 0x30, /* 00110000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x78, /* 01111000 */ -+ 0x0c, /* 00001100 */ -+ 0x7c, /* 01111100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0x76, /* 01110110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 134 0x86 '�' */ -+ 0x00, /* 00000000 */ -+ 0x38, /* 00111000 */ -+ 0x6c, /* 01101100 */ -+ 0x38, /* 00111000 */ -+ 0x00, /* 00000000 */ -+ 0x78, /* 01111000 */ -+ 0x0c, /* 00001100 */ -+ 0x7c, /* 01111100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0x76, /* 01110110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 135 0x87 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x18, /* 00011000 */ -+ 0x70, /* 01110000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 136 0x88 '�' */ -+ 0x00, /* 00000000 */ -+ 0x10, /* 00010000 */ -+ 0x38, /* 00111000 */ -+ 0x6c, /* 01101100 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xfe, /* 11111110 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 137 0x89 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xc6, /* 11000110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xfe, /* 11111110 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 138 0x8a '�' */ -+ 0x00, /* 00000000 */ -+ 0x60, /* 01100000 */ -+ 0x30, /* 00110000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xfe, /* 11111110 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 139 0x8b '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x66, /* 01100110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x38, /* 00111000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x3c, /* 00111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 140 0x8c '�' */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x3c, /* 00111100 */ -+ 0x66, /* 01100110 */ -+ 0x00, /* 00000000 */ -+ 0x38, /* 00111000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x3c, /* 00111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 141 0x8d '�' */ -+ 0x00, /* 00000000 */ -+ 0x60, /* 01100000 */ -+ 0x30, /* 00110000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x38, /* 00111000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x3c, /* 00111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 142 0x8e '�' */ -+ 0x00, /* 00000000 */ -+ 0xc6, /* 11000110 */ -+ 0x00, /* 00000000 */ -+ 0x10, /* 00010000 */ -+ 0x38, /* 00111000 */ -+ 0x6c, /* 01101100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xfe, /* 11111110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 143 0x8f '�' */ -+ 0x38, /* 00111000 */ -+ 0x6c, /* 01101100 */ -+ 0x38, /* 00111000 */ -+ 0x10, /* 00010000 */ -+ 0x38, /* 00111000 */ -+ 0x6c, /* 01101100 */ -+ 0xc6, /* 11000110 */ -+ 0xfe, /* 11111110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 144 0x90 '�' */ -+ 0x0c, /* 00001100 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0xfe, /* 11111110 */ -+ 0x66, /* 01100110 */ -+ 0x62, /* 01100010 */ -+ 0x68, /* 01101000 */ -+ 0x78, /* 01111000 */ -+ 0x68, /* 01101000 */ -+ 0x62, /* 01100010 */ -+ 0x66, /* 01100110 */ -+ 0xfe, /* 11111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 145 0x91 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xec, /* 11101100 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x7e, /* 01111110 */ -+ 0xd8, /* 11011000 */ -+ 0xd8, /* 11011000 */ -+ 0x6e, /* 01101110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 146 0x92 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x3e, /* 00111110 */ -+ 0x6c, /* 01101100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xfe, /* 11111110 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xce, /* 11001110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 147 0x93 '�' */ -+ 0x00, /* 00000000 */ -+ 0x10, /* 00010000 */ -+ 0x38, /* 00111000 */ -+ 0x6c, /* 01101100 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 148 0x94 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xc6, /* 11000110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 149 0x95 '�' */ -+ 0x00, /* 00000000 */ -+ 0x60, /* 01100000 */ -+ 0x30, /* 00110000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 150 0x96 '�' */ -+ 0x00, /* 00000000 */ -+ 0x30, /* 00110000 */ -+ 0x78, /* 01111000 */ -+ 0xcc, /* 11001100 */ -+ 0x00, /* 00000000 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0x76, /* 01110110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 151 0x97 '�' */ -+ 0x00, /* 00000000 */ -+ 0x60, /* 01100000 */ -+ 0x30, /* 00110000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0x76, /* 01110110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 152 0x98 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xc6, /* 11000110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x7e, /* 01111110 */ -+ 0x06, /* 00000110 */ -+ 0x0c, /* 00001100 */ -+ 0x78, /* 01111000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 153 0x99 '�' */ -+ 0x00, /* 00000000 */ -+ 0xc6, /* 11000110 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 154 0x9a '�' */ -+ 0x00, /* 00000000 */ -+ 0xc6, /* 11000110 */ -+ 0x00, /* 00000000 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 155 0x9b '�' */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 156 0x9c '�' */ -+ 0x00, /* 00000000 */ -+ 0x38, /* 00111000 */ -+ 0x6c, /* 01101100 */ -+ 0x64, /* 01100100 */ -+ 0x60, /* 01100000 */ -+ 0xf0, /* 11110000 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0xe6, /* 11100110 */ -+ 0xfc, /* 11111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 157 0x9d '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x3c, /* 00111100 */ -+ 0x18, /* 00011000 */ -+ 0x7e, /* 01111110 */ -+ 0x18, /* 00011000 */ -+ 0x7e, /* 01111110 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 158 0x9e '�' */ -+ 0x00, /* 00000000 */ -+ 0xf8, /* 11111000 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xf8, /* 11111000 */ -+ 0xc4, /* 11000100 */ -+ 0xcc, /* 11001100 */ -+ 0xde, /* 11011110 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xc6, /* 11000110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 159 0x9f '�' */ -+ 0x00, /* 00000000 */ -+ 0x0e, /* 00001110 */ -+ 0x1b, /* 00011011 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x7e, /* 01111110 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0xd8, /* 11011000 */ -+ 0x70, /* 01110000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 160 0xa0 '�' */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x30, /* 00110000 */ -+ 0x60, /* 01100000 */ -+ 0x00, /* 00000000 */ -+ 0x78, /* 01111000 */ -+ 0x0c, /* 00001100 */ -+ 0x7c, /* 01111100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0x76, /* 01110110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 161 0xa1 '�' */ -+ 0x00, /* 00000000 */ -+ 0x0c, /* 00001100 */ -+ 0x18, /* 00011000 */ -+ 0x30, /* 00110000 */ -+ 0x00, /* 00000000 */ -+ 0x38, /* 00111000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x3c, /* 00111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 162 0xa2 '�' */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x30, /* 00110000 */ -+ 0x60, /* 01100000 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 163 0xa3 '�' */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x30, /* 00110000 */ -+ 0x60, /* 01100000 */ -+ 0x00, /* 00000000 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0x76, /* 01110110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 164 0xa4 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x76, /* 01110110 */ -+ 0xdc, /* 11011100 */ -+ 0x00, /* 00000000 */ -+ 0xdc, /* 11011100 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 165 0xa5 '�' */ -+ 0x76, /* 01110110 */ -+ 0xdc, /* 11011100 */ -+ 0x00, /* 00000000 */ -+ 0xc6, /* 11000110 */ -+ 0xe6, /* 11100110 */ -+ 0xf6, /* 11110110 */ -+ 0xfe, /* 11111110 */ -+ 0xde, /* 11011110 */ -+ 0xce, /* 11001110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 166 0xa6 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x3c, /* 00111100 */ -+ 0x6c, /* 01101100 */ -+ 0x6c, /* 01101100 */ -+ 0x3e, /* 00111110 */ -+ 0x00, /* 00000000 */ -+ 0x7e, /* 01111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 167 0xa7 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x38, /* 00111000 */ -+ 0x6c, /* 01101100 */ -+ 0x6c, /* 01101100 */ -+ 0x38, /* 00111000 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 168 0xa8 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x00, /* 00000000 */ -+ 0x30, /* 00110000 */ -+ 0x30, /* 00110000 */ -+ 0x60, /* 01100000 */ -+ 0xc0, /* 11000000 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x7c, /* 01111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 169 0xa9 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xfe, /* 11111110 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 170 0xaa '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xfe, /* 11111110 */ -+ 0x06, /* 00000110 */ -+ 0x06, /* 00000110 */ -+ 0x06, /* 00000110 */ -+ 0x06, /* 00000110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 171 0xab '�' */ -+ 0x00, /* 00000000 */ -+ 0x60, /* 01100000 */ -+ 0xe0, /* 11100000 */ -+ 0x62, /* 01100010 */ -+ 0x66, /* 01100110 */ -+ 0x6c, /* 01101100 */ -+ 0x18, /* 00011000 */ -+ 0x30, /* 00110000 */ -+ 0x60, /* 01100000 */ -+ 0xdc, /* 11011100 */ -+ 0x86, /* 10000110 */ -+ 0x0c, /* 00001100 */ -+ 0x18, /* 00011000 */ -+ 0x3e, /* 00111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 172 0xac '�' */ -+ 0x00, /* 00000000 */ -+ 0x60, /* 01100000 */ -+ 0xe0, /* 11100000 */ -+ 0x62, /* 01100010 */ -+ 0x66, /* 01100110 */ -+ 0x6c, /* 01101100 */ -+ 0x18, /* 00011000 */ -+ 0x30, /* 00110000 */ -+ 0x66, /* 01100110 */ -+ 0xce, /* 11001110 */ -+ 0x9a, /* 10011010 */ -+ 0x3f, /* 00111111 */ -+ 0x06, /* 00000110 */ -+ 0x06, /* 00000110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 173 0xad '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x3c, /* 00111100 */ -+ 0x3c, /* 00111100 */ -+ 0x3c, /* 00111100 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 174 0xae '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x36, /* 00110110 */ -+ 0x6c, /* 01101100 */ -+ 0xd8, /* 11011000 */ -+ 0x6c, /* 01101100 */ -+ 0x36, /* 00110110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 175 0xaf '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xd8, /* 11011000 */ -+ 0x6c, /* 01101100 */ -+ 0x36, /* 00110110 */ -+ 0x6c, /* 01101100 */ -+ 0xd8, /* 11011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 176 0xb0 '�' */ -+ 0x11, /* 00010001 */ -+ 0x44, /* 01000100 */ -+ 0x11, /* 00010001 */ -+ 0x44, /* 01000100 */ -+ 0x11, /* 00010001 */ -+ 0x44, /* 01000100 */ -+ 0x11, /* 00010001 */ -+ 0x44, /* 01000100 */ -+ 0x11, /* 00010001 */ -+ 0x44, /* 01000100 */ -+ 0x11, /* 00010001 */ -+ 0x44, /* 01000100 */ -+ 0x11, /* 00010001 */ -+ 0x44, /* 01000100 */ -+ 0x11, /* 00010001 */ -+ 0x44, /* 01000100 */ -+ -+ /* 177 0xb1 '�' */ -+ 0x55, /* 01010101 */ -+ 0xaa, /* 10101010 */ -+ 0x55, /* 01010101 */ -+ 0xaa, /* 10101010 */ -+ 0x55, /* 01010101 */ -+ 0xaa, /* 10101010 */ -+ 0x55, /* 01010101 */ -+ 0xaa, /* 10101010 */ -+ 0x55, /* 01010101 */ -+ 0xaa, /* 10101010 */ -+ 0x55, /* 01010101 */ -+ 0xaa, /* 10101010 */ -+ 0x55, /* 01010101 */ -+ 0xaa, /* 10101010 */ -+ 0x55, /* 01010101 */ -+ 0xaa, /* 10101010 */ -+ -+ /* 178 0xb2 '�' */ -+ 0xdd, /* 11011101 */ -+ 0x77, /* 01110111 */ -+ 0xdd, /* 11011101 */ -+ 0x77, /* 01110111 */ -+ 0xdd, /* 11011101 */ -+ 0x77, /* 01110111 */ -+ 0xdd, /* 11011101 */ -+ 0x77, /* 01110111 */ -+ 0xdd, /* 11011101 */ -+ 0x77, /* 01110111 */ -+ 0xdd, /* 11011101 */ -+ 0x77, /* 01110111 */ -+ 0xdd, /* 11011101 */ -+ 0x77, /* 01110111 */ -+ 0xdd, /* 11011101 */ -+ 0x77, /* 01110111 */ -+ -+ /* 179 0xb3 '�' */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ -+ /* 180 0xb4 '�' */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0xf8, /* 11111000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ -+ /* 181 0xb5 '�' */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0xf8, /* 11111000 */ -+ 0x18, /* 00011000 */ -+ 0xf8, /* 11111000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ -+ /* 182 0xb6 '�' */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0xf6, /* 11110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ -+ /* 183 0xb7 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xfe, /* 11111110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ -+ /* 184 0xb8 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xf8, /* 11111000 */ -+ 0x18, /* 00011000 */ -+ 0xf8, /* 11111000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ -+ /* 185 0xb9 '�' */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0xf6, /* 11110110 */ -+ 0x06, /* 00000110 */ -+ 0xf6, /* 11110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ -+ /* 186 0xba '�' */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ -+ /* 187 0xbb '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xfe, /* 11111110 */ -+ 0x06, /* 00000110 */ -+ 0xf6, /* 11110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ -+ /* 188 0xbc '�' */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0xf6, /* 11110110 */ -+ 0x06, /* 00000110 */ -+ 0xfe, /* 11111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 189 0xbd '�' */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0xfe, /* 11111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 190 0xbe '�' */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0xf8, /* 11111000 */ -+ 0x18, /* 00011000 */ -+ 0xf8, /* 11111000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 191 0xbf '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xf8, /* 11111000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ -+ /* 192 0xc0 '�' */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x1f, /* 00011111 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 193 0xc1 '�' */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0xff, /* 11111111 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 194 0xc2 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xff, /* 11111111 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ -+ /* 195 0xc3 '�' */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x1f, /* 00011111 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ -+ /* 196 0xc4 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xff, /* 11111111 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 197 0xc5 '�' */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0xff, /* 11111111 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ -+ /* 198 0xc6 '�' */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x1f, /* 00011111 */ -+ 0x18, /* 00011000 */ -+ 0x1f, /* 00011111 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ -+ /* 199 0xc7 '�' */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x37, /* 00110111 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ -+ /* 200 0xc8 '�' */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x37, /* 00110111 */ -+ 0x30, /* 00110000 */ -+ 0x3f, /* 00111111 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 201 0xc9 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x3f, /* 00111111 */ -+ 0x30, /* 00110000 */ -+ 0x37, /* 00110111 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ -+ /* 202 0xca '�' */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0xf7, /* 11110111 */ -+ 0x00, /* 00000000 */ -+ 0xff, /* 11111111 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 203 0xcb '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xff, /* 11111111 */ -+ 0x00, /* 00000000 */ -+ 0xf7, /* 11110111 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ -+ /* 204 0xcc '�' */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x37, /* 00110111 */ -+ 0x30, /* 00110000 */ -+ 0x37, /* 00110111 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ -+ /* 205 0xcd '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xff, /* 11111111 */ -+ 0x00, /* 00000000 */ -+ 0xff, /* 11111111 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 206 0xce '�' */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0xf7, /* 11110111 */ -+ 0x00, /* 00000000 */ -+ 0xf7, /* 11110111 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ -+ /* 207 0xcf '�' */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0xff, /* 11111111 */ -+ 0x00, /* 00000000 */ -+ 0xff, /* 11111111 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 208 0xd0 '�' */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0xff, /* 11111111 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 209 0xd1 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xff, /* 11111111 */ -+ 0x00, /* 00000000 */ -+ 0xff, /* 11111111 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ -+ /* 210 0xd2 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xff, /* 11111111 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ -+ /* 211 0xd3 '�' */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x3f, /* 00111111 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 212 0xd4 '�' */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x1f, /* 00011111 */ -+ 0x18, /* 00011000 */ -+ 0x1f, /* 00011111 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 213 0xd5 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x1f, /* 00011111 */ -+ 0x18, /* 00011000 */ -+ 0x1f, /* 00011111 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ -+ /* 214 0xd6 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x3f, /* 00111111 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ -+ /* 215 0xd7 '�' */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0xff, /* 11111111 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ -+ /* 216 0xd8 '�' */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0xff, /* 11111111 */ -+ 0x18, /* 00011000 */ -+ 0xff, /* 11111111 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ -+ /* 217 0xd9 '�' */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0xf8, /* 11111000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 218 0xda '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x1f, /* 00011111 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ -+ /* 219 0xdb '�' */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ -+ /* 220 0xdc '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ -+ /* 221 0xdd '�' */ -+ 0xf0, /* 11110000 */ -+ 0xf0, /* 11110000 */ -+ 0xf0, /* 11110000 */ -+ 0xf0, /* 11110000 */ -+ 0xf0, /* 11110000 */ -+ 0xf0, /* 11110000 */ -+ 0xf0, /* 11110000 */ -+ 0xf0, /* 11110000 */ -+ 0xf0, /* 11110000 */ -+ 0xf0, /* 11110000 */ -+ 0xf0, /* 11110000 */ -+ 0xf0, /* 11110000 */ -+ 0xf0, /* 11110000 */ -+ 0xf0, /* 11110000 */ -+ 0xf0, /* 11110000 */ -+ 0xf0, /* 11110000 */ -+ -+ /* 222 0xde '�' */ -+ 0x0f, /* 00001111 */ -+ 0x0f, /* 00001111 */ -+ 0x0f, /* 00001111 */ -+ 0x0f, /* 00001111 */ -+ 0x0f, /* 00001111 */ -+ 0x0f, /* 00001111 */ -+ 0x0f, /* 00001111 */ -+ 0x0f, /* 00001111 */ -+ 0x0f, /* 00001111 */ -+ 0x0f, /* 00001111 */ -+ 0x0f, /* 00001111 */ -+ 0x0f, /* 00001111 */ -+ 0x0f, /* 00001111 */ -+ 0x0f, /* 00001111 */ -+ 0x0f, /* 00001111 */ -+ 0x0f, /* 00001111 */ -+ -+ /* 223 0xdf '�' */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0xff, /* 11111111 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 224 0xe0 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x76, /* 01110110 */ -+ 0xdc, /* 11011100 */ -+ 0xd8, /* 11011000 */ -+ 0xd8, /* 11011000 */ -+ 0xd8, /* 11011000 */ -+ 0xdc, /* 11011100 */ -+ 0x76, /* 01110110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 225 0xe1 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x78, /* 01111000 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xcc, /* 11001100 */ -+ 0xd8, /* 11011000 */ -+ 0xcc, /* 11001100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xcc, /* 11001100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 226 0xe2 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xfe, /* 11111110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0xc0, /* 11000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 227 0xe3 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xfe, /* 11111110 */ -+ 0x6c, /* 01101100 */ -+ 0x6c, /* 01101100 */ -+ 0x6c, /* 01101100 */ -+ 0x6c, /* 01101100 */ -+ 0x6c, /* 01101100 */ -+ 0x6c, /* 01101100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 228 0xe4 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xfe, /* 11111110 */ -+ 0xc6, /* 11000110 */ -+ 0x60, /* 01100000 */ -+ 0x30, /* 00110000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x30, /* 00110000 */ -+ 0x60, /* 01100000 */ -+ 0xc6, /* 11000110 */ -+ 0xfe, /* 11111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 229 0xe5 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7e, /* 01111110 */ -+ 0xd8, /* 11011000 */ -+ 0xd8, /* 11011000 */ -+ 0xd8, /* 11011000 */ -+ 0xd8, /* 11011000 */ -+ 0xd8, /* 11011000 */ -+ 0x70, /* 01110000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 230 0xe6 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x7c, /* 01111100 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0xc0, /* 11000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 231 0xe7 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x76, /* 01110110 */ -+ 0xdc, /* 11011100 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 232 0xe8 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7e, /* 01111110 */ -+ 0x18, /* 00011000 */ -+ 0x3c, /* 00111100 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x3c, /* 00111100 */ -+ 0x18, /* 00011000 */ -+ 0x7e, /* 01111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 233 0xe9 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x38, /* 00111000 */ -+ 0x6c, /* 01101100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xfe, /* 11111110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x6c, /* 01101100 */ -+ 0x38, /* 00111000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 234 0xea '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x38, /* 00111000 */ -+ 0x6c, /* 01101100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x6c, /* 01101100 */ -+ 0x6c, /* 01101100 */ -+ 0x6c, /* 01101100 */ -+ 0x6c, /* 01101100 */ -+ 0xee, /* 11101110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 235 0xeb '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x1e, /* 00011110 */ -+ 0x30, /* 00110000 */ -+ 0x18, /* 00011000 */ -+ 0x0c, /* 00001100 */ -+ 0x3e, /* 00111110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x66, /* 01100110 */ -+ 0x3c, /* 00111100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 236 0xec '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7e, /* 01111110 */ -+ 0xdb, /* 11011011 */ -+ 0xdb, /* 11011011 */ -+ 0xdb, /* 11011011 */ -+ 0x7e, /* 01111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 237 0xed '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x03, /* 00000011 */ -+ 0x06, /* 00000110 */ -+ 0x7e, /* 01111110 */ -+ 0xdb, /* 11011011 */ -+ 0xdb, /* 11011011 */ -+ 0xf3, /* 11110011 */ -+ 0x7e, /* 01111110 */ -+ 0x60, /* 01100000 */ -+ 0xc0, /* 11000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 238 0xee '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x1c, /* 00011100 */ -+ 0x30, /* 00110000 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0x7c, /* 01111100 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0x60, /* 01100000 */ -+ 0x30, /* 00110000 */ -+ 0x1c, /* 00011100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 239 0xef '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7c, /* 01111100 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0xc6, /* 11000110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 240 0xf0 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xfe, /* 11111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xfe, /* 11111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0xfe, /* 11111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 241 0xf1 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x7e, /* 01111110 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7e, /* 01111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 242 0xf2 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x30, /* 00110000 */ -+ 0x18, /* 00011000 */ -+ 0x0c, /* 00001100 */ -+ 0x06, /* 00000110 */ -+ 0x0c, /* 00001100 */ -+ 0x18, /* 00011000 */ -+ 0x30, /* 00110000 */ -+ 0x00, /* 00000000 */ -+ 0x7e, /* 01111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 243 0xf3 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x0c, /* 00001100 */ -+ 0x18, /* 00011000 */ -+ 0x30, /* 00110000 */ -+ 0x60, /* 01100000 */ -+ 0x30, /* 00110000 */ -+ 0x18, /* 00011000 */ -+ 0x0c, /* 00001100 */ -+ 0x00, /* 00000000 */ -+ 0x7e, /* 01111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 244 0xf4 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x0e, /* 00001110 */ -+ 0x1b, /* 00011011 */ -+ 0x1b, /* 00011011 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ -+ /* 245 0xf5 '�' */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0xd8, /* 11011000 */ -+ 0xd8, /* 11011000 */ -+ 0xd8, /* 11011000 */ -+ 0x70, /* 01110000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 246 0xf6 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x7e, /* 01111110 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 247 0xf7 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x76, /* 01110110 */ -+ 0xdc, /* 11011100 */ -+ 0x00, /* 00000000 */ -+ 0x76, /* 01110110 */ -+ 0xdc, /* 11011100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 248 0xf8 '�' */ -+ 0x00, /* 00000000 */ -+ 0x38, /* 00111000 */ -+ 0x6c, /* 01101100 */ -+ 0x6c, /* 01101100 */ -+ 0x38, /* 00111000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 249 0xf9 '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 250 0xfa '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x18, /* 00011000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 251 0xfb '�' */ -+ 0x00, /* 00000000 */ -+ 0x0f, /* 00001111 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0x0c, /* 00001100 */ -+ 0xec, /* 11101100 */ -+ 0x6c, /* 01101100 */ -+ 0x6c, /* 01101100 */ -+ 0x3c, /* 00111100 */ -+ 0x1c, /* 00011100 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 252 0xfc '�' */ -+ 0x00, /* 00000000 */ -+ 0x6c, /* 01101100 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x36, /* 00110110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 253 0xfd '�' */ -+ 0x00, /* 00000000 */ -+ 0x3c, /* 00111100 */ -+ 0x66, /* 01100110 */ -+ 0x0c, /* 00001100 */ -+ 0x18, /* 00011000 */ -+ 0x32, /* 00110010 */ -+ 0x7e, /* 01111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 254 0xfe '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x7e, /* 01111110 */ -+ 0x7e, /* 01111110 */ -+ 0x7e, /* 01111110 */ -+ 0x7e, /* 01111110 */ -+ 0x7e, /* 01111110 */ -+ 0x7e, /* 01111110 */ -+ 0x7e, /* 01111110 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+ /* 255 0xff '�' */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ 0x00, /* 00000000 */ -+ -+}; -+ -+#endif -diff --git a/efi/graphics.c b/efi/graphics.c -new file mode 100644 -index 0000000..eb98d8a ---- /dev/null -+++ b/efi/graphics.c -@@ -0,0 +1,666 @@ -+#ifdef SUPPORT_GRAPHICS -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+ -+#include "graphics.h" -+ -+#if 0 -+#include "ugadebug.h" -+#endif -+ -+int foreground = 0x00ffffff, background = 0; -+int graphics_inited = 0; -+ -+/* Convert a character which is a hex digit to the appropriate integer */ -+int -+hex (int v) -+{ -+ if (v >= 'A' && v <= 'F') -+ return (v - 'A' + 10); -+ if (v >= 'a' && v <= 'f') -+ return (v - 'a' + 10); -+ return (v - '0'); -+} -+ -+grub_uint16_t -+grub_console_getwh (void) -+{ -+ grub_efi_simple_text_output_interface_t *o; -+ grub_efi_uintn_t columns, rows; -+ -+ o = grub_efi_system_table->con_out; -+ if (Call_Service_4 (o->query_mode , o, o->mode->mode, &columns, &rows) -+ != GRUB_EFI_SUCCESS) -+ { -+ /* Why does this fail? */ -+ columns = 80; -+ rows = 25; -+ } -+ -+ return ((columns << 8) | rows); -+} -+ -+extern struct graphics_backend uga_backend; -+extern struct graphics_backend eg_backend; -+ -+static struct graphics_backend *backends[] = { -+ &eg_backend, -+ &uga_backend, -+ NULL -+}; -+static struct graphics_backend *backend; -+ -+struct graphics { -+ int scroll; -+ int fontx; -+ int fonty; -+ -+ int standard_color; -+ int normal_color; -+ int highlight_color; -+ int current_color; -+ color_state color_state; -+ -+ char splashpath[64]; -+ struct xpm *splashimage; -+ -+ unsigned short *text; -+}; -+ -+static grub_efi_guid_t device_path_guid = GRUB_EFI_DEVICE_PATH_GUID; -+static grub_efi_guid_t pci_io_guid = GRUB_EFI_PCI_IO_GUID; -+static grub_efi_guid_t pci_root_io_guid = GRUB_EFI_PCI_ROOT_IO_GUID; -+ -+static void -+grub_efi_configure_pci(grub_efi_handle_t handle) -+{ -+ grub_efi_device_path_t *path, *parent; -+ grub_efi_handle_t parent_handle; -+ grub_efi_pci_io_t *pci_proto; -+ grub_efi_pci_root_io_t *pci_root_proto; -+ grub_efi_status_t status; -+ -+ path = grub_efi_get_device_path(handle); -+ parent = find_parent_device_path(path); -+ -+ if (!parent) -+ return; -+ -+ status = grub_efi_locate_device_path (&device_path_guid, &parent, -+ &parent_handle); -+ if (status != GRUB_EFI_SUCCESS) -+ return; -+ -+ pci_proto = grub_efi_open_protocol (parent_handle, &pci_io_guid, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+ -+ pci_root_proto = grub_efi_open_protocol (parent_handle, &pci_root_io_guid, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+ -+ -+ if (pci_proto || pci_root_proto) -+ { -+ if (pci_proto) -+ { -+ Call_Service_4 (pci_proto->attributes, pci_proto, -+ grub_efi_pci_io_attribute_operation_enable, -+ GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_MEMORY | -+ GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_IO | -+ GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_PALETTE_IO, NULL); -+ -+ grub_efi_configure_pci (parent_handle); -+ } -+ else -+ { -+ grub_uint8_t value = 0x33; -+ grub_uint16_t vendor; -+ -+ Call_Service_5 (pci_root_proto->pci.read, pci_root_proto, -+ grub_efi_pci_io_width_uint16, 0x00, 1, &vendor); -+ -+ if (vendor == 0x8086) { -+ Call_Service_5 (pci_root_proto->pci.write, pci_root_proto, -+ grub_efi_pci_io_width_uint8, 0x91, 1, &value); -+ Call_Service_5 (pci_root_proto->pci.write, pci_root_proto, -+ grub_efi_pci_io_width_uint8, 0x92, 1, &value); -+ } -+ } -+ } -+ grub_free(parent); -+} -+ -+void -+grub_efi_setup_gfx_pci(grub_efi_handle_t handle) -+{ -+ grub_efi_uint64_t romsize; -+ grub_efi_uint16_t *header; -+ void *vrom; -+ grub_efi_pci_io_t *pci_proto; -+ -+ pci_proto = grub_efi_open_protocol (handle, &pci_io_guid, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+ -+ if (!pci_proto) -+ return; -+ -+ romsize = pci_proto->rom_size; -+ -+ if (!romsize || romsize > 65536 || !pci_proto->rom_image) -+ return; -+ -+ /* Copy the ROM */ -+ vrom = grub_efi_allocate_runtime_pages(0xc0000, 16); -+ -+ if (!vrom) -+ return; -+ -+ header = vrom; -+ -+ if (*header == 0xaa55) -+ return; -+ -+ grub_efi_configure_pci(handle); -+ -+ grub_memcpy(vrom, pci_proto->rom_image, romsize); -+} -+ -+void -+graphics_set_kernel_params(struct linux_kernel_params *params) -+{ -+ params->video_cursor_x = grub_efi_system_table->con_out->mode->cursor_column; -+ params->video_cursor_y = grub_efi_system_table->con_out->mode->cursor_row; -+ params->video_page = 0; /* ??? */ -+ params->video_mode = grub_efi_system_table->con_out->mode->mode; -+ params->video_width = (grub_console_getwh () >> 8); -+ params->video_ega_bx = 0; -+ params->video_height = (grub_console_getwh () & 0xff); -+ params->have_vga = 0; -+ params->font_size = 16; /* XXX */ -+ -+ /* No VBE. */ -+ params->lfb_width = 0; -+ params->lfb_height = 0; -+ params->lfb_depth = 0; -+ params->lfb_base = 0; -+ params->lfb_size = 0; -+ params->lfb_line_len = 0; -+ params->red_mask_size = 0; -+ params->red_field_pos = 0; -+ params->green_mask_size = 0; -+ params->green_field_pos = 0; -+ params->blue_mask_size = 0; -+ params->blue_field_pos = 0; -+ params->reserved_mask_size = 0; -+ params->reserved_field_pos = 0; -+ params->vesapm_segment = 0; -+ params->vesapm_offset = 0; -+ params->lfb_pages = 0; -+ params->vesa_attrib = 0; -+ -+ if (backend && backend->set_kernel_params) -+ backend->set_kernel_params(backend, params); -+} -+ -+int -+graphics_alloc_text_buf(void) -+{ -+ if (backend) { -+ struct graphics *graphics = backend->graphics; -+ position_t screen_size; -+ -+ if (graphics->text) { -+ grub_free(graphics->text); -+ graphics->text = NULL; -+ } -+ graphics_get_screen_rowscols(&screen_size); -+ graphics->text = grub_malloc(screen_size.x -+ * screen_size.y -+ * sizeof (graphics->text[0])); -+ if (graphics->text) { -+ int x, y; -+ for (y = 0; y < screen_size.y; y++) -+ for (x = 0; x < screen_size.x; x++) -+ graphics->text[y * screen_size.x + x] = ' '; -+ return 1; -+ } -+ } -+ return 0; -+} -+ -+unsigned short * -+graphics_get_text_buf(void) -+{ -+ return backend ? backend->graphics->text : NULL; -+ return NULL; -+} -+ -+int -+graphics_get_screen_rowscols(position_t *size) -+{ -+#if 0 -+ if (backend && backend->get_screen_size) { -+ backend->get_screen_size(backend, size); -+ size->x >>= 3; -+ size->y >>= 4; -+ return 1; -+ } -+ size->x = -1; -+ size->y = -1; -+ return 0; -+#else -+ size->x = 80; -+ size->y = 30; -+ return 1; -+#endif -+} -+ -+int -+graphics_get_scroll(void) -+{ -+ return backend ? backend->graphics->scroll : 1; -+} -+ -+void -+graphics_set_palette(int idx, int red, int green, int blue) -+{ -+ if (backend && backend->set_palette) { -+ backend->set_palette(backend, idx, red, green, blue); -+ backend->set_palette(backend, 0, 0x00, 0x00, 0x00); -+ backend->set_palette(backend, 15, 0xff, 0xff, 0xff); -+ backend->set_palette(backend, 16, 0x00, 0x00, 0x00); -+ } -+} -+ -+static char splashpath[64] = ""; -+ -+static void -+graphics_set_splash_helper(void) -+{ -+ if (backend) { -+ struct xpm *xpm = NULL; -+ -+ if (backend->graphics->splashimage) -+ xpm_free(backend->graphics->splashimage); -+ -+ if (splashpath[0]) -+ xpm = xpm_open(splashpath); -+ -+ if (xpm) { -+ backend->graphics->splashimage = xpm; -+ grub_strcpy(backend->graphics->splashpath, splashpath); -+ } else { -+ backend->graphics->splashimage = NULL; -+ backend->graphics->splashpath[0] = '\0'; -+ } -+ backend->reset_screen_geometry(backend); -+ } -+} -+ -+void -+graphics_set_splash(char *s) -+{ -+ if (s && s[0] != '\0') -+ grub_strcpy(splashpath, s); -+ else -+ splashpath[0] = '\0'; -+ graphics_set_splash_helper(); -+} -+ -+char * -+graphics_get_splash(void) -+{ -+ if (backend) -+ return backend->graphics->splashpath; -+ if (splashpath[0] != '\0') -+ return splashpath; -+ return NULL; -+} -+ -+struct xpm * -+graphics_get_splash_xpm(void) -+{ -+ if (backend) -+ return backend->graphics->splashimage; -+ return NULL; -+} -+ -+void -+graphics_putchar(int ch) -+{ -+ struct graphics *graphics; -+ position_t screensz; -+ int offset; -+ -+ void *old_term = current_term; -+ -+ if (!backend) -+ return; -+ -+ graphics = backend->graphics; -+ graphics_get_screen_rowscols(&screensz); -+ -+ ch &= 0xff; -+ -+ graphics_cursor(0); -+ -+ if (ch == '\n') { -+ if (graphics->fonty + 1 < screensz.y) { -+ graphics_setxy(graphics->fontx, graphics->fonty + 1); -+ } else -+ graphics_scroll(); -+ graphics_cursor(1); -+ return; -+ } else if (ch == '\r') { -+ graphics_setxy(0, graphics->fonty); -+ graphics_cursor(1); -+ return; -+ } -+ -+ graphics_cursor(0); -+ -+ offset = graphics->fontx + graphics->fonty * screensz.x; -+ graphics->text[offset] = ch; -+ graphics->text[offset] &= 0x00ff; -+ if (graphics->current_color & 0xf0) -+ graphics->text[offset] |= 0x100; -+ -+ graphics_cursor(0); -+ -+ if ((graphics->fontx + 1) >= screensz.x) { -+ graphics_setxy(0, graphics->fonty); -+ if (graphics->fonty + 1 < screensz.y) -+ graphics_setxy(0, graphics->fonty + 1); -+ else -+ graphics_scroll(); -+ } else { -+ graphics_setxy(graphics->fontx + 1, graphics->fonty); -+ } -+ -+ graphics_cursor(1); -+} -+ -+void -+graphics_set_font_position(position_t *pos) -+{ -+ if (backend) { -+ backend->graphics->fontx = pos->x; -+ backend->graphics->fonty = pos->y; -+ } -+} -+ -+void -+graphics_get_font_position(position_t *pos) -+{ -+ if (backend) { -+ pos->x = backend->graphics->fontx; -+ pos->y = backend->graphics->fonty; -+ return; -+ } -+ pos->x = -1; -+ pos->y = -1; -+} -+ -+void -+graphics_get_font_size(position_t *size) -+{ -+ size->x = 8; -+ size->y = 16; -+} -+ -+void -+graphics_setxy(int x, int y) -+{ -+ if (!backend) -+ return; -+ -+ if (backend->setxy) { -+ position_t pos = {x, y}; -+ backend->setxy(backend, &pos); -+ return; -+ } -+} -+ -+int -+graphics_getxy(void) -+{ -+ int ret = 0; -+ if (backend) { -+ if (backend->getxy) { -+ position_t pos; -+ backend->getxy(backend, &pos); -+ ret = ((pos.x & 0xff) << 8) | (pos.y & 0xff); -+ } else { -+ ret = ((backend->graphics->fontx & 0xff) << 8) | (backend->graphics->fonty & 0xff); -+ } -+ } -+ return ret; -+} -+ -+void -+graphics_scroll (void) -+{ -+ struct graphics *graphics; -+ position_t screensz; -+ int i; -+ unsigned short *text; -+ int linesz; -+ -+ if (!backend) -+ return; -+ -+ graphics = backend->graphics; -+ -+ /* we don't want to scroll recursively... that would be bad */ -+ if (!graphics->scroll) -+ return; -+ graphics->scroll = 0; -+ graphics_get_screen_rowscols(&screensz); -+ -+ text = graphics_get_text_buf(); -+ linesz = screensz.x * sizeof (text[0]); -+ for (i = 1; i < screensz.y; i++) { -+ unsigned short *prev = &text[(i-1) * screensz.x]; -+ unsigned short *this = prev + screensz.x; -+ -+ memmove(prev, this, linesz); -+ prev = this; -+ this += screensz.x; -+ } -+ graphics_setxy(0, screensz.y - 1); -+ for (i = 0; i < screensz.x; i++) { -+ graphics_putchar(' '); -+ //text[(screensz.y-1) + i] = ' '; -+ } -+ -+ graphics_clbl(0, 0, screensz.x, screensz.y, 1); -+ graphics_setxy(0, screensz.y - 1); -+ graphics->scroll = 1; -+} -+ -+void -+graphics_cursor(int set) -+{ -+ if (backend && backend->cursor) -+ backend->cursor(backend, set); -+} -+ -+void -+graphics_gotoxy(int x, int y) -+{ -+ position_t pos = {x,y}; -+ if (backend) { -+ if (backend->gotoxy) { -+ backend->gotoxy(backend, &pos); -+ } else { -+ graphics_cursor(0); -+ graphics_setxy(x, y); -+ graphics_cursor(1); -+ } -+ } -+} -+ -+void -+graphics_cls(void) -+{ -+ int x = 0, y = 0, xy; -+ unsigned short *text; -+ position_t screensz; -+ -+ graphics_get_screen_rowscols(&screensz); -+ text = graphics_get_text_buf(); -+ for (y = 0; y < screensz.y; y++) -+ for (x = 0; x < screensz.x; x++) -+ text[x + y * screensz.x] = ' '; -+ -+ if (backend) { -+ //int xy = graphics_getxy(); -+ -+ graphics_clbl(0, 0, screensz.x, screensz.y, 0); -+ //graphics_gotoxy(xy & 0xf0 >> 8, xy & 0xf); -+ graphics_gotoxy(0, 0); -+ } -+} -+ -+void -+graphics_clbl(int col, int row, int width, int height, int draw_text) -+{ -+ if (backend) { -+ int x = 0, y = 0, xy; -+ unsigned short *text; -+ position_t screensz; -+ -+ graphics_get_screen_rowscols(&screensz); -+ -+#if 0 -+ xy = graphics_getxy(); -+#endif -+ if (backend->clbl) { -+ backend->clbl(backend, col, row, width, height, draw_text); -+ } else { -+ for (y = 0; y < screensz.y; y++) { -+ for (x = 0; x < screensz.x; x++) { -+ graphics_setxy(x, y); -+ graphics_cursor(0); -+ } -+ } -+ } -+#if 0 -+ graphics_gotoxy(xy >> 8, xy & 0xf); -+#endif -+ } -+} -+ -+void -+graphics_setcolorstate (color_state state) -+{ -+ struct graphics *graphics; -+ if (!backend) -+ return; -+ -+ graphics = backend->graphics; -+ -+ switch (state) { -+ case COLOR_STATE_STANDARD: -+ graphics->current_color = graphics->standard_color; -+ break; -+ case COLOR_STATE_NORMAL: -+ graphics->current_color = graphics->normal_color; -+ break; -+ case COLOR_STATE_HIGHLIGHT: -+ graphics->current_color = graphics->highlight_color; -+ break; -+ default: -+ graphics->current_color = graphics->standard_color; -+ break; -+ } -+ -+ graphics->color_state = state; -+} -+ -+void -+graphics_setcolor (int normal_color, int highlight_color) -+{ -+ backend->graphics->normal_color = normal_color; -+ backend->graphics->highlight_color = highlight_color; -+ -+ graphics_setcolorstate (backend->graphics->color_state); -+} -+ -+int -+graphics_setcursor(int on) -+{ -+ /* FIXME: we don't have a cursor in graphics */ -+ return 0; -+} -+ -+int -+graphics_init(void) -+{ -+ struct graphics *graphics; -+ int i; -+ -+ if (graphics_inited) -+ return 1; -+ -+ if (backend) { -+ if (backend->enable(backend)) { -+ graphics_inited = 1; -+ graphics_set_splash_helper(); -+ return 1; -+ } -+ return 0; -+ } -+ -+ graphics = grub_malloc(sizeof (*graphics)); -+ if (!graphics) -+ return 0; -+ -+ grub_memset(graphics, '\0', sizeof (*graphics)); -+ -+ graphics->scroll = 1; -+ graphics->fontx = 0; -+ graphics->fonty = 0; -+ -+ graphics->standard_color = A_NORMAL; -+ graphics->normal_color = A_NORMAL; -+ graphics->highlight_color = A_REVERSE; -+ graphics->current_color = A_NORMAL; -+ graphics->color_state = COLOR_STATE_STANDARD; -+ -+ grub_memset(graphics->splashpath, '\0', sizeof (graphics->splashpath)); -+ -+ for(i = 0; backends[i] != NULL; i++) { -+ backend = backends[i]; -+ backend->graphics = graphics; -+ if (backend->enable(backend)) { -+ graphics_inited = 1; -+ graphics_set_splash_helper(); -+ return 1; -+ } -+ backend->graphics = NULL; -+ } -+ current_term = term_table; -+ grub_free(graphics->text); -+ grub_free(graphics); -+ return 0; -+} -+ -+void -+graphics_end(void) -+{ -+ if (backend && graphics_inited) { -+ graphics_inited = 0; -+ backend->disable(backend); -+ } -+} -+ -+#endif /* SUPPORT_GRAPHICS */ -diff --git a/efi/graphics.h b/efi/graphics.h -new file mode 100644 -index 0000000..ecf9e0e ---- /dev/null -+++ b/efi/graphics.h -@@ -0,0 +1,81 @@ -+#ifndef GRUB_EFI_GRAPHICS_H -+#define GRUB_EFI_GRAPHICS_H -+ -+#ifdef SUPPORT_GRAPHICS -+ -+#include -+#include "xpm.h" -+ -+#define VIDEO_TYPE_EFI 0x70 -+ -+typedef void pixel_t; -+struct graphics; -+ -+struct position { -+ int x; -+ int y; -+}; -+typedef struct position position_t; -+ -+extern void grub_efi_setup_gfx_pci (grub_efi_handle_t handle); -+ -+extern grub_uint16_t grub_console_getwh (void); -+extern void graphics_set_kernel_params(struct linux_kernel_params *params); -+extern void graphics_set_font_position(position_t *pos); -+extern void graphics_get_font_position(position_t *pos); -+extern void graphics_get_font_size(position_t *size); -+extern int graphics_get_screen_rowscols(position_t *size); -+extern int graphics_alloc_text_buf(void); -+extern unsigned short *graphics_get_text_buf(void); -+ -+extern int graphics_get_scroll(void); -+ -+extern char *graphics_get_splash(void); -+extern void graphics_setxy(int x, int y); -+extern void graphics_cls(void); -+extern void graphics_clbl(int x, int y, int width, int height, int draw_text); -+extern void graphics_setcolorstate (color_state state); -+extern void graphics_setcolor (int normal_color, int highlight_color); -+extern int graphics_setcursor(int on); -+extern int graphics_init(void); -+extern void graphics_end(void); -+extern struct xpm *graphics_get_splash_xpm(void); -+extern void graphics_cursor(int set); -+extern void graphics_scroll(void); -+ -+struct graphics_backend { -+ char *name; -+ struct graphics *graphics; -+ void *priv; -+ -+ int (*enable)(struct graphics_backend *backend); -+ void (*disable)(struct graphics_backend *backend); -+ -+ void (*set_kernel_params)(struct graphics_backend *backend, -+ struct linux_kernel_params *params); -+ -+ void (*clbl)(struct graphics_backend *backend, int col, int row, -+ int width, int height, -+ int draw_text); -+ -+ void (*set_palette)(struct graphics_backend *backend, -+ int idx, int red, int green, int blue); -+ pixel_t *(*get_pixel_idx)(struct graphics_backend *backend, int idx); -+ pixel_t *(*get_pixel_rgb)(struct graphics_backend *backend, -+ int red, int green, int blue); -+ void (*draw_pixel)(struct graphics_backend *backend, -+ position_t *pos, pixel_t *pixel); -+ -+ void (*reset_screen_geometry)(struct graphics_backend *backend); -+ void (*get_screen_size)(struct graphics_backend *backend, position_t *size); -+ void (*getxy)(struct graphics_backend *backend, position_t *pos); -+ void (*setxy)(struct graphics_backend *backend, position_t *pos); -+ void (*gotoxy)(struct graphics_backend *backend, position_t *pos); -+ void (*cursor)(struct graphics_backend *backend, int set); -+// void (*putchar)(struct graphics_backend *backend, int ch); -+}; -+ -+extern const unsigned char font8x16[]; -+ -+#endif /* SUPPORT_GRAPHCIS */ -+#endif /* GRUB_EFI_GRAPHICS_H */ -diff --git a/efi/grub/.gitignore b/efi/grub/.gitignore -new file mode 100644 -index 0000000..40a991e ---- /dev/null -+++ b/efi/grub/.gitignore -@@ -0,0 +1 @@ -+cpu -diff --git a/efi/grub/efi/api.h b/efi/grub/efi/api.h -new file mode 100644 -index 0000000..81a0b3f ---- /dev/null -+++ b/efi/grub/efi/api.h -@@ -0,0 +1,1716 @@ -+/* efi.h - declare EFI types and functions */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2006 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. -+ */ -+ -+#ifndef GRUB_EFI_API_HEADER -+#define GRUB_EFI_API_HEADER 1 -+ -+#include -+#include -+ -+/* For consistency and safety, we name the EFI-defined types differently. -+ All names are transformed into lower case, _t appended, and -+ grub_efi_ prepended. */ -+ -+/* Constants. */ -+#define GRUB_EFI_EVT_TIMER 0x80000000 -+#define GRUB_EFI_EVT_RUNTIME 0x40000000 -+#define GRUB_EFI_EVT_RUNTIME_CONTEXT 0x20000000 -+#define GRUB_EFI_EVT_NOTIFY_WAIT 0x00000100 -+#define GRUB_EFI_EVT_NOTIFY_SIGNAL 0x00000200 -+#define GRUB_EFI_EVT_SIGNAL_EXIT_BOOT_SERVICES 0x00000201 -+#define GRUB_EFI_EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE 0x60000202 -+ -+#define GRUB_EFI_TPL_APPLICATION 4 -+#define GRUB_EFI_TPL_CALLBACK 8 -+#define GRUB_EFI_TPL_NOTIFY 16 -+#define GRUB_EFI_TPL_HIGH_LEVEL 31 -+ -+#define GRUB_EFI_MEMORY_UC 0x0000000000000001 -+#define GRUB_EFI_MEMORY_WC 0x0000000000000002 -+#define GRUB_EFI_MEMORY_WT 0x0000000000000004 -+#define GRUB_EFI_MEMORY_WB 0x0000000000000008 -+#define GRUB_EFI_MEMORY_UCE 0x0000000000000010 -+#define GRUB_EFI_MEMORY_WP 0x0000000000001000 -+#define GRUB_EFI_MEMORY_RP 0x0000000000002000 -+#define GRUB_EFI_MEMORY_XP 0x0000000000004000 -+#define GRUB_EFI_MEMORY_RUNTIME 0x8000000000000000 -+ -+#define GRUB_EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL 0x00000001 -+#define GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL 0x00000002 -+#define GRUB_EFI_OPEN_PROTOCOL_TEST_PROTOCOL 0x00000004 -+#define GRUB_EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER 0x00000008 -+#define GRUB_EFI_OPEN_PROTOCOL_BY_DRIVER 0x00000010 -+#define GRUB_EFI_OPEN_PROTOCOL_BY_EXCLUSIVE 0x00000020 -+ -+#define GRUB_EFI_VARIABLE_NON_VOLATILE 0x0000000000000001 -+#define GRUB_EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002 -+#define GRUB_EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004 -+ -+#define GRUB_EFI_TIME_ADJUST_DAYLIGHT 0x01 -+#define GRUB_EFI_TIME_IN_DAYLIGHT 0x02 -+ -+#define GRUB_EFI_UNSPECIFIED_TIMEZONE 0x07FF -+ -+#define GRUB_EFI_OPTIONAL_PTR 0x00000001 -+ -+#define GRUB_EFI_PCI_IO_GUID \ -+ { 0x4cf5b200, 0x68b8, 0x4ca5, \ -+ { 0x9e, 0xec, 0xb2, 0x3e, 0x3f, 0x50, 0x02, 0x9a } \ -+ } -+ -+#define GRUB_EFI_PCI_ROOT_IO_GUID \ -+ { 0x2F707EBB, 0x4A1A, 0x11d4, \ -+ { 0x9A, 0x38, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D } \ -+ } -+ -+#define GRUB_EFI_LOADED_IMAGE_GUID \ -+ { 0x5b1b31a1, 0x9562, 0x11d2, \ -+ { 0x8e, 0x3f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \ -+ } -+ -+#define GRUB_EFI_DISK_IO_GUID \ -+ { 0xce345171, 0xba0b, 0x11d2, \ -+ { 0x8e, 0x4f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \ -+ } -+ -+#define GRUB_EFI_BLOCK_IO_GUID \ -+ { 0x964e5b21, 0x6459, 0x11d2, \ -+ { 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \ -+ } -+ -+#define GRUB_EFI_DEVICE_PATH_GUID \ -+ { 0x09576e91, 0x6d3f, 0x11d2, \ -+ { 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \ -+ } -+ -+#define GRUB_EFI_DEVICE_PATH_FROM_TEXT_GUID \ -+ { 0x05c99a21, 0xc70f, 0x4ad2, \ -+ { 0x8a, 0x5f, 0x35, 0xdf, 0x33, 0x43, 0xf5, 0x1e } \ -+ } -+ -+#define GRUB_EFI_GRAPHICS_OUTPUT_GUID \ -+ { 0x9042a9de, 0x23dc, 0x4a38, \ -+ { 0x96, 0xfb, 0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a } \ -+ } -+ -+#define GRUB_EFI_UGA_DRAW_GUID \ -+ { 0x982c298b, 0xf4fa, 0x41cb, \ -+ { 0xb8, 0x38, 0x77, 0xaa, 0x68, 0x8f, 0xb8, 0x39 } \ -+ } -+ -+#define GRUB_EFI_UGA_IO_GUID \ -+ { 0x61a4d49e, 0x6f68, 0x4f1b, \ -+ { 0xb9, 0x22, 0xa8, 0x6e, 0xed, 0xb, 0x7, 0xa2 } \ -+ } -+ -+#define GRUB_EFI_SIMPLE_FILE_SYSTEM_GUID \ -+ { 0x964e5b22, 0x6459, 0x11d2, \ -+ { 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \ -+ } -+ -+#define GRUB_EFI_SERIAL_IO_GUID \ -+ { 0xbb25cf6f, 0xf1d4, 0x11d2, \ -+ { 0x9a, 0x0c, 0x00, 0x90, 0x27, 0x3F, 0xc1, 0xfd } \ -+ } -+ -+/* Enumerations. */ -+enum grub_efi_timer_delay -+{ -+ GRUB_EFI_TIMER_CANCEL, -+ GRUB_EFI_TIMER_PERIODIC, -+ GRUB_EFI_TIMER_RELATIVE -+}; -+typedef enum grub_efi_timer_delay grub_efi_timer_delay_t; -+ -+enum grub_efi_allocate_type -+{ -+ GRUB_EFI_ALLOCATE_ANY_PAGES, -+ GRUB_EFI_ALLOCATE_MAX_ADDRESS, -+ GRUB_EFI_ALLOCATE_ADDRESS, -+ GRUB_EFI_MAX_ALLOCATION_TYPE -+}; -+typedef enum grub_efi_allocate_type grub_efi_allocate_type_t; -+ -+enum grub_efi_memory_type -+{ -+ GRUB_EFI_RESERVED_MEMORY_TYPE, -+ GRUB_EFI_LOADER_CODE, -+ GRUB_EFI_LOADER_DATA, -+ GRUB_EFI_BOOT_SERVICES_CODE, -+ GRUB_EFI_BOOT_SERVICES_DATA, -+ GRUB_EFI_RUNTIME_SERVICES_CODE, -+ GRUB_EFI_RUNTIME_SERVICES_DATA, -+ GRUB_EFI_CONVENTIONAL_MEMORY, -+ GRUB_EFI_UNUSABLE_MEMORY, -+ GRUB_EFI_ACPI_RECLAIM_MEMORY, -+ GRUB_EFI_ACPI_MEMORY_NVS, -+ GRUB_EFI_MEMORY_MAPPED_IO, -+ GRUB_EFI_MEMORY_MAPPED_IO_PORT_SPACE, -+ GRUB_EFI_PAL_CODE, -+ GRUB_EFI_MAX_MEMORY_TYPE -+}; -+typedef enum grub_efi_memory_type grub_efi_memory_type_t; -+ -+enum grub_efi_interface_type -+{ -+ GRUB_EFI_NATIVE_INTERFACE -+}; -+typedef enum grub_efi_interface_type grub_efi_interface_type_t; -+ -+enum grub_efi_locate_search_type -+{ -+ GRUB_EFI_ALL_HANDLES, -+ GRUB_EFI_BY_REGISTER_NOTIFY, -+ GRUB_EFI_BY_PROTOCOL -+}; -+typedef enum grub_efi_locate_search_type grub_efi_locate_search_type_t; -+ -+enum grub_efi_reset_type -+{ -+ GRUB_EFI_RESET_COLD, -+ GRUB_EFI_RESET_WARM, -+ GRUB_EFI_RESET_SHUTDOWN -+}; -+typedef enum grub_efi_reset_type grub_efi_reset_type_t; -+ -+/* Types. */ -+typedef char grub_efi_boolean_t; -+typedef long grub_efi_intn_t; -+typedef unsigned long grub_efi_uintn_t; -+typedef grub_int8_t grub_efi_int8_t; -+typedef grub_uint8_t grub_efi_uint8_t; -+typedef grub_int16_t grub_efi_int16_t; -+typedef grub_uint16_t grub_efi_uint16_t; -+typedef grub_int32_t grub_efi_int32_t; -+typedef grub_uint32_t grub_efi_uint32_t; -+typedef grub_int64_t grub_efi_int64_t; -+typedef grub_uint64_t grub_efi_uint64_t; -+typedef grub_uint8_t grub_efi_char8_t; -+typedef grub_uint16_t grub_efi_char16_t; -+ -+typedef grub_efi_intn_t grub_efi_status_t; -+ -+#define GRUB_EFI_ERROR_CODE(value) \ -+ ((1L << (sizeof (grub_efi_status_t) * 8 - 1)) | (value)) -+ -+#define GRUB_EFI_WARNING_CODE(value) (value) -+ -+#define GRUB_EFI_SUCCESS 0 -+ -+#define GRUB_EFI_LOAD_ERROR GRUB_EFI_ERROR_CODE (1) -+#define GRUB_EFI_INVALID_PARAMETER GRUB_EFI_ERROR_CODE (2) -+#define GRUB_EFI_UNSUPPORTED GRUB_EFI_ERROR_CODE (3) -+#define GRUB_EFI_BAD_BUFFER_SIZE GRUB_EFI_ERROR_CODE (4) -+#define GRUB_EFI_BUFFER_TOO_SMALL GRUB_EFI_ERROR_CODE (5) -+#define GRUB_EFI_NOT_READY GRUB_EFI_ERROR_CODE (6) -+#define GRUB_EFI_DEVICE_ERROR GRUB_EFI_ERROR_CODE (7) -+#define GRUB_EFI_WRITE_PROTECTED GRUB_EFI_ERROR_CODE (8) -+#define GRUB_EFI_OUT_OF_RESOURCES GRUB_EFI_ERROR_CODE (9) -+#define GRUB_EFI_VOLUME_CORRUPTED GRUB_EFI_ERROR_CODE (10) -+#define GRUB_EFI_VOLUME_FULL GRUB_EFI_ERROR_CODE (11) -+#define GRUB_EFI_NO_MEDIA GRUB_EFI_ERROR_CODE (12) -+#define GRUB_EFI_MEDIA_CHANGED GRUB_EFI_ERROR_CODE (13) -+#define GRUB_EFI_NOT_FOUND GRUB_EFI_ERROR_CODE (14) -+#define GRUB_EFI_ACCESS_DENIED GRUB_EFI_ERROR_CODE (15) -+#define GRUB_EFI_NO_RESPONSE GRUB_EFI_ERROR_CODE (16) -+#define GRUB_EFI_NO_MAPPING GRUB_EFI_ERROR_CODE (17) -+#define GRUB_EFI_TIMEOUT GRUB_EFI_ERROR_CODE (18) -+#define GRUB_EFI_NOT_STARTED GRUB_EFI_ERROR_CODE (19) -+#define GRUB_EFI_ALREADY_STARTED GRUB_EFI_ERROR_CODE (20) -+#define GRUB_EFI_ABORTED GRUB_EFI_ERROR_CODE (21) -+#define GRUB_EFI_ICMP_ERROR GRUB_EFI_ERROR_CODE (22) -+#define GRUB_EFI_TFTP_ERROR GRUB_EFI_ERROR_CODE (23) -+#define GRUB_EFI_PROTOCOL_ERROR GRUB_EFI_ERROR_CODE (24) -+#define GRUB_EFI_INCOMPATIBLE_VERSION GRUB_EFI_ERROR_CODE (25) -+#define GRUB_EFI_SECURITY_VIOLATION GRUB_EFI_ERROR_CODE (26) -+#define GRUB_EFI_CRC_ERROR GRUB_EFI_ERROR_CODE (27) -+ -+#define GRUB_EFI_WARN_UNKNOWN_GLYPH GRUB_EFI_WARNING_CODE (1) -+#define GRUB_EFI_WARN_DELETE_FAILURE GRUB_EFI_WARNING_CODE (2) -+#define GRUB_EFI_WARN_WRITE_FAILURE GRUB_EFI_WARNING_CODE (3) -+#define GRUB_EFI_WARN_BUFFER_TOO_SMALL GRUB_EFI_WARNING_CODE (4) -+ -+typedef void *grub_efi_handle_t; -+typedef void *grub_efi_event_t; -+typedef grub_efi_uint64_t grub_efi_lba_t; -+typedef grub_efi_uintn_t grub_efi_tpl_t; -+typedef grub_uint8_t grub_efi_mac_address_t[32]; -+typedef grub_uint8_t grub_efi_ipv4_address_t[4]; -+typedef grub_uint16_t grub_efi_ipv6_address_t[8]; -+typedef grub_uint8_t grub_efi_ip_address_t[8] __attribute__ ((aligned (4))); -+typedef grub_efi_uint64_t grub_efi_physical_address_t; -+typedef grub_efi_uint64_t grub_efi_virtual_address_t; -+ -+struct grub_efi_guid -+{ -+ grub_uint32_t data1; -+ grub_uint16_t data2; -+ grub_uint16_t data3; -+ grub_uint8_t data4[8]; -+} __attribute__ ((aligned (8))); -+typedef struct grub_efi_guid grub_efi_guid_t; -+ -+/* XXX although the spec does not specify the padding, this actually -+ must have the padding! */ -+struct grub_efi_memory_descriptor -+{ -+ grub_efi_uint32_t type; -+ grub_efi_uint32_t padding; -+ grub_efi_physical_address_t physical_start; -+ grub_efi_virtual_address_t virtual_start; -+ grub_efi_uint64_t num_pages; -+ grub_efi_uint64_t attribute; -+}; -+typedef struct grub_efi_memory_descriptor grub_efi_memory_descriptor_t; -+ -+/* Device Path definitions. */ -+struct grub_efi_device_path -+{ -+ grub_efi_uint8_t type; -+ grub_efi_uint8_t subtype; -+ grub_efi_uint8_t length[2]; -+}; -+typedef struct grub_efi_device_path grub_efi_device_path_t; -+/* XXX EFI does not define EFI_DEVICE_PATH_PROTOCOL but uses it. -+ It seems to be identical to EFI_DEVICE_PATH. */ -+typedef struct grub_efi_device_path grub_efi_device_path_protocol_t; -+ -+#define GRUB_EFI_DEVICE_PATH_TYPE(dp) ((dp)->type & 0x7f) -+#define GRUB_EFI_DEVICE_PATH_SUBTYPE(dp) ((dp)->subtype) -+#define GRUB_EFI_DEVICE_PATH_LENGTH(dp) \ -+ ((dp)->length[0] | ((grub_efi_uint16_t) ((dp)->length[1]) << 8)) -+ -+/* The End of Device Path nodes. */ -+#define GRUB_EFI_END_DEVICE_PATH_TYPE (0xff & 0x7f) -+ -+#define GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE 0xff -+#define GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE 0x01 -+ -+#define GRUB_EFI_END_ENTIRE_DEVICE_PATH(dp) \ -+ (GRUB_EFI_DEVICE_PATH_TYPE (dp) == GRUB_EFI_END_DEVICE_PATH_TYPE \ -+ && (GRUB_EFI_DEVICE_PATH_SUBTYPE (dp) \ -+ == GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE)) -+ -+#define GRUB_EFI_NEXT_DEVICE_PATH(dp) \ -+ ((grub_efi_device_path_t *) ((char *) (dp) \ -+ + GRUB_EFI_DEVICE_PATH_LENGTH (dp))) -+ -+/* Hardware Device Path. */ -+#define GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE 1 -+ -+#define GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE 1 -+ -+struct grub_efi_pci_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_uint8_t function; -+ grub_efi_uint8_t device; -+}; -+typedef struct grub_efi_pci_device_path grub_efi_pci_device_path_t; -+ -+#define GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE 2 -+ -+struct grub_efi_pccard_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_uint8_t function; -+}; -+typedef struct grub_efi_pccard_device_path grub_efi_pccard_device_path_t; -+ -+#define GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE 3 -+ -+struct grub_efi_memory_mapped_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_memory_type_t memory_type; -+ grub_efi_physical_address_t start_address; -+ grub_efi_physical_address_t end_address; -+}; -+typedef struct grub_efi_memory_mapped_device_path -+ grub_efi_memory_mapped_device_path_t; -+ -+#define GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE 4 -+ -+struct grub_efi_vendor_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_guid_t vendor_guid; -+ grub_efi_uint8_t vendor_defined_data[0]; -+}; -+typedef struct grub_efi_vendor_device_path grub_efi_vendor_device_path_t; -+ -+#define GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE 5 -+ -+struct grub_efi_controller_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_uint32_t controller_number; -+}; -+typedef struct grub_efi_controller_device_path -+ grub_efi_controller_device_path_t; -+ -+/* ACPI Device Path. */ -+#define GRUB_EFI_ACPI_DEVICE_PATH_TYPE 2 -+ -+#define GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE 1 -+ -+struct grub_efi_acpi_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_uint32_t hid; -+ grub_efi_uint32_t uid; -+}; -+typedef struct grub_efi_acpi_device_path grub_efi_acpi_device_path_t; -+ -+#define GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE 2 -+ -+struct grub_efi_expanded_acpi_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_uint32_t hid; -+ grub_efi_uint32_t uid; -+ grub_efi_uint32_t cid; -+ char hidstr[1]; -+}; -+typedef struct grub_efi_expanded_acpi_device_path -+ grub_efi_expanded_acpi_device_path_t; -+ -+#define GRUB_EFI_EXPANDED_ACPI_HIDSTR(dp) \ -+ (((grub_efi_expanded_acpi_device_path_t *) dp)->hidstr) -+#define GRUB_EFI_EXPANDED_ACPI_UIDSTR(dp) \ -+ (GRUB_EFI_EXPANDED_ACPI_HIDSTR(dp) \ -+ + grub_strlen (GRUB_EFI_EXPANDED_ACPI_HIDSTR(dp)) + 1) -+#define GRUB_EFI_EXPANDED_ACPI_CIDSTR(dp) \ -+ (GRUB_EFI_EXPANDED_ACPI_UIDSTR(dp) \ -+ + grub_strlen (GRUB_EFI_EXPANDED_ACPI_UIDSTR(dp)) + 1) -+ -+/* Messaging Device Path. */ -+#define GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE 3 -+ -+#define GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE 1 -+ -+struct grub_efi_atapi_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_uint8_t primary_secondary; -+ grub_efi_uint8_t slave_master; -+ grub_efi_uint16_t lun; -+}; -+typedef struct grub_efi_atapi_device_path grub_efi_atapi_device_path_t; -+ -+#define GRUB_EFI_SCSI_DEVICE_PATH_SUBTYPE 2 -+ -+struct grub_efi_scsi_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_uint16_t pun; -+ grub_efi_uint16_t lun; -+}; -+typedef struct grub_efi_scsi_device_path grub_efi_scsi_device_path_t; -+ -+#define GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE 3 -+ -+struct grub_efi_fibre_channel_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_uint32_t reserved; -+ grub_efi_uint64_t wwn; -+ grub_efi_uint64_t lun; -+}; -+typedef struct grub_efi_fibre_channel_device_path -+ grub_efi_fibre_channel_device_path_t; -+ -+#define GRUB_EFI_1394_DEVICE_PATH_SUBTYPE 4 -+ -+struct grub_efi_1394_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_uint32_t reserved; -+ grub_efi_uint64_t guid; -+}; -+typedef struct grub_efi_1394_device_path grub_efi_1394_device_path_t; -+ -+#define GRUB_EFI_USB_DEVICE_PATH_SUBTYPE 5 -+ -+struct grub_efi_usb_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_uint8_t parent_port_number; -+ grub_efi_uint8_t interface; -+}; -+typedef struct grub_efi_usb_device_path grub_efi_usb_device_path_t; -+ -+#define GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE 15 -+ -+struct grub_efi_usb_class_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_uint16_t vendor_id; -+ grub_efi_uint16_t product_id; -+ grub_efi_uint8_t device_class; -+ grub_efi_uint8_t device_subclass; -+ grub_efi_uint8_t device_protocol; -+}; -+typedef struct grub_efi_usb_class_device_path -+ grub_efi_usb_class_device_path_t; -+ -+#define GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE 6 -+ -+struct grub_efi_i2o_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_uint32_t tid; -+}; -+typedef struct grub_efi_i2o_device_path grub_efi_i2o_device_path_t; -+ -+#define GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE 11 -+ -+struct grub_efi_mac_address_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_mac_address_t mac_address; -+ grub_efi_uint8_t if_type; -+}; -+typedef struct grub_efi_mac_address_device_path -+ grub_efi_mac_address_device_path_t; -+ -+#define GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE 12 -+ -+struct grub_efi_ipv4_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_ipv4_address_t local_ip_address; -+ grub_efi_ipv4_address_t remote_ip_address; -+ grub_efi_uint16_t local_port; -+ grub_efi_uint16_t remote_port; -+ grub_efi_uint16_t protocol; -+ grub_efi_uint8_t static_ip_address; -+}; -+typedef struct grub_efi_ipv4_device_path grub_efi_ipv4_device_path_t; -+ -+#define GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE 13 -+ -+struct grub_efi_ipv6_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_ipv6_address_t local_ip_address; -+ grub_efi_ipv6_address_t remote_ip_address; -+ grub_efi_uint16_t local_port; -+ grub_efi_uint16_t remote_port; -+ grub_efi_uint16_t protocol; -+ grub_efi_uint8_t static_ip_address; -+}; -+typedef struct grub_efi_ipv6_device_path grub_efi_ipv6_device_path_t; -+ -+#define GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE 9 -+ -+struct grub_efi_infiniband_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_uint32_t resource_flags; -+ grub_efi_uint8_t port_gid[16]; -+ grub_efi_uint64_t remote_id; -+ grub_efi_uint64_t target_port_id; -+ grub_efi_uint64_t device_id; -+}; -+typedef struct grub_efi_infiniband_device_path -+ grub_efi_infiniband_device_path_t; -+ -+#define GRUB_EFI_UART_DEVICE_PATH_SUBTYPE 14 -+ -+struct grub_efi_uart_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_uint32_t reserved; -+ grub_efi_uint64_t baud_rate; -+ grub_efi_uint8_t data_bits; -+ grub_efi_uint8_t parity; -+ grub_efi_uint8_t stop_bits; -+}; -+typedef struct grub_efi_uart_device_path grub_efi_uart_device_path_t; -+ -+#define GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE 10 -+ -+struct grub_efi_vendor_messaging_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_guid_t vendor_guid; -+ grub_efi_uint8_t vendor_defined_data[0]; -+}; -+typedef struct grub_efi_vendor_messaging_device_path -+ grub_efi_vendor_messaging_device_path_t; -+ -+/* Media Device Path. */ -+#define GRUB_EFI_MEDIA_DEVICE_PATH_TYPE 4 -+ -+#define GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE 1 -+ -+struct grub_efi_hard_drive_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_uint32_t partition_number; -+ grub_efi_lba_t partition_start; -+ grub_efi_lba_t partition_size; -+ grub_efi_uint8_t partition_signature[16]; -+ grub_efi_uint8_t mbr_type; -+ grub_efi_uint8_t signature_type; -+}; -+typedef struct grub_efi_hard_drive_device_path -+ grub_efi_hard_drive_device_path_t; -+ -+#define GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE 2 -+ -+struct grub_efi_cdrom_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_uint32_t boot_entry; -+ grub_efi_lba_t partition_start; -+ grub_efi_lba_t partition_size; -+}; -+typedef struct grub_efi_cdrom_device_path grub_efi_cdrom_device_path_t; -+ -+#define GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE 3 -+ -+struct grub_efi_vendor_media_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_guid_t vendor_guid; -+ grub_efi_uint8_t vendor_defined_data[0]; -+}; -+typedef struct grub_efi_vendor_media_device_path -+ grub_efi_vendor_media_device_path_t; -+ -+#define GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE 4 -+ -+struct grub_efi_file_path_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_char16_t path_name[0]; -+}; -+typedef struct grub_efi_file_path_device_path -+ grub_efi_file_path_device_path_t; -+ -+#define GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE 5 -+ -+struct grub_efi_protocol_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_guid_t guid; -+}; -+typedef struct grub_efi_protocol_device_path grub_efi_protocol_device_path_t; -+ -+/* BIOS Boot Specification Device Path. */ -+#define GRUB_EFI_BIOS_DEVICE_PATH_TYPE 5 -+ -+#define GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE 1 -+ -+struct grub_efi_bios_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_uint16_t device_type; -+ grub_efi_uint16_t status_flags; -+ char description[0]; -+}; -+typedef struct grub_efi_bios_device_path grub_efi_bios_device_path_t; -+ -+struct grub_efi_device_path_from_text -+{ -+ grub_efi_device_path_t * (*convert_text_to_device_node) (const grub_efi_char16_t *text_device_node); -+ grub_efi_device_path_t * (*convert_text_to_device_path) (const grub_efi_char16_t *text_device_path); -+}; -+typedef struct grub_efi_device_path_from_text grub_efi_device_path_from_text_t; -+ -+struct grub_efi_open_protocol_information_entry -+{ -+ grub_efi_handle_t agent_handle; -+ grub_efi_handle_t controller_handle; -+ grub_efi_uint32_t attributes; -+ grub_efi_uint32_t open_count; -+}; -+typedef struct grub_efi_open_protocol_information_entry -+ grub_efi_open_protocol_information_entry_t; -+ -+struct grub_efi_time -+{ -+ grub_efi_uint16_t year; -+ grub_efi_uint8_t month; -+ grub_efi_uint8_t day; -+ grub_efi_uint8_t hour; -+ grub_efi_uint8_t minute; -+ grub_efi_uint8_t second; -+ grub_efi_uint8_t pad1; -+ grub_efi_uint32_t nanosecond; -+ grub_efi_int16_t time_zone; -+ grub_efi_uint8_t daylight; -+ grub_efi_uint8_t pad2; -+}; -+typedef struct grub_efi_time grub_efi_time_t; -+ -+struct grub_efi_time_capabilities -+{ -+ grub_efi_uint32_t resolution; -+ grub_efi_uint32_t accuracy; -+ grub_efi_boolean_t sets_to_zero; -+}; -+typedef struct grub_efi_time_capabilities grub_efi_time_capabilities_t; -+ -+struct grub_efi_input_key -+{ -+ grub_efi_uint16_t scan_code; -+ grub_efi_char16_t unicode_char; -+}; -+typedef struct grub_efi_input_key grub_efi_input_key_t; -+ -+struct grub_efi_simple_text_output_mode -+{ -+ grub_efi_int32_t max_mode; -+ grub_efi_int32_t mode; -+ grub_efi_int32_t attribute; -+ grub_efi_int32_t cursor_column; -+ grub_efi_int32_t cursor_row; -+ grub_efi_boolean_t cursor_visible; -+}; -+typedef struct grub_efi_simple_text_output_mode -+ grub_efi_simple_text_output_mode_t; -+ -+/* Tables. */ -+struct grub_efi_table_header -+{ -+ grub_efi_uint64_t signature; -+ grub_efi_uint32_t revision; -+ grub_efi_uint32_t header_size; -+ grub_efi_uint32_t crc32; -+ grub_efi_uint32_t reserved; -+}; -+typedef struct grub_efi_table_header grub_efi_table_header_t; -+ -+struct grub_efi_boot_services -+{ -+ grub_efi_table_header_t hdr; -+ -+ grub_efi_tpl_t (*raise_tpl) (grub_efi_tpl_t new_tpl); -+ -+ void (*restore_tpl) (grub_efi_tpl_t old_tpl); -+ -+ grub_efi_status_t -+ (*allocate_pages) (grub_efi_allocate_type_t type, -+ grub_efi_memory_type_t memory_type, -+ grub_efi_uintn_t pages, -+ grub_efi_physical_address_t * memory); -+ -+ grub_efi_status_t -+ (*free_pages) (grub_efi_physical_address_t memory, -+ grub_efi_uintn_t pages); -+ -+ grub_efi_status_t -+ (*get_memory_map) (grub_efi_uintn_t * memory_map_size, -+ grub_efi_memory_descriptor_t * memory_map, -+ grub_efi_uintn_t * map_key, -+ grub_efi_uintn_t * descriptor_size, -+ grub_efi_uint32_t * descriptor_version); -+ -+ grub_efi_status_t -+ (*allocate_pool) (grub_efi_memory_type_t pool_type, -+ grub_efi_uintn_t size, void **buffer); -+ -+ grub_efi_status_t (*free_pool) (void *buffer); -+ -+ grub_efi_status_t -+ (*create_event) (grub_efi_uint32_t type, -+ grub_efi_tpl_t notify_tpl, -+ void (*notify_function) (grub_efi_event_t event, -+ void *context), -+ void *notify_context, grub_efi_event_t * event); -+ -+ grub_efi_status_t -+ (*set_timer) (grub_efi_event_t event, -+ grub_efi_timer_delay_t type, -+ grub_efi_uint64_t trigger_time); -+ -+ grub_efi_status_t -+ (*wait_for_event) (grub_efi_uintn_t num_events, -+ grub_efi_event_t * event, grub_efi_uintn_t * index); -+ -+ grub_efi_status_t (*signal_event) (grub_efi_event_t event); -+ -+ grub_efi_status_t (*close_event) (grub_efi_event_t event); -+ -+ grub_efi_status_t (*check_event) (grub_efi_event_t event); -+ -+ grub_efi_status_t -+ (*install_protocol_interface) (grub_efi_handle_t * handle, -+ grub_efi_guid_t * protocol, -+ grub_efi_interface_type_t interface_type, -+ void *interface); -+ -+ grub_efi_status_t -+ (*reinstall_protocol_interface) (grub_efi_handle_t handle, -+ grub_efi_guid_t * protocol, -+ void *old_interface, void *new_inteface); -+ -+ grub_efi_status_t -+ (*uninstall_protocol_interface) (grub_efi_handle_t handle, -+ grub_efi_guid_t * protocol, -+ void *interface); -+ -+ grub_efi_status_t -+ (*handle_protocol) (grub_efi_handle_t handle, -+ grub_efi_guid_t * protocol, void **interface); -+ -+ void *reserved; -+ -+ grub_efi_status_t -+ (*register_protocol_notify) (grub_efi_guid_t * protocol, -+ grub_efi_event_t event, void **registration); -+ -+ grub_efi_status_t -+ (*locate_handle) (grub_efi_locate_search_type_t search_type, -+ grub_efi_guid_t * protocol, -+ void *search_key, -+ grub_efi_uintn_t * buffer_size, -+ grub_efi_handle_t * buffer); -+ -+ grub_efi_status_t -+ (*locate_device_path) (grub_efi_guid_t * protocol, -+ grub_efi_device_path_t ** device_path, -+ grub_efi_handle_t * device); -+ -+ grub_efi_status_t -+ (*install_configuration_table) (grub_efi_guid_t * guid, void *table); -+ -+ grub_efi_status_t -+ (*load_image) (grub_efi_boolean_t boot_policy, -+ grub_efi_handle_t parent_image_handle, -+ grub_efi_device_path_t * file_path, -+ void *source_buffer, -+ grub_efi_uintn_t source_size, -+ grub_efi_handle_t * image_handle); -+ -+ grub_efi_status_t -+ (*start_image) (grub_efi_handle_t image_handle, -+ grub_efi_uintn_t * exit_data_size, -+ grub_efi_char16_t ** exit_data); -+ -+ grub_efi_status_t -+ (*exit) (grub_efi_handle_t image_handle, -+ grub_efi_status_t exit_status, -+ grub_efi_uintn_t exit_data_size, -+ grub_efi_char16_t * exit_data) __attribute__ ((noreturn)); -+ -+ grub_efi_status_t (*unload_image) (grub_efi_handle_t image_handle); -+ -+ grub_efi_status_t -+ (*exit_boot_services) (grub_efi_handle_t image_handle, -+ grub_efi_uintn_t map_key); -+ -+ grub_efi_status_t (*get_next_monotonic_count) (grub_efi_uint64_t * count); -+ -+ grub_efi_status_t (*stall) (grub_efi_uintn_t microseconds); -+ -+ grub_efi_status_t -+ (*set_watchdog_timer) (grub_efi_uintn_t timeout, -+ grub_efi_uint64_t watchdog_code, -+ grub_efi_uintn_t data_size, -+ grub_efi_char16_t * watchdog_data); -+ -+ grub_efi_status_t -+ (*connect_controller) (grub_efi_handle_t controller_handle, -+ grub_efi_handle_t * driver_image_handle, -+ grub_efi_device_path_protocol_t * -+ remaining_device_path, -+ grub_efi_boolean_t recursive); -+ -+ grub_efi_status_t -+ (*disconnect_controller) (grub_efi_handle_t controller_handle, -+ grub_efi_handle_t driver_image_handle, -+ grub_efi_handle_t child_handle); -+ -+ grub_efi_status_t -+ (*open_protocol) (grub_efi_handle_t handle, -+ grub_efi_guid_t * protocol, -+ void **interface, -+ grub_efi_handle_t agent_handle, -+ grub_efi_handle_t controller_handle, -+ grub_efi_uint32_t attributes); -+ -+ grub_efi_status_t -+ (*close_protocol) (grub_efi_handle_t handle, -+ grub_efi_guid_t * protocol, -+ grub_efi_handle_t agent_handle, -+ grub_efi_handle_t controller_handle); -+ -+ grub_efi_status_t -+ (*open_protocol_information) (grub_efi_handle_t handle, -+ grub_efi_guid_t * protocol, -+ grub_efi_open_protocol_information_entry_t -+ ** entry_buffer, -+ grub_efi_uintn_t * entry_count); -+ -+ grub_efi_status_t -+ (*protocols_per_handle) (grub_efi_handle_t handle, -+ grub_efi_guid_t *** protocol_buffer, -+ grub_efi_uintn_t * protocol_buffer_count); -+ -+ grub_efi_status_t -+ (*locate_handle_buffer) (grub_efi_locate_search_type_t search_type, -+ grub_efi_guid_t * protocol, -+ void *search_key, -+ grub_efi_uintn_t * no_handles, -+ grub_efi_handle_t ** buffer); -+ -+ grub_efi_status_t -+ (*locate_protocol) (grub_efi_guid_t * protocol, -+ void *registration, void **interface); -+ -+ grub_efi_status_t -+ (*install_multiple_protocol_interfaces) (grub_efi_handle_t * handle, ...); -+ -+ grub_efi_status_t -+ (*uninstall_multiple_protocol_interfaces) (grub_efi_handle_t handle, ...); -+ -+ grub_efi_status_t -+ (*calculate_crc32) (void *data, -+ grub_efi_uintn_t data_size, -+ grub_efi_uint32_t * crc32); -+ -+ void (*copy_mem) (void *destination, void *source, grub_efi_uintn_t length); -+ -+ void -+ (*set_mem) (void *buffer, grub_efi_uintn_t size, grub_efi_uint8_t value); -+}; -+typedef struct grub_efi_boot_services grub_efi_boot_services_t; -+ -+struct grub_efi_runtime_services -+{ -+ grub_efi_table_header_t hdr; -+ -+ grub_efi_status_t -+ (*get_time) (grub_efi_time_t * time, -+ grub_efi_time_capabilities_t * capabilities); -+ -+ grub_efi_status_t (*set_time) (grub_efi_time_t * time); -+ -+ grub_efi_status_t -+ (*get_wakeup_time) (grub_efi_boolean_t * enabled, -+ grub_efi_boolean_t * pending, grub_efi_time_t * time); -+ -+ grub_efi_status_t -+ (*set_wakeup_time) (grub_efi_boolean_t enabled, grub_efi_time_t * time); -+ -+ grub_efi_status_t -+ (*set_virtual_address_map) (grub_efi_uintn_t memory_map_size, -+ grub_efi_uintn_t descriptor_size, -+ grub_efi_uint32_t descriptor_version, -+ grub_efi_memory_descriptor_t * virtual_map); -+ -+ grub_efi_status_t -+ (*convert_pointer) (grub_efi_uintn_t debug_disposition, void **address); -+ -+ grub_efi_status_t -+ (*get_variable) (grub_efi_char16_t * variable_name, -+ grub_efi_guid_t * vendor_guid, -+ grub_efi_uint32_t * attributes, -+ grub_efi_uintn_t * data_size, void *data); -+ -+ grub_efi_status_t -+ (*get_next_variable_name) (grub_efi_uintn_t * variable_name_size, -+ grub_efi_char16_t * variable_name, -+ grub_efi_guid_t * vendor_guid); -+ -+ grub_efi_status_t -+ (*set_variable) (grub_efi_char16_t * variable_name, -+ grub_efi_guid_t * vendor_guid, -+ grub_efi_uint32_t attributes, -+ grub_efi_uintn_t data_size, void *data); -+ -+ grub_efi_status_t -+ (*get_next_high_monotonic_count) (grub_efi_uint32_t * high_count); -+ -+ void -+ (*reset_system) (grub_efi_reset_type_t reset_type, -+ grub_efi_status_t reset_status, -+ grub_efi_uintn_t data_size, -+ grub_efi_char16_t * reset_data); -+}; -+typedef struct grub_efi_runtime_services grub_efi_runtime_services_t; -+ -+struct grub_efi_configuration_table -+{ -+ grub_efi_guid_t vendor_guid; -+ void *vendor_table; -+}; -+typedef struct grub_efi_configuration_table grub_efi_configuration_table_t; -+ -+struct grub_efi_simple_input_interface -+{ -+ grub_efi_status_t -+ (*reset) (struct grub_efi_simple_input_interface * this, -+ grub_efi_boolean_t extended_verification); -+ -+ grub_efi_status_t -+ (*read_key_stroke) (struct grub_efi_simple_input_interface * this, -+ grub_efi_input_key_t * key); -+ -+ grub_efi_event_t wait_for_key; -+}; -+typedef struct grub_efi_simple_input_interface -+ grub_efi_simple_input_interface_t; -+ -+struct grub_efi_simple_text_output_interface -+{ -+ grub_efi_status_t -+ (*reset) (struct grub_efi_simple_text_output_interface * this, -+ grub_efi_boolean_t extended_verification); -+ -+ grub_efi_status_t -+ (*output_string) (struct grub_efi_simple_text_output_interface * this, -+ grub_efi_char16_t * string); -+ -+ grub_efi_status_t -+ (*test_string) (struct grub_efi_simple_text_output_interface * this, -+ grub_efi_char16_t * string); -+ -+ grub_efi_status_t -+ (*query_mode) (struct grub_efi_simple_text_output_interface * this, -+ grub_efi_uintn_t mode_number, -+ grub_efi_uintn_t * columns, grub_efi_uintn_t * rows); -+ -+ grub_efi_status_t -+ (*set_mode) (struct grub_efi_simple_text_output_interface * this, -+ grub_efi_uintn_t mode_number); -+ -+ grub_efi_status_t -+ (*set_attributes) (struct grub_efi_simple_text_output_interface * this, -+ grub_efi_uintn_t attribute); -+ -+ grub_efi_status_t -+ (*clear_screen) (struct grub_efi_simple_text_output_interface * this); -+ -+ grub_efi_status_t -+ (*set_cursor_position) (struct grub_efi_simple_text_output_interface * -+ this, grub_efi_uintn_t column, -+ grub_efi_uintn_t row); -+ -+ grub_efi_status_t -+ (*enable_cursor) (struct grub_efi_simple_text_output_interface * this, -+ grub_efi_boolean_t visible); -+ -+ grub_efi_simple_text_output_mode_t *mode; -+}; -+typedef struct grub_efi_simple_text_output_interface -+ grub_efi_simple_text_output_interface_t; -+ -+#define GRUB_EFI_BLACK 0x00 -+#define GRUB_EFI_BLUE 0x01 -+#define GRUB_EFI_GREEN 0x02 -+#define GRUB_EFI_CYAN 0x03 -+#define GRUB_EFI_RED 0x04 -+#define GRUB_EFI_MAGENTA 0x05 -+#define GRUB_EFI_BROWN 0x06 -+#define GRUB_EFI_LIGHTGRAY 0x07 -+#define GRUB_EFI_BRIGHT 0x08 -+#define GRUB_EFI_DARKGRAY 0x08 -+#define GRUB_EFI_LIGHTBLUE 0x09 -+#define GRUB_EFI_LIGHTGREEN 0x0A -+#define GRUB_EFI_LIGHTCYAN 0x0B -+#define GRUB_EFI_LIGHTRED 0x0C -+#define GRUB_EFI_LIGHTMAGENTA 0x0D -+#define GRUB_EFI_YELLOW 0x0E -+#define GRUB_EFI_WHITE 0x0F -+ -+#define GRUB_EFI_BACKGROUND_BLACK 0x00 -+#define GRUB_EFI_BACKGROUND_BLUE 0x10 -+#define GRUB_EFI_BACKGROUND_GREEN 0x20 -+#define GRUB_EFI_BACKGROUND_CYAN 0x30 -+#define GRUB_EFI_BACKGROUND_RED 0x40 -+#define GRUB_EFI_BACKGROUND_MAGENTA 0x50 -+#define GRUB_EFI_BACKGROUND_BROWN 0x60 -+#define GRUB_EFI_BACKGROUND_LIGHTGRAY 0x70 -+ -+#define GRUB_EFI_TEXT_ATTR(fg, bg) ((fg) | ((bg))) -+ -+struct grub_efi_system_table -+{ -+ grub_efi_table_header_t hdr; -+ grub_efi_char16_t *firmware_vendor; -+ grub_efi_uint32_t firmware_revision; -+ grub_efi_handle_t console_in_handler; -+ grub_efi_simple_input_interface_t *con_in; -+ grub_efi_handle_t console_out_handler; -+ grub_efi_simple_text_output_interface_t *con_out; -+ grub_efi_handle_t standard_error_handle; -+ grub_efi_simple_text_output_interface_t *std_err; -+ grub_efi_runtime_services_t *runtime_services; -+ grub_efi_boot_services_t *boot_services; -+ grub_efi_uintn_t num_table_entries; -+ grub_efi_configuration_table_t *configuration_table; -+}; -+typedef struct grub_efi_system_table grub_efi_system_table_t; -+ -+struct grub_efi_loaded_image -+{ -+ grub_efi_uint32_t revision; -+ grub_efi_handle_t parent_handle; -+ grub_efi_system_table_t *system_table; -+ -+ grub_efi_handle_t device_handle; -+ grub_efi_device_path_t *file_path; -+ void *reserved; -+ -+ grub_efi_uint32_t load_options_size; -+ void *load_options; -+ -+ void *image_base; -+ grub_efi_uint64_t image_size; -+ grub_efi_memory_type_t image_code_type; -+ grub_efi_memory_type_t image_data_type; -+ -+ grub_efi_status_t (*unload) (grub_efi_handle_t image_handle); -+}; -+typedef struct grub_efi_loaded_image grub_efi_loaded_image_t; -+ -+struct grub_efi_disk_io -+{ -+ grub_efi_uint64_t revision; -+ grub_efi_status_t (*read) (struct grub_efi_disk_io * this, -+ grub_efi_uint32_t media_id, -+ grub_efi_uint64_t offset, -+ grub_efi_uintn_t buffer_size, void *buffer); -+ grub_efi_status_t (*write) (struct grub_efi_disk_io * this, -+ grub_efi_uint32_t media_id, -+ grub_efi_uint64_t offset, -+ grub_efi_uintn_t buffer_size, void *buffer); -+}; -+typedef struct grub_efi_disk_io grub_efi_disk_io_t; -+ -+struct grub_efi_block_io_media -+{ -+ grub_efi_uint32_t media_id; -+ grub_efi_boolean_t removable_media; -+ grub_efi_boolean_t media_present; -+ grub_efi_boolean_t logical_partition; -+ grub_efi_boolean_t read_only; -+ grub_efi_boolean_t write_caching; -+ grub_efi_uint8_t pad[3]; -+ grub_efi_uint32_t block_size; -+ grub_efi_uint32_t io_align; -+ grub_efi_uint8_t pad2[4]; -+ grub_efi_lba_t last_block; -+}; -+typedef struct grub_efi_block_io_media grub_efi_block_io_media_t; -+ -+struct grub_efi_block_io -+{ -+ grub_efi_uint64_t revision; -+ grub_efi_block_io_media_t *media; -+ grub_efi_status_t (*reset) (struct grub_efi_block_io * this, -+ grub_efi_boolean_t extended_verification); -+ grub_efi_status_t (*read_blocks) (struct grub_efi_block_io * this, -+ grub_efi_uint32_t media_id, -+ grub_efi_lba_t lba, -+ grub_efi_uintn_t buffer_size, -+ void *buffer); -+ grub_efi_status_t (*write_blocks) (struct grub_efi_block_io * this, -+ grub_efi_uint32_t media_id, -+ grub_efi_lba_t lba, -+ grub_efi_uintn_t buffer_size, -+ void *buffer); -+ grub_efi_status_t (*flush_blocks) (struct grub_efi_block_io * this); -+}; -+typedef struct grub_efi_block_io grub_efi_block_io_t; -+ -+struct grub_efi_pixel_bitmask -+{ -+ grub_efi_uint32_t red_mask; -+ grub_efi_uint32_t green_mask; -+ grub_efi_uint32_t blue_mask; -+ grub_efi_uint32_t reserved_mask; -+}; -+typedef struct grub_efi_pixel_bitmask grub_efi_pixel_bitmask_t; -+ -+enum grub_efi_graphics_pixel_format -+{ -+ GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR, -+ GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR, -+ GRUB_EFI_PIXEL_BIT_MASK, -+ GRUB_EFI_PIXEL_BLT_ONLY, -+}; -+typedef enum grub_efi_graphics_pixel_format grub_efi_graphics_pixel_format_t; -+ -+struct grub_efi_graphics_output_mode_information -+{ -+ grub_efi_uint32_t version; -+ grub_efi_uint32_t horizontal_resolution; -+ grub_efi_uint32_t vertical_resolution; -+ grub_efi_graphics_pixel_format_t pixel_format; -+ grub_efi_pixel_bitmask_t pixel_information; -+ grub_efi_uint32_t pixels_per_scan_line; -+}; -+typedef struct grub_efi_graphics_output_mode_information -+ grub_efi_graphics_output_mode_information_t; -+ -+struct grub_efi_graphics_output_bgrr_pixel -+{ -+ grub_efi_uint8_t blue; -+ grub_efi_uint8_t green; -+ grub_efi_uint8_t red; -+ grub_efi_uint8_t reserved; -+}; -+typedef struct grub_efi_graphics_output_bgrr_pixel -+ grub_efi_graphics_output_bgrr_pixel_t; -+typedef struct grub_efi_graphics_output_bgrr_pixel -+ grub_efi_graphics_output_blt_pixel_t; -+typedef struct grub_efi_graphics_output_bgrr_pixel -+ grub_efi_uga_pixel_t; -+ -+struct grub_efi_graphics_output_rgbr_pixel -+{ -+ grub_efi_uint8_t red; -+ grub_efi_uint8_t green; -+ grub_efi_uint8_t blue; -+ grub_efi_uint8_t reserved; -+}; -+typedef struct grub_efi_graphics_output_rgbr_pixel -+ grub_efi_graphics_output_rgbr_pixel_t; -+ -+union grub_efi_graphics_output_pixel -+{ -+ grub_efi_graphics_output_rgbr_pixel_t rgbr; -+ grub_efi_graphics_output_bgrr_pixel_t bgrr; -+ grub_efi_uint32_t raw; -+}; -+typedef union grub_efi_graphics_output_pixel -+ grub_efi_graphics_output_pixel_t; -+ -+enum grub_efi_graphics_output_blt_operation -+{ -+ GRUB_EFI_BLT_VIDEO_FILL, -+ GRUB_EFI_BLT_VIDEO_TO_BLT_BUFFER, -+ GRUB_EFI_BLT_BUFFER_TO_VIDEO, -+ GRUB_EFI_BLT_VIDEO_TO_VIDEO, -+}; -+typedef enum grub_efi_graphics_output_blt_operation -+ grub_efi_graphics_output_blt_operation_t; -+ -+struct grub_efi_graphics_output_mode -+{ -+ grub_efi_uint32_t max_mode; -+ grub_efi_uint32_t mode; -+ grub_efi_graphics_output_mode_information_t *info; -+ grub_efi_uintn_t size_of_info; -+ grub_efi_physical_address_t frame_buffer_base; -+ grub_efi_uintn_t frame_buffer_size; -+}; -+typedef struct grub_efi_graphics_output_mode grub_efi_graphics_output_mode_t; -+ -+struct grub_efi_graphics_output -+{ -+ grub_efi_status_t (*query_mode) (struct grub_efi_graphics_output * this, -+ grub_efi_uint32_t mode_number, -+ grub_efi_uintn_t * size_of_info, -+ grub_efi_graphics_output_mode_information_t -+ ** info); -+ grub_efi_status_t (*set_mode) (struct grub_efi_graphics_output * this, -+ grub_efi_uint32_t mode_number); -+ -+ grub_efi_status_t (*blt) (struct grub_efi_graphics_output * this, -+ grub_efi_graphics_output_blt_pixel_t * blt_buffer, -+ grub_efi_graphics_output_blt_operation_t -+ blt_operation, grub_efi_uintn_t src_x, -+ grub_efi_uintn_t src_y, grub_efi_uintn_t dest_x, -+ grub_efi_uintn_t dest_y, grub_efi_uintn_t width, -+ grub_efi_uintn_t height, grub_efi_uintn_t delta); -+ grub_efi_graphics_output_mode_t *mode; -+}; -+typedef struct grub_efi_graphics_output grub_efi_graphics_output_t; -+ -+typedef enum { -+ EfiUgaVideoFill, -+ EfiUgaVideoToBltBuffer, -+ EfiUgaBltBufferToVideo, -+ EfiUgaVideoToVideo, -+ EfiUgaBltMax -+} grub_efi_uga_blt_operation_t; -+ -+typedef enum { -+ grub_efi_pci_io_width_uint8, -+ grub_efi_pci_io_width_uint16, -+ grub_efi_pci_io_width_uint32, -+ grub_efi_pci_io_width_uint64, -+ grub_efi_pci_io_width_fifo_uint8, -+ grub_efi_pci_io_width_fifo_uint16, -+ grub_efi_pci_io_width_fifo_uint32, -+ grub_efi_pci_io_width_fifo_uint64, -+ grub_efi_pci_io_width_fill_uint8, -+ grub_efi_pci_io_width_fill_uint16, -+ grub_efi_pci_io_width_fill_uint32, -+ grub_efi_pci_io_width_fill_uint64, -+ grub_efi_pci_io_width_maximum -+} grub_efi_pci_io_width; -+ -+struct grub_efi_pci_io; -+ -+typedef struct -+{ -+ grub_efi_status_t(*read) (struct grub_efi_pci_io *this, -+ grub_efi_pci_io_width width, -+ grub_efi_uint8_t bar_index, -+ grub_efi_uint64_t offset, -+ grub_efi_uintn_t count, -+ void *buffer); -+ grub_efi_status_t(*write) (struct grub_efi_pci_io *this, -+ grub_efi_pci_io_width width, -+ grub_efi_uint8_t bar_index, -+ grub_efi_uint64_t offset, -+ grub_efi_uintn_t count, -+ void *buffer); -+} grub_efi_pci_io_access_t; -+ -+typedef struct -+{ -+ grub_efi_status_t( *read) (struct grub_efi_pci_io *this, -+ grub_efi_pci_io_width width, -+ grub_efi_uint32_t offset, -+ grub_efi_uintn_t count, -+ void *buffer); -+ grub_efi_status_t( *write) (struct grub_efi_pci_io *this, -+ grub_efi_pci_io_width width, -+ grub_efi_uint32_t offset, -+ grub_efi_uintn_t count, -+ void *buffer); -+} grub_efi_pci_io_config_access_t; -+ -+typedef enum { -+ grub_efi_pci_io_operation_bus_masterread, -+ grub_efi_pci_io_operation_bus_masterwrite, -+ grub_efi_pci_io_operation_bus_master_common_buffer, -+ grub_efi_pci_io_operation_maximum -+} grub_efi_pci_io_operation_t; -+ -+#define GRUB_EFI_PCI_IO_ATTRIBUTE_ISA_IO 0x0002 -+#define GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_PALETTE_IO 0x0004 -+#define GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_MEMORY 0x0008 -+#define GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_IO 0x0010 -+#define GRUB_EFI_PCI_IO_ATTRIBUTE_IDE_PRIMARY_IO 0x0020 -+#define GRUB_EFI_PCI_IO_ATTRIBUTE_IDE_SECONDARY_IO 0x0040 -+#define GRUB_EFI_PCI_IO_ATTRIBUTE_MEMORY_WRITE_COMBINE 0x0080 -+#define GRUB_EFI_PCI_IO_ATTRIBUTE_IO 0x0100 -+#define GRUB_EFI_PCI_IO_ATTRIBUTE_MEMORY 0x0200 -+#define GRUB_EFI_PCI_IO_ATTRIBUTE_BUS_MASTER 0x0400 -+#define GRUB_EFI_PCI_IO_ATTRIBUTE_MEMORY_CACHED 0x0800 -+#define GRUB_EFI_PCI_IO_ATTRIBUTE_MEMORY_DISABLE 0x1000 -+#define GRUB_EFI_PCI_IO_ATTRIBUTE_EMBEDDED_DEVICE 0x2000 -+#define GRUB_EFI_PCI_IO_ATTRIBUTE_EMBEDDED_ROM 0x4000 -+#define GRUB_EFI_PCI_IO_ATTRIBUTE_DUAL_ADDRESS_CYCLE 0x8000 -+#define GRUB_EFI_PCI_IO_ATTRIBUTE_ISA_IO_16 0x10000 -+#define GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_PALETTE_IO_16 0x20000 -+#define GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_IO_16 0x40000 -+ -+typedef enum { -+ grub_efi_pci_io_attribute_operation_get, -+ grub_efi_pci_io_attribute_operation_set, -+ grub_efi_pci_io_attribute_operation_enable, -+ grub_efi_pci_io_attribute_operation_disable, -+ grub_efi_pci_io_attribute_operation_supported, -+ grub_efi_pci_io_attribute_operation_maximum -+} grub_efi_pci_io_attribute_operation_t; -+ -+struct grub_efi_pci_io { -+ grub_efi_status_t (*poll_mem) (struct grub_efi_pci_io *this, -+ grub_efi_pci_io_width width, -+ grub_efi_uint8_t bar_ndex, -+ grub_efi_uint64_t offset, -+ grub_efi_uint64_t mask, -+ grub_efi_uint64_t value, -+ grub_efi_uint64_t delay, -+ grub_efi_uint64_t *result); -+ grub_efi_status_t (*poll_io) (struct grub_efi_pci_io *this, -+ grub_efi_pci_io_width Width, -+ grub_efi_uint8_t bar_index, -+ grub_efi_uint64_t offset, -+ grub_efi_uint64_t mask, -+ grub_efi_uint64_t value, -+ grub_efi_uint64_t delay, -+ grub_efi_uint64_t *result); -+ grub_efi_pci_io_access_t mem; -+ grub_efi_pci_io_access_t io; -+ grub_efi_pci_io_config_access_t pci; -+ grub_efi_status_t (*copy_mem) (struct grub_efi_pci_io *this, -+ grub_efi_pci_io_width width, -+ grub_efi_uint8_t dest_bar_index, -+ grub_efi_uint64_t dest_offset, -+ grub_efi_uint8_t src_bar_index, -+ grub_efi_uint64_t src_offset, -+ grub_efi_uintn_t count); -+ grub_efi_status_t (*map) ( struct grub_efi_pci_io *this, -+ grub_efi_pci_io_operation_t operation, -+ void *host_address, -+ grub_efi_uintn_t *number_of_bytes, -+ grub_efi_uint64_t *device_address, -+ void **mapping); -+ grub_efi_status_t (*unmap) (struct grub_efi_pci_io *this, -+ void *mapping); -+ grub_efi_status_t (*allocate_buffer) (struct grub_efi_pci_io *this, -+ grub_efi_allocate_type_t type, -+ grub_efi_memory_type_t memory_type, -+ grub_efi_uintn_t pages, -+ void **host_address, -+ grub_efi_uint64_t attributes); -+ grub_efi_status_t (*free_buffer) (struct grub_efi_pci_io *this, -+ grub_efi_allocate_type_t type, -+ grub_efi_memory_type_t memory_type, -+ grub_efi_uintn_t pages, -+ void **host_address, -+ grub_efi_uint64_t attributes); -+ grub_efi_status_t (*flush) (struct grub_efi_pci_io *this); -+ grub_efi_status_t (*get_location) (struct grub_efi_pci_io *this, -+ grub_efi_uintn_t *segment_number, -+ grub_efi_uintn_t *bus_number, -+ grub_efi_uintn_t *device_number, -+ grub_efi_uintn_t *function_number); -+ grub_efi_status_t (*attributes) (struct grub_efi_pci_io *this, -+ grub_efi_pci_io_attribute_operation_t operation, -+ grub_efi_uint64_t attributes, -+ grub_efi_uint64_t *result); -+ grub_efi_status_t (*get_bar_attributes) (struct grub_efi_pci_io *this, -+ grub_efi_uint8_t bar_index, -+ grub_efi_uint64_t *supports, -+ void **resources); -+ grub_efi_status_t (*set_bar_attributes) (struct grub_efi_pci_io *this, -+ grub_efi_uint64_t attributes, -+ grub_efi_uint8_t bar_index, -+ grub_efi_uint64_t *offset, -+ grub_efi_uint64_t *length); -+ grub_efi_uint64_t rom_size; -+ void *rom_image; -+}; -+typedef struct grub_efi_pci_io grub_efi_pci_io_t; -+ -+struct grub_efi_pci_root_io; -+ -+typedef struct -+{ -+ grub_efi_status_t(*read) (struct grub_efi_pci_root_io *this, -+ grub_efi_pci_io_width width, -+ grub_efi_uint64_t address, -+ grub_efi_uintn_t count, -+ void *buffer); -+ grub_efi_status_t(*write) (struct grub_efi_pci_root_io *this, -+ grub_efi_pci_io_width width, -+ grub_efi_uint64_t address, -+ grub_efi_uintn_t count, -+ void *buffer); -+} grub_efi_pci_root_io_access_t; -+ -+typedef enum { -+ grub_efi_pci_root_io_operation_bus_master_read, -+ grub_efi_pci_root_io_operation_bus_master_write, -+ grub_efi_pci_root_io_operation_bus_master_common_buffer, -+ grub_efi_pci_root_io_operation_bus_master_read_64, -+ grub_efi_pci_root_io_operation_bus_master_write_64, -+ grub_efi_pci_root_io_operation_bus_master_common_buffer_64, -+ grub_efi_pci_root_io_operation_maximum -+} grub_efi_pci_root_io_operation_t; -+ -+struct grub_efi_pci_root_io { -+ grub_efi_handle_t parent; -+ grub_efi_status_t (*poll_mem) (struct grub_efi_pci_root_io *this, -+ grub_efi_pci_io_width width, -+ grub_efi_uint64_t address, -+ grub_efi_uint64_t mask, -+ grub_efi_uint64_t value, -+ grub_efi_uint64_t delay, -+ grub_efi_uint64_t *result); -+ grub_efi_status_t (*poll_io) (struct grub_efi_pci_root_io *this, -+ grub_efi_pci_io_width Width, -+ grub_efi_uint64_t address, -+ grub_efi_uint64_t mask, -+ grub_efi_uint64_t value, -+ grub_efi_uint64_t delay, -+ grub_efi_uint64_t *result); -+ grub_efi_pci_root_io_access_t mem; -+ grub_efi_pci_root_io_access_t io; -+ grub_efi_pci_root_io_access_t pci; -+ grub_efi_status_t (*copy_mem) (struct grub_efi_pci_root_io *this, -+ grub_efi_pci_io_width width, -+ grub_efi_uint64_t dest_offset, -+ grub_efi_uint64_t src_offset, -+ grub_efi_uintn_t count); -+ grub_efi_status_t (*map) ( struct grub_efi_pci_root_io *this, -+ grub_efi_pci_root_io_operation_t operation, -+ void *host_address, -+ grub_efi_uintn_t *number_of_bytes, -+ grub_efi_uint64_t *device_address, -+ void **mapping); -+ grub_efi_status_t (*unmap) (struct grub_efi_pci_root_io *this, -+ void *mapping); -+ grub_efi_status_t (*allocate_buffer) (struct grub_efi_pci_root_io *this, -+ grub_efi_allocate_type_t type, -+ grub_efi_memory_type_t memory_type, -+ grub_efi_uintn_t pages, -+ void **host_address, -+ grub_efi_uint64_t attributes); -+ grub_efi_status_t (*free_buffer) (struct grub_efi_pci_root_io *this, -+ grub_efi_uintn_t pages, -+ void **host_address); -+ grub_efi_status_t (*flush) (struct grub_efi_pci_root_io *this); -+ grub_efi_status_t (*get_attributes) (struct grub_efi_pci_root_io *this, -+ grub_efi_uint64_t *supports, -+ void **resources); -+ grub_efi_status_t (*set_attributes) (struct grub_efi_pci_root_io *this, -+ grub_efi_uint64_t attributes, -+ grub_efi_uint64_t *offset, -+ grub_efi_uint64_t *length); -+ grub_efi_status_t (*configuration) (struct grub_efi_pci_root_io *this, -+ void **resources); -+}; -+ -+typedef struct grub_efi_pci_root_io grub_efi_pci_root_io_t; -+ -+struct grub_efi_uga_draw -+{ -+ grub_efi_status_t (*get_mode) (struct grub_efi_uga_draw * this, -+ grub_efi_uint32_t *horizontal_resolution, -+ grub_efi_uint32_t *vertical_resolution, -+ grub_efi_uint32_t *color_depth, -+ grub_efi_uint32_t *refresh_rate); -+ grub_efi_status_t (*set_mode) (struct grub_efi_uga_draw * this, -+ grub_efi_uint32_t horizontal_resolution, -+ grub_efi_uint32_t vertical_resolution, -+ grub_efi_uint32_t color_depth, -+ grub_efi_uint32_t refresh_rate); -+ grub_efi_status_t (*blt) (struct grub_efi_uga_draw * this, -+ grub_efi_uga_pixel_t *blt_buffer, -+ grub_efi_uga_blt_operation_t blt_operation, -+ grub_efi_uintn_t source_x, -+ grub_efi_uintn_t source_y, -+ grub_efi_uintn_t destination_x, -+ grub_efi_uintn_t destination_y, -+ grub_efi_uintn_t width, -+ grub_efi_uintn_t height, -+ grub_efi_uintn_t delta); -+}; -+typedef struct grub_efi_uga_draw grub_efi_uga_draw_t; -+ -+typedef grub_uint32_t grub_uga_status_t; -+ -+typedef enum { -+ UgaDtParentBus = 1, -+ UgaDtGraphicsController, -+ UgaDtOutputController, -+ UgaDtOutputPort, -+ UgaDtOther -+} grub_uga_device_type_t; -+ -+typedef grub_efi_uint32_t grub_uga_device_id_t; -+ -+struct grub_uga_device_data { -+ grub_uga_device_type_t device_type; -+ grub_uga_device_id_t device_id; -+ grub_efi_uint32_t device_context_size; -+ grub_efi_uint32_t shared_context_size; -+}; -+typedef struct grub_uga_device_data grub_uga_device_data_t; -+ -+struct grub_uga_device { -+ void *device_context; -+ void *shared_context; -+ void *runtime_context; -+ struct grub_uga_device *parent_device; -+ void *bus_io_services; -+ void *stdio_services; -+ grub_uga_device_data_t device_data; -+}; -+typedef struct grub_uga_device grub_uga_device_t; -+ -+typedef enum { -+ UgaIoGetVersion = 1, -+ UgaIoGetChildDevice, -+ UgaIoStartDevice, -+ UgaIoStopDevice, -+ UgaIoFlushDevice, -+ UgaIoResetDevice, -+ UgaIoGetDeviceState, -+ UgaIoSetDeviceState, -+ UgaIoSetPowerState, -+ UgaIoGetMemoryConfiguration, -+ UgaIoSetVideoMode, -+ UgaIoCopyRectangle, -+ UgaIoGetEdidSegment, -+ UgaIoDeviceChannelOpen, -+ UgaIoDeviceChannelClose, -+ UgaIoDeviceChannelRead, -+ UgaIoDeviceChannelWrite, -+ UgaIoGetPersistentDataSize, -+ UgaIoGetPersistentData, -+ UgaIoSetPersistentData, -+ UgaIoGetDevicePropertySize, -+ UgaIoGetDeviceProperty, -+ UgaIoBtPrivateInterface -+} grub_uga_io_request_code_t; -+ -+struct grub_uga_io_request { -+ grub_uga_io_request_code_t io_request_code; -+ void *in_buffer; -+ grub_efi_uint64_t in_buffer_size; -+ grub_efi_uint64_t bytes_returned; -+}; -+typedef struct grub_uga_io_request grub_uga_io_request_t; -+ -+struct grub_efi_uga_io -+{ -+ grub_efi_status_t (*create_device) (struct grub_efi_uga_io * this, -+ grub_uga_device_t *parent_device, -+ grub_uga_device_data_t *device_data, -+ void *runtime_context, -+ grub_uga_device_t **device); -+ grub_efi_status_t (*delete_device) (struct grub_efi_uga_io * this, -+ grub_uga_device_t *device); -+ grub_uga_status_t (*dispatch_service) (grub_uga_device_t *device, -+ grub_uga_io_request_t *io_request); -+}; -+typedef struct grub_efi_uga_io grub_efi_uga_io_t; -+ -+/* XXX PJFIX add uga driver handoff stuff */ -+ -+// File Open Modes -+#define GRUB_EFI_FILE_MODE_READ 0x0000000000000001ULL -+#define GRUB_EFI_FILE_MODE_WRITE 0x0000000000000002ULL -+#define GRUB_EFI_FILE_MODE_CREATE 0x8000000000000000ULL -+ -+// File Attributes -+#define GRUB_EFI_FILE_READ_ONLY 0x0000000000000001ULL -+#define GRUB_EFI_FILE_HIDDEN 0x0000000000000002ULL -+#define GRUB_EFI_FILE_SYSTEM 0x0000000000000004ULL -+#define GRUB_EFI_FILE_RESERVED 0x0000000000000008ULL -+#define GRUB_EFI_FILE_DIRECTORY 0x0000000000000010ULL -+#define GRUB_EFI_FILE_ARCHIVE 0x0000000000000020ULL -+#define GRUB_EFI_FILE_VALID_ATTR 0x0000000000000037ULL -+ -+struct grub_efi_file -+{ -+ grub_efi_uint64_t revision; -+ grub_efi_status_t (*open) (struct grub_efi_file * this, -+ struct grub_efi_file ** new_handle, -+ grub_efi_char16_t * file_name, -+ grub_efi_uint64_t open_mode, -+ grub_efi_uint64_t attributes); -+ grub_efi_status_t (*close) (struct grub_efi_file * this); -+ grub_efi_status_t (*delete) (struct grub_efi_file * this); -+ grub_efi_status_t (*read) (struct grub_efi_file * this, -+ grub_efi_uintn_t * buffer_size, -+ void * buffer); -+ grub_efi_status_t (*write) (struct grub_efi_file * this, -+ grub_efi_uintn_t * buffer_size, -+ void * buffer); -+ grub_efi_status_t (*get_position) (struct grub_efi_file * this, -+ grub_efi_uint64_t * position); -+ grub_efi_status_t (*set_position) (struct grub_efi_file * this, -+ grub_efi_uint64_t position); -+ grub_efi_status_t (*get_info) (struct grub_efi_file * this, -+ grub_efi_guid_t * information_type, -+ grub_efi_uintn_t * buffer_size, -+ void * buffer); -+ grub_efi_status_t (*set_info) (struct grub_efi_file * this, -+ grub_efi_guid_t * information_type, -+ grub_efi_uintn_t buffer_size, -+ void * buffer); -+ grub_efi_status_t (*flush) (struct grub_efi_file * this); -+}; -+typedef struct grub_efi_file grub_efi_file_t; -+ -+struct grub_efi_simple_file_system -+{ -+ grub_efi_uint64_t revision; -+ grub_efi_status_t (*open_volume) (struct grub_efi_simple_file_system * this, -+ grub_efi_file_t ** root); -+}; -+typedef struct grub_efi_simple_file_system grub_efi_simple_file_system_t; -+ -+struct grub_efi_serial_io_mode -+{ -+ grub_efi_uint32_t control_mask; -+ grub_efi_uint32_t timeout; -+ grub_efi_uint64_t baud_rate; -+ grub_efi_uint32_t receive_fifo_depth; -+ grub_efi_uint32_t data_bits; -+ grub_efi_uint32_t parity; -+ grub_efi_uint32_t stop_bits; -+}; -+typedef struct grub_efi_serial_io_mode grub_efi_serial_io_mode_t; -+ -+enum grub_efi_parity -+{ -+ GRUB_EFI_DEFAULT_PARITY, -+ GRUB_EFI_NO_PARITY, -+ GRUB_EFI_EVEN_PARITY, -+ GRUB_EFI_ODD_PARITY, -+ GRUB_EFI_MARK_PARITY, -+ GRUB_EFI_SPACE_PARITY -+}; -+typedef enum grub_efi_parity grub_efi_parity_t; -+ -+enum grub_efi_stop_bits -+{ -+ GRUB_EFI_DEFAULT_STOP_BITS, -+ GRUB_EFI_ONE_STOP_BIT, -+ GRUB_EFI_ONE_FIVE_STOP_BITS, -+ GRUB_EFI_TWO_STOP_BITS -+}; -+typedef enum grub_efi_stop_bits grub_efi_stop_bits_t; -+ -+#define GRUB_EFI_SERIAL_CLEAR_TO_SEND 0x0010 -+#define GRUB_EFI_SERIAL_DATA_SET_READY 0x0020 -+#define GRUB_EFI_SERIAL_RING_INDICATE 0x0040 -+#define GRUB_EFI_SERIAL_CARRIER_DETECT 0x0080 -+#define GRUB_EFI_SERIAL_REQUEST_TO_SEND 0x0002 -+#define GRUB_EFI_SERIAL_DATA_TERMINAL_READY 0x0001 -+#define GRUB_EFI_SERIAL_INPUT_BUFFER_EMPTY 0x0100 -+#define GRUB_EFI_SERIAL_OUTPUT_BUFFER_EMPTY 0x0200 -+#define GRUB_EFI_SERIAL_HARDWARE_LOOPBACK_ENABLE 0x1000 -+#define GRUB_EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE 0x2000 -+#define GRUB_EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE 0x4000 -+ -+struct grub_efi_serial_io -+{ -+ grub_efi_uint32_t revision; -+ grub_efi_status_t (*reset) (struct grub_efi_serial_io * this); -+ grub_efi_status_t (*set_attributes) (struct grub_efi_serial_io * this, -+ grub_efi_uint64_t baud_rate, -+ grub_efi_uint32_t receive_fifo_depth, -+ grub_efi_uint32_t timeout, -+ grub_efi_parity_t parity, -+ grub_efi_uint8_t data_bits, -+ grub_efi_stop_bits_t stop_bits); -+ grub_efi_status_t (*set_control_bits) (struct grub_efi_serial_io * this, -+ grub_efi_uint32_t control); -+ grub_efi_status_t (*get_control_bits) (struct grub_efi_serial_io * this, -+ grub_efi_uint32_t * control); -+ grub_efi_status_t (*write) (struct grub_efi_serial_io * this, -+ grub_efi_uintn_t * buffer_size, -+ void * buffer); -+ grub_efi_status_t (*read) (struct grub_efi_serial_io * this, -+ grub_efi_uintn_t * buffer_size, -+ void * buffer); -+ grub_efi_serial_io_mode_t *mode; -+}; -+typedef struct grub_efi_serial_io grub_efi_serial_io_t; -+ -+#endif /* ! GRUB_EFI_API_HEADER */ -diff --git a/efi/grub/efi/console_control.h b/efi/grub/efi/console_control.h -new file mode 100644 -index 0000000..ffc4305 ---- /dev/null -+++ b/efi/grub/efi/console_control.h -@@ -0,0 +1,59 @@ -+/* console_control.h - definitions of the console control protocol */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2006 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. -+ */ -+ -+/* The console control protocol is not a part of the EFI spec, -+ but defined in Intel's Sample Implementation. */ -+ -+#ifndef GRUB_EFI_CONSOLE_CONTROL_HEADER -+#define GRUB_EFI_CONSOLE_CONTROL_HEADER 1 -+ -+#define GRUB_EFI_CONSOLE_CONTROL_GUID \ -+ { 0xf42f7782, 0x12e, 0x4c12, \ -+ { 0x99, 0x56, 0x49, 0xf9, 0x43, 0x4, 0xf7, 0x21 } \ -+ } -+ -+enum grub_efi_screen_mode -+{ -+ GRUB_EFI_SCREEN_TEXT, -+ GRUB_EFI_SCREEN_GRAPHICS, -+ GRUB_EFI_SCREEN_TEXT_MAX_VALUE -+}; -+typedef enum grub_efi_screen_mode grub_efi_screen_mode_t; -+ -+struct grub_efi_console_control_protocol -+{ -+ grub_efi_status_t -+ (*get_mode) (struct grub_efi_console_control_protocol * this, -+ grub_efi_screen_mode_t * mode, -+ grub_efi_boolean_t * uga_exists, -+ grub_efi_boolean_t * std_in_locked); -+ -+ grub_efi_status_t -+ (*set_mode) (struct grub_efi_console_control_protocol * this, -+ grub_efi_screen_mode_t mode); -+ -+ grub_efi_status_t -+ (*lock_std_in) (struct grub_efi_console_control_protocol * this, -+ grub_efi_char16_t * password); -+}; -+typedef struct grub_efi_console_control_protocol -+ grub_efi_console_control_protocol_t; -+ -+#endif /* ! GRUB_EFI_CONSOLE_CONTROL_HEADER */ -diff --git a/efi/grub/efi/efi.h b/efi/grub/efi/efi.h -new file mode 100644 -index 0000000..301f9d9 ---- /dev/null -+++ b/efi/grub/efi/efi.h -@@ -0,0 +1,85 @@ -+/* efi.h - declare variables and functions for EFI support */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2006 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. -+ */ -+ -+#ifndef GRUB_EFI_EFI_HEADER -+#define GRUB_EFI_EFI_HEADER 1 -+ -+#include -+#include -+ -+/* Functions. */ -+grub_efi_status_t -+grub_efi_locate_device_path (grub_efi_guid_t *protocol, -+ grub_efi_device_path_t **dp, -+ grub_efi_handle_t *handle); -+grub_efi_status_t -+grub_efi_locate_handle_buffer (grub_efi_locate_search_type_t search_type, -+ grub_efi_guid_t *protocol, -+ void *search_key, -+ grub_efi_uintn_t *no_handles, -+ grub_efi_handle_t **buffer); -+void *grub_efi_locate_protocol (grub_efi_guid_t * protocol, -+ void *registration); -+grub_efi_handle_t *grub_efi_locate_handle (grub_efi_locate_search_type_t -+ search_type, -+ grub_efi_guid_t * protocol, -+ void *search_key, -+ grub_efi_uintn_t * num_handles); -+void *grub_efi_open_protocol (grub_efi_handle_t handle, -+ grub_efi_guid_t * protocol, -+ grub_efi_uint32_t attributes); -+int grub_efi_set_text_mode (int on); -+void grub_efi_stall (grub_efi_uintn_t microseconds); -+void *grub_efi_allocate_pool (grub_efi_uintn_t size); -+void grub_efi_free_pool (void *buffer); -+void *grub_efi_allocate_anypages (grub_efi_uintn_t pages); -+void *grub_efi_allocate_pages (grub_efi_physical_address_t address, -+ grub_efi_uintn_t pages); -+void *grub_efi_allocate_runtime_pages (grub_efi_physical_address_t address, -+ grub_efi_uintn_t pages); -+void -+grub_efi_free_pages (grub_efi_physical_address_t address, -+ grub_efi_uintn_t pages); -+int -+grub_efi_get_memory_map (grub_efi_uintn_t * map_key, -+ grub_efi_uintn_t * descriptor_size, -+ grub_efi_uint32_t * descriptor_version); -+grub_efi_loaded_image_t *grub_efi_get_loaded_image (grub_efi_handle_t -+ image_handle); -+void grub_efi_print_device_path (grub_efi_device_path_t * dp); -+char *grub_efi_get_filename (grub_efi_device_path_t * dp); -+grub_efi_device_path_t *grub_efi_get_device_path (grub_efi_handle_t handle); -+int grub_efi_exit_boot_services (grub_efi_uintn_t map_key); -+ -+void grub_efi_mm_init (void); -+void grub_efi_mm_fini (void); -+void grub_efi_init (void); -+void grub_efi_fini (void); -+void grub_efi_set_prefix (void); -+ -+/* Variables. */ -+extern void *mmap_buf; -+extern grub_efi_uintn_t mmap_size; -+extern grub_efi_uintn_t mmap_pages; -+ -+extern grub_efi_system_table_t *grub_efi_system_table; -+extern grub_efi_handle_t grub_efi_image_handle; -+ -+#endif /* ! GRUB_EFI_EFI_HEADER */ -diff --git a/efi/grub/efi/eficall.h b/efi/grub/efi/eficall.h -new file mode 100644 -index 0000000..2e79e04 ---- /dev/null -+++ b/efi/grub/efi/eficall.h -@@ -0,0 +1,162 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2006 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. -+ */ -+ -+#ifndef _EFI_CALL_INCLUDE_ -+#define _EFI_CALL_INCLUDE_ 1 -+ -+#include -+ -+#ifndef __x86_64__ -+#ifdef EFI_FUNCTION_WRAPPER -+#undef EFI_FUNCTION_WRAPPER -+#endif -+#endif -+ -+#ifdef EFI_FUNCTION_WRAPPER -+typedef long EFI_STATUS; -+ -+EFI_STATUS x64_call0 (unsigned long func); -+EFI_STATUS x64_call1 (unsigned long func, unsigned long a); -+EFI_STATUS x64_call2 (unsigned long func, unsigned long a, unsigned long b); -+EFI_STATUS x64_call3 (unsigned long func, unsigned long a, -+ unsigned long b, unsigned long c); -+EFI_STATUS x64_call4 (unsigned long func, unsigned long a, -+ unsigned long b, unsigned long c, unsigned long d); -+EFI_STATUS x64_call5 (unsigned long func, unsigned long a, -+ unsigned long b, unsigned long c, -+ unsigned long d, unsigned long e); -+EFI_STATUS x64_call6 (unsigned long func, unsigned long a, -+ unsigned long b, unsigned long c, -+ unsigned long d, unsigned long e, unsigned long f); -+EFI_STATUS x64_call7 (unsigned long func, unsigned long a, -+ unsigned long b, unsigned long c, -+ unsigned long d, unsigned long e, -+ unsigned long f, unsigned long g); -+EFI_STATUS x64_call8 (unsigned long func, unsigned long a, -+ unsigned long b, unsigned long c, -+ unsigned long d, unsigned long e, -+ unsigned long f, unsigned long g, -+ unsigned long h); -+EFI_STATUS x64_call9 (unsigned long func, unsigned long a, -+ unsigned long b, unsigned long c, -+ unsigned long d, unsigned long e, -+ unsigned long f, unsigned long g, -+ unsigned long h, unsigned long i); -+EFI_STATUS x64_call10(unsigned long func, unsigned long a, -+ unsigned long b, unsigned long c, -+ unsigned long d, unsigned long e, -+ unsigned long f, unsigned long g, -+ unsigned long h, unsigned long i, -+ unsigned long j); -+ -+#define Call_Service(func) x64_call0((unsigned long)func) -+ -+#define Call_Service_1(func,a) x64_call1((unsigned long)func, \ -+ (unsigned long)a) -+ -+#define Call_Service_2(func,a,b) x64_call2((unsigned long)func, \ -+ (unsigned long)a, \ -+ (unsigned long)b) -+ -+#define Call_Service_3(func,a,b,c) x64_call3((unsigned long)func, \ -+ (unsigned long)a, \ -+ (unsigned long)b, \ -+ (unsigned long)c) -+ -+#define Call_Service_4(func,a,b,c,d) x64_call4((unsigned long)func, \ -+ (unsigned long)a, \ -+ (unsigned long)b, \ -+ (unsigned long)c, \ -+ (unsigned long)d) -+ -+#define Call_Service_5(func,a,b,c,d,e) x64_call5((unsigned long)func, \ -+ (unsigned long)a, \ -+ (unsigned long)b, \ -+ (unsigned long)c, \ -+ (unsigned long)d, \ -+ (unsigned long)e) -+ -+#define Call_Service_6(func,a,b,c,d,e,f) x64_call6((unsigned long)func, \ -+ (unsigned long)a, \ -+ (unsigned long)b, \ -+ (unsigned long)c, \ -+ (unsigned long)d, \ -+ (unsigned long)e, \ -+ (unsigned long)f) -+ -+#define Call_Service_7(func,a,b,c,d,e,f,g) x64_call7((unsigned long)func, \ -+ (unsigned long)a, \ -+ (unsigned long)b, \ -+ (unsigned long)c, \ -+ (unsigned long)d, \ -+ (unsigned long)e, \ -+ (unsigned long)f, \ -+ (unsigned long)g) -+ -+#define Call_Service_8(func,a,b,c,d,e,f,g,h) x64_call8((unsigned long)func, \ -+ (unsigned long)a, \ -+ (unsigned long)b, \ -+ (unsigned long)c, \ -+ (unsigned long)d, \ -+ (unsigned long)e, \ -+ (unsigned long)f, \ -+ (unsigned long)g, \ -+ (unsigned long)h) -+ -+#define Call_Service_9(func,a,b,c,d,e,f,g,h,i) x64_call9((unsigned long)func, \ -+ (unsigned long)a, \ -+ (unsigned long)b, \ -+ (unsigned long)c, \ -+ (unsigned long)d, \ -+ (unsigned long)e, \ -+ (unsigned long)f, \ -+ (unsigned long)g, \ -+ (unsigned long)h, \ -+ (unsigned long)i) -+ -+#define Call_Service_10(func,a,b,c,d,e,f,g,h,i,j) \ -+ x64_call10((unsigned long)func, \ -+ (unsigned long)a, \ -+ (unsigned long)b, \ -+ (unsigned long)c, \ -+ (unsigned long)d, \ -+ (unsigned long)e, \ -+ (unsigned long)f, \ -+ (unsigned long)g, \ -+ (unsigned long)h, \ -+ (unsigned long)i, \ -+ (unsigned long)j) -+ -+#else -+ -+typedef long EFI_STATUS; -+#define Call_Service(func) func() -+#define Call_Service_1(func,a) func(a) -+#define Call_Service_2(func,a,b) func(a,b) -+#define Call_Service_3(func,a,b,c) func(a,b,c) -+#define Call_Service_4(func,a,b,c,d) func(a,b,c,d) -+#define Call_Service_5(func,a,b,c,d,e) func(a,b,c,d,e) -+#define Call_Service_6(func,a,b,c,d,e,f) func(a,b,c,d,e,f) -+#define Call_Service_7(func,a,b,c,d,e,f,g) func(a,b,c,d,e,f,g) -+#define Call_Service_8(func,a,b,c,d,e,f,g,h) func(a,b,c,d,e,f,g,h) -+#define Call_Service_9(func,a,b,c,d,e,f,g,h,i) func(a,b,c,d,e,f,g,h,i) -+#define Call_Service_10(func,a,b,c,d,e,f,g,h,i,j) func(a,b,c,d,e,f,g,h,i,j) -+#endif -+ -+#endif -diff --git a/efi/grub/efi/misc.h b/efi/grub/efi/misc.h -new file mode 100644 -index 0000000..e06a2fb ---- /dev/null -+++ b/efi/grub/efi/misc.h -@@ -0,0 +1,60 @@ -+/* misc.h - prototypes for misc EFI functions */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2002,2003,2005,2006 Free Software Foundation, Inc. -+ * -+ * GRUB 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 GRUB; if not, write to the Free Software -+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -+ */ -+ -+#ifndef GRUB_EFI_MISC_HEADER -+#define GRUB_EFI_MISC_HEADER 1 -+ -+struct e820_entry; -+void e820_map_from_efi_map (struct e820_entry *e820_map, -+ int *e820_nr_map, -+ grub_efi_memory_descriptor_t *memory_map, -+ grub_efi_uintn_t desc_size, -+ grub_efi_uintn_t memory_map_size); -+ -+/* Initialize the console system. */ -+void grub_console_init (void); -+/* Finish the console system. */ -+void grub_console_fini (void); -+ -+void grub_efidisk_init (void); -+void grub_efidisk_fini (void); -+grub_efi_handle_t grub_efidisk_get_current_bdev_handle (void); -+int grub_get_drive_partition_from_bdev_handle (grub_efi_handle_t handle, -+ unsigned long *drive, -+ unsigned long *partition); -+ -+char *grub_efi_file_path_to_path_name (grub_efi_device_path_t *file_path); -+void grub_load_saved_default (grub_efi_handle_t dev_handle); -+ -+grub_efi_device_path_t * -+find_last_device_path (const grub_efi_device_path_t *dp); -+grub_efi_device_path_t * -+find_parent_device_path (const grub_efi_device_path_t *dp); -+grub_efi_device_path_t * -+duplicate_device_path (const grub_efi_device_path_t *dp); -+int -+compare_device_paths (const grub_efi_device_path_t *dp1, -+ const grub_efi_device_path_t *dp2); -+grub_efi_device_path_t * -+device_path_from_utf8 (const char *device); -+ -+extern grub_efi_guid_t simple_file_system_guid; -+ -+#endif /* ! GRUB_EFI_MISC_HEADER */ -diff --git a/efi/grub/efi/net.h b/efi/grub/efi/net.h -new file mode 100644 -index 0000000..e69de29 -diff --git a/efi/grub/efi/time.h b/efi/grub/efi/time.h -new file mode 100644 -index 0000000..55bfe68 ---- /dev/null -+++ b/efi/grub/efi/time.h -@@ -0,0 +1,31 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2006 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., 51 Franklin Street, Fifth Floor, Boston, -+ * MA 02110-1301, USA. -+ */ -+ -+#ifndef GRUB_EFI_TIME_HEADER -+#define GRUB_EFI_TIME_HEADER 1 -+ -+#include -+ -+#define GRUB_TICKS_PER_SECOND 18 -+ -+/* Return the real time in ticks. */ -+grub_uint32_t grub_get_rtc (void); -+ -+#endif /* ! GRUB_EFI_TIME_HEADER */ -diff --git a/efi/grub/i386/linux.h b/efi/grub/i386/linux.h -new file mode 100644 -index 0000000..1545a7a ---- /dev/null -+++ b/efi/grub/i386/linux.h -@@ -0,0 +1,226 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * 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. -+ */ -+ -+#ifndef GRUB_LINUX_MACHINE_HEADER -+#define GRUB_LINUX_MACHINE_HEADER 1 -+ -+#define GRUB_LINUX_MAGIC_SIGNATURE 0x53726448 /* "HdrS" */ -+#define GRUB_LINUX_DEFAULT_SETUP_SECTS 4 -+#define GRUB_LINUX_FLAG_CAN_USE_HEAP 0x80 -+#define GRUB_LINUX_INITRD_MAX_ADDRESS 0x37FFFFFF -+#define GRUB_LINUX_MAX_SETUP_SECTS 64 -+#define GRUB_LINUX_BOOT_LOADER_TYPE 0x72 -+#define GRUB_LINUX_HEAP_END_OFFSET (0x9000 - 0x200) -+ -+#define GRUB_LINUX_BZIMAGE_ADDR 0x100000 -+#define GRUB_LINUX_ZIMAGE_ADDR 0x10000 -+#define GRUB_LINUX_OLD_REAL_MODE_ADDR 0x90000 -+#define GRUB_LINUX_SETUP_STACK 0x9000 -+ -+#define GRUB_LINUX_FLAG_BIG_KERNEL 0x1 -+ -+/* Linux's video mode selection support. Actually I hate it! */ -+#define GRUB_LINUX_VID_MODE_NORMAL 0xFFFF -+#define GRUB_LINUX_VID_MODE_EXTENDED 0xFFFE -+#define GRUB_LINUX_VID_MODE_ASK 0xFFFD -+ -+#define GRUB_LINUX_CL_OFFSET 0x9000 -+#define GRUB_LINUX_CL_END_OFFSET 0x90FF -+#define GRUB_LINUX_SETUP_MOVE_SIZE 0x9100 -+#define GRUB_LINUX_CL_MAGIC 0xA33F -+ -+#if 0 -+#define GRUB_LINUX_EFI_SIGNATURE_X64 \ -+ ('4' << 24 | '6' << 16 | 'L' << 8 | 'E') -+#else -+#define GRUB_LINUX_EFI_SIGNATURE_X64 \ -+ ('L' << 24 | 'I' << 16 | 'F' << 8 | 'E') -+#endif -+ -+#ifndef ASM_FILE -+ -+/* For the Linux/i386 boot protocol version 2.07. */ -+struct grub_linux_kernel_header -+{ -+ grub_uint8_t setup_sects; /* The size of the setup in sectors */ -+ grub_uint16_t root_flags; /* If the root is mounted readonly */ -+ grub_uint32_t syssize; /* obsolete */ -+ grub_uint16_t ram_size; /* obsolete */ -+ grub_uint16_t vid_mode; /* Video mode control */ -+ grub_uint16_t root_dev; /* Default root device number */ -+ grub_uint16_t boot_flag; /* 0xAA55 magic number */ -+ grub_uint8_t jump_ins; /* Jump instruction */ -+ grub_uint8_t jump_off; /* Jump offset */ -+ grub_uint32_t header; /* Magic signature "HdrS" */ -+ grub_uint16_t version; /* Boot protocol version supported */ -+ grub_uint32_t realmode_swtch; /* Boot loader hook */ -+ grub_uint16_t start_sys; /* The load-low segment (obsolete) */ -+ grub_uint16_t kernel_version; /* Points to kernel version string */ -+ grub_uint8_t type_of_loader; /* Boot loader identifier */ -+ grub_uint8_t loadflags; /* Boot protocol option flags */ -+ grub_uint16_t setup_move_size;/* Move to high memory size */ -+ grub_uint32_t code32_start; /* Boot loader hook */ -+ grub_uint32_t ramdisk_image; /* initrd load address */ -+ grub_uint32_t ramdisk_size; /* initrd size */ -+ grub_uint32_t bootsect_kludge;/* obsolete */ -+ grub_uint16_t heap_end_ptr; /* Free memory after setup end */ -+ grub_uint16_t pad1; /* Unused */ -+ grub_uint32_t cmd_line_ptr; /* Points to the kernel command line */ -+ grub_uint32_t initrd_addr_max;/* Highest address for initrd */ -+ grub_uint32_t kernel_alignment; -+ grub_uint8_t relocatable_kernel; -+ grub_uint8_t pad2[3]; -+ grub_uint32_t hardware_subarch; -+ grub_uint64_t hardware_subarch_data; -+} __attribute__ ((packed)); -+ -+/* Boot parameters for Linux based on 2.6.12. This is used by the setup -+ sectors of Linux, and must be simulated by GRUB on EFI, because -+ the setup sectors depend on BIOS. */ -+struct linux_kernel_params -+{ -+ grub_uint8_t video_cursor_x; /* 0 */ -+ grub_uint8_t video_cursor_y; -+ -+ grub_uint16_t ext_mem; /* 2 */ -+ -+ grub_uint16_t video_page; /* 4 */ -+ grub_uint8_t video_mode; /* 6 */ -+ grub_uint8_t video_width; /* 7 */ -+ -+ grub_uint8_t padding1[0xa - 0x8]; -+ -+ grub_uint16_t video_ega_bx; /* a */ -+ -+ grub_uint8_t padding2[0xe - 0xc]; -+ -+ grub_uint8_t video_height; /* e */ -+ grub_uint8_t have_vga; /* f */ -+ grub_uint16_t font_size; /* 10 */ -+ -+ grub_uint16_t lfb_width; /* 12 */ -+ grub_uint16_t lfb_height; /* 14 */ -+ grub_uint16_t lfb_depth; /* 16 */ -+ grub_uint32_t lfb_base; /* 18 */ -+ grub_uint32_t lfb_size; /* 1c */ -+ -+ grub_uint16_t cl_magic; /* 20 */ -+ grub_uint16_t cl_offset; -+ -+ grub_uint16_t lfb_line_len; /* 24 */ -+ grub_uint8_t red_mask_size; /* 26 */ -+ grub_uint8_t red_field_pos; -+ grub_uint8_t green_mask_size; -+ grub_uint8_t green_field_pos; -+ grub_uint8_t blue_mask_size; -+ grub_uint8_t blue_field_pos; -+ grub_uint8_t reserved_mask_size; -+ grub_uint8_t reserved_field_pos; -+ grub_uint16_t vesapm_segment; /* 2e */ -+ grub_uint16_t vesapm_offset; /* 30 */ -+ grub_uint16_t lfb_pages; /* 32 */ -+ grub_uint16_t vesa_attrib; /* 34 */ -+ -+ grub_uint8_t padding3[0x40 - 0x36]; -+ -+ grub_uint16_t apm_version; /* 40 */ -+ grub_uint16_t apm_code_segment; /* 42 */ -+ grub_uint32_t apm_entry; /* 44 */ -+ grub_uint16_t apm_16bit_code_segment; /* 48 */ -+ grub_uint16_t apm_data_segment; /* 4a */ -+ grub_uint16_t apm_flags; /* 4c */ -+ grub_uint32_t apm_code_len; /* 4e */ -+ grub_uint16_t apm_data_len; /* 52 */ -+ -+ grub_uint8_t padding4[0x60 - 0x54]; -+ -+ grub_uint32_t ist_signature; /* 60 */ -+ grub_uint32_t ist_command; /* 64 */ -+ grub_uint32_t ist_event; /* 68 */ -+ grub_uint32_t ist_perf_level; /* 6c */ -+ -+ grub_uint8_t padding5[0x80 - 0x70]; -+ -+ grub_uint8_t hd0_drive_info[0x10]; /* 80 */ -+ grub_uint8_t hd1_drive_info[0x10]; /* 90 */ -+ grub_uint16_t rom_config_len; /* a0 */ -+ -+ grub_uint8_t padding6[0x1b8 - 0xa2]; -+ -+ union { -+ struct { -+ grub_uint32_t padding7_1; /* 0x1b8 */ -+ grub_uint32_t padding7_2; /* 0x1bc */ -+ -+ grub_uint32_t efi_signature; /* 1c0 */ -+ grub_uint32_t efi_system_table; /* 1c4 */ -+ grub_uint32_t efi_mem_desc_size; /* 1c8 */ -+ grub_uint32_t efi_mem_desc_version; /* 1cc */ -+ grub_uint32_t efi_mmap; /* 1d0 */ -+ grub_uint32_t efi_mmap_size; /* 1d4 */ -+ grub_uint32_t efi_system_table_hi; /* 1d8 */ -+ grub_uint32_t efi_mmap_hi; /* 1dc */ -+ } dunno; -+ struct { -+ grub_uint32_t efi_system_table; /* 1b8 */ -+ -+ grub_uint32_t padding7_1; /* 0x1bc */ -+ -+ grub_uint32_t efi_signature; /* 1c0 */ -+ grub_uint32_t efi_mem_desc_size; /* 1c4 */ -+ grub_uint32_t efi_mem_desc_version; /* 1c8 */ -+ grub_uint32_t efi_mmap_size; /* 1cc */ -+ grub_uint32_t efi_mmap; /* 1d0 */ -+ -+ grub_uint8_t padding7_2[0x1e0 - 0x1d4]; /* 1d4 */ -+ } version_0204; -+ struct { -+ grub_uint32_t padding7_1; /* 0x1b8 */ -+ grub_uint32_t padding7_2; /* 0x1bc */ -+ grub_uint32_t padding7_3; /* 0x1c0 */ -+ grub_uint32_t efi_system_table; /* 0x1c4 */ -+ grub_uint32_t efi_mem_desc_size; /* 0x1c8 */ -+ grub_uint32_t efi_mem_desc_version; /* 0x1cc */ -+ grub_uint32_t efi_mmap; /* 0x1d0 */ -+ grub_uint32_t efi_mmap_size; /* 0x1d4 */ -+ grub_uint8_t padding7_4[0x1e0 - 0x1d8]; /* 0x1d8 */ -+ } version_0206; -+ }; -+ -+ grub_uint32_t alt_mem; /* 1e0 */ -+ -+ grub_uint8_t padding8[0x1e8 - 0x1e4]; /* 1e4 */ -+ -+ grub_uint8_t e820_nr_map; /* 1e8 */ -+ grub_uint8_t eddbuf_entries; /* 1e9 */ -+ grub_uint8_t edd_mbr_sig_buf_entries; /* 1ea */ -+ -+ grub_uint8_t padding9[0x1f1 - 0x1eb]; -+ -+ struct grub_linux_kernel_header hdr; /* 0x1f1 */ -+ -+ grub_uint8_t padding10[0x2d0-0x1f1-sizeof(struct grub_linux_kernel_header)]; -+ -+ grub_uint8_t e820_map[2560]; /* 0x2d0 */ -+ -+ grub_uint8_t padding11[0x1000 - 0xcd0]; -+} __attribute__ ((packed)); -+#endif /* ! ASM_FILE */ -+ -+#endif /* ! GRUB_LINUX_MACHINE_HEADER */ -diff --git a/efi/grub/i386/types.h b/efi/grub/i386/types.h -new file mode 100644 -index 0000000..ec4174e ---- /dev/null -+++ b/efi/grub/i386/types.h -@@ -0,0 +1,32 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2002,2006 Free Software Foundation, Inc. -+ * -+ * GRUB 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 GRUB; if not, write to the Free Software -+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -+ */ -+ -+#ifndef GRUB_TYPES_CPU_HEADER -+#define GRUB_TYPES_CPU_HEADER 1 -+ -+/* The size of void *. */ -+#define GRUB_TARGET_SIZEOF_VOID_P 4 -+ -+/* The size of long. */ -+#define GRUB_TARGET_SIZEOF_LONG 4 -+ -+/* x64_64 is little-endian. */ -+#undef GRUB_TARGET_WORDS_BIGENDIAN -+ -+#endif /* ! GRUB_TYPES_CPU_HEADER */ -diff --git a/efi/grub/misc.h b/efi/grub/misc.h -new file mode 100644 -index 0000000..5ef2226 ---- /dev/null -+++ b/efi/grub/misc.h -@@ -0,0 +1,71 @@ -+/* misc.h - prototypes for misc functions */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2002,2003,2005,2006 Free Software Foundation, Inc. -+ * -+ * GRUB 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 GRUB; if not, write to the Free Software -+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -+ */ -+ -+#ifndef GRUB_MISC_HEADER -+#define GRUB_MISC_HEADER 1 -+ -+#include -+#include -+ -+#define grub_dprintf(condition, fmt, args...) \ -+ grub_real_dprintf(__FILE__, __LINE__, condition, fmt, ## args) -+ -+char *grub_stpcpy (char *dest, const char *src); -+void grub_real_dprintf (const char *file, -+ const int line, -+ const char *condition, -+ const char *fmt, ...) -+ __attribute__ ((format (printf, 4, 5))); -+void grub_exit (void) __attribute__ ((noreturn)); -+void grub_abort (void) __attribute__ ((noreturn)); -+void grub_fatal (const char *fmt, ...) __attribute__ ((noreturn)); -+grub_size_t grub_utf8_char_len(grub_uint8_t ch); -+grub_uint32_t grub_utf8_to_utf32(const grub_uint8_t *src, grub_size_t length); -+void grub_utf8_to_utf16(const grub_uint8_t *src, grub_size_t srclen, -+ grub_uint16_t *dst, grub_size_t dstlen); -+grub_uint8_t *grub_utf16_to_utf8 (grub_uint8_t * dest, -+ grub_uint16_t * src, grub_size_t size); -+ -+void *grub_malloc (grub_size_t size); -+void grub_free (void *ptr); -+ -+char *grub_strndup (const char *s, int n); -+#define strndup grub_strndup -+ -+int safe_parse_maxulong (char **str_ptr, unsigned long *myulong_ptr); -+ -+#define E820_RAM 1 -+#define E820_RESERVED 2 -+#define E820_ACPI 3 -+#define E820_NVS 4 -+#define E820_EXEC_CODE 5 -+#define E820_MAX 128 -+ -+struct e820_entry -+{ -+ grub_uint64_t addr; /* start of memory segment */ -+ grub_uint64_t size; /* size of memory segment */ -+ grub_uint32_t type; /* type of memory segment */ -+} __attribute__ ((packed)); -+ -+int grub_load_linux (char *kernel, char *arg); -+int grub_load_initrd (char *initrd); -+ -+#endif /* ! GRUB_MISC_HEADER */ -diff --git a/efi/grub/symbol.h b/efi/grub/symbol.h -new file mode 100644 -index 0000000..5204c54 ---- /dev/null -+++ b/efi/grub/symbol.h -@@ -0,0 +1,34 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 1999,2000,2001,2002,2006 Free Software Foundation, Inc. -+ * -+ * GRUB 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 GRUB; if not, write to the Free Software -+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -+ */ -+ -+#ifndef GRUB_SYMBOL_HEADER -+#define GRUB_SYMBOL_HEADER 1 -+ -+#include -+ -+/* Add an underscore to a C symbol in assembler code if needed. */ -+#ifdef HAVE_ASM_USCORE -+# define EXT_C(sym) _ ## sym -+#else -+# define EXT_C(sym) sym -+#endif -+ -+#define FUNCTION(x) .globl EXT_C(x) ; .type EXT_C(x), "function" ; EXT_C(x): -+ -+#endif /* ! GRUB_SYMBOL_HEADER */ -diff --git a/efi/grub/types.h b/efi/grub/types.h -new file mode 100644 -index 0000000..173adb4 ---- /dev/null -+++ b/efi/grub/types.h -@@ -0,0 +1,158 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2002,2005,2006 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. -+ */ -+ -+#ifndef GRUB_TYPES_HEADER -+#define GRUB_TYPES_HEADER 1 -+ -+#include -+#include -+ -+#define UNUSED __attribute__ ((unused)) -+ -+#ifdef GRUB_UTIL -+# define GRUB_CPU_SIZEOF_VOID_P SIZEOF_VOID_P -+# define GRUB_CPU_SIZEOF_LONG SIZEOF_LONG -+# ifdef WORDS_BIGENDIAN -+# define GRUB_CPU_WORDS_BIGENDIAN 1 -+# else -+# undef GRUB_CPU_WORDS_BIGENDIAN -+# endif -+#else /* ! GRUB_UTIL */ -+# define GRUB_CPU_SIZEOF_VOID_P GRUB_TARGET_SIZEOF_VOID_P -+# define GRUB_CPU_SIZEOF_LONG GRUB_TARGET_SIZEOF_LONG -+# ifdef GRUB_TARGET_WORDS_BIGENDIAN -+# define GRUB_CPU_WORDS_BIGENDIAN 1 -+# else -+# undef GRUB_CPU_WORDS_BIGENDIAN -+# endif -+#endif /* ! GRUB_UTIL */ -+ -+#if GRUB_CPU_SIZEOF_VOID_P != GRUB_CPU_SIZEOF_LONG -+# error "This architecture is not supported because sizeof(void *) != sizeof(long)" -+#endif -+ -+#if GRUB_CPU_SIZEOF_VOID_P != 4 && GRUB_CPU_SIZEOF_VOID_P != 8 -+# error "This architecture is not supported because sizeof(void *) != 4 and sizeof(void *) != 8" -+#endif -+ -+/* Define various wide integers. */ -+typedef signed char grub_int8_t; -+typedef short grub_int16_t; -+typedef int grub_int32_t; -+#if GRUB_CPU_SIZEOF_VOID_P == 8 -+typedef long grub_int64_t; -+#else -+typedef long long grub_int64_t; -+#endif -+ -+typedef unsigned char grub_uint8_t; -+typedef unsigned short grub_uint16_t; -+typedef unsigned grub_uint32_t; -+#if GRUB_CPU_SIZEOF_VOID_P == 8 -+typedef unsigned long grub_uint64_t; -+#else -+typedef unsigned long long grub_uint64_t; -+#endif -+ -+/* Misc types. */ -+#if GRUB_TARGET_SIZEOF_VOID_P == 8 -+typedef grub_uint64_t grub_target_addr_t; -+typedef grub_uint64_t grub_target_off_t; -+typedef grub_uint64_t grub_target_size_t; -+typedef grub_int64_t grub_target_ssize_t; -+#else -+typedef grub_uint32_t grub_target_addr_t; -+typedef grub_uint32_t grub_target_off_t; -+typedef grub_uint32_t grub_target_size_t; -+typedef grub_int32_t grub_target_ssize_t; -+#endif -+ -+typedef unsigned long grub_addr_t; -+#if GRUB_CPU_SIZEOF_VOID_P == 8 -+typedef grub_uint64_t grub_size_t; -+typedef grub_int64_t grub_ssize_t; -+#else -+typedef grub_uint32_t grub_size_t; -+typedef grub_int32_t grub_ssize_t; -+#endif -+ -+/* The type for representing a file offset. */ -+typedef grub_uint64_t grub_off_t; -+ -+/* The type for representing a disk block address. */ -+typedef grub_uint64_t grub_disk_addr_t; -+ -+/* Byte-orders. */ -+#define grub_swap_bytes16(x) \ -+({ \ -+ grub_uint16_t _x = (x); \ -+ (grub_uint16_t) ((_x << 8) | (_x >> 8)); \ -+}) -+ -+#define grub_swap_bytes32(x) \ -+({ \ -+ grub_uint32_t _x = (x); \ -+ (grub_uint32_t) ((_x << 24) \ -+ | ((_x & (grub_uint32_t) 0xFF00UL) << 8) \ -+ | ((_x & (grub_uint32_t) 0xFF0000UL) >> 8) \ -+ | (_x >> 24)); \ -+}) -+ -+#define grub_swap_bytes64(x) \ -+({ \ -+ grub_uint64_t _x = (x); \ -+ (grub_uint64_t) ((_x << 56) \ -+ | ((_x & (grub_uint64_t) 0xFF00ULL) << 40) \ -+ | ((_x & (grub_uint64_t) 0xFF0000ULL) << 24) \ -+ | ((_x & (grub_uint64_t) 0xFF000000ULL) << 8) \ -+ | ((_x & (grub_uint64_t) 0xFF00000000ULL) >> 8) \ -+ | ((_x & (grub_uint64_t) 0xFF0000000000ULL) >> 24) \ -+ | ((_x & (grub_uint64_t) 0xFF000000000000ULL) >> 40) \ -+ | (_x >> 56)); \ -+}) -+ -+#ifdef GRUB_CPU_WORDS_BIGENDIAN -+# define grub_cpu_to_le16(x) grub_swap_bytes16(x) -+# define grub_cpu_to_le32(x) grub_swap_bytes32(x) -+# define grub_cpu_to_le64(x) grub_swap_bytes64(x) -+# define grub_le_to_cpu16(x) grub_swap_bytes16(x) -+# define grub_le_to_cpu32(x) grub_swap_bytes32(x) -+# define grub_le_to_cpu64(x) grub_swap_bytes64(x) -+# define grub_cpu_to_be16(x) ((grub_uint16_t) (x)) -+# define grub_cpu_to_be32(x) ((grub_uint32_t) (x)) -+# define grub_cpu_to_be64(x) ((grub_uint64_t) (x)) -+# define grub_be_to_cpu16(x) ((grub_uint16_t) (x)) -+# define grub_be_to_cpu32(x) ((grub_uint32_t) (x)) -+# define grub_be_to_cpu64(x) ((grub_uint64_t) (x)) -+#else /* ! WORDS_BIGENDIAN */ -+# define grub_cpu_to_le16(x) ((grub_uint16_t) (x)) -+# define grub_cpu_to_le32(x) ((grub_uint32_t) (x)) -+# define grub_cpu_to_le64(x) ((grub_uint64_t) (x)) -+# define grub_le_to_cpu16(x) ((grub_uint16_t) (x)) -+# define grub_le_to_cpu32(x) ((grub_uint32_t) (x)) -+# define grub_le_to_cpu64(x) ((grub_uint64_t) (x)) -+# define grub_cpu_to_be16(x) grub_swap_bytes16(x) -+# define grub_cpu_to_be32(x) grub_swap_bytes32(x) -+# define grub_cpu_to_be64(x) grub_swap_bytes64(x) -+# define grub_be_to_cpu16(x) grub_swap_bytes16(x) -+# define grub_be_to_cpu32(x) grub_swap_bytes32(x) -+# define grub_be_to_cpu64(x) grub_swap_bytes64(x) -+#endif /* ! WORDS_BIGENDIAN */ -+ -+#endif /* ! GRUB_TYPES_HEADER */ -diff --git a/efi/grub/x86_64/linux.h b/efi/grub/x86_64/linux.h -new file mode 100644 -index 0000000..4e81ca6 ---- /dev/null -+++ b/efi/grub/x86_64/linux.h -@@ -0,0 +1,234 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * 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. -+ */ -+ -+#ifndef GRUB_LINUX_MACHINE_HEADER -+#define GRUB_LINUX_MACHINE_HEADER 1 -+ -+#define GRUB_LINUX_MAGIC_SIGNATURE 0x53726448 /* "HdrS" */ -+#define GRUB_LINUX_DEFAULT_SETUP_SECTS 4 -+#define GRUB_LINUX_FLAG_CAN_USE_HEAP 0x80 -+#define GRUB_LINUX_INITRD_MAX_ADDRESS 0x37FFFFFF -+#define GRUB_LINUX_MAX_SETUP_SECTS 64 -+#define GRUB_LINUX_BOOT_LOADER_TYPE 0x72 -+#define GRUB_LINUX_HEAP_END_OFFSET (0x9000 - 0x200) -+ -+#define GRUB_LINUX_BZIMAGE_ADDR 0x100000 -+#define GRUB_LINUX_ZIMAGE_ADDR 0x10000 -+#define GRUB_LINUX_OLD_REAL_MODE_ADDR 0x90000 -+#define GRUB_LINUX_SETUP_STACK 0x9000 -+ -+#define GRUB_LINUX_FLAG_BIG_KERNEL 0x1 -+ -+/* Linux's video mode selection support. Actually I hate it! */ -+#define GRUB_LINUX_VID_MODE_NORMAL 0xFFFF -+#define GRUB_LINUX_VID_MODE_EXTENDED 0xFFFE -+#define GRUB_LINUX_VID_MODE_ASK 0xFFFD -+ -+#define GRUB_LINUX_CL_OFFSET 0x9000 -+#define GRUB_LINUX_CL_END_OFFSET 0x90FF -+#define GRUB_LINUX_SETUP_MOVE_SIZE 0x9100 -+#define GRUB_LINUX_CL_MAGIC 0xA33F -+ -+#if 0 -+#define GRUB_LINUX_EFI_SIGNATURE_X64 \ -+ ('4' << 24 | '6' << 16 | 'L' << 8 | 'E') -+#else -+#define GRUB_LINUX_EFI_SIGNATURE_X64 \ -+ ('L' << 24 | 'I' << 16 | 'F' << 8 | 'E') -+#endif -+ -+#ifndef ASM_FILE -+ -+/* For the Linux/i386 boot protocol version 2.07. */ -+struct grub_linux_kernel_header -+{ -+ grub_uint8_t setup_sects; /* The size of the setup in sectors */ -+ grub_uint16_t root_flags; /* If the root is mounted readonly */ -+ grub_uint32_t syssize; /* obsolete */ -+ grub_uint16_t ram_size; /* obsolete */ -+ grub_uint16_t vid_mode; /* Video mode control */ -+ grub_uint16_t root_dev; /* Default root device number */ -+ grub_uint16_t boot_flag; /* 0xAA55 magic number */ -+ grub_uint8_t jump_ins; /* Jump instruction */ -+ grub_uint8_t jump_off; /* Jump offset */ -+ grub_uint32_t header; /* Magic signature "HdrS" */ -+ grub_uint16_t version; /* Boot protocol version supported */ -+ grub_uint32_t realmode_swtch; /* Boot loader hook */ -+ grub_uint16_t start_sys; /* The load-low segment (obsolete) */ -+ grub_uint16_t kernel_version; /* Points to kernel version string */ -+ grub_uint8_t type_of_loader; /* Boot loader identifier */ -+ grub_uint8_t loadflags; /* Boot protocol option flags */ -+ grub_uint16_t setup_move_size;/* Move to high memory size */ -+ grub_uint32_t code32_start; /* Boot loader hook */ -+ grub_uint32_t ramdisk_image; /* initrd load address */ -+ grub_uint32_t ramdisk_size; /* initrd size */ -+ grub_uint32_t bootsect_kludge;/* obsolete */ -+ grub_uint16_t heap_end_ptr; /* Free memory after setup end */ -+ grub_uint16_t pad1; /* Unused */ -+ grub_uint32_t cmd_line_ptr; /* Points to the kernel command line */ -+ grub_uint32_t initrd_addr_max;/* Highest address for initrd */ -+ grub_uint32_t kernel_alignment; -+ grub_uint8_t relocatable_kernel; -+ grub_uint8_t min_alignment; -+ grub_uint8_t pad2[2]; -+ grub_uint32_t cmdline_size; -+ grub_uint32_t hardware_subarch; -+ grub_uint64_t hardware_subarch_data; -+ grub_uint32_t payload_offset; -+ grub_uint32_t payload_length; -+ grub_uint64_t setup_data; -+ grub_uint64_t pref_address; -+ grub_uint32_t init_size; -+} __attribute__ ((packed)); -+ -+/* Boot parameters for Linux based on 2.6.12. This is used by the setup -+ sectors of Linux, and must be simulated by GRUB on EFI, because -+ the setup sectors depend on BIOS. */ -+struct linux_kernel_params -+{ -+ grub_uint8_t video_cursor_x; /* 0 */ -+ grub_uint8_t video_cursor_y; -+ -+ grub_uint16_t ext_mem; /* 2 */ -+ -+ grub_uint16_t video_page; /* 4 */ -+ grub_uint8_t video_mode; /* 6 */ -+ grub_uint8_t video_width; /* 7 */ -+ -+ grub_uint8_t padding1[0xa - 0x8]; -+ -+ grub_uint16_t video_ega_bx; /* a */ -+ -+ grub_uint8_t padding2[0xe - 0xc]; -+ -+ grub_uint8_t video_height; /* e */ -+ grub_uint8_t have_vga; /* f */ -+ grub_uint16_t font_size; /* 10 */ -+ -+ grub_uint16_t lfb_width; /* 12 */ -+ grub_uint16_t lfb_height; /* 14 */ -+ grub_uint16_t lfb_depth; /* 16 */ -+ grub_uint32_t lfb_base; /* 18 */ -+ grub_uint32_t lfb_size; /* 1c */ -+ -+ grub_uint16_t cl_magic; /* 20 */ -+ grub_uint16_t cl_offset; -+ -+ grub_uint16_t lfb_line_len; /* 24 */ -+ grub_uint8_t red_mask_size; /* 26 */ -+ grub_uint8_t red_field_pos; -+ grub_uint8_t green_mask_size; -+ grub_uint8_t green_field_pos; -+ grub_uint8_t blue_mask_size; -+ grub_uint8_t blue_field_pos; -+ grub_uint8_t reserved_mask_size; -+ grub_uint8_t reserved_field_pos; -+ grub_uint16_t vesapm_segment; /* 2e */ -+ grub_uint16_t vesapm_offset; /* 30 */ -+ grub_uint16_t lfb_pages; /* 32 */ -+ grub_uint16_t vesa_attrib; /* 34 */ -+ grub_uint32_t capabilities; /* 36 */ -+ -+ grub_uint8_t padding3[0x40 - 0x3a]; -+ -+ grub_uint16_t apm_version; /* 40 */ -+ grub_uint16_t apm_code_segment; /* 42 */ -+ grub_uint32_t apm_entry; /* 44 */ -+ grub_uint16_t apm_16bit_code_segment; /* 48 */ -+ grub_uint16_t apm_data_segment; /* 4a */ -+ grub_uint16_t apm_flags; /* 4c */ -+ grub_uint32_t apm_code_len; /* 4e */ -+ grub_uint16_t apm_data_len; /* 52 */ -+ -+ grub_uint8_t padding4[0x60 - 0x54]; -+ -+ grub_uint32_t ist_signature; /* 60 */ -+ grub_uint32_t ist_command; /* 64 */ -+ grub_uint32_t ist_event; /* 68 */ -+ grub_uint32_t ist_perf_level; /* 6c */ -+ -+ grub_uint8_t padding5[0x80 - 0x70]; -+ -+ grub_uint8_t hd0_drive_info[0x10]; /* 80 */ -+ grub_uint8_t hd1_drive_info[0x10]; /* 90 */ -+ grub_uint16_t rom_config_len; /* a0 */ -+ -+ grub_uint8_t padding6[0x1b8 - 0xa2]; -+ -+ union { -+ struct { -+ grub_uint32_t padding7_1; /* 0x1b8 */ -+ grub_uint32_t padding7_2; /* 0x1bc */ -+ -+ grub_uint32_t efi_signature; /* 1c0 */ -+ grub_uint32_t efi_system_table; /* 1c4 */ -+ grub_uint32_t efi_mem_desc_size; /* 1c8 */ -+ grub_uint32_t efi_mem_desc_version; /* 1cc */ -+ grub_uint32_t efi_mmap; /* 1d0 */ -+ grub_uint32_t efi_mmap_size; /* 1d4 */ -+ grub_uint32_t efi_system_table_hi; /* 1d8 */ -+ grub_uint32_t efi_mmap_hi; /* 1dc */ -+ } dunno; -+ struct { -+ grub_uint32_t efi_system_table; /* 1b8 */ -+ -+ grub_uint32_t padding7_1; /* 0x1bc */ -+ -+ grub_uint32_t efi_signature; /* 1c0 */ -+ grub_uint32_t efi_mem_desc_size; /* 1c4 */ -+ grub_uint32_t efi_mem_desc_version; /* 1c8 */ -+ grub_uint32_t efi_mmap_size; /* 1cc */ -+ grub_uint32_t efi_mmap; /* 1d0 */ -+ -+ grub_uint8_t padding7_2[0x1e0 - 0x1d4]; /* 1d4 */ -+ } version_0204; -+ struct { -+ grub_uint32_t padding7_1; /* 0x1b8 */ -+ grub_uint32_t padding7_2; /* 0x1bc */ -+ grub_uint32_t padding7_3; /* 0x1c0 */ -+ grub_uint32_t efi_system_table; /* 0x1c4 */ -+ grub_uint32_t efi_mem_desc_size; /* 0x1c8 */ -+ grub_uint32_t efi_mem_desc_version; /* 0x1cc */ -+ grub_uint32_t efi_mmap; /* 0x1d0 */ -+ grub_uint32_t efi_mmap_size; /* 0x1d4 */ -+ grub_uint8_t padding7_4[0x1e0 - 0x1d8]; /* 0x1d8 */ -+ } version_0206; -+ }; -+ -+ grub_uint32_t alt_mem; /* 1e0 */ -+ -+ grub_uint8_t padding8[0x1e8 - 0x1e4]; /* 1e4 */ -+ -+ grub_uint8_t e820_nr_map; /* 1e8 */ -+ grub_uint8_t eddbuf_entries; /* 1e9 */ -+ grub_uint8_t edd_mbr_sig_buf_entries; /* 1ea */ -+ -+ grub_uint8_t padding9[0x1f1 - 0x1eb]; -+ -+ struct grub_linux_kernel_header hdr; /* 0x1f1 */ -+ -+ grub_uint8_t padding10[0x2d0-0x1f1-sizeof(struct grub_linux_kernel_header)]; -+ -+ grub_uint8_t e820_map[2560]; /* 0x2d0 */ -+ -+ grub_uint8_t padding11[0x1000 - 0xcd0]; -+} __attribute__ ((packed)); -+#endif /* ! ASM_FILE */ -+ -+#endif /* ! GRUB_LINUX_MACHINE_HEADER */ -diff --git a/efi/grub/x86_64/types.h b/efi/grub/x86_64/types.h -new file mode 100644 -index 0000000..0c077f6 ---- /dev/null -+++ b/efi/grub/x86_64/types.h -@@ -0,0 +1,32 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2002,2006 Free Software Foundation, Inc. -+ * -+ * GRUB 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 GRUB; if not, write to the Free Software -+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -+ */ -+ -+#ifndef GRUB_TYPES_CPU_HEADER -+#define GRUB_TYPES_CPU_HEADER 1 -+ -+/* The size of void *. */ -+#define GRUB_TARGET_SIZEOF_VOID_P 8 -+ -+/* The size of long. */ -+#define GRUB_TARGET_SIZEOF_LONG 8 -+ -+/* x64_64 is little-endian. */ -+#undef GRUB_TARGET_WORDS_BIGENDIAN -+ -+#endif /* ! GRUB_TYPES_CPU_HEADER */ -diff --git a/efi/ia32/callwrap.S b/efi/ia32/callwrap.S -new file mode 100644 -index 0000000..50d737f ---- /dev/null -+++ b/efi/ia32/callwrap.S -@@ -0,0 +1 @@ -+/* This file is a stub for ia32 building */ -diff --git a/efi/ia32/callwrap.c b/efi/ia32/callwrap.c -new file mode 100644 -index 0000000..56df899 ---- /dev/null -+++ b/efi/ia32/callwrap.c -@@ -0,0 +1,131 @@ -+ -+#define ENTRY(name) \ -+ ".globl " #name ";" \ -+ ".align 16;" \ -+ #name ":" -+ -+asm( -+ENTRY(i386_call0) -+ "pushl %ebp \n" -+ "movl %esp,%ebp \n" -+ "subl $8, %esp \n" -+ "call *8(%ebp) \n" -+ "leave \n" -+ "ret \n" -+ ); -+ -+asm( -+ENTRY(i386_call1) -+ "pushl %ebp \n" -+ "movl %esp,%ebp \n" -+ "subl $20, %esp \n" -+ "pushl 12(%ebp) \n" -+ "call *8(%ebp) \n" -+ "leave \n" -+ "ret \n" -+ ); -+ -+asm( -+ENTRY(i386_call2) -+ "pushl %ebp \n" -+ "movl %esp,%ebp \n" -+ "subl $16, %esp \n" -+ "pushl 16(%ebp) \n" -+ "pushl 12(%ebp) \n" -+ "call *8(%ebp) \n" -+ "leave \n" -+ "ret \n" -+ ); -+ -+asm( -+ENTRY(i386_call3) -+ "pushl %ebp \n" -+ "movl %esp,%ebp \n" -+ "subl $12, %esp \n" -+ "pushl 20(%ebp) \n" -+ "pushl 16(%ebp) \n" -+ "pushl 12(%ebp) \n" -+ "call *8(%ebp) \n" -+ "leave \n" -+ "ret \n" -+ ); -+ -+asm( -+ENTRY(i386_call4) -+ "pushl %ebp \n" -+ "movl %esp,%ebp \n" -+ "subl $8, %esp \n" -+ "pushl 24(%ebp) \n" -+ "pushl 20(%ebp) \n" -+ "pushl 16(%ebp) \n" -+ "pushl 12(%ebp) \n" -+ "call *8(%ebp) \n" -+ "leave \n" -+ "ret \n" -+ ); -+ -+asm( -+ENTRY(i386_call5) -+ "pushl %ebp \n" -+ "movl %esp,%ebp \n" -+ "subl $20, %esp \n" -+ "pushl 28(%ebp) \n" -+ "pushl 24(%ebp) \n" -+ "pushl 20(%ebp) \n" -+ "pushl 16(%ebp) \n" -+ "pushl 12(%ebp) \n" -+ "call *8(%ebp) \n" -+ "leave \n" -+ "ret \n" -+ ); -+ -+asm( -+ENTRY(i386_64_call5) -+ "pushl %ebp \n" -+ "movl %esp,%ebp \n" -+ "subl $12, %esp \n" -+ "pushl 36(%ebp) \n" -+ "pushl 32(%ebp) \n" -+ "pushl 28(%ebp) \n" -+ "pushl 24(%ebp) \n" -+ "pushl 20(%ebp) \n" -+ "pushl 16(%ebp) \n" -+ "pushl 12(%ebp) \n" -+ "call *8(%ebp) \n" -+ "leave \n" -+ "ret \n" -+ ); -+ -+ -+asm( -+ENTRY(i386_call6) -+ "pushl %ebp \n" -+ "movl %esp,%ebp \n" -+ "subl $16, %esp \n" -+ "pushl 32(%ebp) \n" -+ "pushl 28(%ebp) \n" -+ "pushl 24(%ebp) \n" -+ "pushl 20(%ebp) \n" -+ "pushl 16(%ebp) \n" -+ "pushl 12(%ebp) \n" -+ "call *8(%ebp) \n" -+ "leave \n" -+ "ret \n" -+ ); -+ -+asm( -+ENTRY(i386_call7) -+ "pushl %ebp \n" -+ "movl %esp,%ebp \n" -+ "subl $12, %esp \n" -+ "pushl 36(%ebp) \n" -+ "pushl 32(%ebp) \n" -+ "pushl 28(%ebp) \n" -+ "pushl 24(%ebp) \n" -+ "pushl 20(%ebp) \n" -+ "pushl 16(%ebp) \n" -+ "pushl 12(%ebp) \n" -+ "call *8(%ebp) \n" -+ "leave \n" -+ "ret \n" -+ ); -diff --git a/efi/ia32/loader/bin_to_h.c b/efi/ia32/loader/bin_to_h.c -new file mode 100644 -index 0000000..4cff104 ---- /dev/null -+++ b/efi/ia32/loader/bin_to_h.c -@@ -0,0 +1,29 @@ -+#include -+#include -+ -+int -+main (void) -+{ -+ unsigned n = 0; -+ int c; -+ -+ printf ("unsigned char switch_image[] = {\n"); -+ -+ while ((c = getchar ()) != EOF) -+ { -+ printf("0x%02x,%s", -+ c & 0xFF, -+ (++n & 0x07) ? " " : "\n"); -+ } -+ -+ if (n & 0x07) -+ { -+ printf("\n"); -+ } -+ -+ printf("};\n" -+ "int switch_size = sizeof switch_image;\n"); -+ -+ return 0; -+} -+ -diff --git a/efi/ia32/loader/linux.c b/efi/ia32/loader/linux.c -new file mode 100644 -index 0000000..d795d28 ---- /dev/null -+++ b/efi/ia32/loader/linux.c -@@ -0,0 +1,648 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2006 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. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "switch.h" -+ -+#include -+ -+#include "graphics.h" -+ -+#define grub_file_size() filemax -+ -+#define NEXT_MEMORY_DESCRIPTOR(desc, size) \ -+ ((grub_efi_memory_descriptor_t *) ((char *) (desc) + (size))) -+ -+#define PTR_HI(x) ((grub_uint32_t) ((unsigned long long)((unsigned long)(x)) >> 32)) -+ -+#ifndef SECTOR_SIZE -+#define SECTOR_SIZE 0x200 -+#endif /* defined(SECTOR_SIZE) */ -+#ifndef SECTOR_BITS -+#define SECTOR_BITS 9 -+#endif /* defined(SECTOR_BITS) */ -+ -+static unsigned long linux_mem_size; -+static int loaded; -+static void *real_mode_mem; -+static void *prot_mode_mem; -+static void *initrd_mem; -+static grub_efi_uintn_t real_mode_pages; -+static grub_efi_uintn_t prot_mode_pages; -+static grub_efi_uintn_t initrd_pages; -+static grub_efi_guid_t graphics_output_guid = GRUB_EFI_GRAPHICS_OUTPUT_GUID; -+ -+static inline grub_size_t -+page_align (grub_size_t size) -+{ -+ return (size + (1 << 12) - 1) & (~((1 << 12) - 1)); -+} -+ -+static void -+free_pages (void) -+{ -+ if (real_mode_mem) -+ { -+ grub_efi_free_pages ((grub_addr_t) real_mode_mem, real_mode_pages); -+ real_mode_mem = 0; -+ } -+ -+ if (prot_mode_mem) -+ { -+ grub_efi_free_pages ((grub_addr_t) prot_mode_mem, prot_mode_pages); -+ prot_mode_mem = 0; -+ } -+ -+ if (initrd_mem) -+ { -+ grub_efi_free_pages ((grub_addr_t) initrd_mem, initrd_pages); -+ initrd_mem = 0; -+ } -+ -+ if (mmap_buf) -+ { -+ grub_efi_free_pages ((grub_addr_t) mmap_buf, mmap_pages); -+ mmap_buf = 0; -+ } -+} -+ -+/* Allocate pages for the real mode code and the protected mode code -+ for linux as well as a memory map buffer. */ -+static int -+allocate_pages (grub_size_t real_size, grub_size_t prot_size) -+{ -+ grub_efi_uintn_t desc_size; -+ grub_efi_memory_descriptor_t *mmap_end; -+ grub_efi_memory_descriptor_t *desc; -+ grub_efi_physical_address_t addr; -+ -+ /* Make sure that each size is aligned to a page boundary. */ -+ real_size = page_align (real_size + SECTOR_SIZE); -+ prot_size = page_align (prot_size); -+ -+ grub_dprintf ("linux", "real_size = %x, prot_size = %x, mmap_size = %x\n", -+ (unsigned int) real_size, (unsigned int) prot_size, -+ (unsigned int) mmap_size); -+ -+ /* Calculate the number of pages; Combine the real mode code with -+ the memory map buffer for simplicity. */ -+ real_mode_pages = (real_size >> 12); -+ prot_mode_pages = (prot_size >> 12); -+ -+ /* Initialize the memory pointers with NULL for convenience. */ -+ real_mode_mem = 0; -+ prot_mode_mem = 0; -+ -+ if (grub_efi_get_memory_map (0, &desc_size, 0) <= 0) -+ grub_fatal ("cannot get memory map"); -+ -+ addr = 0; -+ mmap_end = NEXT_MEMORY_DESCRIPTOR (mmap_buf, mmap_size); -+ /* First, find free pages for the real mode code -+ and the memory map buffer. */ -+ for (desc = mmap_buf; -+ desc < mmap_end; -+ desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size)) -+ { -+ if (desc->type == GRUB_EFI_CONVENTIONAL_MEMORY -+ && desc->num_pages >= real_mode_pages) -+ { -+ grub_efi_physical_address_t physical_end; -+ -+ physical_end = desc->physical_start + (desc->num_pages << 12); -+ -+ grub_dprintf ("linux", "physical_start = %x, physical_end = %x\n", -+ (unsigned) desc->physical_start, -+ (unsigned) physical_end); -+ addr = physical_end - real_size; -+ if (addr < 0x10000) -+ continue; -+ -+ grub_dprintf ("linux", "trying to allocate %u pages at %x\n", -+ (unsigned) real_mode_pages, (unsigned) addr); -+ real_mode_mem = grub_efi_allocate_pages (addr, real_mode_pages); -+ if (! real_mode_mem) -+ grub_fatal ("cannot allocate pages"); -+ -+ desc->num_pages -= real_mode_pages; -+ break; -+ } -+ } -+ -+ if (! real_mode_mem) -+ { -+ grub_printf ("cannot allocate real mode pages"); -+ errnum = ERR_WONT_FIT; -+ goto fail; -+ } -+ -+ /* Next, find free pages for the protected mode code. */ -+ /* XXX what happens if anything is using this address? */ -+ prot_mode_mem = grub_efi_allocate_pages (0x100000, prot_mode_pages); -+ if (! prot_mode_mem) -+ grub_fatal("Cannot allocate pages for VMLINUZ"); -+ -+ return 1; -+ -+ fail: -+ free_pages (); -+ return 0; -+} -+ -+/* do some funky stuff, then boot linux */ -+void -+linux_boot (void) -+{ -+ grub_printf ("zImage is not supported under EFI.\n"); -+ for (;;); -+} -+ -+#ifndef __x86_64__ -+struct { -+ unsigned short limit; -+ unsigned int base; -+} __attribute__ ((packed)) -+ gdt_addr = { 0x800, 0x94000 }, -+ idt_addr = { 0, 0 }; -+ -+unsigned short init_gdt[] = { -+ /* gdt[0]: dummy */ -+ 0, 0, 0, 0, -+ -+ /* gdt[1]: unused */ -+ 0, 0, 0, 0, -+ -+ /* gdt[2]: code */ -+ 0xFFFF, /* 4Gb - (0x100000*0x1000 = 4Gb) */ -+ 0x0000, /* base address=0 */ -+ 0x9A00, /* code read/exec */ -+ 0x00CF, /* granularity=4096, 386 (+5th nibble of limit) */ -+ -+ /* gdt[3]: data */ -+ 0xFFFF, /* 4Gb - (0x100000*0x1000 = 4Gb) */ -+ 0x0000, /* base address=0 */ -+ 0x9200, /* data read/write */ -+ 0x00CF, /* granularity=4096, 386 (+5th nibble of limit) */ -+}; -+#endif -+ -+void -+big_linux_boot (void) -+{ -+ struct linux_kernel_params *params; -+ struct grub_linux_kernel_header *lh; -+ grub_efi_uintn_t map_key; -+ grub_efi_uintn_t desc_size; -+ grub_efi_uint32_t desc_version; -+ int e820_nr_map; -+ int i; -+ -+ params = real_mode_mem; -+ -+ graphics_set_kernel_params (params); -+ -+ if (grub_efi_get_memory_map (&map_key, &desc_size, &desc_version) <= 0) -+ grub_fatal ("cannot get memory map"); -+ -+ /* Pass e820 memmap. */ -+ e820_map_from_efi_map ((struct e820_entry *) params->e820_map, &e820_nr_map, -+ mmap_buf, desc_size, mmap_size); -+ params->e820_nr_map = e820_nr_map; -+ -+ grub_dprintf(__func__,"got to ExitBootServices...\n"); -+ if (! grub_efi_exit_boot_services (map_key)) -+ grub_fatal ("cannot exit boot services"); -+ /* Note that no boot services are available from here. */ -+ -+ lh = ¶ms->hdr; -+ /* Pass EFI parameters. */ -+ if (grub_le_to_cpu16 (lh->version) >= 0x0206) { -+ params->version_0206.efi_mem_desc_size = desc_size; -+ params->version_0206.efi_mem_desc_version = desc_version; -+ params->version_0206.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf; -+ params->version_0206.efi_mmap_size = mmap_size; -+ } else if (grub_le_to_cpu16 (lh->version) >= 0x0204) { -+ params->version_0204.efi_mem_desc_size = desc_size; -+ params->version_0204.efi_mem_desc_version = desc_version; -+ params->version_0204.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf; -+ params->version_0204.efi_mmap_size = mmap_size; -+ } else /* dunno */ { -+ params->dunno.efi_mem_desc_size = desc_size; -+ params->dunno.efi_mem_desc_version = desc_version; -+ params->dunno.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf; -+ params->dunno.efi_mmap_size = mmap_size; -+ params->dunno.efi_mmap_hi = PTR_HI(mmap_buf); -+ } -+ -+#ifdef __x86_64__ -+ /* copy our real mode transition code to 0x700 */ -+ memcpy ((void *) 0x700, switch_image, switch_size); -+ asm volatile ( "mov $0x700, %%rdi" : :); -+ -+ /* Pass parameters. */ -+ asm volatile ("mov %0, %%rsi" : : "m" (real_mode_mem)); -+ asm volatile ("movl %0, %%ebx" : : "m" (params->hdr.code32_start)); -+ -+ /* Enter Linux, switch from 64-bit long mode -+ * to 32-bit protect mode, this code end address -+ * must not exceed 0x1000, because linux kernel bootstrap -+ * code will flush this area -+ */ -+ asm volatile ( "jmp *%%rdi" : :); -+#else -+ -+ asm volatile ( "cli" : : ); -+ -+ grub_memset((void *)gdt_addr.base, gdt_addr.limit, 0); -+ grub_memcpy((void *)gdt_addr.base, init_gdt, sizeof (init_gdt)); -+ -+ if (0) { -+ /* copy our real mode transition code to 0x7C00 */ -+ memcpy ((void *) 0x7C00, switch_image, switch_size); -+ asm volatile ( "mov $0x7C00, %%ebx" : : ); -+ asm volatile ( "jmp *%%ebx" : : ); -+ } else { -+ -+ /* load descriptor table pointers */ -+ // asm volatile ( "lidt %0" : : "m" (idt_addr) ); -+ asm volatile ( "lgdt %0" : : "m" (gdt_addr) ); -+ -+ /* -+ * ebx := 0 (%%TBD - do not know why, yet) -+ * ecx := kernel entry point -+ * esi := address of boot sector and setup data -+ */ -+ -+ asm volatile ( "movl %0, %%esi" : : "m" (real_mode_mem) ); -+ asm volatile ( "movl %0, %%ecx" : : "m" (params->hdr.code32_start) ); -+ asm volatile ( "xorl %%ebx, %%ebx" : : ); -+ -+ /* -+ * Jump to kernel entry point. -+ */ -+ -+ asm volatile ( "jmp *%%ecx" : : ); -+ } -+#endif -+ -+ /* Never reach here. */ -+ for (;;); -+} -+ -+int -+grub_load_linux (char *kernel, char *arg) -+{ -+ struct grub_linux_kernel_header *lh; -+ struct linux_kernel_params *params; -+ static struct linux_kernel_params params_buf; -+ grub_uint8_t setup_sects; -+ grub_size_t real_size, prot_size; -+ grub_ssize_t len; -+ char *dest; -+ -+ if (kernel == NULL) -+ { -+ errnum = ERR_BAD_FILENAME; -+ grub_printf ("no kernel specified"); -+ goto fail1; -+ } -+ -+ if (! grub_open (kernel)) -+ goto fail1; -+ -+ if (grub_read ((char *) ¶ms_buf, sizeof (params_buf)) -+ != sizeof (params_buf)) -+ { -+ errnum = ERR_EXEC_FORMAT; -+ grub_close(); -+ grub_printf ("cannot read the linux header"); -+ goto fail; -+ } -+ -+ lh = ¶ms_buf.hdr; -+ -+ if (lh->boot_flag != grub_cpu_to_le16 (0xaa55)) -+ { -+ errnum = ERR_EXEC_FORMAT; -+ grub_close(); -+ grub_printf ("invalid magic number: %x", lh->boot_flag); -+ goto fail; -+ } -+ -+ /* EFI support is quite new, so reject old versions. */ -+ if (lh->header != grub_cpu_to_le32 (GRUB_LINUX_MAGIC_SIGNATURE) -+ || grub_le_to_cpu16 (lh->version) < 0x0203) -+ { -+ grub_close(); -+ errnum = ERR_EXEC_FORMAT; -+ grub_printf ("too old version"); -+ goto fail; -+ } -+ -+ /* I'm not sure how to support zImage on EFI. */ -+ if (! (lh->loadflags & GRUB_LINUX_FLAG_BIG_KERNEL)) -+ { -+ errnum = ERR_EXEC_FORMAT; -+ grub_printf ("zImage is not supported"); -+ goto fail; -+ } -+ -+ setup_sects = lh->setup_sects; -+ -+ real_size = 0x1000 + grub_strlen(arg); -+ prot_size = grub_file_size () - (setup_sects << SECTOR_BITS) - SECTOR_SIZE; -+ -+ if (! allocate_pages (real_size, prot_size)) -+ goto fail; -+ -+ /* XXX Linux assumes that only elilo can boot Linux on EFI!!! */ -+ lh->type_of_loader = 0x50; -+ -+ lh->cmd_line_ptr = (grub_uint32_t) (unsigned long) real_mode_mem + 0x1000; -+ -+ lh->heap_end_ptr = LINUX_HEAP_END_OFFSET; -+ lh->loadflags |= LINUX_FLAG_CAN_USE_HEAP; -+ -+ lh->ramdisk_image = 0; -+ lh->ramdisk_size = 0; -+ -+ grub_memset(real_mode_mem, 0, real_size); -+ -+ params = (struct linux_kernel_params *) real_mode_mem; -+ -+ grub_memmove(¶ms->hdr, lh, 0x202 + lh->jump_off - 0x1f1); -+ -+ params->cl_magic = GRUB_LINUX_CL_MAGIC; -+ params->cl_offset = 0x1000; -+ -+ /* These are not needed to be precise, because Linux uses these values -+ only to raise an error when the decompression code cannot find good -+ space. */ -+ params->ext_mem = ((32 * 0x100000) >> 10); -+ params->alt_mem = ((32 * 0x100000) >> 10); -+ -+ /* No APM on EFI. */ -+ params->apm_version = 0; -+ params->apm_code_segment = 0; -+ params->apm_entry = 0; -+ params->apm_16bit_code_segment = 0; -+ params->apm_data_segment = 0; -+ params->apm_flags = 0; -+ params->apm_code_len = 0; -+ params->apm_data_len = 0; -+ -+ /* XXX is there any way to use SpeedStep on EFI? */ -+ params->ist_signature = 0; -+ params->ist_command = 0; -+ params->ist_event = 0; -+ params->ist_perf_level = 0; -+ -+ /* Let the kernel probe the information. */ -+ grub_memset (params->hd0_drive_info, 0, sizeof (params->hd0_drive_info)); -+ grub_memset (params->hd1_drive_info, 0, sizeof (params->hd1_drive_info)); -+ -+ /* No MCA on EFI. */ -+ params->rom_config_len = 0; -+ -+ if (grub_le_to_cpu16 (lh->version) >= 0x0206) { -+ grub_memcpy(¶ms->version_0204.efi_signature, "EL32", 4); -+ params->version_0206.efi_system_table = \ -+ (grub_uint32_t) (unsigned long) grub_efi_system_table; -+ } else if (grub_le_to_cpu16 (lh->version) >= 0x0204) { -+ grub_memcpy(¶ms->version_0204.efi_signature, "EFIL", 4); -+ params->version_0204.efi_system_table = \ -+ (grub_uint32_t) (unsigned long) grub_efi_system_table; -+ } else /* dunno */ { -+ params->dunno.efi_signature = GRUB_LINUX_EFI_SIGNATURE_X64; -+ params->dunno.efi_system_table = \ -+ (grub_uint32_t) (unsigned long) grub_efi_system_table; -+ params->dunno.efi_system_table_hi = PTR_HI(grub_efi_system_table); -+ } -+ /* The other EFI parameters are filled when booting. */ -+ -+ /* No EDD */ -+ params->eddbuf_entries = 0; -+ params->edd_mbr_sig_buf_entries = 0; -+ -+ /* XXX there is no way to know if the kernel really supports EFI. */ -+ grub_printf ("[Linux-EFI, setup=0x%x, size=0x%x]\n", (unsigned int)real_size, -+ (unsigned int)prot_size); -+ -+ /* Check the mem= option to limit memory used for initrd. */ -+ { -+ char *mem; -+ -+ mem = grub_strstr (arg, "mem="); -+ if (mem) -+ { -+ char *value = mem + 4; -+ -+ safe_parse_maxulong (&value, &linux_mem_size); -+ switch (errnum) -+ { -+ case ERR_NUMBER_OVERFLOW: -+ /* If an overflow occurs, use the maximum address for -+ initrd instead. This is good, because MAXINT is -+ greater than LINUX_INITRD_MAX_ADDRESS. */ -+ linux_mem_size = LINUX_INITRD_MAX_ADDRESS; -+ errnum = ERR_NONE; -+ break; -+ -+ case ERR_NONE: -+ { -+ int shift = 0; -+ -+ switch (grub_tolower (*value)) -+ { -+ case 'g': -+ shift += 10; -+ case 'm': -+ shift += 10; -+ case 'k': -+ shift += 10; -+ default: -+ break; -+ } -+ -+ /* Check an overflow. */ -+ if (linux_mem_size > (~0UL >> shift)) -+ linux_mem_size = 0; -+ else -+ linux_mem_size <<= shift; -+ } -+ break; -+ -+ default: -+ linux_mem_size = 0; -+ errnum = ERR_NONE; -+ break; -+ } -+ } -+ else -+ linux_mem_size = 0; -+ } -+ -+ dest = grub_stpcpy ((char *) real_mode_mem + 0x1000, skip_to(0, arg)); -+ -+ grub_seek ((setup_sects << SECTOR_BITS) + SECTOR_SIZE); -+ len = prot_size; -+ if (grub_read ((char *) GRUB_LINUX_BZIMAGE_ADDR, len) != len) -+ grub_printf ("Couldn't read file"); -+ -+ if (errnum == ERR_NONE) -+ { -+ loaded = 1; -+ } -+ -+ fail: -+ -+ grub_close (); -+ -+ fail1: -+ -+ if (errnum != ERR_NONE) -+ { -+ loaded = 0; -+ } -+ return errnum ? KERNEL_TYPE_NONE : KERNEL_TYPE_BIG_LINUX; -+} -+ -+int -+grub_load_initrd (char *initrd) -+{ -+ grub_ssize_t size; -+ grub_addr_t addr_min, addr_max; -+ grub_addr_t addr; -+ grub_efi_uintn_t map_key; -+ grub_efi_memory_descriptor_t *mmap_end; -+ grub_efi_memory_descriptor_t *desc; -+ grub_efi_memory_descriptor_t tdesc; -+ grub_efi_uintn_t desc_size; -+ grub_efi_uint32_t desc_version; -+ struct linux_kernel_params *params; -+ -+ if (initrd == NULL) -+ { -+ errnum = ERR_BAD_FILENAME; -+ grub_printf ("No module specified"); -+ goto fail1; -+ } -+ -+ if (! loaded) -+ { -+ errnum = ERR_UNRECOGNIZED; -+ grub_printf ("You need to load the kernel first."); -+ goto fail1; -+ } -+ -+ if (! grub_open (initrd)) -+ goto fail1; -+ -+ size = grub_file_size (); -+ initrd_pages = (page_align (size) >> 12); -+ -+ params = (struct linux_kernel_params *) real_mode_mem; -+ grub_dprintf(__func__, "initrd_pages: %lu\n", initrd_pages); -+ -+ addr_max = grub_cpu_to_le32 (params->hdr.initrd_addr_max); -+ if (linux_mem_size != 0 && linux_mem_size < addr_max) -+ addr_max = linux_mem_size; -+ addr_max &= ~((1 << 12)-1); -+ -+ /* Linux 2.3.xx has a bug in the memory range check, so avoid -+ the last page. -+ Linux 2.2.xx has a bug in the memory range check, which is -+ worse than that of Linux 2.3.xx, so avoid the last 64kb. */ -+ //addr_max -= 0x10000; -+ -+ /* Usually, the compression ratio is about 50%. */ -+ addr_min = (grub_addr_t) prot_mode_mem + ((prot_mode_pages * 3) << 12); -+ grub_dprintf(__func__, "prot_mode_mem=%p prot_mode_pages=%lu\n", prot_mode_mem, prot_mode_pages); -+ -+ /* Find the highest address to put the initrd. */ -+ if (grub_efi_get_memory_map (&map_key, &desc_size, &desc_version) <= 0) -+ grub_fatal ("cannot get memory map"); -+ -+ mmap_end = NEXT_MEMORY_DESCRIPTOR (mmap_buf, mmap_size); -+ addr = 0; -+ for (desc = mmap_buf; -+ desc < mmap_end; -+ desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size)) -+ { -+ if (desc->type != GRUB_EFI_CONVENTIONAL_MEMORY) -+ continue; -+ memcpy(&tdesc, desc, sizeof (tdesc)); -+ if (tdesc.physical_start < addr_min -+ && tdesc.num_pages > ((addr_min - tdesc.physical_start) >> 12)) -+ { -+ tdesc.num_pages -= ((addr_min - tdesc.physical_start) >> 12); -+ tdesc.physical_start = addr_min; -+ } -+ -+ grub_dprintf(__func__, "desc = {type=%d,ps=0x%llx,vs=0x%llx,sz=%llu,attr=%llu}\n", desc->type, (unsigned long long)desc->physical_start, (unsigned long long)desc->virtual_start, (unsigned long long)desc->num_pages, (unsigned long long)desc->attribute); -+ if (tdesc.physical_start >= addr_min -+ && tdesc.physical_start + page_align (size) <= addr_max -+ && tdesc.num_pages >= initrd_pages) -+ { -+ grub_efi_physical_address_t physical_end; -+ -+ physical_end = tdesc.physical_start + (tdesc.num_pages << 12); -+ if (physical_end > addr_max) -+ physical_end = addr_max; -+ -+ if (physical_end <= 0x7fffffffUL && physical_end > addr) -+ addr = physical_end - page_align (size); -+ } -+ } -+ -+ if (addr == 0) -+ { -+ errnum = ERR_UNRECOGNIZED; -+ grub_printf ("no free pages available"); -+ goto fail; -+ } -+ -+ initrd_mem = grub_efi_allocate_pages (addr, initrd_pages); -+ if (! initrd_mem) -+ grub_fatal ("cannot allocate pages: %x@%x", (unsigned)initrd_pages, -+ (unsigned)addr); -+ -+ if (grub_read (initrd_mem, size) != size) -+ { -+ grub_printf ("Couldn't read file"); -+ goto fail; -+ } -+ -+ grub_printf (" [Initrd, addr=0x%x, size=0x%x]\n", (unsigned int) addr, -+ (unsigned int) size); -+ -+ params->hdr.ramdisk_image = addr; -+ params->hdr.ramdisk_size = size; -+ -+ fail: -+ grub_close (); -+ fail1: -+ return !errnum; -+} -diff --git a/efi/ia32/loader/switch.S b/efi/ia32/loader/switch.S -new file mode 100644 -index 0000000..14142e9 ---- /dev/null -+++ b/efi/ia32/loader/switch.S -@@ -0,0 +1,118 @@ -+# -+# Switch from protected mode to real mode and jump to setup.S -+# image located at %cx:0. -+# -+# This module must be placed into physical memory at 0:7C00h. -+# EFI has some real mode thunking code at 2000:0h. -+# -+# Processor and non-maskable interrupts should be disabled -+# before control is passed to this module. -+# -+ -+.global _start -+ -+.code32 -+.text -+_start: -+ # -+ # Load identity mapped GDT & real mode IDT. -+ # Add 7C00h to the addresses since this is linked to start -+ # at 0h and it is being placed at 7C00h. -+ # -+ -+ lgdt %cs:gdt_48 + 0x7C00 -+ lidt %cs:idt_48 + 0x7C00 -+ -+ # -+ # Turn off PG bit in CR0 and set CR3 to zero. -+ # -+ -+ movl %cr0, %eax -+ andl $0x7FFFFFFF, %eax -+ movl %eax, %cr0 -+ -+ xorl %eax, %eax -+ movl %eax, %cr3 -+ -+ # -+ # Reload CS. -+ # Now we add 7B00h because we need to force the segment -+ # address and selector to be the same. -+ # -+ -+ .byte 0xEA -+ .long pm_reload + 0x7B00 -+ .word 0x10 -+ -+pm_reload: -+ -+.code16 -+ -+ # -+ # Reload DS, ES, FS, GS & SS. -+ # -+ -+ movw $0x18, %ax -+ movw %ax, %ds -+ movw %ax, %es -+ movw %ax, %fs -+ movw %ax, %gs -+ movw %ax, %ss -+ -+ # -+ # Switch to real mode. Clear PE bit in CR0. -+ # -+ -+ movl %cr0, %eax -+ andl $0xFFFFFFFE, %eax -+ movl %eax, %cr0 -+ -+ # -+ # Reload CS. -+ # -+ -+ .byte 0xEA -+ .word rm_reload + 0x7C00 -+ .word 0 -+ -+rm_reload: -+ -+ # -+ # Reload SS & SP. -+ # -+ -+ xorw %ax, %ax -+ movw %ax, %ss -+ movw $0x7BFE, %sp -+ -+ # -+ # Start running setup.S -+ # -+ -+ .byte 0xEA -+ .word 0 -+ .word 0x9020 -+ -+ # -+ # GDT & IDT stuff for switching into real mode. -+ # -+ -+gdt: .word 0, 0, 0, 0 # unused (00h) -+ .word 0, 0, 0, 0 # dummy (08h) -+ .word 0xFFFF, 0x100 # code (10h) -+ .word 0x9A00, 0 -+ .word 0xFFFF, 0x180 # data (18h) -+ .word 0x9200, 0 -+ -+gdt_48: .word 0x08 * 0x400 -+ .long gdt + 0x7C00 -+ -+idt_48: .word 0x400 -+ .long 0 -+ -+ # -+ # Be careful not to exceed 1F0h or the the bootsect.S -+ # parameters will be lost! -+ # -+ -+.end -diff --git a/efi/ia32/loader/switch.h b/efi/ia32/loader/switch.h -new file mode 100644 -index 0000000..4e18dde ---- /dev/null -+++ b/efi/ia32/loader/switch.h -@@ -0,0 +1,19 @@ -+unsigned char switch_image[] = { -+0x2e, 0x0f, 0x01, 0x15, 0x6f, 0x7c, 0x00, 0x00, -+0x2e, 0x0f, 0x01, 0x1d, 0x75, 0x7c, 0x00, 0x00, -+0x0f, 0x20, 0xc0, 0x25, 0xff, 0xff, 0xff, 0x7f, -+0x0f, 0x22, 0xc0, 0x31, 0xc0, 0x0f, 0x22, 0xd8, -+0xea, 0x27, 0x7b, 0x00, 0x00, 0x10, 0x00, 0xb8, -+0x18, 0x00, 0x8e, 0xd8, 0x8e, 0xc0, 0x8e, 0xe0, -+0x8e, 0xe8, 0x8e, 0xd0, 0x0f, 0x20, 0xc0, 0x66, -+0x83, 0xe0, 0xfe, 0x0f, 0x22, 0xc0, 0xea, 0x43, -+0x7c, 0x00, 0x00, 0x31, 0xc0, 0x8e, 0xd0, 0xbc, -+0xfe, 0x7b, 0xea, 0x00, 0x00, 0x20, 0x90, 0x00, -+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, -+0xff, 0x00, 0x01, 0x00, 0x9a, 0x00, 0x00, 0xff, -+0xff, 0x80, 0x01, 0x00, 0x92, 0x00, 0x00, 0x00, -+0x20, 0x4f, 0x7c, 0x00, 0x00, 0x00, 0x04, 0x00, -+0x00, 0x00, 0x00, -+}; -+int switch_size = sizeof switch_image; -diff --git a/efi/ia32/reloc.c b/efi/ia32/reloc.c -new file mode 100644 -index 0000000..72db0f6 ---- /dev/null -+++ b/efi/ia32/reloc.c -@@ -0,0 +1,79 @@ -+/* reloc_x86_64.c - position independent x86_64 ELF shared object relocator -+ Copyright (C) 1999 Hewlett-Packard Co. -+ Contributed by David Mosberger . -+ Copyright (C) 2005 Intel Co. -+ Contributed by Fenghua Yu . -+ -+ This file is part of GNU-EFI, the GNU EFI development environment. -+ -+ GNU EFI 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, or (at your option) -+ any later version. -+ -+ GNU EFI 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 GNU EFI; see the file COPYING. If not, write to the Free -+ Software Foundation, 59 Temple Place - Suite 330, Boston, MA -+ 02111-1307, USA. */ -+ -+#include -+#include -+#include -+ -+grub_efi_status_t _relocate (long ldbase, ElfW(Dyn) *dyn, -+ grub_efi_handle_t image_handle, -+ grub_efi_system_table_t *sys_tab) -+{ -+ //extern EFI_STATUS efi_main (EFI_HANDLE, EFI_SYSTEM_TABLE *); -+ long relsz = 0, relent = 0; -+ ElfW(Rel) *rel = 0; -+ unsigned long *addr; -+ int i; -+ -+ for (i = 0; dyn[i].d_tag != DT_NULL; ++i) { -+ switch (dyn[i].d_tag) { -+ case DT_REL: -+ rel = (ElfW(Rel)*) ((long) dyn[i].d_un.d_ptr + ldbase); -+ break; -+ -+ case DT_RELSZ: -+ relsz = dyn[i].d_un.d_val; -+ break; -+ -+ case DT_RELENT: -+ relent = dyn[i].d_un.d_val; -+ break; -+ -+ default: -+ continue; -+ } -+ } -+ -+ if (!rel || relent == 0){ -+ return GRUB_EFI_LOAD_ERROR; -+ } -+ while (relsz > 0) { -+ /* apply the relocs */ -+ switch (ELF64_R_TYPE (rel->r_info)) { -+ case R_386_NONE: -+ break; -+ -+ case R_386_RELATIVE: -+ addr = (unsigned long *) (ldbase + rel->r_offset); -+ *addr += ldbase; -+ break; -+ -+ default: -+ break; -+ } -+ rel = (ElfW(Rel)*) ((char *) rel + relent); -+ relsz -= relent; -+ } -+ return GRUB_EFI_SUCCESS; -+} -+ -diff --git a/efi/ia32/setjmp.S b/efi/ia32/setjmp.S -new file mode 100644 -index 0000000..38c33af ---- /dev/null -+++ b/efi/ia32/setjmp.S -@@ -0,0 +1,86 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2000 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. -+ */ -+ -+/* This is stolen from libc/x86/setjmp.S in the OSKit */ -+/* -+ * Mach Operating System -+ * Copyright (c) 1991,1990,1989 Carnegie Mellon University -+ * All Rights Reserved. -+ * -+ * Permission to use, copy, modify and distribute this software and its -+ * documentation is hereby granted, provided that both the copyright -+ * notice and this permission notice appear in all copies of the -+ * software, derivative works or modified versions, and any portions -+ * thereof, and that both notices appear in supporting documentation. -+ * -+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" -+ * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR -+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. -+ * -+ * Carnegie Mellon requests users of this software to return to -+ * -+ * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU -+ * School of Computer Science -+ * Carnegie Mellon University -+ * Pittsburgh PA 15213-3890 -+ * -+ * any improvements or extensions that they make and grant Carnegie Mellon -+ * the rights to redistribute these changes. -+ */ -+/* -+ * C library -- _setjmp, _longjmp -+ * -+ * _longjmp(a,v) -+ * will generate a "return(v)" from -+ * the last call to -+ * _setjmp(a) -+ * by restoring registers from the stack, -+ * The previous signal state is NOT restored. -+ * -+ */ -+#include -+ -+ .file "setjmp.S" -+ -+ .text -+ -+FUNCTION(grub_setjmp) -+ movl 4(%esp), %ecx /* fetch buffer */ -+ movl %ebx, 0(%ecx) -+ movl %esi, 4(%ecx) -+ movl %edi, 8(%ecx) -+ movl %ebp, 12(%ecx) /* save frame pointer of caller */ -+ popl %edx -+ movl %esp, 16(%ecx) /* save stack pointer of caller */ -+ movl %edx, 20(%ecx) /* save pc of caller */ -+ xorl %eax, %eax -+ jmp *%edx -+ -+FUNCTION(grub_longjmp) -+ movl 8(%esp), %eax /* return(v) */ -+ movl 4(%esp), %ecx /* fetch buffer */ -+ movl 0(%ecx), %ebx -+ movl 4(%ecx), %esi -+ movl 8(%ecx), %edi -+ movl 12(%ecx), %ebp -+ movl 16(%ecx), %esp -+ orl %eax, %eax -+ jnz 0f -+ incl %eax -+0: jmp *20(%ecx) /* done, return.... */ -diff --git a/efi/pxe.c b/efi/pxe.c -new file mode 100644 -index 0000000..59f0d0d ---- /dev/null -+++ b/efi/pxe.c -@@ -0,0 +1,460 @@ -+ -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+#include "pxe.h" -+#include "dhcp.h" -+ -+/* Search path is: -+ * -+ * X86PC/UNDI/pxelinux/pxelinux.cfg/1902dcf5-7190-d811-bbd6-6ef21c690030 -+ * X86PC/UNDI/pxelinux/pxelinux.cfg/01-00-30-6e-f2-1c-69 -+ * X86PC/UNDI/pxelinux/pxelinux.cfg/0A103437 -+ * X86PC/UNDI/pxelinux/pxelinux.cfg/0A10343 -+ * X86PC/UNDI/pxelinux/pxelinux.cfg/0A1034 -+ * X86PC/UNDI/pxelinux/pxelinux.cfg/0A103 -+ * X86PC/UNDI/pxelinux/pxelinux.cfg/0A10 -+ * X86PC/UNDI/pxelinux/pxelinux.cfg/0A1 -+ * X86PC/UNDI/pxelinux/pxelinux.cfg/0A -+ * X86PC/UNDI/pxelinux/pxelinux.cfg/0 -+ * X86PC/UNDI/pxelinux/pxelinux.cfg/default -+ * -+ * The paths we get from uefi are like: -+ * .BootBootFile: X86PC/UNDI/pxelinux/bootx64.efi -+ * .BootCiAddr: 0.0.0.0 -+ * .BootYiAddr: 10.16.52.158 -+ * .BootSiAddr: 10.16.52.16 -+ */ -+ -+typedef struct { -+ char *options; -+ EFI_DHCP4_PACKET_OPTION *current_option; -+} dhcp_option_parser; -+ -+static void dhcp_option_parser_reset(dhcp_option_parser *parser, -+ EFI_PXE_BASE_CODE_PACKET *packet) -+{ -+ char *addr; -+ -+ addr = (char *)packet; -+ addr += offsetof(EFI_PXE_BASE_CODE_DHCPV4_PACKET, DhcpOptions); -+ parser->current_option = (void *)addr; -+ parser->options = (void *)addr; -+} -+ -+static int dhcp_option_parser_next(dhcp_option_parser *parser, -+ EFI_DHCP4_PACKET_OPTION **option) -+{ -+ char *current_option; -+ if (parser->current_option->OpCode == 255) { -+ *option = NULL; -+ return 0; -+ } -+ current_option = (char *)parser->current_option; -+ current_option += 2 + parser->current_option->Length; -+ parser->current_option = (EFI_DHCP4_PACKET_OPTION *)current_option; -+ -+ *option = parser->current_option; -+ return 1; -+} -+ -+#define DHCPMAGIK "\x63\x82\x53\x63" -+ -+static int get_dhcp_client_id(EFI_PXE_BASE_CODE_PACKET *packet, uuid_t *uuid) -+{ -+ dhcp_option_parser parser; -+ EFI_DHCP4_PACKET_OPTION *option; -+ -+ dhcp_option_parser_reset(&parser, packet); -+ -+ if (memcmp((char *)&packet->Dhcpv4.DhcpMagik, DHCPMAGIK, 4)) -+ return 0; -+ -+ while (dhcp_option_parser_next(&parser, &option)) { -+ int i; -+ char data[option->Length]; -+ -+ if (option->OpCode != 97) -+ continue; -+ -+ if (option->Length != 17) -+ continue; -+ -+ memcpy(data, option->Data, option->Length); -+ if (data[0] != 0) -+ continue; -+ -+ /* 97[17]: 009cfe245ed0c8bd45a79f54ea5fbd3d97 -+ * ^^^^^^^^^^^^ uint8_t[] -+ * ^^ uint8_t -+ * ^^ uint8_t -+ * ^^^^ BE uint16_t -+ * ^^^^ BE uint16_t -+ * ^^^^^^^^ BE uint32_t -+ * ^^ "type". 0 means UUID. -+ */ -+ memcpy(uuid, data+1, 16); -+ uuid->time_low = htonl(uuid->time_low); -+ uuid->time_mid = htons(uuid->time_mid); -+ uuid->time_hi_ver = htons(uuid->time_hi_ver); -+ -+ return 1; -+ } -+ return 0; -+} -+ -+#if 0 -+static void grub_dump_dhcp_options(EFI_PXE_BASE_CODE_PACKET *packet) -+{ -+ dhcp_option_parser parser; -+ EFI_DHCP4_PACKET_OPTION *option; -+ char hex[] = "0123456789abcdef"; -+ int i; -+ int j = 0; -+ -+ dhcp_option_parser_reset(&parser, packet); -+ -+ if (memcmp((char *)&packet->Dhcpv4.DhcpMagik, DHCPMAGIK, 4)) -+ return; -+ -+ /* 54[4]: a0014301 -+ * 51[4]: 00004506 -+ * 1[4]: ffffff00 -+ * 3[4]: a00143ef -+ * 6[8]: a001ff20a001ff30 -+ * 15[48]: 96e6374716c6c6e226f637e2275646861647e236f6d60226f637e2275646861647e236f6d602275646861647e236f6d6 -+ * 28[4]: a00143ff -+ * 40[10]: 275646861647e236f6d6 -+ * 41[8]: a001ff20a001ff30 -+ * 58[4]: 0000a203 -+ * 59[4]: 0000944d -+ * this is the one we want: -+ * 97[17]: 009cfe245ed0c8bd45a79f54ea5fbd3d97 -+ * ^^^^^^^^^^^^ in order -+ * ^^ -+ * ^^ -+ * ^^^^ out of order -+ * ^^^^ out of order -+ * ^^^^^^^^ out of order -+ * ^^ "type". 0 means UUID. -+ * 255[0]: -+ */ -+ while (dhcp_option_parser_next(&parser, &option)) { -+ char data[option->Length + 1]; -+ -+ memcpy(data, option->Data, option->Length); -+ data[option->Length] = '\0'; -+ -+ grub_printf("%d[%d]: ", option->OpCode, option->Length); -+ for (i = 0; i < option->Length; i++) { -+ grub_printf("%c%c", hex[data[i] & 0xf], -+ hex[(data[i] & 0xf0) >> 4]); -+ } -+ printf("\n"); -+ } -+ -+} -+ -+void grub_print_dhcp_info(grub_efi_loaded_image_t *loaded_image) -+{ -+ EFI_PXE_BASE_CODE *pxe = NULL; -+ EFI_PXE_BASE_CODE_PACKET *packet; -+ -+ grub_printf("got to %s\n", __func__); -+ -+ pxe = grub_efi_locate_protocol(&PxeBaseCodeProtocol, NULL); -+ if (pxe == NULL) -+ return; -+ -+ printf("DhcpDiscover options:\n"); -+ packet = (EFI_PXE_BASE_CODE_PACKET *)&pxe->Mode->DhcpDiscover.Dhcpv4; -+ grub_dump_dhcp_options(packet); -+ -+ printf("DhcpAck options:\n"); -+ packet = (EFI_PXE_BASE_CODE_PACKET *)&pxe->Mode->DhcpAck.Dhcpv4; -+ grub_dump_dhcp_options(packet); -+ -+ printf("PxeDiscover options:\n"); -+ packet = (EFI_PXE_BASE_CODE_PACKET *)&pxe->Mode->PxeDiscover.Dhcpv4; -+ grub_dump_dhcp_options(packet); -+ -+ printf("PxeReply options:\n"); -+ packet = (EFI_PXE_BASE_CODE_PACKET *)&pxe->Mode->PxeReply.Dhcpv4; -+ grub_dump_dhcp_options(packet); -+ -+#if 0 -+ printf("pxe->Mode->DhcpAck.Dhcpv4: \n"); -+ printf("\t.BootSrvName: %s\n", pxe->Mode->DhcpAck.Dhcpv4.BootpSrvName); -+ printf("\t.BootBootFile: %s\n", pxe->Mode->DhcpAck.Dhcpv4.BootpBootFile); -+ printf("\t.BootCiAddr: %d.%d.%d.%d\n", -+ pxe->Mode->DhcpAck.Dhcpv4.BootpCiAddr[0], -+ pxe->Mode->DhcpAck.Dhcpv4.BootpCiAddr[1], -+ pxe->Mode->DhcpAck.Dhcpv4.BootpCiAddr[2], -+ pxe->Mode->DhcpAck.Dhcpv4.BootpCiAddr[3]); -+ printf("\t.BootYiAddr: %d.%d.%d.%d\n", -+ pxe->Mode->DhcpAck.Dhcpv4.BootpYiAddr[0], -+ pxe->Mode->DhcpAck.Dhcpv4.BootpYiAddr[1], -+ pxe->Mode->DhcpAck.Dhcpv4.BootpYiAddr[2], -+ pxe->Mode->DhcpAck.Dhcpv4.BootpYiAddr[3]); -+ printf("\t.BootSiAddr: %d.%d.%d.%d\n", -+ pxe->Mode->DhcpAck.Dhcpv4.BootpSiAddr[0], -+ pxe->Mode->DhcpAck.Dhcpv4.BootpSiAddr[1], -+ pxe->Mode->DhcpAck.Dhcpv4.BootpSiAddr[2], -+ pxe->Mode->DhcpAck.Dhcpv4.BootpSiAddr[3]); -+ printf("\t.BootGiAddr: %d.%d.%d.%d\n", -+ pxe->Mode->DhcpAck.Dhcpv4.BootpGiAddr[0], -+ pxe->Mode->DhcpAck.Dhcpv4.BootpGiAddr[1], -+ pxe->Mode->DhcpAck.Dhcpv4.BootpGiAddr[2], -+ pxe->Mode->DhcpAck.Dhcpv4.BootpGiAddr[3]); -+ } -+ printf("\n"); -+#endif -+ -+ -+} -+#endif -+ -+static void icmp_print_error(EFI_PXE_BASE_CODE *pxe) -+{ -+ EFI_PXE_BASE_CODE_ICMP_ERROR *err = &pxe->Mode->IcmpError; -+ int i; -+ //char hex[] = "0123456789abcdef"; -+ -+ printf("icmp error\n"); -+ printf("type: %d code: %d\n", err->Type, err->Code); -+ printf("data: \n"); -+ for(i = 0; i < 464; i+=16) { -+ int x; -+ for (x = i; x < i+4; x++) -+ printf("%02x ", err->Data[x]); -+ printf(" "); -+ for (x = i+4; x < i+8; x++) -+ printf("%02x ", err->Data[x]); -+ printf(" "); -+ printf(" "); -+ for (x = i+8; x < i+12; x++) -+ printf("%02x ", err->Data[x]); -+ printf(" "); -+ for (x = i+12; x < i+16; x++) -+ printf("%02x ", err->Data[x]); -+ printf("\n"); -+ } -+} -+ -+static int grub_efi_pxe_check_for_file( -+ EFI_PXE_BASE_CODE *pxe, -+ EFI_IP_ADDRESS *ServerIp, -+ char *BootpBootFile, -+ char *configname, -+ char **returnpath) -+{ -+ size_t bplen = strlen(BootpBootFile); -+ char *Filename = grub_malloc(24 + bplen + 40); -+ char *lastslash = Filename + bplen; -+ grub_efi_uintn_t size; -+ int i; -+ EFI_STATUS rc; -+ char Buffer[8192]; -+ -+ memcpy(Filename, BootpBootFile, bplen); -+ -+ for (i = 0; i < bplen; i++) { -+ if (Filename[i] == '/') -+ lastslash = Filename + i; -+ } -+ if (*lastslash) { -+ *lastslash++ = '/'; -+ *lastslash = '\0'; -+ } -+ -+ sprintf(lastslash, configname); -+ -+ printf("tftp://%d.%d.%d.%d/%s\n", -+ ServerIp->v4.Addr[0], ServerIp->v4.Addr[1], -+ ServerIp->v4.Addr[2], ServerIp->v4.Addr[3], -+ Filename); -+ -+ rc = tftp_get_file_size(Filename, &size); -+ if (rc == GRUB_EFI_ICMP_ERROR) -+ icmp_print_error(pxe); -+ -+ if (rc == GRUB_EFI_SUCCESS) { -+ *returnpath = Filename; -+ return size; -+ } -+ grub_free(Filename); -+ return 0; -+} -+ -+static void get_pxe_server(EFI_PXE_BASE_CODE *pxe, EFI_IP_ADDRESS **Address) -+{ -+ EFI_IP_ADDRESS *tmp = grub_malloc(sizeof *tmp); -+ if (tmp) { -+ memset(tmp, '\0', sizeof (*tmp)); -+ memcpy(&tmp->Addr[0], pxe->Mode->DhcpAck.Dhcpv4.BootpSiAddr, 4); -+ *Address = tmp; -+ } -+} -+ -+static char *get_pxe_file_dir(EFI_PXE_BASE_CODE *pxe) -+{ -+ char *FileDir = NULL; -+ char *DirEnd = NULL; -+ char *BootpBootFile; -+ size_t bplen; -+ -+ BootpBootFile = pxe->Mode->DhcpAck.Dhcpv4.BootpBootFile; -+ bplen = strlen(BootpBootFile); -+ FileDir = grub_malloc(bplen + 1); -+ memcpy(FileDir, BootpBootFile, bplen); -+ FileDir[bplen] = '\0'; -+ -+ DirEnd = grub_strrchr(FileDir, '/'); -+ if (!DirEnd) -+ DirEnd = FileDir; -+ -+ *DirEnd = '\0'; -+ -+ return FileDir; -+} -+ -+static void set_pxe_info(grub_efi_loaded_image_t *LoadedImage, -+ EFI_PXE_BASE_CODE *pxe) -+{ -+ tftp_info.LoadedImage = LoadedImage; -+ tftp_info.Pxe = pxe; -+ get_pxe_server(pxe, &tftp_info.ServerIp); -+ tftp_info.BasePath = get_pxe_file_dir(pxe); -+} -+ -+char *grub_efi_pxe_get_config_path(grub_efi_loaded_image_t *LoadedImage) -+{ -+ EFI_PXE_BASE_CODE *pxe = NULL; -+ EFI_IP_ADDRESS ServerIp; -+ char *FileName = NULL; -+ EFI_PXE_BASE_CODE_DHCPV4_PACKET *packet; -+ uuid_t uuid; -+ grub_efi_uintn_t FileSize = 0; -+ grub_efi_status_t rc = GRUB_EFI_SUCCESS; -+ char *ConfigPath = NULL; -+ char hex[] = "0123456789ABCDEF"; -+ char hexip[9]; -+ int hexiplen; -+ -+ grub_efi_handle_t *handle, *handles; -+ grub_efi_uintn_t num_handles; -+ -+ handles = grub_efi_locate_handle(GRUB_EFI_BY_PROTOCOL, -+ &PxeBaseCodeProtocol, -+ NULL, &num_handles); -+ -+ if (!handles) -+ return NULL; -+ -+ for (handle = handles; num_handles--; handle++) { -+ pxe = grub_efi_open_protocol(*handle, &PxeBaseCodeProtocol, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+ if (!pxe || !pxe->Mode) -+ continue; -+ if (pxe->Mode->Started && pxe->Mode->DhcpAckReceived) -+ break; -+ } -+ grub_free(handles); -+ -+ if (!pxe) -+ return NULL; -+ -+ set_pxe_info(LoadedImage, pxe); -+ -+ FileName = grub_malloc(strlen("1902dcf5-7190-d811-bbd6-6ef21c690030")); -+ -+ packet = &pxe->Mode->DhcpDiscover.Dhcpv4; -+ -+ if (get_dhcp_client_id((EFI_PXE_BASE_CODE_PACKET *)packet, &uuid)) { -+ -+ uuid.time_mid = 0x0011; -+ sprintf(FileName, -+ "%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X", -+ uuid.time_low, uuid.time_mid, uuid.time_hi_ver, -+ uuid.clock_seq_hi, uuid.clock_seq_low, -+ uuid.node[0], uuid.node[1], uuid.node[2], -+ uuid.node[3], uuid.node[4], uuid.node[5]); -+ -+ rc = tftp_get_file_size(FileName, &FileSize); -+ if (rc == GRUB_EFI_SUCCESS) { -+ char *ReturnFile = grub_malloc(strlen("(nd)/") + -+ strlen(FileName) + 1); -+ sprintf(ReturnFile, "(nd)/%s", FileName); -+ grub_free(FileName); -+ //sprintf(tftp_info.LastPath, FileName); -+ return ReturnFile; -+ } -+ } -+ -+ packet = &pxe->Mode->DhcpAck.Dhcpv4; -+ -+ if (!memcmp(packet->BootpHwAddr + 6, "\x00\x00\x00\x00\x00" -+ "\x00\x00\x00\x00\x00", 10) && -+ memcmp(packet->BootpHwAddr, "\x00\x00\x00\x00\x00\x00", -+ 6)) { -+ char mac[21]; -+ sprintf(mac, "01-%c%c-%c%c-%c%c-%c%c-%c%c-%c%c", -+ hex[(packet->BootpHwAddr[0] & 0xf0) >> 4], -+ hex[packet->BootpHwAddr[0] & 0xf], -+ hex[(packet->BootpHwAddr[1] & 0xf0) >> 4], -+ hex[packet->BootpHwAddr[1] & 0xf], -+ hex[(packet->BootpHwAddr[2] & 0xf0) >> 4], -+ hex[packet->BootpHwAddr[2] & 0xf], -+ hex[(packet->BootpHwAddr[3] & 0xf0) >> 4], -+ hex[packet->BootpHwAddr[3] & 0xf], -+ hex[(packet->BootpHwAddr[4] & 0xf0) >> 4], -+ hex[packet->BootpHwAddr[4] & 0xf], -+ hex[(packet->BootpHwAddr[5] & 0xf0) >> 4], -+ hex[packet->BootpHwAddr[5] & 0xf]); -+ -+ rc = tftp_get_file_size(mac, &FileSize); -+ if (rc == GRUB_EFI_SUCCESS) { -+ char *ReturnFile = grub_malloc(strlen("(nd)/") + -+ strlen(mac) + 1); -+ sprintf(ReturnFile, "(nd)/%s", mac); -+ return ReturnFile; -+ } -+ -+ } -+ -+ sprintf(hexip, "%c%c%c%c%c%c%c%c", -+ hex[(packet->BootpYiAddr[0] & 0xf0) >> 4], -+ hex[packet->BootpYiAddr[0] & 0xf], -+ hex[(packet->BootpYiAddr[1] & 0xf0) >> 4], -+ hex[packet->BootpYiAddr[1] & 0xf], -+ hex[(packet->BootpYiAddr[2] & 0xf0) >> 4], -+ hex[packet->BootpYiAddr[2] & 0xf], -+ hex[(packet->BootpYiAddr[3] & 0xf0) >> 4], -+ hex[packet->BootpYiAddr[3] & 0xf]); -+ -+ for (hexiplen = strlen(hexip); hexiplen > 0; hexiplen--) -+ { -+ hexip[hexiplen] = '\0'; -+ rc = tftp_get_file_size(hexip, &FileSize); -+ if (rc == GRUB_EFI_SUCCESS) { -+ char *ReturnFile = grub_malloc(strlen("(nd)/") + -+ strlen(hexip) + 1); -+ sprintf(ReturnFile, "(nd)/%s", hexip); -+ return ReturnFile; -+ } -+ } -+ -+ rc = tftp_get_file_size("efidefault", &FileSize); -+ if (rc == GRUB_EFI_SUCCESS) { -+ char *ReturnFile = grub_malloc(strlen("(nd)/efidefault")+1); -+ sprintf(ReturnFile, "(nd)/efidefault"); -+ return ReturnFile; -+ } -+ -+ return NULL; -+} -diff --git a/efi/pxe.h b/efi/pxe.h -new file mode 100644 -index 0000000..0a68007 ---- /dev/null -+++ b/efi/pxe.h -@@ -0,0 +1,237 @@ -+#ifndef PXE_H -+#define PXE_H 1 -+ -+#include "byteswap.h" -+ -+extern char *grub_efi_pxe_get_config_path(grub_efi_loaded_image_t *LoadedImage); -+extern void grub_print_dhcp_info(grub_efi_loaded_image_t *loaded_image); -+extern char *grub_efi_pxe_path_to_path_name(void); -+ -+ -+#define EFI_PXE_BASE_CODE_PROTOCOL \ -+ { 0x03c4e603, 0xac28, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } -+static grub_efi_guid_t PxeBaseCodeProtocol = EFI_PXE_BASE_CODE_PROTOCOL; -+ -+struct _EFI_PXE_BASE_CODE; -+ -+typedef enum { -+ EFI_PXE_BASE_CODE_TFTP_FIRST, -+ EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE, -+ EFI_PXE_BASE_CODE_TFTP_READ_FILE, -+ EFI_PXE_BASE_CODE_TFTP_WRITE_FILE, -+ EFI_PXE_BASE_CODE_TFTP_READ_DIRECTORY, -+ EFI_PXE_BASE_CODE_MTFTP_GET_FILE_SIZE, -+ EFI_PXE_BASE_CODE_MTFTP_READ_FILE, -+ EFI_PXE_BASE_CODE_MTFTP_READ_DIRECTORY, -+ EFI_PXE_BASE_CODE_MTFTP_LAST -+} EFI_PXE_BASE_CODE_TFTP_OPCODE; -+ -+typedef struct { -+ grub_efi_uint8_t Addr[4]; -+} EFI_IPv4_ADDRESS; -+ -+typedef struct { -+ grub_efi_uint8_t Addr[16]; -+} EFI_IPv6_ADDRESS; -+ -+typedef struct { -+ grub_efi_uint8_t Addr[32]; -+} EFI_MAC_ADDRESS; -+ -+typedef union { -+ grub_efi_uint32_t Addr[4]; -+ EFI_IPv4_ADDRESS v4; -+ EFI_IPv6_ADDRESS v6; -+} EFI_IP_ADDRESS; -+ -+typedef grub_efi_uint16_t EFI_PXE_BASE_CODE_UDP_PORT; -+ -+typedef struct { -+ EFI_IP_ADDRESS MCastIp; -+ EFI_PXE_BASE_CODE_UDP_PORT CPort; -+ EFI_PXE_BASE_CODE_UDP_PORT SPort; -+ grub_efi_uint16_t ListenTimeout; -+ grub_efi_uint16_t TransmitTimeout; -+} EFI_PXE_BASE_CODE_MTFTP_INFO; -+ -+typedef EFI_STATUS (*EFI_PXE_BASE_CODE_MTFTP)( -+ struct _EFI_PXE_BASE_CODE *This, -+ EFI_PXE_BASE_CODE_TFTP_OPCODE Operation, -+ void *BufferPtr, -+ grub_efi_boolean_t Overwrite, -+ grub_efi_uint64_t *BufferSize, -+ grub_efi_uintn_t *BlockSize, -+ EFI_IP_ADDRESS *ServerIp, -+ grub_efi_uint8_t *Filename, -+ EFI_PXE_BASE_CODE_MTFTP_INFO *Info, -+ grub_efi_boolean_t DontUseBuffer); -+ -+typedef struct { -+ grub_efi_uint8_t BootpOpcode; -+ grub_efi_uint8_t BootpHwType; -+ grub_efi_uint8_t BootpHwAddrLen; -+ grub_efi_uint8_t BootpGateHops; -+ grub_efi_uint32_t BootpIdent; -+ grub_efi_uint16_t BootpSeconds; -+ grub_efi_uint16_t BootpFlags; -+ grub_efi_uint8_t BootpCiAddr[4]; -+ grub_efi_uint8_t BootpYiAddr[4]; -+ grub_efi_uint8_t BootpSiAddr[4]; -+ grub_efi_uint8_t BootpGiAddr[4]; -+ grub_efi_uint8_t BootpHwAddr[16]; -+ grub_efi_uint8_t BootpSrvName[64]; -+ grub_efi_uint8_t BootpBootFile[128]; -+ grub_efi_uint32_t DhcpMagik; -+ grub_efi_uint8_t DhcpOptions[56]; -+} EFI_PXE_BASE_CODE_DHCPV4_PACKET; -+ -+// TBD in EFI v1.1 -+//typedef struct { -+// grub_efi_uint8_t reserved; -+//} EFI_PXE_BASE_CODE_DHCPV6_PACKET; -+ -+typedef union { -+ grub_efi_uint8_t Raw[1472]; -+ EFI_PXE_BASE_CODE_DHCPV4_PACKET Dhcpv4; -+// EFI_PXE_BASE_CODE_DHCPV6_PACKET Dhcpv6; -+} EFI_PXE_BASE_CODE_PACKET; -+ -+typedef struct { -+ grub_efi_uint8_t Type; -+ grub_efi_uint8_t Code; -+ grub_efi_uint16_t Checksum; -+ union { -+ grub_efi_uint32_t reserved; -+ grub_efi_uint32_t Mtu; -+ grub_efi_uint32_t Pointer; -+ struct { -+ grub_efi_uint16_t Identifier; -+ grub_efi_uint16_t Sequence; -+ } Echo; -+ } u; -+ grub_efi_uint8_t Data[494]; -+} EFI_PXE_BASE_CODE_ICMP_ERROR; -+ -+typedef struct { -+ grub_efi_uint8_t ErrorCode; -+ grub_efi_char8_t ErrorString[127]; -+} EFI_PXE_BASE_CODE_TFTP_ERROR; -+ -+ -+#define EFI_PXE_BASE_CODE_MAX_IPCNT 8 -+typedef struct { -+ grub_efi_uint8_t Filters; -+ grub_efi_uint8_t IpCnt; -+ grub_efi_uint16_t reserved; -+ EFI_IP_ADDRESS IpList[EFI_PXE_BASE_CODE_MAX_IPCNT]; -+} EFI_PXE_BASE_CODE_IP_FILTER; -+ -+#define EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP 0x0001 -+#define EFI_PXE_BASE_CODE_IP_FILTER_BROADCAST 0x0002 -+#define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS 0x0004 -+#define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS_MULTICAST 0x0008 -+ -+typedef struct { -+ EFI_IP_ADDRESS IpAddr; -+ EFI_MAC_ADDRESS MacAddr; -+} EFI_PXE_BASE_CODE_ARP_ENTRY; -+ -+typedef struct { -+ EFI_IP_ADDRESS IpAddr; -+ EFI_IP_ADDRESS SubnetMask; -+ EFI_IP_ADDRESS GwAddr; -+} EFI_PXE_BASE_CODE_ROUTE_ENTRY; -+ -+#define EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES 8 -+#define EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES 8 -+ -+typedef struct { -+ grub_efi_boolean_t Started; -+ grub_efi_boolean_t Ipv6Available; -+ grub_efi_boolean_t Ipv6Supported; -+ grub_efi_boolean_t UsingIpv6; -+ grub_efi_boolean_t BisSupported; -+ grub_efi_boolean_t BisDetected; -+ grub_efi_boolean_t AutoArp; -+ grub_efi_boolean_t SendGUID; -+ grub_efi_boolean_t DhcpDiscoverValid; -+ grub_efi_boolean_t DhcpAckReceived; -+ grub_efi_boolean_t ProxyOfferReceived; -+ grub_efi_boolean_t PxeDiscoverValid; -+ grub_efi_boolean_t PxeReplyReceived; -+ grub_efi_boolean_t PxeBisReplyReceived; -+ grub_efi_boolean_t IcmpErrorReceived; -+ grub_efi_boolean_t TftpErrorReceived; -+ grub_efi_boolean_t MakeCallbacks; -+ grub_efi_uint8_t TTL; -+ grub_efi_uint8_t ToS; -+ EFI_IP_ADDRESS StationIp; -+ EFI_IP_ADDRESS SubnetMask; -+ EFI_PXE_BASE_CODE_PACKET DhcpDiscover; -+ EFI_PXE_BASE_CODE_PACKET DhcpAck; -+ EFI_PXE_BASE_CODE_PACKET ProxyOffer; -+ EFI_PXE_BASE_CODE_PACKET PxeDiscover; -+ EFI_PXE_BASE_CODE_PACKET PxeReply; -+ EFI_PXE_BASE_CODE_PACKET PxeBisReply; -+ EFI_PXE_BASE_CODE_IP_FILTER IpFilter; -+ grub_efi_uint32_t ArpCacheEntries; -+ EFI_PXE_BASE_CODE_ARP_ENTRY ArpCache[EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES]; -+ grub_efi_uint32_t RouteTableEntries; -+ EFI_PXE_BASE_CODE_ROUTE_ENTRY RouteTable[EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES]; -+ EFI_PXE_BASE_CODE_ICMP_ERROR IcmpError; -+ EFI_PXE_BASE_CODE_TFTP_ERROR TftpError; -+} EFI_PXE_BASE_CODE_MODE; -+ -+typedef EFI_STATUS (*EFI_PXE_BASE_CODE_START)(); -+typedef EFI_STATUS (*EFI_PXE_BASE_CODE_STOP)(); -+typedef EFI_STATUS (*EFI_PXE_BASE_CODE_DHCP)(); -+typedef EFI_STATUS (*EFI_PXE_BASE_CODE_DISCOVER)(); -+typedef EFI_STATUS (*EFI_PXE_BASE_CODE_UDP_WRITE)(); -+typedef EFI_STATUS (*EFI_PXE_BASE_CODE_UDP_READ)(); -+typedef EFI_STATUS (*EFI_PXE_BASE_CODE_SET_IP_FILTER)(); -+typedef EFI_STATUS (*EFI_PXE_BASE_CODE_ARP)(); -+typedef EFI_STATUS (*EFI_PXE_BASE_CODE_SET_PARAMETERS)(); -+typedef EFI_STATUS (*EFI_PXE_BASE_CODE_SET_STATION_IP)(); -+typedef EFI_STATUS (*EFI_PXE_BASE_CODE_SET_PACKETS)(); -+ -+typedef struct _EFI_PXE_BASE_CODE{ -+ grub_efi_uint64_t Revision; -+ EFI_PXE_BASE_CODE_START Start; -+ EFI_PXE_BASE_CODE_STOP Stop; -+ EFI_PXE_BASE_CODE_DHCP Dhcp; -+ EFI_PXE_BASE_CODE_DISCOVER Discover; -+ EFI_PXE_BASE_CODE_MTFTP Mtftp; -+ EFI_PXE_BASE_CODE_UDP_WRITE UdpWrite; -+ EFI_PXE_BASE_CODE_UDP_READ UdpRead; -+ EFI_PXE_BASE_CODE_SET_IP_FILTER SetIpFilter; -+ EFI_PXE_BASE_CODE_ARP Arp; -+ EFI_PXE_BASE_CODE_SET_PARAMETERS SetParameters; -+ EFI_PXE_BASE_CODE_SET_STATION_IP SetStationIp; -+ EFI_PXE_BASE_CODE_SET_PACKETS SetPackets; -+ EFI_PXE_BASE_CODE_MODE *Mode; -+} EFI_PXE_BASE_CODE; -+ -+typedef struct { -+ grub_efi_uint32_t time_low; -+ grub_efi_uint16_t time_mid; -+ grub_efi_uint16_t time_hi_ver; -+ grub_efi_uint8_t clock_seq_hi; -+ grub_efi_uint8_t clock_seq_low; -+ grub_efi_uint8_t node[6]; -+} uuid_t; -+ -+struct tftp_info { -+ grub_efi_loaded_image_t *LoadedImage; -+ EFI_PXE_BASE_CODE *Pxe; -+ EFI_IP_ADDRESS *ServerIp; -+ char *BasePath; -+ char *LastPath; -+ char *Buffer; -+}; -+ -+extern struct tftp_info tftp_info; -+extern grub_efi_status_t tftp_get_file_size( -+ char *Filename, -+ grub_efi_uintn_t *Size); -+ -+#endif /* PXE_H */ -diff --git a/efi/ugadebug.h b/efi/ugadebug.h -new file mode 100644 -index 0000000..f461c8b ---- /dev/null -+++ b/efi/ugadebug.h -@@ -0,0 +1,201 @@ -+#ifndef UGA_DEBUG_H -+#define UGA_DEBUG_H -+ -+extern void dc(char *file, int line); -+extern void gm(char *file, int line, char *fmt, ...); -+ -+#ifdef UGA -+ -+extern const unsigned char font8x16[]; -+ -+extern grub_efi_guid_t draw_guid; -+ -+static void *tmp_term; -+ -+#define SCREEN_WIDTH 80 -+ -+#define LINE_SIZE_X ( 8 * 100 ) -+#define LINE_START_X(x) (1280 + (x)) -+#define LINE_END_X(x) (LINE_START_X(0) + LINE_SIZE_X - 1) -+ -+#define POS_X(x) (LINE_START_X(x) + (8 * (x))) -+ -+#define LINE_SIZE_Y 16 -+#define LINE_START_Y(y) ((y) * LINE_SIZE_Y) -+#define LINE_END_Y(y) ( (((y)+1) * LINE_SIZE_Y ) - 1) -+ -+#define POS_Y(y) LINE_START_Y(y) -+ -+#define FIRST_LINE 0 -+#define LAST_LINE 75 -+ -+#define format_ascii(buf, val, is_hex, is_cap) ({ \ -+ int _n = sizeof ((buf)) - 2; \ -+ typeof(val) _nval = (val); \ -+ int _negative = 0; \ -+ int _mult = is_hex ? 16 : 10; \ -+ char _a = is_cap ? 'A' : 'a'; \ -+ grub_memset((buf), '\0', sizeof ((buf))); \ -+ if (!(_nval > 0LL)) \ -+ _negative = 1; \ -+ if (_nval == 0LL) \ -+ _negative = 0; \ -+ if (_negative) \ -+ _nval = (_nval ^ -1); \ -+ do { \ -+ int _dig = _nval % _mult; \ -+ (buf)[_n--] = ((_dig > 9) ? _dig + _a - 10 : '0'+_dig); \ -+ } while (_nval /= _mult); \ -+ if (_negative) \ -+ (buf)[_n--] = '-'; \ -+ _mult = 0; \ -+ _n++; \ -+ while (_n < sizeof ((buf))) \ -+ (buf)[_mult++] = (buf)[_n++]; \ -+ if (_negative && _mult > 1) \ -+ ((buf)[_mult-2])++; \ -+ }) -+ -+static grub_efi_uga_draw_t *debug_draw_intf; -+static void debug_putchar(int i, int j, int ch) -+{ -+ grub_efi_uga_pixel_t pixbuf[8 * 16]; -+ grub_efi_uga_pixel_t black = { .red = 0x00, .green = 0x00, .blue = 0x00 }, -+ white = { .red = 0xff, .green = 0xff, .blue = 0xff }; -+ const unsigned char *pat; -+ int x, y; -+ -+ if (!debug_draw_intf) -+ debug_draw_intf = grub_efi_locate_protocol(&draw_guid, NULL); -+ if (!debug_draw_intf) -+ return; -+ -+ pat = font8x16 + (ch << 4); -+ -+ for (y = 0; y < 16; y++) { -+ for (x = 0; x < 8; x++) { -+ int bit = pat[y] & (1 << (7 - x)); -+ -+ grub_memmove(&pixbuf[x + y * 8], bit ? &white : &black, -+ sizeof (pixbuf[0])); -+ } -+ } -+ -+ Call_Service_10(debug_draw_intf->blt, debug_draw_intf, pixbuf, -+ EfiUgaBltBufferToVideo, -+ 0, 0, -+ POS_X(i), POS_Y(j), -+ 8, 16, -+ 0); -+ -+} -+ -+static void dputs(const char *s) -+{ -+ static int row = -1; -+ int col = 89; -+ return; -+ -+ if (s && *s) { -+ do { -+ if (col > 190) { -+ row++; -+ col = 89; -+ } -+ if (row > 50) { -+ row = 0; -+ col = 89; -+ } -+ col++; -+ -+ if (*s == '\n') { -+ col = 1; -+ row++; -+ } else { -+ debug_putchar(col, row, *s); -+ } -+ } while (*(++s)); -+ } -+ row++; -+} -+ -+static int dbg_row = 0; -+static int dbg_col = 0; -+ -+static void dbg_scroll(int new_dbg_col) -+{ -+ grub_efi_uga_pixel_t black[1] ={{.red = 0x00, .green = 0x00, .blue = 0x00}}; -+ -+ if (dbg_row == LAST_LINE) { -+ dbg_col = new_dbg_col; -+ Call_Service_10(debug_draw_intf->blt, debug_draw_intf, NULL, -+ EfiUgaVideoToVideo, -+ 640, LINE_START_Y(1), -+ 640, LINE_START_Y(0), -+ LINE_SIZE_X, LINE_END_Y(LAST_LINE)+1, -+ 0); -+ Call_Service_10(debug_draw_intf->blt, debug_draw_intf, black, -+ EfiUgaVideoFill, -+ 0, 0, -+ 640, LINE_START_Y(LAST_LINE), -+ LINE_END_X(SCREEN_WIDTH)+1, LINE_END_Y(LAST_LINE)+1, -+ 0); -+ } else { -+ dbg_row++; -+ dbg_col = new_dbg_col; -+ } -+// grub_efi_stall(1000000); -+} -+ -+static void dc_backend(char *file, int line) -+{ -+ char linebuf[9] = " "; -+ int pos; -+ -+ linebuf[8] = '\0'; -+ -+ format_ascii(linebuf, line, 0, 0); -+ for (dbg_col=0, pos=0; linebuf[pos]; dbg_col++, pos++) -+ debug_putchar(dbg_col, dbg_row, linebuf[pos]); -+ -+ for (dbg_col=5, pos=0; file[pos]; dbg_col++, pos++) { -+ if (dbg_col > 15) -+ dbg_scroll(0); -+ -+ debug_putchar(dbg_col, dbg_row, file[pos]); -+ } -+} -+ -+void dc(char *file, int line) -+{ -+ dc_backend(file, line); -+ dbg_scroll(0); -+} -+ -+void -+gm(char *file, int line, char *fmt, ...) -+{ -+ va_list ap; -+ char buf[1024]=""; -+ int pos; -+ -+ va_start(ap, fmt); -+ grub_vsprintf(buf, fmt, ap); -+ va_end(ap); -+ -+ dc_backend(file, line); -+ for (dbg_col=16, pos=0; buf[pos]; dbg_col++, pos++) { -+ if (buf[pos] == '\n') -+ continue; -+ if (dbg_col > SCREEN_WIDTH-1) -+ dbg_scroll(16); -+ debug_putchar(dbg_col, dbg_row, buf[pos]); -+ } -+ dbg_scroll(0); -+} -+ -+#define dm() ({ tmp_term = current_term; current_term = term_table; grub_dprintf(__func__, "got here\n"); current_term = tmp_term; }) -+ -+#endif -+ -+#endif /* UGA_DEBUG_H */ -diff --git a/efi/x86_64/callwrap.S b/efi/x86_64/callwrap.S -new file mode 100644 -index 0000000..f574ad0 ---- /dev/null -+++ b/efi/x86_64/callwrap.S -@@ -0,0 +1,274 @@ -+/* -+ * Function calling ABI conversion from Linux to EFI for x86_64 -+ * -+ * Copyright (C) 2007 Intel Corp -+ * Bibo Mao -+ * Huang Ying -+ */ -+ -+/* -+ * EFI calling conventions are documented at: -+ * http://msdn.microsoft.com/en-us/library/ms235286%28v=vs.80%29.aspx -+ * ELF calling conventions are documented at: -+ * http://www.x86-64.org/documentation/abi.pdf -+ * -+ * Basically here are the conversion rules: -+ * a) our function pointer is in %rdi -+ * b) ELF gives us 8-byte aligned %rsp, so we need to pad out to 16-byte -+ * alignment. -+ * c) inside each call thunker, we can only adjust the stack by -+ * multiples of 16 bytes. "offset" below refers to however much -+ * we allocate inside a thunker. -+ * d) rsi through r8 (elf) aka rcx through r9 (ms) require stack space -+ * on the MS side even though it's not getting used at all. -+ * e) arguments are as follows: (elf -> ms) -+ * 1) rdi -> rcx (32 saved) -+ * 2) rsi -> rdx (32 saved) -+ * 3) rdx -> r8 ( 32 saved) -+ * 4) rcx -> r9 (32 saved) -+ * 5) r8 -> 32(%rsp) (48 saved) -+ * 6) r9 -> 40(%rsp) (48 saved) -+ * 7) pad+offset+0(%rsp) -> 48(%rsp) (64 saved) -+ * 8) pad+offset+8(%rsp) -> 56(%rsp) (64 saved) -+ * 9) pad+offset+16(%rsp) -> 64(%rsp) (80 saved) -+ * 10) pad+offset+24(%rsp) -> 72(%rsp) (80 saved) -+ * 11) pad+offset+32(%rsp) -> 80(%rsp) (96 saved) -+ * 12) pad+offset+40(%rsp) -> 88(%rsp) (96 saved) -+ * f) because the first argument we recieve in a thunker is actually the -+ * function to be called, arguments are offset as such: -+ * 0) rdi -> caller -+ * 1) rsi -> rcx (32 saved) -+ * 2) rdx -> rdx (32 saved) -+ * 3) rcx -> r8 (32 saved) -+ * 4) r8 -> r9 (32 saved) -+ * 5) r9 -> 32(%rsp) (48 saved) -+ * 6) pad+offset+0(%rsp) -> 40(%rsp) (48 saved) -+ * 7) pad+offset+8(%rsp) -> 48(%rsp) (64 saved) -+ * 8) pad+offset+16(%rsp) -> 56(%rsp) (64 saved) -+ * 9) pad+offset+24(%rsp) -> 64(%rsp) (80 saved) -+ * 10) pad+offset+32(%rsp) -> 72(%rsp) (80 saved) -+ * 11) pad+offset+40(%rsp) -> 80(%rsp) (96 saved) -+ * 12) pad+offset+48(%rsp) -> 88(%rsp) (96 saved) -+ * e) arguments need to be moved in opposite order to avoid clobbering -+ * f) pad_stack leaves the amount of padding it added in %r11 for functions -+ * to use -+ * g) efi -> elf calls don't need to pad the stack, because the 16-byte -+ * alignment is also always 8-byte aligned. -+ */ -+ -+#define ENTRY(name) \ -+ .globl name; \ -+ name: -+ -+#define out(val) \ -+ push %rax ; \ -+ mov val, %rax ; \ -+ out %al, $128 ; \ -+ pop %rax -+ -+#define pad_stack \ -+ subq $8, %rsp ; /* must be a multiple of 16 - sizeof(%rip) */ \ -+ /* stash some handy integers */ \ -+ mov $0x8, %rax ; \ -+ mov $0x10, %r10 ; \ -+ /* see if we need padding */ \ -+ and %rsp, %rax ; \ -+ /* store the pad amount in %r11 */ \ -+ cmovnz %rax, %r11 ; \ -+ cmovz %r10, %r11 ; \ -+ /* insert the padding */ \ -+ subq %r11, %rsp ; \ -+ /* add the $8 we saved above in %r11 */ \ -+ addq $8, %r11 ; \ -+ /* store the pad amount */ \ -+ mov %r11, (%rsp) ; \ -+ /* compensate for %rip being stored on the stack by call */ \ -+ addq $8, %r11 -+ -+#define unpad_stack \ -+ /* fetch the pad amount we saved (%r11 has been clobbered) */ \ -+ mov (%rsp), %r11 ; \ -+ /* remove the padding */ \ -+ addq %r11, %rsp -+ -+ENTRY(x64_call0) -+ pad_stack -+ subq $32, %rsp -+ call *%rdi -+ addq $32, %rsp -+ unpad_stack -+ ret -+ -+ENTRY(x64_call1) -+ pad_stack -+ subq $32, %rsp -+ mov %rsi, %rcx -+ call *%rdi -+ addq $32, %rsp -+ unpad_stack -+ ret -+ -+ENTRY(x64_call2) -+ pad_stack -+ subq $32, %rsp -+ /* mov %rdx, %rdx */ -+ mov %rsi, %rcx -+ call *%rdi -+ addq $32, %rsp -+ unpad_stack -+ ret -+ -+ENTRY(x64_call3) -+ pad_stack -+ subq $32, %rsp -+ mov %rcx, %r8 -+ /* mov %rdx, %rdx */ -+ mov %rsi, %rcx -+ call *%rdi -+ addq $32, %rsp -+ unpad_stack -+ ret -+ -+ENTRY(x64_call4) -+ pad_stack -+ subq $32, %rsp -+ mov %r8, %r9 -+ mov %rcx, %r8 -+ /* mov %rdx, %rdx */ -+ mov %rsi, %rcx -+ call *%rdi -+ addq $32, %rsp -+ unpad_stack -+ ret -+ -+ENTRY(x64_call5) -+ pad_stack -+ subq $48, %rsp -+ mov %r9, 32(%rsp) -+ mov %r8, %r9 -+ mov %rcx, %r8 -+ /* mov %rdx, %rdx */ -+ mov %rsi, %rcx -+ call *%rdi -+ addq $48, %rsp -+ unpad_stack -+ ret -+ -+ENTRY(x64_call6) -+ pad_stack -+ subq $48, %rsp -+ addq $48, %r11 -+ addq %rsp, %r11 -+ mov (%r11), %rax -+ mov %rax, 40(%rsp) -+ mov %r9, 32(%rsp) -+ mov %r8, %r9 -+ mov %rcx, %r8 -+ /* mov %rdx, %rdx */ -+ mov %rsi, %rcx -+ call *%rdi -+ addq $48, %rsp -+ unpad_stack -+ ret -+ -+ENTRY(x64_call7) -+ pad_stack -+ subq $64, %rsp -+ addq $64, %r11 -+ addq $8, %r11 -+ addq %rsp, %r11 -+ mov (%r11), %rax -+ mov %rax, 48(%rsp) -+ subq $8, %r11 -+ mov (%r11), %rax -+ mov %rax, 40(%rsp) -+ mov %r9, 32(%rsp) -+ mov %r8, %r9 -+ mov %rcx, %r8 -+ /* mov %rdx, %rdx */ -+ mov %rsi, %rcx -+ call *%rdi -+ addq $64, %rsp -+ unpad_stack -+ ret -+ -+ENTRY(x64_call8) -+ pad_stack -+ subq $64, %rsp -+ addq $64, %r11 -+ addq $16, %r11 -+ addq %rsp, %r11 -+ mov (%r11), %rax -+ mov %rax, 56(%rsp) -+ subq $8, %r11 -+ mov (%r11), %rax -+ mov %rax, 48(%rsp) -+ subq $8, %r11 -+ mov (%r11), %rax -+ mov %rax, 40(%rsp) -+ mov %r9, 32(%rsp) -+ mov %r8, %r9 -+ mov %rcx, %r8 -+ /* mov %rdx, %rdx */ -+ mov %rsi, %rcx -+ call *%rdi -+ addq $64, %rsp -+ unpad_stack -+ ret -+ -+ENTRY(x64_call9) -+ pad_stack -+ subq $80, %rsp -+ addq $80, %r11 -+ addq $24, %r11 -+ addq %rsp, %r11 -+ mov (%r11), %rax -+ mov %rax, 64(%rsp) -+ subq $8, %r11 -+ mov (%r11), %rax -+ mov %rax, 56(%rsp) -+ subq $8, %r11 -+ mov (%r11), %rax -+ mov %rax, 48(%rsp) -+ subq $8, %r11 -+ mov (%r11), %rax -+ mov %rax, 40(%rsp) -+ mov %r9, 32(%rsp) -+ mov %r8, %r9 -+ mov %rcx, %r8 -+ /* mov %rdx, %rdx */ -+ mov %rsi, %rcx -+ call *%rdi -+ addq $80, %rsp -+ unpad_stack -+ ret -+ -+ENTRY(x64_call10) -+ pad_stack -+ subq $80, %rsp -+ addq $80, %r11 -+ addq $32, %r11 -+ addq %rsp, %r11 -+ mov (%r11), %rax -+ mov %rax, 72(%rsp) -+ subq $8, %r11 -+ mov (%r11), %rax -+ mov %rax, 64(%rsp) -+ subq $8, %r11 -+ mov (%r11), %rax -+ mov %rax, 56(%rsp) -+ subq $8, %r11 -+ mov (%r11), %rax -+ mov %rax, 48(%rsp) -+ subq $8, %r11 -+ mov (%r11), %rax -+ mov %rax, 40(%rsp) -+ mov %r9, 32(%rsp) -+ mov %r8, %r9 -+ mov %rcx, %r8 -+ /* mov %rdx, %rdx */ -+ mov %rsi, %rcx -+ call *%rdi -+ addq $80, %rsp -+ unpad_stack -+ ret -diff --git a/efi/x86_64/crt0-efi.S b/efi/x86_64/crt0-efi.S -new file mode 100644 -index 0000000..8667694 ---- /dev/null -+++ b/efi/x86_64/crt0-efi.S -@@ -0,0 +1,63 @@ -+/* crt0-efi-x86_64.S - x86_64 EFI startup code. -+ Copyright (C) 1999 Hewlett-Packard Co. -+ Contributed by David Mosberger . -+ Copyright (C) 2005 Intel Co. -+ Contributed by Fenghua Yu . -+ -+ This file is part of GNU-EFI, the GNU EFI development environment. -+ -+ GNU EFI 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, or (at your option) -+ any later version. -+ -+ GNU EFI 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 GNU EFI; see the file COPYING. If not, write to the Free -+ Software Foundation, 59 Temple Place - Suite 330, Boston, MA -+ 02111-1307, USA. */ -+ -+ .text -+ .align 4 -+ -+ .globl _start -+_start: -+ subq $8, %rsp -+ pushq %rcx -+ pushq %rdx -+ -+0: -+ lea ImageBase(%rip), %rdi -+ lea _DYNAMIC(%rip), %rsi -+ -+ popq %rcx -+ popq %rdx -+ pushq %rcx -+ pushq %rdx -+ call _relocate -+ -+ popq %rdi -+ popq %rsi -+ -+ call efi_main -+ addq $8, %rsp -+ -+.exit: -+ ret -+ -+ // hand-craft a dummy .reloc section so EFI knows it's a relocatable executable: -+ -+ .data -+dummy: .long 0 -+ -+#define IMAGE_REL_ABSOLUTE 0 -+ .section .reloc, "a" -+label1: -+ .long dummy-label1 // Page RVA -+ .long 10 // Block Size (2*4+2) -+ .word (IMAGE_REL_ABSOLUTE<<12) + 0 // reloc for dummy -+ -diff --git a/efi/x86_64/elf_efi.lds b/efi/x86_64/elf_efi.lds -new file mode 100644 -index 0000000..18a9ab9 ---- /dev/null -+++ b/efi/x86_64/elf_efi.lds -@@ -0,0 +1,58 @@ -+OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64") -+OUTPUT_ARCH(i386:x86-64) -+ENTRY(_start) -+SECTIONS -+{ -+ . = 0; -+ ImageBase = .; -+ .hash : { *(.hash) } /* this MUST come first! */ -+ . = ALIGN(4096); -+ .eh_frame : -+ { -+ *(.eh_frame) -+ } -+ . = ALIGN(4096); -+ .text : -+ { -+ *(.text) -+ } -+ .reloc : -+ { -+ *(.reloc) -+ } -+ . = ALIGN(4096); -+ .data : -+ { -+ *(.rodata*) -+ *(.got.plt) -+ *(.got) -+ *(.data*) -+ *(.sdata) -+ /* the EFI loader doesn't seem to like a .bss section, so we stick -+ it all into .data: */ -+ *(.sbss) -+ *(.scommon) -+ *(.dynbss) -+ *(.bss) -+ *(COMMON) -+ *(.rel.local) -+ } -+ . = ALIGN(4096); -+ .dynamic : { *(.dynamic) } -+ . = ALIGN(4096); -+ .rela : -+ { -+ *(.rela.data*) -+ *(.rela.got) -+ *(.rela.stab) -+ } -+ . = ALIGN(4096); -+ .dynsym : { *(.dynsym) } -+ . = ALIGN(4096); -+ .dynstr : { *(.dynstr) } -+ . = ALIGN(4096); -+ .ignored.reloc : -+ { -+ *(.rela.reloc) -+ } -+} -diff --git a/efi/x86_64/loader/Makefile b/efi/x86_64/loader/Makefile -new file mode 100644 -index 0000000..0d8b888 ---- /dev/null -+++ b/efi/x86_64/loader/Makefile -@@ -0,0 +1,20 @@ -+ -+all : switch.h -+ -+bin_to_h: bin_to_h.c -+ $(CC) $(CFLAGS) -o $@ $< -+ -+switch.h : switch.bin bin_to_h -+ ./bin_to_h < $< > $@ -+ -+switch.bin : switch -+ objcopy -O binary $< $@ -+ -+switch : switch.o -+ ld.bfd -Ttext-segment=0x688 --init _start -o $@ $< -+ -+switch.o : switch.S -+ as -march=generic64 -defsym _start=0 -o $@ $< -+ -+clean : -+ @rm -vf switch.o switch switch.bin switch.h bin_to_h -diff --git a/efi/x86_64/loader/bin_to_h.c b/efi/x86_64/loader/bin_to_h.c -new file mode 100644 -index 0000000..4cff104 ---- /dev/null -+++ b/efi/x86_64/loader/bin_to_h.c -@@ -0,0 +1,29 @@ -+#include -+#include -+ -+int -+main (void) -+{ -+ unsigned n = 0; -+ int c; -+ -+ printf ("unsigned char switch_image[] = {\n"); -+ -+ while ((c = getchar ()) != EOF) -+ { -+ printf("0x%02x,%s", -+ c & 0xFF, -+ (++n & 0x07) ? " " : "\n"); -+ } -+ -+ if (n & 0x07) -+ { -+ printf("\n"); -+ } -+ -+ printf("};\n" -+ "int switch_size = sizeof switch_image;\n"); -+ -+ return 0; -+} -+ -diff --git a/efi/x86_64/loader/linux.c b/efi/x86_64/loader/linux.c -new file mode 100644 -index 0000000..49a668e ---- /dev/null -+++ b/efi/x86_64/loader/linux.c -@@ -0,0 +1,760 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2006 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. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "switch.h" -+ -+#include -+ -+#include "graphics.h" -+ -+#define grub_file_size() filemax -+ -+#define NEXT_MEMORY_DESCRIPTOR(desc, size) \ -+ ((grub_efi_memory_descriptor_t *) ((char *) (desc) + (size))) -+ -+#define PTR_HI(x) ((grub_uint32_t) ((unsigned long long)((unsigned long)(x)) >> 32)) -+ -+#ifndef SECTOR_SIZE -+#define SECTOR_SIZE 0x200 -+#endif /* defined(SECTOR_SIZE) */ -+#ifndef SECTOR_BITS -+#define SECTOR_BITS 9 -+#endif /* defined(SECTOR_BITS) */ -+ -+static unsigned long linux_mem_size; -+static int loaded; -+static void *real_mode_mem; -+static void *prot_mode_mem; -+static grub_size_t prot_kernel_size; -+static void *initrd_mem; -+static grub_efi_uintn_t real_mode_pages; -+static grub_efi_uintn_t prot_mode_pages; -+static grub_efi_uintn_t initrd_pages; -+static grub_efi_guid_t graphics_output_guid = GRUB_EFI_GRAPHICS_OUTPUT_GUID; -+ -+static inline grub_size_t -+page_align (grub_size_t size) -+{ -+ return (size + (1 << 12) - 1) & (~((1 << 12) - 1)); -+} -+ -+static void -+free_pages (void) -+{ -+ if (real_mode_mem) -+ { -+ grub_efi_free_pages ((grub_addr_t) real_mode_mem, real_mode_pages); -+ real_mode_mem = 0; -+ } -+ -+ if (initrd_mem) -+ { -+ grub_efi_free_pages ((grub_addr_t) initrd_mem, initrd_pages); -+ initrd_mem = 0; -+ } -+ -+ if (mmap_buf) -+ { -+ grub_efi_free_pages ((grub_addr_t) mmap_buf, mmap_pages); -+ mmap_buf = 0; -+ } -+} -+ -+/* Allocate pages for the real mode code and the protected mode code -+ for linux as well as a memory map buffer. */ -+static int -+allocate_pages (grub_size_t real_size, grub_size_t prot_size) -+{ -+ grub_efi_uintn_t desc_size; -+ grub_efi_memory_descriptor_t *mmap_end; -+ grub_efi_memory_descriptor_t *desc; -+ grub_efi_physical_address_t addr; -+ -+ /* Make sure that each size is aligned to a page boundary. */ -+ real_size = page_align (real_size + SECTOR_SIZE); -+ prot_size = page_align (prot_size); -+ -+ grub_dprintf ("linux", "real_size = %x, prot_size = %x, mmap_size = %x\n", -+ (unsigned int) real_size, (unsigned int) prot_size, -+ (unsigned int) mmap_size); -+ -+ /* Calculate the number of pages; Combine the real mode code with -+ the memory map buffer for simplicity. */ -+ real_mode_pages = (real_size >> 12); -+ prot_mode_pages = (prot_size >> 12); -+ -+ /* Initialize the memory pointers with NULL for convenience. */ -+ real_mode_mem = 0; -+ prot_mode_mem = 0; -+ -+ if (grub_efi_get_memory_map (0, &desc_size, 0) <= 0) -+ grub_fatal ("cannot get memory map"); -+ -+ addr = 0; -+ mmap_end = NEXT_MEMORY_DESCRIPTOR (mmap_buf, mmap_size); -+ /* First, find free pages for the real mode code -+ and the memory map buffer. */ -+ for (desc = mmap_buf; -+ desc < mmap_end; -+ desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size)) -+ { -+ if (desc->type == GRUB_EFI_CONVENTIONAL_MEMORY -+ && desc->num_pages >= real_mode_pages) -+ { -+ grub_efi_physical_address_t physical_end; -+ -+ physical_end = desc->physical_start + (desc->num_pages << 12); -+ -+ grub_dprintf ("linux", "physical_start = %x, physical_end = %x\n", -+ (unsigned) desc->physical_start, -+ (unsigned) physical_end); -+ addr = physical_end - real_size; -+ if (addr < 0x100000) -+ continue; -+ -+ /* the kernel wants this address to be under 1 gig.*/ -+ if (desc->physical_start > 0x40000000 - real_size) -+ continue; -+ -+ if (addr > 0x40000000 - real_size) -+ addr = 0x40000000 - real_size; -+ -+ grub_dprintf ("linux", "trying to allocate %u pages at %x\n", -+ (unsigned) real_mode_pages, (unsigned) addr); -+ real_mode_mem = grub_efi_allocate_pages (addr, real_mode_pages); -+ if (! real_mode_mem) -+ grub_fatal ("cannot allocate pages"); -+ -+ desc->num_pages -= real_mode_pages; -+ break; -+ } -+ } -+ -+ if (! real_mode_mem) -+ { -+ grub_printf ("cannot allocate real mode pages"); -+ errnum = ERR_WONT_FIT; -+ goto fail; -+ } -+ -+ grub_printf("Trying to allocate %u pages for VMLINUZ\n", -+ (unsigned) prot_mode_pages); -+ prot_mode_mem = grub_efi_allocate_anypages(prot_mode_pages); -+ -+ if (!prot_mode_mem) -+ grub_fatal("Cannot allocate pages for VMLINUZ"); -+ grub_printf("Got pages at %p\n", prot_mode_mem); -+ -+ return 1; -+ -+ fail: -+ free_pages (); -+ return 0; -+} -+ -+/* do some funky stuff, then boot linux */ -+void -+linux_boot (void) -+{ -+ grub_printf ("zImage is not supported under EFI.\n"); -+ for (;;); -+} -+ -+static void -+grub_efi_disable_network (void) -+{ -+ grub_efi_guid_t pci_io_guid = GRUB_EFI_PCI_IO_GUID; -+ grub_efi_pci_io_t *pci_proto; -+ grub_efi_uintn_t num_handles; -+ grub_efi_handle_t *handle, *handles; -+ -+ handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL, -+ &pci_io_guid, -+ NULL, &num_handles); -+ if (!handles || !num_handles) -+ return; -+ -+ for (handle = handles; num_handles--; handle++) -+ { -+ grub_efi_uint8_t class, pos, id, pm = 0; -+ grub_efi_uint16_t pm_state, vendor; -+ int ttl = 48; -+ -+ pci_proto = grub_efi_open_protocol (*handle, &pci_io_guid, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+ -+ if (!pci_proto) -+ continue; -+ -+ Call_Service_5 (pci_proto->pci.read, pci_proto, -+ grub_efi_pci_io_width_uint8, 0x0b, 1, &class); -+ -+ /* Not a network device */ -+ if (class != 0x02) -+ continue; -+ -+ Call_Service_5 (pci_proto->pci.read, pci_proto, -+ grub_efi_pci_io_width_uint16, 0x00, 1, &vendor); -+ -+ /* Not a Broadcom */ -+ if (vendor != 0x14e4) -+ continue; -+ -+ Call_Service_5 (pci_proto->pci.read, pci_proto, -+ grub_efi_pci_io_width_uint16, 0x2c, 1, &vendor); -+ -+ /* Not an Apple */ -+ if (vendor != 0x106b) -+ continue; -+ -+ pos = 0x34; -+ -+ /* Find the power management registers */ -+ while (ttl--) -+ { -+ Call_Service_5 (pci_proto->pci.read, pci_proto, -+ grub_efi_pci_io_width_uint8, pos, 1, &pos); -+ -+ if (pos < 0x40) -+ break; -+ -+ pos &= ~3; -+ -+ Call_Service_5 (pci_proto->pci.read, pci_proto, -+ grub_efi_pci_io_width_uint8, pos, 1, &id); -+ -+ if (id == 0xff) -+ break; -+ -+ if (id == 0x01) -+ { -+ pm = pos; -+ break; -+ } -+ -+ pos += 1; -+ } -+ -+ if (pm) -+ { -+ Call_Service_5 (pci_proto->pci.read, pci_proto, -+ grub_efi_pci_io_width_uint16, pm + 4, 1, &pm_state); -+ -+ pm_state &= ~0x03; -+ pm_state |= 0x03; -+ -+ /* Set to D3 */ -+ -+ Call_Service_5 (pci_proto->pci.write, pci_proto, -+ grub_efi_pci_io_width_uint16, pm + 4, 1, &pm_state); -+ -+ Call_Service_5 (pci_proto->pci.read, pci_proto, -+ grub_efi_pci_io_width_uint16, pm + 4, 1, -+ &pm_state); -+ } -+ } -+} -+ -+void -+big_linux_boot (void) -+{ -+ struct linux_kernel_params *params; -+ struct grub_linux_kernel_header *lh; -+ grub_efi_uintn_t map_key; -+ grub_efi_uintn_t desc_size; -+ grub_efi_uint32_t desc_version; -+ int e820_nr_map; -+ -+ params = real_mode_mem; -+ -+ graphics_set_kernel_params (params); -+ -+ if (grub_efi_get_memory_map (&map_key, &desc_size, &desc_version) <= 0) -+ grub_fatal ("cannot get memory map"); -+ -+ /* Pass e820 memmap. */ -+ e820_map_from_efi_map ((struct e820_entry *) params->e820_map, &e820_nr_map, -+ mmap_buf, desc_size, mmap_size); -+ params->e820_nr_map = e820_nr_map; -+ -+ grub_efi_disable_network(); -+ -+ if (! grub_efi_exit_boot_services (map_key)) -+ grub_fatal ("cannot exit boot services"); -+ -+ /* Note that no boot services are available from here. */ -+ -+ /* copy vmlinuz image to hdr.code32_start */ -+ memcpy ((char *)(unsigned long)(params->hdr.code32_start), (char *)prot_mode_mem, -+ prot_kernel_size); -+ /* copy switch image */ -+ memcpy ((void *) 0x700, switch_image, switch_size); -+ -+ lh = ¶ms->hdr; -+ /* Pass EFI parameters. */ -+ if (grub_le_to_cpu16 (lh->version) >= 0x0206) { -+ params->version_0206.efi_mem_desc_size = desc_size; -+ params->version_0206.efi_mem_desc_version = desc_version; -+ params->version_0206.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf; -+ params->version_0206.efi_mmap_size = mmap_size; -+ } else if (grub_le_to_cpu16 (lh->version) >= 0x0204) { -+ params->version_0204.efi_mem_desc_size = desc_size; -+ params->version_0204.efi_mem_desc_version = desc_version; -+ params->version_0204.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf; -+ params->version_0204.efi_mmap_size = mmap_size; -+ } else /* dunno */ { -+ params->dunno.efi_mem_desc_size = desc_size; -+ params->dunno.efi_mem_desc_version = desc_version; -+ params->dunno.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf; -+ params->dunno.efi_mmap_size = mmap_size; -+ params->dunno.efi_mmap_hi = PTR_HI(mmap_buf); -+ } -+ -+#ifdef __x86_64__ -+ /* Pass parameters. */ -+ asm volatile ("mov %0, %%rsi" : : "m" (real_mode_mem)); -+ asm volatile ("movl %0, %%ebx" : : "m" (params->hdr.code32_start)); -+ -+ /* Enter Linux, switch from 64-bit long mode -+ * to 32-bit protect mode, this code end address -+ * must not exceed 0x1000, because linux kernel bootstrap -+ * code will flush this area -+ */ -+ asm volatile ( "mov $0x700, %%rdi" : :); -+ asm volatile ( "jmp *%%rdi" : :); -+#else -+ /* Pass parameters. */ -+ asm volatile ("mov %0, %%esi" : : "m" (real_mode_mem)); -+ asm volatile ("movl %0, %%ebx" : : "m" (params->hdr.code32_start)); -+ -+ /* Enter Linux, switch from 64-bit long mode -+ * to 32-bit protect mode, this code end address -+ * must not exceed 0x1000, because linux kernel bootstrap -+ * code will flush this area -+ */ -+ asm volatile ( "mov $0x700, %%edi" : :); -+ asm volatile ( "jmp *%%edi" : :); -+#endif -+ -+ /* Never reach here. */ -+ for (;;); -+} -+ -+int -+grub_load_linux (char *kernel, char *arg) -+{ -+ struct grub_linux_kernel_header *lh; -+ struct linux_kernel_params *params; -+ static struct linux_kernel_params params_buf; -+ grub_uint8_t setup_sects; -+ grub_size_t real_size, prot_size; -+ grub_uint64_t kernel_base, kernel_length, kernel_pages; -+ grub_ssize_t len; -+ char *dest; -+ int align, min_alignment; -+ int relocatable = 0; -+ -+ if (kernel == NULL) -+ { -+ errnum = ERR_BAD_FILENAME; -+ grub_printf ("no kernel specified"); -+ goto fail1; -+ } -+ -+ if (! grub_open (kernel)) -+ goto fail1; -+ -+ if (grub_read ((char *) ¶ms_buf, sizeof (params_buf)) -+ != sizeof (params_buf)) -+ { -+ errnum = ERR_EXEC_FORMAT; -+ grub_printf ("cannot read the linux header"); -+ goto fail; -+ } -+ -+ lh = ¶ms_buf.hdr; -+ -+ if (lh->boot_flag != grub_cpu_to_le16 (0xaa55)) -+ { -+ errnum = ERR_EXEC_FORMAT; -+ grub_printf ("invalid magic number: %x", lh->boot_flag); -+ goto fail; -+ } -+ -+ /* EFI support is quite new, so reject old versions. */ -+ if (lh->header != grub_cpu_to_le32 (GRUB_LINUX_MAGIC_SIGNATURE) -+ || grub_le_to_cpu16 (lh->version) < 0x0203) -+ { -+ errnum = ERR_EXEC_FORMAT; -+ grub_printf ("too old version"); -+ goto fail; -+ } -+ -+ /* I'm not sure how to support zImage on EFI. */ -+ if (! (lh->loadflags & GRUB_LINUX_FLAG_BIG_KERNEL)) -+ { -+ errnum = ERR_EXEC_FORMAT; -+ grub_printf ("zImage is not supported"); -+ goto fail; -+ } -+ -+ setup_sects = lh->setup_sects; -+ -+ real_size = 0x1000 + grub_strlen(arg); -+ prot_size = grub_file_size () - (setup_sects << SECTOR_BITS) - SECTOR_SIZE; -+ prot_kernel_size = prot_size; -+ -+ if (! allocate_pages (real_size, prot_size)) -+ goto fail; -+ -+ /* XXX Linux assumes that only elilo can boot Linux on EFI!!! */ -+ lh->type_of_loader = 0x50; -+ -+ lh->cmd_line_ptr = (grub_uint32_t) (unsigned long) real_mode_mem + 0x1000; -+ lh->ramdisk_image = 0; -+ lh->ramdisk_size = 0; -+ -+ grub_memset(real_mode_mem, 0, real_size); -+ -+ params = (struct linux_kernel_params *) real_mode_mem; -+ -+ grub_memmove(¶ms->hdr, lh, 0x202 + lh->jump_off - 0x1f1); -+ -+ params->cl_magic = GRUB_LINUX_CL_MAGIC; -+ params->cl_offset = 0x1000; -+ -+ /* These are not needed to be precise, because Linux uses these values -+ only to raise an error when the decompression code cannot find good -+ space. */ -+ params->ext_mem = ((32 * 0x100000) >> 10); -+ params->alt_mem = ((32 * 0x100000) >> 10); -+ -+ /* No APM on EFI. */ -+ params->apm_version = 0; -+ params->apm_code_segment = 0; -+ params->apm_entry = 0; -+ params->apm_16bit_code_segment = 0; -+ params->apm_data_segment = 0; -+ params->apm_flags = 0; -+ params->apm_code_len = 0; -+ params->apm_data_len = 0; -+ -+ /* XXX is there any way to use SpeedStep on EFI? */ -+ params->ist_signature = 0; -+ params->ist_command = 0; -+ params->ist_event = 0; -+ params->ist_perf_level = 0; -+ -+ /* Let the kernel probe the information. */ -+ grub_memset (params->hd0_drive_info, 0, sizeof (params->hd0_drive_info)); -+ grub_memset (params->hd1_drive_info, 0, sizeof (params->hd1_drive_info)); -+ -+ /* No MCA on EFI. */ -+ params->rom_config_len = 0; -+ -+ if (grub_le_to_cpu16 (lh->version) >= 0x0206) { -+ grub_memcpy(¶ms->version_0204.efi_signature, "EL64", 4); -+ params->version_0206.efi_system_table = \ -+ (grub_uint32_t) (unsigned long) grub_efi_system_table; -+ } else if (grub_le_to_cpu16 (lh->version) >= 0x0204) { -+ grub_memcpy(¶ms->version_0204.efi_signature, "EFIL", 4); -+ params->version_0204.efi_system_table = \ -+ (grub_uint32_t) (unsigned long) grub_efi_system_table; -+ } else /* dunno */ { -+ params->dunno.efi_signature = GRUB_LINUX_EFI_SIGNATURE_X64; -+ params->dunno.efi_system_table = \ -+ (grub_uint32_t) (unsigned long) grub_efi_system_table; -+ params->dunno.efi_system_table_hi = PTR_HI(grub_efi_system_table); -+ } -+ /* The other EFI parameters are filled when booting. */ -+ -+ /* No EDD */ -+ params->eddbuf_entries = 0; -+ params->edd_mbr_sig_buf_entries = 0; -+ -+ /* XXX there is no way to know if the kernel really supports EFI. */ -+ grub_printf ("[Linux-EFI, setup=0x%x, size=0x%x]\n", (unsigned int)real_size, -+ (unsigned int)prot_size); -+ -+ /* Check the mem= option to limit memory used for initrd. */ -+ { -+ char *mem; -+ -+ mem = grub_strstr (arg, "mem="); -+ if (mem) -+ { -+ char *value = mem + 4; -+ -+ safe_parse_maxulong (&value, &linux_mem_size); -+ switch (errnum) -+ { -+ case ERR_NUMBER_OVERFLOW: -+ /* If an overflow occurs, use the maximum address for -+ initrd instead. This is good, because MAXINT is -+ greater than LINUX_INITRD_MAX_ADDRESS. */ -+ linux_mem_size = LINUX_INITRD_MAX_ADDRESS; -+ errnum = ERR_NONE; -+ break; -+ -+ case ERR_NONE: -+ { -+ int shift = 0; -+ -+ switch (grub_tolower (*value)) -+ { -+ case 'g': -+ shift += 10; -+ case 'm': -+ shift += 10; -+ case 'k': -+ shift += 10; -+ default: -+ break; -+ } -+ -+ /* Check an overflow. */ -+ if (linux_mem_size > (~0UL >> shift)) -+ linux_mem_size = 0; -+ else -+ linux_mem_size <<= shift; -+ } -+ break; -+ -+ default: -+ linux_mem_size = 0; -+ errnum = ERR_NONE; -+ break; -+ } -+ } -+ else -+ linux_mem_size = 0; -+ } -+ -+ dest = grub_stpcpy ((char *) real_mode_mem + 0x1000, skip_to(0, arg)); -+ -+ grub_seek ((setup_sects << SECTOR_BITS) + SECTOR_SIZE); -+ len = prot_size; -+ if (grub_read ((char *)prot_mode_mem, len) != len) -+ grub_printf ("Couldn't read file"); -+ -+ if (lh->version >= 0x205) { -+ for (align = lh->min_alignment; align < 32; align++) { -+ if (lh->kernel_alignment & (1 << align)) { -+ break; -+ } -+ } -+ relocatable = lh->relocatable_kernel; -+ } -+ -+ if (lh->version >= 0x20a) { -+ kernel_base = lh->pref_address; -+ kernel_length = lh->init_size; -+ min_alignment = lh->min_alignment; -+ } else { -+ kernel_base = lh->code32_start; -+ kernel_length = prot_kernel_size; -+ min_alignment = 0; -+ } -+ -+ kernel_pages = (kernel_length + 4095) >> 12; -+ -+ /* Attempt to allocate address space for the kernel */ -+ kernel_base = (grub_uint64_t)grub_efi_allocate_pages(kernel_base, kernel_pages); -+ -+ if (!kernel_base && relocatable) { -+ grub_efi_memory_descriptor_t *desc; -+ grub_efi_memory_descriptor_t tdesc; -+ grub_efi_uintn_t desc_size; -+ -+ if (grub_efi_get_memory_map (0, &desc_size, 0) <= 0) -+ grub_fatal ("cannot get memory map"); -+ -+ while (align >= min_alignment) { -+ for (desc = mmap_buf; -+ desc < NEXT_MEMORY_DESCRIPTOR (mmap_buf, mmap_size); -+ desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size)) -+ { -+ grub_uint64_t addr; -+ grub_uint64_t alignval = (1 << align) - 1; -+ -+ if (desc->type != GRUB_EFI_CONVENTIONAL_MEMORY) -+ continue; -+ -+ memcpy(&tdesc, desc, sizeof(tdesc)); -+ -+ addr = (tdesc.physical_start + alignval) & ~(alignval); -+ -+ if ((addr + kernel_length) > -+ (tdesc.physical_start + (tdesc.num_pages << 12))) -+ continue; -+ -+ kernel_base = (grub_uint64_t)grub_efi_allocate_pages(addr, kernel_pages); -+ -+ if (kernel_base) { -+ lh->kernel_alignment = 1 << align; -+ break; -+ } -+ } -+ align--; -+ if (kernel_base) -+ break; -+ } -+ } -+ -+ if (!kernel_base) { -+ grub_printf("Failed to allocate kernel memory"); -+ errnum = ERR_UNRECOGNIZED; -+ goto fail; -+ } -+ -+ lh->code32_start = kernel_base; -+ -+ if (errnum == ERR_NONE) -+ { -+ loaded = 1; -+ } -+ -+ fail: -+ -+ grub_close (); -+ -+ fail1: -+ -+ if (errnum != ERR_NONE) -+ { -+ loaded = 0; -+ } -+ return errnum ? KERNEL_TYPE_NONE : KERNEL_TYPE_BIG_LINUX; -+} -+ -+int -+grub_load_initrd (char *initrd) -+{ -+ grub_ssize_t size; -+ grub_addr_t addr_min, addr_max; -+ grub_addr_t addr; -+ grub_efi_memory_descriptor_t *desc; -+ grub_efi_memory_descriptor_t tdesc; -+ grub_efi_uintn_t desc_size; -+ struct linux_kernel_params *params; -+ -+ if (initrd == NULL) -+ { -+ errnum = ERR_BAD_FILENAME; -+ grub_printf ("No module specified"); -+ goto fail1; -+ } -+ -+ if (! loaded) -+ { -+ errnum = ERR_UNRECOGNIZED; -+ grub_printf ("You need to load the kernel first."); -+ goto fail1; -+ } -+ -+ if (! grub_open (initrd)) -+ goto fail1; -+ -+ size = grub_file_size (); -+ initrd_pages = (page_align (size) >> 12); -+ -+ params = (struct linux_kernel_params *) real_mode_mem; -+ grub_dprintf(__func__, "initrd_pages: %lu\n", initrd_pages); -+ -+ addr_max = grub_cpu_to_le32 (params->hdr.initrd_addr_max); -+ if (linux_mem_size != 0 && linux_mem_size < addr_max) -+ addr_max = linux_mem_size; -+ addr_max &= ~((1 << 12)-1); -+ -+ /* Usually, the compression ratio is about 50%. */ -+ addr_min = 0; -+ -+ /* Find the highest address to put the initrd. */ -+ grub_dprintf(__func__, "addr_min: 0x%lx addr_max: 0x%lx mmap_size: %lu\n", addr_min, addr_max, mmap_size); -+ if (grub_efi_get_memory_map (0, &desc_size, 0) <= 0) -+ grub_fatal ("cannot get memory map"); -+ -+ addr = 0; -+ for (desc = mmap_buf; -+ desc < NEXT_MEMORY_DESCRIPTOR (mmap_buf, mmap_size); -+ desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size)) -+ { -+ if (desc->type != GRUB_EFI_CONVENTIONAL_MEMORY) -+ continue; -+ memcpy(&tdesc, desc, sizeof (tdesc)); -+ if (tdesc.physical_start < addr_min -+ && tdesc.num_pages > ((addr_min - tdesc.physical_start) >> 12)) -+ { -+ tdesc.num_pages -= ((addr_min - tdesc.physical_start) >> 12); -+ tdesc.physical_start = addr_min; -+ } -+ -+ grub_dprintf(__func__, "desc = {type=%d,ps=0x%llx,vs=0x%llx,sz=%llu,attr=%llu}\n", desc->type, (unsigned long long)desc->physical_start, (unsigned long long)desc->virtual_start, (unsigned long long)desc->num_pages, (unsigned long long)desc->attribute); -+ if (tdesc.physical_start >= addr_min -+ && tdesc.physical_start + page_align (size) <= addr_max -+ && tdesc.num_pages >= initrd_pages) -+ { -+ grub_efi_physical_address_t physical_end; -+ -+ physical_end = tdesc.physical_start + (tdesc.num_pages << 12); -+ if (physical_end > addr_max) -+ physical_end = addr_max; -+ -+ if (physical_end <= 0x7fffffffUL && physical_end > addr) -+ addr = physical_end - page_align (size); -+ } -+ } -+ -+ if (addr == 0) -+ { -+ errnum = ERR_UNRECOGNIZED; -+ grub_printf ("no free pages available"); -+ goto fail; -+ } -+ -+ initrd_mem = grub_efi_allocate_pages (addr, initrd_pages); -+ if (! initrd_mem) -+ grub_fatal ("cannot allocate pages: %x@%x", (unsigned)initrd_pages, -+ (unsigned)addr); -+ -+ if (grub_read (initrd_mem, size) != size) -+ { -+ grub_printf ("Couldn't read file"); -+ goto fail; -+ } -+ -+ grub_printf (" [Initrd, addr=0x%x, size=0x%x]\n", (unsigned int) addr, -+ (unsigned int) size); -+ -+ params->hdr.ramdisk_image = addr; -+ params->hdr.ramdisk_size = size; -+ params->hdr.root_dev = 0x0100; /* XXX */ -+ -+ fail: -+ grub_close (); -+ fail1: -+ return !errnum; -+} -diff --git a/efi/x86_64/loader/switch.S b/efi/x86_64/loader/switch.S -new file mode 100644 -index 0000000..d0d8dca ---- /dev/null -+++ b/efi/x86_64/loader/switch.S -@@ -0,0 +1,92 @@ -+# -+# Switch from protected mode to real mode and jump to setup.S -+# image located at %cx:0. -+# -+# This module must be placed into physical memory at 0:7C00h. -+# EFI has some real mode thunking code at 2000:0h. -+# -+# Processor and non-maskable interrupts should be disabled -+# before control is passed to this module. -+# -+ -+#define __KERNEL_CS 0x38 -+#define MSR_EFER 0xc0000080 -+#define _EFER_LME 8 /* Long mode enable */ -+ -+.global _start -+ -+.text -+_start: -+ # -+ # Load identity mapped GDT & real mode IDT. -+ # Add 7C00h to the addresses since this is linked to start -+ # at 0h and it is being placed at 7C00h. -+ # -+ -+ # fixme here EFI bios cs segment is 0x38 -+ # switch to IA32e compatible mode -+ # esi point to kernel parameter -+ # ebx point to kernel entry point -+.code64 -+ cli -+ cld -+ lgdt gdt_64 -+ lidt idt_64 -+ ljmp *exit_ia32e -+ -+ /* switch to IA32e compatible mode */ -+.code32 -+mode32: -+ # -+ # Turn off PG bit in CR0 and set CR3 to zero. -+ # -+ movl %cr0, %eax -+ andl $0x7FFFFFFF, %eax -+ movl %eax, %cr0 -+ -+ /* Setup EFER (Extended Feature Enable Register) */ -+ nop -+ nop -+ movl $0xc0000080, %ecx -+ rdmsr -+ /* Enable Long Mode */ -+ andl $0xFFFFFEFF, %eax -+ /* Make changes effective */ -+ wrmsr -+ -+ /* Disable PAE */ -+ xorl %eax, %eax -+ movl %eax, %cr4 -+ -+ jmp 2f -+2: -+ jmp *%ebx -+//jmp to kernel entry -+ -+.align 8 -+exit_ia32e: -+ .long mode32 -+ .long 0x10 -+ -+gdt_64: .word 0x08 * 9 -1 -+ .quad gdt -+ -+ .word 0, 0, 0 -+idt_64: .word 0 -+ .quad 0 -+ # -+ # GDT & IDT stuff for switching into 32 bit protected mode. -+ # -+ .word 0,0,0 -+gdt: -+ .quad 0x0000000000000000 /* NULL descriptor 0*/ -+ .quad 0x0 /* unused 0x08 */ -+ .quad 0x00cf9a000000ffff /* __KERNEL_CS 0x10 */ -+ .quad 0x00cf92000000ffff /* __KERNEL_DS 0x18 */ -+ .quad 0x00cf92000000ffff -+ .quad 0x00cf92000000ffff -+ .quad 0x00cf92000000ffff -+ .quad 0x00cf9a000000ffff /* __KERNEL32_CS 0x38*/ -+ .quad 0 /* unused */ -+.end -+ -diff --git a/efi/x86_64/loader/switch.h b/efi/x86_64/loader/switch.h -new file mode 100644 -index 0000000..b5dc39a ---- /dev/null -+++ b/efi/x86_64/loader/switch.h -@@ -0,0 +1,25 @@ -+unsigned char switch_image[] = { -+0xfa, 0xfc, 0x0f, 0x01, 0x14, 0x25, 0x48, 0x07, -+0x00, 0x00, 0x0f, 0x01, 0x1c, 0x25, 0x58, 0x07, -+0x00, 0x00, 0xff, 0x2c, 0x25, 0x40, 0x07, 0x00, -+0x00, 0x0f, 0x20, 0xc0, 0x25, 0xff, 0xff, 0xff, -+0x7f, 0x0f, 0x22, 0xc0, 0x90, 0x90, 0xb9, 0x80, -+0x00, 0x00, 0xc0, 0x0f, 0x32, 0x25, 0xff, 0xfe, -+0xff, 0xff, 0x0f, 0x30, 0x31, 0xc0, 0x0f, 0x22, -+0xe0, 0xeb, 0x00, 0xff, 0xe3, 0x8d, 0x76, 0x00, -+0x19, 0x07, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, -+0x47, 0x00, 0x68, 0x07, 0x00, 0x00, 0x00, 0x00, -+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+0xff, 0xff, 0x00, 0x00, 0x00, 0x9a, 0xcf, 0x00, -+0xff, 0xff, 0x00, 0x00, 0x00, 0x92, 0xcf, 0x00, -+0xff, 0xff, 0x00, 0x00, 0x00, 0x92, 0xcf, 0x00, -+0xff, 0xff, 0x00, 0x00, 0x00, 0x92, 0xcf, 0x00, -+0xff, 0xff, 0x00, 0x00, 0x00, 0x92, 0xcf, 0x00, -+0xff, 0xff, 0x00, 0x00, 0x00, 0x9a, 0xcf, 0x00, -+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+}; -+int switch_size = sizeof switch_image; -diff --git a/efi/x86_64/reloc.c b/efi/x86_64/reloc.c -new file mode 100644 -index 0000000..b53eb63 ---- /dev/null -+++ b/efi/x86_64/reloc.c -@@ -0,0 +1,79 @@ -+/* reloc_x86_64.c - position independent x86_64 ELF shared object relocator -+ Copyright (C) 1999 Hewlett-Packard Co. -+ Contributed by David Mosberger . -+ Copyright (C) 2005 Intel Co. -+ Contributed by Fenghua Yu . -+ -+ This file is part of GNU-EFI, the GNU EFI development environment. -+ -+ GNU EFI 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, or (at your option) -+ any later version. -+ -+ GNU EFI 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 GNU EFI; see the file COPYING. If not, write to the Free -+ Software Foundation, 59 Temple Place - Suite 330, Boston, MA -+ 02111-1307, USA. */ -+ -+#include -+#include -+#include -+ -+grub_efi_status_t _relocate (long ldbase, ElfW(Dyn) *dyn, -+ grub_efi_handle_t image_handle, -+ grub_efi_system_table_t *sys_tab) -+{ -+ //extern EFI_STATUS efi_main (EFI_HANDLE, EFI_SYSTEM_TABLE *); -+ long relsz = 0, relent = 0; -+ ElfW(Rel) *rel = 0; -+ unsigned long *addr; -+ int i; -+ -+ for (i = 0; dyn[i].d_tag != DT_NULL; ++i) { -+ switch (dyn[i].d_tag) { -+ case DT_RELA: -+ rel = (ElfW(Rel)*) ((long) dyn[i].d_un.d_ptr + ldbase); -+ break; -+ -+ case DT_RELASZ: -+ relsz = dyn[i].d_un.d_val; -+ break; -+ -+ case DT_RELAENT: -+ relent = dyn[i].d_un.d_val; -+ break; -+ -+ default: -+ break; -+ } -+ } -+ -+ if (!rel || relent == 0){ -+ return GRUB_EFI_LOAD_ERROR; -+ } -+ while (relsz > 0) { -+ /* apply the relocs */ -+ switch (ELF64_R_TYPE (rel->r_info)) { -+ case R_X86_64_NONE: -+ break; -+ -+ case R_X86_64_RELATIVE: -+ addr = (unsigned long *) (ldbase + rel->r_offset); -+ *addr += ldbase; -+ break; -+ -+ default: -+ break; -+ } -+ rel = (ElfW(Rel)*) ((char *) rel + relent); -+ relsz -= relent; -+ } -+ return GRUB_EFI_SUCCESS; -+} -+ -diff --git a/efi/x86_64/setjmp.S b/efi/x86_64/setjmp.S -new file mode 100644 -index 0000000..e042a14 ---- /dev/null -+++ b/efi/x86_64/setjmp.S -@@ -0,0 +1,56 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2003 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. -+ */ -+ -+#include -+ -+ .file "setjmp.S" -+ -+ .text -+ -+/* -+ * int grub_setjmp (grub_jmp_buf env) -+ */ -+FUNCTION(grub_setjmp) -+ pop %rsi /* Return address, and adjust the stack */ -+ xor %rax, %rax -+ movq %rbx, 0(%rdi) /* RBX */ -+ movq %rsp, 8(%rdi) /* RSP */ -+ push %rsi -+ movq %rbp, 16(%rdi) /* RBP */ -+ movq %r12, 24(%rdi) /* R12 */ -+ movq %r13, 32(%rdi) /* R13 */ -+ movq %r14, 40(%rdi) /* R14 */ -+ movq %r15, 48(%rdi) /* R15 */ -+ movq %rsi, 56(%rdi) /* RSI */ -+ ret -+ -+/* -+ * int grub_longjmp (grub_jmp_buf env, int val) -+ */ -+FUNCTION(grub_longjmp) -+ movl %esi, %eax -+ movq (%rdi), %rbx -+ movq 8(%rdi), %rsp -+ movq 16(%rdi), %rbp -+ movq 24(%rdi), %r12 -+ movq 32(%rdi), %r13 -+ movq 40(%rdi), %r14 -+ movq 48(%rdi), %r15 -+ jmp *56(%rdi) -+ -diff --git a/efi/xpm.c b/efi/xpm.c -new file mode 100644 -index 0000000..085a10c ---- /dev/null -+++ b/efi/xpm.c -@@ -0,0 +1,231 @@ -+ -+#if defined(SUPPORT_GRAPHICS) || defined(PLATFORM_EFI) || 1 -+ -+#include -+#include -+#include -+ -+#include "xpm.h" -+ -+unsigned char -+xpm_get_pixel_idx(struct xpm *xpm, int x, int y) -+{ -+ if (x < 0 || x >= xpm->width) -+ return -1; -+ if (y < 0 || y >= xpm->width) -+ return -1; -+ return xpm->image[x + (y * xpm->width)]; -+} -+ -+void -+xpm_set_pixel_idx(struct xpm *xpm, int x, int y, unsigned char idx) -+{ -+ xpm->image[y * xpm->width + x] = idx; -+} -+ -+void -+xpm_get_idx(struct xpm *xpm, unsigned char idx, xpm_pixel_t *pixel) -+{ -+ xpm_pixel_t *xpl; -+ if (!pixel) -+ return; -+ if (idx >= xpm->colors) { -+ pixel->red = pixel->green = pixel->blue = 0; -+ return; -+ } -+ xpl = &xpm->palette[idx]; -+ memcpy(pixel, xpl, sizeof (*pixel)); -+// pixel->red = xpl->red; -+// pixel->green = xpl->green; -+// pixel->blue = xpl->blue; -+} -+ -+int -+xpm_get_pixel(struct xpm *xpm, int x, int y, xpm_pixel_t *pixel) -+{ -+ unsigned char idx; -+ idx = xpm_get_pixel_idx(xpm, x, y); -+ xpm_get_idx(xpm, idx, pixel); -+ return 1; -+} -+ -+static int -+hex_to_int(int v) -+{ -+ if (v >= 'A' && v <= 'F') -+ return (v - 'A' + 10); -+ if (v >= 'a' && v <= 'f') -+ return (v - 'a' + 10); -+ return (v - '0'); -+} -+ -+struct xpm * -+xpm_open(char *path) -+{ -+ char c, prev, target[]="/* XPM */\n", base; -+ char buf[32]; -+ int pos = 0; -+ unsigned int i, idx, len, x, y; -+ unsigned char pal[XPM_MAX_COLORS]; -+ struct xpm *xpm; -+ -+ xpm = grub_malloc(sizeof (*xpm)); -+ if (!xpm) -+ return NULL; -+ -+ if (!grub_open(path)) { -+ grub_free(xpm); -+ grub_printf("grub_open(\"%s\") failed\n", path); -+ return NULL; -+ } -+ -+ grub_memset(xpm, '\0', sizeof (*xpm)); -+ -+ prev = '\n'; -+ c = 0; -+ do { -+ if (grub_read(&c, 1) != 1) { -+ grub_printf("grub_read() failed\n"); -+ grub_free(xpm); -+ grub_close(); -+ return NULL; -+ } -+ if ((pos == 0 && prev == '\n') || pos > 0) { -+ if (c == target[pos]) -+ pos++; -+ else -+ pos = 0; -+ } -+ prev = c; -+ } while (target[pos]); -+ -+ /* parse info */ -+ while (grub_read(&c, 1)) { -+ if (c == '"') -+ break; -+ } -+ while (grub_read(&c, 1) && (c == ' ' || c == '\t')) -+ ; -+ -+ i = 0; -+ xpm->width = c - '0'; -+ while (grub_read(&c, 1)) { -+ if (c >= '0' && c <= '9') -+ xpm->width = xpm->width * 10 + c - '0'; -+ else -+ break; -+ } -+ if (xpm->width > XPM_MAX_WIDTH) { -+ grub_printf("xpm->width (%d) was greater than XPM_MAX_WIDTH (%d)\n", -+ xpm->width, XPM_MAX_WIDTH); -+ grub_free(xpm); -+ grub_close(); -+ return NULL; -+ } -+ while (grub_read(&c, 1) && (c == ' ' || c == '\t')) -+ ; -+ -+ xpm->height = c - '0'; -+ while (grub_read(&c, 1)) { -+ if (c >= '0' && c <= '9') -+ xpm->height = xpm->height * 10 + c - '0'; -+ else -+ break; -+ } -+ if (xpm->height > XPM_MAX_HEIGHT) { -+ grub_printf("xpm->height (%d) was greater than XPM_MAX_HEIGHT (%d)\n", -+ xpm->height, XPM_MAX_HEIGHT); -+ grub_free(xpm); -+ grub_close(); -+ return NULL; -+ } -+ -+ while (grub_read(&c, 1) && (c == ' ' || c == '\t')) -+ ; -+ -+ xpm->colors = c - '0'; -+ while (grub_read(&c, 1)) { -+ if (c >= '0' && c <= '9') -+ xpm->colors = xpm->colors * 10 + c - '0'; -+ else -+ break; -+ } -+ -+ base = 0; -+ while (grub_read(&c, 1) && c != '"') -+ ; -+ -+ /* palette */ -+ for (i = 0, idx = 1; i < xpm->colors; i++) { -+ len = 0; -+ -+ while (grub_read(&c, 1) && c != '"') -+ ; -+ grub_read(&c, 1); /* char */ -+ base = c; -+ grub_read(buf, 4); /* \t c # */ -+ -+ while (grub_read(&c, 1) && c != '"') { -+ if (len < sizeof(buf)) -+ buf[len++] = c; -+ } -+ -+ if (len == 6 && idx < xpm->colors) { -+ unsigned char r, g, b; -+ -+ r = (hex_to_int(buf[0]) << 4) | hex_to_int(buf[1]); -+ g = (hex_to_int(buf[2]) << 4) | hex_to_int(buf[3]); -+ b = (hex_to_int(buf[4]) << 4) | hex_to_int(buf[5]); -+ -+ pal[idx] = base; -+ xpm->palette[idx].red = r; -+ xpm->palette[idx].green = g; -+ xpm->palette[idx].blue = b; -+ ++idx; -+ } -+ } -+ -+ /* parse xpm data */ -+ x = y = 0; -+ while (y < xpm->height) { -+ xpm_pixel_t *pixel = NULL; -+ while (1) { -+ if (!grub_read(&c, 1)) { -+ grub_printf("%s %s:%d grub_read() failed\n", __FILE__, __func__, __LINE__); -+ grub_free(xpm); -+ grub_close(); -+ return NULL; -+ } -+ if (c == '"') -+ break; -+ } -+ -+ while (grub_read(&c, 1) && c != '"') { -+ unsigned char *iaddr = NULL; -+ for (i = 1; i < xpm->colors; i++) -+ if (pal[i] == c) { -+ idx = i; -+ break; -+ } -+ -+ xpm_set_pixel_idx(xpm, x, y, idx); -+ -+ if (++x >= xpm->width) { -+ x = 0; -+ -+ ++y; -+ } -+ } -+ } -+ grub_close(); -+ return xpm; -+} -+ -+void -+xpm_free(struct xpm *xpm) -+{ -+ grub_free(xpm); -+} -+ -+ -+#endif /* SUPPORT_GRAPHICS || PLATFORM_EFI */ -diff --git a/efi/xpm.h b/efi/xpm.h -new file mode 100644 -index 0000000..258abc1 ---- /dev/null -+++ b/efi/xpm.h -@@ -0,0 +1,36 @@ -+#ifndef GRUB_XPM_H -+#define GRUB_XPM_H -+ -+#include -+ -+#define XPM_MAX_COLORS 31 -+#define XPM_MAX_WIDTH 640 -+#define XPM_MAX_HEIGHT 480 -+ -+struct xpm_pixel { -+ unsigned char reserved; -+ unsigned char red; -+ unsigned char green; -+ unsigned char blue; -+}; -+typedef struct xpm_pixel xpm_pixel_t; -+ -+struct xpm { -+ int colors; -+ xpm_pixel_t palette[32]; -+ -+ int width; -+ int height; -+ unsigned char image[XPM_MAX_WIDTH * XPM_MAX_HEIGHT]; -+}; -+ -+extern struct xpm *xpm_open(char *path); -+extern void xpm_free(struct xpm *xpm); -+ -+extern unsigned char xpm_get_pixel_idx(struct xpm *xpm, int x, int y); -+extern void xpm_set_pixel_idx(struct xpm *xpm, int x, int y, unsigned char idx); -+extern int xpm_get_pixel(struct xpm *xpm, int x, int y, xpm_pixel_t *pixel); -+ -+extern void xpm_get_idx(struct xpm *xpm, unsigned char idx, xpm_pixel_t *pixel); -+ -+#endif /* GRUB_XPM_H */ -diff --git a/grub.spec b/grub.spec -new file mode 100644 -index 0000000..7e5982d ---- /dev/null -+++ b/grub.spec -@@ -0,0 +1,438 @@ -+Name: grub -+Version: 0.97 -+Release: 20%{?dist} -+Summary: GRUB - the Grand Unified Boot Loader. -+Group: System Environment/Base -+License: GPLv2+ -+ -+ExclusiveArch: i386 x86_64 -+BuildRequires: binutils >= 2.9.1.0.23, ncurses-devel, ncurses-static, texinfo -+BuildRequires: autoconf /usr/lib/crt1.o automake -+PreReq: /sbin/install-info -+Requires: mktemp -+Requires: /usr/bin/cmp -+Requires: system-logos -+BuildRoot: %{_tmppath}/%{name}-%{version}-root -+ -+URL: http://www.gnu.org/software/%{name}/ -+Source0: ftp://alpha.gnu.org/gnu/%{name}/%{name}-%{version}.tar.gz -+Patch0: grub-fedora-9.patch -+ -+%description -+GRUB (Grand Unified Boot Loader) is an experimental boot loader -+capable of booting into most free operating systems - Linux, FreeBSD, -+NetBSD, GNU Mach, and others as well as most commercial operating -+systems. -+ -+%prep -+%setup -q -+%patch0 -p1 -b .fedora-9 -+ -+%build -+autoreconf -+autoconf -+GCCVERS=$(gcc --version | head -1 | cut -d\ -f3 | cut -d. -f1) -+CFLAGS="-Os -g -fno-strict-aliasing -Wall -Werror -Wno-shadow -Wno-unused" -+if [ "$GCCVERS" == "4" ]; then -+ CFLAGS="$CFLAGS -Wno-pointer-sign" -+fi -+export CFLAGS -+%ifarch x86_64 -+%configure --sbindir=/sbin --disable-auto-linux-mem-opt --datarootdir=%{_datadir} --with-platform=efi -+make -+rm -fr $RPM_BUILD_ROOT -+%makeinstall sbindir=${RPM_BUILD_ROOT}/sbin -+mv ${RPM_BUILD_ROOT}/sbin/grub ${RPM_BUILD_ROOT}/sbin/grub-efi -+make clean -+autoreconf -+autoconf -+CFLAGS="$CFLAGS -static" -+export CFLAGS -+%endif -+%configure --sbindir=/sbin --disable-auto-linux-mem-opt --datarootdir=%{_datadir} -+make -+ -+%install -+%makeinstall sbindir=${RPM_BUILD_ROOT}/sbin -+mkdir -p ${RPM_BUILD_ROOT}/boot/grub -+ -+rm -f ${RPM_BUILD_ROOT}/%{_infodir}/dir -+ -+%clean -+rm -fr $RPM_BUILD_ROOT -+ -+%post -+if [ "$1" = 1 ]; then -+ /sbin/install-info --info-dir=%{_infodir} %{_infodir}/grub.info.gz || : -+ /sbin/install-info --info-dir=%{_infodir} %{_infodir}/multiboot.info.gz || : -+fi -+ -+%preun -+if [ "$1" = 0 ] ;then -+ /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/grub.info.gz || : -+ /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/multiboot.info.gz || : -+fi -+ -+%files -+%defattr(-,root,root) -+%doc AUTHORS ChangeLog NEWS README COPYING TODO docs/menu.lst -+/boot/grub -+/sbin/grub -+/sbin/grub-install -+/sbin/grub-terminfo -+/sbin/grub-md5-crypt -+%{_bindir}/mbchk -+%{_infodir}/grub* -+%{_infodir}/multiboot* -+%{_mandir}/man*/* -+%{_datadir}/grub -+%ifarch x86_64 -+/sbin/grub-efi -+%endif -+ -+%changelog -+* Mon Nov 05 2007 Peter Jones - 0.97-20 -+- Add EFI support from Intel on x86_64 -+ -+* Thu Sep 20 2007 Peter Jones - 0.97-19 -+- Fix dmraid detection on Intel (isw) controllers in grub-install . -+ -+* Wed Aug 22 2007 Peter Jones - 0.97-18 -+- Fix license tag. -+ -+* Mon Aug 20 2007 Peter Jones - 0.97-17 -+- Use --build-id=none instead of stripping out the build-id notes in the -+ first and second stage loaders. -+ -+* Tue Aug 7 2007 Peter Jones - 0.97-16 -+- Add ext[23] large inode support (patch from Eric Sandeen) -+- Fix auto* breakage that happened when we switched from autoreconf to autoconf -+- Move to original tarball + patch generated from git -+ -+* Mon Jul 16 2007 Peter Jones - 0.97-15 -+- Support booting from GPT -+ -+* Fri Feb 23 2007 Bill Nottingham - 0.97-14 -+- fix scriplet errors when installed with --nodocs -+- coax grub into building (-ltinfo, autoconf instead of autoreconf) -+ -+* Sun Oct 01 2006 Jesse Keating - 0.97-13 -+- rebuilt for unwind info generation, broken in gcc-4.1.1-21 -+ -+* Thu Sep 21 2006 Peter Jones - 0.97-12 -+- Reenable patch 505, which fixes #116311 -+ -+* Tue Aug 15 2006 Peter Jones - 0.97-11 -+- Disable patch 505 (#164497) -+ -+* Wed Aug 2 2006 Peter Jones - 0.97-10 -+- Fix grub-install for multipath -+ -+* Wed Jul 12 2006 Jesse Keating - 0.97-9.1 -+- rebuild -+ -+* Fri Jul 7 2006 Peter Jones - 0.97-9 -+- fix broken error reporting from helper functions -+ -+* Mon Jun 12 2006 Peter Jones - 0.97-8 -+- Fix BIOS keyboard handler to use extended keyboard interrupts, so the -+ Mac Mini works. -+ -+* Mon Jun 5 2006 Jesse Keating - 0.97-7 -+- Added BuildRequires on a 32bit library -+ -+* Sat May 27 2006 Peter Jones - 0.97-6 -+- Fix mactel keyboard problems, patch from Juergen Keil, forwarded by Linus. -+ -+* Mon Mar 13 2006 Peter Jones - 0.97-5 -+- Fix merge error for "bootonce" patch (broken in 0.95->0.97 update) -+- Get rid of the 0.97 "default" stuff, since it conflicts with our working -+ method. -+ -+* Mon Mar 9 2006 Peter Jones - 0.97-4 -+- Fix running "install" multiple times on the same fs in the same invocation -+ of grub. (bz #158426 , patch from lxo@redhat.com) -+ -+* Mon Feb 13 2006 Peter Jones - 0.97-3 -+- fix partition names on dmraid -+ -+* Tue Feb 07 2006 Jesse Keating - 0.97-2.1 -+- rebuilt for new gcc4.1 snapshot and glibc changes -+ -+* Fri Jan 13 2006 Peter Jones - 0.97-2 -+- add dmraid support -+ -+* Wed Dec 14 2005 Peter Jones - 0.97-1 -+- update to grub 0.97 -+ -+* Mon Dec 5 2005 Peter Jones - 0.95-17 -+- fix configure conftest.c bugs -+- add -Wno-unused to defeat gcc41 "unused" checking when there are aliases. -+ -+* Mon Aug 1 2005 Peter Jones - 0.95-16 -+- minor fix to the --recheck fix. -+ -+* Mon Jul 25 2005 Peter Jones 0.95-15 -+- Make "grub-install --recheck" warn the user about how bad it is, -+ and keep a backup file, which it reverts to upon detecting some errors. -+ -+* Wed Jul 6 2005 Peter Jones 0.95-14 -+- Fix changelog to be UTF-8 -+ -+* Thu May 19 2005 Peter Jones 0.95-13 -+- Make the spec work with gcc3 and gcc4, so people can test on existing -+ installations. -+- don't treat i2o like a cciss device, since its partition names aren't done -+ that way. (#158158) -+ -+* Wed Mar 16 2005 Peter Jones 0.95-12 -+- Make installing on a partition work again when not using raid -+ -+* Thu Mar 3 2005 Peter Jones 0.95-11 -+- Make it build with gcc4 -+ -+* Sun Feb 20 2005 Peter Jones 0.95-10 -+- Always install in MBR for raid1 /boot/ -+ -+* Sun Feb 20 2005 Peter Jones 0.95-9 -+- Always use full path for mdadm in grub-install -+ -+* Tue Feb 8 2005 Peter Jones 0.95-8 -+- Mark the simulation stack executable -+- Eliminate the use of inline functions in stage2/builtins.c -+ -+* Wed Jan 11 2005 Peter Jones 0.95-7 -+- Make grub ignore everything before the XPM header in the splash image, -+ fixing #143879 -+- If the boot splash image is missing, use console mode instead -+ of graphics mode. -+- Don't print out errors using the graphics terminal code if we're not -+ actually in graphics mode. -+ -+* Mon Jan 3 2005 Peter Jones 0.95-6 -+- reworked much of how the RAID1 support in grub-install works. This version -+ does not require all the devices in the raid to be listed in device.map, -+ as long as you specify a physical device or partition rather than an md -+ device. It should also work with a windows dual-boot on the first partition. -+ -+* Fri Dec 17 2004 Peter Jones 0.95-5 -+- added support for RAID1 devices to grub-install, partly based on a -+ patch from David Knierim. (#114690) -+ -+* Tue Nov 30 2004 Jeremy Katz 0.95-4 -+- add patch from upstream CVS to handle sparse files on ext[23] -+- make geometry detection a little bit more robust/correct -+- use O_DIRECT when reading/writing from devices. use aligned buffers as -+ needed for read/write (#125808) -+- actually apply the i2o patch -+- detect cciss/cpqarray devices better (#123249) -+ -+* Thu Sep 30 2004 Jeremy Katz - 0.95-3 -+- don't act on the keypress for the menu (#134029) -+ -+* Mon Jun 28 2004 Jeremy Katz - 0.95-2 -+- add patch from Nicholas Miell to make hiddenmenu work more -+ nicely with splashimage mode (#126764) -+ -+* Fri Jun 18 2004 Jeremy Katz - 0.95-1 -+- update to 0.95 -+- drop emd patch, E-MD isn't making forward progress upstream -+- fix static build for x86_64 (#121095) -+ -+* Tue Jun 15 2004 Elliot Lee -+- rebuilt -+ -+* Wed Jun 9 2004 Jeremy Katz -+- require system-logos (#120837) -+ -+* Fri Jun 4 2004 Jeremy Katz -+- buildrequire automake (#125326) -+ -+* Thu May 06 2004 Warren Togami - 0.94-5 -+- i2o patch from Markus Lidel -+ -+* Wed Apr 14 2004 Jeremy Katz - 0.94-4 -+- read geometry off of the disk since HDIO_GETGEO doesn't actually -+ return correct data with a 2.6 kernel -+ -+* Fri Mar 12 2004 Jeremy Katz -+- add texinfo buildrequires (#118146) -+ -+* Wed Feb 25 2004 Jeremy Katz 0.94-3 -+- don't use initrd_max_address -+ -+* Fri Feb 13 2004 Elliot Lee 0.94-2 -+- rebuilt -+ -+* Thu Feb 12 2004 Jeremy Katz 0.94-1 -+- update to 0.94, patch merging and updating as necessary -+ -+* Sat Jan 3 2004 Jeremy Katz 0.93-8 -+- new bootonce patch from Padraig Brady so that you don't lose -+ the old default (#112775) -+ -+* Mon Nov 24 2003 Jeremy Katz -+- add ncurses-devel as a buildrequires (#110732) -+ -+* Tue Oct 14 2003 Jeremy Katz 0.93-7 -+- rebuild -+ -+* Wed Jul 2 2003 Jeremy Katz -+- Requires: /usr/bin/cmp (#98325) -+ -+* Thu May 22 2003 Jeremy Katz 0.93-6 -+- add patch from upstream to fix build with gcc 3.3 -+ -+* Wed Apr 2 2003 Jeremy Katz 0.93-5 -+- add patch to fix support for serial terminfo (#85595) -+ -+* Wed Jan 22 2003 Tim Powers -+- rebuilt -+ -+* Fri Jan 17 2003 Jeremy Katz 0.93-3 -+- add patch from HJ Lu to support large disks (#80980, #63848) -+- add patch to make message when ending edit clearer (#53846) -+ -+* Sun Dec 29 2002 Jeremy Katz 0.93-2 -+- add a patch to reset the terminal type to console before doing 'boot' from -+ the command line (#61069) -+ -+* Sat Dec 28 2002 Jeremy Katz 0.93-1 -+- update to 0.93 -+- update configfile patch -+- graphics patch rework to fit in as a terminal type as present in 0.93 -+- use CFLAGS="-Os -g" -+- patch configure.in to allow building if host_cpu=x86_64, include -m32 in -+ CFLAGS if building on x86_64 -+- link glibc static on x86_64 to not require glibc32 -+- include multiboot info pages -+- drop obsolete patches, reorder remaining patches into some semblance of order -+ -+* Thu Sep 5 2002 Jeremy Katz 0.92-7 -+- splashscreen is in redhat-logos now -+ -+* Tue Sep 3 2002 Jeremy Katz 0.92-6 -+- update splashscreen again -+ -+* Mon Sep 2 2002 Jeremy Katz 0.92-5 -+- update splashscreen -+ -+* Fri Jun 21 2002 Tim Powers 0.92-4 -+- automated rebuild -+ -+* Thu May 23 2002 Tim Powers 0.92-3 -+- automated rebuild -+ -+* Fri May 3 2002 Jeremy Katz 0.92-2 -+- add patch from Grant Edwards to make vga16 + serial happier (#63491) -+ -+* Wed May 1 2002 Jeremy Katz 0.92-1 -+- update to 0.92 -+- back to autoreconf -+- make it work with automake 1.6/autoconf 2.53 -+- use "-falign-jumps=1 -falign-loops=1 -falign-functions=1" instead of -+ "-malign-jumps=1 -malign-loops=1 -malign-functions=1" to not use -+ deprecated gcc options -+ -+* Tue Apr 9 2002 Jeremy Katz 0.91-4 -+- new splash screen -+ -+* Fri Mar 8 2002 Jeremy Katz 0.91-3 -+- include patch from Denis Kitzmen to fix typo causing several options to -+ never be defined (in upstream CVS) -+- include patch from upstream CVS to make displaymem always use hex for -+ consistency -+- add patch from GRUB mailing list from Keir Fraser to add a --once flag to -+ savedefault function so that you can have the equivalent of lilo -R -+ functionality (use 'savedefault --default=N --once' from the grub shell) -+- back to autoconf -+ -+* Sun Jan 27 2002 Jeremy Katz -+- change to use $grubdir instead of /boot/grub in the symlink patch (#58771) -+ -+* Fri Jan 25 2002 Jeremy Katz 0.91-2 -+- don't ifdef out the auto memory passing, use the configure flag instead -+- add a patch so that grub respects mem= from the kernel command line when -+ deciding where to place the initrd (#52558) -+ -+* Mon Jan 21 2002 Jeremy Katz 0.91-1 -+- update to 0.91 final -+- add documentation on splashimage param (#51609) -+ -+* Wed Jan 2 2002 Jeremy Katz 0.91-0.20020102cvs -+- update to current CVS snapshot to fix some of the hangs on boot related -+ to LBA probing (#57503, #55868, and others) -+ -+* Fri Dec 21 2001 Erik Troan 0.90-14 -+- fixed append patch to not require arguments to begin with -+- changed to autoreconf from autoconf -+ -+* Wed Oct 31 2001 Jeremy Katz 0.90-13 -+- include additional patch from Erich to add sync calls in grub-install to -+ work around updated images not being synced to disk -+- fix segfault in grub shell if 'password --md5' is used without specifying -+ a password (#55008) -+ -+* Fri Oct 26 2001 Jeremy Katz 0.90-12 -+- Include Erich Boleyn 's patch to disconnect from the -+ BIOS after APM operations. Should fix #54375 -+ -+* Wed Sep 12 2001 Erik Troan -+- added patch for 'a' option in grub boot menu -+ -+* Wed Sep 5 2001 Jeremy Katz 0.90-11 -+- grub-install: if /boot/grub/grub.conf doesn't exist but /boot/grub/menu.lst -+ does, create a symlink -+ -+* Fri Aug 24 2001 Jeremy Katz -+- pull in patch from upstream CVS to fix md5crypt in grub shell (#52220) -+- use mktemp in grub-install to avoid tmp races -+ -+* Fri Aug 3 2001 Jeremy Katz -+- link curses statically (#49519) -+ -+* Thu Aug 2 2001 Jeremy Katz -+- fix segfault with using the serial device before initialization (#50219) -+ -+* Thu Jul 19 2001 Jeremy Katz -+- add --copy-only flag to grub-install -+ -+* Thu Jul 19 2001 Jeremy Katz -+- copy files in grub-install prior to device probe -+ -+* Thu Jul 19 2001 Jeremy Katz -+- original images don't go in /boot and then grub-install does the right -+ thing -+ -+* Thu Jul 19 2001 Jeremy Katz -+- fix the previous patch -+- put the password prompt in the proper location -+ -+* Thu Jul 19 2001 Jeremy Katz -+- reset the screen when the countdown is cancelled so text will disappear -+ in vga16 mode -+ -+* Mon Jul 16 2001 Jeremy Katz -+- change configfile defaults to grub.conf -+ -+* Sun Jul 15 2001 Jeremy Katz -+- updated to grub 0.90 final -+ -+* Fri Jul 6 2001 Matt Wilson -+- modifed splash screen to a nice shade of blue -+ -+* Tue Jul 3 2001 Matt Wilson -+- added a first cut at a splash screen -+ -+* Sun Jul 1 2001 Nalin Dahyabhai -+- fix datadir mismatch between build and install phases -+ -+* Mon Jun 25 2001 Jeremy Katz -+- update to current CVS -+- forward port VGA16 patch from Paulo César Pereira de -+ Andrade -+- add patch for cciss, ida, and rd raid controllers -+- don't pass mem= to the kernel -+ -+* Wed May 23 2001 Erik Troan -+- initial build for Red Hat -diff --git a/grub/.gitignore b/grub/.gitignore -new file mode 100644 -index 0000000..5d89f6d ---- /dev/null -+++ b/grub/.gitignore -@@ -0,0 +1,2 @@ -+Makefile.in -+.deps -diff --git a/grub/Makefile.am b/grub/Makefile.am -index 7eb2eaa..d4353f7 100644 ---- a/grub/Makefile.am -+++ b/grub/Makefile.am -@@ -15,5 +15,5 @@ AM_CPPFLAGS = -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \ - - AM_CFLAGS = $(GRUB_CFLAGS) - --grub_SOURCES = main.c asmstub.c -+grub_SOURCES = main.c asmstub.c efitftp.c - grub_LDADD = ../stage2/libgrub.a ../lib/libcommon.a $(GRUB_LIBS) -diff --git a/grub/Makefile.in b/grub/Makefile.in -deleted file mode 100644 -index 136c38f..0000000 ---- a/grub/Makefile.in -+++ /dev/null -@@ -1,445 +0,0 @@ --# Makefile.in generated by automake 1.9.4 from Makefile.am. --# @configure_input@ -- --# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, --# 2003, 2004 Free Software Foundation, Inc. --# This Makefile.in is free software; the Free Software Foundation --# gives unlimited permission to copy and/or distribute it, --# with or without modifications, as long as this notice is preserved. -- --# This program is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY, to the extent permitted by law; without --# even the implied warranty of MERCHANTABILITY or FITNESS FOR A --# PARTICULAR PURPOSE. -- --@SET_MAKE@ -- --SOURCES = $(grub_SOURCES) -- --srcdir = @srcdir@ --top_srcdir = @top_srcdir@ --VPATH = @srcdir@ --pkgdatadir = $(datadir)/@PACKAGE@ --pkglibdir = $(libdir)/@PACKAGE@ --pkgincludedir = $(includedir)/@PACKAGE@ --top_builddir = .. --am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd --INSTALL = @INSTALL@ --install_sh_DATA = $(install_sh) -c -m 644 --install_sh_PROGRAM = $(install_sh) -c --install_sh_SCRIPT = $(install_sh) -c --INSTALL_HEADER = $(INSTALL_DATA) --transform = $(program_transform_name) --NORMAL_INSTALL = : --PRE_INSTALL = : --POST_INSTALL = : --NORMAL_UNINSTALL = : --PRE_UNINSTALL = : --POST_UNINSTALL = : --build_triplet = @build@ --host_triplet = @host@ --sbin_PROGRAMS = grub$(EXEEXT) --subdir = grub --DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in --ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 --am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ -- $(top_srcdir)/configure.ac --am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ -- $(ACLOCAL_M4) --mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs --CONFIG_HEADER = $(top_builddir)/config.h --CONFIG_CLEAN_FILES = --am__installdirs = "$(DESTDIR)$(sbindir)" --sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM) --PROGRAMS = $(sbin_PROGRAMS) --am_grub_OBJECTS = main.$(OBJEXT) asmstub.$(OBJEXT) --grub_OBJECTS = $(am_grub_OBJECTS) --am__DEPENDENCIES_1 = --grub_DEPENDENCIES = ../stage2/libgrub.a ../lib/libcommon.a \ -- $(am__DEPENDENCIES_1) --DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) --depcomp = $(SHELL) $(top_srcdir)/depcomp --am__depfiles_maybe = depfiles --COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ -- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) --CCLD = $(CC) --LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ --SOURCES = $(grub_SOURCES) --DIST_SOURCES = $(grub_SOURCES) --ETAGS = etags --CTAGS = ctags --DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) --ACLOCAL = @ACLOCAL@ --AMDEP_FALSE = @AMDEP_FALSE@ --AMDEP_TRUE = @AMDEP_TRUE@ --AMTAR = @AMTAR@ --AUTOCONF = @AUTOCONF@ --AUTOHEADER = @AUTOHEADER@ --AUTOMAKE = @AUTOMAKE@ --AWK = @AWK@ --BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@ --BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@ --CC = @CC@ --CCAS = @CCAS@ --CCASFLAGS = @CCASFLAGS@ --CCDEPMODE = @CCDEPMODE@ --CFLAGS = @CFLAGS@ --CPP = @CPP@ --CPPFLAGS = @CPPFLAGS@ --CYGPATH_W = @CYGPATH_W@ --DEFS = @DEFS@ --DEPDIR = @DEPDIR@ --DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@ --DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@ --ECHO_C = @ECHO_C@ --ECHO_N = @ECHO_N@ --ECHO_T = @ECHO_T@ --EGREP = @EGREP@ --EXEEXT = @EXEEXT@ --FSYS_CFLAGS = @FSYS_CFLAGS@ --GRUB_CFLAGS = @GRUB_CFLAGS@ --GRUB_LIBS = @GRUB_LIBS@ --HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@ --HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@ --INSTALL_DATA = @INSTALL_DATA@ --INSTALL_PROGRAM = @INSTALL_PROGRAM@ --INSTALL_SCRIPT = @INSTALL_SCRIPT@ --INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ --LDFLAGS = @LDFLAGS@ --LIBOBJS = @LIBOBJS@ --LIBS = @LIBS@ --LTLIBOBJS = @LTLIBOBJS@ --MAINT = @MAINT@ --MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ --MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ --MAKEINFO = @MAKEINFO@ --NETBOOT_DRIVERS = @NETBOOT_DRIVERS@ --NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@ --NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@ --NET_CFLAGS = @NET_CFLAGS@ --NET_EXTRAFLAGS = @NET_EXTRAFLAGS@ --OBJCOPY = @OBJCOPY@ --OBJEXT = @OBJEXT@ --PACKAGE = @PACKAGE@ --PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ --PACKAGE_NAME = @PACKAGE_NAME@ --PACKAGE_STRING = @PACKAGE_STRING@ --PACKAGE_TARNAME = @PACKAGE_TARNAME@ --PACKAGE_VERSION = @PACKAGE_VERSION@ --PATH_SEPARATOR = @PATH_SEPARATOR@ --PERL = @PERL@ --RANLIB = @RANLIB@ --SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@ --SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@ --SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@ --SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@ --SET_MAKE = @SET_MAKE@ --SHELL = @SHELL@ --STAGE1_CFLAGS = @STAGE1_CFLAGS@ --STAGE2_CFLAGS = @STAGE2_CFLAGS@ --STRIP = @STRIP@ --VERSION = @VERSION@ --ac_ct_CC = @ac_ct_CC@ --ac_ct_OBJCOPY = @ac_ct_OBJCOPY@ --ac_ct_RANLIB = @ac_ct_RANLIB@ --ac_ct_STRIP = @ac_ct_STRIP@ --am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ --am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ --am__include = @am__include@ --am__leading_dot = @am__leading_dot@ --am__quote = @am__quote@ --am__tar = @am__tar@ --am__untar = @am__untar@ --bindir = @bindir@ --build = @build@ --build_alias = @build_alias@ --build_cpu = @build_cpu@ --build_os = @build_os@ --build_vendor = @build_vendor@ --datadir = @datadir@ --exec_prefix = @exec_prefix@ --host = @host@ --host_alias = @host_alias@ --host_cpu = @host_cpu@ --host_os = @host_os@ --host_vendor = @host_vendor@ --includedir = @includedir@ --infodir = @infodir@ --install_sh = @install_sh@ --libdir = @libdir@ --libexecdir = @libexecdir@ --localstatedir = @localstatedir@ --mandir = @mandir@ --mkdir_p = @mkdir_p@ --oldincludedir = @oldincludedir@ --prefix = @prefix@ --program_transform_name = @program_transform_name@ --sbindir = @sbindir@ --sharedstatedir = @sharedstatedir@ --sysconfdir = @sysconfdir@ --target_alias = @target_alias@ --@SERIAL_SPEED_SIMULATION_FALSE@SERIAL_FLAGS = -DSUPPORT_SERIAL=1 --@SERIAL_SPEED_SIMULATION_TRUE@SERIAL_FLAGS = -DSUPPORT_SERIAL=1 -DSIMULATE_SLOWNESS_OF_SERIAL=1 --AM_CPPFLAGS = -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \ -- -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \ -- -DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 \ -- -DUSE_MD5_PASSWORDS=1 -DSUPPORT_HERCULES=1 \ -- $(SERIAL_FLAGS) -I$(top_srcdir)/stage2 \ -- -I$(top_srcdir)/stage1 -I$(top_srcdir)/lib -- --AM_CFLAGS = $(GRUB_CFLAGS) --grub_SOURCES = main.c asmstub.c --grub_LDADD = ../stage2/libgrub.a ../lib/libcommon.a $(GRUB_LIBS) --all: all-am -- --.SUFFIXES: --.SUFFIXES: .c .o .obj --$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) -- @for dep in $?; do \ -- case '$(am__configure_deps)' in \ -- *$$dep*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -- && exit 0; \ -- exit 1;; \ -- esac; \ -- done; \ -- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu grub/Makefile'; \ -- cd $(top_srcdir) && \ -- $(AUTOMAKE) --gnu grub/Makefile --.PRECIOUS: Makefile --Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -- @case '$?' in \ -- *config.status*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ -- *) \ -- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ -- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ -- esac; -- --$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -- --$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh --$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh --install-sbinPROGRAMS: $(sbin_PROGRAMS) -- @$(NORMAL_INSTALL) -- test -z "$(sbindir)" || $(mkdir_p) "$(DESTDIR)$(sbindir)" -- @list='$(sbin_PROGRAMS)'; for p in $$list; do \ -- p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ -- if test -f $$p \ -- ; then \ -- f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ -- echo " $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(sbindir)/$$f'"; \ -- $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(sbindir)/$$f" || exit 1; \ -- else :; fi; \ -- done -- --uninstall-sbinPROGRAMS: -- @$(NORMAL_UNINSTALL) -- @list='$(sbin_PROGRAMS)'; for p in $$list; do \ -- f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ -- echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \ -- rm -f "$(DESTDIR)$(sbindir)/$$f"; \ -- done -- --clean-sbinPROGRAMS: -- -test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS) --grub$(EXEEXT): $(grub_OBJECTS) $(grub_DEPENDENCIES) -- @rm -f grub$(EXEEXT) -- $(LINK) $(grub_LDFLAGS) $(grub_OBJECTS) $(grub_LDADD) $(LIBS) -- --mostlyclean-compile: -- -rm -f *.$(OBJEXT) -- --distclean-compile: -- -rm -f *.tab.c -- --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asmstub.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ -- --.c.o: --@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(COMPILE) -c $< -- --.c.obj: --@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` --uninstall-info-am: -- --ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- mkid -fID $$unique --tags: TAGS -- --TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -- $(TAGS_FILES) $(LISP) -- tags=; \ -- here=`pwd`; \ -- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -- test -n "$$unique" || unique=$$empty_fix; \ -- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -- $$tags $$unique; \ -- fi --ctags: CTAGS --CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -- $(TAGS_FILES) $(LISP) -- tags=; \ -- here=`pwd`; \ -- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- test -z "$(CTAGS_ARGS)$$tags$$unique" \ -- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -- $$tags $$unique -- --GTAGS: -- here=`$(am__cd) $(top_builddir) && pwd` \ -- && cd $(top_srcdir) \ -- && gtags -i $(GTAGS_ARGS) $$here -- --distclean-tags: -- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -- --distdir: $(DISTFILES) -- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ -- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -- list='$(DISTFILES)'; for file in $$list; do \ -- case $$file in \ -- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ -- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ -- esac; \ -- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ -- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -- if test "$$dir" != "$$file" && test "$$dir" != "."; then \ -- dir="/$$dir"; \ -- $(mkdir_p) "$(distdir)$$dir"; \ -- else \ -- dir=''; \ -- fi; \ -- if test -d $$d/$$file; then \ -- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -- fi; \ -- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -- else \ -- test -f $(distdir)/$$file \ -- || cp -p $$d/$$file $(distdir)/$$file \ -- || exit 1; \ -- fi; \ -- done --check-am: all-am --check: check-am --all-am: Makefile $(PROGRAMS) --installdirs: -- for dir in "$(DESTDIR)$(sbindir)"; do \ -- test -z "$$dir" || $(mkdir_p) "$$dir"; \ -- done --install: install-am --install-exec: install-exec-am --install-data: install-data-am --uninstall: uninstall-am -- --install-am: all-am -- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -- --installcheck: installcheck-am --install-strip: -- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ -- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ -- `test -z '$(STRIP)' || \ -- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install --mostlyclean-generic: -- --clean-generic: -- --distclean-generic: -- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -- --maintainer-clean-generic: -- @echo "This command is intended for maintainers to use" -- @echo "it deletes files that may require special tools to rebuild." --clean: clean-am -- --clean-am: clean-generic clean-sbinPROGRAMS mostlyclean-am -- --distclean: distclean-am -- -rm -rf ./$(DEPDIR) -- -rm -f Makefile --distclean-am: clean-am distclean-compile distclean-generic \ -- distclean-tags -- --dvi: dvi-am -- --dvi-am: -- --html: html-am -- --info: info-am -- --info-am: -- --install-data-am: -- --install-exec-am: install-sbinPROGRAMS -- --install-info: install-info-am -- --install-man: -- --installcheck-am: -- --maintainer-clean: maintainer-clean-am -- -rm -rf ./$(DEPDIR) -- -rm -f Makefile --maintainer-clean-am: distclean-am maintainer-clean-generic -- --mostlyclean: mostlyclean-am -- --mostlyclean-am: mostlyclean-compile mostlyclean-generic -- --pdf: pdf-am -- --pdf-am: -- --ps: ps-am -- --ps-am: -- --uninstall-am: uninstall-info-am uninstall-sbinPROGRAMS -- --.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ -- clean-sbinPROGRAMS ctags distclean distclean-compile \ -- distclean-generic distclean-tags distdir dvi dvi-am html \ -- html-am info info-am install install-am install-data \ -- install-data-am install-exec install-exec-am install-info \ -- install-info-am install-man install-sbinPROGRAMS install-strip \ -- installcheck installcheck-am installdirs maintainer-clean \ -- maintainer-clean-generic mostlyclean mostlyclean-compile \ -- mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ -- uninstall-am uninstall-info-am uninstall-sbinPROGRAMS -- --# Tell versions [3.59,3.63) of GNU make to not export all variables. --# Otherwise a system limit (for SysV at least) may be exceeded. --.NOEXPORT: -diff --git a/grub/asmstub.c b/grub/asmstub.c -index ab95b4b..818be75 100644 ---- a/grub/asmstub.c -+++ b/grub/asmstub.c -@@ -42,6 +42,7 @@ int grub_stage2 (void); - #include - #include - #include -+#include - - #ifdef __linux__ - # include /* ioctl */ -@@ -53,6 +54,9 @@ int grub_stage2 (void); - # ifndef BLKFLSBUF - # define BLKFLSBUF _IO (0x12,97) /* flush buffer cache */ - # endif /* ! BLKFLSBUF */ -+# ifndef O_DIRECT -+# define O_DIRECT 040000 -+# endif /* ! O_DIRECT */ - #endif /* __linux__ */ - - /* We want to prevent any circularararity in our stubs, as well as -@@ -71,7 +75,7 @@ unsigned long install_partition = 0x20000; - unsigned long boot_drive = 0; - int saved_entryno = 0; - char version_string[] = VERSION; --char config_file[128] = "/boot/grub/menu.lst"; /* FIXME: arbitrary */ -+char config_file[128] = "/boot/grub/grub.conf"; /* FIXME: arbitrary */ - unsigned long linux_text_len = 0; - char *linux_data_tmp_addr = 0; - char *linux_data_real_addr = 0; -@@ -79,7 +83,7 @@ unsigned short io_map[IO_MAP_SIZE]; - struct apm_info apm_bios_info; - - /* Emulation requirements. */ --char *grub_scratch_mem = 0; -+void *grub_scratch_mem = 0; - - struct geometry *disks = 0; - -@@ -103,14 +107,73 @@ static char *serial_device = 0; - static unsigned int serial_speed; - #endif /* SIMULATE_SLOWNESS_OF_SERIAL */ - -+#ifdef GRUB_UTIL -+int get_sector_size (int drive) -+{ -+ return 0x200; -+} -+int get_sector_bits (int drive) -+{ -+ return 9; -+} -+#endif /* GRUB_UTIL */ -+ -+/* This allocates page-aligned storage of the specified size, which must be -+ * a multiple of the page size as determined by calling sysconf(_SC_PAGESIZE) -+ */ -+#ifdef __linux__ -+static void * -+grub_mmap_alloc(size_t len) -+{ -+ int mmap_flags = MAP_ANONYMOUS|MAP_PRIVATE|MAP_EXECUTABLE; -+ -+#ifdef MAP_32BIT -+ mmap_flags |= MAP_32BIT; -+#endif -+ /* Mark the simulated stack executable, as GCC uses stack trampolines -+ * to implement nested functions. */ -+ return mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC, mmap_flags, -1, 0); -+} -+#else /* !defined(__linux__) */ -+static void * -+grub_mmap_alloc(size_t len) -+{ -+ int fd = 0, offset = 0, ret = 0; -+ void *pa = MAP_FAILED; -+ char template[] = "/tmp/grub_mmap_alloc_XXXXXX"; -+ errno_t e; -+ -+ fd = mkstemp(template); -+ if (fd < 0) -+ return pa; -+ -+ unlink(template); -+ -+ ret = ftruncate(fd, len); -+ if (ret < 0) -+ return pa; -+ -+ /* Mark the simulated stack executable, as GCC uses stack trampolines -+ * to implement nested functions. */ -+ pa = mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC, -+ MAP_PRIVATE|MAP_EXECUTABLE, fd, offset); -+ -+ e = errno; -+ close(fd); -+ errno = e; -+ return pa; -+} -+#endif /* defined(__linux__) */ -+ - /* The main entry point into this mess. */ - int - grub_stage2 (void) - { - /* These need to be static, because they survive our stack transitions. */ - static int status = 0; -- static char *realstack; -- char *scratch, *simstack; -+ static void *realstack; -+ void *simstack_alloc_base, *simstack; -+ size_t simstack_size, page_size; - int i; - - auto void doit (void); -@@ -120,8 +183,13 @@ grub_stage2 (void) - void doit (void) - { - /* Make sure our stack lives in the simulated memory area. */ -+#ifdef __x86_64 -+ asm volatile ("movq %%rsp, %0\n\tmovq %1, %%rsp\n" -+ : "=&r" (realstack) : "r" (simstack)); -+#else - asm volatile ("movl %%esp, %0\n\tmovl %1, %%esp\n" - : "=&r" (realstack) : "r" (simstack)); -+#endif - - /* Do a setjmp here for the stop command. */ - if (! setjmp (env_for_exit)) -@@ -138,13 +206,43 @@ grub_stage2 (void) - } - - /* Replace our stack before we use any local variables. */ -+#ifdef __x86_64 -+ asm volatile ("movq %0, %%rsp\n" : : "r" (realstack)); -+#else - asm volatile ("movl %0, %%esp\n" : : "r" (realstack)); -+#endif - } - - assert (grub_scratch_mem == 0); -- scratch = malloc (0x100000 + EXTENDED_MEMSIZE + 15); -- assert (scratch); -- grub_scratch_mem = (char *) ((((int) scratch) >> 4) << 4); -+ -+ /* Allocate enough pages for 0x100000 + EXTENDED_SIZE + 15, and -+ * make sure the memory is aligned to a multiple of the system's -+ * page size */ -+ page_size = sysconf (_SC_PAGESIZE); -+ simstack_size = ( 0x100000 + EXTENDED_MEMSIZE + 15); -+ if (simstack_size % page_size) -+ { -+ /* If we're not on a page_size boundary, round up to the next one */ -+ simstack_size &= ~(page_size-1); -+ simstack_size += page_size; -+ } -+ -+ /* Add one for a PROT_NONE boundary page at each end. */ -+ simstack_size += 2 * page_size; -+ -+ simstack_alloc_base = grub_mmap_alloc(simstack_size); -+ assert (simstack_alloc_base != MAP_FAILED); -+ -+ /* mark pages above and below our simstack area as innaccessable. -+ * If the implementation we're using doesn't support that, then the -+ * new protection modes are undefined. It's safe to just ignore -+ * them, though. It'd be nice if we knew that we'd get a SEGV for -+ * touching the area, but that's all. it'd be nice to have. */ -+ mprotect (simstack_alloc_base, page_size, PROT_NONE); -+ mprotect ((void *)((unsigned long)simstack_alloc_base + -+ simstack_size - page_size), page_size, PROT_NONE); -+ -+ grub_scratch_mem = (void *)((unsigned long)simstack_alloc_base + page_size); - - /* FIXME: simulate the memory holes using mprot, if available. */ - -@@ -217,7 +315,7 @@ grub_stage2 (void) - device_map = 0; - free (disks); - disks = 0; -- free (scratch); -+ munmap(simstack_alloc_base, simstack_size); - grub_scratch_mem = 0; - - if (serial_device) -@@ -699,6 +797,13 @@ console_getkey (void) - return console_translate_key (c); - } - -+/* returns modifier status */ -+int -+console_keystatus (void) -+{ -+ return 0; -+} -+ - /* returns packed values, LSB+1 is x, LSB is y */ - int - console_getxy (void) -@@ -766,7 +871,7 @@ get_diskinfo (int drive, struct geometry *geometry) - { - /* The unpartitioned device name: /dev/XdX */ - char *devname = device_map[drive]; -- char buf[512]; -+ char * buf, * buf_unaligned; - - if (! devname) - return -1; -@@ -777,13 +882,13 @@ get_diskinfo (int drive, struct geometry *geometry) - - /* Open read/write, or read-only if that failed. */ - if (! read_only) -- disks[drive].flags = open (devname, O_RDWR); -+ disks[drive].flags = open (devname, O_RDWR | O_DIRECT); - - if (disks[drive].flags == -1) - { - if (read_only || errno == EACCES || errno == EROFS || errno == EPERM) - { -- disks[drive].flags = open (devname, O_RDONLY); -+ disks[drive].flags = open (devname, O_RDONLY | O_DIRECT); - if (disks[drive].flags == -1) - { - assign_device_name (drive, 0); -@@ -797,6 +902,10 @@ get_diskinfo (int drive, struct geometry *geometry) - } - } - -+ buf_unaligned = malloc((512 * sizeof(char)) + 4095); -+ buf = (char *) (((unsigned long)buf_unaligned + 4096 - 1) & -+ (~(4096-1))); -+ - /* Attempt to read the first sector. */ - if (read (disks[drive].flags, buf, 512) != 512) - { -@@ -808,6 +917,7 @@ get_diskinfo (int drive, struct geometry *geometry) - - if (disks[drive].flags != -1) - get_drive_geometry (&disks[drive], device_map, drive); -+ free(buf_unaligned); - } - - if (disks[drive].flags == -1) -@@ -829,24 +939,34 @@ static int - nread (int fd, char *buf, size_t len) - { - int size = len; -+ char * buf_unaligned, * buff, * obuff; -+ int ret; -+ -+ buf_unaligned = malloc((len * sizeof(char)) + 4095); -+ obuff = buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) & -+ (~(4096-1))); -+ - - while (len) - { -- int ret = read (fd, buf, len); -+ ret = read (fd, buff, len); - - if (ret <= 0) - { - if (errno == EINTR) - continue; - else -- return ret; -+ break; - } - - len -= ret; -- buf += ret; -+ buff += ret; - } - -- return size; -+ if (!len) ret = size; -+ -+ buf = memcpy(buf, obuff, size); -+ return ret; - } - - /* Write LEN bytes from BUF to FD. Return less than or equal to zero if an -@@ -855,10 +975,18 @@ static int - nwrite (int fd, char *buf, size_t len) - { - int size = len; -+ char * buf_unaligned, * buff; -+ -+ buf_unaligned = malloc((len * sizeof(char)) + 4095); -+ buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) & -+ (~(4096-1))); - - while (len) - { -- int ret = write (fd, buf, len); -+ int ret; -+ -+ memcpy(buff, buf, len); -+ ret = write (fd, buff, len); - - if (ret <= 0) - { -@@ -946,20 +1074,20 @@ biosdisk (int subfunc, int drive, struct geometry *geometry, - _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo, - loff_t *, res, uint, wh); - -- offset = (loff_t) sector * (loff_t) SECTOR_SIZE; -+ offset = (loff_t) sector * (loff_t) get_sector_size(drive); - if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET)) - return -1; - } - #else - { -- off_t offset = (off_t) sector * (off_t) SECTOR_SIZE; -+ off_t offset = (off_t) sector * (off_t) get_sector_size(drive); - - if (lseek (fd, offset, SEEK_SET) != offset) - return -1; - } - #endif - -- buf = (char *) (segment << 4); -+ buf = (char *) (unsigned long) (segment << 4); - - switch (subfunc) - { -@@ -971,13 +1099,13 @@ biosdisk (int subfunc, int drive, struct geometry *geometry, - sectors that are read together with the MBR in one read. It - should only remap the MBR, so we split the read in two - parts. -jochen */ -- if (nread (fd, buf, SECTOR_SIZE) != SECTOR_SIZE) -+ if (nread (fd, buf, get_sector_size(drive)) != get_sector_size(drive)) - return -1; -- buf += SECTOR_SIZE; -+ buf += get_sector_size(drive); - nsec--; - } - #endif -- if (nread (fd, buf, nsec * SECTOR_SIZE) != nsec * SECTOR_SIZE) -+ if (nread (fd, buf, nsec * get_sector_size(drive)) != nsec * get_sector_size(drive)) - return -1; - break; - -@@ -987,10 +1115,10 @@ biosdisk (int subfunc, int drive, struct geometry *geometry, - grub_printf ("Write %d sectors starting from %d sector" - " to drive 0x%x (%s)\n", - nsec, sector, drive, device_map[drive]); -- hex_dump (buf, nsec * SECTOR_SIZE); -+ hex_dump (buf, nsec * get_sector_size(drive)); - } - if (! read_only) -- if (nwrite (fd, buf, nsec * SECTOR_SIZE) != nsec * SECTOR_SIZE) -+ if (nwrite (fd, buf, nsec * get_sector_size(drive)) != nsec * get_sector_size(drive)) - return -1; - break; - -@@ -1273,3 +1401,21 @@ hercules_setcursor (int on) - { - return 1; - } -+ -+int -+grub_load_linux (char *kernel, char *arg) -+{ -+ return 0; -+} -+ -+int -+grub_load_initrd (char *initrd) -+{ -+ return 0; -+} -+ -+int -+grub_chainloader (char *filename) -+{ -+ return 0; -+} -diff --git a/grub/efitftp.c b/grub/efitftp.c -new file mode 100644 -index 0000000..5355dec ---- /dev/null -+++ b/grub/efitftp.c -@@ -0,0 +1,34 @@ -+#include -+#include -+ -+int efi_tftp_mount (void); -+int efi_tftp_read (char *buf, int len); -+int efi_tftp_dir (char *dirname); -+void efi_tftp_close (void); -+ -+int -+efi_tftp_mount (void) -+{ -+ grub_printf("non-efi efi_tftp_mount()\n"); -+ return 0; -+} -+ -+int -+efi_tftp_read (char *addr, int size) -+{ -+ grub_printf ("non-efi efi_tftp_read (0x%x, %d)\n", (long) addr, size); -+ return 0; -+} -+ -+int -+efi_tftp_dir (char *dirname) -+{ -+ grub_printf ("non-efi efi_ftp_dir (%s)\n", dirname); -+ return 0; -+} -+ -+void -+efi_tftp_close (void) -+{ -+ grub_printf ("non-efi efi_tftp_close ()\n"); -+} -diff --git a/grub/main.c b/grub/main.c -index dfe847e..6083641 100644 ---- a/grub/main.c -+++ b/grub/main.c -@@ -140,7 +140,7 @@ main (int argc, char **argv) - program_name = argv[0]; - default_boot_drive = boot_drive; - default_install_partition = install_partition; -- if (config_file) -+ if (config_file[0]) - default_config_file = config_file; - else - default_config_file = "NONE"; -diff --git a/lib/.gitignore b/lib/.gitignore -new file mode 100644 -index 0000000..5d89f6d ---- /dev/null -+++ b/lib/.gitignore -@@ -0,0 +1,2 @@ -+Makefile.in -+.deps -diff --git a/lib/Makefile.in b/lib/Makefile.in -deleted file mode 100644 -index 3dae206..0000000 ---- a/lib/Makefile.in -+++ /dev/null -@@ -1,416 +0,0 @@ --# Makefile.in generated by automake 1.9.4 from Makefile.am. --# @configure_input@ -- --# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, --# 2003, 2004 Free Software Foundation, Inc. --# This Makefile.in is free software; the Free Software Foundation --# gives unlimited permission to copy and/or distribute it, --# with or without modifications, as long as this notice is preserved. -- --# This program is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY, to the extent permitted by law; without --# even the implied warranty of MERCHANTABILITY or FITNESS FOR A --# PARTICULAR PURPOSE. -- --@SET_MAKE@ -- --SOURCES = $(libcommon_a_SOURCES) -- --srcdir = @srcdir@ --top_srcdir = @top_srcdir@ --VPATH = @srcdir@ --pkgdatadir = $(datadir)/@PACKAGE@ --pkglibdir = $(libdir)/@PACKAGE@ --pkgincludedir = $(includedir)/@PACKAGE@ --top_builddir = .. --am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd --INSTALL = @INSTALL@ --install_sh_DATA = $(install_sh) -c -m 644 --install_sh_PROGRAM = $(install_sh) -c --install_sh_SCRIPT = $(install_sh) -c --INSTALL_HEADER = $(INSTALL_DATA) --transform = $(program_transform_name) --NORMAL_INSTALL = : --PRE_INSTALL = : --POST_INSTALL = : --NORMAL_UNINSTALL = : --PRE_UNINSTALL = : --POST_UNINSTALL = : --build_triplet = @build@ --host_triplet = @host@ --subdir = lib --DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in --ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 --am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ -- $(top_srcdir)/configure.ac --am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ -- $(ACLOCAL_M4) --mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs --CONFIG_HEADER = $(top_builddir)/config.h --CONFIG_CLEAN_FILES = --LIBRARIES = $(noinst_LIBRARIES) --AR = ar --ARFLAGS = cru --libcommon_a_AR = $(AR) $(ARFLAGS) --libcommon_a_LIBADD = --am_libcommon_a_OBJECTS = getopt.$(OBJEXT) getopt1.$(OBJEXT) \ -- device.$(OBJEXT) --libcommon_a_OBJECTS = $(am_libcommon_a_OBJECTS) --DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) --depcomp = $(SHELL) $(top_srcdir)/depcomp --am__depfiles_maybe = depfiles --COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ -- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) --CCLD = $(CC) --LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ --SOURCES = $(libcommon_a_SOURCES) --DIST_SOURCES = $(libcommon_a_SOURCES) --ETAGS = etags --CTAGS = ctags --DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) --ACLOCAL = @ACLOCAL@ --AMDEP_FALSE = @AMDEP_FALSE@ --AMDEP_TRUE = @AMDEP_TRUE@ --AMTAR = @AMTAR@ --AUTOCONF = @AUTOCONF@ --AUTOHEADER = @AUTOHEADER@ --AUTOMAKE = @AUTOMAKE@ --AWK = @AWK@ --BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@ --BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@ --CC = @CC@ --CCAS = @CCAS@ --CCASFLAGS = @CCASFLAGS@ --CCDEPMODE = @CCDEPMODE@ --CFLAGS = @CFLAGS@ --CPP = @CPP@ --CPPFLAGS = @CPPFLAGS@ --CYGPATH_W = @CYGPATH_W@ --DEFS = @DEFS@ --DEPDIR = @DEPDIR@ --DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@ --DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@ --ECHO_C = @ECHO_C@ --ECHO_N = @ECHO_N@ --ECHO_T = @ECHO_T@ --EGREP = @EGREP@ --EXEEXT = @EXEEXT@ --FSYS_CFLAGS = @FSYS_CFLAGS@ --GRUB_CFLAGS = @GRUB_CFLAGS@ --GRUB_LIBS = @GRUB_LIBS@ --HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@ --HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@ --INSTALL_DATA = @INSTALL_DATA@ --INSTALL_PROGRAM = @INSTALL_PROGRAM@ --INSTALL_SCRIPT = @INSTALL_SCRIPT@ --INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ --LDFLAGS = @LDFLAGS@ --LIBOBJS = @LIBOBJS@ --LIBS = @LIBS@ --LTLIBOBJS = @LTLIBOBJS@ --MAINT = @MAINT@ --MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ --MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ --MAKEINFO = @MAKEINFO@ --NETBOOT_DRIVERS = @NETBOOT_DRIVERS@ --NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@ --NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@ --NET_CFLAGS = @NET_CFLAGS@ --NET_EXTRAFLAGS = @NET_EXTRAFLAGS@ --OBJCOPY = @OBJCOPY@ --OBJEXT = @OBJEXT@ --PACKAGE = @PACKAGE@ --PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ --PACKAGE_NAME = @PACKAGE_NAME@ --PACKAGE_STRING = @PACKAGE_STRING@ --PACKAGE_TARNAME = @PACKAGE_TARNAME@ --PACKAGE_VERSION = @PACKAGE_VERSION@ --PATH_SEPARATOR = @PATH_SEPARATOR@ --PERL = @PERL@ --RANLIB = @RANLIB@ --SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@ --SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@ --SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@ --SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@ --SET_MAKE = @SET_MAKE@ --SHELL = @SHELL@ --STAGE1_CFLAGS = @STAGE1_CFLAGS@ --STAGE2_CFLAGS = @STAGE2_CFLAGS@ --STRIP = @STRIP@ --VERSION = @VERSION@ --ac_ct_CC = @ac_ct_CC@ --ac_ct_OBJCOPY = @ac_ct_OBJCOPY@ --ac_ct_RANLIB = @ac_ct_RANLIB@ --ac_ct_STRIP = @ac_ct_STRIP@ --am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ --am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ --am__include = @am__include@ --am__leading_dot = @am__leading_dot@ --am__quote = @am__quote@ --am__tar = @am__tar@ --am__untar = @am__untar@ --bindir = @bindir@ --build = @build@ --build_alias = @build_alias@ --build_cpu = @build_cpu@ --build_os = @build_os@ --build_vendor = @build_vendor@ --datadir = @datadir@ --exec_prefix = @exec_prefix@ --host = @host@ --host_alias = @host_alias@ --host_cpu = @host_cpu@ --host_os = @host_os@ --host_vendor = @host_vendor@ --includedir = @includedir@ --infodir = @infodir@ --install_sh = @install_sh@ --libdir = @libdir@ --libexecdir = @libexecdir@ --localstatedir = @localstatedir@ --mandir = @mandir@ --mkdir_p = @mkdir_p@ --oldincludedir = @oldincludedir@ --prefix = @prefix@ --program_transform_name = @program_transform_name@ --sbindir = @sbindir@ --sharedstatedir = @sharedstatedir@ --sysconfdir = @sysconfdir@ --target_alias = @target_alias@ --noinst_LIBRARIES = libcommon.a --AM_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/stage2 \ -- -I$(top_srcdir)/stage1 -- --libcommon_a_SOURCES = getopt.c getopt1.c getopt.h device.c device.h --all: all-am -- --.SUFFIXES: --.SUFFIXES: .c .o .obj --$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) -- @for dep in $?; do \ -- case '$(am__configure_deps)' in \ -- *$$dep*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -- && exit 0; \ -- exit 1;; \ -- esac; \ -- done; \ -- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile'; \ -- cd $(top_srcdir) && \ -- $(AUTOMAKE) --gnu lib/Makefile --.PRECIOUS: Makefile --Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -- @case '$?' in \ -- *config.status*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ -- *) \ -- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ -- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ -- esac; -- --$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -- --$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh --$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -- --clean-noinstLIBRARIES: -- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) --libcommon.a: $(libcommon_a_OBJECTS) $(libcommon_a_DEPENDENCIES) -- -rm -f libcommon.a -- $(libcommon_a_AR) libcommon.a $(libcommon_a_OBJECTS) $(libcommon_a_LIBADD) -- $(RANLIB) libcommon.a -- --mostlyclean-compile: -- -rm -f *.$(OBJEXT) -- --distclean-compile: -- -rm -f *.tab.c -- --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/device.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@ -- --.c.o: --@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(COMPILE) -c $< -- --.c.obj: --@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` --uninstall-info-am: -- --ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- mkid -fID $$unique --tags: TAGS -- --TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -- $(TAGS_FILES) $(LISP) -- tags=; \ -- here=`pwd`; \ -- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -- test -n "$$unique" || unique=$$empty_fix; \ -- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -- $$tags $$unique; \ -- fi --ctags: CTAGS --CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -- $(TAGS_FILES) $(LISP) -- tags=; \ -- here=`pwd`; \ -- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- test -z "$(CTAGS_ARGS)$$tags$$unique" \ -- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -- $$tags $$unique -- --GTAGS: -- here=`$(am__cd) $(top_builddir) && pwd` \ -- && cd $(top_srcdir) \ -- && gtags -i $(GTAGS_ARGS) $$here -- --distclean-tags: -- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -- --distdir: $(DISTFILES) -- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ -- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -- list='$(DISTFILES)'; for file in $$list; do \ -- case $$file in \ -- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ -- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ -- esac; \ -- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ -- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -- if test "$$dir" != "$$file" && test "$$dir" != "."; then \ -- dir="/$$dir"; \ -- $(mkdir_p) "$(distdir)$$dir"; \ -- else \ -- dir=''; \ -- fi; \ -- if test -d $$d/$$file; then \ -- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -- fi; \ -- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -- else \ -- test -f $(distdir)/$$file \ -- || cp -p $$d/$$file $(distdir)/$$file \ -- || exit 1; \ -- fi; \ -- done --check-am: all-am --check: check-am --all-am: Makefile $(LIBRARIES) --installdirs: --install: install-am --install-exec: install-exec-am --install-data: install-data-am --uninstall: uninstall-am -- --install-am: all-am -- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -- --installcheck: installcheck-am --install-strip: -- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ -- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ -- `test -z '$(STRIP)' || \ -- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install --mostlyclean-generic: -- --clean-generic: -- --distclean-generic: -- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -- --maintainer-clean-generic: -- @echo "This command is intended for maintainers to use" -- @echo "it deletes files that may require special tools to rebuild." --clean: clean-am -- --clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am -- --distclean: distclean-am -- -rm -rf ./$(DEPDIR) -- -rm -f Makefile --distclean-am: clean-am distclean-compile distclean-generic \ -- distclean-tags -- --dvi: dvi-am -- --dvi-am: -- --html: html-am -- --info: info-am -- --info-am: -- --install-data-am: -- --install-exec-am: -- --install-info: install-info-am -- --install-man: -- --installcheck-am: -- --maintainer-clean: maintainer-clean-am -- -rm -rf ./$(DEPDIR) -- -rm -f Makefile --maintainer-clean-am: distclean-am maintainer-clean-generic -- --mostlyclean: mostlyclean-am -- --mostlyclean-am: mostlyclean-compile mostlyclean-generic -- --pdf: pdf-am -- --pdf-am: -- --ps: ps-am -- --ps-am: -- --uninstall-am: uninstall-info-am -- --.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ -- clean-noinstLIBRARIES ctags distclean distclean-compile \ -- distclean-generic distclean-tags distdir dvi dvi-am html \ -- html-am info info-am install install-am install-data \ -- install-data-am install-exec install-exec-am install-info \ -- install-info-am install-man install-strip installcheck \ -- installcheck-am installdirs maintainer-clean \ -- maintainer-clean-generic mostlyclean mostlyclean-compile \ -- mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ -- uninstall-am uninstall-info-am -- --# Tell versions [3.59,3.63) of GNU make to not export all variables. --# Otherwise a system limit (for SysV at least) may be exceeded. --.NOEXPORT: -diff --git a/lib/device.c b/lib/device.c -index d0663b3..50540bc 100644 ---- a/lib/device.c -+++ b/lib/device.c -@@ -36,6 +36,9 @@ - #include - #include - -+#define SECTOR_SIZE 0x200 -+#define SECTOR_BITS 9 -+ - #ifdef __linux__ - # if !defined(__GLIBC__) || \ - ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))) -@@ -131,6 +134,152 @@ get_kfreebsd_version () - #include - #include - -+#if defined(__linux__) -+/* The 2.6 kernel has removed all of the geometry handling for IDE drives -+ * that did fixups for LBA, etc. This means that the geometry we get -+ * with the ioctl has a good chance of being wrong. So, we get to -+ * also know about partition tables and try to read what the geometry -+ * is there. *grumble* Very closely based on code from cfdisk -+ */ -+static void get_kernel_geometry(int fd, long long *cyl, int *heads, int *sectors) { -+ struct hd_geometry hdg; -+ -+ if (ioctl (fd, HDIO_GETGEO, &hdg)) -+ return; -+ -+ *cyl = hdg.cylinders; -+ *heads = hdg.heads; -+ *sectors = hdg.sectors; -+} -+ -+struct partition { -+ unsigned char boot_ind; /* 0x80 - active */ -+ unsigned char head; /* starting head */ -+ unsigned char sector; /* starting sector */ -+ unsigned char cyl; /* starting cylinder */ -+ unsigned char sys_ind; /* What partition type */ -+ unsigned char end_head; /* end head */ -+ unsigned char end_sector; /* end sector */ -+ unsigned char end_cyl; /* end cylinder */ -+ unsigned char start4[4]; /* starting sector counting from 0 */ -+ unsigned char size4[4]; /* nr of sectors in partition */ -+}; -+ -+#define ALIGNMENT 2 -+typedef union { -+ struct { -+ unsigned char align[ALIGNMENT]; -+ unsigned char b[SECTOR_SIZE]; -+ } c; -+ struct { -+ unsigned char align[ALIGNMENT]; -+ unsigned char buffer[0x1BE]; -+ struct partition part[4]; -+ unsigned char magicflag[2]; -+ } p; -+} partition_table; -+ -+#define PART_TABLE_FLAG0 0x55 -+#define PART_TABLE_FLAG1 0xAA -+ -+static void -+get_partition_table_geometry(partition_table *bufp, long long *cyl, int *heads, -+ int *sectors) { -+ struct partition *p; -+ int i,h,s,hh,ss; -+ int first = 1; -+ int bad = 0; -+ -+ if (bufp->p.magicflag[0] != PART_TABLE_FLAG0 || -+ bufp->p.magicflag[1] != PART_TABLE_FLAG1) { -+ /* Matthew Wilcox: slightly friendlier version of -+ fatal(_("Bad signature on partition table"), 3); -+ */ -+ fprintf(stderr, "Unknown partition table signature\n"); -+ return; -+ } -+ -+ hh = ss = 0; -+ for (i=0; i<4; i++) { -+ p = &(bufp->p.part[i]); -+ if (p->sys_ind != 0) { -+ h = p->end_head + 1; -+ s = (p->end_sector & 077); -+ if (first) { -+ hh = h; -+ ss = s; -+ first = 0; -+ } else if (hh != h || ss != s) -+ bad = 1; -+ } -+ } -+ -+ if (!first && !bad) { -+ *heads = hh; -+ *sectors = ss; -+ } -+} -+ -+static long long my_lseek (unsigned int fd, long long offset, -+ unsigned int origin) -+{ -+#if defined(__linux__) && (!defined(__GLIBC__) || \ -+ ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1)))) -+ /* Maybe libc doesn't have large file support. */ -+ loff_t offset, result; -+ static int _llseek (uint filedes, ulong hi, ulong lo, -+ loff_t *res, uint wh); -+ _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo, -+ loff_t *, res, uint, wh); -+ -+ if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET) < 0) -+ return (long long) -1; -+ return result; -+#else -+ return lseek(fd, offset, SEEK_SET); -+#endif -+} -+ -+static void get_linux_geometry (int fd, struct geometry *geom) { -+ long long kern_cyl = 0; int kern_head = 0, kern_sectors = 0; -+ long long pt_cyl = 0; int pt_head = 0, pt_sectors = 0; -+ partition_table bufp; -+ char *buff, *buf_unaligned; -+ -+ buf_unaligned = malloc(sizeof(partition_table) + 4095); -+ buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) & -+ (~(4096-1))); -+ -+ get_kernel_geometry(fd, &kern_cyl, &kern_head, &kern_sectors); -+ -+ if (my_lseek (fd, 0*SECTOR_SIZE, SEEK_SET) < 0) { -+ fprintf(stderr, "Unable to seek"); -+ } -+ -+ if (read(fd, buff, SECTOR_SIZE) == SECTOR_SIZE) { -+ memcpy(bufp.c.b, buff, SECTOR_SIZE); -+ get_partition_table_geometry(&bufp, &pt_cyl, &pt_head, &pt_sectors); -+ } else { -+ fprintf(stderr, "Unable to read partition table: %s\n", strerror(errno)); -+ } -+ -+ if (pt_head && pt_sectors) { -+ int cyl_size; -+ -+ geom->heads = pt_head; -+ geom->sectors = pt_sectors; -+ cyl_size = pt_head * pt_sectors; -+ geom->cylinders = geom->total_sectors/cyl_size; -+ } else { -+ geom->heads = kern_head; -+ geom->sectors = kern_sectors; -+ geom->cylinders = kern_cyl; -+ } -+ -+ return; -+} -+#endif -+ - /* Get the geometry of a drive DRIVE. */ - void - get_drive_geometry (struct geometry *geom, char **map, int drive) -@@ -151,21 +300,16 @@ get_drive_geometry (struct geometry *geom, char **map, int drive) - #if defined(__linux__) - /* Linux */ - { -- struct hd_geometry hdg; - unsigned long nr; -- -- if (ioctl (fd, HDIO_GETGEO, &hdg)) -- goto fail; - - if (ioctl (fd, BLKGETSIZE, &nr)) - goto fail; - - /* Got the geometry, so save it. */ -- geom->cylinders = hdg.cylinders; -- geom->heads = hdg.heads; -- geom->sectors = hdg.sectors; - geom->total_sectors = nr; -- -+ get_linux_geometry(fd, geom); -+ if (!geom->heads && !geom->cylinders && !geom->sectors) -+ goto fail; - goto success; - } - -@@ -403,10 +547,27 @@ get_dac960_disk_name (char *name, int controller, int drive) - } - - static void -+get_cciss_disk_name (char * name, int controller, int drive) -+{ -+ sprintf (name, "/dev/cciss/c%dd%d", controller, drive); -+} -+ -+static void -+get_cpqarray_disk_name (char * name, int controller, int drive) -+{ -+ sprintf (name, "/dev/ida/c%dd%d", controller, drive); -+} -+static void - get_ataraid_disk_name (char *name, int unit) - { - sprintf (name, "/dev/ataraid/d%c", unit + '0'); - } -+ -+static void -+get_i2o_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/i2o/hd%c", unit + 'a'); -+} - #endif - - /* Check if DEVICE can be read. If an error occurs, return zero, -@@ -490,27 +651,24 @@ check_device (const char *device) - } - - /* Read mapping information from FP, and write it to MAP. */ -+static void rdm_show_error (const char *map_file, int no, const char *msg) -+{ -+ fprintf (stderr, "%s:%d: error: %s\n", map_file, no, msg); -+} -+ -+static void rdm_show_warning (const char *map_file,int no, const char *msg, ...) -+{ -+ va_list ap; -+ -+ va_start (ap, msg); -+ fprintf (stderr, "%s:%d: warning: ", map_file, no); -+ vfprintf (stderr, msg, ap); -+ va_end (ap); -+} -+ - static int - read_device_map (FILE *fp, char **map, const char *map_file) - { -- auto void show_error (int no, const char *msg); -- auto void show_warning (int no, const char *msg, ...); -- -- auto void show_error (int no, const char *msg) -- { -- fprintf (stderr, "%s:%d: error: %s\n", map_file, no, msg); -- } -- -- auto void show_warning (int no, const char *msg, ...) -- { -- va_list ap; -- -- va_start (ap, msg); -- fprintf (stderr, "%s:%d: warning: ", map_file, no); -- vfprintf (stderr, msg, ap); -- va_end (ap); -- } -- - /* If there is the device map file, use the data in it instead of - probing devices. */ - char buf[1024]; /* XXX */ -@@ -540,14 +698,14 @@ read_device_map (FILE *fp, char **map, const char *map_file) - - if (*ptr != '(') - { -- show_error (line_number, "No open parenthesis found"); -+ rdm_show_error (map_file, line_number, "No open parenthesis found"); - return 0; - } - - ptr++; - if ((*ptr != 'f' && *ptr != 'h') || *(ptr + 1) != 'd') - { -- show_error (line_number, "Bad drive name"); -+ rdm_show_error (map_file, line_number, "Bad drive name"); - return 0; - } - -@@ -558,12 +716,12 @@ read_device_map (FILE *fp, char **map, const char *map_file) - drive = strtoul (ptr, &ptr, 10); - if (drive < 0) - { -- show_error (line_number, "Bad device number"); -+ rdm_show_error (map_file, line_number, "Bad device number"); - return 0; - } - else if (drive > 127) - { -- show_warning (line_number, -+ rdm_show_warning (map_file, line_number, - "Ignoring %cd%d due to a BIOS limitation", - is_floppy ? 'f' : 'h', drive); - continue; -@@ -574,7 +732,7 @@ read_device_map (FILE *fp, char **map, const char *map_file) - - if (*ptr != ')') - { -- show_error (line_number, "No close parenthesis found"); -+ rdm_show_error (map_file, line_number, "No close parenthesis found"); - return 0; - } - -@@ -585,7 +743,7 @@ read_device_map (FILE *fp, char **map, const char *map_file) - - if (! *ptr) - { -- show_error (line_number, "No filename found"); -+ rdm_show_error (map_file, line_number, "No filename found"); - return 0; - } - -@@ -598,7 +756,7 @@ read_device_map (FILE *fp, char **map, const char *map_file) - /* Multiple entries for a given drive is not allowed. */ - if (map[drive]) - { -- show_error (line_number, "Duplicated entry found"); -+ rdm_show_error (map_file, line_number, "Duplicated entry found"); - return 0; - } - -@@ -782,7 +940,7 @@ init_device_map (char ***map, const char *map_file, int floppy_disks) - - for (controller = 0; controller < 8; controller++) - { -- for (drive = 0; drive < 15; drive++) -+ for (drive = 0; drive < 32; drive++) - { - char name[24]; - -@@ -801,6 +959,90 @@ init_device_map (char ***map, const char *map_file, int floppy_disks) - } - } - } -+ -+ /* I2O disks. */ -+ for (i = 0; i < 8; i++) -+ { -+ char name[16]; -+ -+ get_i2o_disk_name (name, i); -+ if (check_device (name)) -+ { -+ (*map)[num_hd + 0x80] = strdup (name); -+ assert ((*map)[num_hd + 0x80]); -+ -+ /* If the device map file is opened, write the map. */ -+ if (fp) -+ fprintf (fp, "(hd%d)\t%s\n", num_hd, name); -+ -+ num_hd++; -+ } -+ } -+ -+#endif /* __linux__ */ -+ -+#ifdef __linux__ -+ /* This is for cciss - we have -+ /dev/cciss/cdp. -+ -+ cciss driver currently supports up to 8 controllers, 16 logical -+ drives, and 7 partitions. */ -+ { -+ int controller, drive; -+ -+ for (controller = 0; controller < 8; controller++) -+ { -+ for (drive = 0; drive < 16; drive++) -+ { -+ char name[24]; -+ -+ get_cciss_disk_name (name, controller, drive); -+ if (check_device (name)) -+ { -+ (*map)[num_hd + 0x80] = strdup (name); -+ assert ((*map)[num_hd + 0x80]); -+ -+ /* If the device map file is opened, write the map. */ -+ if (fp) -+ fprintf (fp, "(hd%d)\t%s\n", num_hd, name); -+ -+ num_hd++; -+ } -+ } -+ } -+ } -+#endif /* __linux__ */ -+ -+#ifdef __linux__ -+ /* This is for cpqarray - we have -+ /dev/ida/cdp. -+ -+ cpqarray driver currently supports up to 8 controllers, 16 logical -+ drives, and 15 partitions. */ -+ { -+ int controller, drive; -+ -+ for (controller = 0; controller < 8; controller++) -+ { -+ for (drive = 0; drive < 15; drive++) -+ { -+ char name[24]; -+ -+ get_cpqarray_disk_name (name, controller, drive); -+ if (check_device (name)) -+ { -+ (*map)[num_hd + 0x80] = strdup (name); -+ assert ((*map)[num_hd + 0x80]); -+ -+ /* If the device map file is opened, write the map. */ -+ if (fp) -+ fprintf (fp, "(hd%d)\t%s\n", num_hd, name); -+ -+ num_hd++; -+ } -+ } -+ } -+ } - #endif /* __linux__ */ - - /* OK, close the device map file if opened. */ -@@ -844,6 +1086,7 @@ write_to_partition (char **map, int drive, int partition, - { - char dev[PATH_MAX]; /* XXX */ - int fd; -+ off_t offset = (off_t) sector * (off_t) SECTOR_SIZE; - - if ((partition & 0x00FF00) != 0x00FF00) - { -@@ -861,44 +1104,35 @@ write_to_partition (char **map, int drive, int partition, - if (strcmp (dev + strlen(dev) - 5, "/disc") == 0) - strcpy (dev + strlen(dev) - 5, "/part"); - } -- sprintf (dev + strlen(dev), "%d", ((partition >> 16) & 0xFF) + 1); -+ -+ sprintf (dev + strlen(dev), "%s%d", -+ /* Compaq smart and others */ -+ (strncmp(dev, "/dev/ida/", 9) == 0 || -+ strncmp(dev, "/dev/ataraid/", 13) == 0 || -+ strncmp(dev, "/dev/mapper/", 12) == 0 || -+ strncmp(dev, "/dev/md", 7) == 0 || -+ strncmp(dev, "/dev/cciss/", 11) == 0 || -+ strncmp(dev, "/dev/rd/", 8) == 0) ? "p" : "", -+ ((partition >> 16) & 0xFF) + 1); - - /* Open the partition. */ - fd = open (dev, O_RDWR); - if (fd < 0) - { -+ /* No partition file, pass thru and not worry about -+ * cache inconsistency. */ -+ if (errno == ENOENT) -+ return -1; - errnum = ERR_NO_PART; - return 0; - } -- --#if defined(__linux__) && (!defined(__GLIBC__) || \ -- ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1)))) -- /* Maybe libc doesn't have large file support. */ -- { -- loff_t offset, result; -- static int _llseek (uint filedes, ulong hi, ulong lo, -- loff_t *res, uint wh); -- _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo, -- loff_t *, res, uint, wh); -- -- offset = (loff_t) sector * (loff_t) SECTOR_SIZE; -- if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET)) -- { -- errnum = ERR_DEV_VALUES; -- return 0; -- } -- } --#else -- { -- off_t offset = (off_t) sector * (off_t) SECTOR_SIZE; - -- if (lseek (fd, offset, SEEK_SET) != offset) -- { -- errnum = ERR_DEV_VALUES; -- return 0; -- } -- } --#endif -+ -+ if (my_lseek(fd, offset, SEEK_SET) != offset) -+ { -+ errnum = ERR_DEV_VALUES; -+ return 0; -+ } - - if (write (fd, buf, size * SECTOR_SIZE) != (size * SECTOR_SIZE)) - { -diff --git a/makediff b/makediff -new file mode 100755 -index 0000000..a82b448 ---- /dev/null -+++ b/makediff -@@ -0,0 +1,21 @@ -+#!/bin/bash -+( -+cat << EOF -+From: Peter Jones " -+Date: $(date) -+Subject: [PATCH] Changes from grub-0.97 to master -+ -+This patch is a bundle of the changes between grub-0.97 and master. -+It can be reginerated from the git repository at: -+ -+git://github.com/vathpela/grub-fedora.git -+ -+Using the command: -+ -+git diff grub-0.97 master -+ -+EOF -+git diff grub-0.97 master | diffstat -p1 -+echo -+git diff grub-0.97 master -+) | cat -diff --git a/netboot/.gitignore b/netboot/.gitignore -new file mode 100644 -index 0000000..5d89f6d ---- /dev/null -+++ b/netboot/.gitignore -@@ -0,0 +1,2 @@ -+Makefile.in -+.deps -diff --git a/netboot/Makefile.in b/netboot/Makefile.in -deleted file mode 100644 -index 75ac299..0000000 ---- a/netboot/Makefile.in -+++ /dev/null -@@ -1,1091 +0,0 @@ --# Makefile.in generated by automake 1.9.4 from Makefile.am. --# @configure_input@ -- --# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, --# 2003, 2004 Free Software Foundation, Inc. --# This Makefile.in is free software; the Free Software Foundation --# gives unlimited permission to copy and/or distribute it, --# with or without modifications, as long as this notice is preserved. -- --# This program is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY, to the extent permitted by law; without --# even the implied warranty of MERCHANTABILITY or FITNESS FOR A --# PARTICULAR PURPOSE. -- --@SET_MAKE@ -- --SOURCES = $(libdrivers_a_SOURCES) $(EXTRA_libdrivers_a_SOURCES) -- --srcdir = @srcdir@ --top_srcdir = @top_srcdir@ --VPATH = @srcdir@ --pkgdatadir = $(datadir)/@PACKAGE@ --pkglibdir = $(libdir)/@PACKAGE@ --pkgincludedir = $(includedir)/@PACKAGE@ --top_builddir = .. --am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd --INSTALL = @INSTALL@ --install_sh_DATA = $(install_sh) -c -m 644 --install_sh_PROGRAM = $(install_sh) -c --install_sh_SCRIPT = $(install_sh) -c --INSTALL_HEADER = $(INSTALL_DATA) --transform = $(program_transform_name) --NORMAL_INSTALL = : --PRE_INSTALL = : --POST_INSTALL = : --NORMAL_UNINSTALL = : --PRE_UNINSTALL = : --POST_UNINSTALL = : --build_triplet = @build@ --host_triplet = @host@ --subdir = netboot --DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in --ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 --am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ -- $(top_srcdir)/configure.ac --am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ -- $(ACLOCAL_M4) --mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs --CONFIG_HEADER = $(top_builddir)/config.h --CONFIG_CLEAN_FILES = --LIBRARIES = $(noinst_LIBRARIES) --AR = ar --ARFLAGS = cru --libdrivers_a_AR = $(AR) $(ARFLAGS) --am_libdrivers_a_OBJECTS = libdrivers_a-config.$(OBJEXT) \ -- libdrivers_a-fsys_tftp.$(OBJEXT) libdrivers_a-main.$(OBJEXT) \ -- libdrivers_a-misc.$(OBJEXT) libdrivers_a-pci.$(OBJEXT) \ -- libdrivers_a-timer.$(OBJEXT) --libdrivers_a_OBJECTS = $(am_libdrivers_a_OBJECTS) --DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) --depcomp = $(SHELL) $(top_srcdir)/depcomp --am__depfiles_maybe = depfiles --COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ -- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) --CCLD = $(CC) --LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ --SOURCES = $(libdrivers_a_SOURCES) $(EXTRA_libdrivers_a_SOURCES) --DIST_SOURCES = $(libdrivers_a_SOURCES) $(EXTRA_libdrivers_a_SOURCES) --ETAGS = etags --CTAGS = ctags --DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) --ACLOCAL = @ACLOCAL@ --AMDEP_FALSE = @AMDEP_FALSE@ --AMDEP_TRUE = @AMDEP_TRUE@ --AMTAR = @AMTAR@ --AUTOCONF = @AUTOCONF@ --AUTOHEADER = @AUTOHEADER@ --AUTOMAKE = @AUTOMAKE@ --AWK = @AWK@ --BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@ --BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@ --CC = @CC@ --CCAS = @CCAS@ --CCASFLAGS = @CCASFLAGS@ --CCDEPMODE = @CCDEPMODE@ --CFLAGS = @CFLAGS@ --CPP = @CPP@ --CPPFLAGS = @CPPFLAGS@ --CYGPATH_W = @CYGPATH_W@ --DEFS = @DEFS@ --DEPDIR = @DEPDIR@ --DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@ --DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@ --ECHO_C = @ECHO_C@ --ECHO_N = @ECHO_N@ --ECHO_T = @ECHO_T@ --EGREP = @EGREP@ --EXEEXT = @EXEEXT@ --FSYS_CFLAGS = @FSYS_CFLAGS@ --GRUB_CFLAGS = @GRUB_CFLAGS@ --GRUB_LIBS = @GRUB_LIBS@ --HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@ --HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@ --INSTALL_DATA = @INSTALL_DATA@ --INSTALL_PROGRAM = @INSTALL_PROGRAM@ --INSTALL_SCRIPT = @INSTALL_SCRIPT@ --INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ --LDFLAGS = @LDFLAGS@ --LIBOBJS = @LIBOBJS@ --LIBS = @LIBS@ --LTLIBOBJS = @LTLIBOBJS@ --MAINT = @MAINT@ --MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ --MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ --MAKEINFO = @MAKEINFO@ --NETBOOT_DRIVERS = @NETBOOT_DRIVERS@ --NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@ --NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@ --NET_CFLAGS = @NET_CFLAGS@ --NET_EXTRAFLAGS = @NET_EXTRAFLAGS@ --OBJCOPY = @OBJCOPY@ --OBJEXT = @OBJEXT@ --PACKAGE = @PACKAGE@ --PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ --PACKAGE_NAME = @PACKAGE_NAME@ --PACKAGE_STRING = @PACKAGE_STRING@ --PACKAGE_TARNAME = @PACKAGE_TARNAME@ --PACKAGE_VERSION = @PACKAGE_VERSION@ --PATH_SEPARATOR = @PATH_SEPARATOR@ --PERL = @PERL@ --RANLIB = @RANLIB@ --SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@ --SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@ --SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@ --SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@ --SET_MAKE = @SET_MAKE@ --SHELL = @SHELL@ --STAGE1_CFLAGS = @STAGE1_CFLAGS@ --STAGE2_CFLAGS = @STAGE2_CFLAGS@ --STRIP = @STRIP@ --VERSION = @VERSION@ --ac_ct_CC = @ac_ct_CC@ --ac_ct_OBJCOPY = @ac_ct_OBJCOPY@ --ac_ct_RANLIB = @ac_ct_RANLIB@ --ac_ct_STRIP = @ac_ct_STRIP@ --am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ --am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ --am__include = @am__include@ --am__leading_dot = @am__leading_dot@ --am__quote = @am__quote@ --am__tar = @am__tar@ --am__untar = @am__untar@ --bindir = @bindir@ --build = @build@ --build_alias = @build_alias@ --build_cpu = @build_cpu@ --build_os = @build_os@ --build_vendor = @build_vendor@ --datadir = @datadir@ --exec_prefix = @exec_prefix@ --host = @host@ --host_alias = @host_alias@ --host_cpu = @host_cpu@ --host_os = @host_os@ --host_vendor = @host_vendor@ --includedir = @includedir@ --infodir = @infodir@ --install_sh = @install_sh@ --libdir = @libdir@ --libexecdir = @libexecdir@ --localstatedir = @localstatedir@ --mandir = @mandir@ --mkdir_p = @mkdir_p@ --oldincludedir = @oldincludedir@ --prefix = @prefix@ --program_transform_name = @program_transform_name@ --sbindir = @sbindir@ --sharedstatedir = @sharedstatedir@ --sysconfdir = @sysconfdir@ --target_alias = @target_alias@ -- --# For and . --INCLUDES = -I$(top_srcdir)/stage2 -I$(top_srcdir)/stage1 --@NETBOOT_SUPPORT_FALSE@LIBDRIVERS = -- --# Don't build the netboot support by default. --@NETBOOT_SUPPORT_TRUE@LIBDRIVERS = libdrivers.a --noinst_LIBRARIES = $(LIBDRIVERS) --libdrivers_a_SOURCES = cards.h config.c etherboot.h \ -- fsys_tftp.c linux-asm-io.h linux-asm-string.h \ -- main.c misc.c nic.h osdep.h pci.c pci.h timer.c timer.h -- --EXTRA_libdrivers_a_SOURCES = 3c509.c 3c509.h 3c595.c 3c595.h 3c90x.c \ -- cs89x0.c cs89x0.h davicom.c depca.c eepro.c eepro100.c \ -- epic100.c epic100.h fa311.c i82586.c lance.c natsemi.c \ -- ni5010.c ns8390.c ns8390.h otulip.c otulip.h rtl8139.c \ -- sis900.c sis900.h sk_g16.c sk_g16.h smc9000.c smc9000.h \ -- tiara.c tlan.c tulip.c via-rhine.c w89c840.c -- --libdrivers_a_CFLAGS = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- -DFSYS_TFTP=1 $(NET_CFLAGS) $(NET_EXTRAFLAGS) -- --# Filled by configure. --libdrivers_a_LIBADD = @NETBOOT_DRIVERS@ --libdrivers_a_DEPENDENCIES = $(libdrivers_a_LIBADD) --EXTRA_DIST = README.netboot 3c90x.txt cs89x0.txt sis900.txt tulip.txt -- --# These below are several special rules for the device drivers. --# We cannot use a simple rule for them... -- --# What objects are derived from a driver? --3c509_drivers = 3c509.o 3c529.o --3c595_drivers = 3c595.o --3c90x_drivers = 3c90x.o --cs89x0_drivers = cs89x0.o --davicom_drivers = davicom.o --depca_drivers = depca.o --eepro_drivers = eepro.o --eepro100_drivers = eepro100.o --epic100_drivers = epic100.o --#fa311_drivers = fa311.o --i82586_drivers = 3c507.o exos205.o ni5210.o --lance_drivers = lance.o ne2100.o ni6510.o --natsemi_drivers = natsemi.o --ni5010_drivers = ni5010.o --ns8390_drivers = 3c503.o ne.o ns8390.o wd.o --otulip_drivers = otulip.o --rtl8139_drivers = rtl8139.o --sis900_drivers = sis900.o --sk_g16_drivers = sk_g16.o --smc9000_drivers = smc9000.o --tiara_drivers = tiara.o --#tlan_drivers = tlan.o --tulip_drivers = tulip.o --via_rhine_drivers = via_rhine.o --w89c840_drivers = w89c840.o -- --# Per-object flags. --3c509_o_CFLAGS = -DINCLUDE_3C509=1 --3c529_o_CFLAGS = -DINCLUDE_3C529=1 --3c595_o_CFLAGS = -DINCLUDE_3C595=1 --3c90x_o_CFLAGS = -DINCLUDE_3C90X=1 --cs89x0_o_CFLAGS = -DINCLUDE_CS89X0=1 --davicom_o_CFLAGS = -DINCLUDE_DAVICOM=1 --depca_o_CFLAGS = -DINCLUDE_DEPCA=1 --eepro_o_CFLAGS = -DINCLUDE_EEPRO=1 --eepro100_o_CFLAGS = -DINCLUDE_EEPRO100=1 --epic100_o_CFLAGS = -DINCLUDE_EPIC100=1 --#fa311_o_CFLAGS = -DINCLUDE_FA311=1 --3c507_o_CFLAGS = -DINCLUDE_3C507=1 --exos205_o_CFLAGS = -DINCLUDE_EXOS205=1 --ni5210_o_CFLAGS = -DINCLUDE_NI5210=1 --lance_o_CFLAGS = -DINCLUDE_LANCE=1 --ne2100_o_CFLAGS = -DINCLUDE_NE2100=1 --ni6510_o_CFLAGS = -DINCLUDE_NI6510=1 --natsemi_o_CFLAGS = -DINCLUDE_NATSEMI=1 --ni5010_o_CFLAGS = -DINCLUDE_NI5010=1 --3c503_o_CFLAGS = -DINCLUDE_3C503=1 --ne_o_CFLAGS = -DINCLUDE_NE=1 --ns8390_o_CFLAGS = -DINCLUDE_NS8390=1 --wd_o_CFLAGS = -DINCLUDE_WD=1 --otulip_o_CFLAGS = -DINCLUDE_OTULIP=1 --rtl8139_o_CFLAGS = -DINCLUDE_RTL8139=1 --sis900_o_CFLAGS = -DINCLUDE_SIS900=1 --sk_g16_o_CFLAGS = -DINCLUDE_SK_G16=1 --smc9000_o_CFLAGS = -DINCLUDE_SMC9000=1 --tiara_o_CFLAGS = -DINCLUDE_TIARA=1 --#tlan_o_CFLAGS = -DINCLUDE_TLAN=1 --tulip_o_CFLAGS = -DINCLUDE_TULIP=1 --via_rhine_o_CFLAGS = -DINCLUDE_VIA_RHINE=1 --w89c840_o_CFLAGS = -DINCLUDE_W89C840=1 --all: all-am -- --.SUFFIXES: --.SUFFIXES: .c .o .obj --$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) -- @for dep in $?; do \ -- case '$(am__configure_deps)' in \ -- *$$dep*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -- && exit 0; \ -- exit 1;; \ -- esac; \ -- done; \ -- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu netboot/Makefile'; \ -- cd $(top_srcdir) && \ -- $(AUTOMAKE) --gnu netboot/Makefile --.PRECIOUS: Makefile --Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -- @case '$?' in \ -- *config.status*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ -- *) \ -- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ -- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ -- esac; -- --$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -- --$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh --$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -- --clean-noinstLIBRARIES: -- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) --libdrivers.a: $(libdrivers_a_OBJECTS) $(libdrivers_a_DEPENDENCIES) -- -rm -f libdrivers.a -- $(libdrivers_a_AR) libdrivers.a $(libdrivers_a_OBJECTS) $(libdrivers_a_LIBADD) -- $(RANLIB) libdrivers.a -- --mostlyclean-compile: -- -rm -f *.$(OBJEXT) -- --distclean-compile: -- -rm -f *.tab.c -- --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-3c509.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-3c595.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-3c90x.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-config.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-cs89x0.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-davicom.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-depca.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-eepro.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-eepro100.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-epic100.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-fa311.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-fsys_tftp.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-i82586.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-lance.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-main.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-misc.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-natsemi.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-ni5010.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-ns8390.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-otulip.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-pci.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-rtl8139.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-sis900.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-sk_g16.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-smc9000.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-tiara.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-timer.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-tlan.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-tulip.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-via-rhine.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-w89c840.Po@am__quote@ -- --.c.o: --@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(COMPILE) -c $< -- --.c.obj: --@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` -- --libdrivers_a-config.o: config.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-config.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-config.Tpo" -c -o libdrivers_a-config.o `test -f 'config.c' || echo '$(srcdir)/'`config.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-config.Tpo" "$(DEPDIR)/libdrivers_a-config.Po"; else rm -f "$(DEPDIR)/libdrivers_a-config.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config.c' object='libdrivers_a-config.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-config.o `test -f 'config.c' || echo '$(srcdir)/'`config.c -- --libdrivers_a-config.obj: config.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-config.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-config.Tpo" -c -o libdrivers_a-config.obj `if test -f 'config.c'; then $(CYGPATH_W) 'config.c'; else $(CYGPATH_W) '$(srcdir)/config.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-config.Tpo" "$(DEPDIR)/libdrivers_a-config.Po"; else rm -f "$(DEPDIR)/libdrivers_a-config.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config.c' object='libdrivers_a-config.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-config.obj `if test -f 'config.c'; then $(CYGPATH_W) 'config.c'; else $(CYGPATH_W) '$(srcdir)/config.c'; fi` -- --libdrivers_a-fsys_tftp.o: fsys_tftp.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-fsys_tftp.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-fsys_tftp.Tpo" -c -o libdrivers_a-fsys_tftp.o `test -f 'fsys_tftp.c' || echo '$(srcdir)/'`fsys_tftp.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-fsys_tftp.Tpo" "$(DEPDIR)/libdrivers_a-fsys_tftp.Po"; else rm -f "$(DEPDIR)/libdrivers_a-fsys_tftp.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_tftp.c' object='libdrivers_a-fsys_tftp.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-fsys_tftp.o `test -f 'fsys_tftp.c' || echo '$(srcdir)/'`fsys_tftp.c -- --libdrivers_a-fsys_tftp.obj: fsys_tftp.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-fsys_tftp.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-fsys_tftp.Tpo" -c -o libdrivers_a-fsys_tftp.obj `if test -f 'fsys_tftp.c'; then $(CYGPATH_W) 'fsys_tftp.c'; else $(CYGPATH_W) '$(srcdir)/fsys_tftp.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-fsys_tftp.Tpo" "$(DEPDIR)/libdrivers_a-fsys_tftp.Po"; else rm -f "$(DEPDIR)/libdrivers_a-fsys_tftp.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_tftp.c' object='libdrivers_a-fsys_tftp.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-fsys_tftp.obj `if test -f 'fsys_tftp.c'; then $(CYGPATH_W) 'fsys_tftp.c'; else $(CYGPATH_W) '$(srcdir)/fsys_tftp.c'; fi` -- --libdrivers_a-main.o: main.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-main.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-main.Tpo" -c -o libdrivers_a-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-main.Tpo" "$(DEPDIR)/libdrivers_a-main.Po"; else rm -f "$(DEPDIR)/libdrivers_a-main.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='libdrivers_a-main.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c -- --libdrivers_a-main.obj: main.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-main.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-main.Tpo" -c -o libdrivers_a-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-main.Tpo" "$(DEPDIR)/libdrivers_a-main.Po"; else rm -f "$(DEPDIR)/libdrivers_a-main.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='libdrivers_a-main.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi` -- --libdrivers_a-misc.o: misc.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-misc.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-misc.Tpo" -c -o libdrivers_a-misc.o `test -f 'misc.c' || echo '$(srcdir)/'`misc.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-misc.Tpo" "$(DEPDIR)/libdrivers_a-misc.Po"; else rm -f "$(DEPDIR)/libdrivers_a-misc.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='misc.c' object='libdrivers_a-misc.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-misc.o `test -f 'misc.c' || echo '$(srcdir)/'`misc.c -- --libdrivers_a-misc.obj: misc.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-misc.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-misc.Tpo" -c -o libdrivers_a-misc.obj `if test -f 'misc.c'; then $(CYGPATH_W) 'misc.c'; else $(CYGPATH_W) '$(srcdir)/misc.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-misc.Tpo" "$(DEPDIR)/libdrivers_a-misc.Po"; else rm -f "$(DEPDIR)/libdrivers_a-misc.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='misc.c' object='libdrivers_a-misc.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-misc.obj `if test -f 'misc.c'; then $(CYGPATH_W) 'misc.c'; else $(CYGPATH_W) '$(srcdir)/misc.c'; fi` -- --libdrivers_a-pci.o: pci.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-pci.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-pci.Tpo" -c -o libdrivers_a-pci.o `test -f 'pci.c' || echo '$(srcdir)/'`pci.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-pci.Tpo" "$(DEPDIR)/libdrivers_a-pci.Po"; else rm -f "$(DEPDIR)/libdrivers_a-pci.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pci.c' object='libdrivers_a-pci.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-pci.o `test -f 'pci.c' || echo '$(srcdir)/'`pci.c -- --libdrivers_a-pci.obj: pci.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-pci.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-pci.Tpo" -c -o libdrivers_a-pci.obj `if test -f 'pci.c'; then $(CYGPATH_W) 'pci.c'; else $(CYGPATH_W) '$(srcdir)/pci.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-pci.Tpo" "$(DEPDIR)/libdrivers_a-pci.Po"; else rm -f "$(DEPDIR)/libdrivers_a-pci.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pci.c' object='libdrivers_a-pci.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-pci.obj `if test -f 'pci.c'; then $(CYGPATH_W) 'pci.c'; else $(CYGPATH_W) '$(srcdir)/pci.c'; fi` -- --libdrivers_a-timer.o: timer.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-timer.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-timer.Tpo" -c -o libdrivers_a-timer.o `test -f 'timer.c' || echo '$(srcdir)/'`timer.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-timer.Tpo" "$(DEPDIR)/libdrivers_a-timer.Po"; else rm -f "$(DEPDIR)/libdrivers_a-timer.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='timer.c' object='libdrivers_a-timer.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-timer.o `test -f 'timer.c' || echo '$(srcdir)/'`timer.c -- --libdrivers_a-timer.obj: timer.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-timer.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-timer.Tpo" -c -o libdrivers_a-timer.obj `if test -f 'timer.c'; then $(CYGPATH_W) 'timer.c'; else $(CYGPATH_W) '$(srcdir)/timer.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-timer.Tpo" "$(DEPDIR)/libdrivers_a-timer.Po"; else rm -f "$(DEPDIR)/libdrivers_a-timer.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='timer.c' object='libdrivers_a-timer.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-timer.obj `if test -f 'timer.c'; then $(CYGPATH_W) 'timer.c'; else $(CYGPATH_W) '$(srcdir)/timer.c'; fi` -- --libdrivers_a-3c509.o: 3c509.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c509.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-3c509.Tpo" -c -o libdrivers_a-3c509.o `test -f '3c509.c' || echo '$(srcdir)/'`3c509.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-3c509.Tpo" "$(DEPDIR)/libdrivers_a-3c509.Po"; else rm -f "$(DEPDIR)/libdrivers_a-3c509.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='3c509.c' object='libdrivers_a-3c509.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-3c509.o `test -f '3c509.c' || echo '$(srcdir)/'`3c509.c -- --libdrivers_a-3c509.obj: 3c509.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c509.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-3c509.Tpo" -c -o libdrivers_a-3c509.obj `if test -f '3c509.c'; then $(CYGPATH_W) '3c509.c'; else $(CYGPATH_W) '$(srcdir)/3c509.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-3c509.Tpo" "$(DEPDIR)/libdrivers_a-3c509.Po"; else rm -f "$(DEPDIR)/libdrivers_a-3c509.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='3c509.c' object='libdrivers_a-3c509.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-3c509.obj `if test -f '3c509.c'; then $(CYGPATH_W) '3c509.c'; else $(CYGPATH_W) '$(srcdir)/3c509.c'; fi` -- --libdrivers_a-3c595.o: 3c595.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c595.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-3c595.Tpo" -c -o libdrivers_a-3c595.o `test -f '3c595.c' || echo '$(srcdir)/'`3c595.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-3c595.Tpo" "$(DEPDIR)/libdrivers_a-3c595.Po"; else rm -f "$(DEPDIR)/libdrivers_a-3c595.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='3c595.c' object='libdrivers_a-3c595.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-3c595.o `test -f '3c595.c' || echo '$(srcdir)/'`3c595.c -- --libdrivers_a-3c595.obj: 3c595.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c595.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-3c595.Tpo" -c -o libdrivers_a-3c595.obj `if test -f '3c595.c'; then $(CYGPATH_W) '3c595.c'; else $(CYGPATH_W) '$(srcdir)/3c595.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-3c595.Tpo" "$(DEPDIR)/libdrivers_a-3c595.Po"; else rm -f "$(DEPDIR)/libdrivers_a-3c595.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='3c595.c' object='libdrivers_a-3c595.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-3c595.obj `if test -f '3c595.c'; then $(CYGPATH_W) '3c595.c'; else $(CYGPATH_W) '$(srcdir)/3c595.c'; fi` -- --libdrivers_a-3c90x.o: 3c90x.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c90x.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-3c90x.Tpo" -c -o libdrivers_a-3c90x.o `test -f '3c90x.c' || echo '$(srcdir)/'`3c90x.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-3c90x.Tpo" "$(DEPDIR)/libdrivers_a-3c90x.Po"; else rm -f "$(DEPDIR)/libdrivers_a-3c90x.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='3c90x.c' object='libdrivers_a-3c90x.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-3c90x.o `test -f '3c90x.c' || echo '$(srcdir)/'`3c90x.c -- --libdrivers_a-3c90x.obj: 3c90x.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c90x.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-3c90x.Tpo" -c -o libdrivers_a-3c90x.obj `if test -f '3c90x.c'; then $(CYGPATH_W) '3c90x.c'; else $(CYGPATH_W) '$(srcdir)/3c90x.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-3c90x.Tpo" "$(DEPDIR)/libdrivers_a-3c90x.Po"; else rm -f "$(DEPDIR)/libdrivers_a-3c90x.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='3c90x.c' object='libdrivers_a-3c90x.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-3c90x.obj `if test -f '3c90x.c'; then $(CYGPATH_W) '3c90x.c'; else $(CYGPATH_W) '$(srcdir)/3c90x.c'; fi` -- --libdrivers_a-cs89x0.o: cs89x0.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-cs89x0.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-cs89x0.Tpo" -c -o libdrivers_a-cs89x0.o `test -f 'cs89x0.c' || echo '$(srcdir)/'`cs89x0.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-cs89x0.Tpo" "$(DEPDIR)/libdrivers_a-cs89x0.Po"; else rm -f "$(DEPDIR)/libdrivers_a-cs89x0.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cs89x0.c' object='libdrivers_a-cs89x0.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-cs89x0.o `test -f 'cs89x0.c' || echo '$(srcdir)/'`cs89x0.c -- --libdrivers_a-cs89x0.obj: cs89x0.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-cs89x0.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-cs89x0.Tpo" -c -o libdrivers_a-cs89x0.obj `if test -f 'cs89x0.c'; then $(CYGPATH_W) 'cs89x0.c'; else $(CYGPATH_W) '$(srcdir)/cs89x0.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-cs89x0.Tpo" "$(DEPDIR)/libdrivers_a-cs89x0.Po"; else rm -f "$(DEPDIR)/libdrivers_a-cs89x0.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cs89x0.c' object='libdrivers_a-cs89x0.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-cs89x0.obj `if test -f 'cs89x0.c'; then $(CYGPATH_W) 'cs89x0.c'; else $(CYGPATH_W) '$(srcdir)/cs89x0.c'; fi` -- --libdrivers_a-davicom.o: davicom.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-davicom.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-davicom.Tpo" -c -o libdrivers_a-davicom.o `test -f 'davicom.c' || echo '$(srcdir)/'`davicom.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-davicom.Tpo" "$(DEPDIR)/libdrivers_a-davicom.Po"; else rm -f "$(DEPDIR)/libdrivers_a-davicom.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='davicom.c' object='libdrivers_a-davicom.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-davicom.o `test -f 'davicom.c' || echo '$(srcdir)/'`davicom.c -- --libdrivers_a-davicom.obj: davicom.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-davicom.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-davicom.Tpo" -c -o libdrivers_a-davicom.obj `if test -f 'davicom.c'; then $(CYGPATH_W) 'davicom.c'; else $(CYGPATH_W) '$(srcdir)/davicom.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-davicom.Tpo" "$(DEPDIR)/libdrivers_a-davicom.Po"; else rm -f "$(DEPDIR)/libdrivers_a-davicom.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='davicom.c' object='libdrivers_a-davicom.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-davicom.obj `if test -f 'davicom.c'; then $(CYGPATH_W) 'davicom.c'; else $(CYGPATH_W) '$(srcdir)/davicom.c'; fi` -- --libdrivers_a-depca.o: depca.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-depca.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-depca.Tpo" -c -o libdrivers_a-depca.o `test -f 'depca.c' || echo '$(srcdir)/'`depca.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-depca.Tpo" "$(DEPDIR)/libdrivers_a-depca.Po"; else rm -f "$(DEPDIR)/libdrivers_a-depca.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='depca.c' object='libdrivers_a-depca.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-depca.o `test -f 'depca.c' || echo '$(srcdir)/'`depca.c -- --libdrivers_a-depca.obj: depca.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-depca.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-depca.Tpo" -c -o libdrivers_a-depca.obj `if test -f 'depca.c'; then $(CYGPATH_W) 'depca.c'; else $(CYGPATH_W) '$(srcdir)/depca.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-depca.Tpo" "$(DEPDIR)/libdrivers_a-depca.Po"; else rm -f "$(DEPDIR)/libdrivers_a-depca.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='depca.c' object='libdrivers_a-depca.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-depca.obj `if test -f 'depca.c'; then $(CYGPATH_W) 'depca.c'; else $(CYGPATH_W) '$(srcdir)/depca.c'; fi` -- --libdrivers_a-eepro.o: eepro.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-eepro.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-eepro.Tpo" -c -o libdrivers_a-eepro.o `test -f 'eepro.c' || echo '$(srcdir)/'`eepro.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-eepro.Tpo" "$(DEPDIR)/libdrivers_a-eepro.Po"; else rm -f "$(DEPDIR)/libdrivers_a-eepro.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eepro.c' object='libdrivers_a-eepro.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-eepro.o `test -f 'eepro.c' || echo '$(srcdir)/'`eepro.c -- --libdrivers_a-eepro.obj: eepro.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-eepro.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-eepro.Tpo" -c -o libdrivers_a-eepro.obj `if test -f 'eepro.c'; then $(CYGPATH_W) 'eepro.c'; else $(CYGPATH_W) '$(srcdir)/eepro.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-eepro.Tpo" "$(DEPDIR)/libdrivers_a-eepro.Po"; else rm -f "$(DEPDIR)/libdrivers_a-eepro.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eepro.c' object='libdrivers_a-eepro.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-eepro.obj `if test -f 'eepro.c'; then $(CYGPATH_W) 'eepro.c'; else $(CYGPATH_W) '$(srcdir)/eepro.c'; fi` -- --libdrivers_a-eepro100.o: eepro100.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-eepro100.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-eepro100.Tpo" -c -o libdrivers_a-eepro100.o `test -f 'eepro100.c' || echo '$(srcdir)/'`eepro100.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-eepro100.Tpo" "$(DEPDIR)/libdrivers_a-eepro100.Po"; else rm -f "$(DEPDIR)/libdrivers_a-eepro100.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eepro100.c' object='libdrivers_a-eepro100.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-eepro100.o `test -f 'eepro100.c' || echo '$(srcdir)/'`eepro100.c -- --libdrivers_a-eepro100.obj: eepro100.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-eepro100.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-eepro100.Tpo" -c -o libdrivers_a-eepro100.obj `if test -f 'eepro100.c'; then $(CYGPATH_W) 'eepro100.c'; else $(CYGPATH_W) '$(srcdir)/eepro100.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-eepro100.Tpo" "$(DEPDIR)/libdrivers_a-eepro100.Po"; else rm -f "$(DEPDIR)/libdrivers_a-eepro100.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eepro100.c' object='libdrivers_a-eepro100.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-eepro100.obj `if test -f 'eepro100.c'; then $(CYGPATH_W) 'eepro100.c'; else $(CYGPATH_W) '$(srcdir)/eepro100.c'; fi` -- --libdrivers_a-epic100.o: epic100.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-epic100.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-epic100.Tpo" -c -o libdrivers_a-epic100.o `test -f 'epic100.c' || echo '$(srcdir)/'`epic100.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-epic100.Tpo" "$(DEPDIR)/libdrivers_a-epic100.Po"; else rm -f "$(DEPDIR)/libdrivers_a-epic100.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epic100.c' object='libdrivers_a-epic100.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-epic100.o `test -f 'epic100.c' || echo '$(srcdir)/'`epic100.c -- --libdrivers_a-epic100.obj: epic100.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-epic100.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-epic100.Tpo" -c -o libdrivers_a-epic100.obj `if test -f 'epic100.c'; then $(CYGPATH_W) 'epic100.c'; else $(CYGPATH_W) '$(srcdir)/epic100.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-epic100.Tpo" "$(DEPDIR)/libdrivers_a-epic100.Po"; else rm -f "$(DEPDIR)/libdrivers_a-epic100.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epic100.c' object='libdrivers_a-epic100.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-epic100.obj `if test -f 'epic100.c'; then $(CYGPATH_W) 'epic100.c'; else $(CYGPATH_W) '$(srcdir)/epic100.c'; fi` -- --libdrivers_a-fa311.o: fa311.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-fa311.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-fa311.Tpo" -c -o libdrivers_a-fa311.o `test -f 'fa311.c' || echo '$(srcdir)/'`fa311.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-fa311.Tpo" "$(DEPDIR)/libdrivers_a-fa311.Po"; else rm -f "$(DEPDIR)/libdrivers_a-fa311.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fa311.c' object='libdrivers_a-fa311.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-fa311.o `test -f 'fa311.c' || echo '$(srcdir)/'`fa311.c -- --libdrivers_a-fa311.obj: fa311.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-fa311.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-fa311.Tpo" -c -o libdrivers_a-fa311.obj `if test -f 'fa311.c'; then $(CYGPATH_W) 'fa311.c'; else $(CYGPATH_W) '$(srcdir)/fa311.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-fa311.Tpo" "$(DEPDIR)/libdrivers_a-fa311.Po"; else rm -f "$(DEPDIR)/libdrivers_a-fa311.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fa311.c' object='libdrivers_a-fa311.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-fa311.obj `if test -f 'fa311.c'; then $(CYGPATH_W) 'fa311.c'; else $(CYGPATH_W) '$(srcdir)/fa311.c'; fi` -- --libdrivers_a-i82586.o: i82586.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-i82586.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-i82586.Tpo" -c -o libdrivers_a-i82586.o `test -f 'i82586.c' || echo '$(srcdir)/'`i82586.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-i82586.Tpo" "$(DEPDIR)/libdrivers_a-i82586.Po"; else rm -f "$(DEPDIR)/libdrivers_a-i82586.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='i82586.c' object='libdrivers_a-i82586.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-i82586.o `test -f 'i82586.c' || echo '$(srcdir)/'`i82586.c -- --libdrivers_a-i82586.obj: i82586.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-i82586.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-i82586.Tpo" -c -o libdrivers_a-i82586.obj `if test -f 'i82586.c'; then $(CYGPATH_W) 'i82586.c'; else $(CYGPATH_W) '$(srcdir)/i82586.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-i82586.Tpo" "$(DEPDIR)/libdrivers_a-i82586.Po"; else rm -f "$(DEPDIR)/libdrivers_a-i82586.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='i82586.c' object='libdrivers_a-i82586.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-i82586.obj `if test -f 'i82586.c'; then $(CYGPATH_W) 'i82586.c'; else $(CYGPATH_W) '$(srcdir)/i82586.c'; fi` -- --libdrivers_a-lance.o: lance.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-lance.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-lance.Tpo" -c -o libdrivers_a-lance.o `test -f 'lance.c' || echo '$(srcdir)/'`lance.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-lance.Tpo" "$(DEPDIR)/libdrivers_a-lance.Po"; else rm -f "$(DEPDIR)/libdrivers_a-lance.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lance.c' object='libdrivers_a-lance.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-lance.o `test -f 'lance.c' || echo '$(srcdir)/'`lance.c -- --libdrivers_a-lance.obj: lance.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-lance.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-lance.Tpo" -c -o libdrivers_a-lance.obj `if test -f 'lance.c'; then $(CYGPATH_W) 'lance.c'; else $(CYGPATH_W) '$(srcdir)/lance.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-lance.Tpo" "$(DEPDIR)/libdrivers_a-lance.Po"; else rm -f "$(DEPDIR)/libdrivers_a-lance.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lance.c' object='libdrivers_a-lance.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-lance.obj `if test -f 'lance.c'; then $(CYGPATH_W) 'lance.c'; else $(CYGPATH_W) '$(srcdir)/lance.c'; fi` -- --libdrivers_a-natsemi.o: natsemi.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-natsemi.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-natsemi.Tpo" -c -o libdrivers_a-natsemi.o `test -f 'natsemi.c' || echo '$(srcdir)/'`natsemi.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-natsemi.Tpo" "$(DEPDIR)/libdrivers_a-natsemi.Po"; else rm -f "$(DEPDIR)/libdrivers_a-natsemi.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='natsemi.c' object='libdrivers_a-natsemi.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-natsemi.o `test -f 'natsemi.c' || echo '$(srcdir)/'`natsemi.c -- --libdrivers_a-natsemi.obj: natsemi.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-natsemi.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-natsemi.Tpo" -c -o libdrivers_a-natsemi.obj `if test -f 'natsemi.c'; then $(CYGPATH_W) 'natsemi.c'; else $(CYGPATH_W) '$(srcdir)/natsemi.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-natsemi.Tpo" "$(DEPDIR)/libdrivers_a-natsemi.Po"; else rm -f "$(DEPDIR)/libdrivers_a-natsemi.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='natsemi.c' object='libdrivers_a-natsemi.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-natsemi.obj `if test -f 'natsemi.c'; then $(CYGPATH_W) 'natsemi.c'; else $(CYGPATH_W) '$(srcdir)/natsemi.c'; fi` -- --libdrivers_a-ni5010.o: ni5010.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-ni5010.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-ni5010.Tpo" -c -o libdrivers_a-ni5010.o `test -f 'ni5010.c' || echo '$(srcdir)/'`ni5010.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-ni5010.Tpo" "$(DEPDIR)/libdrivers_a-ni5010.Po"; else rm -f "$(DEPDIR)/libdrivers_a-ni5010.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ni5010.c' object='libdrivers_a-ni5010.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-ni5010.o `test -f 'ni5010.c' || echo '$(srcdir)/'`ni5010.c -- --libdrivers_a-ni5010.obj: ni5010.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-ni5010.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-ni5010.Tpo" -c -o libdrivers_a-ni5010.obj `if test -f 'ni5010.c'; then $(CYGPATH_W) 'ni5010.c'; else $(CYGPATH_W) '$(srcdir)/ni5010.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-ni5010.Tpo" "$(DEPDIR)/libdrivers_a-ni5010.Po"; else rm -f "$(DEPDIR)/libdrivers_a-ni5010.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ni5010.c' object='libdrivers_a-ni5010.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-ni5010.obj `if test -f 'ni5010.c'; then $(CYGPATH_W) 'ni5010.c'; else $(CYGPATH_W) '$(srcdir)/ni5010.c'; fi` -- --libdrivers_a-ns8390.o: ns8390.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-ns8390.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-ns8390.Tpo" -c -o libdrivers_a-ns8390.o `test -f 'ns8390.c' || echo '$(srcdir)/'`ns8390.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-ns8390.Tpo" "$(DEPDIR)/libdrivers_a-ns8390.Po"; else rm -f "$(DEPDIR)/libdrivers_a-ns8390.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ns8390.c' object='libdrivers_a-ns8390.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-ns8390.o `test -f 'ns8390.c' || echo '$(srcdir)/'`ns8390.c -- --libdrivers_a-ns8390.obj: ns8390.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-ns8390.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-ns8390.Tpo" -c -o libdrivers_a-ns8390.obj `if test -f 'ns8390.c'; then $(CYGPATH_W) 'ns8390.c'; else $(CYGPATH_W) '$(srcdir)/ns8390.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-ns8390.Tpo" "$(DEPDIR)/libdrivers_a-ns8390.Po"; else rm -f "$(DEPDIR)/libdrivers_a-ns8390.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ns8390.c' object='libdrivers_a-ns8390.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-ns8390.obj `if test -f 'ns8390.c'; then $(CYGPATH_W) 'ns8390.c'; else $(CYGPATH_W) '$(srcdir)/ns8390.c'; fi` -- --libdrivers_a-otulip.o: otulip.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-otulip.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-otulip.Tpo" -c -o libdrivers_a-otulip.o `test -f 'otulip.c' || echo '$(srcdir)/'`otulip.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-otulip.Tpo" "$(DEPDIR)/libdrivers_a-otulip.Po"; else rm -f "$(DEPDIR)/libdrivers_a-otulip.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='otulip.c' object='libdrivers_a-otulip.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-otulip.o `test -f 'otulip.c' || echo '$(srcdir)/'`otulip.c -- --libdrivers_a-otulip.obj: otulip.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-otulip.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-otulip.Tpo" -c -o libdrivers_a-otulip.obj `if test -f 'otulip.c'; then $(CYGPATH_W) 'otulip.c'; else $(CYGPATH_W) '$(srcdir)/otulip.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-otulip.Tpo" "$(DEPDIR)/libdrivers_a-otulip.Po"; else rm -f "$(DEPDIR)/libdrivers_a-otulip.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='otulip.c' object='libdrivers_a-otulip.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-otulip.obj `if test -f 'otulip.c'; then $(CYGPATH_W) 'otulip.c'; else $(CYGPATH_W) '$(srcdir)/otulip.c'; fi` -- --libdrivers_a-rtl8139.o: rtl8139.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-rtl8139.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-rtl8139.Tpo" -c -o libdrivers_a-rtl8139.o `test -f 'rtl8139.c' || echo '$(srcdir)/'`rtl8139.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-rtl8139.Tpo" "$(DEPDIR)/libdrivers_a-rtl8139.Po"; else rm -f "$(DEPDIR)/libdrivers_a-rtl8139.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rtl8139.c' object='libdrivers_a-rtl8139.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-rtl8139.o `test -f 'rtl8139.c' || echo '$(srcdir)/'`rtl8139.c -- --libdrivers_a-rtl8139.obj: rtl8139.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-rtl8139.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-rtl8139.Tpo" -c -o libdrivers_a-rtl8139.obj `if test -f 'rtl8139.c'; then $(CYGPATH_W) 'rtl8139.c'; else $(CYGPATH_W) '$(srcdir)/rtl8139.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-rtl8139.Tpo" "$(DEPDIR)/libdrivers_a-rtl8139.Po"; else rm -f "$(DEPDIR)/libdrivers_a-rtl8139.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rtl8139.c' object='libdrivers_a-rtl8139.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-rtl8139.obj `if test -f 'rtl8139.c'; then $(CYGPATH_W) 'rtl8139.c'; else $(CYGPATH_W) '$(srcdir)/rtl8139.c'; fi` -- --libdrivers_a-sis900.o: sis900.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-sis900.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-sis900.Tpo" -c -o libdrivers_a-sis900.o `test -f 'sis900.c' || echo '$(srcdir)/'`sis900.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-sis900.Tpo" "$(DEPDIR)/libdrivers_a-sis900.Po"; else rm -f "$(DEPDIR)/libdrivers_a-sis900.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sis900.c' object='libdrivers_a-sis900.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-sis900.o `test -f 'sis900.c' || echo '$(srcdir)/'`sis900.c -- --libdrivers_a-sis900.obj: sis900.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-sis900.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-sis900.Tpo" -c -o libdrivers_a-sis900.obj `if test -f 'sis900.c'; then $(CYGPATH_W) 'sis900.c'; else $(CYGPATH_W) '$(srcdir)/sis900.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-sis900.Tpo" "$(DEPDIR)/libdrivers_a-sis900.Po"; else rm -f "$(DEPDIR)/libdrivers_a-sis900.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sis900.c' object='libdrivers_a-sis900.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-sis900.obj `if test -f 'sis900.c'; then $(CYGPATH_W) 'sis900.c'; else $(CYGPATH_W) '$(srcdir)/sis900.c'; fi` -- --libdrivers_a-sk_g16.o: sk_g16.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-sk_g16.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-sk_g16.Tpo" -c -o libdrivers_a-sk_g16.o `test -f 'sk_g16.c' || echo '$(srcdir)/'`sk_g16.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-sk_g16.Tpo" "$(DEPDIR)/libdrivers_a-sk_g16.Po"; else rm -f "$(DEPDIR)/libdrivers_a-sk_g16.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sk_g16.c' object='libdrivers_a-sk_g16.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-sk_g16.o `test -f 'sk_g16.c' || echo '$(srcdir)/'`sk_g16.c -- --libdrivers_a-sk_g16.obj: sk_g16.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-sk_g16.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-sk_g16.Tpo" -c -o libdrivers_a-sk_g16.obj `if test -f 'sk_g16.c'; then $(CYGPATH_W) 'sk_g16.c'; else $(CYGPATH_W) '$(srcdir)/sk_g16.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-sk_g16.Tpo" "$(DEPDIR)/libdrivers_a-sk_g16.Po"; else rm -f "$(DEPDIR)/libdrivers_a-sk_g16.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sk_g16.c' object='libdrivers_a-sk_g16.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-sk_g16.obj `if test -f 'sk_g16.c'; then $(CYGPATH_W) 'sk_g16.c'; else $(CYGPATH_W) '$(srcdir)/sk_g16.c'; fi` -- --libdrivers_a-smc9000.o: smc9000.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-smc9000.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-smc9000.Tpo" -c -o libdrivers_a-smc9000.o `test -f 'smc9000.c' || echo '$(srcdir)/'`smc9000.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-smc9000.Tpo" "$(DEPDIR)/libdrivers_a-smc9000.Po"; else rm -f "$(DEPDIR)/libdrivers_a-smc9000.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='smc9000.c' object='libdrivers_a-smc9000.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-smc9000.o `test -f 'smc9000.c' || echo '$(srcdir)/'`smc9000.c -- --libdrivers_a-smc9000.obj: smc9000.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-smc9000.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-smc9000.Tpo" -c -o libdrivers_a-smc9000.obj `if test -f 'smc9000.c'; then $(CYGPATH_W) 'smc9000.c'; else $(CYGPATH_W) '$(srcdir)/smc9000.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-smc9000.Tpo" "$(DEPDIR)/libdrivers_a-smc9000.Po"; else rm -f "$(DEPDIR)/libdrivers_a-smc9000.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='smc9000.c' object='libdrivers_a-smc9000.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-smc9000.obj `if test -f 'smc9000.c'; then $(CYGPATH_W) 'smc9000.c'; else $(CYGPATH_W) '$(srcdir)/smc9000.c'; fi` -- --libdrivers_a-tiara.o: tiara.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tiara.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-tiara.Tpo" -c -o libdrivers_a-tiara.o `test -f 'tiara.c' || echo '$(srcdir)/'`tiara.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-tiara.Tpo" "$(DEPDIR)/libdrivers_a-tiara.Po"; else rm -f "$(DEPDIR)/libdrivers_a-tiara.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tiara.c' object='libdrivers_a-tiara.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-tiara.o `test -f 'tiara.c' || echo '$(srcdir)/'`tiara.c -- --libdrivers_a-tiara.obj: tiara.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tiara.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-tiara.Tpo" -c -o libdrivers_a-tiara.obj `if test -f 'tiara.c'; then $(CYGPATH_W) 'tiara.c'; else $(CYGPATH_W) '$(srcdir)/tiara.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-tiara.Tpo" "$(DEPDIR)/libdrivers_a-tiara.Po"; else rm -f "$(DEPDIR)/libdrivers_a-tiara.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tiara.c' object='libdrivers_a-tiara.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-tiara.obj `if test -f 'tiara.c'; then $(CYGPATH_W) 'tiara.c'; else $(CYGPATH_W) '$(srcdir)/tiara.c'; fi` -- --libdrivers_a-tlan.o: tlan.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tlan.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-tlan.Tpo" -c -o libdrivers_a-tlan.o `test -f 'tlan.c' || echo '$(srcdir)/'`tlan.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-tlan.Tpo" "$(DEPDIR)/libdrivers_a-tlan.Po"; else rm -f "$(DEPDIR)/libdrivers_a-tlan.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tlan.c' object='libdrivers_a-tlan.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-tlan.o `test -f 'tlan.c' || echo '$(srcdir)/'`tlan.c -- --libdrivers_a-tlan.obj: tlan.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tlan.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-tlan.Tpo" -c -o libdrivers_a-tlan.obj `if test -f 'tlan.c'; then $(CYGPATH_W) 'tlan.c'; else $(CYGPATH_W) '$(srcdir)/tlan.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-tlan.Tpo" "$(DEPDIR)/libdrivers_a-tlan.Po"; else rm -f "$(DEPDIR)/libdrivers_a-tlan.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tlan.c' object='libdrivers_a-tlan.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-tlan.obj `if test -f 'tlan.c'; then $(CYGPATH_W) 'tlan.c'; else $(CYGPATH_W) '$(srcdir)/tlan.c'; fi` -- --libdrivers_a-tulip.o: tulip.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tulip.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-tulip.Tpo" -c -o libdrivers_a-tulip.o `test -f 'tulip.c' || echo '$(srcdir)/'`tulip.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-tulip.Tpo" "$(DEPDIR)/libdrivers_a-tulip.Po"; else rm -f "$(DEPDIR)/libdrivers_a-tulip.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tulip.c' object='libdrivers_a-tulip.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-tulip.o `test -f 'tulip.c' || echo '$(srcdir)/'`tulip.c -- --libdrivers_a-tulip.obj: tulip.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tulip.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-tulip.Tpo" -c -o libdrivers_a-tulip.obj `if test -f 'tulip.c'; then $(CYGPATH_W) 'tulip.c'; else $(CYGPATH_W) '$(srcdir)/tulip.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-tulip.Tpo" "$(DEPDIR)/libdrivers_a-tulip.Po"; else rm -f "$(DEPDIR)/libdrivers_a-tulip.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tulip.c' object='libdrivers_a-tulip.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-tulip.obj `if test -f 'tulip.c'; then $(CYGPATH_W) 'tulip.c'; else $(CYGPATH_W) '$(srcdir)/tulip.c'; fi` -- --libdrivers_a-via-rhine.o: via-rhine.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-via-rhine.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-via-rhine.Tpo" -c -o libdrivers_a-via-rhine.o `test -f 'via-rhine.c' || echo '$(srcdir)/'`via-rhine.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-via-rhine.Tpo" "$(DEPDIR)/libdrivers_a-via-rhine.Po"; else rm -f "$(DEPDIR)/libdrivers_a-via-rhine.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='via-rhine.c' object='libdrivers_a-via-rhine.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-via-rhine.o `test -f 'via-rhine.c' || echo '$(srcdir)/'`via-rhine.c -- --libdrivers_a-via-rhine.obj: via-rhine.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-via-rhine.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-via-rhine.Tpo" -c -o libdrivers_a-via-rhine.obj `if test -f 'via-rhine.c'; then $(CYGPATH_W) 'via-rhine.c'; else $(CYGPATH_W) '$(srcdir)/via-rhine.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-via-rhine.Tpo" "$(DEPDIR)/libdrivers_a-via-rhine.Po"; else rm -f "$(DEPDIR)/libdrivers_a-via-rhine.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='via-rhine.c' object='libdrivers_a-via-rhine.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-via-rhine.obj `if test -f 'via-rhine.c'; then $(CYGPATH_W) 'via-rhine.c'; else $(CYGPATH_W) '$(srcdir)/via-rhine.c'; fi` -- --libdrivers_a-w89c840.o: w89c840.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-w89c840.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-w89c840.Tpo" -c -o libdrivers_a-w89c840.o `test -f 'w89c840.c' || echo '$(srcdir)/'`w89c840.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-w89c840.Tpo" "$(DEPDIR)/libdrivers_a-w89c840.Po"; else rm -f "$(DEPDIR)/libdrivers_a-w89c840.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='w89c840.c' object='libdrivers_a-w89c840.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-w89c840.o `test -f 'w89c840.c' || echo '$(srcdir)/'`w89c840.c -- --libdrivers_a-w89c840.obj: w89c840.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-w89c840.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-w89c840.Tpo" -c -o libdrivers_a-w89c840.obj `if test -f 'w89c840.c'; then $(CYGPATH_W) 'w89c840.c'; else $(CYGPATH_W) '$(srcdir)/w89c840.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libdrivers_a-w89c840.Tpo" "$(DEPDIR)/libdrivers_a-w89c840.Po"; else rm -f "$(DEPDIR)/libdrivers_a-w89c840.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='w89c840.c' object='libdrivers_a-w89c840.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-w89c840.obj `if test -f 'w89c840.c'; then $(CYGPATH_W) 'w89c840.c'; else $(CYGPATH_W) '$(srcdir)/w89c840.c'; fi` --uninstall-info-am: -- --ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- mkid -fID $$unique --tags: TAGS -- --TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -- $(TAGS_FILES) $(LISP) -- tags=; \ -- here=`pwd`; \ -- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -- test -n "$$unique" || unique=$$empty_fix; \ -- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -- $$tags $$unique; \ -- fi --ctags: CTAGS --CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -- $(TAGS_FILES) $(LISP) -- tags=; \ -- here=`pwd`; \ -- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- test -z "$(CTAGS_ARGS)$$tags$$unique" \ -- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -- $$tags $$unique -- --GTAGS: -- here=`$(am__cd) $(top_builddir) && pwd` \ -- && cd $(top_srcdir) \ -- && gtags -i $(GTAGS_ARGS) $$here -- --distclean-tags: -- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -- --distdir: $(DISTFILES) -- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ -- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -- list='$(DISTFILES)'; for file in $$list; do \ -- case $$file in \ -- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ -- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ -- esac; \ -- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ -- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -- if test "$$dir" != "$$file" && test "$$dir" != "."; then \ -- dir="/$$dir"; \ -- $(mkdir_p) "$(distdir)$$dir"; \ -- else \ -- dir=''; \ -- fi; \ -- if test -d $$d/$$file; then \ -- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -- fi; \ -- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -- else \ -- test -f $(distdir)/$$file \ -- || cp -p $$d/$$file $(distdir)/$$file \ -- || exit 1; \ -- fi; \ -- done --check-am: all-am --check: check-am --all-am: Makefile $(LIBRARIES) --installdirs: --install: install-am --install-exec: install-exec-am --install-data: install-data-am --uninstall: uninstall-am -- --install-am: all-am -- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -- --installcheck: installcheck-am --install-strip: -- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ -- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ -- `test -z '$(STRIP)' || \ -- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install --mostlyclean-generic: -- --clean-generic: -- --distclean-generic: -- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -- --maintainer-clean-generic: -- @echo "This command is intended for maintainers to use" -- @echo "it deletes files that may require special tools to rebuild." --clean: clean-am -- --clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am -- --distclean: distclean-am -- -rm -rf ./$(DEPDIR) -- -rm -f Makefile --distclean-am: clean-am distclean-compile distclean-generic \ -- distclean-tags -- --dvi: dvi-am -- --dvi-am: -- --html: html-am -- --info: info-am -- --info-am: -- --install-data-am: -- --install-exec-am: -- --install-info: install-info-am -- --install-man: -- --installcheck-am: -- --maintainer-clean: maintainer-clean-am -- -rm -rf ./$(DEPDIR) -- -rm -f Makefile --maintainer-clean-am: distclean-am maintainer-clean-generic -- --mostlyclean: mostlyclean-am -- --mostlyclean-am: mostlyclean-compile mostlyclean-generic -- --pdf: pdf-am -- --pdf-am: -- --ps: ps-am -- --ps-am: -- --uninstall-am: uninstall-info-am -- --.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ -- clean-noinstLIBRARIES ctags distclean distclean-compile \ -- distclean-generic distclean-tags distdir dvi dvi-am html \ -- html-am info info-am install install-am install-data \ -- install-data-am install-exec install-exec-am install-info \ -- install-info-am install-man install-strip installcheck \ -- installcheck-am installdirs maintainer-clean \ -- maintainer-clean-generic mostlyclean mostlyclean-compile \ -- mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \ -- uninstall-am uninstall-info-am -- -- --# Is it really necessary to specify dependecies explicitly? --$(3c509_drivers): 3c509.c 3c509.h --$(3c509_drivers): %.o: 3c509.c -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --$(3c595_drivers): 3c595.c 3c595.h --$(3c595_drivers): %.o: 3c595.c -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --$(3c90x_drivers): 3c90x.c --$(3c90x_drivers): %.o: 3c90x.c -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --$(cs89x0_drivers): cs89x0.c cs89x0.h --$(cs89x0_drivers): %.o: cs89x0.c -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --$(davicom_drivers): davicom.c --$(davicom_drivers): %.o: davicom.c -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --$(depca_drivers): depca.c --$(depca_drivers): %.o: depca.c -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --$(eepro_drivers): eepro.c --$(eepro_drivers): %.o: eepro.c -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --$(eepro100_drivers): eepro100.c --$(eepro100_drivers): %.o: eepro100.c -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --$(epic100_drivers): epic100.c epic100.h --$(epic100_drivers): %.o: epic100.c -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --#$(fa311_drivers): fa311.c --#$(fa311_drivers): %.o: fa311.c --# $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ --# $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --$(i82586_drivers): i82586.c --$(i82586_drivers): %.o: i82586.c -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --$(lance_drivers): lance.c --$(lance_drivers): %.o: lance.c -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --$(natsemi_drivers): natsemi.c --$(natsemi_drivers): %.o: natsemi.c -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --$(ni5010_drivers): ni5010.c --$(ni5010_drivers): %.o: ni5010.c -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --$(ns8390_drivers): ns8390.c ns8390.h --$(ns8390_drivers): %.o: ns8390.c -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --$(otulip_drivers): otulip.c otulip.h --$(otulip_drivers): %.o: otulip.c -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --$(rtl8139_drivers): rtl8139.c --$(rtl8139_drivers): %.o: rtl8139.c -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --$(sis900_drivers): sis900.c --$(sis900_drivers): %.o: sis900.c sis900.h -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --$(sk_g16_drivers): sk_g16.c sk_g16.h --$(sk_g16_drivers): %.o: sk_g16.c -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --$(smc9000_drivers): smc9000.c smc9000.h --$(smc9000_drivers): %.o: smc9000.c -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --$(tiara_drivers): tiara.c --$(tiara_drivers): %.o: tiara.c -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --#$(tlan_drivers): tlan.c --#$(tlan_drivers): %.o: tlan.c --# $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ --# $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --$(tulip_drivers): tulip.c --$(tulip_drivers): %.o: tulip.c -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --$(via_rhine_drivers): via-rhine.c --$(via_rhine_drivers): %.o: via-rhine.c -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< -- --$(w89c840_drivers): w89c840.c --$(w89c840_drivers): %.o: w89c840.c -- $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $< --# Tell versions [3.59,3.63) of GNU make to not export all variables. --# Otherwise a system limit (for SysV at least) may be exceeded. --.NOEXPORT: -diff --git a/netboot/etherboot.h b/netboot/etherboot.h -index 74ca16f..9c02b25 100644 ---- a/netboot/etherboot.h -+++ b/netboot/etherboot.h -@@ -246,7 +246,7 @@ Author: Martin Renters - - typedef struct - { -- unsigned long s_addr; -+ unsigned int s_addr; - } - in_addr; - -@@ -302,7 +302,7 @@ struct bootp_t - char bp_htype; - char bp_hlen; - char bp_hops; -- unsigned long bp_xid; -+ unsigned int bp_xid; - unsigned short bp_secs; - unsigned short unused; - in_addr bp_ciaddr; -@@ -411,25 +411,25 @@ struct rpc_t - - struct - { -- long id; -- long type; -- long rpcvers; -- long prog; -- long vers; -- long proc; -- long data[1]; -+ int id; -+ int type; -+ int rpcvers; -+ int prog; -+ int vers; -+ int proc; -+ int data[1]; - } - call; - - struct - { -- long id; -- long type; -- long rstatus; -- long verifier; -- long v2; -- long astatus; -- long data[1]; -+ int id; -+ int type; -+ int rstatus; -+ int verifier; -+ int v2; -+ int astatus; -+ int data[1]; - } - reply; - } -@@ -531,9 +531,7 @@ extern int ip_abort; - extern int network_ready; - extern struct rom_info rom; - extern struct arptable_t arptable[MAX_ARP]; --extern struct bootpd_t bootp_data; - #define BOOTP_DATA_ADDR (&bootp_data) --extern unsigned char *end_of_rfc1533; - - /* config.c */ - extern struct nic nic; -diff --git a/netboot/main.c b/netboot/main.c -index 82759b6..b8ba920 100644 ---- a/netboot/main.c -+++ b/netboot/main.c -@@ -53,9 +53,9 @@ int network_ready = 0; - struct rom_info rom; - - static int vendorext_isvalid; --static unsigned long netmask; -+static unsigned int netmask; - static struct bootpd_t bootp_data; --static unsigned long xid; -+static unsigned int xid; - static unsigned char *end_of_rfc1533 = NULL; - - #ifndef NO_DHCP_SUPPORT -@@ -773,7 +773,7 @@ await_reply (int type, int ival, void *ptr, int timeout) - if (nic.packetlen >= ETH_HLEN + sizeof (struct arprequest) - && ptype == ARP) - { -- unsigned long tmp; -+ unsigned int tmp; - - arpreply = (struct arprequest *) &nic.packet[ETH_HLEN]; - -diff --git a/netboot/misc.c b/netboot/misc.c -index 28614fd..6ea9a8e 100644 ---- a/netboot/misc.c -+++ b/netboot/misc.c -@@ -21,6 +21,7 @@ - - #define GRUB 1 - #include -+#include - - void - sleep (int secs) -@@ -71,9 +72,10 @@ PRINTF and friends - Note: width specification not supported - **************************************************************************/ - static int --etherboot_vsprintf (char *buf, const char *fmt, const int *dp) -+etherboot_vsprintf (char *buf, const char *fmt, va_list args) - { - char *p, *s; -+ int n; - - s = buf; - for ( ; *fmt != '\0'; ++fmt) -@@ -86,7 +88,7 @@ etherboot_vsprintf (char *buf, const char *fmt, const int *dp) - - if (*++fmt == 's') - { -- for (p = (char *) *dp++; *p != '\0'; p++) -+ for (p = va_arg (args, char *); *p != '\0'; p++) - buf ? *s++ = *p : grub_putchar (*p); - } - else -@@ -120,46 +122,44 @@ etherboot_vsprintf (char *buf, const char *fmt, const int *dp) - */ - if ((*fmt | 0x20) == 'x') - { -- /* With x86 gcc, sizeof(long) == sizeof(int) */ -- const long *lp = (const long *) dp; -- long h = *lp++; - int ncase = (*fmt & 0x20); -+ -+ n = va_arg (args, int); - -- dp = (const int *) lp; - if (alt) - { - *q++ = '0'; - *q++ = 'X' | ncase; - } - for (; shift >= 0; shift -= 4) -- *q++ = "0123456789ABCDEF"[(h >> shift) & 0xF] | ncase; -+ *q++ = "0123456789ABCDEF"[(n >> shift) & 0xF] | ncase; - } - else if (*fmt == 'd') - { -- int i = *dp++; - char *r; -- -- if (i < 0) -+ -+ n = va_arg (args, int); -+ if (n < 0) - { - *q++ = '-'; -- i = -i; -+ n = -n; - } - - p = q; /* save beginning of digits */ - do - { -- *q++ = '0' + (i % 10); -- i /= 10; -+ *q++ = '0' + (n % 10); -+ n /= 10; - } -- while (i); -+ while (n); - - /* reverse digits, stop in middle */ - r = q; /* don't alter q */ - while (--r > p) - { -- i = *r; -+ n = *r; - *r = *p; -- *p++ = i; -+ *p++ = n; - } - } - else if (*fmt == '@') -@@ -167,14 +167,12 @@ etherboot_vsprintf (char *buf, const char *fmt, const int *dp) - unsigned char *r; - union - { -- long l; -+ int l; - unsigned char c[4]; - } - u; -- const long *lp = (const long *) dp; - -- u.l = *lp++; -- dp = (const int *) lp; -+ u.l = va_arg (args, int); - - for (r = &u.c[0]; r < &u.c[4]; ++r) - q += etherboot_sprintf (q, "%d.", *r); -@@ -184,15 +182,15 @@ etherboot_vsprintf (char *buf, const char *fmt, const int *dp) - else if (*fmt == '!') - { - char *r; -- p = (char *) *dp++; -- -+ -+ p = va_arg (args, char *); - for (r = p + ETH_ALEN; p < r; ++p) - q += etherboot_sprintf (q, "%hhX:", *p); - - --q; - } - else if (*fmt == 'c') -- *q++ = *dp++; -+ *q++ = va_arg (args, int); - else - *q++ = *fmt; - -@@ -211,13 +209,23 @@ etherboot_vsprintf (char *buf, const char *fmt, const int *dp) - int - etherboot_sprintf (char *buf, const char *fmt, ...) - { -- return etherboot_vsprintf (buf, fmt, ((const int *) &fmt) + 1); -+ va_list ap; -+ int ret; -+ -+ va_start (ap, fmt); -+ ret = etherboot_vsprintf (buf, fmt, ap); -+ va_end (ap); -+ return ret; - } - - void - etherboot_printf (const char *fmt, ...) - { -- (void) etherboot_vsprintf (0, fmt, ((const int *) &fmt) + 1); -+ va_list ap; -+ -+ va_start (ap, fmt); -+ (void) etherboot_vsprintf (0, fmt, ap); -+ va_end (ap); - } - - int -diff --git a/netboot/osdep.h b/netboot/osdep.h -index 57218bf..881141b 100644 ---- a/netboot/osdep.h -+++ b/netboot/osdep.h -@@ -21,10 +21,10 @@ - #elif defined(__LITTLE_ENDIAN) - # if !defined(__constant_htonl) - # define __constant_htonl(x) \ -- ((unsigned long int)((((unsigned long int)(x) & 0x000000ffU) << 24) | \ -- (((unsigned long int)(x) & 0x0000ff00U) << 8) | \ -- (((unsigned long int)(x) & 0x00ff0000U) >> 8) | \ -- (((unsigned long int)(x) & 0xff000000U) >> 24))) -+ ((unsigned int)((((unsigned int)(x) & 0x000000ffU) << 24) | \ -+ (((unsigned int)(x) & 0x0000ff00U) << 8) | \ -+ (((unsigned int)(x) & 0x00ff0000U) >> 8) | \ -+ (((unsigned int)(x) & 0xff000000U) >> 24))) - # endif - # if !defined(__constant_htons) - # define __constant_htons(x) \ -@@ -36,11 +36,11 @@ - #endif - - #define ntohl(x) \ --(__builtin_constant_p(x) ? \ -+(__builtin_constant_p((unsigned int)x) ? \ - __constant_htonl((x)) : \ - __swap32(x)) - #define htonl(x) \ --(__builtin_constant_p(x) ? \ -+(__builtin_constant_p((unsigned int)x) ? \ - __constant_htonl((x)) : \ - __swap32(x)) - #define ntohs(x) \ -@@ -52,21 +52,29 @@ - __constant_htons((x)) : \ - __swap16(x)) - --static inline unsigned long int __swap32(unsigned long int x) -+static inline unsigned int __swap32(unsigned int x) - { -+#ifdef PLATFORM_EFI -+ __asm__("bswapl %0" : "=r" (x) : "0" (x)); -+#else - __asm__("xchgb %b0,%h0\n\t" - "rorl $16,%0\n\t" - "xchgb %b0,%h0" - : "=q" (x) - : "0" (x)); -+#endif - return x; - } - - static inline unsigned short int __swap16(unsigned short int x) - { -+#ifdef PLATFORM_EFI -+ return __constant_htons(x); -+#else - __asm__("xchgb %b0,%h0" - : "=q" (x) - : "0" (x)); -+#endif - return x; - } - -@@ -76,7 +84,7 @@ static inline unsigned short int __swap16(unsigned short int x) - - #include "linux-asm-io.h" - --typedef unsigned long Address; -+typedef unsigned int Address; - - /* ANSI prototyping macro */ - #ifdef __STDC__ -diff --git a/stage1/.gitignore b/stage1/.gitignore -new file mode 100644 -index 0000000..5d89f6d ---- /dev/null -+++ b/stage1/.gitignore -@@ -0,0 +1,2 @@ -+Makefile.in -+.deps -diff --git a/stage1/Makefile.am b/stage1/Makefile.am -index 0afc285..cbae397 100644 ---- a/stage1/Makefile.am -+++ b/stage1/Makefile.am -@@ -1,11 +1,14 @@ --pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) --nodist_pkglib_DATA = stage1 -- --CLEANFILES = $(nodist_pkglib_DATA) -+pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) - - # We can't use builtins or standard includes. - AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc --LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00 -+LDFLAGS = $(LOADER_LDFLAGS) -nostdlib -Wl,-N,-Ttext,7C00 -+ -+if !PLATFORM_EFI -+ -+nodist_pkgdata_DATA = stage1 -+ -+CLEANFILES = $(nodist_pkgdata_DATA) - - noinst_PROGRAMS = stage1.exec - stage1_exec_SOURCES = stage1.S stage1.h -@@ -13,3 +16,5 @@ stage1_exec_SOURCES = stage1.S stage1.h - SUFFIXES = .exec - .exec: - $(OBJCOPY) -O binary $< $@ -+ -+endif -diff --git a/stage1/Makefile.in b/stage1/Makefile.in -deleted file mode 100644 -index 7134bdf..0000000 ---- a/stage1/Makefile.in -+++ /dev/null -@@ -1,433 +0,0 @@ --# Makefile.in generated by automake 1.9.4 from Makefile.am. --# @configure_input@ -- --# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, --# 2003, 2004 Free Software Foundation, Inc. --# This Makefile.in is free software; the Free Software Foundation --# gives unlimited permission to copy and/or distribute it, --# with or without modifications, as long as this notice is preserved. -- --# This program is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY, to the extent permitted by law; without --# even the implied warranty of MERCHANTABILITY or FITNESS FOR A --# PARTICULAR PURPOSE. -- --@SET_MAKE@ -- -- --SOURCES = $(stage1_exec_SOURCES) -- --srcdir = @srcdir@ --top_srcdir = @top_srcdir@ --VPATH = @srcdir@ --pkgdatadir = $(datadir)/@PACKAGE@ --pkgincludedir = $(includedir)/@PACKAGE@ --top_builddir = .. --am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd --INSTALL = @INSTALL@ --install_sh_DATA = $(install_sh) -c -m 644 --install_sh_PROGRAM = $(install_sh) -c --install_sh_SCRIPT = $(install_sh) -c --INSTALL_HEADER = $(INSTALL_DATA) --transform = $(program_transform_name) --NORMAL_INSTALL = : --PRE_INSTALL = : --POST_INSTALL = : --NORMAL_UNINSTALL = : --PRE_UNINSTALL = : --POST_UNINSTALL = : --build_triplet = @build@ --host_triplet = @host@ --noinst_PROGRAMS = stage1.exec$(EXEEXT) --subdir = stage1 --DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in --ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 --am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ -- $(top_srcdir)/configure.ac --am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ -- $(ACLOCAL_M4) --mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs --CONFIG_HEADER = $(top_builddir)/config.h --CONFIG_CLEAN_FILES = --PROGRAMS = $(noinst_PROGRAMS) --am_stage1_exec_OBJECTS = stage1.$(OBJEXT) --stage1_exec_OBJECTS = $(am_stage1_exec_OBJECTS) --stage1_exec_LDADD = $(LDADD) --DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) --CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS) --COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ -- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) --CCLD = $(CC) --LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ --SOURCES = $(stage1_exec_SOURCES) --DIST_SOURCES = $(stage1_exec_SOURCES) --am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; --am__vpath_adj = case $$p in \ -- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ -- *) f=$$p;; \ -- esac; --am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; --am__installdirs = "$(DESTDIR)$(pkglibdir)" --nodist_pkglibDATA_INSTALL = $(INSTALL_DATA) --DATA = $(nodist_pkglib_DATA) --ETAGS = etags --CTAGS = ctags --DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) --pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) --ACLOCAL = @ACLOCAL@ --AMDEP_FALSE = @AMDEP_FALSE@ --AMDEP_TRUE = @AMDEP_TRUE@ --AMTAR = @AMTAR@ --AUTOCONF = @AUTOCONF@ --AUTOHEADER = @AUTOHEADER@ --AUTOMAKE = @AUTOMAKE@ --AWK = @AWK@ --BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@ --BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@ --CC = @CC@ --CCAS = @CCAS@ --CCASFLAGS = @CCASFLAGS@ --CCDEPMODE = @CCDEPMODE@ --CFLAGS = @CFLAGS@ --CPP = @CPP@ --CPPFLAGS = @CPPFLAGS@ --CYGPATH_W = @CYGPATH_W@ --DEFS = @DEFS@ --DEPDIR = @DEPDIR@ --DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@ --DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@ --ECHO_C = @ECHO_C@ --ECHO_N = @ECHO_N@ --ECHO_T = @ECHO_T@ --EGREP = @EGREP@ --EXEEXT = @EXEEXT@ --FSYS_CFLAGS = @FSYS_CFLAGS@ --GRUB_CFLAGS = @GRUB_CFLAGS@ --GRUB_LIBS = @GRUB_LIBS@ --HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@ --HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@ --INSTALL_DATA = @INSTALL_DATA@ --INSTALL_PROGRAM = @INSTALL_PROGRAM@ --INSTALL_SCRIPT = @INSTALL_SCRIPT@ --INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ --LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00 --LIBOBJS = @LIBOBJS@ --LIBS = @LIBS@ --LTLIBOBJS = @LTLIBOBJS@ --MAINT = @MAINT@ --MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ --MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ --MAKEINFO = @MAKEINFO@ --NETBOOT_DRIVERS = @NETBOOT_DRIVERS@ --NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@ --NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@ --NET_CFLAGS = @NET_CFLAGS@ --NET_EXTRAFLAGS = @NET_EXTRAFLAGS@ --OBJCOPY = @OBJCOPY@ --OBJEXT = @OBJEXT@ --PACKAGE = @PACKAGE@ --PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ --PACKAGE_NAME = @PACKAGE_NAME@ --PACKAGE_STRING = @PACKAGE_STRING@ --PACKAGE_TARNAME = @PACKAGE_TARNAME@ --PACKAGE_VERSION = @PACKAGE_VERSION@ --PATH_SEPARATOR = @PATH_SEPARATOR@ --PERL = @PERL@ --RANLIB = @RANLIB@ --SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@ --SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@ --SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@ --SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@ --SET_MAKE = @SET_MAKE@ --SHELL = @SHELL@ --STAGE1_CFLAGS = @STAGE1_CFLAGS@ --STAGE2_CFLAGS = @STAGE2_CFLAGS@ --STRIP = @STRIP@ --VERSION = @VERSION@ --ac_ct_CC = @ac_ct_CC@ --ac_ct_OBJCOPY = @ac_ct_OBJCOPY@ --ac_ct_RANLIB = @ac_ct_RANLIB@ --ac_ct_STRIP = @ac_ct_STRIP@ --am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ --am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ --am__include = @am__include@ --am__leading_dot = @am__leading_dot@ --am__quote = @am__quote@ --am__tar = @am__tar@ --am__untar = @am__untar@ --bindir = @bindir@ --build = @build@ --build_alias = @build_alias@ --build_cpu = @build_cpu@ --build_os = @build_os@ --build_vendor = @build_vendor@ --datadir = @datadir@ --exec_prefix = @exec_prefix@ --host = @host@ --host_alias = @host_alias@ --host_cpu = @host_cpu@ --host_os = @host_os@ --host_vendor = @host_vendor@ --includedir = @includedir@ --infodir = @infodir@ --install_sh = @install_sh@ --libdir = @libdir@ --libexecdir = @libexecdir@ --localstatedir = @localstatedir@ --mandir = @mandir@ --mkdir_p = @mkdir_p@ --oldincludedir = @oldincludedir@ --prefix = @prefix@ --program_transform_name = @program_transform_name@ --sbindir = @sbindir@ --sharedstatedir = @sharedstatedir@ --sysconfdir = @sysconfdir@ --target_alias = @target_alias@ --nodist_pkglib_DATA = stage1 --CLEANFILES = $(nodist_pkglib_DATA) -- --# We can't use builtins or standard includes. --AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc --stage1_exec_SOURCES = stage1.S stage1.h --SUFFIXES = .exec --all: all-am -- --.SUFFIXES: --.SUFFIXES: .exec .S .o .obj --$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) -- @for dep in $?; do \ -- case '$(am__configure_deps)' in \ -- *$$dep*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -- && exit 0; \ -- exit 1;; \ -- esac; \ -- done; \ -- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu stage1/Makefile'; \ -- cd $(top_srcdir) && \ -- $(AUTOMAKE) --gnu stage1/Makefile --.PRECIOUS: Makefile --Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -- @case '$?' in \ -- *config.status*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ -- *) \ -- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ -- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ -- esac; -- --$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -- --$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh --$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -- --clean-noinstPROGRAMS: -- -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) --stage1.exec$(EXEEXT): $(stage1_exec_OBJECTS) $(stage1_exec_DEPENDENCIES) -- @rm -f stage1.exec$(EXEEXT) -- $(LINK) $(stage1_exec_LDFLAGS) $(stage1_exec_OBJECTS) $(stage1_exec_LDADD) $(LIBS) -- --mostlyclean-compile: -- -rm -f *.$(OBJEXT) -- --distclean-compile: -- -rm -f *.tab.c -- --.S.o: -- $(CCASCOMPILE) -c $< -- --.S.obj: -- $(CCASCOMPILE) -c `$(CYGPATH_W) '$<'` --uninstall-info-am: --install-nodist_pkglibDATA: $(nodist_pkglib_DATA) -- @$(NORMAL_INSTALL) -- test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)" -- @list='$(nodist_pkglib_DATA)'; for p in $$list; do \ -- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ -- f=$(am__strip_dir) \ -- echo " $(nodist_pkglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \ -- $(nodist_pkglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \ -- done -- --uninstall-nodist_pkglibDATA: -- @$(NORMAL_UNINSTALL) -- @list='$(nodist_pkglib_DATA)'; for p in $$list; do \ -- f=$(am__strip_dir) \ -- echo " rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \ -- rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \ -- done -- --ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- mkid -fID $$unique --tags: TAGS -- --TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -- $(TAGS_FILES) $(LISP) -- tags=; \ -- here=`pwd`; \ -- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -- test -n "$$unique" || unique=$$empty_fix; \ -- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -- $$tags $$unique; \ -- fi --ctags: CTAGS --CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -- $(TAGS_FILES) $(LISP) -- tags=; \ -- here=`pwd`; \ -- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- test -z "$(CTAGS_ARGS)$$tags$$unique" \ -- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -- $$tags $$unique -- --GTAGS: -- here=`$(am__cd) $(top_builddir) && pwd` \ -- && cd $(top_srcdir) \ -- && gtags -i $(GTAGS_ARGS) $$here -- --distclean-tags: -- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -- --distdir: $(DISTFILES) -- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ -- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -- list='$(DISTFILES)'; for file in $$list; do \ -- case $$file in \ -- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ -- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ -- esac; \ -- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ -- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -- if test "$$dir" != "$$file" && test "$$dir" != "."; then \ -- dir="/$$dir"; \ -- $(mkdir_p) "$(distdir)$$dir"; \ -- else \ -- dir=''; \ -- fi; \ -- if test -d $$d/$$file; then \ -- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -- fi; \ -- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -- else \ -- test -f $(distdir)/$$file \ -- || cp -p $$d/$$file $(distdir)/$$file \ -- || exit 1; \ -- fi; \ -- done --check-am: all-am --check: check-am --all-am: Makefile $(PROGRAMS) $(DATA) --installdirs: -- for dir in "$(DESTDIR)$(pkglibdir)"; do \ -- test -z "$$dir" || $(mkdir_p) "$$dir"; \ -- done --install: install-am --install-exec: install-exec-am --install-data: install-data-am --uninstall: uninstall-am -- --install-am: all-am -- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -- --installcheck: installcheck-am --install-strip: -- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ -- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ -- `test -z '$(STRIP)' || \ -- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install --mostlyclean-generic: -- --clean-generic: -- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) -- --distclean-generic: -- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -- --maintainer-clean-generic: -- @echo "This command is intended for maintainers to use" -- @echo "it deletes files that may require special tools to rebuild." --clean: clean-am -- --clean-am: clean-generic clean-noinstPROGRAMS mostlyclean-am -- --distclean: distclean-am -- -rm -f Makefile --distclean-am: clean-am distclean-compile distclean-generic \ -- distclean-tags -- --dvi: dvi-am -- --dvi-am: -- --html: html-am -- --info: info-am -- --info-am: -- --install-data-am: -- --install-exec-am: install-nodist_pkglibDATA -- --install-info: install-info-am -- --install-man: -- --installcheck-am: -- --maintainer-clean: maintainer-clean-am -- -rm -f Makefile --maintainer-clean-am: distclean-am maintainer-clean-generic -- --mostlyclean: mostlyclean-am -- --mostlyclean-am: mostlyclean-compile mostlyclean-generic -- --pdf: pdf-am -- --pdf-am: -- --ps: ps-am -- --ps-am: -- --uninstall-am: uninstall-info-am uninstall-nodist_pkglibDATA -- --.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ -- clean-noinstPROGRAMS ctags distclean distclean-compile \ -- distclean-generic distclean-tags distdir dvi dvi-am html \ -- html-am info info-am install install-am install-data \ -- install-data-am install-exec install-exec-am install-info \ -- install-info-am install-man install-nodist_pkglibDATA \ -- install-strip installcheck installcheck-am installdirs \ -- maintainer-clean maintainer-clean-generic mostlyclean \ -- mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ -- tags uninstall uninstall-am uninstall-info-am \ -- uninstall-nodist_pkglibDATA -- --.exec: -- $(OBJCOPY) -O binary $< $@ --# Tell versions [3.59,3.63) of GNU make to not export all variables. --# Otherwise a system limit (for SysV at least) may be exceeded. --.NOEXPORT: -diff --git a/stage1/stage1.S b/stage1/stage1.S -index 985963d..3a896be 100644 ---- a/stage1/stage1.S -+++ b/stage1/stage1.S -@@ -31,6 +31,8 @@ - - /* Print message string */ - #define MSG(x) movw $ABS(x), %si; call message -+ /* Print verbose message string */ -+#define VMSG(x) - - /* XXX: binutils-2.9.1.0.x doesn't produce a short opcode for this. */ - #define MOV_MEM_TO_AL(x) .byte 0xa0; .word x -@@ -151,7 +153,7 @@ real_start: - pushw %dx - - /* print a notification message on the screen */ -- MSG(notification_string) -+ VMSG(notification_string) - - /* do not probe LBA if the drive is a floppy */ - testb $STAGE1_BIOS_HD_FLAG, %dl -diff --git a/stage2/.gitignore b/stage2/.gitignore -new file mode 100644 -index 0000000..e0480a0 ---- /dev/null -+++ b/stage2/.gitignore -@@ -0,0 +1,5 @@ -+Makefile.in -+Makefile -+.deps -+*.a -+*.o -diff --git a/stage2/Makefile.am b/stage2/Makefile.am -index f8e6d42..04ff165 100644 ---- a/stage2/Makefile.am -+++ b/stage2/Makefile.am -@@ -7,19 +7,23 @@ noinst_HEADERS = apic.h defs.h dir.h disk_inode.h disk_inode_ffs.h \ - fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \ - imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \ - nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \ -- terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h -+ terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h graphics.h gpt.h - EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS) - - # For . --INCLUDES = -I$(top_srcdir)/stage1 -+INCLUDES = -I$(top_srcdir)/stage1 -I$(top_srcdir)/efi - - # The library for /sbin/grub. -+if PLATFORM_EFI -+noinst_LIBRARIES = libgrub.a libstage2.a -+else - noinst_LIBRARIES = libgrub.a -+endif - 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_iso9660.c \ -- fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \ -- fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \ -- terminfo.c tparm.c -+ fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_uefi.c fsys_ufs2.c \ -+ fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c sha256crypt.c \ -+ sha512crypt.c stage2.c terminfo.c tparm.c graphics.c efistubs.c - libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \ - -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \ - -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \ -@@ -27,12 +31,14 @@ libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \ - -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 - - # Stage 2 and Stage 1.5's. --pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) -+pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) -+ -+if !PLATFORM_EFI - - EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec - - if DISKLESS_SUPPORT --pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ -+pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ - ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \ - reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 \ - nbgrub pxegrub -@@ -43,7 +49,7 @@ noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \ - reiserfs_stage1_5.exec ufs2_stage1_5.exec vstafs_stage1_5.exec \ - xfs_stage1_5.exec nbloader.exec pxeloader.exec diskless.exec - else --pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ -+pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ - ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \ - reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 - noinst_DATA = pre_stage2 start start_eltorito -@@ -55,11 +61,13 @@ noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \ - endif - MOSTLYCLEANFILES = $(noinst_PROGRAMS) - --PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200 --START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000 --NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0 --PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 --START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 -+endif -+ -+PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200 $(LOADER_LDFLAGS) -+START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000 $(LOADER_LDFLAGS) -+NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0 $(LOADER_LDFLAGS) -+PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 $(LOADER_LDFLAGS) -+START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 $(LOADER_LDFLAGS) - - if NETBOOT_SUPPORT - NETBOOT_FLAGS = -I$(top_srcdir)/netboot -DSUPPORT_NETBOOT=1 -@@ -79,10 +87,25 @@ else - HERCULES_FLAGS = - endif - -+if GRAPHICS_SUPPORT -+GRAPHICS_FLAGS = -DSUPPORT_GRAPHICS=1 -+else -+GRAPHICS_FLAGS = -+endif -+ - STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) -+ $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) $(GRAPHICS_FLAGS) -+ -+libstage2_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_iso9660.c \ -+ fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_uefi.c fsys_ufs2.c \ -+ fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c sha256crypt.c \ -+ sha512crypt.c stage2.c terminfo.c tparm.c efistubs.c -+libstage2_a_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) - --STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000 -+if !PLATFORM_EFI -+ -+STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000 $(LOADER_LDFLAGS) - STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1 - - # For stage2 target. -@@ -90,13 +113,15 @@ pre_stage2_exec_SOURCES = asm.S bios.c boot.c builtins.c char_io.c \ - cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \ - fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \ - fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \ -- hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c -+ hercules.c md5.c serial.c smp-imps.c sha256crypt.c sha512crypt.c \ -+ stage2.c terminfo.c tparm.c graphics.c - pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) - pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) - pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK) - -+pre_stage2_exec_LDADD = @LIBGCC@ - if NETBOOT_SUPPORT --pre_stage2_exec_LDADD = ../netboot/libdrivers.a -+pre_stage2_exec_LDADD += ../netboot/libdrivers.a - endif - - if DISKLESS_SUPPORT -@@ -105,7 +130,7 @@ else - BUILT_SOURCES = stage2_size.h - endif - --CLEANFILES = $(pkglib_DATA) $(noinst_DATA) $(BUILT_SOURCES) -+CLEANFILES = $(pkgdata_DATA) $(noinst_DATA) $(BUILT_SOURCES) - - stage2_size.h: pre_stage2 - -rm -f stage2_size.h -@@ -115,6 +140,7 @@ stage2_size.h: pre_stage2 - start_exec_SOURCES = start.S - start_exec_CCASFLAGS = $(STAGE2_COMPILE) - start_exec_LDFLAGS = $(START_LINK) -+start_exec_LDADD = @LIBGCC@ - - # XXX: automake doesn't provide a way to specify dependencies for object - # files explicitly, so we must write this by a general Makefile scheme. -@@ -129,6 +155,7 @@ stage2: pre_stage2 start - start_eltorito_exec_SOURCES = start_eltorito.S - start_eltorito_exec_CCASFLAGS = $(STAGE2_COMPILE) - start_eltorito_exec_LDFLAGS = $(START_ELTORITO_LINK) -+start_eltorito_exec_LDADD = @LIBGCC@ - - start_eltorito_exec-start.$(OBJEXT): stage2_size.h - -@@ -144,6 +171,7 @@ e2fs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \ - e2fs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \ - -DNO_BLOCK_FILES=1 - e2fs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) -+e2fs_stage1_5_exec_LDADD = @LIBGCC@ - - # For fat_stage1_5 target. - fat_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \ -@@ -153,6 +181,7 @@ fat_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \ - fat_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \ - -DNO_BLOCK_FILES=1 - fat_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) -+fat_stage1_5_exec_LDADD = @LIBGCC@ - - # For ffs_stage1_5 target. - ffs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \ -@@ -162,6 +191,7 @@ ffs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \ - ffs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \ - -DNO_BLOCK_FILES=1 - ffs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) -+ffs_stage1_5_exec_LDADD = @LIBGCC@ - - # For ufs2_stage1_5 target. - ufs2_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \ -@@ -171,6 +201,7 @@ ufs2_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS2=1 \ - ufs2_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS2=1 \ - -DNO_BLOCK_FILES=1 - ufs2_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) -+ufs2_stage1_5_exec_LDADD = @LIBGCC@ - - # For minix_stage1_5 target. - minix_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \ -@@ -180,6 +211,7 @@ minix_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \ - minix_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \ - -DNO_BLOCK_FILES=1 - minix_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) -+minix_stage1_5_exec_LDADD = @LIBGCC@ - - # For reiserfs_stage1_5 target. - reiserfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \ -@@ -189,6 +221,7 @@ reiserfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \ - reiserfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \ - -DNO_BLOCK_FILES=1 - reiserfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) -+reiserfs_stage1_5_exec_LDADD = @LIBGCC@ - - # For vstafs_stage1_5 target. - vstafs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \ -@@ -198,6 +231,7 @@ vstafs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \ - vstafs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \ - -DNO_BLOCK_FILES=1 - vstafs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) -+vstafs_stage1_5_exec_LDADD = @LIBGCC@ - - # For jfs_stage1_5 target. - jfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \ -@@ -207,6 +241,7 @@ jfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \ - jfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \ - -DNO_BLOCK_FILES=1 - jfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) -+jfs_stage1_5_exec_LDADD = @LIBGCC@ - - # For xfs_stage1_5 target. - xfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \ -@@ -216,6 +251,7 @@ xfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \ - xfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \ - -DNO_BLOCK_FILES=1 - xfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) -+xfs_stage1_5_exec_LDADD = @LIBGCC@ - - # For iso9660_stage1_5 target. - iso9660_stage1_5_exec_SOURCES = start_eltorito.S asm.S common.c char_io.c \ -@@ -225,6 +261,7 @@ iso9660_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \ - iso9660_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \ - -DNO_BLOCK_FILES=1 - iso9660_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) -+iso9660_stage1_5_exec_LDADD = @LIBGCC@ - - # For diskless target. - diskless_exec_SOURCES = $(pre_stage2_exec_SOURCES) -@@ -233,7 +270,7 @@ diskless_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \ - diskless_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \ - -DSUPPORT_DISKLESS=1 - diskless_exec_LDFLAGS = $(PRE_STAGE2_LINK) --diskless_exec_LDADD = ../netboot/libdrivers.a -+diskless_exec_LDADD = ../netboot/libdrivers.a @LIBGCC@ - - diskless_size.h: diskless - -rm -f $@ -@@ -270,3 +307,5 @@ pxegrub: pxeloader diskless - SUFFIXES = .exec - .exec: - $(OBJCOPY) -O binary $< $@ -+ -+endif -diff --git a/stage2/Makefile.in b/stage2/Makefile.in -deleted file mode 100644 -index d0062bd..0000000 ---- a/stage2/Makefile.in -+++ /dev/null -@@ -1,3250 +0,0 @@ --# Makefile.in generated by automake 1.9.4 from Makefile.am. --# @configure_input@ -- --# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, --# 2003, 2004 Free Software Foundation, Inc. --# This Makefile.in is free software; the Free Software Foundation --# gives unlimited permission to copy and/or distribute it, --# with or without modifications, as long as this notice is preserved. -- --# This program is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY, to the extent permitted by law; without --# even the implied warranty of MERCHANTABILITY or FITNESS FOR A --# PARTICULAR PURPOSE. -- --@SET_MAKE@ -- -- -- -- -- --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) $(ufs2_stage1_5_exec_SOURCES) $(vstafs_stage1_5_exec_SOURCES) $(xfs_stage1_5_exec_SOURCES) -- --srcdir = @srcdir@ --top_srcdir = @top_srcdir@ --VPATH = @srcdir@ --pkgdatadir = $(datadir)/@PACKAGE@ --pkgincludedir = $(includedir)/@PACKAGE@ --top_builddir = .. --am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd --INSTALL = @INSTALL@ --install_sh_DATA = $(install_sh) -c -m 644 --install_sh_PROGRAM = $(install_sh) -c --install_sh_SCRIPT = $(install_sh) -c --INSTALL_HEADER = $(INSTALL_DATA) --transform = $(program_transform_name) --NORMAL_INSTALL = : --PRE_INSTALL = : --POST_INSTALL = : --NORMAL_UNINSTALL = : --PRE_UNINSTALL = : --POST_UNINSTALL = : --build_triplet = @build@ --host_triplet = @host@ --EXTRA_PROGRAMS = nbloader.exec$(EXEEXT) pxeloader.exec$(EXEEXT) \ -- diskless.exec$(EXEEXT) --@DISKLESS_SUPPORT_FALSE@noinst_PROGRAMS = pre_stage2.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_FALSE@ start.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_FALSE@ start_eltorito.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_FALSE@ e2fs_stage1_5.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_FALSE@ fat_stage1_5.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_FALSE@ ffs_stage1_5.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_FALSE@ iso9660_stage1_5.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_FALSE@ jfs_stage1_5.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_FALSE@ minix_stage1_5.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_FALSE@ reiserfs_stage1_5.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_FALSE@ ufs2_stage1_5.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_FALSE@ vstafs_stage1_5.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_FALSE@ xfs_stage1_5.exec$(EXEEXT) --@DISKLESS_SUPPORT_TRUE@noinst_PROGRAMS = pre_stage2.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_TRUE@ start.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_TRUE@ start_eltorito.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_TRUE@ e2fs_stage1_5.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_TRUE@ fat_stage1_5.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_TRUE@ ffs_stage1_5.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_TRUE@ iso9660_stage1_5.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_TRUE@ jfs_stage1_5.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_TRUE@ minix_stage1_5.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_TRUE@ reiserfs_stage1_5.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_TRUE@ ufs2_stage1_5.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_TRUE@ vstafs_stage1_5.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_TRUE@ xfs_stage1_5.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_TRUE@ nbloader.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_TRUE@ pxeloader.exec$(EXEEXT) \ --@DISKLESS_SUPPORT_TRUE@ diskless.exec$(EXEEXT) --subdir = stage2 --DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ -- $(srcdir)/Makefile.in --ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 --am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ -- $(top_srcdir)/configure.ac --am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ -- $(ACLOCAL_M4) --mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs --CONFIG_HEADER = $(top_builddir)/config.h --CONFIG_CLEAN_FILES = --LIBRARIES = $(noinst_LIBRARIES) --AR = ar --ARFLAGS = cru --libgrub_a_AR = $(AR) $(ARFLAGS) --libgrub_a_LIBADD = --am_libgrub_a_OBJECTS = libgrub_a-boot.$(OBJEXT) \ -- libgrub_a-builtins.$(OBJEXT) libgrub_a-char_io.$(OBJEXT) \ -- libgrub_a-cmdline.$(OBJEXT) libgrub_a-common.$(OBJEXT) \ -- libgrub_a-disk_io.$(OBJEXT) libgrub_a-fsys_ext2fs.$(OBJEXT) \ -- libgrub_a-fsys_fat.$(OBJEXT) libgrub_a-fsys_ffs.$(OBJEXT) \ -- libgrub_a-fsys_iso9660.$(OBJEXT) libgrub_a-fsys_jfs.$(OBJEXT) \ -- libgrub_a-fsys_minix.$(OBJEXT) \ -- libgrub_a-fsys_reiserfs.$(OBJEXT) \ -- libgrub_a-fsys_ufs2.$(OBJEXT) libgrub_a-fsys_vstafs.$(OBJEXT) \ -- libgrub_a-fsys_xfs.$(OBJEXT) libgrub_a-gunzip.$(OBJEXT) \ -- libgrub_a-md5.$(OBJEXT) libgrub_a-serial.$(OBJEXT) \ -- libgrub_a-stage2.$(OBJEXT) libgrub_a-terminfo.$(OBJEXT) \ -- libgrub_a-tparm.$(OBJEXT) --libgrub_a_OBJECTS = $(am_libgrub_a_OBJECTS) --PROGRAMS = $(noinst_PROGRAMS) --am__objects_1 = diskless_exec-asm.$(OBJEXT) \ -- diskless_exec-bios.$(OBJEXT) diskless_exec-boot.$(OBJEXT) \ -- diskless_exec-builtins.$(OBJEXT) \ -- diskless_exec-char_io.$(OBJEXT) \ -- diskless_exec-cmdline.$(OBJEXT) diskless_exec-common.$(OBJEXT) \ -- diskless_exec-console.$(OBJEXT) \ -- diskless_exec-disk_io.$(OBJEXT) \ -- diskless_exec-fsys_ext2fs.$(OBJEXT) \ -- diskless_exec-fsys_fat.$(OBJEXT) \ -- diskless_exec-fsys_ffs.$(OBJEXT) \ -- diskless_exec-fsys_iso9660.$(OBJEXT) \ -- diskless_exec-fsys_jfs.$(OBJEXT) \ -- diskless_exec-fsys_minix.$(OBJEXT) \ -- diskless_exec-fsys_reiserfs.$(OBJEXT) \ -- diskless_exec-fsys_ufs2.$(OBJEXT) \ -- diskless_exec-fsys_vstafs.$(OBJEXT) \ -- diskless_exec-fsys_xfs.$(OBJEXT) \ -- diskless_exec-gunzip.$(OBJEXT) \ -- diskless_exec-hercules.$(OBJEXT) diskless_exec-md5.$(OBJEXT) \ -- diskless_exec-serial.$(OBJEXT) \ -- diskless_exec-smp-imps.$(OBJEXT) \ -- diskless_exec-stage2.$(OBJEXT) \ -- diskless_exec-terminfo.$(OBJEXT) diskless_exec-tparm.$(OBJEXT) --am_diskless_exec_OBJECTS = $(am__objects_1) --diskless_exec_OBJECTS = $(am_diskless_exec_OBJECTS) --diskless_exec_DEPENDENCIES = ../netboot/libdrivers.a --am_e2fs_stage1_5_exec_OBJECTS = e2fs_stage1_5_exec-start.$(OBJEXT) \ -- e2fs_stage1_5_exec-asm.$(OBJEXT) \ -- e2fs_stage1_5_exec-common.$(OBJEXT) \ -- e2fs_stage1_5_exec-char_io.$(OBJEXT) \ -- e2fs_stage1_5_exec-disk_io.$(OBJEXT) \ -- e2fs_stage1_5_exec-stage1_5.$(OBJEXT) \ -- e2fs_stage1_5_exec-fsys_ext2fs.$(OBJEXT) \ -- e2fs_stage1_5_exec-bios.$(OBJEXT) --e2fs_stage1_5_exec_OBJECTS = $(am_e2fs_stage1_5_exec_OBJECTS) --e2fs_stage1_5_exec_LDADD = $(LDADD) --am_fat_stage1_5_exec_OBJECTS = fat_stage1_5_exec-start.$(OBJEXT) \ -- fat_stage1_5_exec-asm.$(OBJEXT) \ -- fat_stage1_5_exec-common.$(OBJEXT) \ -- fat_stage1_5_exec-char_io.$(OBJEXT) \ -- fat_stage1_5_exec-disk_io.$(OBJEXT) \ -- fat_stage1_5_exec-stage1_5.$(OBJEXT) \ -- fat_stage1_5_exec-fsys_fat.$(OBJEXT) \ -- fat_stage1_5_exec-bios.$(OBJEXT) --fat_stage1_5_exec_OBJECTS = $(am_fat_stage1_5_exec_OBJECTS) --fat_stage1_5_exec_LDADD = $(LDADD) --am_ffs_stage1_5_exec_OBJECTS = ffs_stage1_5_exec-start.$(OBJEXT) \ -- ffs_stage1_5_exec-asm.$(OBJEXT) \ -- ffs_stage1_5_exec-common.$(OBJEXT) \ -- ffs_stage1_5_exec-char_io.$(OBJEXT) \ -- ffs_stage1_5_exec-disk_io.$(OBJEXT) \ -- ffs_stage1_5_exec-stage1_5.$(OBJEXT) \ -- ffs_stage1_5_exec-fsys_ffs.$(OBJEXT) \ -- ffs_stage1_5_exec-bios.$(OBJEXT) --ffs_stage1_5_exec_OBJECTS = $(am_ffs_stage1_5_exec_OBJECTS) --ffs_stage1_5_exec_LDADD = $(LDADD) --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) --am_jfs_stage1_5_exec_OBJECTS = jfs_stage1_5_exec-start.$(OBJEXT) \ -- jfs_stage1_5_exec-asm.$(OBJEXT) \ -- jfs_stage1_5_exec-common.$(OBJEXT) \ -- jfs_stage1_5_exec-char_io.$(OBJEXT) \ -- jfs_stage1_5_exec-disk_io.$(OBJEXT) \ -- jfs_stage1_5_exec-stage1_5.$(OBJEXT) \ -- jfs_stage1_5_exec-fsys_jfs.$(OBJEXT) \ -- jfs_stage1_5_exec-bios.$(OBJEXT) --jfs_stage1_5_exec_OBJECTS = $(am_jfs_stage1_5_exec_OBJECTS) --jfs_stage1_5_exec_LDADD = $(LDADD) --am_minix_stage1_5_exec_OBJECTS = minix_stage1_5_exec-start.$(OBJEXT) \ -- minix_stage1_5_exec-asm.$(OBJEXT) \ -- minix_stage1_5_exec-common.$(OBJEXT) \ -- minix_stage1_5_exec-char_io.$(OBJEXT) \ -- minix_stage1_5_exec-disk_io.$(OBJEXT) \ -- minix_stage1_5_exec-stage1_5.$(OBJEXT) \ -- minix_stage1_5_exec-fsys_minix.$(OBJEXT) \ -- minix_stage1_5_exec-bios.$(OBJEXT) --minix_stage1_5_exec_OBJECTS = $(am_minix_stage1_5_exec_OBJECTS) --minix_stage1_5_exec_LDADD = $(LDADD) --am_nbloader_exec_OBJECTS = nbloader_exec-nbloader.$(OBJEXT) --nbloader_exec_OBJECTS = $(am_nbloader_exec_OBJECTS) --nbloader_exec_LDADD = $(LDADD) --am_pre_stage2_exec_OBJECTS = pre_stage2_exec-asm.$(OBJEXT) \ -- pre_stage2_exec-bios.$(OBJEXT) pre_stage2_exec-boot.$(OBJEXT) \ -- pre_stage2_exec-builtins.$(OBJEXT) \ -- pre_stage2_exec-char_io.$(OBJEXT) \ -- pre_stage2_exec-cmdline.$(OBJEXT) \ -- pre_stage2_exec-common.$(OBJEXT) \ -- pre_stage2_exec-console.$(OBJEXT) \ -- pre_stage2_exec-disk_io.$(OBJEXT) \ -- pre_stage2_exec-fsys_ext2fs.$(OBJEXT) \ -- pre_stage2_exec-fsys_fat.$(OBJEXT) \ -- pre_stage2_exec-fsys_ffs.$(OBJEXT) \ -- pre_stage2_exec-fsys_iso9660.$(OBJEXT) \ -- pre_stage2_exec-fsys_jfs.$(OBJEXT) \ -- pre_stage2_exec-fsys_minix.$(OBJEXT) \ -- pre_stage2_exec-fsys_reiserfs.$(OBJEXT) \ -- pre_stage2_exec-fsys_ufs2.$(OBJEXT) \ -- pre_stage2_exec-fsys_vstafs.$(OBJEXT) \ -- pre_stage2_exec-fsys_xfs.$(OBJEXT) \ -- pre_stage2_exec-gunzip.$(OBJEXT) \ -- pre_stage2_exec-hercules.$(OBJEXT) \ -- pre_stage2_exec-md5.$(OBJEXT) pre_stage2_exec-serial.$(OBJEXT) \ -- pre_stage2_exec-smp-imps.$(OBJEXT) \ -- pre_stage2_exec-stage2.$(OBJEXT) \ -- pre_stage2_exec-terminfo.$(OBJEXT) \ -- pre_stage2_exec-tparm.$(OBJEXT) --pre_stage2_exec_OBJECTS = $(am_pre_stage2_exec_OBJECTS) --@NETBOOT_SUPPORT_TRUE@pre_stage2_exec_DEPENDENCIES = \ --@NETBOOT_SUPPORT_TRUE@ ../netboot/libdrivers.a --am_pxeloader_exec_OBJECTS = pxeloader_exec-pxeloader.$(OBJEXT) --pxeloader_exec_OBJECTS = $(am_pxeloader_exec_OBJECTS) --pxeloader_exec_LDADD = $(LDADD) --am_reiserfs_stage1_5_exec_OBJECTS = \ -- reiserfs_stage1_5_exec-start.$(OBJEXT) \ -- reiserfs_stage1_5_exec-asm.$(OBJEXT) \ -- reiserfs_stage1_5_exec-common.$(OBJEXT) \ -- reiserfs_stage1_5_exec-char_io.$(OBJEXT) \ -- reiserfs_stage1_5_exec-disk_io.$(OBJEXT) \ -- reiserfs_stage1_5_exec-stage1_5.$(OBJEXT) \ -- reiserfs_stage1_5_exec-fsys_reiserfs.$(OBJEXT) \ -- reiserfs_stage1_5_exec-bios.$(OBJEXT) --reiserfs_stage1_5_exec_OBJECTS = $(am_reiserfs_stage1_5_exec_OBJECTS) --reiserfs_stage1_5_exec_LDADD = $(LDADD) --am_start_exec_OBJECTS = start_exec-start.$(OBJEXT) --start_exec_OBJECTS = $(am_start_exec_OBJECTS) --start_exec_LDADD = $(LDADD) --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) --am_ufs2_stage1_5_exec_OBJECTS = ufs2_stage1_5_exec-start.$(OBJEXT) \ -- ufs2_stage1_5_exec-asm.$(OBJEXT) \ -- ufs2_stage1_5_exec-common.$(OBJEXT) \ -- ufs2_stage1_5_exec-char_io.$(OBJEXT) \ -- ufs2_stage1_5_exec-disk_io.$(OBJEXT) \ -- ufs2_stage1_5_exec-stage1_5.$(OBJEXT) \ -- ufs2_stage1_5_exec-fsys_ufs2.$(OBJEXT) \ -- ufs2_stage1_5_exec-bios.$(OBJEXT) --ufs2_stage1_5_exec_OBJECTS = $(am_ufs2_stage1_5_exec_OBJECTS) --ufs2_stage1_5_exec_LDADD = $(LDADD) --am_vstafs_stage1_5_exec_OBJECTS = \ -- vstafs_stage1_5_exec-start.$(OBJEXT) \ -- vstafs_stage1_5_exec-asm.$(OBJEXT) \ -- vstafs_stage1_5_exec-common.$(OBJEXT) \ -- vstafs_stage1_5_exec-char_io.$(OBJEXT) \ -- vstafs_stage1_5_exec-disk_io.$(OBJEXT) \ -- vstafs_stage1_5_exec-stage1_5.$(OBJEXT) \ -- vstafs_stage1_5_exec-fsys_vstafs.$(OBJEXT) \ -- vstafs_stage1_5_exec-bios.$(OBJEXT) --vstafs_stage1_5_exec_OBJECTS = $(am_vstafs_stage1_5_exec_OBJECTS) --vstafs_stage1_5_exec_LDADD = $(LDADD) --am_xfs_stage1_5_exec_OBJECTS = xfs_stage1_5_exec-start.$(OBJEXT) \ -- xfs_stage1_5_exec-asm.$(OBJEXT) \ -- xfs_stage1_5_exec-common.$(OBJEXT) \ -- xfs_stage1_5_exec-char_io.$(OBJEXT) \ -- xfs_stage1_5_exec-disk_io.$(OBJEXT) \ -- xfs_stage1_5_exec-stage1_5.$(OBJEXT) \ -- xfs_stage1_5_exec-fsys_xfs.$(OBJEXT) \ -- xfs_stage1_5_exec-bios.$(OBJEXT) --xfs_stage1_5_exec_OBJECTS = $(am_xfs_stage1_5_exec_OBJECTS) --xfs_stage1_5_exec_LDADD = $(LDADD) --SCRIPTS = $(noinst_SCRIPTS) --DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) --depcomp = $(SHELL) $(top_srcdir)/depcomp --am__depfiles_maybe = depfiles --CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS) --COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ -- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) --CCLD = $(CC) --LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ --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) \ -- $(ufs2_stage1_5_exec_SOURCES) $(vstafs_stage1_5_exec_SOURCES) \ -- $(xfs_stage1_5_exec_SOURCES) --DIST_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) \ -- $(ufs2_stage1_5_exec_SOURCES) $(vstafs_stage1_5_exec_SOURCES) \ -- $(xfs_stage1_5_exec_SOURCES) --am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; --am__vpath_adj = case $$p in \ -- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ -- *) f=$$p;; \ -- esac; --am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; --am__installdirs = "$(DESTDIR)$(pkglibdir)" --pkglibDATA_INSTALL = $(INSTALL_DATA) --DATA = $(noinst_DATA) $(pkglib_DATA) --HEADERS = $(noinst_HEADERS) --ETAGS = etags --CTAGS = ctags --DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -- --# Stage 2 and Stage 1.5's. --pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor) --ACLOCAL = @ACLOCAL@ --AMDEP_FALSE = @AMDEP_FALSE@ --AMDEP_TRUE = @AMDEP_TRUE@ --AMTAR = @AMTAR@ --AUTOCONF = @AUTOCONF@ --AUTOHEADER = @AUTOHEADER@ --AUTOMAKE = @AUTOMAKE@ --AWK = @AWK@ --BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@ --BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@ --CC = @CC@ --CCAS = @CCAS@ --CCASFLAGS = @CCASFLAGS@ --CCDEPMODE = @CCDEPMODE@ --CFLAGS = @CFLAGS@ --CPP = @CPP@ --CPPFLAGS = @CPPFLAGS@ --CYGPATH_W = @CYGPATH_W@ --DEFS = @DEFS@ --DEPDIR = @DEPDIR@ --DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@ --DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@ --ECHO_C = @ECHO_C@ --ECHO_N = @ECHO_N@ --ECHO_T = @ECHO_T@ --EGREP = @EGREP@ --EXEEXT = @EXEEXT@ --FSYS_CFLAGS = @FSYS_CFLAGS@ --GRUB_CFLAGS = @GRUB_CFLAGS@ --GRUB_LIBS = @GRUB_LIBS@ --HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@ --HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@ --INSTALL_DATA = @INSTALL_DATA@ --INSTALL_PROGRAM = @INSTALL_PROGRAM@ --INSTALL_SCRIPT = @INSTALL_SCRIPT@ --INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ --LDFLAGS = @LDFLAGS@ --LIBOBJS = @LIBOBJS@ --LIBS = @LIBS@ --LTLIBOBJS = @LTLIBOBJS@ --MAINT = @MAINT@ --MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ --MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ --MAKEINFO = @MAKEINFO@ --NETBOOT_DRIVERS = @NETBOOT_DRIVERS@ --NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@ --NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@ --NET_CFLAGS = @NET_CFLAGS@ --NET_EXTRAFLAGS = @NET_EXTRAFLAGS@ --OBJCOPY = @OBJCOPY@ --OBJEXT = @OBJEXT@ --PACKAGE = @PACKAGE@ --PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ --PACKAGE_NAME = @PACKAGE_NAME@ --PACKAGE_STRING = @PACKAGE_STRING@ --PACKAGE_TARNAME = @PACKAGE_TARNAME@ --PACKAGE_VERSION = @PACKAGE_VERSION@ --PATH_SEPARATOR = @PATH_SEPARATOR@ --PERL = @PERL@ --RANLIB = @RANLIB@ --SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@ --SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@ --SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@ --SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@ --SET_MAKE = @SET_MAKE@ --SHELL = @SHELL@ --STAGE1_CFLAGS = @STAGE1_CFLAGS@ --STAGE2_CFLAGS = @STAGE2_CFLAGS@ --STRIP = @STRIP@ --VERSION = @VERSION@ --ac_ct_CC = @ac_ct_CC@ --ac_ct_OBJCOPY = @ac_ct_OBJCOPY@ --ac_ct_RANLIB = @ac_ct_RANLIB@ --ac_ct_STRIP = @ac_ct_STRIP@ --am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ --am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ --am__include = @am__include@ --am__leading_dot = @am__leading_dot@ --am__quote = @am__quote@ --am__tar = @am__tar@ --am__untar = @am__untar@ --bindir = @bindir@ --build = @build@ --build_alias = @build_alias@ --build_cpu = @build_cpu@ --build_os = @build_os@ --build_vendor = @build_vendor@ --datadir = @datadir@ --exec_prefix = @exec_prefix@ --host = @host@ --host_alias = @host_alias@ --host_cpu = @host_cpu@ --host_os = @host_os@ --host_vendor = @host_vendor@ --includedir = @includedir@ --infodir = @infodir@ --install_sh = @install_sh@ --libdir = @libdir@ --libexecdir = @libexecdir@ --localstatedir = @localstatedir@ --mandir = @mandir@ --mkdir_p = @mkdir_p@ --oldincludedir = @oldincludedir@ --prefix = @prefix@ --program_transform_name = @program_transform_name@ --sbindir = @sbindir@ --sharedstatedir = @sharedstatedir@ --sysconfdir = @sysconfdir@ --target_alias = @target_alias@ -- --# For test target. --TESTS = size_test --noinst_SCRIPTS = $(TESTS) -- --# For dist target. --noinst_HEADERS = apic.h defs.h dir.h disk_inode.h disk_inode_ffs.h \ -- fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \ -- imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \ -- nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \ -- terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h -- --EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS) -- --# For . --INCLUDES = -I$(top_srcdir)/stage1 -- --# The library for /sbin/grub. --noinst_LIBRARIES = libgrub.a --libgrub_a_SOURCES = boot.c builtins.c char_io.c cmdline.c common.c \ -- disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \ -- fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \ -- fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \ -- terminfo.c tparm.c -- --libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \ -- -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \ -- -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \ -- -DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 \ -- -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 -- --@DISKLESS_SUPPORT_FALSE@pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ --@DISKLESS_SUPPORT_FALSE@ ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \ --@DISKLESS_SUPPORT_FALSE@ reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 -- --@DISKLESS_SUPPORT_TRUE@pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \ --@DISKLESS_SUPPORT_TRUE@ ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \ --@DISKLESS_SUPPORT_TRUE@ reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 \ --@DISKLESS_SUPPORT_TRUE@ nbgrub pxegrub -- --@DISKLESS_SUPPORT_FALSE@noinst_DATA = pre_stage2 start start_eltorito --@DISKLESS_SUPPORT_TRUE@noinst_DATA = pre_stage2 start start_eltorito nbloader pxeloader diskless --MOSTLYCLEANFILES = $(noinst_PROGRAMS) --PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200 --START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000 --NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0 --PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 --START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 --@NETBOOT_SUPPORT_FALSE@NETBOOT_FLAGS = --@NETBOOT_SUPPORT_TRUE@NETBOOT_FLAGS = -I$(top_srcdir)/netboot -DSUPPORT_NETBOOT=1 --@SERIAL_SUPPORT_FALSE@SERIAL_FLAGS = --@SERIAL_SUPPORT_TRUE@SERIAL_FLAGS = -DSUPPORT_SERIAL=1 --@HERCULES_SUPPORT_FALSE@HERCULES_FLAGS = --@HERCULES_SUPPORT_TRUE@HERCULES_FLAGS = -DSUPPORT_HERCULES=1 --STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \ -- $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) -- --STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000 --STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1 -- --# For stage2 target. --pre_stage2_exec_SOURCES = asm.S bios.c boot.c builtins.c char_io.c \ -- cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \ -- fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \ -- fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \ -- hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c -- --pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) --pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) --pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK) --@NETBOOT_SUPPORT_TRUE@pre_stage2_exec_LDADD = ../netboot/libdrivers.a --@DISKLESS_SUPPORT_FALSE@BUILT_SOURCES = stage2_size.h --@DISKLESS_SUPPORT_TRUE@BUILT_SOURCES = stage2_size.h diskless_size.h --CLEANFILES = $(pkglib_DATA) $(noinst_DATA) $(BUILT_SOURCES) --start_exec_SOURCES = start.S --start_exec_CCASFLAGS = $(STAGE2_COMPILE) --start_exec_LDFLAGS = $(START_LINK) --start_eltorito_exec_SOURCES = start_eltorito.S --start_eltorito_exec_CCASFLAGS = $(STAGE2_COMPILE) --start_eltorito_exec_LDFLAGS = $(START_ELTORITO_LINK) -- --# For e2fs_stage1_5 target. --e2fs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \ -- stage1_5.c fsys_ext2fs.c bios.c -- --e2fs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \ -- -DNO_BLOCK_FILES=1 -- --e2fs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \ -- -DNO_BLOCK_FILES=1 -- --e2fs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) -- --# For fat_stage1_5 target. --fat_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \ -- stage1_5.c fsys_fat.c bios.c -- --fat_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \ -- -DNO_BLOCK_FILES=1 -- --fat_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \ -- -DNO_BLOCK_FILES=1 -- --fat_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) -- --# For ffs_stage1_5 target. --ffs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \ -- stage1_5.c fsys_ffs.c bios.c -- --ffs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \ -- -DNO_BLOCK_FILES=1 -- --ffs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \ -- -DNO_BLOCK_FILES=1 -- --ffs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) -- --# For ufs2_stage1_5 target. --ufs2_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \ -- stage1_5.c fsys_ufs2.c bios.c -- --ufs2_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS2=1 \ -- -DNO_BLOCK_FILES=1 -- --ufs2_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS2=1 \ -- -DNO_BLOCK_FILES=1 -- --ufs2_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) -- --# For minix_stage1_5 target. --minix_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \ -- stage1_5.c fsys_minix.c bios.c -- --minix_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \ -- -DNO_BLOCK_FILES=1 -- --minix_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \ -- -DNO_BLOCK_FILES=1 -- --minix_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) -- --# For reiserfs_stage1_5 target. --reiserfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \ -- disk_io.c stage1_5.c fsys_reiserfs.c bios.c -- --reiserfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \ -- -DNO_BLOCK_FILES=1 -- --reiserfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \ -- -DNO_BLOCK_FILES=1 -- --reiserfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) -- --# For vstafs_stage1_5 target. --vstafs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \ -- disk_io.c stage1_5.c fsys_vstafs.c bios.c -- --vstafs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \ -- -DNO_BLOCK_FILES=1 -- --vstafs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \ -- -DNO_BLOCK_FILES=1 -- --vstafs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) -- --# For jfs_stage1_5 target. --jfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \ -- disk_io.c stage1_5.c fsys_jfs.c bios.c -- --jfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \ -- -DNO_BLOCK_FILES=1 -- --jfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \ -- -DNO_BLOCK_FILES=1 -- --jfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) -- --# For xfs_stage1_5 target. --xfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \ -- disk_io.c stage1_5.c fsys_xfs.c bios.c -- --xfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \ -- -DNO_BLOCK_FILES=1 -- --xfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \ -- -DNO_BLOCK_FILES=1 -- --xfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) -- --# For iso9660_stage1_5 target. --iso9660_stage1_5_exec_SOURCES = start_eltorito.S asm.S common.c char_io.c \ -- disk_io.c stage1_5.c fsys_iso9660.c bios.c -- --iso9660_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \ -- -DNO_BLOCK_FILES=1 -- --iso9660_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \ -- -DNO_BLOCK_FILES=1 -- --iso9660_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK) -- --# For diskless target. --diskless_exec_SOURCES = $(pre_stage2_exec_SOURCES) --diskless_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \ -- -DSUPPORT_DISKLESS=1 -- --diskless_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \ -- -DSUPPORT_DISKLESS=1 -- --diskless_exec_LDFLAGS = $(PRE_STAGE2_LINK) --diskless_exec_LDADD = ../netboot/libdrivers.a -- --# For nbloader target. --nbloader_exec_SOURCES = nbloader.S --nbloader_exec_CCASFLAGS = $(STAGE2_COMPILE) --nbloader_exec_LDFLAGS = $(NBLOADER_LINK) -- --# For pxeloader target. --pxeloader_exec_SOURCES = pxeloader.S --pxeloader_exec_CCASFLAGS = $(STAGE2_COMPILE) --pxeloader_exec_LDFLAGS = $(PXELOADER_LINK) -- --# General rule for making a raw binary. --SUFFIXES = .exec --all: $(BUILT_SOURCES) -- $(MAKE) $(AM_MAKEFLAGS) all-am -- --.SUFFIXES: --.SUFFIXES: .exec .S .c .o .obj --$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) -- @for dep in $?; do \ -- case '$(am__configure_deps)' in \ -- *$$dep*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -- && exit 0; \ -- exit 1;; \ -- esac; \ -- done; \ -- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu stage2/Makefile'; \ -- cd $(top_srcdir) && \ -- $(AUTOMAKE) --gnu stage2/Makefile --.PRECIOUS: Makefile --Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -- @case '$?' in \ -- *config.status*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ -- *) \ -- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ -- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ -- esac; -- --$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -- --$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh --$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -- --clean-noinstLIBRARIES: -- -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) --libgrub.a: $(libgrub_a_OBJECTS) $(libgrub_a_DEPENDENCIES) -- -rm -f libgrub.a -- $(libgrub_a_AR) libgrub.a $(libgrub_a_OBJECTS) $(libgrub_a_LIBADD) -- $(RANLIB) libgrub.a -- --clean-noinstPROGRAMS: -- -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) --diskless.exec$(EXEEXT): $(diskless_exec_OBJECTS) $(diskless_exec_DEPENDENCIES) -- @rm -f diskless.exec$(EXEEXT) -- $(LINK) $(diskless_exec_LDFLAGS) $(diskless_exec_OBJECTS) $(diskless_exec_LDADD) $(LIBS) --e2fs_stage1_5.exec$(EXEEXT): $(e2fs_stage1_5_exec_OBJECTS) $(e2fs_stage1_5_exec_DEPENDENCIES) -- @rm -f e2fs_stage1_5.exec$(EXEEXT) -- $(LINK) $(e2fs_stage1_5_exec_LDFLAGS) $(e2fs_stage1_5_exec_OBJECTS) $(e2fs_stage1_5_exec_LDADD) $(LIBS) --fat_stage1_5.exec$(EXEEXT): $(fat_stage1_5_exec_OBJECTS) $(fat_stage1_5_exec_DEPENDENCIES) -- @rm -f fat_stage1_5.exec$(EXEEXT) -- $(LINK) $(fat_stage1_5_exec_LDFLAGS) $(fat_stage1_5_exec_OBJECTS) $(fat_stage1_5_exec_LDADD) $(LIBS) --ffs_stage1_5.exec$(EXEEXT): $(ffs_stage1_5_exec_OBJECTS) $(ffs_stage1_5_exec_DEPENDENCIES) -- @rm -f ffs_stage1_5.exec$(EXEEXT) -- $(LINK) $(ffs_stage1_5_exec_LDFLAGS) $(ffs_stage1_5_exec_OBJECTS) $(ffs_stage1_5_exec_LDADD) $(LIBS) --iso9660_stage1_5.exec$(EXEEXT): $(iso9660_stage1_5_exec_OBJECTS) $(iso9660_stage1_5_exec_DEPENDENCIES) -- @rm -f iso9660_stage1_5.exec$(EXEEXT) -- $(LINK) $(iso9660_stage1_5_exec_LDFLAGS) $(iso9660_stage1_5_exec_OBJECTS) $(iso9660_stage1_5_exec_LDADD) $(LIBS) --jfs_stage1_5.exec$(EXEEXT): $(jfs_stage1_5_exec_OBJECTS) $(jfs_stage1_5_exec_DEPENDENCIES) -- @rm -f jfs_stage1_5.exec$(EXEEXT) -- $(LINK) $(jfs_stage1_5_exec_LDFLAGS) $(jfs_stage1_5_exec_OBJECTS) $(jfs_stage1_5_exec_LDADD) $(LIBS) --minix_stage1_5.exec$(EXEEXT): $(minix_stage1_5_exec_OBJECTS) $(minix_stage1_5_exec_DEPENDENCIES) -- @rm -f minix_stage1_5.exec$(EXEEXT) -- $(LINK) $(minix_stage1_5_exec_LDFLAGS) $(minix_stage1_5_exec_OBJECTS) $(minix_stage1_5_exec_LDADD) $(LIBS) --nbloader.exec$(EXEEXT): $(nbloader_exec_OBJECTS) $(nbloader_exec_DEPENDENCIES) -- @rm -f nbloader.exec$(EXEEXT) -- $(LINK) $(nbloader_exec_LDFLAGS) $(nbloader_exec_OBJECTS) $(nbloader_exec_LDADD) $(LIBS) --pre_stage2.exec$(EXEEXT): $(pre_stage2_exec_OBJECTS) $(pre_stage2_exec_DEPENDENCIES) -- @rm -f pre_stage2.exec$(EXEEXT) -- $(LINK) $(pre_stage2_exec_LDFLAGS) $(pre_stage2_exec_OBJECTS) $(pre_stage2_exec_LDADD) $(LIBS) --pxeloader.exec$(EXEEXT): $(pxeloader_exec_OBJECTS) $(pxeloader_exec_DEPENDENCIES) -- @rm -f pxeloader.exec$(EXEEXT) -- $(LINK) $(pxeloader_exec_LDFLAGS) $(pxeloader_exec_OBJECTS) $(pxeloader_exec_LDADD) $(LIBS) --reiserfs_stage1_5.exec$(EXEEXT): $(reiserfs_stage1_5_exec_OBJECTS) $(reiserfs_stage1_5_exec_DEPENDENCIES) -- @rm -f reiserfs_stage1_5.exec$(EXEEXT) -- $(LINK) $(reiserfs_stage1_5_exec_LDFLAGS) $(reiserfs_stage1_5_exec_OBJECTS) $(reiserfs_stage1_5_exec_LDADD) $(LIBS) --start.exec$(EXEEXT): $(start_exec_OBJECTS) $(start_exec_DEPENDENCIES) -- @rm -f start.exec$(EXEEXT) -- $(LINK) $(start_exec_LDFLAGS) $(start_exec_OBJECTS) $(start_exec_LDADD) $(LIBS) --start_eltorito.exec$(EXEEXT): $(start_eltorito_exec_OBJECTS) $(start_eltorito_exec_DEPENDENCIES) -- @rm -f start_eltorito.exec$(EXEEXT) -- $(LINK) $(start_eltorito_exec_LDFLAGS) $(start_eltorito_exec_OBJECTS) $(start_eltorito_exec_LDADD) $(LIBS) --ufs2_stage1_5.exec$(EXEEXT): $(ufs2_stage1_5_exec_OBJECTS) $(ufs2_stage1_5_exec_DEPENDENCIES) -- @rm -f ufs2_stage1_5.exec$(EXEEXT) -- $(LINK) $(ufs2_stage1_5_exec_LDFLAGS) $(ufs2_stage1_5_exec_OBJECTS) $(ufs2_stage1_5_exec_LDADD) $(LIBS) --vstafs_stage1_5.exec$(EXEEXT): $(vstafs_stage1_5_exec_OBJECTS) $(vstafs_stage1_5_exec_DEPENDENCIES) -- @rm -f vstafs_stage1_5.exec$(EXEEXT) -- $(LINK) $(vstafs_stage1_5_exec_LDFLAGS) $(vstafs_stage1_5_exec_OBJECTS) $(vstafs_stage1_5_exec_LDADD) $(LIBS) --xfs_stage1_5.exec$(EXEEXT): $(xfs_stage1_5_exec_OBJECTS) $(xfs_stage1_5_exec_DEPENDENCIES) -- @rm -f xfs_stage1_5.exec$(EXEEXT) -- $(LINK) $(xfs_stage1_5_exec_LDFLAGS) $(xfs_stage1_5_exec_OBJECTS) $(xfs_stage1_5_exec_LDADD) $(LIBS) -- --mostlyclean-compile: -- -rm -f *.$(OBJEXT) -- --distclean-compile: -- -rm -f *.tab.c -- --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-bios.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-boot.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-builtins.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-char_io.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-cmdline.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-common.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-console.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-disk_io.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_ffs.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_iso9660.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_jfs.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_minix.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_reiserfs.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_ufs2.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_vstafs.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_xfs.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-gunzip.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-hercules.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-md5.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-serial.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-smp-imps.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-stage2.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-terminfo.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-tparm.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e2fs_stage1_5_exec-bios.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e2fs_stage1_5_exec-char_io.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e2fs_stage1_5_exec-common.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fat_stage1_5_exec-bios.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fat_stage1_5_exec-char_io.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fat_stage1_5_exec-common.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fat_stage1_5_exec-disk_io.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fat_stage1_5_exec-stage1_5.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffs_stage1_5_exec-bios.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffs_stage1_5_exec-char_io.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffs_stage1_5_exec-common.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-stage1_5.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-bios.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-char_io.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-common.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs_stage1_5_exec-bios.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs_stage1_5_exec-char_io.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs_stage1_5_exec-common.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs_stage1_5_exec-disk_io.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-boot.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-builtins.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-char_io.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-cmdline.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-common.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-disk_io.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_ffs.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_iso9660.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_jfs.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_minix.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_reiserfs.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_ufs2.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_vstafs.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_xfs.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-gunzip.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-md5.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-serial.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-stage2.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-terminfo.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-tparm.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minix_stage1_5_exec-bios.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minix_stage1_5_exec-char_io.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minix_stage1_5_exec-common.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minix_stage1_5_exec-disk_io.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minix_stage1_5_exec-stage1_5.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-bios.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-boot.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-builtins.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-char_io.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-cmdline.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-common.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-console.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-disk_io.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_ffs.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_jfs.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_minix.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_xfs.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-gunzip.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-hercules.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-md5.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-serial.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-smp-imps.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-stage2.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-terminfo.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-tparm.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reiserfs_stage1_5_exec-bios.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reiserfs_stage1_5_exec-common.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ufs2_stage1_5_exec-bios.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ufs2_stage1_5_exec-char_io.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ufs2_stage1_5_exec-common.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vstafs_stage1_5_exec-bios.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vstafs_stage1_5_exec-char_io.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vstafs_stage1_5_exec-common.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xfs_stage1_5_exec-bios.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xfs_stage1_5_exec-char_io.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xfs_stage1_5_exec-common.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xfs_stage1_5_exec-disk_io.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Po@am__quote@ -- --.S.o: -- $(CCASCOMPILE) -c $< -- --.S.obj: -- $(CCASCOMPILE) -c `$(CYGPATH_W) '$<'` -- --diskless_exec-asm.o: asm.S -- $(CCAS) $(diskless_exec_CCASFLAGS) $(CCASFLAGS) -c -o diskless_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S -- --diskless_exec-asm.obj: asm.S -- $(CCAS) $(diskless_exec_CCASFLAGS) $(CCASFLAGS) -c -o diskless_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi` -- --e2fs_stage1_5_exec-start.o: start.S -- $(CCAS) $(e2fs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o e2fs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S -- --e2fs_stage1_5_exec-start.obj: start.S -- $(CCAS) $(e2fs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o e2fs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi` -- --e2fs_stage1_5_exec-asm.o: asm.S -- $(CCAS) $(e2fs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o e2fs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S -- --e2fs_stage1_5_exec-asm.obj: asm.S -- $(CCAS) $(e2fs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o e2fs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi` -- --fat_stage1_5_exec-start.o: start.S -- $(CCAS) $(fat_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o fat_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S -- --fat_stage1_5_exec-start.obj: start.S -- $(CCAS) $(fat_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o fat_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi` -- --fat_stage1_5_exec-asm.o: asm.S -- $(CCAS) $(fat_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o fat_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S -- --fat_stage1_5_exec-asm.obj: asm.S -- $(CCAS) $(fat_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o fat_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi` -- --ffs_stage1_5_exec-start.o: start.S -- $(CCAS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ffs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S -- --ffs_stage1_5_exec-start.obj: start.S -- $(CCAS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ffs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi` -- --ffs_stage1_5_exec-asm.o: asm.S -- $(CCAS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ffs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S -- --ffs_stage1_5_exec-asm.obj: asm.S -- $(CCAS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ffs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi` -- --iso9660_stage1_5_exec-start_eltorito.o: start_eltorito.S -- $(CCAS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o iso9660_stage1_5_exec-start_eltorito.o `test -f 'start_eltorito.S' || echo '$(srcdir)/'`start_eltorito.S -- --iso9660_stage1_5_exec-start_eltorito.obj: start_eltorito.S -- $(CCAS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o iso9660_stage1_5_exec-start_eltorito.obj `if test -f 'start_eltorito.S'; then $(CYGPATH_W) 'start_eltorito.S'; else $(CYGPATH_W) '$(srcdir)/start_eltorito.S'; fi` -- --iso9660_stage1_5_exec-asm.o: asm.S -- $(CCAS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o iso9660_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S -- --iso9660_stage1_5_exec-asm.obj: asm.S -- $(CCAS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o iso9660_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi` -- --jfs_stage1_5_exec-start.o: start.S -- $(CCAS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o jfs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S -- --jfs_stage1_5_exec-start.obj: start.S -- $(CCAS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o jfs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi` -- --jfs_stage1_5_exec-asm.o: asm.S -- $(CCAS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o jfs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S -- --jfs_stage1_5_exec-asm.obj: asm.S -- $(CCAS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o jfs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi` -- --minix_stage1_5_exec-start.o: start.S -- $(CCAS) $(minix_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o minix_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S -- --minix_stage1_5_exec-start.obj: start.S -- $(CCAS) $(minix_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o minix_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi` -- --minix_stage1_5_exec-asm.o: asm.S -- $(CCAS) $(minix_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o minix_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S -- --minix_stage1_5_exec-asm.obj: asm.S -- $(CCAS) $(minix_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o minix_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi` -- --nbloader_exec-nbloader.o: nbloader.S -- $(CCAS) $(nbloader_exec_CCASFLAGS) $(CCASFLAGS) -c -o nbloader_exec-nbloader.o `test -f 'nbloader.S' || echo '$(srcdir)/'`nbloader.S -- --nbloader_exec-nbloader.obj: nbloader.S -- $(CCAS) $(nbloader_exec_CCASFLAGS) $(CCASFLAGS) -c -o nbloader_exec-nbloader.obj `if test -f 'nbloader.S'; then $(CYGPATH_W) 'nbloader.S'; else $(CYGPATH_W) '$(srcdir)/nbloader.S'; fi` -- --pre_stage2_exec-asm.o: asm.S -- $(CCAS) $(pre_stage2_exec_CCASFLAGS) $(CCASFLAGS) -c -o pre_stage2_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S -- --pre_stage2_exec-asm.obj: asm.S -- $(CCAS) $(pre_stage2_exec_CCASFLAGS) $(CCASFLAGS) -c -o pre_stage2_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi` -- --pxeloader_exec-pxeloader.o: pxeloader.S -- $(CCAS) $(pxeloader_exec_CCASFLAGS) $(CCASFLAGS) -c -o pxeloader_exec-pxeloader.o `test -f 'pxeloader.S' || echo '$(srcdir)/'`pxeloader.S -- --pxeloader_exec-pxeloader.obj: pxeloader.S -- $(CCAS) $(pxeloader_exec_CCASFLAGS) $(CCASFLAGS) -c -o pxeloader_exec-pxeloader.obj `if test -f 'pxeloader.S'; then $(CYGPATH_W) 'pxeloader.S'; else $(CYGPATH_W) '$(srcdir)/pxeloader.S'; fi` -- --reiserfs_stage1_5_exec-start.o: start.S -- $(CCAS) $(reiserfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o reiserfs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S -- --reiserfs_stage1_5_exec-start.obj: start.S -- $(CCAS) $(reiserfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o reiserfs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi` -- --reiserfs_stage1_5_exec-asm.o: asm.S -- $(CCAS) $(reiserfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o reiserfs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S -- --reiserfs_stage1_5_exec-asm.obj: asm.S -- $(CCAS) $(reiserfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o reiserfs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi` -- --start_exec-start.o: start.S -- $(CCAS) $(start_exec_CCASFLAGS) $(CCASFLAGS) -c -o start_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S -- --start_exec-start.obj: start.S -- $(CCAS) $(start_exec_CCASFLAGS) $(CCASFLAGS) -c -o start_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi` -- --start_eltorito_exec-start_eltorito.o: start_eltorito.S -- $(CCAS) $(start_eltorito_exec_CCASFLAGS) $(CCASFLAGS) -c -o start_eltorito_exec-start_eltorito.o `test -f 'start_eltorito.S' || echo '$(srcdir)/'`start_eltorito.S -- --start_eltorito_exec-start_eltorito.obj: start_eltorito.S -- $(CCAS) $(start_eltorito_exec_CCASFLAGS) $(CCASFLAGS) -c -o start_eltorito_exec-start_eltorito.obj `if test -f 'start_eltorito.S'; then $(CYGPATH_W) 'start_eltorito.S'; else $(CYGPATH_W) '$(srcdir)/start_eltorito.S'; fi` -- --ufs2_stage1_5_exec-start.o: start.S -- $(CCAS) $(ufs2_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ufs2_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S -- --ufs2_stage1_5_exec-start.obj: start.S -- $(CCAS) $(ufs2_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ufs2_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi` -- --ufs2_stage1_5_exec-asm.o: asm.S -- $(CCAS) $(ufs2_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ufs2_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S -- --ufs2_stage1_5_exec-asm.obj: asm.S -- $(CCAS) $(ufs2_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ufs2_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi` -- --vstafs_stage1_5_exec-start.o: start.S -- $(CCAS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o vstafs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S -- --vstafs_stage1_5_exec-start.obj: start.S -- $(CCAS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o vstafs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi` -- --vstafs_stage1_5_exec-asm.o: asm.S -- $(CCAS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o vstafs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S -- --vstafs_stage1_5_exec-asm.obj: asm.S -- $(CCAS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o vstafs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi` -- --xfs_stage1_5_exec-start.o: start.S -- $(CCAS) $(xfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o xfs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S -- --xfs_stage1_5_exec-start.obj: start.S -- $(CCAS) $(xfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o xfs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi` -- --xfs_stage1_5_exec-asm.o: asm.S -- $(CCAS) $(xfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o xfs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S -- --xfs_stage1_5_exec-asm.obj: asm.S -- $(CCAS) $(xfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o xfs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi` -- --.c.o: --@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(COMPILE) -c $< -- --.c.obj: --@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` -- --libgrub_a-boot.o: boot.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-boot.o -MD -MP -MF "$(DEPDIR)/libgrub_a-boot.Tpo" -c -o libgrub_a-boot.o `test -f 'boot.c' || echo '$(srcdir)/'`boot.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-boot.Tpo" "$(DEPDIR)/libgrub_a-boot.Po"; else rm -f "$(DEPDIR)/libgrub_a-boot.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='boot.c' object='libgrub_a-boot.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-boot.o `test -f 'boot.c' || echo '$(srcdir)/'`boot.c -- --libgrub_a-boot.obj: boot.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-boot.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-boot.Tpo" -c -o libgrub_a-boot.obj `if test -f 'boot.c'; then $(CYGPATH_W) 'boot.c'; else $(CYGPATH_W) '$(srcdir)/boot.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-boot.Tpo" "$(DEPDIR)/libgrub_a-boot.Po"; else rm -f "$(DEPDIR)/libgrub_a-boot.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='boot.c' object='libgrub_a-boot.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-boot.obj `if test -f 'boot.c'; then $(CYGPATH_W) 'boot.c'; else $(CYGPATH_W) '$(srcdir)/boot.c'; fi` -- --libgrub_a-builtins.o: builtins.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-builtins.o -MD -MP -MF "$(DEPDIR)/libgrub_a-builtins.Tpo" -c -o libgrub_a-builtins.o `test -f 'builtins.c' || echo '$(srcdir)/'`builtins.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-builtins.Tpo" "$(DEPDIR)/libgrub_a-builtins.Po"; else rm -f "$(DEPDIR)/libgrub_a-builtins.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='builtins.c' object='libgrub_a-builtins.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-builtins.o `test -f 'builtins.c' || echo '$(srcdir)/'`builtins.c -- --libgrub_a-builtins.obj: builtins.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-builtins.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-builtins.Tpo" -c -o libgrub_a-builtins.obj `if test -f 'builtins.c'; then $(CYGPATH_W) 'builtins.c'; else $(CYGPATH_W) '$(srcdir)/builtins.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-builtins.Tpo" "$(DEPDIR)/libgrub_a-builtins.Po"; else rm -f "$(DEPDIR)/libgrub_a-builtins.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='builtins.c' object='libgrub_a-builtins.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-builtins.obj `if test -f 'builtins.c'; then $(CYGPATH_W) 'builtins.c'; else $(CYGPATH_W) '$(srcdir)/builtins.c'; fi` -- --libgrub_a-char_io.o: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-char_io.o -MD -MP -MF "$(DEPDIR)/libgrub_a-char_io.Tpo" -c -o libgrub_a-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-char_io.Tpo" "$(DEPDIR)/libgrub_a-char_io.Po"; else rm -f "$(DEPDIR)/libgrub_a-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='libgrub_a-char_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c -- --libgrub_a-char_io.obj: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-char_io.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-char_io.Tpo" -c -o libgrub_a-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 -f "$(DEPDIR)/libgrub_a-char_io.Tpo" "$(DEPDIR)/libgrub_a-char_io.Po"; else rm -f "$(DEPDIR)/libgrub_a-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='libgrub_a-char_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi` -- --libgrub_a-cmdline.o: cmdline.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-cmdline.o -MD -MP -MF "$(DEPDIR)/libgrub_a-cmdline.Tpo" -c -o libgrub_a-cmdline.o `test -f 'cmdline.c' || echo '$(srcdir)/'`cmdline.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-cmdline.Tpo" "$(DEPDIR)/libgrub_a-cmdline.Po"; else rm -f "$(DEPDIR)/libgrub_a-cmdline.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cmdline.c' object='libgrub_a-cmdline.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-cmdline.o `test -f 'cmdline.c' || echo '$(srcdir)/'`cmdline.c -- --libgrub_a-cmdline.obj: cmdline.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-cmdline.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-cmdline.Tpo" -c -o libgrub_a-cmdline.obj `if test -f 'cmdline.c'; then $(CYGPATH_W) 'cmdline.c'; else $(CYGPATH_W) '$(srcdir)/cmdline.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-cmdline.Tpo" "$(DEPDIR)/libgrub_a-cmdline.Po"; else rm -f "$(DEPDIR)/libgrub_a-cmdline.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cmdline.c' object='libgrub_a-cmdline.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-cmdline.obj `if test -f 'cmdline.c'; then $(CYGPATH_W) 'cmdline.c'; else $(CYGPATH_W) '$(srcdir)/cmdline.c'; fi` -- --libgrub_a-common.o: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-common.o -MD -MP -MF "$(DEPDIR)/libgrub_a-common.Tpo" -c -o libgrub_a-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-common.Tpo" "$(DEPDIR)/libgrub_a-common.Po"; else rm -f "$(DEPDIR)/libgrub_a-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='libgrub_a-common.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c -- --libgrub_a-common.obj: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-common.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-common.Tpo" -c -o libgrub_a-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-common.Tpo" "$(DEPDIR)/libgrub_a-common.Po"; else rm -f "$(DEPDIR)/libgrub_a-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='libgrub_a-common.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi` -- --libgrub_a-disk_io.o: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-disk_io.o -MD -MP -MF "$(DEPDIR)/libgrub_a-disk_io.Tpo" -c -o libgrub_a-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-disk_io.Tpo" "$(DEPDIR)/libgrub_a-disk_io.Po"; else rm -f "$(DEPDIR)/libgrub_a-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='libgrub_a-disk_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c -- --libgrub_a-disk_io.obj: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-disk_io.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-disk_io.Tpo" -c -o libgrub_a-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 -f "$(DEPDIR)/libgrub_a-disk_io.Tpo" "$(DEPDIR)/libgrub_a-disk_io.Po"; else rm -f "$(DEPDIR)/libgrub_a-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='libgrub_a-disk_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi` -- --libgrub_a-fsys_ext2fs.o: fsys_ext2fs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ext2fs.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_ext2fs.Tpo" -c -o libgrub_a-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-fsys_ext2fs.Tpo" "$(DEPDIR)/libgrub_a-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_ext2fs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ext2fs.c' object='libgrub_a-fsys_ext2fs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c -- --libgrub_a-fsys_ext2fs.obj: fsys_ext2fs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ext2fs.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_ext2fs.Tpo" -c -o libgrub_a-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-fsys_ext2fs.Tpo" "$(DEPDIR)/libgrub_a-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_ext2fs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ext2fs.c' object='libgrub_a-fsys_ext2fs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi` -- --libgrub_a-fsys_fat.o: fsys_fat.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_fat.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_fat.Tpo" -c -o libgrub_a-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-fsys_fat.Tpo" "$(DEPDIR)/libgrub_a-fsys_fat.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_fat.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_fat.c' object='libgrub_a-fsys_fat.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c -- --libgrub_a-fsys_fat.obj: fsys_fat.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_fat.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_fat.Tpo" -c -o libgrub_a-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-fsys_fat.Tpo" "$(DEPDIR)/libgrub_a-fsys_fat.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_fat.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_fat.c' object='libgrub_a-fsys_fat.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi` -- --libgrub_a-fsys_ffs.o: fsys_ffs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ffs.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_ffs.Tpo" -c -o libgrub_a-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-fsys_ffs.Tpo" "$(DEPDIR)/libgrub_a-fsys_ffs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_ffs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ffs.c' object='libgrub_a-fsys_ffs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c -- --libgrub_a-fsys_ffs.obj: fsys_ffs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ffs.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_ffs.Tpo" -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_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-fsys_ffs.Tpo" "$(DEPDIR)/libgrub_a-fsys_ffs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_ffs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ffs.c' object='libgrub_a-fsys_ffs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi` -- --libgrub_a-fsys_iso9660.o: fsys_iso9660.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_iso9660.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo" -c -o libgrub_a-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo" "$(DEPDIR)/libgrub_a-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_iso9660.c' object='libgrub_a-fsys_iso9660.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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" -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 -f "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo" "$(DEPDIR)/libgrub_a-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_iso9660.c' object='libgrub_a-fsys_iso9660.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi` -- --libgrub_a-fsys_jfs.o: fsys_jfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_jfs.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_jfs.Tpo" -c -o libgrub_a-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-fsys_jfs.Tpo" "$(DEPDIR)/libgrub_a-fsys_jfs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_jfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_jfs.c' object='libgrub_a-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c -- --libgrub_a-fsys_jfs.obj: fsys_jfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_jfs.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_jfs.Tpo" -c -o libgrub_a-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-fsys_jfs.Tpo" "$(DEPDIR)/libgrub_a-fsys_jfs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_jfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_jfs.c' object='libgrub_a-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi` -- --libgrub_a-fsys_minix.o: fsys_minix.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_minix.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_minix.Tpo" -c -o libgrub_a-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-fsys_minix.Tpo" "$(DEPDIR)/libgrub_a-fsys_minix.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_minix.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_minix.c' object='libgrub_a-fsys_minix.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c -- --libgrub_a-fsys_minix.obj: fsys_minix.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_minix.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_minix.Tpo" -c -o libgrub_a-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-fsys_minix.Tpo" "$(DEPDIR)/libgrub_a-fsys_minix.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_minix.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_minix.c' object='libgrub_a-fsys_minix.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi` -- --libgrub_a-fsys_reiserfs.o: fsys_reiserfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_reiserfs.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_reiserfs.Tpo" -c -o libgrub_a-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-fsys_reiserfs.Tpo" "$(DEPDIR)/libgrub_a-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_reiserfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_reiserfs.c' object='libgrub_a-fsys_reiserfs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c -- --libgrub_a-fsys_reiserfs.obj: fsys_reiserfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_reiserfs.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_reiserfs.Tpo" -c -o libgrub_a-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-fsys_reiserfs.Tpo" "$(DEPDIR)/libgrub_a-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_reiserfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_reiserfs.c' object='libgrub_a-fsys_reiserfs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi` -- --libgrub_a-fsys_ufs2.o: fsys_ufs2.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ufs2.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_ufs2.Tpo" -c -o libgrub_a-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-fsys_ufs2.Tpo" "$(DEPDIR)/libgrub_a-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_ufs2.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ufs2.c' object='libgrub_a-fsys_ufs2.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c -- --libgrub_a-fsys_ufs2.obj: fsys_ufs2.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ufs2.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_ufs2.Tpo" -c -o libgrub_a-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-fsys_ufs2.Tpo" "$(DEPDIR)/libgrub_a-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_ufs2.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ufs2.c' object='libgrub_a-fsys_ufs2.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi` -- --libgrub_a-fsys_vstafs.o: fsys_vstafs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_vstafs.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_vstafs.Tpo" -c -o libgrub_a-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-fsys_vstafs.Tpo" "$(DEPDIR)/libgrub_a-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_vstafs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_vstafs.c' object='libgrub_a-fsys_vstafs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c -- --libgrub_a-fsys_vstafs.obj: fsys_vstafs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_vstafs.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_vstafs.Tpo" -c -o libgrub_a-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-fsys_vstafs.Tpo" "$(DEPDIR)/libgrub_a-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_vstafs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_vstafs.c' object='libgrub_a-fsys_vstafs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi` -- --libgrub_a-fsys_xfs.o: fsys_xfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_xfs.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_xfs.Tpo" -c -o libgrub_a-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-fsys_xfs.Tpo" "$(DEPDIR)/libgrub_a-fsys_xfs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_xfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_xfs.c' object='libgrub_a-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c -- --libgrub_a-fsys_xfs.obj: fsys_xfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_xfs.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_xfs.Tpo" -c -o libgrub_a-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-fsys_xfs.Tpo" "$(DEPDIR)/libgrub_a-fsys_xfs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_xfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_xfs.c' object='libgrub_a-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi` -- --libgrub_a-gunzip.o: gunzip.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-gunzip.o -MD -MP -MF "$(DEPDIR)/libgrub_a-gunzip.Tpo" -c -o libgrub_a-gunzip.o `test -f 'gunzip.c' || echo '$(srcdir)/'`gunzip.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-gunzip.Tpo" "$(DEPDIR)/libgrub_a-gunzip.Po"; else rm -f "$(DEPDIR)/libgrub_a-gunzip.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gunzip.c' object='libgrub_a-gunzip.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-gunzip.o `test -f 'gunzip.c' || echo '$(srcdir)/'`gunzip.c -- --libgrub_a-gunzip.obj: gunzip.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-gunzip.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-gunzip.Tpo" -c -o libgrub_a-gunzip.obj `if test -f 'gunzip.c'; then $(CYGPATH_W) 'gunzip.c'; else $(CYGPATH_W) '$(srcdir)/gunzip.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-gunzip.Tpo" "$(DEPDIR)/libgrub_a-gunzip.Po"; else rm -f "$(DEPDIR)/libgrub_a-gunzip.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gunzip.c' object='libgrub_a-gunzip.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-gunzip.obj `if test -f 'gunzip.c'; then $(CYGPATH_W) 'gunzip.c'; else $(CYGPATH_W) '$(srcdir)/gunzip.c'; fi` -- --libgrub_a-md5.o: md5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-md5.o -MD -MP -MF "$(DEPDIR)/libgrub_a-md5.Tpo" -c -o libgrub_a-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-md5.Tpo" "$(DEPDIR)/libgrub_a-md5.Po"; else rm -f "$(DEPDIR)/libgrub_a-md5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='md5.c' object='libgrub_a-md5.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c -- --libgrub_a-md5.obj: md5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-md5.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-md5.Tpo" -c -o libgrub_a-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-md5.Tpo" "$(DEPDIR)/libgrub_a-md5.Po"; else rm -f "$(DEPDIR)/libgrub_a-md5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='md5.c' object='libgrub_a-md5.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi` -- --libgrub_a-serial.o: serial.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-serial.o -MD -MP -MF "$(DEPDIR)/libgrub_a-serial.Tpo" -c -o libgrub_a-serial.o `test -f 'serial.c' || echo '$(srcdir)/'`serial.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-serial.Tpo" "$(DEPDIR)/libgrub_a-serial.Po"; else rm -f "$(DEPDIR)/libgrub_a-serial.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='serial.c' object='libgrub_a-serial.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-serial.o `test -f 'serial.c' || echo '$(srcdir)/'`serial.c -- --libgrub_a-serial.obj: serial.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-serial.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-serial.Tpo" -c -o libgrub_a-serial.obj `if test -f 'serial.c'; then $(CYGPATH_W) 'serial.c'; else $(CYGPATH_W) '$(srcdir)/serial.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-serial.Tpo" "$(DEPDIR)/libgrub_a-serial.Po"; else rm -f "$(DEPDIR)/libgrub_a-serial.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='serial.c' object='libgrub_a-serial.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-serial.obj `if test -f 'serial.c'; then $(CYGPATH_W) 'serial.c'; else $(CYGPATH_W) '$(srcdir)/serial.c'; fi` -- --libgrub_a-stage2.o: stage2.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-stage2.o -MD -MP -MF "$(DEPDIR)/libgrub_a-stage2.Tpo" -c -o libgrub_a-stage2.o `test -f 'stage2.c' || echo '$(srcdir)/'`stage2.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-stage2.Tpo" "$(DEPDIR)/libgrub_a-stage2.Po"; else rm -f "$(DEPDIR)/libgrub_a-stage2.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage2.c' object='libgrub_a-stage2.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-stage2.o `test -f 'stage2.c' || echo '$(srcdir)/'`stage2.c -- --libgrub_a-stage2.obj: stage2.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-stage2.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-stage2.Tpo" -c -o libgrub_a-stage2.obj `if test -f 'stage2.c'; then $(CYGPATH_W) 'stage2.c'; else $(CYGPATH_W) '$(srcdir)/stage2.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-stage2.Tpo" "$(DEPDIR)/libgrub_a-stage2.Po"; else rm -f "$(DEPDIR)/libgrub_a-stage2.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage2.c' object='libgrub_a-stage2.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-stage2.obj `if test -f 'stage2.c'; then $(CYGPATH_W) 'stage2.c'; else $(CYGPATH_W) '$(srcdir)/stage2.c'; fi` -- --libgrub_a-terminfo.o: terminfo.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-terminfo.o -MD -MP -MF "$(DEPDIR)/libgrub_a-terminfo.Tpo" -c -o libgrub_a-terminfo.o `test -f 'terminfo.c' || echo '$(srcdir)/'`terminfo.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-terminfo.Tpo" "$(DEPDIR)/libgrub_a-terminfo.Po"; else rm -f "$(DEPDIR)/libgrub_a-terminfo.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='terminfo.c' object='libgrub_a-terminfo.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-terminfo.o `test -f 'terminfo.c' || echo '$(srcdir)/'`terminfo.c -- --libgrub_a-terminfo.obj: terminfo.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-terminfo.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-terminfo.Tpo" -c -o libgrub_a-terminfo.obj `if test -f 'terminfo.c'; then $(CYGPATH_W) 'terminfo.c'; else $(CYGPATH_W) '$(srcdir)/terminfo.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-terminfo.Tpo" "$(DEPDIR)/libgrub_a-terminfo.Po"; else rm -f "$(DEPDIR)/libgrub_a-terminfo.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='terminfo.c' object='libgrub_a-terminfo.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-terminfo.obj `if test -f 'terminfo.c'; then $(CYGPATH_W) 'terminfo.c'; else $(CYGPATH_W) '$(srcdir)/terminfo.c'; fi` -- --libgrub_a-tparm.o: tparm.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-tparm.o -MD -MP -MF "$(DEPDIR)/libgrub_a-tparm.Tpo" -c -o libgrub_a-tparm.o `test -f 'tparm.c' || echo '$(srcdir)/'`tparm.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-tparm.Tpo" "$(DEPDIR)/libgrub_a-tparm.Po"; else rm -f "$(DEPDIR)/libgrub_a-tparm.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tparm.c' object='libgrub_a-tparm.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-tparm.o `test -f 'tparm.c' || echo '$(srcdir)/'`tparm.c -- --libgrub_a-tparm.obj: tparm.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-tparm.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-tparm.Tpo" -c -o libgrub_a-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libgrub_a-tparm.Tpo" "$(DEPDIR)/libgrub_a-tparm.Po"; else rm -f "$(DEPDIR)/libgrub_a-tparm.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tparm.c' object='libgrub_a-tparm.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi` -- --diskless_exec-bios.o: bios.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-bios.o -MD -MP -MF "$(DEPDIR)/diskless_exec-bios.Tpo" -c -o diskless_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-bios.Tpo" "$(DEPDIR)/diskless_exec-bios.Po"; else rm -f "$(DEPDIR)/diskless_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='diskless_exec-bios.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c -- --diskless_exec-bios.obj: bios.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-bios.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-bios.Tpo" -c -o diskless_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 -f "$(DEPDIR)/diskless_exec-bios.Tpo" "$(DEPDIR)/diskless_exec-bios.Po"; else rm -f "$(DEPDIR)/diskless_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='diskless_exec-bios.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi` -- --diskless_exec-boot.o: boot.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-boot.o -MD -MP -MF "$(DEPDIR)/diskless_exec-boot.Tpo" -c -o diskless_exec-boot.o `test -f 'boot.c' || echo '$(srcdir)/'`boot.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-boot.Tpo" "$(DEPDIR)/diskless_exec-boot.Po"; else rm -f "$(DEPDIR)/diskless_exec-boot.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='boot.c' object='diskless_exec-boot.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-boot.o `test -f 'boot.c' || echo '$(srcdir)/'`boot.c -- --diskless_exec-boot.obj: boot.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-boot.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-boot.Tpo" -c -o diskless_exec-boot.obj `if test -f 'boot.c'; then $(CYGPATH_W) 'boot.c'; else $(CYGPATH_W) '$(srcdir)/boot.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-boot.Tpo" "$(DEPDIR)/diskless_exec-boot.Po"; else rm -f "$(DEPDIR)/diskless_exec-boot.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='boot.c' object='diskless_exec-boot.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-boot.obj `if test -f 'boot.c'; then $(CYGPATH_W) 'boot.c'; else $(CYGPATH_W) '$(srcdir)/boot.c'; fi` -- --diskless_exec-builtins.o: builtins.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-builtins.o -MD -MP -MF "$(DEPDIR)/diskless_exec-builtins.Tpo" -c -o diskless_exec-builtins.o `test -f 'builtins.c' || echo '$(srcdir)/'`builtins.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-builtins.Tpo" "$(DEPDIR)/diskless_exec-builtins.Po"; else rm -f "$(DEPDIR)/diskless_exec-builtins.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='builtins.c' object='diskless_exec-builtins.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-builtins.o `test -f 'builtins.c' || echo '$(srcdir)/'`builtins.c -- --diskless_exec-builtins.obj: builtins.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-builtins.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-builtins.Tpo" -c -o diskless_exec-builtins.obj `if test -f 'builtins.c'; then $(CYGPATH_W) 'builtins.c'; else $(CYGPATH_W) '$(srcdir)/builtins.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-builtins.Tpo" "$(DEPDIR)/diskless_exec-builtins.Po"; else rm -f "$(DEPDIR)/diskless_exec-builtins.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='builtins.c' object='diskless_exec-builtins.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-builtins.obj `if test -f 'builtins.c'; then $(CYGPATH_W) 'builtins.c'; else $(CYGPATH_W) '$(srcdir)/builtins.c'; fi` -- --diskless_exec-char_io.o: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-char_io.o -MD -MP -MF "$(DEPDIR)/diskless_exec-char_io.Tpo" -c -o diskless_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-char_io.Tpo" "$(DEPDIR)/diskless_exec-char_io.Po"; else rm -f "$(DEPDIR)/diskless_exec-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='diskless_exec-char_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c -- --diskless_exec-char_io.obj: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-char_io.Tpo" -c -o diskless_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 -f "$(DEPDIR)/diskless_exec-char_io.Tpo" "$(DEPDIR)/diskless_exec-char_io.Po"; else rm -f "$(DEPDIR)/diskless_exec-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='diskless_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi` -- --diskless_exec-cmdline.o: cmdline.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-cmdline.o -MD -MP -MF "$(DEPDIR)/diskless_exec-cmdline.Tpo" -c -o diskless_exec-cmdline.o `test -f 'cmdline.c' || echo '$(srcdir)/'`cmdline.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-cmdline.Tpo" "$(DEPDIR)/diskless_exec-cmdline.Po"; else rm -f "$(DEPDIR)/diskless_exec-cmdline.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cmdline.c' object='diskless_exec-cmdline.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-cmdline.o `test -f 'cmdline.c' || echo '$(srcdir)/'`cmdline.c -- --diskless_exec-cmdline.obj: cmdline.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-cmdline.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-cmdline.Tpo" -c -o diskless_exec-cmdline.obj `if test -f 'cmdline.c'; then $(CYGPATH_W) 'cmdline.c'; else $(CYGPATH_W) '$(srcdir)/cmdline.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-cmdline.Tpo" "$(DEPDIR)/diskless_exec-cmdline.Po"; else rm -f "$(DEPDIR)/diskless_exec-cmdline.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cmdline.c' object='diskless_exec-cmdline.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-cmdline.obj `if test -f 'cmdline.c'; then $(CYGPATH_W) 'cmdline.c'; else $(CYGPATH_W) '$(srcdir)/cmdline.c'; fi` -- --diskless_exec-common.o: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-common.o -MD -MP -MF "$(DEPDIR)/diskless_exec-common.Tpo" -c -o diskless_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-common.Tpo" "$(DEPDIR)/diskless_exec-common.Po"; else rm -f "$(DEPDIR)/diskless_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='diskless_exec-common.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c -- --diskless_exec-common.obj: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-common.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-common.Tpo" -c -o diskless_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 -f "$(DEPDIR)/diskless_exec-common.Tpo" "$(DEPDIR)/diskless_exec-common.Po"; else rm -f "$(DEPDIR)/diskless_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='diskless_exec-common.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi` -- --diskless_exec-console.o: console.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-console.o -MD -MP -MF "$(DEPDIR)/diskless_exec-console.Tpo" -c -o diskless_exec-console.o `test -f 'console.c' || echo '$(srcdir)/'`console.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-console.Tpo" "$(DEPDIR)/diskless_exec-console.Po"; else rm -f "$(DEPDIR)/diskless_exec-console.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='console.c' object='diskless_exec-console.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-console.o `test -f 'console.c' || echo '$(srcdir)/'`console.c -- --diskless_exec-console.obj: console.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-console.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-console.Tpo" -c -o diskless_exec-console.obj `if test -f 'console.c'; then $(CYGPATH_W) 'console.c'; else $(CYGPATH_W) '$(srcdir)/console.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-console.Tpo" "$(DEPDIR)/diskless_exec-console.Po"; else rm -f "$(DEPDIR)/diskless_exec-console.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='console.c' object='diskless_exec-console.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-console.obj `if test -f 'console.c'; then $(CYGPATH_W) 'console.c'; else $(CYGPATH_W) '$(srcdir)/console.c'; fi` -- --diskless_exec-disk_io.o: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/diskless_exec-disk_io.Tpo" -c -o diskless_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-disk_io.Tpo" "$(DEPDIR)/diskless_exec-disk_io.Po"; else rm -f "$(DEPDIR)/diskless_exec-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='diskless_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c -- --diskless_exec-disk_io.obj: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-disk_io.Tpo" -c -o diskless_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 -f "$(DEPDIR)/diskless_exec-disk_io.Tpo" "$(DEPDIR)/diskless_exec-disk_io.Po"; else rm -f "$(DEPDIR)/diskless_exec-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='diskless_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi` -- --diskless_exec-fsys_ext2fs.o: fsys_ext2fs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ext2fs.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_ext2fs.Tpo" -c -o diskless_exec-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-fsys_ext2fs.Tpo" "$(DEPDIR)/diskless_exec-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_ext2fs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ext2fs.c' object='diskless_exec-fsys_ext2fs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c -- --diskless_exec-fsys_ext2fs.obj: fsys_ext2fs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ext2fs.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_ext2fs.Tpo" -c -o diskless_exec-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-fsys_ext2fs.Tpo" "$(DEPDIR)/diskless_exec-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_ext2fs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ext2fs.c' object='diskless_exec-fsys_ext2fs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi` -- --diskless_exec-fsys_fat.o: fsys_fat.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_fat.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_fat.Tpo" -c -o diskless_exec-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-fsys_fat.Tpo" "$(DEPDIR)/diskless_exec-fsys_fat.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_fat.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_fat.c' object='diskless_exec-fsys_fat.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c -- --diskless_exec-fsys_fat.obj: fsys_fat.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_fat.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_fat.Tpo" -c -o diskless_exec-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-fsys_fat.Tpo" "$(DEPDIR)/diskless_exec-fsys_fat.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_fat.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_fat.c' object='diskless_exec-fsys_fat.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi` -- --diskless_exec-fsys_ffs.o: fsys_ffs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ffs.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_ffs.Tpo" -c -o diskless_exec-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-fsys_ffs.Tpo" "$(DEPDIR)/diskless_exec-fsys_ffs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_ffs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ffs.c' object='diskless_exec-fsys_ffs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c -- --diskless_exec-fsys_ffs.obj: fsys_ffs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ffs.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_ffs.Tpo" -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_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-fsys_ffs.Tpo" "$(DEPDIR)/diskless_exec-fsys_ffs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_ffs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ffs.c' object='diskless_exec-fsys_ffs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi` -- --diskless_exec-fsys_iso9660.o: fsys_iso9660.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_iso9660.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo" -c -o diskless_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo" "$(DEPDIR)/diskless_exec-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_iso9660.c' object='diskless_exec-fsys_iso9660.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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" -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 -f "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo" "$(DEPDIR)/diskless_exec-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_iso9660.c' object='diskless_exec-fsys_iso9660.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi` -- --diskless_exec-fsys_jfs.o: fsys_jfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_jfs.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_jfs.Tpo" -c -o diskless_exec-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-fsys_jfs.Tpo" "$(DEPDIR)/diskless_exec-fsys_jfs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_jfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_jfs.c' object='diskless_exec-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c -- --diskless_exec-fsys_jfs.obj: fsys_jfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_jfs.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_jfs.Tpo" -c -o diskless_exec-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-fsys_jfs.Tpo" "$(DEPDIR)/diskless_exec-fsys_jfs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_jfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_jfs.c' object='diskless_exec-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi` -- --diskless_exec-fsys_minix.o: fsys_minix.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_minix.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_minix.Tpo" -c -o diskless_exec-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-fsys_minix.Tpo" "$(DEPDIR)/diskless_exec-fsys_minix.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_minix.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_minix.c' object='diskless_exec-fsys_minix.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c -- --diskless_exec-fsys_minix.obj: fsys_minix.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_minix.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_minix.Tpo" -c -o diskless_exec-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-fsys_minix.Tpo" "$(DEPDIR)/diskless_exec-fsys_minix.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_minix.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_minix.c' object='diskless_exec-fsys_minix.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi` -- --diskless_exec-fsys_reiserfs.o: fsys_reiserfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_reiserfs.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_reiserfs.Tpo" -c -o diskless_exec-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-fsys_reiserfs.Tpo" "$(DEPDIR)/diskless_exec-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_reiserfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_reiserfs.c' object='diskless_exec-fsys_reiserfs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c -- --diskless_exec-fsys_reiserfs.obj: fsys_reiserfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_reiserfs.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_reiserfs.Tpo" -c -o diskless_exec-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-fsys_reiserfs.Tpo" "$(DEPDIR)/diskless_exec-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_reiserfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_reiserfs.c' object='diskless_exec-fsys_reiserfs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi` -- --diskless_exec-fsys_ufs2.o: fsys_ufs2.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ufs2.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_ufs2.Tpo" -c -o diskless_exec-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-fsys_ufs2.Tpo" "$(DEPDIR)/diskless_exec-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_ufs2.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ufs2.c' object='diskless_exec-fsys_ufs2.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c -- --diskless_exec-fsys_ufs2.obj: fsys_ufs2.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ufs2.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_ufs2.Tpo" -c -o diskless_exec-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-fsys_ufs2.Tpo" "$(DEPDIR)/diskless_exec-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_ufs2.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ufs2.c' object='diskless_exec-fsys_ufs2.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi` -- --diskless_exec-fsys_vstafs.o: fsys_vstafs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_vstafs.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_vstafs.Tpo" -c -o diskless_exec-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-fsys_vstafs.Tpo" "$(DEPDIR)/diskless_exec-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_vstafs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_vstafs.c' object='diskless_exec-fsys_vstafs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c -- --diskless_exec-fsys_vstafs.obj: fsys_vstafs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_vstafs.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_vstafs.Tpo" -c -o diskless_exec-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-fsys_vstafs.Tpo" "$(DEPDIR)/diskless_exec-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_vstafs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_vstafs.c' object='diskless_exec-fsys_vstafs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi` -- --diskless_exec-fsys_xfs.o: fsys_xfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_xfs.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_xfs.Tpo" -c -o diskless_exec-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-fsys_xfs.Tpo" "$(DEPDIR)/diskless_exec-fsys_xfs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_xfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_xfs.c' object='diskless_exec-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c -- --diskless_exec-fsys_xfs.obj: fsys_xfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_xfs.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_xfs.Tpo" -c -o diskless_exec-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-fsys_xfs.Tpo" "$(DEPDIR)/diskless_exec-fsys_xfs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_xfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_xfs.c' object='diskless_exec-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi` -- --diskless_exec-gunzip.o: gunzip.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-gunzip.o -MD -MP -MF "$(DEPDIR)/diskless_exec-gunzip.Tpo" -c -o diskless_exec-gunzip.o `test -f 'gunzip.c' || echo '$(srcdir)/'`gunzip.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-gunzip.Tpo" "$(DEPDIR)/diskless_exec-gunzip.Po"; else rm -f "$(DEPDIR)/diskless_exec-gunzip.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gunzip.c' object='diskless_exec-gunzip.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-gunzip.o `test -f 'gunzip.c' || echo '$(srcdir)/'`gunzip.c -- --diskless_exec-gunzip.obj: gunzip.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-gunzip.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-gunzip.Tpo" -c -o diskless_exec-gunzip.obj `if test -f 'gunzip.c'; then $(CYGPATH_W) 'gunzip.c'; else $(CYGPATH_W) '$(srcdir)/gunzip.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-gunzip.Tpo" "$(DEPDIR)/diskless_exec-gunzip.Po"; else rm -f "$(DEPDIR)/diskless_exec-gunzip.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gunzip.c' object='diskless_exec-gunzip.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-gunzip.obj `if test -f 'gunzip.c'; then $(CYGPATH_W) 'gunzip.c'; else $(CYGPATH_W) '$(srcdir)/gunzip.c'; fi` -- --diskless_exec-hercules.o: hercules.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-hercules.o -MD -MP -MF "$(DEPDIR)/diskless_exec-hercules.Tpo" -c -o diskless_exec-hercules.o `test -f 'hercules.c' || echo '$(srcdir)/'`hercules.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-hercules.Tpo" "$(DEPDIR)/diskless_exec-hercules.Po"; else rm -f "$(DEPDIR)/diskless_exec-hercules.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='hercules.c' object='diskless_exec-hercules.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-hercules.o `test -f 'hercules.c' || echo '$(srcdir)/'`hercules.c -- --diskless_exec-hercules.obj: hercules.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-hercules.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-hercules.Tpo" -c -o diskless_exec-hercules.obj `if test -f 'hercules.c'; then $(CYGPATH_W) 'hercules.c'; else $(CYGPATH_W) '$(srcdir)/hercules.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-hercules.Tpo" "$(DEPDIR)/diskless_exec-hercules.Po"; else rm -f "$(DEPDIR)/diskless_exec-hercules.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='hercules.c' object='diskless_exec-hercules.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-hercules.obj `if test -f 'hercules.c'; then $(CYGPATH_W) 'hercules.c'; else $(CYGPATH_W) '$(srcdir)/hercules.c'; fi` -- --diskless_exec-md5.o: md5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-md5.o -MD -MP -MF "$(DEPDIR)/diskless_exec-md5.Tpo" -c -o diskless_exec-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-md5.Tpo" "$(DEPDIR)/diskless_exec-md5.Po"; else rm -f "$(DEPDIR)/diskless_exec-md5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='md5.c' object='diskless_exec-md5.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c -- --diskless_exec-md5.obj: md5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-md5.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-md5.Tpo" -c -o diskless_exec-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-md5.Tpo" "$(DEPDIR)/diskless_exec-md5.Po"; else rm -f "$(DEPDIR)/diskless_exec-md5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='md5.c' object='diskless_exec-md5.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi` -- --diskless_exec-serial.o: serial.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-serial.o -MD -MP -MF "$(DEPDIR)/diskless_exec-serial.Tpo" -c -o diskless_exec-serial.o `test -f 'serial.c' || echo '$(srcdir)/'`serial.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-serial.Tpo" "$(DEPDIR)/diskless_exec-serial.Po"; else rm -f "$(DEPDIR)/diskless_exec-serial.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='serial.c' object='diskless_exec-serial.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-serial.o `test -f 'serial.c' || echo '$(srcdir)/'`serial.c -- --diskless_exec-serial.obj: serial.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-serial.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-serial.Tpo" -c -o diskless_exec-serial.obj `if test -f 'serial.c'; then $(CYGPATH_W) 'serial.c'; else $(CYGPATH_W) '$(srcdir)/serial.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-serial.Tpo" "$(DEPDIR)/diskless_exec-serial.Po"; else rm -f "$(DEPDIR)/diskless_exec-serial.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='serial.c' object='diskless_exec-serial.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-serial.obj `if test -f 'serial.c'; then $(CYGPATH_W) 'serial.c'; else $(CYGPATH_W) '$(srcdir)/serial.c'; fi` -- --diskless_exec-smp-imps.o: smp-imps.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-smp-imps.o -MD -MP -MF "$(DEPDIR)/diskless_exec-smp-imps.Tpo" -c -o diskless_exec-smp-imps.o `test -f 'smp-imps.c' || echo '$(srcdir)/'`smp-imps.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-smp-imps.Tpo" "$(DEPDIR)/diskless_exec-smp-imps.Po"; else rm -f "$(DEPDIR)/diskless_exec-smp-imps.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='smp-imps.c' object='diskless_exec-smp-imps.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-smp-imps.o `test -f 'smp-imps.c' || echo '$(srcdir)/'`smp-imps.c -- --diskless_exec-smp-imps.obj: smp-imps.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-smp-imps.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-smp-imps.Tpo" -c -o diskless_exec-smp-imps.obj `if test -f 'smp-imps.c'; then $(CYGPATH_W) 'smp-imps.c'; else $(CYGPATH_W) '$(srcdir)/smp-imps.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-smp-imps.Tpo" "$(DEPDIR)/diskless_exec-smp-imps.Po"; else rm -f "$(DEPDIR)/diskless_exec-smp-imps.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='smp-imps.c' object='diskless_exec-smp-imps.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-smp-imps.obj `if test -f 'smp-imps.c'; then $(CYGPATH_W) 'smp-imps.c'; else $(CYGPATH_W) '$(srcdir)/smp-imps.c'; fi` -- --diskless_exec-stage2.o: stage2.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-stage2.o -MD -MP -MF "$(DEPDIR)/diskless_exec-stage2.Tpo" -c -o diskless_exec-stage2.o `test -f 'stage2.c' || echo '$(srcdir)/'`stage2.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-stage2.Tpo" "$(DEPDIR)/diskless_exec-stage2.Po"; else rm -f "$(DEPDIR)/diskless_exec-stage2.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage2.c' object='diskless_exec-stage2.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-stage2.o `test -f 'stage2.c' || echo '$(srcdir)/'`stage2.c -- --diskless_exec-stage2.obj: stage2.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-stage2.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-stage2.Tpo" -c -o diskless_exec-stage2.obj `if test -f 'stage2.c'; then $(CYGPATH_W) 'stage2.c'; else $(CYGPATH_W) '$(srcdir)/stage2.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-stage2.Tpo" "$(DEPDIR)/diskless_exec-stage2.Po"; else rm -f "$(DEPDIR)/diskless_exec-stage2.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage2.c' object='diskless_exec-stage2.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-stage2.obj `if test -f 'stage2.c'; then $(CYGPATH_W) 'stage2.c'; else $(CYGPATH_W) '$(srcdir)/stage2.c'; fi` -- --diskless_exec-terminfo.o: terminfo.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-terminfo.o -MD -MP -MF "$(DEPDIR)/diskless_exec-terminfo.Tpo" -c -o diskless_exec-terminfo.o `test -f 'terminfo.c' || echo '$(srcdir)/'`terminfo.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-terminfo.Tpo" "$(DEPDIR)/diskless_exec-terminfo.Po"; else rm -f "$(DEPDIR)/diskless_exec-terminfo.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='terminfo.c' object='diskless_exec-terminfo.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-terminfo.o `test -f 'terminfo.c' || echo '$(srcdir)/'`terminfo.c -- --diskless_exec-terminfo.obj: terminfo.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-terminfo.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-terminfo.Tpo" -c -o diskless_exec-terminfo.obj `if test -f 'terminfo.c'; then $(CYGPATH_W) 'terminfo.c'; else $(CYGPATH_W) '$(srcdir)/terminfo.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-terminfo.Tpo" "$(DEPDIR)/diskless_exec-terminfo.Po"; else rm -f "$(DEPDIR)/diskless_exec-terminfo.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='terminfo.c' object='diskless_exec-terminfo.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-terminfo.obj `if test -f 'terminfo.c'; then $(CYGPATH_W) 'terminfo.c'; else $(CYGPATH_W) '$(srcdir)/terminfo.c'; fi` -- --diskless_exec-tparm.o: tparm.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-tparm.o -MD -MP -MF "$(DEPDIR)/diskless_exec-tparm.Tpo" -c -o diskless_exec-tparm.o `test -f 'tparm.c' || echo '$(srcdir)/'`tparm.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-tparm.Tpo" "$(DEPDIR)/diskless_exec-tparm.Po"; else rm -f "$(DEPDIR)/diskless_exec-tparm.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tparm.c' object='diskless_exec-tparm.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-tparm.o `test -f 'tparm.c' || echo '$(srcdir)/'`tparm.c -- --diskless_exec-tparm.obj: tparm.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-tparm.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-tparm.Tpo" -c -o diskless_exec-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/diskless_exec-tparm.Tpo" "$(DEPDIR)/diskless_exec-tparm.Po"; else rm -f "$(DEPDIR)/diskless_exec-tparm.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tparm.c' object='diskless_exec-tparm.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi` -- --e2fs_stage1_5_exec-common.o: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-common.Tpo" -c -o e2fs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-common.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='e2fs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c -- --e2fs_stage1_5_exec-common.obj: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-common.Tpo" -c -o e2fs_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 -f "$(DEPDIR)/e2fs_stage1_5_exec-common.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='e2fs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi` -- --e2fs_stage1_5_exec-char_io.o: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Tpo" -c -o e2fs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='e2fs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c -- --e2fs_stage1_5_exec-char_io.obj: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Tpo" -c -o e2fs_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 -f "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='e2fs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_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` -- --e2fs_stage1_5_exec-disk_io.o: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Tpo" -c -o e2fs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='e2fs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c -- --e2fs_stage1_5_exec-disk_io.obj: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Tpo" -c -o e2fs_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 -f "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='e2fs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_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` -- --e2fs_stage1_5_exec-stage1_5.o: stage1_5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Tpo" -c -o e2fs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='e2fs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c -- --e2fs_stage1_5_exec-stage1_5.obj: stage1_5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Tpo" -c -o e2fs_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 -f "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='e2fs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_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` -- --e2fs_stage1_5_exec-fsys_ext2fs.o: fsys_ext2fs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-fsys_ext2fs.o -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Tpo" -c -o e2fs_stage1_5_exec-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ext2fs.c' object='e2fs_stage1_5_exec-fsys_ext2fs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c -- --e2fs_stage1_5_exec-fsys_ext2fs.obj: fsys_ext2fs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-fsys_ext2fs.obj -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Tpo" -c -o e2fs_stage1_5_exec-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ext2fs.c' object='e2fs_stage1_5_exec-fsys_ext2fs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi` -- --e2fs_stage1_5_exec-bios.o: bios.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-bios.Tpo" -c -o e2fs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='e2fs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c -- --e2fs_stage1_5_exec-bios.obj: bios.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-bios.Tpo" -c -o e2fs_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 -f "$(DEPDIR)/e2fs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='e2fs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi` -- --fat_stage1_5_exec-common.o: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-common.Tpo" -c -o fat_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/fat_stage1_5_exec-common.Tpo" "$(DEPDIR)/fat_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='fat_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c -- --fat_stage1_5_exec-common.obj: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-common.Tpo" -c -o fat_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 -f "$(DEPDIR)/fat_stage1_5_exec-common.Tpo" "$(DEPDIR)/fat_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='fat_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi` -- --fat_stage1_5_exec-char_io.o: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-char_io.Tpo" -c -o fat_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/fat_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/fat_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='fat_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c -- --fat_stage1_5_exec-char_io.obj: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-char_io.Tpo" -c -o fat_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 -f "$(DEPDIR)/fat_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/fat_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='fat_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_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` -- --fat_stage1_5_exec-disk_io.o: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-disk_io.Tpo" -c -o fat_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/fat_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/fat_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='fat_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c -- --fat_stage1_5_exec-disk_io.obj: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-disk_io.Tpo" -c -o fat_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 -f "$(DEPDIR)/fat_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/fat_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='fat_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_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` -- --fat_stage1_5_exec-stage1_5.o: stage1_5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Tpo" -c -o fat_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='fat_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c -- --fat_stage1_5_exec-stage1_5.obj: stage1_5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Tpo" -c -o fat_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 -f "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='fat_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_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` -- --fat_stage1_5_exec-fsys_fat.o: fsys_fat.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-fsys_fat.o -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Tpo" -c -o fat_stage1_5_exec-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Tpo" "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_fat.c' object='fat_stage1_5_exec-fsys_fat.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c -- --fat_stage1_5_exec-fsys_fat.obj: fsys_fat.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-fsys_fat.obj -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Tpo" -c -o fat_stage1_5_exec-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Tpo" "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_fat.c' object='fat_stage1_5_exec-fsys_fat.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi` -- --fat_stage1_5_exec-bios.o: bios.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-bios.Tpo" -c -o fat_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/fat_stage1_5_exec-bios.Tpo" "$(DEPDIR)/fat_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='fat_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c -- --fat_stage1_5_exec-bios.obj: bios.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-bios.Tpo" -c -o fat_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 -f "$(DEPDIR)/fat_stage1_5_exec-bios.Tpo" "$(DEPDIR)/fat_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='fat_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi` -- --ffs_stage1_5_exec-common.o: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-common.Tpo" -c -o ffs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/ffs_stage1_5_exec-common.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='ffs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c -- --ffs_stage1_5_exec-common.obj: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-common.Tpo" -c -o ffs_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 -f "$(DEPDIR)/ffs_stage1_5_exec-common.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='ffs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi` -- --ffs_stage1_5_exec-char_io.o: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-char_io.Tpo" -c -o ffs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/ffs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='ffs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c -- --ffs_stage1_5_exec-char_io.obj: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-char_io.Tpo" -c -o ffs_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 -f "$(DEPDIR)/ffs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='ffs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi` -- --ffs_stage1_5_exec-disk_io.o: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Tpo" -c -o ffs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='ffs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c -- --ffs_stage1_5_exec-disk_io.obj: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Tpo" -c -o ffs_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 -f "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='ffs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi` -- --ffs_stage1_5_exec-stage1_5.o: stage1_5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Tpo" -c -o ffs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='ffs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c -- --ffs_stage1_5_exec-stage1_5.obj: stage1_5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Tpo" -c -o ffs_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 -f "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='ffs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi` -- --ffs_stage1_5_exec-fsys_ffs.o: fsys_ffs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-fsys_ffs.o -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Tpo" -c -o ffs_stage1_5_exec-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ffs.c' object='ffs_stage1_5_exec-fsys_ffs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c -- --ffs_stage1_5_exec-fsys_ffs.obj: fsys_ffs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-fsys_ffs.obj -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Tpo" -c -o ffs_stage1_5_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_TRUE@ then mv -f "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ffs.c' object='ffs_stage1_5_exec-fsys_ffs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi` -- --ffs_stage1_5_exec-bios.o: bios.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-bios.Tpo" -c -o ffs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/ffs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='ffs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c -- --ffs_stage1_5_exec-bios.obj: bios.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-bios.Tpo" -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_TRUE@ then mv -f "$(DEPDIR)/ffs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='ffs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi` -- --iso9660_stage1_5_exec-common.o: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo" -c -o iso9660_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='iso9660_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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" -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 -f "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='iso9660_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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" -c -o iso9660_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo"; exit 1; 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@ DEPDIR=$(DEPDIR) $(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" -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 -f "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo"; exit 1; 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@ DEPDIR=$(DEPDIR) $(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" -c -o iso9660_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo"; exit 1; 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@ DEPDIR=$(DEPDIR) $(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" -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 -f "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo"; exit 1; 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@ DEPDIR=$(DEPDIR) $(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" -c -o iso9660_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo"; exit 1; 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@ DEPDIR=$(DEPDIR) $(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" -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 -f "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo"; exit 1; 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@ DEPDIR=$(DEPDIR) $(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" -c -o iso9660_stage1_5_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo"; exit 1; 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@ DEPDIR=$(DEPDIR) $(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" -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 -f "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo"; exit 1; 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@ DEPDIR=$(DEPDIR) $(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" -c -o iso9660_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='iso9660_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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" -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 -f "$(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='iso9660_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi` -- --jfs_stage1_5_exec-common.o: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-common.Tpo" -c -o jfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/jfs_stage1_5_exec-common.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='jfs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c -- --jfs_stage1_5_exec-common.obj: 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.obj -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-common.Tpo" -c -o jfs_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 -f "$(DEPDIR)/jfs_stage1_5_exec-common.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='jfs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi` -- --jfs_stage1_5_exec-char_io.o: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-char_io.Tpo" -c -o jfs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/jfs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='jfs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c -- --jfs_stage1_5_exec-char_io.obj: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-char_io.Tpo" -c -o jfs_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 -f "$(DEPDIR)/jfs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='jfs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_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` -- --jfs_stage1_5_exec-disk_io.o: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Tpo" -c -o jfs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='jfs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c -- --jfs_stage1_5_exec-disk_io.obj: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Tpo" -c -o jfs_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 -f "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='jfs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_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` -- --jfs_stage1_5_exec-stage1_5.o: stage1_5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Tpo" -c -o jfs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='jfs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c -- --jfs_stage1_5_exec-stage1_5.obj: stage1_5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Tpo" -c -o jfs_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 -f "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='jfs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_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` -- --jfs_stage1_5_exec-fsys_jfs.o: fsys_jfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-fsys_jfs.o -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Tpo" -c -o jfs_stage1_5_exec-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_jfs.c' object='jfs_stage1_5_exec-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c -- --jfs_stage1_5_exec-fsys_jfs.obj: fsys_jfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-fsys_jfs.obj -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Tpo" -c -o jfs_stage1_5_exec-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_jfs.c' object='jfs_stage1_5_exec-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi` -- --jfs_stage1_5_exec-bios.o: bios.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-bios.Tpo" -c -o jfs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/jfs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='jfs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c -- --jfs_stage1_5_exec-bios.obj: bios.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-bios.Tpo" -c -o jfs_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 -f "$(DEPDIR)/jfs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='jfs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi` -- --minix_stage1_5_exec-common.o: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-common.Tpo" -c -o minix_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/minix_stage1_5_exec-common.Tpo" "$(DEPDIR)/minix_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='minix_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c -- --minix_stage1_5_exec-common.obj: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-common.Tpo" -c -o minix_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 -f "$(DEPDIR)/minix_stage1_5_exec-common.Tpo" "$(DEPDIR)/minix_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='minix_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi` -- --minix_stage1_5_exec-char_io.o: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-char_io.Tpo" -c -o minix_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/minix_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/minix_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='minix_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c -- --minix_stage1_5_exec-char_io.obj: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-char_io.Tpo" -c -o minix_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 -f "$(DEPDIR)/minix_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/minix_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='minix_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_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` -- --minix_stage1_5_exec-disk_io.o: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-disk_io.Tpo" -c -o minix_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/minix_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/minix_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='minix_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c -- --minix_stage1_5_exec-disk_io.obj: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-disk_io.Tpo" -c -o minix_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 -f "$(DEPDIR)/minix_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/minix_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='minix_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_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` -- --minix_stage1_5_exec-stage1_5.o: stage1_5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Tpo" -c -o minix_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='minix_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c -- --minix_stage1_5_exec-stage1_5.obj: stage1_5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Tpo" -c -o minix_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 -f "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='minix_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_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` -- --minix_stage1_5_exec-fsys_minix.o: fsys_minix.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-fsys_minix.o -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Tpo" -c -o minix_stage1_5_exec-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Tpo" "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_minix.c' object='minix_stage1_5_exec-fsys_minix.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c -- --minix_stage1_5_exec-fsys_minix.obj: fsys_minix.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-fsys_minix.obj -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Tpo" -c -o minix_stage1_5_exec-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Tpo" "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_minix.c' object='minix_stage1_5_exec-fsys_minix.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi` -- --minix_stage1_5_exec-bios.o: bios.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-bios.Tpo" -c -o minix_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/minix_stage1_5_exec-bios.Tpo" "$(DEPDIR)/minix_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='minix_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c -- --minix_stage1_5_exec-bios.obj: bios.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-bios.Tpo" -c -o minix_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 -f "$(DEPDIR)/minix_stage1_5_exec-bios.Tpo" "$(DEPDIR)/minix_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='minix_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi` -- --pre_stage2_exec-bios.o: bios.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-bios.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-bios.Tpo" -c -o pre_stage2_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-bios.Tpo" "$(DEPDIR)/pre_stage2_exec-bios.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='pre_stage2_exec-bios.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c -- --pre_stage2_exec-bios.obj: bios.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-bios.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-bios.Tpo" -c -o pre_stage2_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 -f "$(DEPDIR)/pre_stage2_exec-bios.Tpo" "$(DEPDIR)/pre_stage2_exec-bios.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='pre_stage2_exec-bios.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi` -- --pre_stage2_exec-boot.o: boot.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-boot.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-boot.Tpo" -c -o pre_stage2_exec-boot.o `test -f 'boot.c' || echo '$(srcdir)/'`boot.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-boot.Tpo" "$(DEPDIR)/pre_stage2_exec-boot.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-boot.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='boot.c' object='pre_stage2_exec-boot.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-boot.o `test -f 'boot.c' || echo '$(srcdir)/'`boot.c -- --pre_stage2_exec-boot.obj: boot.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-boot.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-boot.Tpo" -c -o pre_stage2_exec-boot.obj `if test -f 'boot.c'; then $(CYGPATH_W) 'boot.c'; else $(CYGPATH_W) '$(srcdir)/boot.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-boot.Tpo" "$(DEPDIR)/pre_stage2_exec-boot.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-boot.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='boot.c' object='pre_stage2_exec-boot.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-boot.obj `if test -f 'boot.c'; then $(CYGPATH_W) 'boot.c'; else $(CYGPATH_W) '$(srcdir)/boot.c'; fi` -- --pre_stage2_exec-builtins.o: builtins.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-builtins.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-builtins.Tpo" -c -o pre_stage2_exec-builtins.o `test -f 'builtins.c' || echo '$(srcdir)/'`builtins.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-builtins.Tpo" "$(DEPDIR)/pre_stage2_exec-builtins.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-builtins.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='builtins.c' object='pre_stage2_exec-builtins.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-builtins.o `test -f 'builtins.c' || echo '$(srcdir)/'`builtins.c -- --pre_stage2_exec-builtins.obj: builtins.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-builtins.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-builtins.Tpo" -c -o pre_stage2_exec-builtins.obj `if test -f 'builtins.c'; then $(CYGPATH_W) 'builtins.c'; else $(CYGPATH_W) '$(srcdir)/builtins.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-builtins.Tpo" "$(DEPDIR)/pre_stage2_exec-builtins.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-builtins.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='builtins.c' object='pre_stage2_exec-builtins.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-builtins.obj `if test -f 'builtins.c'; then $(CYGPATH_W) 'builtins.c'; else $(CYGPATH_W) '$(srcdir)/builtins.c'; fi` -- --pre_stage2_exec-char_io.o: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-char_io.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-char_io.Tpo" -c -o pre_stage2_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-char_io.Tpo" "$(DEPDIR)/pre_stage2_exec-char_io.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='pre_stage2_exec-char_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c -- --pre_stage2_exec-char_io.obj: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-char_io.Tpo" -c -o pre_stage2_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 -f "$(DEPDIR)/pre_stage2_exec-char_io.Tpo" "$(DEPDIR)/pre_stage2_exec-char_io.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='pre_stage2_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi` -- --pre_stage2_exec-cmdline.o: cmdline.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-cmdline.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-cmdline.Tpo" -c -o pre_stage2_exec-cmdline.o `test -f 'cmdline.c' || echo '$(srcdir)/'`cmdline.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-cmdline.Tpo" "$(DEPDIR)/pre_stage2_exec-cmdline.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-cmdline.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cmdline.c' object='pre_stage2_exec-cmdline.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-cmdline.o `test -f 'cmdline.c' || echo '$(srcdir)/'`cmdline.c -- --pre_stage2_exec-cmdline.obj: cmdline.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-cmdline.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-cmdline.Tpo" -c -o pre_stage2_exec-cmdline.obj `if test -f 'cmdline.c'; then $(CYGPATH_W) 'cmdline.c'; else $(CYGPATH_W) '$(srcdir)/cmdline.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-cmdline.Tpo" "$(DEPDIR)/pre_stage2_exec-cmdline.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-cmdline.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cmdline.c' object='pre_stage2_exec-cmdline.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-cmdline.obj `if test -f 'cmdline.c'; then $(CYGPATH_W) 'cmdline.c'; else $(CYGPATH_W) '$(srcdir)/cmdline.c'; fi` -- --pre_stage2_exec-common.o: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-common.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-common.Tpo" -c -o pre_stage2_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-common.Tpo" "$(DEPDIR)/pre_stage2_exec-common.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='pre_stage2_exec-common.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c -- --pre_stage2_exec-common.obj: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-common.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-common.Tpo" -c -o pre_stage2_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 -f "$(DEPDIR)/pre_stage2_exec-common.Tpo" "$(DEPDIR)/pre_stage2_exec-common.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='pre_stage2_exec-common.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi` -- --pre_stage2_exec-console.o: console.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-console.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-console.Tpo" -c -o pre_stage2_exec-console.o `test -f 'console.c' || echo '$(srcdir)/'`console.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-console.Tpo" "$(DEPDIR)/pre_stage2_exec-console.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-console.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='console.c' object='pre_stage2_exec-console.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-console.o `test -f 'console.c' || echo '$(srcdir)/'`console.c -- --pre_stage2_exec-console.obj: console.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-console.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-console.Tpo" -c -o pre_stage2_exec-console.obj `if test -f 'console.c'; then $(CYGPATH_W) 'console.c'; else $(CYGPATH_W) '$(srcdir)/console.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-console.Tpo" "$(DEPDIR)/pre_stage2_exec-console.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-console.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='console.c' object='pre_stage2_exec-console.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-console.obj `if test -f 'console.c'; then $(CYGPATH_W) 'console.c'; else $(CYGPATH_W) '$(srcdir)/console.c'; fi` -- --pre_stage2_exec-disk_io.o: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-disk_io.Tpo" -c -o pre_stage2_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-disk_io.Tpo" "$(DEPDIR)/pre_stage2_exec-disk_io.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='pre_stage2_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c -- --pre_stage2_exec-disk_io.obj: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-disk_io.Tpo" -c -o pre_stage2_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 -f "$(DEPDIR)/pre_stage2_exec-disk_io.Tpo" "$(DEPDIR)/pre_stage2_exec-disk_io.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='pre_stage2_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi` -- --pre_stage2_exec-fsys_ext2fs.o: fsys_ext2fs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ext2fs.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Tpo" -c -o pre_stage2_exec-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ext2fs.c' object='pre_stage2_exec-fsys_ext2fs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c -- --pre_stage2_exec-fsys_ext2fs.obj: fsys_ext2fs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ext2fs.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Tpo" -c -o pre_stage2_exec-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ext2fs.c' object='pre_stage2_exec-fsys_ext2fs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi` -- --pre_stage2_exec-fsys_fat.o: fsys_fat.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_fat.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_fat.Tpo" -c -o pre_stage2_exec-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_fat.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_fat.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_fat.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_fat.c' object='pre_stage2_exec-fsys_fat.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c -- --pre_stage2_exec-fsys_fat.obj: fsys_fat.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_fat.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_fat.Tpo" -c -o pre_stage2_exec-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_fat.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_fat.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_fat.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_fat.c' object='pre_stage2_exec-fsys_fat.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi` -- --pre_stage2_exec-fsys_ffs.o: fsys_ffs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ffs.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Tpo" -c -o pre_stage2_exec-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ffs.c' object='pre_stage2_exec-fsys_ffs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c -- --pre_stage2_exec-fsys_ffs.obj: fsys_ffs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ffs.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Tpo" -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_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ffs.c' object='pre_stage2_exec-fsys_ffs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi` -- --pre_stage2_exec-fsys_iso9660.o: fsys_iso9660.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_iso9660.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo" -c -o pre_stage2_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo"; exit 1; 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@ DEPDIR=$(DEPDIR) $(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" -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 -f "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo"; exit 1; 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@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi` -- --pre_stage2_exec-fsys_jfs.o: fsys_jfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_jfs.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo" -c -o pre_stage2_exec-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_jfs.c' object='pre_stage2_exec-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c -- --pre_stage2_exec-fsys_jfs.obj: 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.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo" -c -o pre_stage2_exec-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_jfs.c' object='pre_stage2_exec-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi` -- --pre_stage2_exec-fsys_minix.o: fsys_minix.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_minix.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_minix.Tpo" -c -o pre_stage2_exec-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_minix.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_minix.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_minix.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_minix.c' object='pre_stage2_exec-fsys_minix.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c -- --pre_stage2_exec-fsys_minix.obj: fsys_minix.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_minix.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_minix.Tpo" -c -o pre_stage2_exec-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_minix.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_minix.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_minix.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_minix.c' object='pre_stage2_exec-fsys_minix.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi` -- --pre_stage2_exec-fsys_reiserfs.o: fsys_reiserfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_reiserfs.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Tpo" -c -o pre_stage2_exec-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_reiserfs.c' object='pre_stage2_exec-fsys_reiserfs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c -- --pre_stage2_exec-fsys_reiserfs.obj: fsys_reiserfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_reiserfs.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Tpo" -c -o pre_stage2_exec-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_reiserfs.c' object='pre_stage2_exec-fsys_reiserfs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi` -- --pre_stage2_exec-fsys_ufs2.o: fsys_ufs2.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ufs2.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Tpo" -c -o pre_stage2_exec-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ufs2.c' object='pre_stage2_exec-fsys_ufs2.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c -- --pre_stage2_exec-fsys_ufs2.obj: fsys_ufs2.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ufs2.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Tpo" -c -o pre_stage2_exec-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ufs2.c' object='pre_stage2_exec-fsys_ufs2.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi` -- --pre_stage2_exec-fsys_vstafs.o: fsys_vstafs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_vstafs.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Tpo" -c -o pre_stage2_exec-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_vstafs.c' object='pre_stage2_exec-fsys_vstafs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c -- --pre_stage2_exec-fsys_vstafs.obj: fsys_vstafs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_vstafs.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Tpo" -c -o pre_stage2_exec-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_vstafs.c' object='pre_stage2_exec-fsys_vstafs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi` -- --pre_stage2_exec-fsys_xfs.o: fsys_xfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_xfs.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Tpo" -c -o pre_stage2_exec-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_xfs.c' object='pre_stage2_exec-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c -- --pre_stage2_exec-fsys_xfs.obj: fsys_xfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_xfs.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Tpo" -c -o pre_stage2_exec-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_xfs.c' object='pre_stage2_exec-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(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_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi` -- --pre_stage2_exec-gunzip.o: gunzip.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-gunzip.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-gunzip.Tpo" -c -o pre_stage2_exec-gunzip.o `test -f 'gunzip.c' || echo '$(srcdir)/'`gunzip.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-gunzip.Tpo" "$(DEPDIR)/pre_stage2_exec-gunzip.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-gunzip.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gunzip.c' object='pre_stage2_exec-gunzip.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-gunzip.o `test -f 'gunzip.c' || echo '$(srcdir)/'`gunzip.c -- --pre_stage2_exec-gunzip.obj: gunzip.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-gunzip.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-gunzip.Tpo" -c -o pre_stage2_exec-gunzip.obj `if test -f 'gunzip.c'; then $(CYGPATH_W) 'gunzip.c'; else $(CYGPATH_W) '$(srcdir)/gunzip.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-gunzip.Tpo" "$(DEPDIR)/pre_stage2_exec-gunzip.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-gunzip.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gunzip.c' object='pre_stage2_exec-gunzip.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-gunzip.obj `if test -f 'gunzip.c'; then $(CYGPATH_W) 'gunzip.c'; else $(CYGPATH_W) '$(srcdir)/gunzip.c'; fi` -- --pre_stage2_exec-hercules.o: hercules.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-hercules.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-hercules.Tpo" -c -o pre_stage2_exec-hercules.o `test -f 'hercules.c' || echo '$(srcdir)/'`hercules.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-hercules.Tpo" "$(DEPDIR)/pre_stage2_exec-hercules.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-hercules.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='hercules.c' object='pre_stage2_exec-hercules.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-hercules.o `test -f 'hercules.c' || echo '$(srcdir)/'`hercules.c -- --pre_stage2_exec-hercules.obj: hercules.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-hercules.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-hercules.Tpo" -c -o pre_stage2_exec-hercules.obj `if test -f 'hercules.c'; then $(CYGPATH_W) 'hercules.c'; else $(CYGPATH_W) '$(srcdir)/hercules.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-hercules.Tpo" "$(DEPDIR)/pre_stage2_exec-hercules.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-hercules.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='hercules.c' object='pre_stage2_exec-hercules.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-hercules.obj `if test -f 'hercules.c'; then $(CYGPATH_W) 'hercules.c'; else $(CYGPATH_W) '$(srcdir)/hercules.c'; fi` -- --pre_stage2_exec-md5.o: md5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-md5.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-md5.Tpo" -c -o pre_stage2_exec-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-md5.Tpo" "$(DEPDIR)/pre_stage2_exec-md5.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-md5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='md5.c' object='pre_stage2_exec-md5.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c -- --pre_stage2_exec-md5.obj: md5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-md5.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-md5.Tpo" -c -o pre_stage2_exec-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-md5.Tpo" "$(DEPDIR)/pre_stage2_exec-md5.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-md5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='md5.c' object='pre_stage2_exec-md5.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi` -- --pre_stage2_exec-serial.o: serial.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-serial.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-serial.Tpo" -c -o pre_stage2_exec-serial.o `test -f 'serial.c' || echo '$(srcdir)/'`serial.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-serial.Tpo" "$(DEPDIR)/pre_stage2_exec-serial.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-serial.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='serial.c' object='pre_stage2_exec-serial.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-serial.o `test -f 'serial.c' || echo '$(srcdir)/'`serial.c -- --pre_stage2_exec-serial.obj: serial.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-serial.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-serial.Tpo" -c -o pre_stage2_exec-serial.obj `if test -f 'serial.c'; then $(CYGPATH_W) 'serial.c'; else $(CYGPATH_W) '$(srcdir)/serial.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-serial.Tpo" "$(DEPDIR)/pre_stage2_exec-serial.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-serial.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='serial.c' object='pre_stage2_exec-serial.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-serial.obj `if test -f 'serial.c'; then $(CYGPATH_W) 'serial.c'; else $(CYGPATH_W) '$(srcdir)/serial.c'; fi` -- --pre_stage2_exec-smp-imps.o: smp-imps.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-smp-imps.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-smp-imps.Tpo" -c -o pre_stage2_exec-smp-imps.o `test -f 'smp-imps.c' || echo '$(srcdir)/'`smp-imps.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-smp-imps.Tpo" "$(DEPDIR)/pre_stage2_exec-smp-imps.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-smp-imps.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='smp-imps.c' object='pre_stage2_exec-smp-imps.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-smp-imps.o `test -f 'smp-imps.c' || echo '$(srcdir)/'`smp-imps.c -- --pre_stage2_exec-smp-imps.obj: smp-imps.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-smp-imps.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-smp-imps.Tpo" -c -o pre_stage2_exec-smp-imps.obj `if test -f 'smp-imps.c'; then $(CYGPATH_W) 'smp-imps.c'; else $(CYGPATH_W) '$(srcdir)/smp-imps.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-smp-imps.Tpo" "$(DEPDIR)/pre_stage2_exec-smp-imps.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-smp-imps.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='smp-imps.c' object='pre_stage2_exec-smp-imps.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-smp-imps.obj `if test -f 'smp-imps.c'; then $(CYGPATH_W) 'smp-imps.c'; else $(CYGPATH_W) '$(srcdir)/smp-imps.c'; fi` -- --pre_stage2_exec-stage2.o: stage2.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-stage2.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-stage2.Tpo" -c -o pre_stage2_exec-stage2.o `test -f 'stage2.c' || echo '$(srcdir)/'`stage2.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-stage2.Tpo" "$(DEPDIR)/pre_stage2_exec-stage2.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-stage2.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage2.c' object='pre_stage2_exec-stage2.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-stage2.o `test -f 'stage2.c' || echo '$(srcdir)/'`stage2.c -- --pre_stage2_exec-stage2.obj: stage2.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-stage2.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-stage2.Tpo" -c -o pre_stage2_exec-stage2.obj `if test -f 'stage2.c'; then $(CYGPATH_W) 'stage2.c'; else $(CYGPATH_W) '$(srcdir)/stage2.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-stage2.Tpo" "$(DEPDIR)/pre_stage2_exec-stage2.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-stage2.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage2.c' object='pre_stage2_exec-stage2.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-stage2.obj `if test -f 'stage2.c'; then $(CYGPATH_W) 'stage2.c'; else $(CYGPATH_W) '$(srcdir)/stage2.c'; fi` -- --pre_stage2_exec-terminfo.o: terminfo.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-terminfo.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-terminfo.Tpo" -c -o pre_stage2_exec-terminfo.o `test -f 'terminfo.c' || echo '$(srcdir)/'`terminfo.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-terminfo.Tpo" "$(DEPDIR)/pre_stage2_exec-terminfo.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-terminfo.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='terminfo.c' object='pre_stage2_exec-terminfo.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-terminfo.o `test -f 'terminfo.c' || echo '$(srcdir)/'`terminfo.c -- --pre_stage2_exec-terminfo.obj: terminfo.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-terminfo.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-terminfo.Tpo" -c -o pre_stage2_exec-terminfo.obj `if test -f 'terminfo.c'; then $(CYGPATH_W) 'terminfo.c'; else $(CYGPATH_W) '$(srcdir)/terminfo.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-terminfo.Tpo" "$(DEPDIR)/pre_stage2_exec-terminfo.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-terminfo.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='terminfo.c' object='pre_stage2_exec-terminfo.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-terminfo.obj `if test -f 'terminfo.c'; then $(CYGPATH_W) 'terminfo.c'; else $(CYGPATH_W) '$(srcdir)/terminfo.c'; fi` -- --pre_stage2_exec-tparm.o: tparm.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-tparm.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-tparm.Tpo" -c -o pre_stage2_exec-tparm.o `test -f 'tparm.c' || echo '$(srcdir)/'`tparm.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-tparm.Tpo" "$(DEPDIR)/pre_stage2_exec-tparm.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-tparm.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tparm.c' object='pre_stage2_exec-tparm.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-tparm.o `test -f 'tparm.c' || echo '$(srcdir)/'`tparm.c -- --pre_stage2_exec-tparm.obj: tparm.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-tparm.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-tparm.Tpo" -c -o pre_stage2_exec-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/pre_stage2_exec-tparm.Tpo" "$(DEPDIR)/pre_stage2_exec-tparm.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-tparm.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tparm.c' object='pre_stage2_exec-tparm.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi` -- --reiserfs_stage1_5_exec-common.o: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo" -c -o reiserfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='reiserfs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c -- --reiserfs_stage1_5_exec-common.obj: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo" -c -o reiserfs_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 -f "$(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='reiserfs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi` -- --reiserfs_stage1_5_exec-char_io.o: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Tpo" -c -o reiserfs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='reiserfs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c -- --reiserfs_stage1_5_exec-char_io.obj: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Tpo" -c -o reiserfs_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 -f "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='reiserfs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_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` -- --reiserfs_stage1_5_exec-disk_io.o: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Tpo" -c -o reiserfs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='reiserfs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c -- --reiserfs_stage1_5_exec-disk_io.obj: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Tpo" -c -o reiserfs_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 -f "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='reiserfs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_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` -- --reiserfs_stage1_5_exec-stage1_5.o: stage1_5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Tpo" -c -o reiserfs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='reiserfs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c -- --reiserfs_stage1_5_exec-stage1_5.obj: stage1_5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Tpo" -c -o reiserfs_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 -f "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='reiserfs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_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` -- --reiserfs_stage1_5_exec-fsys_reiserfs.o: fsys_reiserfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-fsys_reiserfs.o -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Tpo" -c -o reiserfs_stage1_5_exec-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_reiserfs.c' object='reiserfs_stage1_5_exec-fsys_reiserfs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c -- --reiserfs_stage1_5_exec-fsys_reiserfs.obj: fsys_reiserfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-fsys_reiserfs.obj -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Tpo" -c -o reiserfs_stage1_5_exec-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_reiserfs.c' object='reiserfs_stage1_5_exec-fsys_reiserfs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi` -- --reiserfs_stage1_5_exec-bios.o: bios.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Tpo" -c -o reiserfs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='reiserfs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c -- --reiserfs_stage1_5_exec-bios.obj: bios.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Tpo" -c -o reiserfs_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 -f "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='reiserfs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi` -- --ufs2_stage1_5_exec-common.o: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-common.Tpo" -c -o ufs2_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-common.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='ufs2_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c -- --ufs2_stage1_5_exec-common.obj: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-common.Tpo" -c -o ufs2_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 -f "$(DEPDIR)/ufs2_stage1_5_exec-common.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='ufs2_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi` -- --ufs2_stage1_5_exec-char_io.o: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Tpo" -c -o ufs2_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='ufs2_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c -- --ufs2_stage1_5_exec-char_io.obj: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Tpo" -c -o ufs2_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 -f "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='ufs2_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_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` -- --ufs2_stage1_5_exec-disk_io.o: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Tpo" -c -o ufs2_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='ufs2_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c -- --ufs2_stage1_5_exec-disk_io.obj: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Tpo" -c -o ufs2_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 -f "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='ufs2_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_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` -- --ufs2_stage1_5_exec-stage1_5.o: stage1_5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Tpo" -c -o ufs2_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='ufs2_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c -- --ufs2_stage1_5_exec-stage1_5.obj: stage1_5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Tpo" -c -o ufs2_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 -f "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='ufs2_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_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` -- --ufs2_stage1_5_exec-fsys_ufs2.o: fsys_ufs2.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-fsys_ufs2.o -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Tpo" -c -o ufs2_stage1_5_exec-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ufs2.c' object='ufs2_stage1_5_exec-fsys_ufs2.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c -- --ufs2_stage1_5_exec-fsys_ufs2.obj: fsys_ufs2.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-fsys_ufs2.obj -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Tpo" -c -o ufs2_stage1_5_exec-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ufs2.c' object='ufs2_stage1_5_exec-fsys_ufs2.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi` -- --ufs2_stage1_5_exec-bios.o: bios.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-bios.Tpo" -c -o ufs2_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-bios.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='ufs2_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c -- --ufs2_stage1_5_exec-bios.obj: bios.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-bios.Tpo" -c -o ufs2_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 -f "$(DEPDIR)/ufs2_stage1_5_exec-bios.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='ufs2_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi` -- --vstafs_stage1_5_exec-common.o: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-common.Tpo" -c -o vstafs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-common.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='vstafs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c -- --vstafs_stage1_5_exec-common.obj: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-common.Tpo" -c -o vstafs_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 -f "$(DEPDIR)/vstafs_stage1_5_exec-common.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='vstafs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi` -- --vstafs_stage1_5_exec-char_io.o: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Tpo" -c -o vstafs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='vstafs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c -- --vstafs_stage1_5_exec-char_io.obj: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Tpo" -c -o vstafs_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 -f "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='vstafs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_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` -- --vstafs_stage1_5_exec-disk_io.o: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Tpo" -c -o vstafs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='vstafs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c -- --vstafs_stage1_5_exec-disk_io.obj: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Tpo" -c -o vstafs_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 -f "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='vstafs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_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` -- --vstafs_stage1_5_exec-stage1_5.o: stage1_5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Tpo" -c -o vstafs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='vstafs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c -- --vstafs_stage1_5_exec-stage1_5.obj: stage1_5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Tpo" -c -o vstafs_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 -f "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='vstafs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_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` -- --vstafs_stage1_5_exec-fsys_vstafs.o: fsys_vstafs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-fsys_vstafs.o -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Tpo" -c -o vstafs_stage1_5_exec-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_vstafs.c' object='vstafs_stage1_5_exec-fsys_vstafs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c -- --vstafs_stage1_5_exec-fsys_vstafs.obj: fsys_vstafs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-fsys_vstafs.obj -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Tpo" -c -o vstafs_stage1_5_exec-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_vstafs.c' object='vstafs_stage1_5_exec-fsys_vstafs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi` -- --vstafs_stage1_5_exec-bios.o: bios.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-bios.Tpo" -c -o vstafs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='vstafs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c -- --vstafs_stage1_5_exec-bios.obj: bios.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-bios.Tpo" -c -o vstafs_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 -f "$(DEPDIR)/vstafs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='vstafs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi` -- --xfs_stage1_5_exec-common.o: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-common.Tpo" -c -o xfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/xfs_stage1_5_exec-common.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='xfs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c -- --xfs_stage1_5_exec-common.obj: common.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-common.Tpo" -c -o xfs_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 -f "$(DEPDIR)/xfs_stage1_5_exec-common.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-common.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='xfs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi` -- --xfs_stage1_5_exec-char_io.o: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-char_io.Tpo" -c -o xfs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/xfs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='xfs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c -- --xfs_stage1_5_exec-char_io.obj: char_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-char_io.Tpo" -c -o xfs_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 -f "$(DEPDIR)/xfs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-char_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='xfs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_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` -- --xfs_stage1_5_exec-disk_io.o: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Tpo" -c -o xfs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='xfs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c -- --xfs_stage1_5_exec-disk_io.obj: disk_io.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Tpo" -c -o xfs_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 -f "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='xfs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_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` -- --xfs_stage1_5_exec-stage1_5.o: stage1_5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Tpo" -c -o xfs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='xfs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c -- --xfs_stage1_5_exec-stage1_5.obj: stage1_5.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Tpo" -c -o xfs_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 -f "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='xfs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_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` -- --xfs_stage1_5_exec-fsys_xfs.o: fsys_xfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-fsys_xfs.o -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Tpo" -c -o xfs_stage1_5_exec-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_xfs.c' object='xfs_stage1_5_exec-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c -- --xfs_stage1_5_exec-fsys_xfs.obj: fsys_xfs.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-fsys_xfs.obj -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Tpo" -c -o xfs_stage1_5_exec-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_xfs.c' object='xfs_stage1_5_exec-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi` -- --xfs_stage1_5_exec-bios.o: bios.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-bios.Tpo" -c -o xfs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/xfs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='xfs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c -- --xfs_stage1_5_exec-bios.obj: bios.c --@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-bios.Tpo" -c -o xfs_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 -f "$(DEPDIR)/xfs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-bios.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='xfs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi` --uninstall-info-am: --install-pkglibDATA: $(pkglib_DATA) -- @$(NORMAL_INSTALL) -- test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)" -- @list='$(pkglib_DATA)'; for p in $$list; do \ -- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ -- f=$(am__strip_dir) \ -- echo " $(pkglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \ -- $(pkglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \ -- done -- --uninstall-pkglibDATA: -- @$(NORMAL_UNINSTALL) -- @list='$(pkglib_DATA)'; for p in $$list; do \ -- f=$(am__strip_dir) \ -- echo " rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \ -- rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \ -- done -- --ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- mkid -fID $$unique --tags: TAGS -- --TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -- $(TAGS_FILES) $(LISP) -- tags=; \ -- here=`pwd`; \ -- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -- test -n "$$unique" || unique=$$empty_fix; \ -- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -- $$tags $$unique; \ -- fi --ctags: CTAGS --CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -- $(TAGS_FILES) $(LISP) -- tags=; \ -- here=`pwd`; \ -- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- test -z "$(CTAGS_ARGS)$$tags$$unique" \ -- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -- $$tags $$unique -- --GTAGS: -- here=`$(am__cd) $(top_builddir) && pwd` \ -- && cd $(top_srcdir) \ -- && gtags -i $(GTAGS_ARGS) $$here -- --distclean-tags: -- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -- --check-TESTS: $(TESTS) -- @failed=0; all=0; xfail=0; xpass=0; skip=0; \ -- srcdir=$(srcdir); export srcdir; \ -- list='$(TESTS)'; \ -- if test -n "$$list"; then \ -- for tst in $$list; do \ -- if test -f ./$$tst; then dir=./; \ -- elif test -f $$tst; then dir=; \ -- else dir="$(srcdir)/"; fi; \ -- if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ -- all=`expr $$all + 1`; \ -- case " $(XFAIL_TESTS) " in \ -- *" $$tst "*) \ -- xpass=`expr $$xpass + 1`; \ -- failed=`expr $$failed + 1`; \ -- echo "XPASS: $$tst"; \ -- ;; \ -- *) \ -- echo "PASS: $$tst"; \ -- ;; \ -- esac; \ -- elif test $$? -ne 77; then \ -- all=`expr $$all + 1`; \ -- case " $(XFAIL_TESTS) " in \ -- *" $$tst "*) \ -- xfail=`expr $$xfail + 1`; \ -- echo "XFAIL: $$tst"; \ -- ;; \ -- *) \ -- failed=`expr $$failed + 1`; \ -- echo "FAIL: $$tst"; \ -- ;; \ -- esac; \ -- else \ -- skip=`expr $$skip + 1`; \ -- echo "SKIP: $$tst"; \ -- fi; \ -- done; \ -- if test "$$failed" -eq 0; then \ -- if test "$$xfail" -eq 0; then \ -- banner="All $$all tests passed"; \ -- else \ -- banner="All $$all tests behaved as expected ($$xfail expected failures)"; \ -- fi; \ -- else \ -- if test "$$xpass" -eq 0; then \ -- banner="$$failed of $$all tests failed"; \ -- else \ -- banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \ -- fi; \ -- fi; \ -- dashes="$$banner"; \ -- skipped=""; \ -- if test "$$skip" -ne 0; then \ -- skipped="($$skip tests were not run)"; \ -- test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ -- dashes="$$skipped"; \ -- fi; \ -- report=""; \ -- if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ -- report="Please report to $(PACKAGE_BUGREPORT)"; \ -- test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ -- dashes="$$report"; \ -- fi; \ -- dashes=`echo "$$dashes" | sed s/./=/g`; \ -- echo "$$dashes"; \ -- echo "$$banner"; \ -- test -z "$$skipped" || echo "$$skipped"; \ -- test -z "$$report" || echo "$$report"; \ -- echo "$$dashes"; \ -- test "$$failed" -eq 0; \ -- else :; fi -- --distdir: $(DISTFILES) -- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ -- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -- list='$(DISTFILES)'; for file in $$list; do \ -- case $$file in \ -- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ -- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ -- esac; \ -- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ -- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -- if test "$$dir" != "$$file" && test "$$dir" != "."; then \ -- dir="/$$dir"; \ -- $(mkdir_p) "$(distdir)$$dir"; \ -- else \ -- dir=''; \ -- fi; \ -- if test -d $$d/$$file; then \ -- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -- fi; \ -- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -- else \ -- test -f $(distdir)/$$file \ -- || cp -p $$d/$$file $(distdir)/$$file \ -- || exit 1; \ -- fi; \ -- done --check-am: all-am -- $(MAKE) $(AM_MAKEFLAGS) check-TESTS --check: $(BUILT_SOURCES) -- $(MAKE) $(AM_MAKEFLAGS) check-am --all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(SCRIPTS) $(DATA) \ -- $(HEADERS) --installdirs: -- for dir in "$(DESTDIR)$(pkglibdir)"; do \ -- test -z "$$dir" || $(mkdir_p) "$$dir"; \ -- done --install: $(BUILT_SOURCES) -- $(MAKE) $(AM_MAKEFLAGS) install-am --install-exec: install-exec-am --install-data: install-data-am --uninstall: uninstall-am -- --install-am: all-am -- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -- --installcheck: installcheck-am --install-strip: -- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ -- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ -- `test -z '$(STRIP)' || \ -- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install --mostlyclean-generic: -- -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) -- --clean-generic: -- -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) -- --distclean-generic: -- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -- --maintainer-clean-generic: -- @echo "This command is intended for maintainers to use" -- @echo "it deletes files that may require special tools to rebuild." -- -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) --clean: clean-am -- --clean-am: clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS \ -- mostlyclean-am -- --distclean: distclean-am -- -rm -rf ./$(DEPDIR) -- -rm -f Makefile --distclean-am: clean-am distclean-compile distclean-generic \ -- distclean-tags -- --dvi: dvi-am -- --dvi-am: -- --html: html-am -- --info: info-am -- --info-am: -- --install-data-am: -- --install-exec-am: install-pkglibDATA -- --install-info: install-info-am -- --install-man: -- --installcheck-am: -- --maintainer-clean: maintainer-clean-am -- -rm -rf ./$(DEPDIR) -- -rm -f Makefile --maintainer-clean-am: distclean-am maintainer-clean-generic -- --mostlyclean: mostlyclean-am -- --mostlyclean-am: mostlyclean-compile mostlyclean-generic -- --pdf: pdf-am -- --pdf-am: -- --ps: ps-am -- --ps-am: -- --uninstall-am: uninstall-info-am uninstall-pkglibDATA -- --.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \ -- clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS ctags \ -- distclean distclean-compile distclean-generic distclean-tags \ -- distdir dvi dvi-am html html-am info info-am install \ -- install-am install-data install-data-am install-exec \ -- install-exec-am install-info install-info-am install-man \ -- install-pkglibDATA install-strip installcheck installcheck-am \ -- installdirs maintainer-clean maintainer-clean-generic \ -- mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ -- ps ps-am tags uninstall uninstall-am uninstall-info-am \ -- uninstall-pkglibDATA -- -- --stage2_size.h: pre_stage2 -- -rm -f stage2_size.h -- set dummy `ls -l pre_stage2`; \ -- echo "#define STAGE2_SIZE $$6" > stage2_size.h -- --# XXX: automake doesn't provide a way to specify dependencies for object --# files explicitly, so we must write this by a general Makefile scheme. --# If automake change the naming scheme for per-executable objects, this --# will be broken. --start_exec-start.$(OBJEXT): stage2_size.h -- --stage2: pre_stage2 start -- -rm -f stage2 -- cat start pre_stage2 > stage2 -- --start_eltorito_exec-start.$(OBJEXT): stage2_size.h -- --stage2_eltorito: pre_stage2 start_eltorito -- -rm -f stage2_eltorito -- cat start_eltorito pre_stage2 > stage2_eltorito -- --diskless_size.h: diskless -- -rm -f $@ -- set dummy `ls -l $^`; \ -- echo "#define DISKLESS_SIZE $$6" > $@ -- --# XXX: See the comment for start_exec-start.o. --nbloader_exec-nbloader.$(OBJEXT): diskless_size.h -- --# For nbgrub target. --nbgrub: nbloader diskless -- -rm -f $@ -- cat $^ > $@ -- --# XXX: See the comment for start_exec-start.o. --pxeloader_exec-pxeloader.$(OBJEXT): diskless_size.h -- --# For pxegrub target. --pxegrub: pxeloader diskless -- -rm -f $@ -- cat $^ > $@ --.exec: -- $(OBJCOPY) -O binary $< $@ --# Tell versions [3.59,3.63) of GNU make to not export all variables. --# Otherwise a system limit (for SysV at least) may be exceeded. --.NOEXPORT: -diff --git a/stage2/asm.S b/stage2/asm.S -index 34b6e7d..5c4dd5e 100644 ---- a/stage2/asm.S -+++ b/stage2/asm.S -@@ -98,7 +98,7 @@ VARIABLE(version_string) - .string VERSION - VARIABLE(config_file) - #ifndef STAGE1_5 -- .string "/boot/grub/menu.lst" -+ .string "/boot/grub/grub.conf" - #else /* STAGE1_5 */ - .long 0xffffffff - .string "/boot/grub/stage2" -@@ -1622,36 +1622,78 @@ ENTRY(set_vbe_mode) - */ - - ENTRY(gateA20) -+ pushl %ebx -+ pushl %edx -+ call testA20 -+ jnz 1f -+ call A20_BIOS -+ call testA20 -+ jnz 1f -+ call A20_PORT92 -+ call testA20 -+ jnz 1f -+ call A20_KBDCTL -+ call testA20 -+ jnz 1f -+ movl $0,%eax -+ jmp 2f -+1: -+ movl $-1,%eax -+2: -+ popl %edx -+ popl %ebx -+ ret -+ -+testA20: -+ movl 0x500,%eax -+ movl 0x100500,%ebx -+ notl %eax -+ movl %eax,0x100500 -+ cmpl %eax,0x500 -+ pushfl -+ movl %ebx,0x100500 -+ notl %eax -+ movl %eax,0x500 -+ popfl -+ ret -+ -+A20_BIOS: - /* first, try a BIOS call */ -- pushl %ebp -- movl 8(%esp), %edx - - call EXT_C(prot_to_real) - - .code16 -- movw $0x2400, %ax -- testw %dx, %dx -- jz 1f -- incw %ax -+ movw $0x2401, %ax - 1: stc - int $0x15 -- jnc 2f -- -- /* set non-zero if failed */ -- movb $1, %ah -- -- /* save the status */ --2: movb %ah, %dl - - DATA32 call EXT_C(real_to_prot) - .code32 -+ ret - -- popl %ebp -- testb %dl, %dl -- jnz 3f -+A20_PORT92: -+ /* -+ * try to switch gateA20 using PORT92, the "Fast A20 and Init" -+ * register -+ */ -+ mov $0x92, %dx -+ inb %dx, %al -+ /* skip the port92 code if it's unimplemented (read returns 0xff) */ -+ cmpb $0xff, %al -+ jz 6f -+ -+ /* set bit1, the ALT_A20_GATE bit */ -+ orb $2, %al -+ /* and $0xfd, %al */ -+ -+ /* clear the INIT_NOW bit; don't accidently reset the machine */ -+ and $0xfe, %al -+ outb %al, %dx -+6: - ret - --3: /* use keyboard controller */ -+A20_KBDCTL: -+ /* use keyboard controller */ - pushl %eax - - call gloop1 -@@ -1665,11 +1707,7 @@ gloopint1: - jnz gloopint1 - - movb $KB_OUTPUT_MASK, %al -- cmpb $0, 0x8(%esp) -- jz gdoit -- - orb $KB_A20_ENABLE, %al --gdoit: - outb $K_RDWR - - call gloop1 -@@ -1994,8 +2032,25 @@ ENTRY(console_getkey) - call EXT_C(prot_to_real) - .code16 - -+.again: -+ mov $0x11, %ah /* poll kbd */ - int $0x16 - -+ jz .again -+#if 0 -+/* XXX handle serial here? -- pj */ -+ jnz .kbd -+#endif -+.kbd: -+ mov $0x10, %ah -+ int $0x16 -+ cmp $0xe0, %al -+ jnz .not_ext -+ xor %al, %al -+.not_ext: -+ and %al, %al -+ jz .func_key -+.func_key: - movw %ax, %dx /* real_to_prot uses %eax */ - call translate_keycode - call remap_ascii_char -@@ -2003,7 +2058,7 @@ ENTRY(console_getkey) - DATA32 call EXT_C(real_to_prot) - .code32 - -- movw %dx, %ax -+ mov %dx, %ax - - pop %ebp - ret -@@ -2029,7 +2084,7 @@ ENTRY(console_checkkey) - call EXT_C(prot_to_real) /* enter real mode */ - .code16 - -- movb $0x1, %ah -+ movb $0x11, %ah - int $0x16 - - DATA32 jz notpending -@@ -2051,6 +2106,37 @@ pending: - pop %ebp - ret - -+ -+/* -+ * int console_keystatus (void) -+ * BIOS call "INT 16H Function 02H" to get keyboard modifier status -+ * Call with %ah = 0x2 -+ * Return: %al = keyboard state: -+ * bit 3: alt key down -+ * bit 2: ctrl key down -+ * bit 1: left shift key down -+ * bit 0: right shift key down -+ */ -+ENTRY(console_keystatus) -+ push %ebp -+ -+ call EXT_C(prot_to_real) -+ .code16 -+ -+ movb $0x12, %ah -+ int $0x16 -+ movw %ax, %dx -+ -+ DATA32 call EXT_C(real_to_prot) -+ .code32 -+ -+ movw %dx, %ax -+ -+ /* Mask out numlock, capslock and insert state. */ -+ andl $0x0f0f, %eax -+ pop %ebp -+ ret -+ - - /* - * int console_getxy (void) -@@ -2216,6 +2302,156 @@ ENTRY(console_setcursor) - pop %ebx - pop %ebp - ret -+ -+/* graphics mode functions */ -+#ifdef SUPPORT_GRAPHICS -+VARIABLE(cursorX) -+.word 0 -+VARIABLE(cursorY) -+.word 0 -+VARIABLE(cursorCount) -+.word 0 -+VARIABLE(cursorBuf) -+.byte 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -+ -+ -+/* -+ * int set_videomode(mode) -+ * BIOS call "INT 10H Function 0h" to set video mode -+ * Call with %ah = 0x0 -+ * %al = video mode -+ * Returns old videomode. -+ */ -+ENTRY(set_videomode) -+ push %ebp -+ push %ebx -+ push %ecx -+ -+ movb 0x10(%esp), %cl -+ -+ call EXT_C(prot_to_real) -+ .code16 -+ -+ xorw %bx, %bx -+ movb $0xf, %ah -+ int $0x10 /* Get Current Video mode */ -+ movb %al, %ch -+ xorb %ah, %ah -+ movb %cl, %al -+ int $0x10 /* Set Video mode */ -+ -+ DATA32 call EXT_C(real_to_prot) -+ .code32 -+ -+ xorb %ah, %ah -+ movb %ch, %al -+ -+ pop %ecx -+ pop %ebx -+ pop %ebp -+ ret -+ -+ -+/* -+ * unsigned char * graphics_get_font() -+ * BIOS call "INT 10H Function 11h" to set font -+ * Call with %ah = 0x11 -+ */ -+ENTRY(graphics_get_font) -+ push %ebp -+ push %ebx -+ push %ecx -+ push %edx -+ -+ call EXT_C(prot_to_real) -+ .code16 -+ -+ movw $0x1130, %ax -+ movb $6, %bh /* font 8x16 */ -+ int $0x10 -+ movw %bp, %dx -+ movw %es, %cx -+ -+ DATA32 call EXT_C(real_to_prot) -+ .code32 -+ -+ xorl %eax, %eax -+ movw %cx, %ax -+ shll $4, %eax -+ movw %dx, %ax -+ -+ pop %edx -+ pop %ecx -+ pop %ebx -+ pop %ebp -+ ret -+ -+ -+ -+/* -+ * graphics_set_palette(index, red, green, blue) -+ * BIOS call "INT 10H Function 10h" to set individual dac register -+ * Call with %ah = 0x10 -+ * %bx = register number -+ * %ch = new value for green (0-63) -+ * %cl = new value for blue (0-63) -+ * %dh = new value for red (0-63) -+ */ -+ -+ENTRY(graphics_set_palette) -+ push %ebp -+ push %eax -+ push %ebx -+ push %ecx -+ push %edx -+ -+ movw $0x3c8, %bx /* address write mode register */ -+ -+ /* wait vertical retrace */ -+ -+ movw $0x3da, %dx -+l1b: inb %dx, %al /* wait vertical active display */ -+ test $8, %al -+ jnz l1b -+ -+l2b: inb %dx, %al /* wait vertical retrace */ -+ test $8, %al -+ jnz l2b -+ -+ mov %bx, %dx -+ movb 0x18(%esp), %al /* index */ -+ outb %al, %dx -+ inc %dx -+ -+ movb 0x1c(%esp), %al /* red */ -+ outb %al, %dx -+ -+ movb 0x20(%esp), %al /* green */ -+ outb %al, %dx -+ -+ movb 0x24(%esp), %al /* blue */ -+ outb %al, %dx -+ -+ movw 0x18(%esp), %bx -+ -+ call EXT_C(prot_to_real) -+ .code16 -+ -+ movb %bl, %bh -+ movw $0x1000, %ax -+ int $0x10 -+ -+ DATA32 call EXT_C(real_to_prot) -+ .code32 -+ -+ pop %edx -+ pop %ecx -+ pop %ebx -+ pop %eax -+ pop %ebp -+ ret -+ -+#endif /* SUPPORT_GRAPHICS */ - - /* - * getrtsecs() -diff --git a/stage2/boot.c b/stage2/boot.c -index 4185d23..e30daf8 100644 ---- a/stage2/boot.c -+++ b/stage2/boot.c -@@ -25,10 +25,14 @@ - #include "imgact_aout.h" - #include "i386-elf.h" - -+#ifndef PLATFORM_EFI - static int cur_addr; -+#endif - entry_func entry_addr; -+#ifndef PLATFORM_EFI - static struct mod_list mll[99]; - static int linux_mem_size; -+#endif - - /* - * The next two functions, 'load_image' and 'load_module', are the building -@@ -40,6 +44,9 @@ kernel_t - load_image (char *kernel, char *arg, kernel_t suggested_type, - unsigned long load_flags) - { -+#ifdef PLATFORM_EFI -+ return grub_load_linux (kernel, arg); -+#else - int len, i, exec_type = 0, align_4k = 1; - entry_func real_entry_addr = 0; - kernel_t type = KERNEL_TYPE_NONE; -@@ -221,6 +228,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - { - int big_linux = 0; - int setup_sects = lh->setup_sects; -+ int cmdline_size = 0xff; - - if (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0200) - { -@@ -248,6 +256,14 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - lh->cl_offset = LINUX_CL_OFFSET; - lh->setup_move_size = LINUX_SETUP_MOVE_SIZE; - } -+ -+ if (lh->version >= 0x0206) -+ { -+ cmdline_size = lh->cmdline_size; -+ if (cmdline_size > (LINUX_CL_END_OFFSET - LINUX_CL_OFFSET)) -+ cmdline_size = LINUX_CL_END_OFFSET - LINUX_CL_OFFSET; -+ } -+ - } - else - { -@@ -265,7 +281,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - setup_sects = LINUX_DEFAULT_SETUP_SECTS; - - data_len = setup_sects << 9; -- text_len = filemax - data_len - SECTOR_SIZE; -+ text_len = filemax - data_len - get_sector_size(current_drive); - - linux_data_tmp_addr = (char *) LINUX_BZIMAGE_ADDR + text_len; - -@@ -280,8 +296,12 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - errnum = ERR_WONT_FIT; - else - { -- grub_printf (" [Linux-%s, setup=0x%x, size=0x%x]\n", -- (big_linux ? "bzImage" : "zImage"), data_len, text_len); -+ grub_verbose_printf (" [Linux-%s, setup=0x%x, size=0x%x]\n", -+ (big_linux ? "bzImage" : "zImage"), -+ data_len, text_len); -+ -+ if (silent_grub) -+ lh->vid_mode = 0x0f04; - - /* Video mode selection support. What a mess! */ - /* NOTE: Even the word "mess" is not still enough to -@@ -375,14 +395,15 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - - /* It is possible that DATA_LEN + SECTOR_SIZE is greater than - MULTIBOOT_SEARCH, so the data may have been read partially. */ -- if (data_len + SECTOR_SIZE <= MULTIBOOT_SEARCH) -+ if (data_len + get_sector_size(current_drive) <= MULTIBOOT_SEARCH) - grub_memmove (linux_data_tmp_addr, buffer, -- data_len + SECTOR_SIZE); -+ data_len + get_sector_size(current_drive)); - else - { - grub_memmove (linux_data_tmp_addr, buffer, MULTIBOOT_SEARCH); - grub_read (linux_data_tmp_addr + MULTIBOOT_SEARCH, -- data_len + SECTOR_SIZE - MULTIBOOT_SEARCH); -+ data_len + get_sector_size(current_drive) -+ - MULTIBOOT_SEARCH); - } - - if (lh->header != LINUX_MAGIC_SIGNATURE || -@@ -404,7 +425,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - char *src = skip_to (0, arg); - char *dest = linux_data_tmp_addr + LINUX_CL_OFFSET; - -- while (dest < linux_data_tmp_addr + LINUX_CL_END_OFFSET && *src) -+ while (dest < linux_data_tmp_addr + LINUX_CL_OFFSET + cmdline_size && *src) - *(dest++) = *(src++); - - /* Old Linux kernels have problems determining the amount of -@@ -425,7 +446,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - if (! grub_strstr (arg, "mem=") - && ! (load_flags & KERNEL_LOAD_NO_MEM_OPTION) - && lh->version < 0x0203 /* kernel version < 2.4.18 */ -- && dest + 15 < linux_data_tmp_addr + LINUX_CL_END_OFFSET) -+ && dest + 15 < linux_data_tmp_addr + LINUX_CL_OFFSET + cmdline_size) - { - *dest++ = ' '; - *dest++ = 'm'; -@@ -441,7 +462,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - } - - /* offset into file */ -- grub_seek (data_len + SECTOR_SIZE); -+ grub_seek (data_len + get_sector_size(current_drive)); - - cur_addr = (int) linux_data_tmp_addr + LINUX_SETUP_MOVE_SIZE; - grub_read ((char *) LINUX_BZIMAGE_ADDR, text_len); -@@ -487,7 +508,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - mbi.syms.a.addr = 0; - mbi.syms.a.pad = 0; - -- printf (" [%s-%s", str2, str); -+ verbose_printf (" [%s-%s", str2, str); - - str = ""; - -@@ -496,7 +517,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - if (flags & MULTIBOOT_AOUT_KLUDGE) - str = "-and-data"; - -- printf (", loadaddr=0x%x, text%s=0x%x", cur_addr, str, text_len); -+ verbose_printf (", loadaddr=0x%x, text%s=0x%x", cur_addr, str, text_len); - - /* read text, then read data */ - if (grub_read ((char *) RAW_ADDR (cur_addr), text_len) == text_len) -@@ -509,9 +530,9 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - if (align_4k) - cur_addr = (cur_addr + 0xFFF) & 0xFFFFF000; - else -- printf (", C"); -+ verbose_printf (", C"); - -- printf (", data=0x%x", data_len); -+ verbose_printf (", data=0x%x", data_len); - - if ((grub_read ((char *) RAW_ADDR (cur_addr), data_len) - != data_len) -@@ -525,7 +546,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - memset ((char *) RAW_ADDR (cur_addr), 0, bss_len); - cur_addr += bss_len; - -- printf (", bss=0x%x", bss_len); -+ verbose_printf (", bss=0x%x", bss_len); - } - } - else if (!errnum) -@@ -545,7 +566,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - *((int *) RAW_ADDR (cur_addr)) = pu.aout->a_syms; - cur_addr += sizeof (int); - -- printf (", symtab=0x%x", pu.aout->a_syms); -+ verbose_printf (", symtab=0x%x", pu.aout->a_syms); - - if (grub_read ((char *) RAW_ADDR (cur_addr), pu.aout->a_syms) - == pu.aout->a_syms) -@@ -562,7 +583,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - - i -= sizeof (int); - -- printf (", strtab=0x%x", i); -+ verbose_printf (", strtab=0x%x", i); - - symtab_err = (grub_read ((char *) RAW_ADDR (cur_addr), i) - != i); -@@ -576,7 +597,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - - if (symtab_err) - { -- printf ("(bad)"); -+ verbose_printf ("(bad)"); - cur_addr = orig_addr; - mbi.syms.a.tabsize = 0; - mbi.syms.a.strsize = 0; -@@ -630,7 +651,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - /* mark memory as used */ - if (cur_addr < memaddr + memsiz) - cur_addr = memaddr + memsiz; -- printf (", <0x%x:0x%x:0x%x>", memaddr, filesiz, -+ verbose_printf (", <0x%x:0x%x:0x%x>", memaddr, filesiz, - memsiz - filesiz); - /* increment number of segments */ - loaded++; -@@ -676,7 +697,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - shdr = (Elf32_Shdr *) mbi.syms.e.addr; - cur_addr += tab_size; - -- printf (", shtab=0x%x", cur_addr); -+ verbose_printf (", shtab=0x%x", cur_addr); - - for (i = 0; i < mbi.syms.e.num; i++) - { -@@ -718,7 +739,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - - if (symtab_err) - { -- printf ("(bad)"); -+ verbose_printf ("(bad)"); - mbi.syms.e.num = 0; - mbi.syms.e.size = 0; - mbi.syms.e.addr = 0; -@@ -733,7 +754,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - - if (! errnum) - { -- grub_printf (", entry=0x%x]\n", (unsigned) entry_addr); -+ grub_verbose_printf (", entry=0x%x]\n", (unsigned) entry_addr); - - /* If the entry address is physically different from that of the ELF - header, correct it here. */ -@@ -756,8 +777,10 @@ load_image (char *kernel, char *arg, kernel_t suggested_type, - } - - return type; -+#endif - } - -+#ifndef PLATFORM_EFI - int - load_module (char *module, char *arg) - { -@@ -776,7 +799,7 @@ load_module (char *module, char *arg) - return 0; - } - -- printf (" [Multiboot-module @ 0x%x, 0x%x bytes]\n", cur_addr, len); -+ verbose_printf (" [Multiboot-module @ 0x%x, 0x%x bytes]\n", cur_addr, len); - - /* these two simply need to be set if any modules are loaded at all */ - mbi.flags |= MB_INFO_MODS; -@@ -794,11 +817,19 @@ load_module (char *module, char *arg) - grub_close (); - return 1; - } -+#endif - - int - load_initrd (char *initrd) - { -- int len; -+#ifdef PLATFORM_EFI -+#ifndef NO_DECOMPRESSION -+ no_decompression = 1; -+#endif -+ return grub_load_initrd (initrd); -+#else -+ int len, next_addr; -+ char *singleimage, *pos; - unsigned long moveto; - unsigned long max_addr; - struct linux_kernel_header *lh -@@ -807,16 +838,24 @@ load_initrd (char *initrd) - #ifndef NO_DECOMPRESSION - no_decompression = 1; - #endif -- -- if (! grub_open (initrd)) -- goto fail; -+ len = 0; -+ next_addr = cur_addr; - -- len = grub_read ((char *) cur_addr, -1); -- if (! len) -- { -- grub_close (); -- goto fail; -- } -+ /* loop over all initrd images and concatenate them in memory */ -+ singleimage = strtok_r(initrd," \t",&pos); -+ while (singleimage) { -+ if (! grub_open (singleimage)) -+ continue; -+ -+ len += grub_read ((char *) next_addr, -1); -+ grub_close (); -+ -+ next_addr = cur_addr + len; -+ singleimage = strtok_r(NULL," \t",&pos); -+ } -+ -+ if (!len) -+ goto fail; - - if (linux_mem_size) - moveto = linux_mem_size; -@@ -824,8 +863,12 @@ load_initrd (char *initrd) - moveto = (mbi.mem_upper + 0x400) << 10; - - moveto = (moveto - len) & 0xfffff000; -+#if 0 - max_addr = (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0203 - ? lh->initrd_addr_max : LINUX_INITRD_MAX_ADDRESS); -+#else -+ max_addr = LINUX_INITRD_MAX_ADDRESS; -+#endif - if (moveto + len >= max_addr) - moveto = (max_addr - len) & 0xfffff000; - -@@ -836,13 +879,12 @@ load_initrd (char *initrd) - moveto -= 0x10000; - memmove ((void *) RAW_ADDR (moveto), (void *) cur_addr, len); - -- printf (" [Linux-initrd @ 0x%x, 0x%x bytes]\n", moveto, len); -+ verbose_printf (" [Linux-initrd @ 0x%x, 0x%x bytes]\n", moveto, len); - - /* FIXME: Should check if the kernel supports INITRD. */ - lh->ramdisk_image = RAW_ADDR (moveto); - lh->ramdisk_size = len; - -- grub_close (); - - fail: - -@@ -851,9 +893,11 @@ load_initrd (char *initrd) - #endif - - return ! errnum; -+#endif - } - - -+#ifndef PLATFORM_EFI - #ifdef GRUB_UTIL - /* Dummy function to fake the *BSD boot. */ - static void -@@ -1018,3 +1062,5 @@ bsd_boot (kernel_t type, int bootdev, char *arg) - extended_memory, mbi.mem_lower); - } - } -+#endif -+ -diff --git a/stage2/builtins.c b/stage2/builtins.c -index 3e08a86..b95b181 100644 ---- a/stage2/builtins.c -+++ b/stage2/builtins.c -@@ -56,6 +56,9 @@ static int bootdev; - /* True when the debug mode is turned on, and false - when it is turned off. */ - int debug = 0; -+int debug_graphics = 0; -+/* Print what we're booting */ -+int grub_verbose = 0; - /* The default entry. */ - int default_entry = 0; - /* The fallback entry. */ -@@ -117,6 +120,27 @@ check_password (char *entered, char* expected, password_t type) - case PASSWORD_MD5: - return check_md5_password (entered, expected); - #endif -+ -+ case PASSWORD_ENCRYPTED: -+ if (grub_memcmp (expected, "$1$", 3) == 0) -+ return check_md5_password (entered, expected); -+ else if (grub_memcmp (expected, "$5$", 3) == 0) -+ { -+ char *hashed; -+ -+ hashed = sha256_crypt (entered, expected); -+ return hashed == NULL || strcmp (expected, hashed); -+ } -+ else if (grub_memcmp (expected, "$6$", 3) == 0) -+ { -+ char *hashed; -+ -+ hashed = sha512_crypt (entered, expected); -+ return hashed == NULL || strcmp (expected, hashed); -+ } -+ else -+ return strcmp (entered, expected); -+ - default: - /* unsupported password type: be secure */ - return 1; -@@ -131,62 +155,98 @@ disk_read_print_func (int sector, int offset, int length) - } - - -+/* blocklist_read_helper nee disk_read_blocklist_func was a nested -+ * function, to which pointers were taken and exposed globally. Even -+ * in the GNU-C nested functions extension, they have local linkage, -+ * and aren't guaranteed to be accessable *at all* outside of their -+ * containing scope. -+ * -+ * Above and beyond all of that, the variables within blocklist_func_context -+ * are originally local variables, with local (not even static) linkage, -+ * from within blocklist_func. These were each referenced by -+ * disk_read_blocklist_func, which is only called from other functions -+ * through a globally scoped pointer. -+ * -+ * The documentation in GCC actually uses the words "all hell will break -+ * loose" to describe this scenario. -+ * -+ * Also, "start_sector" was also used uninitialized, but gcc doesn't warn -+ * about it (possibly because of the scoping madness?) -+ */ -+ -+static struct { -+ int start_sector; -+ int num_sectors; -+ int num_entries; -+ int last_length; -+} blocklist_func_context = { -+ .start_sector = 0, -+ .num_sectors = 0, -+ .num_entries = 0, -+ .last_length = 0 -+}; -+ -+/* Collect contiguous blocks into one entry as many as possible, -+ and print the blocklist notation on the screen. */ -+static void -+blocklist_read_helper (int sector, int offset, int length) -+{ -+ int *start_sector = &blocklist_func_context.start_sector; -+ int *num_sectors = &blocklist_func_context.num_sectors; -+ int *num_entries = &blocklist_func_context.num_entries; -+ int *last_length = &blocklist_func_context.last_length; -+ int sector_size = get_sector_size(current_drive); -+ -+ if (*num_sectors > 0) -+ { -+ if (*start_sector + *num_sectors == sector -+ && offset == 0 && *last_length == sector_size) -+ { -+ *num_sectors++; -+ *last_length = length; -+ return; -+ } -+ else -+ { -+ if (*last_length == sector_size) -+ grub_printf ("%s%d+%d", *num_entries ? "," : "", -+ *start_sector - part_start, *num_sectors); -+ else if (*num_sectors > 1) -+ grub_printf ("%s%d+%d,%d[0-%d]", *num_entries ? "," : "", -+ *start_sector - part_start, *num_sectors-1, -+ *start_sector + *num_sectors-1 - part_start, -+ *last_length); -+ else -+ grub_printf ("%s%d[0-%d]", *num_entries ? "," : "", -+ *start_sector - part_start, *last_length); -+ *num_entries++; -+ *num_sectors = 0; -+ } -+ } -+ -+ if (offset > 0) -+ { -+ grub_printf("%s%d[%d-%d]", *num_entries ? "," : "", -+ sector-part_start, offset, offset+length); -+ *num_entries++; -+ } -+ else -+ { -+ *start_sector = sector; -+ *num_sectors = 1; -+ *last_length = length; -+ } -+} -+ - /* blocklist */ - static int - blocklist_func (char *arg, int flags) - { - char *dummy = (char *) RAW_ADDR (0x100000); -- int start_sector; -- int num_sectors = 0; -- int num_entries = 0; -- int last_length = 0; - -- auto void disk_read_blocklist_func (int sector, int offset, int length); -- -- /* Collect contiguous blocks into one entry as many as possible, -- and print the blocklist notation on the screen. */ -- auto void disk_read_blocklist_func (int sector, int offset, int length) -- { -- if (num_sectors > 0) -- { -- if (start_sector + num_sectors == sector -- && offset == 0 && last_length == SECTOR_SIZE) -- { -- num_sectors++; -- last_length = length; -- return; -- } -- else -- { -- if (last_length == SECTOR_SIZE) -- grub_printf ("%s%d+%d", num_entries ? "," : "", -- start_sector - part_start, num_sectors); -- else if (num_sectors > 1) -- grub_printf ("%s%d+%d,%d[0-%d]", num_entries ? "," : "", -- start_sector - part_start, num_sectors-1, -- start_sector + num_sectors-1 - part_start, -- last_length); -- else -- grub_printf ("%s%d[0-%d]", num_entries ? "," : "", -- start_sector - part_start, last_length); -- num_entries++; -- num_sectors = 0; -- } -- } -- -- if (offset > 0) -- { -- grub_printf("%s%d[%d-%d]", num_entries ? "," : "", -- sector-part_start, offset, offset+length); -- num_entries++; -- } -- else -- { -- start_sector = sector; -- num_sectors = 1; -- last_length = length; -- } -- } -+ int *start_sector = &blocklist_func_context.start_sector; -+ int *num_sectors = &blocklist_func_context.num_sectors; -+ int *num_entries = &blocklist_func_context.num_entries; - - /* Open the file. */ - if (! grub_open (arg)) -@@ -206,15 +266,15 @@ blocklist_func (char *arg, int flags) - grub_printf (")"); - - /* Read in the whole file to DUMMY. */ -- disk_read_hook = disk_read_blocklist_func; -+ disk_read_hook = blocklist_read_helper; - if (! grub_read (dummy, -1)) - goto fail; - - /* The last entry may not be printed yet. Don't check if it is a - * full sector, since it doesn't matter if we read too much. */ -- if (num_sectors > 0) -- grub_printf ("%s%d+%d", num_entries ? "," : "", -- start_sector - part_start, num_sectors); -+ if (*num_sectors > 0) -+ grub_printf ("%s%d+%d", *num_entries ? "," : "", -+ *start_sector - part_start, *num_sectors); - - grub_printf ("\n"); - -@@ -237,12 +297,25 @@ static struct builtin builtin_blocklist = - static int - boot_func (char *arg, int flags) - { -+ struct term_entry *prev_term = current_term; - /* Clear the int15 handler if we can boot the kernel successfully. - This assumes that the boot code never fails only if KERNEL_TYPE is - not KERNEL_TYPE_NONE. Is this assumption is bad? */ - if (kernel_type != KERNEL_TYPE_NONE) - unset_int15_handler (); - -+ /* if our terminal needed initialization, we should shut it down -+ * before booting the kernel, but we want to save what it was so -+ * we can come back if needed */ -+ if (current_term->shutdown) -+ { -+ (*current_term->shutdown)(); -+ current_term = term_table; /* assumption: console is first */ -+ } -+ -+ if (silent_grub) -+ setcursor(0); -+ - #ifdef SUPPORT_NETBOOT - /* Shut down the networking. */ - cleanup_net (); -@@ -250,11 +323,13 @@ boot_func (char *arg, int flags) - - switch (kernel_type) - { -+#ifndef PLATFORM_EFI - case KERNEL_TYPE_FREEBSD: - case KERNEL_TYPE_NETBSD: - /* *BSD */ - bsd_boot (kernel_type, bootdev, (char *) mbi.cmdline); - break; -+#endif - - case KERNEL_TYPE_LINUX: - /* Linux */ -@@ -296,16 +371,25 @@ boot_func (char *arg, int flags) - chain_stage1 (0, BOOTSEC_LOCATION, boot_part_addr); - break; - -+#ifndef PLATFORM_EFI - case KERNEL_TYPE_MULTIBOOT: - /* Multiboot */ - multi_boot ((int) entry_addr, (int) &mbi); - break; -+#endif - - default: - errnum = ERR_BOOT_COMMAND; - return 1; - } - -+ /* if we get back here, we should go back to what our term was before */ -+ current_term = prev_term; -+ if (current_term->startup) -+ /* if our terminal fails to initialize, fall back to console since -+ * it should always work */ -+ if ((*current_term->startup)() == 0) -+ current_term = term_table; /* we know that console is first */ - return 0; - } - -@@ -402,6 +486,10 @@ static struct builtin builtin_cat = - static int - chainloader_func (char *arg, int flags) - { -+#ifdef PLATFORM_EFI -+ kernel_type = grub_chainloader(arg); -+ return kernel_type == KERNEL_TYPE_NONE; -+#else - int force = 0; - char *file = arg; - -@@ -458,6 +546,7 @@ chainloader_func (char *arg, int flags) - errnum = ERR_NONE; - - return 0; -+#endif - } - - static struct builtin builtin_chainloader = -@@ -564,89 +653,88 @@ static struct builtin builtin_cmp = - /* Set new colors used for the menu interface. Support two methods to - specify a color name: a direct integer representation and a symbolic - color name. An example of the latter is "blink-light-gray/blue". */ --static int --color_func (char *arg, int flags) --{ -- char *normal; -- char *highlight; -- int new_normal_color; -- int new_highlight_color; -- static char *color_list[16] = -- { -- "black", -- "blue", -- "green", -- "cyan", -- "red", -- "magenta", -- "brown", -- "light-gray", -- "dark-gray", -- "light-blue", -- "light-green", -- "light-cyan", -- "light-red", -- "light-magenta", -- "yellow", -- "white" -- }; -+static const char * const color_list[16] = -+{ -+ "black", -+ "blue", -+ "green", -+ "cyan", -+ "red", -+ "magenta", -+ "brown", -+ "light-gray", -+ "dark-gray", -+ "light-blue", -+ "light-green", -+ "light-cyan", -+ "light-red", -+ "light-magenta", -+ "yellow", -+ "white" -+}; - -- auto int color_number (char *str); -+/* Convert the color name STR into the magical number. */ -+static int color_number (char *str) -+{ -+ char *ptr; -+ int i; -+ int color = 0; - -- /* Convert the color name STR into the magical number. */ -- auto int color_number (char *str) -- { -- char *ptr; -- int i; -- int color = 0; -- -- /* Find the separator. */ -- for (ptr = str; *ptr && *ptr != '/'; ptr++) -- ; -+ /* Find the separator. */ -+ for (ptr = str; *ptr && *ptr != '/'; ptr++) -+ ; - -- /* If not found, return -1. */ -- if (! *ptr) -- return -1; -+ /* If not found, return -1. */ -+ if (! *ptr) -+ return -1; - -- /* Terminate the string STR. */ -- *ptr++ = 0; -+ /* Terminate the string STR. */ -+ *ptr++ = 0; - -- /* If STR contains the prefix "blink-", then set the `blink' bit -- in COLOR. */ -- if (substring ("blink-", str) <= 0) -- { -- color = 0x80; -- str += 6; -- } -- -- /* Search for the color name. */ -- for (i = 0; i < 16; i++) -- if (grub_strcmp (color_list[i], str) == 0) -- { -- color |= i; -- break; -- } -+ /* If STR contains the prefix "blink-", then set the `blink' bit -+ in COLOR. */ -+ if (substring ("blink-", str) <= 0) -+ { -+ color = 0x80; -+ str += 6; -+ } -+ -+ /* Search for the color name. */ -+ for (i = 0; i < 16; i++) -+ if (grub_strcmp (color_list[i], str) == 0) -+ { -+ color |= i; -+ break; -+ } - -- if (i == 16) -- return -1; -+ if (i == 16) -+ return -1; - -- str = ptr; -- nul_terminate (str); -+ str = ptr; -+ nul_terminate (str); - -- /* Search for the color name. */ -- for (i = 0; i < 8; i++) -- if (grub_strcmp (color_list[i], str) == 0) -- { -- color |= i << 4; -- break; -- } -+ /* Search for the color name. */ -+ for (i = 0; i < 8; i++) -+ if (grub_strcmp (color_list[i], str) == 0) -+ { -+ color |= i << 4; -+ break; -+ } - -- if (i == 8) -- return -1; -+ if (i == 8) -+ return -1; -+ -+ return color; -+} -+ -+static int -+color_func (char *arg, int flags) -+{ -+ char *normal; -+ char *highlight; -+ int new_normal_color; -+ int new_highlight_color; - -- return color; -- } -- - normal = arg; - highlight = skip_to (0, arg); - -@@ -690,7 +778,6 @@ static struct builtin builtin_color = - " But only the first eight names can be used for BG. You can prefix" - " \"blink-\" to FG if you want a blinking foreground color." - }; -- - - /* configfile */ - static int -@@ -737,14 +824,18 @@ static struct builtin builtin_configfile = - static int - debug_func (char *arg, int flags) - { -- if (debug) -+ int *whichdebug = &debug; -+ if (arg && !strcmp(arg, "--graphics")) -+ whichdebug = &debug_graphics; -+ -+ if (*whichdebug) - { -- debug = 0; -+ *whichdebug = 0; - grub_printf (" Debug mode is turned off\n"); - } - else - { -- debug = 1; -+ *whichdebug = 1; - grub_printf (" Debug mode is turned on\n"); - } - -@@ -755,17 +846,61 @@ static struct builtin builtin_debug = - { - "debug", - debug_func, -- BUILTIN_CMDLINE, -+ BUILTIN_CMDLINE | BUILTIN_MENU, - "debug", - "Turn on/off the debug mode." - }; - - -+/* verbose */ -+static int -+verbose_func (char *arg, int flags) -+{ -+ if (grub_verbose) -+ { -+ grub_verbose = 0; -+ grub_printf (" Verbose mode is turned off\n"); -+ } -+ else -+ { -+ grub_verbose = 1; -+ grub_printf (" Verbose mode is turned on\n"); -+ } -+ -+ return 0; -+} -+ -+static struct builtin builtin_verbose = -+{ -+ "verbose", -+ verbose_func, -+ BUILTIN_CMDLINE | BUILTIN_MENU, -+ "verbose", -+ "Turn on/off verbose output." -+}; -+ -+ -+#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL) && !defined(PLATFORM_EFI) -+static int savedefault_helper(int); -+#endif - /* default */ - static int - default_func (char *arg, int flags) - { - #ifndef SUPPORT_DISKLESS -+#ifndef GRUB_UTIL -+#ifndef PLATFORM_EFI -+ /* Has a forced once-only default been specified? */ -+ if ((saved_entryno & STAGE2_ONCEONLY_ENTRY) != 0) -+ { -+ int old_defaults=saved_entryno & ~STAGE2_ONCEONLY_ENTRY; -+ grub_timeout = 0; -+ default_entry = old_defaults >> 8; -+ savedefault_helper(old_defaults & 0xff); -+ return 0; -+ } -+#endif -+#endif - if (grub_strcmp (arg, "saved") == 0) - { - default_entry = saved_entryno; -@@ -792,7 +927,7 @@ static struct builtin builtin_default = - }; - - --#ifdef GRUB_UTIL -+#if defined(GRUB_UTIL) || defined(PLATFORM_EFI) - /* device */ - static int - device_func (char *arg, int flags) -@@ -800,16 +935,17 @@ device_func (char *arg, int flags) - char *drive = arg; - char *device; - -- /* Get the drive number from DRIVE. */ -- if (! set_device (drive)) -- return 1; -- - /* Get the device argument. */ - device = skip_to (0, drive); -- -+ -+ nul_terminate (drive); - /* Terminate DEVICE. */ - nul_terminate (device); - -+ /* Get the drive number from DRIVE. */ -+ if (! set_device (drive)) -+ return 1; -+ - if (! *device || ! check_device (device)) - { - errnum = ERR_FILE_NOT_FOUND; -@@ -817,7 +953,7 @@ device_func (char *arg, int flags) - } - - assign_device_name (current_drive, device); -- -+ - return 0; - } - -@@ -828,9 +964,20 @@ static struct builtin builtin_device = - BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST, - "device DRIVE DEVICE", - "Specify DEVICE as the actual drive for a BIOS drive DRIVE. This command" -- " can be used only in the grub shell." -+ " can be used only in the grub shell and in EFI." - }; --#endif /* GRUB_UTIL */ -+#endif /* defined(GRUB_UTIL) || defined(PLATFORM_EFI) */ -+#ifdef PLATFORM_EFI -+static struct builtin builtin_efimap = -+{ -+ "efimap", -+ device_func, -+ BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST, -+ "efimap DRIVE DEVICE", -+ "Specify DEVICE as the actual drive for a BIOS drive DRIVE. This command" -+ " can be used only in EFI." -+}; -+#endif /* PLATFORM_EFI */ - - - #ifdef SUPPORT_NETBOOT -@@ -852,6 +999,139 @@ static struct builtin builtin_dhcp = - }; - #endif /* SUPPORT_NETBOOT */ - -+static int terminal_func (char *arg, int flags); -+ -+#ifdef SUPPORT_GRAPHICS -+ -+static int splashimage_func(char *arg, int flags) { -+ char splashimage[64]; -+ int i; -+ -+ /* filename can only be 64 characters due to our buffer size */ -+ if (strlen(arg) > 63) -+ return 1; -+ if (flags == BUILTIN_CMDLINE) { -+ if (!grub_open(arg)) -+ return 1; -+ grub_close(); -+ } -+ -+ strcpy(splashimage, arg); -+ -+ /* get rid of TERM_NEED_INIT from the graphics terminal. */ -+ for (i = 0; term_table[i].name; i++) { -+ if (grub_strcmp (term_table[i].name, "graphics") == 0) { -+ term_table[i].flags &= ~TERM_NEED_INIT; -+ break; -+ } -+ } -+ -+ graphics_set_splash(splashimage); -+ -+ if (flags == BUILTIN_CMDLINE && graphics_inited) { -+ graphics_end(); -+ graphics_init(); -+ graphics_cls(); -+ } -+ -+ /* FIXME: should we be explicitly switching the terminal as a -+ * side effect here? */ -+ terminal_func("graphics", flags); -+ -+ return 0; -+} -+ -+static struct builtin builtin_splashimage = -+{ -+ "splashimage", -+ splashimage_func, -+ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, -+ "splashimage FILE", -+ "Load FILE as the background image when in graphics mode." -+}; -+ -+ -+/* foreground */ -+static int -+foreground_func(char *arg, int flags) -+{ -+ if (grub_strlen(arg) == 6) { -+ int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2; -+ int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2; -+ int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2; -+ -+ foreground = (r << 16) | (g << 8) | b; -+ if (graphics_inited) -+ graphics_set_palette(15, r, g, b); -+ -+ return (0); -+ } -+ -+ return (1); -+} -+ -+static struct builtin builtin_foreground = -+{ -+ "foreground", -+ foreground_func, -+ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, -+ "foreground RRGGBB", -+ "Sets the foreground color when in graphics mode." -+ "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal." -+}; -+ -+ -+/* background */ -+static int -+background_func(char *arg, int flags) -+{ -+ if (grub_strlen(arg) == 6) { -+ int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2; -+ int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2; -+ int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2; -+ -+ background = (r << 16) | (g << 8) | b; -+ if (graphics_inited) -+ graphics_set_palette(0, r, g, b); -+ return (0); -+ } -+ -+ return (1); -+} -+ -+static struct builtin builtin_background = -+{ -+ "background", -+ background_func, -+ BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST, -+ "background RRGGBB", -+ "Sets the background color when in graphics mode." -+ "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal." -+}; -+ -+#endif /* SUPPORT_GRAPHICS */ -+ -+ -+/* clear */ -+static int -+clear_func() -+{ -+ if (current_term->cls) -+ current_term->cls(); -+ -+ return 0; -+} -+ -+static struct builtin builtin_clear = -+{ -+ "clear", -+ clear_func, -+ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, -+ "clear", -+ "Clear the screen" -+}; -+ -+#ifndef PLATFORM_EFI - - /* displayapm */ - static int -@@ -893,6 +1173,7 @@ static struct builtin builtin_displayapm = - "displayapm", - "Display APM BIOS information." - }; -+#endif /* !PLATFORM_EFI */ - - - /* displaymem */ -@@ -912,11 +1193,11 @@ displaymem_func (char *arg, int flags) - if (mbi.flags & MB_INFO_MEM_MAP) - { - struct AddrRangeDesc *map = (struct AddrRangeDesc *) mbi.mmap_addr; -- int end_addr = mbi.mmap_addr + mbi.mmap_length; -+ unsigned long end_addr = mbi.mmap_addr + mbi.mmap_length; - - grub_printf (" [Address Range Descriptor entries " - "immediately follow (values are 64-bit)]\n"); -- while (end_addr > (int) map) -+ while (end_addr > (unsigned long) map) - { - char *str; - -@@ -924,15 +1205,10 @@ displaymem_func (char *arg, int flags) - str = "Usable RAM"; - else - str = "Reserved"; -- grub_printf (" %s: Base Address: 0x%x X 4GB + 0x%x,\n" -- " Length: 0x%x X 4GB + 0x%x bytes\n", -- str, -- (unsigned long) (map->BaseAddr >> 32), -- (unsigned long) (map->BaseAddr & 0xFFFFFFFF), -- (unsigned long) (map->Length >> 32), -- (unsigned long) (map->Length & 0xFFFFFFFF)); -- -- map = ((struct AddrRangeDesc *) (((int) map) + 4 + map->size)); -+ grub_printf (" %s: Base Address: 0x%lx Length: 0x%lx bytes\n", -+ str, map->BaseAddr, map->Length); -+ -+ map = ((struct AddrRangeDesc *) (((unsigned long) map) + 4 + map->size)); - } - } - -@@ -1009,6 +1285,7 @@ static struct builtin builtin_dump = - }; - #endif /* GRUB_UTIL */ - -+#ifndef PLATFORM_EFI - - static char embed_info[32]; - /* embed */ -@@ -1143,6 +1420,7 @@ static struct builtin builtin_embed = - " is a drive, or in the \"bootloader\" area if DEVICE is a FFS partition." - " Print the number of sectors which STAGE1_5 occupies if successful." - }; -+#endif /* ! PLATFORM_EFI */ - - - /* fallback */ -@@ -1230,17 +1508,19 @@ find_func (char *arg, int flags) - } - - /* Hard disks. */ -- for (drive = 0x80; drive < 0x88; drive++) -+ for (drive = 0x80; drive < (0x80 + MAX_HD_NUM); drive++) - { - unsigned long part = 0xFFFFFF; -- unsigned long start, len, offset, ext_offset; -- int type, entry; -- char buf[SECTOR_SIZE]; -+ unsigned long start, len, offset, ext_offset, gpt_offset; -+ int type, entry, gpt_count, gpt_size; -+ int sector_size = get_sector_size(drive); -+ char buf[sector_size]; - - current_drive = drive; - while (next_partition (drive, 0xFFFFFF, &part, &type, - &start, &len, &offset, &entry, -- &ext_offset, buf)) -+ &ext_offset, &gpt_offset, -+ &gpt_count, &gpt_size, buf)) - { - if (type != PC_SLICE_TYPE_NONE - && ! IS_PC_SLICE_TYPE_BSD (type) -@@ -1301,6 +1581,59 @@ static struct builtin builtin_find = - "Search for the filename FILENAME in all of partitions and print the list of" - " the devices which contain the file." - }; -+ -+/* findiso */ -+ -+/* Search for an ISO 9660 partition. */ -+static int -+findiso_func (char *arg, int flags) -+{ -+ unsigned long drive; -+ unsigned long tmp_drive = saved_drive; -+ unsigned long tmp_partition = saved_partition; -+ -+ /* Hard disks. */ -+ for (drive = 0x80; drive < 0x89; drive++) -+ { -+ unsigned long part = 0xFFFFFF; -+ -+ if (drive == 0x88) -+ drive = 0x100; -+ -+ current_drive = drive; -+ current_partition = part; -+ -+ if (open_device ()) -+ { -+ char *type = get_fsys_type(); -+ if (!grub_strcmp(type, "iso9660")) -+ { -+ saved_drive = current_drive; -+ saved_partition = current_partition; -+ errnum = ERR_NONE; -+ return 0; -+ } -+ } -+ -+ /* We want to ignore any error here. */ -+ errnum = ERR_NONE; -+ } -+ -+ saved_drive = tmp_drive; -+ saved_partition = tmp_partition; -+ -+ errnum = ERR_FILE_NOT_FOUND; -+ return 1; -+} -+ -+static struct builtin builtin_findiso = -+{ -+ "findiso", -+ findiso_func, -+ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, -+ "findiso FILENAME", -+ "Set root to the first device with a valid ISO 9660 filesystem." -+}; - - - /* fstest */ -@@ -1679,6 +2012,7 @@ static struct builtin builtin_ifconfig = - }; - #endif /* SUPPORT_NETBOOT */ - -+#ifndef PLATFORM_EFI - - /* impsprobe */ - static int -@@ -1706,6 +2040,7 @@ static struct builtin builtin_impsprobe = - " configuration table and boot the various CPUs which are found into" - " a tight loop." - }; -+#endif /* ! PLATFORM_EFI */ - - - /* initrd */ -@@ -1738,8 +2073,82 @@ static struct builtin builtin_initrd = - " appropriate parameters in the Linux setup area in memory." - }; - -+#ifndef PLATFORM_EFI - - /* install */ -+static struct { -+ int saved_sector; -+ int installaddr; -+ int installlist; -+ int last_length; -+ char *stage2_first_buffer; -+} install_func_context = { -+ .saved_sector = 0, -+ .installaddr = 0, -+ .installlist = 0, -+ .last_length = SECTOR_SIZE, -+ .stage2_first_buffer = NULL, -+}; -+ -+/* Save the first sector of Stage2 in STAGE2_SECT. */ -+/* Formerly disk_read_savesect_func with local scope inside install_func */ -+static void -+install_savesect_helper(int sector, int offset, int length) -+{ -+ if (debug) -+ printf ("[%d]", sector); -+ -+ /* ReiserFS has files which sometimes contain data not aligned -+ on sector boundaries. Returning an error is better than -+ silently failing. */ -+ if (offset != 0 || length != SECTOR_SIZE) -+ errnum = ERR_UNALIGNED; -+ -+ install_func_context.saved_sector = sector; -+} -+ -+/* Write SECTOR to INSTALLLIST, and update INSTALLADDR and INSTALLSECT. */ -+/* Formerly disk_read_blocklist_func with local scope inside install_func */ -+static void -+install_blocklist_helper (int sector, int offset, int length) -+{ -+ int *installaddr = &install_func_context.installaddr; -+ int *installlist = &install_func_context.installlist; -+ char **stage2_first_buffer = &install_func_context.stage2_first_buffer; -+ /* Was the last sector full? */ -+ int *last_length = &install_func_context.last_length; -+ -+ if (debug) -+ printf("[%d]", sector); -+ -+ if (offset != 0 || *last_length != SECTOR_SIZE) -+ { -+ /* We found a non-sector-aligned data block. */ -+ errnum = ERR_UNALIGNED; -+ return; -+ } -+ -+ *last_length = length; -+ -+ if (*((unsigned long *) (*installlist - 4)) -+ + *((unsigned short *) *installlist) != sector -+ || *installlist == (int) *stage2_first_buffer + SECTOR_SIZE + 4) -+ { -+ *installlist -= 8; -+ -+ if (*((unsigned long *) (*installlist - 8))) -+ errnum = ERR_WONT_FIT; -+ else -+ { -+ *((unsigned short *) (*installlist + 2)) = (*installaddr >> 4); -+ *((unsigned long *) (*installlist - 4)) = sector; -+ } -+ } -+ -+ *((unsigned short *) *installlist) += 1; -+ *installaddr += 512; -+} -+ - static int - install_func (char *arg, int flags) - { -@@ -1747,8 +2156,12 @@ install_func (char *arg, int flags) - char *stage1_buffer = (char *) RAW_ADDR (0x100000); - char *stage2_buffer = stage1_buffer + SECTOR_SIZE; - char *old_sect = stage2_buffer + SECTOR_SIZE; -- char *stage2_first_buffer = old_sect + SECTOR_SIZE; -- char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE; -+ /* stage2_first_buffer used to be defined as: -+ * char *stage2_first_buffer = old_sect + SECTOR_SIZE; */ -+ char **stage2_first_buffer = &install_func_context.stage2_first_buffer; -+ /* and stage2_second_buffer was: -+ * char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE; */ -+ char *stage2_second_buffer = old_sect + SECTOR_SIZE + SECTOR_SIZE; - /* XXX: Probably SECTOR_SIZE is reasonable. */ - char *config_filename = stage2_second_buffer + SECTOR_SIZE; - char *dummy = config_filename + SECTOR_SIZE; -@@ -1757,10 +2170,11 @@ install_func (char *arg, int flags) - int src_drive, src_partition, src_part_start; - int i; - struct geometry dest_geom, src_geom; -- int saved_sector; -+ int *saved_sector = &install_func_context.saved_sector; - int stage2_first_sector, stage2_second_sector; - char *ptr; -- int installaddr, installlist; -+ int *installaddr = &install_func_context.installaddr; -+ int *installlist = &install_func_context.installlist; - /* Point to the location of the name of a configuration file in Stage 2. */ - char *config_file_location; - /* If FILE is a Stage 1.5? */ -@@ -1769,68 +2183,18 @@ install_func (char *arg, int flags) - int is_open = 0; - /* If LBA is forced? */ - int is_force_lba = 0; -- /* Was the last sector full? */ -- int last_length = SECTOR_SIZE; -+ int *last_length = &install_func_context.last_length; - -+ /* Reset state. */ -+ *last_length = SECTOR_SIZE; -+ -+ *stage2_first_buffer = old_sect + SECTOR_SIZE; - #ifdef GRUB_UTIL - /* If the Stage 2 is in a partition mounted by an OS, this will store - the filename under the OS. */ - char *stage2_os_file = 0; - #endif /* GRUB_UTIL */ - -- auto void disk_read_savesect_func (int sector, int offset, int length); -- auto void disk_read_blocklist_func (int sector, int offset, int length); -- -- /* Save the first sector of Stage2 in STAGE2_SECT. */ -- auto void disk_read_savesect_func (int sector, int offset, int length) -- { -- if (debug) -- printf ("[%d]", sector); -- -- /* ReiserFS has files which sometimes contain data not aligned -- on sector boundaries. Returning an error is better than -- silently failing. */ -- if (offset != 0 || length != SECTOR_SIZE) -- errnum = ERR_UNALIGNED; -- -- saved_sector = sector; -- } -- -- /* Write SECTOR to INSTALLLIST, and update INSTALLADDR and -- INSTALLSECT. */ -- auto void disk_read_blocklist_func (int sector, int offset, int length) -- { -- if (debug) -- printf("[%d]", sector); -- -- if (offset != 0 || last_length != SECTOR_SIZE) -- { -- /* We found a non-sector-aligned data block. */ -- errnum = ERR_UNALIGNED; -- return; -- } -- -- last_length = length; -- -- if (*((unsigned long *) (installlist - 4)) -- + *((unsigned short *) installlist) != sector -- || installlist == (int) stage2_first_buffer + SECTOR_SIZE + 4) -- { -- installlist -= 8; -- -- if (*((unsigned long *) (installlist - 8))) -- errnum = ERR_WONT_FIT; -- else -- { -- *((unsigned short *) (installlist + 2)) = (installaddr >> 4); -- *((unsigned long *) (installlist - 4)) = sector; -- } -- } -- -- *((unsigned short *) installlist) += 1; -- installaddr += 512; -- } -- - /* First, check the GNU-style long option. */ - while (1) - { -@@ -1862,10 +2226,10 @@ install_func (char *arg, int flags) - addr = skip_to (0, file); - - /* Get the installation address. */ -- if (! safe_parse_maxint (&addr, &installaddr)) -+ if (! safe_parse_maxint (&addr, installaddr)) - { - /* ADDR is not specified. */ -- installaddr = 0; -+ *installaddr = 0; - ptr = addr; - errnum = 0; - } -@@ -1961,17 +2325,17 @@ install_func (char *arg, int flags) - = 0x9090; - - /* Read the first sector of Stage 2. */ -- disk_read_hook = disk_read_savesect_func; -- if (grub_read (stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE) -+ disk_read_hook = install_savesect_helper; -+ if (grub_read (*stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE) - goto fail; - -- stage2_first_sector = saved_sector; -+ stage2_first_sector = *saved_sector; - - /* Read the second sector of Stage 2. */ - if (grub_read (stage2_second_buffer, SECTOR_SIZE) != SECTOR_SIZE) - goto fail; - -- stage2_second_sector = saved_sector; -+ stage2_second_sector = *saved_sector; - - /* Check for the version of Stage 2. */ - if (*((short *) (stage2_second_buffer + STAGE2_VER_MAJ_OFFS)) -@@ -1987,27 +2351,27 @@ install_func (char *arg, int flags) - - /* If INSTALLADDR is not specified explicitly in the command-line, - determine it by the Stage 2 id. */ -- if (! installaddr) -+ if (! *installaddr) - { - if (! is_stage1_5) - /* Stage 2. */ -- installaddr = 0x8000; -+ *installaddr = 0x8000; - else - /* Stage 1.5. */ -- installaddr = 0x2000; -+ *installaddr = 0x2000; - } - - *((unsigned long *) (stage1_buffer + STAGE1_STAGE2_SECTOR)) - = stage2_first_sector; - *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_ADDRESS)) -- = installaddr; -+ = *installaddr; - *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_SEGMENT)) -- = installaddr >> 4; -+ = *installaddr >> 4; - -- i = (int) stage2_first_buffer + SECTOR_SIZE - 4; -+ i = (int) *stage2_first_buffer + SECTOR_SIZE - 4; - while (*((unsigned long *) i)) - { -- if (i < (int) stage2_first_buffer -+ if (i < (int) *stage2_first_buffer - || (*((int *) (i - 4)) & 0x80000000) - || *((unsigned short *) i) >= 0xA00 - || *((short *) (i + 2)) == 0) -@@ -2021,13 +2385,13 @@ install_func (char *arg, int flags) - i -= 8; - } - -- installlist = (int) stage2_first_buffer + SECTOR_SIZE + 4; -- installaddr += SECTOR_SIZE; -+ *installlist = (int) *stage2_first_buffer + SECTOR_SIZE + 4; -+ *installaddr += SECTOR_SIZE; - - /* Read the whole of Stage2 except for the first sector. */ - grub_seek (SECTOR_SIZE); - -- disk_read_hook = disk_read_blocklist_func; -+ disk_read_hook = install_blocklist_helper; - if (! grub_read (dummy, -1)) - goto fail; - -@@ -2110,7 +2474,7 @@ install_func (char *arg, int flags) - /* Skip the first sector. */ - grub_seek (SECTOR_SIZE); - -- disk_read_hook = disk_read_savesect_func; -+ disk_read_hook = install_savesect_helper; - if (grub_read (stage2_buffer, SECTOR_SIZE) != SECTOR_SIZE) - goto fail; - -@@ -2180,7 +2544,7 @@ install_func (char *arg, int flags) - else - #endif /* GRUB_UTIL */ - { -- if (! devwrite (saved_sector - part_start, 1, stage2_buffer)) -+ if (! devwrite (*saved_sector - part_start, 1, stage2_buffer)) - goto fail; - } - } -@@ -2202,7 +2566,7 @@ install_func (char *arg, int flags) - goto fail; - } - -- if (fwrite (stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) -+ if (fwrite (*stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) - { - fclose (fp); - errnum = ERR_WRITE; -@@ -2229,7 +2593,7 @@ install_func (char *arg, int flags) - goto fail; - - if (! devwrite (stage2_first_sector - src_part_start, 1, -- stage2_first_buffer)) -+ *stage2_first_buffer)) - goto fail; - - if (! devwrite (stage2_second_sector - src_part_start, 1, -@@ -2322,6 +2686,7 @@ static struct builtin builtin_ioprobe = - "ioprobe DRIVE", - "Probe I/O ports used for the drive DRIVE." - }; -+#endif /* ! PLATFORM_EFI */ - - - /* kernel */ -@@ -2456,6 +2821,7 @@ static struct builtin builtin_makeactive = - " This command is limited to _primary_ PC partitions on a hard disk." - }; - -+#ifndef PLATFORM_EFI - - /* map */ - /* Map FROM_DRIVE to TO_DRIVE. */ -@@ -2519,6 +2885,7 @@ static struct builtin builtin_map = - " when you chain-load some operating systems, such as DOS, if such an" - " OS resides at a non-first drive." - }; -+#endif /* ! PLATFORM_EFI */ - - - #ifdef USE_MD5_PASSWORDS -@@ -2579,6 +2946,7 @@ static struct builtin builtin_md5crypt = - }; - #endif /* USE_MD5_PASSWORDS */ - -+#ifndef PLATFORM_EFI - - /* module */ - static int -@@ -2656,6 +3024,7 @@ static struct builtin builtin_modulenounzip = - "The same as `module', except that automatic decompression is" - " disabled." - }; -+#endif /* !PLATFORM_EFI */ - - - /* pager [on|off] */ -@@ -2698,7 +3067,6 @@ partnew_func (char *arg, int flags) - int start_cl, start_ch, start_dh; - int end_cl, end_ch, end_dh; - int entry; -- char mbr[512]; - - /* Convert a LBA address to a CHS address in the INT 13 format. */ - auto void lba_to_chs (int lba, int *cl, int *ch, int *dh); -@@ -2729,6 +3097,9 @@ partnew_func (char *arg, int flags) - return 1; - } - -+ int sector_size = get_sector_size(current_drive); -+ char mbr[sector_size]; -+ - /* The partition must a primary partition. */ - if ((current_partition >> 16) > 3 - || (current_partition & 0xFFFF) != 0xFFFF) -@@ -2762,7 +3133,7 @@ partnew_func (char *arg, int flags) - return 1; - - /* Read the MBR. */ -- if (! rawread (current_drive, 0, 0, SECTOR_SIZE, mbr)) -+ if (! rawread (current_drive, 0, 0, sector_size, mbr)) - return 1; - - /* Check if the new partition will fit in the disk. */ -@@ -2815,9 +3186,8 @@ parttype_func (char *arg, int flags) - { - int new_type; - unsigned long part = 0xFFFFFF; -- unsigned long start, len, offset, ext_offset; -- int entry, type; -- char mbr[512]; -+ unsigned long start, len, offset, ext_offset, gpt_offset; -+ int entry, type, gpt_count, gpt_size; - - /* Get the drive and the partition. */ - if (! set_device (arg)) -@@ -2829,6 +3199,9 @@ parttype_func (char *arg, int flags) - errnum = ERR_BAD_ARGUMENT; - return 1; - } -+ -+ int sector_size = get_sector_size(current_drive); -+ char mbr[sector_size]; - - /* The partition must be a PC slice. */ - if ((current_partition >> 16) == 0xFF -@@ -2853,8 +3226,15 @@ parttype_func (char *arg, int flags) - /* Look for the partition. */ - while (next_partition (current_drive, 0xFFFFFF, &part, &type, - &start, &len, &offset, &entry, -- &ext_offset, mbr)) -+ &ext_offset, &gpt_offset, &gpt_count, &gpt_size, mbr)) - { -+ /* The partition may not be a GPT partition. */ -+ if (gpt_offset != 0) -+ { -+ errnum = ERR_BAD_ARGUMENT; -+ return 1; -+ } -+ - if (part == current_partition) - { - /* Found. */ -@@ -2900,6 +3280,11 @@ password_func (char *arg, int flags) - arg = skip_to (0, arg); - } - #endif -+ else if (grub_memcmp (arg, "--encrypted", 5) == 0) -+ { -+ type = PASSWORD_ENCRYPTED; -+ arg = skip_to (0, arg); -+ } - if (grub_memcmp (arg, "--", 2) == 0) - { - type = PASSWORD_UNSUPPORTED; -@@ -2947,7 +3332,7 @@ static struct builtin builtin_password = - "password", - password_func, - BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_NO_ECHO, -- "password [--md5] PASSWD [FILE]", -+ "password [--md5|--encrypted] PASSWD [FILE]", - "If used in the first section of a menu file, disable all" - " interactive editing control (menu entry editor and" - " command line). If the password PASSWD is entered, it loads the" -@@ -2956,7 +3341,8 @@ static struct builtin builtin_password = - " instructions. You can also use it in the script section, in" - " which case it will ask for the password, before continueing." - " The option --md5 tells GRUB that PASSWD is encrypted with" -- " md5crypt." -+ " md5crypt, --encrypted that PASSWD is encrypted (with algorithm" -+ " specified in PASSWD: supported is md5, sha-256, sha-512)." - }; - - -@@ -2982,8 +3368,8 @@ static struct builtin builtin_pause = - "Print MESSAGE, then wait until a key is pressed." - }; - -+#if defined (GRUB_UTIL) || defined (PLATFORM_EFI) - --#ifdef GRUB_UTIL - /* quit */ - static int - quit_func (char *arg, int flags) -@@ -3002,7 +3388,7 @@ static struct builtin builtin_quit = - "quit", - "Exit from the GRUB shell." - }; --#endif /* GRUB_UTIL */ -+#endif /* defined (GRUB_UTIL) || defined (PLATFORM_EFI) */ - - - #ifdef SUPPORT_NETBOOT -@@ -3165,7 +3551,8 @@ real_root_func (char *arg, int attempt_mount) - return 1; - - /* Print the type of the filesystem. */ -- print_fsys_type (); -+ if (grub_verbose) -+ print_fsys_type (); - } - - return 0; -@@ -3217,146 +3604,181 @@ static struct builtin builtin_rootnoverify = - }; - - --/* savedefault */ -+ -+#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL) && !defined(PLATFORM_EFI) -+/* Write specified default entry number into stage2 file. */ - static int --savedefault_func (char *arg, int flags) -+savedefault_helper(int new_default) - { --#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL) -- unsigned long tmp_drive = saved_drive; -- unsigned long tmp_partition = saved_partition; -- char *default_file = (char *) DEFAULT_FILE_BUF; -- char buf[10]; -- char sect[SECTOR_SIZE]; -- int entryno; -- int sector_count = 0; -- int saved_sectors[2]; -- int saved_offsets[2]; -- int saved_lengths[2]; -- -- /* Save sector information about at most two sectors. */ -- auto void disk_read_savesect_func (int sector, int offset, int length); -- void disk_read_savesect_func (int sector, int offset, int length) -- { -- if (sector_count < 2) -- { -- saved_sectors[sector_count] = sector; -- saved_offsets[sector_count] = offset; -- saved_lengths[sector_count] = length; -- } -- sector_count++; -- } -- -- /* This command is only useful when you boot an entry from the menu -- interface. */ -- if (! (flags & BUILTIN_SCRIPT)) -+ char buffer[512]; -+ int *entryno_ptr; -+ -+ /* Get the geometry of the boot drive (i.e. the disk which contains -+ this stage2). */ -+ if (get_diskinfo (boot_drive, &buf_geom)) - { -- errnum = ERR_UNRECOGNIZED; -+ errnum = ERR_NO_DISK; - return 1; - } - -- /* Determine a saved entry number. */ -- if (*arg) -+ /* Load the second sector of this stage2. */ -+ if (! rawread (boot_drive, install_second_sector, 0, SECTOR_SIZE, buffer)) - { -- if (grub_memcmp (arg, "fallback", sizeof ("fallback") - 1) == 0) -- { -- int i; -- int index = 0; -- -- for (i = 0; i < MAX_FALLBACK_ENTRIES; i++) -- { -- if (fallback_entries[i] < 0) -- break; -- if (fallback_entries[i] == current_entryno) -- { -- index = i + 1; -- break; -- } -- } -- -- if (index >= MAX_FALLBACK_ENTRIES || fallback_entries[index] < 0) -- { -- /* This is the last. */ -- errnum = ERR_BAD_ARGUMENT; -- return 1; -- } -+ return 1; -+ } - -- entryno = fallback_entries[index]; -- } -- else if (! safe_parse_maxint (&arg, &entryno)) -- return 1; -+ /* Sanity check. */ -+ if (buffer[STAGE2_STAGE2_ID] != STAGE2_ID_STAGE2 -+ || *((short *) (buffer + STAGE2_VER_MAJ_OFFS)) != COMPAT_VERSION) -+ { -+ errnum = ERR_BAD_VERSION; -+ return 1; - } -- else -- entryno = current_entryno; -+ -+ entryno_ptr = (int *) (buffer + STAGE2_SAVED_ENTRYNO); - -- /* Open the default file. */ -- saved_drive = boot_drive; -- saved_partition = install_partition; -- if (grub_open (default_file)) -+ /* Check if the saved entry number differs from current entry number. */ -+ if (*entryno_ptr != new_default) - { -- int len; -+ /* Overwrite the saved entry number. */ -+ *entryno_ptr = new_default; - -- disk_read_hook = disk_read_savesect_func; -- len = grub_read (buf, sizeof (buf)); -- disk_read_hook = 0; -- grub_close (); -+ /* Save the image in the disk. */ -+ if (! rawwrite (boot_drive, install_second_sector, buffer)) -+ return 1; - -- if (len != sizeof (buf)) -- { -- /* This is too small. Do not modify the file manually, please! */ -- errnum = ERR_READ; -- goto fail; -- } -+ /* Clear the cache. */ -+ buf_track = -1; -+ } - -- if (sector_count > 2) -- { -- /* Is this possible?! Too fragmented! */ -- errnum = ERR_FSYS_CORRUPT; -- goto fail; -- } -- -- /* Set up a string to be written. */ -- grub_memset (buf, '\n', sizeof (buf)); -- grub_sprintf (buf, "%d", entryno); -- -- if (saved_lengths[0] < sizeof (buf)) -- { -- /* The file is anchored to another file and the first few bytes -- are spanned in two sectors. Uggh... */ -- if (! rawread (current_drive, saved_sectors[0], 0, SECTOR_SIZE, -- sect)) -- goto fail; -- grub_memmove (sect + saved_offsets[0], buf, saved_lengths[0]); -- if (! rawwrite (current_drive, saved_sectors[0], sect)) -- goto fail; -+ return 0; -+} -+#endif - -- if (! rawread (current_drive, saved_sectors[1], 0, SECTOR_SIZE, -- sect)) -- goto fail; -- grub_memmove (sect + saved_offsets[1], -- buf + saved_lengths[0], -- sizeof (buf) - saved_lengths[0]); -- if (! rawwrite (current_drive, saved_sectors[1], sect)) -- goto fail; -- } -+#if !defined(SUPPORT_DISKLESS) && defined(GRUB_UTIL) -+#define SECTOR_SIZE 0x200 -+/* -+ * Full implementation of new `savedefault' for GRUB shell. -+ * XXX This needs fixing for stage2 files which aren't accessible -+ * through a mounted filesystem. -+ */ -+static int -+savedefault_shell(char *arg, int flags) -+{ -+ char *stage2_os_file = "/boot/grub/stage2"; /* Default filename */ -+ FILE *fp; -+ char buffer[512]; -+ int *entryno_ptr; -+ int new_default = 0; -+ int old_default = 0; -+ -+ while (1) -+ { -+ if (grub_memcmp ("--stage2=", arg, sizeof ("--stage2=") - 1) == 0) -+ { -+ stage2_os_file = arg + sizeof ("--stage2=") - 1; -+ arg = skip_to (0, arg); -+ nul_terminate (stage2_os_file); -+ } -+ else if (grub_memcmp ("--default=", arg, sizeof ("--default=") - 1) == 0) -+ { -+ char *p = arg + sizeof ("--default=") - 1; -+ if (! safe_parse_maxint (&p, &new_default)) -+ return 1; -+ arg = skip_to (0, arg); -+ } -+ else if (grub_memcmp ("--once", arg, sizeof ("--once") - 1) == 0) -+ { -+ new_default <<= 8; -+ new_default |= STAGE2_ONCEONLY_ENTRY; -+ arg = skip_to (0, arg); -+ } - else -- { -- /* This is a simple case. It fits into a single sector. */ -- if (! rawread (current_drive, saved_sectors[0], 0, SECTOR_SIZE, -- sect)) -- goto fail; -- grub_memmove (sect + saved_offsets[0], buf, sizeof (buf)); -- if (! rawwrite (current_drive, saved_sectors[0], sect)) -- goto fail; -- } -+ break; -+ } - -- /* Clear the cache. */ -- buf_track = -1; -+ if (! (fp = fopen(stage2_os_file, "r+"))) -+ { -+ errnum = ERR_FILE_NOT_FOUND; -+ return 1; -+ } -+ -+ if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0) -+ { -+ fclose (fp); -+ errnum = ERR_BAD_VERSION; -+ return 1; -+ } -+ -+ if (fread (buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) -+ { -+ fclose (fp); -+ errnum = ERR_READ; -+ return 1; - } - -- fail: -- saved_drive = tmp_drive; -- saved_partition = tmp_partition; -- return errnum; -+ /* Sanity check. */ -+ if (buffer[STAGE2_STAGE2_ID] != STAGE2_ID_STAGE2 -+ || *((short *) (buffer + STAGE2_VER_MAJ_OFFS)) != COMPAT_VERSION) -+ { -+ errnum = ERR_BAD_VERSION; -+ return 1; -+ } -+ -+ entryno_ptr = (int *) (buffer + STAGE2_SAVED_ENTRYNO); -+ if (new_default & STAGE2_ONCEONLY_ENTRY) -+ { -+ old_default=*entryno_ptr; -+ *entryno_ptr = new_default + (old_default & 0xFF); -+ } -+ else -+ { -+ *entryno_ptr = new_default; -+ } -+ -+ if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0) -+ { -+ fclose (fp); -+ errnum = ERR_BAD_VERSION; -+ return 1; -+ } -+ -+ if (fwrite (buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE) -+ { -+ fclose (fp); -+ errnum = ERR_WRITE; -+ return 1; -+ } -+ -+ (void)fflush (fp); -+ fclose (fp); -+ return 0; -+} -+#undef SECTOR_SIZE -+#endif -+ -+/* savedefault */ -+static int -+savedefault_func (char *arg, int flags) -+{ -+#if !defined(SUPPORT_DISKLESS) -+#if !defined(GRUB_UTIL) -+#if !defined(PLATFORM_EFI) -+ /* This command is only useful when you boot an entry from the menu -+ interface. */ -+ if (! (flags & BUILTIN_SCRIPT)) -+ { -+ errnum = ERR_UNRECOGNIZED; -+ return 1; -+ } -+ -+ return savedefault_helper(current_entryno); -+#else /* defined(PLATFORM_EFI) */ -+ return grub_save_saved_default (current_entryno); -+#endif -+#else /* defined(GRUB_UTIL) */ -+ return savedefault_shell(arg, flags); -+#endif - #else /* ! SUPPORT_DISKLESS && ! GRUB_UTIL */ - errnum = ERR_UNRECOGNIZED; - return 1; -@@ -3368,10 +3790,14 @@ static struct builtin builtin_savedefault = - "savedefault", - savedefault_func, - BUILTIN_CMDLINE, -- "savedefault [NUM | `fallback']", -- "Save the current entry as the default boot entry if no argument is" -- " specified. If a number is specified, this number is saved. If" -- " `fallback' is used, next fallback entry is saved." -+#ifdef GRUB_UTIL -+ "savedefault [--stage2=STAGE2_FILE] [--default=DEFAULT] [--once]", -+ "Save DEFAULT as the default boot entry in STAGE2_FILE. If '--once'" -+ " is specified, the default is reset after the next reboot." -+#else -+ "savedefault", -+ "Save the current entry as the default boot entry." -+#endif - }; - - -@@ -3527,6 +3953,7 @@ static struct builtin builtin_serial = - }; - #endif /* SUPPORT_SERIAL */ - -+#ifndef PLATFORM_EFI - - /* setkey */ - struct keysym -@@ -3612,50 +4039,47 @@ static struct keysym keysym_table[] = - {"delete", 0, 0x7f, 0, 0x53} - }; - --static int --setkey_func (char *arg, int flags) -+static int find_key_code (char *key) - { -- char *to_key, *from_key; -- int to_code, from_code; -- int map_in_interrupt = 0; -- -- auto int find_key_code (char *key); -- auto int find_ascii_code (char *key); -- -- auto int find_key_code (char *key) -- { -- int i; -+ int i; - -- for (i = 0; i < sizeof (keysym_table) / sizeof (keysym_table[0]); i++) -- { -- if (keysym_table[i].unshifted_name && -- grub_strcmp (key, keysym_table[i].unshifted_name) == 0) -- return keysym_table[i].keycode; -- else if (keysym_table[i].shifted_name && -- grub_strcmp (key, keysym_table[i].shifted_name) == 0) -- return keysym_table[i].keycode; -- } -- -- return 0; -+ for (i = 0; i < sizeof (keysym_table) / sizeof (keysym_table[0]); i++) -+ { -+ if (keysym_table[i].unshifted_name && -+ grub_strcmp (key, keysym_table[i].unshifted_name) == 0) -+ return keysym_table[i].keycode; -+ else if (keysym_table[i].shifted_name && -+ grub_strcmp (key, keysym_table[i].shifted_name) == 0) -+ return keysym_table[i].keycode; - } - -- auto int find_ascii_code (char *key) -+ return 0; -+} -+ -+static int find_ascii_code (char *key) -+{ -+ int i; -+ -+ for (i = 0; i < sizeof (keysym_table) / sizeof (keysym_table[0]); i++) - { -- int i; -- -- for (i = 0; i < sizeof (keysym_table) / sizeof (keysym_table[0]); i++) -- { -- if (keysym_table[i].unshifted_name && -- grub_strcmp (key, keysym_table[i].unshifted_name) == 0) -- return keysym_table[i].unshifted_ascii; -- else if (keysym_table[i].shifted_name && -- grub_strcmp (key, keysym_table[i].shifted_name) == 0) -- return keysym_table[i].shifted_ascii; -- } -- -- return 0; -+ if (keysym_table[i].unshifted_name && -+ grub_strcmp (key, keysym_table[i].unshifted_name) == 0) -+ return keysym_table[i].unshifted_ascii; -+ else if (keysym_table[i].shifted_name && -+ grub_strcmp (key, keysym_table[i].shifted_name) == 0) -+ return keysym_table[i].shifted_ascii; - } - -+ return 0; -+} -+ -+static int -+setkey_func (char *arg, int flags) -+{ -+ char *to_key, *from_key; -+ int to_code, from_code; -+ int map_in_interrupt = 0; -+ - to_key = arg; - from_key = skip_to (0, to_key); - -@@ -3830,15 +4254,15 @@ setup_func (char *arg, int flags) - { - char tmp[16]; - grub_sprintf (tmp, ",%d", (partition >> 16) & 0xFF); -- grub_strncat (device, tmp, 256); -+ grub_strncat (device, tmp, 16); - } - if ((partition & 0x00FF00) != 0x00FF00) - { - char tmp[16]; - grub_sprintf (tmp, ",%c", 'a' + ((partition >> 8) & 0xFF)); -- grub_strncat (device, tmp, 256); -+ grub_strncat (device, tmp, 16); - } -- grub_strncat (device, ")", 256); -+ grub_strncat (device, ")", 16); - } - - int embed_stage1_5 (char *stage1_5, int drive, int partition) -@@ -3973,7 +4397,7 @@ setup_func (char *arg, int flags) - - /* The prefix was determined. */ - grub_sprintf (stage2, "%s%s", prefix, "/stage2"); -- grub_sprintf (config_filename, "%s%s", prefix, "/menu.lst"); -+ grub_sprintf (config_filename, "%s%s", prefix, "/grub.conf"); - *real_config_filename = 0; - - /* Check if stage2 exists. */ -@@ -4083,9 +4507,26 @@ static struct builtin builtin_setup = - " partition where GRUB images reside, specify the option `--stage2'" - " to tell GRUB the file name under your OS." - }; -+#endif /* ! PLATFORM_EFI */ -+ -+ -+static int -+silent_func (char *arg, int flags) -+{ -+ silent_grub = 1; -+ return 0; -+} -+ -+static struct builtin builtin_silent = -+{ -+ "silent", -+ silent_func, -+ BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST, -+ "grub will attempt to avoid printing anything to the screen" -+}; - - --#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) -+#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS) - /* terminal */ - static int - terminal_func (char *arg, int flags) -@@ -4244,17 +4685,21 @@ terminal_func (char *arg, int flags) - end: - current_term = term_table + default_term; - current_term->flags = term_flags; -- -+ - if (lines) - max_lines = lines; - else -- /* 24 would be a good default value. */ -- max_lines = 24; -- -+ max_lines = current_term->max_lines; -+ - /* If the interface is currently the command-line, - restart it to repaint the screen. */ -- if (current_term != prev_term && (flags & BUILTIN_CMDLINE)) -+ if ((current_term != prev_term) && (flags & BUILTIN_CMDLINE)){ -+ if (prev_term->shutdown) -+ prev_term->shutdown(); -+ if (current_term->startup) -+ current_term->startup(); - grub_longjmp (restart_cmdline_env, 0); -+ } - - return 0; - } -@@ -4264,7 +4709,7 @@ static struct builtin builtin_terminal = - "terminal", - terminal_func, - BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST, -- "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules]", -+ "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules] [graphics]", - "Select a terminal. When multiple terminals are specified, wait until" - " you push any key to continue. If both console and serial are specified," - " the terminal to which you input a key first will be selected. If no" -@@ -4276,7 +4721,7 @@ static struct builtin builtin_terminal = - " seconds. The option --lines specifies the maximum number of lines." - " The option --silent is used to suppress messages." - }; --#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */ -+#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */ - - - #ifdef SUPPORT_SERIAL -@@ -4462,6 +4907,7 @@ static struct builtin builtin_testload = - " step is to try loading a kernel." - }; - -+#ifndef PLATFORM_EFI - - /* testvbe MODE */ - static int -@@ -4566,6 +5012,7 @@ static struct builtin builtin_testvbe = - "testvbe MODE", - "Test the VBE mode MODE. Hit any key to return." - }; -+#endif /* !PLATFORM_EFI */ - - - #ifdef SUPPORT_NETBOOT -@@ -4598,6 +5045,15 @@ static struct builtin builtin_tftpserver = - static int - timeout_func (char *arg, int flags) - { -+ /* One-shot default shenanigans -- don't piss around with the menu! */ -+ if (grub_timeout != -1) -+ return 0; -+ if ((saved_entryno & STAGE2_ONCEONLY_ENTRY) != 0) -+ { -+ grub_timeout = 0; -+ return 0; -+ } -+ - if (! safe_parse_maxint (&arg, &grub_timeout)) - return 1; - -@@ -4661,6 +5117,7 @@ static struct builtin builtin_unhide = - " partition type code." - }; - -+#ifndef PLATFORM_EFI - - /* uppermem */ - static int -@@ -4790,11 +5247,34 @@ static struct builtin builtin_vbeprobe = - "Probe VBE information. If the mode number MODE is specified, show only" - " the information about only the mode." - }; -- -+#endif /* ! PLATFORM_EFI */ -+ -+ -+/* version */ -+static int -+version_func (char *arg, int flags) -+{ -+ grub_printf ("\n GNU GRUB version %s (%dK lower / %dK upper memory)\n\n", -+ version_string, mbi.mem_lower, mbi.mem_upper); -+ return 0; -+} -+ -+static struct builtin builtin_version = -+{ -+ "version", -+ version_func, -+ BUILTIN_CMDLINE | BUILTIN_HELP_LIST, -+ "version", -+ "Display grub version." -+}; -+ - - /* The table of builtin commands. Sorted in dictionary order. */ - struct builtin *builtin_table[] = - { -+#ifdef SUPPORT_GRAPHICS -+ &builtin_background, -+#endif - &builtin_blocklist, - &builtin_boot, - #ifdef SUPPORT_NETBOOT -@@ -4802,25 +5282,37 @@ struct builtin *builtin_table[] = - #endif /* SUPPORT_NETBOOT */ - &builtin_cat, - &builtin_chainloader, -+ &builtin_clear, - &builtin_cmp, - &builtin_color, - &builtin_configfile, - &builtin_debug, - &builtin_default, --#ifdef GRUB_UTIL -+#if defined(GRUB_UTIL) || defined(PLATFORM_EFI) - &builtin_device, --#endif /* GRUB_UTIL */ -+#endif /* defined(GRUB_UTIL) || defined(PLATFORM_EFI) */ - #ifdef SUPPORT_NETBOOT - &builtin_dhcp, - #endif /* SUPPORT_NETBOOT */ -+#ifndef PLATFORM_EFI - &builtin_displayapm, -+#endif - &builtin_displaymem, - #ifdef GRUB_UTIL - &builtin_dump, - #endif /* GRUB_UTIL */ -+#ifdef PLATFORM_EFI -+ &builtin_efimap, -+#endif -+#ifndef PLATFORM_EFI - &builtin_embed, -+#endif - &builtin_fallback, - &builtin_find, -+ &builtin_findiso, -+#ifdef SUPPORT_GRAPHICS -+ &builtin_foreground, -+#endif - &builtin_fstest, - &builtin_geometry, - &builtin_halt, -@@ -4830,27 +5322,35 @@ struct builtin *builtin_table[] = - #ifdef SUPPORT_NETBOOT - &builtin_ifconfig, - #endif /* SUPPORT_NETBOOT */ -+#ifndef PLATFORM_EFI - &builtin_impsprobe, -+#endif - &builtin_initrd, -+#ifndef PLATFORM_EFI - &builtin_install, - &builtin_ioprobe, -+#endif - &builtin_kernel, - &builtin_lock, - &builtin_makeactive, -+#ifndef PLATFORM_EFI - &builtin_map, -+#endif - #ifdef USE_MD5_PASSWORDS - &builtin_md5crypt, - #endif /* USE_MD5_PASSWORDS */ -+#ifndef PLATFORM_EFI - &builtin_module, - &builtin_modulenounzip, -+#endif - &builtin_pager, - &builtin_partnew, - &builtin_parttype, - &builtin_password, - &builtin_pause, --#ifdef GRUB_UTIL -+#if defined(GRUB_UTIL) || defined(PLATFORM_EFI) - &builtin_quit, --#endif /* GRUB_UTIL */ -+#endif /* defined(GRUB_UTIL) || defined(PLATFORM_EFI) */ - #ifdef SUPPORT_NETBOOT - &builtin_rarp, - #endif /* SUPPORT_NETBOOT */ -@@ -4862,23 +5362,35 @@ struct builtin *builtin_table[] = - #ifdef SUPPORT_SERIAL - &builtin_serial, - #endif /* SUPPORT_SERIAL */ -+#ifndef PLATFORM_EFI - &builtin_setkey, - &builtin_setup, --#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) -+#endif -+ &builtin_silent, -+#ifdef SUPPORT_GRAPHICS -+ &builtin_splashimage, -+#endif /* SUPPORT_GRAPHICS */ -+#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS) - &builtin_terminal, --#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */ -+#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */ - #ifdef SUPPORT_SERIAL - &builtin_terminfo, - #endif /* SUPPORT_SERIAL */ - &builtin_testload, -+#ifndef PLATFORM_EFI - &builtin_testvbe, -+#endif - #ifdef SUPPORT_NETBOOT - &builtin_tftpserver, - #endif /* SUPPORT_NETBOOT */ - &builtin_timeout, - &builtin_title, - &builtin_unhide, -+#ifndef PLATFORM_EFI - &builtin_uppermem, - &builtin_vbeprobe, -+#endif -+ &builtin_verbose, -+ &builtin_version, - 0 - }; -diff --git a/stage2/char_io.c b/stage2/char_io.c -index c86c240..073201a 100644 ---- a/stage2/char_io.c -+++ b/stage2/char_io.c -@@ -35,29 +35,37 @@ struct term_entry term_table[] = - { - "console", - 0, -+ 24, - console_putchar, - console_checkkey, - console_getkey, -+ console_keystatus, - console_getxy, - console_gotoxy, - console_cls, - console_setcolorstate, - console_setcolor, -- console_setcursor -+ console_setcursor, -+ 0, -+ 0 - }, - #ifdef SUPPORT_SERIAL - { - "serial", - /* A serial device must be initialized. */ - TERM_NEED_INIT, -+ 24, - serial_putchar, - serial_checkkey, - serial_getkey, -+ 0, - serial_getxy, - serial_gotoxy, - serial_cls, - serial_setcolorstate, - 0, -+ 0, -+ 0, - 0 - }, - #endif /* SUPPORT_SERIAL */ -@@ -65,17 +73,39 @@ struct term_entry term_table[] = - { - "hercules", - 0, -+ 24, - hercules_putchar, - console_checkkey, - console_getkey, -+ console_keystatus, - hercules_getxy, - hercules_gotoxy, - hercules_cls, - hercules_setcolorstate, - hercules_setcolor, -- hercules_setcursor -+ hercules_setcursor, -+ 0, -+ 0 - }, - #endif /* SUPPORT_HERCULES */ -+#ifdef SUPPORT_GRAPHICS -+ { "graphics", -+ TERM_NEED_INIT, /* flags */ -+ 30, /* number of lines */ -+ graphics_putchar, /* putchar */ -+ console_checkkey, /* checkkey */ -+ console_getkey, /* getkey */ -+ console_keystatus, /* keystatus */ -+ graphics_getxy, /* getxy */ -+ graphics_gotoxy, /* gotoxy */ -+ graphics_cls, /* cls */ -+ graphics_setcolorstate, /* setcolorstate */ -+ graphics_setcolor, /* setcolor */ -+ graphics_setcursor, /* nocursor */ -+ graphics_init, /* initialize */ -+ graphics_end /* shutdown */ -+ }, -+#endif /* SUPPORT_GRAPHICS */ - /* This must be the last entry. */ - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } - }; -@@ -101,16 +131,16 @@ print_error (void) - } - - char * --convert_to_ascii (char *buf, int c,...) -+convert_to_ascii (char *buf, int c, unsigned int num) - { -- unsigned long num = *((&c) + 1), mult = 10; -+ unsigned int mult = 10; - char *ptr = buf; - - #ifndef STAGE1_5 - if (c == 'x' || c == 'X') - mult = 16; - -- if ((num & 0x80000000uL) && c == 'd') -+ if ((int) num < 0 && c == 'd') - { - num = (~num) + 1; - *(ptr++) = '-'; -@@ -149,87 +179,266 @@ grub_putstr (const char *str) - grub_putchar (*str++); - } - --void --grub_printf (const char *format,...) -+static void write_char(char **str, char c, int *count) - { -- int *dataptr = (int *) &format; -- char c, str[16]; -- -- dataptr++; -- -- while ((c = *(format++)) != 0) -- { -- if (c != '%') -- grub_putchar (c); -- else -- switch (c = *(format++)) -- { --#ifndef STAGE1_5 -- case 'd': -- case 'x': -- case 'X': --#endif -- case 'u': -- *convert_to_ascii (str, c, *((unsigned long *) dataptr++)) = 0; -- grub_putstr (str); -- break; -- --#ifndef STAGE1_5 -- case 'c': -- grub_putchar ((*(dataptr++)) & 0xff); -- break; -+ if (str && *str) -+ *(*str)++ = c; -+ else -+ putchar(c); -+ (*count)++; -+} - -- case 's': -- grub_putstr ((char *) *(dataptr++)); -- break; --#endif -- } -+static void write_str(char **str, char *s, int *count) -+{ -+ if (s) { -+ while (*s) -+ write_char(str, *s++, count); -+ } else { -+ write_str(str, "(nil)", count); - } - } - --#ifndef STAGE1_5 -+#define format_ascii(buf, val, is_hex, is_cap, num_pad_chars) ({ \ -+ int _n = sizeof ((buf)) - 2; \ -+ typeof(val) _nval = (val); \ -+ int _negative = 0; \ -+ int _mult = is_hex ? 16 : 10; \ -+ char _a = is_cap ? 'A' : 'a'; \ -+ int _pad = num_pad_chars; \ -+ char hex[] = "0123456789abcdef"; \ -+ memset((buf), '\0', sizeof ((buf))); \ -+ if (!(_nval > 0LL)) \ -+ _negative = 1; \ -+ if (_nval == 0LL) \ -+ _negative = 0; \ -+ if (_negative) \ -+ _nval = (_nval ^ -1); \ -+ do { \ -+ int _dig = _nval % _mult; \ -+ (buf)[_n--] = ((_dig > 9) ? _dig + _a - 10 : '0'+_dig); \ -+ if (_pad > 0) _pad--; \ -+ } while (_nval /= _mult); \ -+ while (_pad--) \ -+ (buf)[_n--] = '0'; \ -+ if (_negative) \ -+ (buf)[_n--] = '-'; \ -+ _mult = 0; \ -+ _n++; \ -+ while (_n < sizeof ((buf))) \ -+ (buf)[_mult++] = (buf)[_n++]; \ -+ if (_negative && _mult > 1) \ -+ ((buf)[_mult-2])++; \ -+ }) -+ - int --grub_sprintf (char *buffer, const char *format, ...) -+grub_vsprintf (char *str, const char *fmt, va_list args) - { -- /* XXX hohmuth -- ugly hack -- should unify with printf() */ -- int *dataptr = (int *) &format; -- char c, *ptr, str[16]; -- char *bp = buffer; -- -- dataptr++; -- -- while ((c = *format++) != 0) -- { -- if (c != '%') -- *bp++ = c; /* putchar(c); */ -- else -- switch (c = *(format++)) -- { -- case 'd': case 'u': case 'x': -- *convert_to_ascii (str, c, *((unsigned long *) dataptr++)) = 0; -- -- ptr = str; -+ char c; -+ char buf[40]; -+ int pos = 0; -+ -+ int count = 0; -+ -+ char *str_arg; -+ int int_arg; -+ unsigned char uchar_arg; -+ unsigned ushort_arg; -+ unsigned int uint_arg; -+ signed long long_arg; -+ unsigned long ulong_arg; -+ signed long long longlong_arg; -+ unsigned long long ulonglong_arg; -+ -+ c = *fmt++; -+ if (!c) -+ return 0; -+ -+ int is_fmt = 0, is_long = 0, is_signed = 1, is_cap = 0, is_zero_padded = 0; -+ int num_pad_chars = 0; -+ int restart = 1; -+ do { -+ if (restart) { -+ restart = 0; -+ is_fmt = 0; -+ is_long = 0; -+ is_cap = 0; -+ is_signed = 1; -+ is_zero_padded = 0; -+ num_pad_chars = 0; -+ buf[0] = '\0'; -+ pos = 0; -+ } -+ -+ if (!is_fmt) { -+ if (c == '%') { -+ is_fmt = 1; -+ buf[pos++] = c; -+ buf[pos] = '\0'; -+ continue; -+ } else { -+ write_char(&str, c, &count); -+ continue; -+ } -+ } -+ -+ /* below here we only ever hit when is_fmt is 1 */ -+ switch (c) { -+ /* first, modifiers */ -+ case '%': -+ if (pos != 0) -+ write_str(&str, buf, &count); -+ write_char(&str, c, &count); -+ restart = 1; -+ continue; -+ case '0': -+ if (!is_zero_padded) { -+ buf[pos++] = c; -+ buf[pos] = '\0'; -+ is_zero_padded++; -+ continue; -+ } -+ case '1': -+ case '2': -+ case '3': -+ case '4': -+ case '5': -+ case '6': -+ case '7': -+ case '8': -+ case '9': -+ buf[pos++] = c; -+ buf[pos] = '\0'; -+ num_pad_chars *= 10; -+ num_pad_chars += c - '0'; -+ continue; -+ case 'l': -+ buf[pos++] = c; -+ buf[pos] = '\0'; -+ is_long++; -+ continue; -+ case 'L': -+ buf[pos++] = c; -+ buf[pos] = '\0'; -+ is_long = 2; -+ continue; -+ -+ /* below here are things we actually have to print */ -+ case 'c': -+ int_arg = va_arg(args, int) & 0xff; -+ if (int_arg == 0) { -+ char *tmp_str = "\\x00"; -+ write_str(&tmp_str, buf, &count); -+ } else { -+ write_char(&str, int_arg, &count); -+ } -+ restart = 1; -+ continue; -+ case 'd': -+ if (is_long == 0) { -+ int_arg = va_arg(args, signed int); -+ format_ascii(buf, int_arg, 0, 0, 0); -+ } else if (is_long == 1) { -+ long_arg = va_arg(args, signed long); -+ format_ascii(buf, long_arg, 0, 0, 0); -+ } else { -+ longlong_arg = va_arg(args, signed long long); -+ format_ascii(buf, longlong_arg, 0, 0, 0); -+ } -+ write_str(&str, buf, &count); -+ restart = 1; -+ continue; -+ case 's': -+ str_arg = va_arg(args, char *); -+ write_str(&str, str_arg, &count); -+ restart = 1; -+ continue; -+ case 'u': -+ case 'U': -+ if (is_long == 0) { -+ uint_arg = va_arg(args, unsigned int); -+ format_ascii(buf, uint_arg, 0, 0, 0); -+ } else if (is_long == 1) { -+ ulong_arg = va_arg(args, unsigned long); -+ format_ascii(buf, ulong_arg, 0, 0, 0); -+ } else { -+ ulonglong_arg = va_arg(args, unsigned long long); -+ format_ascii(buf, ulonglong_arg, 0, 0, 0); -+ } -+ write_str(&str, buf, &count); -+ restart = 1; -+ continue; -+ case 'P': -+ is_cap = 1; -+ case 'p': -+ ulong_arg = va_arg(args, unsigned long); -+ is_zero_padded = 1; -+ format_ascii(buf, ulong_arg, 1, is_cap, sizeof(ulong_arg)); -+ write_str(&str, is_cap ? "0X" : "0x", &count); -+ write_str(&str, buf, &count); -+ restart = 1; -+ continue; -+ case 'X': -+ is_cap = 1; -+ case 'x': -+ if (num_pad_chars == 2) { -+ int i; -+ char hex[] = "0123456789abcdef"; -+ uint_arg = va_arg(args, unsigned int); -+ uchar_arg = uint_arg & 0xff; -+ format_ascii(buf, uchar_arg, 1, is_cap, num_pad_chars); -+ } else if (num_pad_chars == 4) { -+ uint_arg = va_arg(args, unsigned int); -+ ushort_arg = uint_arg & 0xffff; -+ format_ascii(buf, ushort_arg, 1, is_cap, num_pad_chars); -+ } else if (is_long == 0) { -+ uint_arg = va_arg(args, unsigned int); -+ format_ascii(buf, uint_arg, 1, is_cap, num_pad_chars); -+ } else if (is_long == 1) { -+ ulong_arg = va_arg(args, unsigned long); -+ format_ascii(buf, ulong_arg, 1, is_cap, num_pad_chars); -+ } else { -+ ulonglong_arg = va_arg(args, unsigned long long); -+ format_ascii(buf, ulonglong_arg, 1, is_cap, num_pad_chars); -+ } -+ write_str(&str, buf, &count); -+ restart = 1; -+ continue; -+ default: -+ buf[pos++] = c; -+ buf[pos] = '\0'; -+ write_str(&str, buf, &count); -+ restart = 1; -+ continue; -+ } -+ } while ((c = *fmt++)); -+ -+ if (str) -+ *str = '\0'; -+ return count; -+} - -- while (*ptr) -- *bp++ = *(ptr++); /* putchar(*(ptr++)); */ -- break; -+void -+grub_printf (char *fmt, ...) -+{ -+ va_list ap; - -- case 'c': *bp++ = (*(dataptr++))&0xff; -- /* putchar((*(dataptr++))&0xff); */ -- break; -+ va_start (ap, fmt); -+ grub_vsprintf (0, fmt, ap); -+ va_end (ap); -+} - -- case 's': -- ptr = (char *) (*(dataptr++)); -+#ifndef STAGE1_5 -+int -+grub_sprintf (char *str, const char *fmt, ...) -+{ -+ va_list ap; -+ int ret; - -- while ((c = *ptr++) != 0) -- *bp++ = c; /* putchar(c); */ -- break; -- } -- } -+ va_start (ap, fmt); -+ ret = grub_vsprintf (str, fmt, ap); -+ va_end (ap); - -- *bp = 0; -- return bp - buffer; -+ return ret; - } - - -@@ -898,7 +1107,6 @@ safe_parse_maxint (char **str_ptr, int *myint_ptr) - } - #endif /* STAGE1_5 */ - --#if !defined(STAGE1_5) || defined(FSYS_FAT) - int - grub_tolower (int c) - { -@@ -907,7 +1115,6 @@ grub_tolower (int c) - - return c; - } --#endif /* ! STAGE1_5 || FSYS_FAT */ - - int - grub_isspace (int c) -@@ -1004,6 +1211,16 @@ checkkey (void) - { - return current_term->checkkey (); - } -+ -+/* Return keyboard modifier status. */ -+int -+keystatus (void) -+{ -+ if (current_term->keystatus) -+ return current_term->keystatus (); -+ else -+ return 0; -+} - #endif /* ! STAGE1_5 */ - - /* Display an ASCII character. */ -@@ -1046,13 +1263,15 @@ grub_putchar (int c) - the following grub_printf call will print newlines. */ - count_lines = -1; - -+ grub_printf("\n"); - if (current_term->setcolorstate) - current_term->setcolorstate (COLOR_STATE_HIGHLIGHT); - -- grub_printf ("\n[Hit return to continue]"); -+ grub_printf ("[Hit return to continue]"); - - if (current_term->setcolorstate) - current_term->setcolorstate (COLOR_STATE_NORMAL); -+ - - do - { -@@ -1090,7 +1309,7 @@ void - cls (void) - { - /* If the terminal is dumb, there is no way to clean the terminal. */ -- if (current_term->flags & TERM_DUMB) -+ if (current_term->flags & TERM_DUMB) - grub_putchar ('\n'); - else - current_term->cls (); -@@ -1125,6 +1344,26 @@ substring (const char *s1, const char *s2) - return 1; - } - -+int -+subcasestring (const char *s1, const char *s2) -+{ -+ while (tolower(*s1) == tolower(*s2)) -+ { -+ /* The strings match exactly. */ -+ if (! *(s1++)) -+ return 0; -+ s2 ++; -+ } -+ -+ /* S1 is a substring of S2. */ -+ if (*s1 == 0) -+ return -1; -+ -+ /* S1 isn't a substring. */ -+ return 1; -+} -+ -+ - #ifndef STAGE1_5 - /* Terminate the string STR with NUL. */ - int -@@ -1172,41 +1411,180 @@ grub_strlen (const char *str) - - return len; - } --#endif /* ! STAGE1_5 */ - -+/* this function "borrowed" from dietlibc */ - int --memcheck (int addr, int len) -+grub_strspn(const char *s, const char *accept) - { --#ifdef GRUB_UTIL -- auto int start_addr (void); -- auto int end_addr (void); -- -- auto int start_addr (void) -+ int l=0; -+ int a=1,i,al=grub_strlen(accept); -+ -+ while((a)&&(*s)) -+ { -+ for(a=i=0;(!a)&&(i terminate it */ -+ } -+ *ptrptr=s; -+ return tmp; -+} -+ -+char * -+grub_strchr (const char *s, int c) -+{ -+ while (*s) - { -- int ret; -+ if (*s == c) -+ return (char *) s; -+ s++; -+ } -+ -+ return 0; -+} -+ -+char * -+grub_strnchr (const char *s, int c) -+{ -+ while (*s) -+ { -+ if (*s != c) -+ return (char *) s; -+ s++; -+ } -+ -+ return 0; -+} -+ -+char * -+grub_strrchr (const char *s, int c) -+{ -+ char *p = 0; -+ -+ while (*s) -+ { -+ if (*s == c) -+ p = (char *) s; -+ s++; -+ } -+ -+ return p; -+} -+ -+int -+grub_strnlen (const char *s, int n) -+{ -+ int i; -+ -+ if (n == 0) -+ return 0; -+ -+ for (i = 0; s[i] != '\0' && i < n; i++) -+ ; -+ return i; -+} -+ -+char * -+grub_strncpy(char *new, const char *s, int n) -+{ -+ int i; -+ -+ for (i = 0; s[i] != '\0' && i < n; i++) -+ new[i] = s[i]; -+ return new; -+} -+ -+int -+grub_strncasecmp(const char *s0, const char *s1, int n) -+{ -+ int c0, c1; -+ -+ if (s0 == s1 || n == 0) -+ return 0; -+ -+ do { -+ c0 = *s0 & ~0x20; -+ c1 = *s1 & ~0x20; -+ -+ if (--n == 0 || c0 == '\0') -+ break; -+ -+ *s0++; -+ *s1++; -+ } while (c0 == c1); -+ -+ return (c0 > c1 ? 1 : c0 < c1 ? -1 : 0); -+} -+ -+#endif /* ! STAGE1_5 */ -+ -+#ifdef GRUB_UTIL -+static int memcheck_start_addr (void) -+{ -+ int ret; - # if defined(HAVE_START_SYMBOL) -- asm volatile ("movl $start, %0" : "=a" (ret)); -+ asm volatile ("movl $start, %0" : "=a" (ret)); - # elif defined(HAVE_USCORE_START_SYMBOL) -- asm volatile ("movl $_start, %0" : "=a" (ret)); -+ asm volatile ("movl $_start, %0" : "=a" (ret)); - # endif -- return ret; -- } -+ return ret; -+} - -- auto int end_addr (void) -- { -- int ret; -+static int memcheck_end_addr (void) -+{ -+ int ret; - # if defined(HAVE_END_SYMBOL) -- asm volatile ("movl $end, %0" : "=a" (ret)); -+ asm volatile ("movl $end, %0" : "=a" (ret)); - # elif defined(HAVE_USCORE_END_SYMBOL) -- asm volatile ("movl $_end, %0" : "=a" (ret)); -+ asm volatile ("movl $_end, %0" : "=a" (ret)); - # endif -- return ret; -- } -+ return ret; -+} -+#endif /* GRUB_UTIL */ - -- if (start_addr () <= addr && end_addr () > addr + len) -+int -+memcheck (int addr, int len) -+{ -+#ifdef GRUB_UTIL -+ if (memcheck_start_addr () <= addr && memcheck_end_addr () > addr + len) - return ! errnum; - #endif /* GRUB_UTIL */ - -+#ifdef PLATFORM_EFI -+ return 1; -+#else - if ((addr < RAW_ADDR (0x1000)) - || (addr < RAW_ADDR (0x100000) - && RAW_ADDR (mbi.mem_lower * 1024) < (addr + len)) -@@ -1215,12 +1593,23 @@ memcheck (int addr, int len) - errnum = ERR_WONT_FIT; - - return ! errnum; -+#endif -+} -+ -+void -+grub_memcpy(void *dest, const void *src, int len) -+{ -+ int i; -+ register char *d = (char*)dest, *s = (char*)src; -+ -+ for (i = 0; i < len; i++) -+ d[i] = s[i]; - } - - void * - grub_memmove (void *to, const void *from, int len) - { -- if (memcheck ((int) to, len)) -+ if (memcheck ((unsigned long) to, len)) - { - /* This assembly code is stolen from - linux-2.2.2/include/asm-i386/string.h. This is not very fast -@@ -1258,7 +1647,7 @@ grub_memset (void *start, int c, int len) - { - char *p = start; - -- if (memcheck ((int) start, len)) -+ if (memcheck ((unsigned long) start, len)) - { - while (len -- > 0) - *p ++ = c; -@@ -1274,6 +1663,26 @@ grub_strcpy (char *dest, const char *src) - grub_memmove (dest, src, grub_strlen (src) + 1); - return dest; - } -+ -+char * -+grub_stpncpy (char *dest, const char *src, int n) -+{ -+ char *res; -+ -+ res = NULL; -+ while (n != 0) { -+ *dest = *src; -+ if (*src != 0) -+ src++; -+ else if (res == NULL) -+ res = dest; -+ dest++; -+ n--; -+ } -+ if (res == NULL) -+ res = dest; -+ return res; -+} - #endif /* ! STAGE1_5 */ - - #ifndef GRUB_UTIL -diff --git a/stage2/cmdline.c b/stage2/cmdline.c -index a6ee309..cb41eda 100644 ---- a/stage2/cmdline.c -+++ b/stage2/cmdline.c -@@ -48,12 +48,17 @@ skip_to (int after_equal, char *cmdline) - - /* Print a helpful message for the command-line interface. */ - void --print_cmdline_message (int forever) -+print_cmdline_message (int type) - { - printf (" [ Minimal BASH-like line editing is supported. For the first word, TAB\n" - " lists possible command completions. Anywhere else TAB lists the possible\n" -- " completions of a device/filename.%s ]\n", -- (forever ? "" : " ESC at any time exits.")); -+ " completions of a device/filename."); -+ if (type == CMDLINE_NORMAL_MODE) -+ printf(" ESC at any time exits."); -+ if (type == CMDLINE_EDIT_MODE) -+ printf(" ESC at any time cancels. ENTER \n" -+ " at any time accepts your changes."); -+ printf("]\n"); - } - - /* Find the builtin whose command name is COMMAND and return the -@@ -128,7 +133,7 @@ enter_cmdline (char *heap, int forever) - print_network_configuration (); - grub_putchar ('\n'); - #endif -- print_cmdline_message (forever); -+ print_cmdline_message (forever ? CMDLINE_FOREVER_MODE : CMDLINE_NORMAL_MODE); - - while (1) - { -@@ -215,7 +220,7 @@ run_script (char *script, char *heap) - while (*cur_entry++) - ; - -- grub_memmove (heap, old_entry, (int) cur_entry - (int) old_entry); -+ grub_memmove (heap, old_entry, cur_entry - old_entry); - if (! *heap) - { - /* If there is no more command in SCRIPT... */ -@@ -232,12 +237,12 @@ run_script (char *script, char *heap) - builtin = find_command (heap); - if (! builtin) - { -- grub_printf ("%s\n", old_entry); -+ grub_verbose_printf ("%s\n", old_entry); - continue; - } - - if (! (builtin->flags & BUILTIN_NO_ECHO)) -- grub_printf ("%s\n", old_entry); -+ grub_verbose_printf ("%s\n", old_entry); - - /* If BUILTIN cannot be run in the command-line, skip it. */ - if (! (builtin->flags & BUILTIN_CMDLINE)) -diff --git a/stage2/common.c b/stage2/common.c -index 09f9e31..e96bec2 100644 ---- a/stage2/common.c -+++ b/stage2/common.c -@@ -32,7 +32,7 @@ - struct multiboot_info mbi; - unsigned long saved_drive; - unsigned long saved_partition; --unsigned long cdrom_drive; -+unsigned long cdrom_drive = 0x100; - #ifndef STAGE1_5 - unsigned long saved_mem_upper; - -@@ -114,7 +114,7 @@ mmap_avail_at (unsigned long bottom) - { - for (cont = 0, addr = mbi.mmap_addr; - addr < mbi.mmap_addr + mbi.mmap_length; -- addr += *((unsigned long *) addr) + 4) -+ addr += *((unsigned int *) addr) + 4) - { - struct AddrRangeDesc *desc = (struct AddrRangeDesc *) addr; - -@@ -183,11 +183,11 @@ init_bios_info (void) - cont = get_mmap_entry ((void *) addr, cont); - - /* If the returned buffer's length is zero, quit. */ -- if (! *((unsigned long *) addr)) -+ if (! *((unsigned int *) addr)) - break; - -- mbi.mmap_length += *((unsigned long *) addr) + 4; -- addr += *((unsigned long *) addr) + 4; -+ mbi.mmap_length += *((unsigned int *) addr) + 4; -+ addr += *((unsigned int *) addr) + 4; - } - while (cont); - -@@ -207,7 +207,7 @@ init_bios_info (void) - /* Find the maximum available address. Ignore any memory holes. */ - for (max_addr = 0, addr = mbi.mmap_addr; - addr < mbi.mmap_addr + mbi.mmap_length; -- addr += *((unsigned long *) addr) + 4) -+ addr += *((unsigned int *) addr) + 4) - { - struct AddrRangeDesc *desc = (struct AddrRangeDesc *) addr; - -@@ -322,6 +322,9 @@ init_bios_info (void) - - /* Set cdrom drive. */ - { -+#ifdef PLATFORM_EFI -+ cdrom_drive = 0x100; -+#else - struct geometry geom; - - /* Get the geometry. */ -@@ -330,6 +333,7 @@ init_bios_info (void) - cdrom_drive = GRUB_INVALID_DRIVE; - else - cdrom_drive = boot_drive; -+#endif - } - - /* Start main routine here. */ -diff --git a/stage2/disk_io.c b/stage2/disk_io.c -index b9bc526..f3fed0e 100644 ---- a/stage2/disk_io.c -+++ b/stage2/disk_io.c -@@ -21,12 +21,17 @@ - - #include - #include -+#include - - #ifdef SUPPORT_NETBOOT - # define GRUB 1 - # include - #endif - -+#ifdef PLATFORM_EFI -+#include "efistubs.h" -+#endif -+ - #ifdef GRUB_UTIL - # include - #endif -@@ -48,6 +53,9 @@ int fsmax; - struct fsys_entry fsys_table[NUM_FSYS + 1] = - { - /* TFTP should come first because others don't handle net device. */ -+# ifdef PLATFORM_EFI -+ {"efitftp", efi_tftp_mount, efi_tftp_read, efi_tftp_dir, efi_tftp_close, 0}, -+# endif - # ifdef FSYS_TFTP - {"tftp", tftp_mount, tftp_read, tftp_dir, tftp_close, 0}, - # endif -@@ -75,6 +83,9 @@ struct fsys_entry fsys_table[NUM_FSYS + 1] = - # ifdef FSYS_UFS2 - {"ufs2", ufs2_mount, ufs2_read, ufs2_dir, 0, ufs2_embed}, - # endif -+# ifdef PLATFORM_EFI -+ {"uefi", uefi_mount, uefi_read, uefi_dir, uefi_close, 0}, -+# endif - # ifdef FSYS_ISO9660 - {"iso9660", iso9660_mount, iso9660_read, iso9660_dir, 0, 0}, - # endif -@@ -127,8 +138,8 @@ struct geometry buf_geom; - int filepos; - int filemax; - --static inline unsigned long --log2 (unsigned long word) -+static inline unsigned int -+grub_log2 (unsigned int word) - { - asm volatile ("bsfl %1,%0" - : "=r" (word) -@@ -140,7 +151,7 @@ int - rawread (int drive, int sector, int byte_offset, int byte_len, char *buf) - { - int slen, sectors_per_vtrack; -- int sector_size_bits = log2 (buf_geom.sector_size); -+ int sector_size_bits = grub_log2 (buf_geom.sector_size); - - if (byte_len <= 0) - return 1; -@@ -163,7 +174,7 @@ rawread (int drive, int sector, int byte_offset, int byte_len, char *buf) - } - buf_drive = drive; - buf_track = -1; -- sector_size_bits = log2 (buf_geom.sector_size); -+ sector_size_bits = grub_log2 (buf_geom.sector_size); - } - - /* Make sure that SECTOR is valid. */ -@@ -297,7 +308,7 @@ devread (int sector, int byte_offset, int byte_len, char *buf) - * Check partition boundaries - */ - if (sector < 0 -- || ((sector + ((byte_offset + byte_len - 1) >> SECTOR_BITS)) -+ || ((sector + ((byte_offset + byte_len - 1) >> get_sector_bits(current_drive))) - >= part_length)) - { - errnum = ERR_OUTSIDE_PART; -@@ -307,8 +318,8 @@ devread (int sector, int byte_offset, int byte_len, char *buf) - /* - * Get the read to the beginning of a partition. - */ -- sector += byte_offset >> SECTOR_BITS; -- byte_offset &= SECTOR_SIZE - 1; -+ sector += byte_offset >> get_sector_bits(current_drive); -+ byte_offset &= get_sector_size(current_drive) - 1; - - #if !defined(STAGE1_5) - if (disk_read_hook && debug) -@@ -347,7 +358,7 @@ rawwrite (int drive, int sector, char *buf) - sector = 1; - } - -- memmove ((char *) SCRATCHADDR, buf, SECTOR_SIZE); -+ memmove ((char *) SCRATCHADDR, buf, get_sector_size(drive)); - if (biosdisk (BIOSDISK_WRITE, drive, &buf_geom, - sector, 1, SCRATCHSEG)) - { -@@ -373,23 +384,23 @@ devwrite (int sector, int sector_count, char *buf) - embed a Stage 1.5 into a partition instead of a MBR, use system - calls directly instead of biosdisk, because of the bug in - Linux. *sigh* */ -- return write_to_partition (device_map, current_drive, current_partition, -- sector, sector_count, buf); -+ int ret; -+ ret = write_to_partition (device_map, current_drive, current_partition, -+ sector, sector_count, buf); -+ if (ret != -1) -+ return ret; - } -- else - #endif /* GRUB_UTIL && __linux__ */ -- { -- int i; -- -- for (i = 0; i < sector_count; i++) -- { -- if (! rawwrite (current_drive, part_start + sector + i, -- buf + (i << SECTOR_BITS))) -- return 0; -+ int i; - -- } -- return 1; -- } -+ for (i = 0; i < sector_count; i++) -+ { -+ if (! rawwrite (current_drive, part_start + sector + i, -+ buf + (i << get_sector_bits(current_drive)))) -+ return 0; -+ -+ } -+ return 1; - } - - static int -@@ -400,7 +411,7 @@ sane_partition (void) - return 1; - - if (!(current_partition & 0xFF000000uL) -- && ((current_drive & 0xFFFFFF7F) < 8 -+ && ((current_drive & 0xFFFFFF7F) < MAX_HD_NUM - || current_drive == cdrom_drive) - && (current_partition & 0xFF) == 0xFF - && ((current_partition & 0xFF00) == 0xFF00 -@@ -458,7 +469,7 @@ make_saved_active (void) - } - - /* Read the MBR in the scratch space. */ -- if (! rawread (saved_drive, 0, 0, SECTOR_SIZE, mbr)) -+ if (! rawread (saved_drive, 0, 0, get_sector_size(saved_drive), mbr)) - return 0; - - /* If the partition is an extended partition, setting the active -@@ -502,8 +513,8 @@ int - set_partition_hidden_flag (int hidden) - { - unsigned long part = 0xFFFFFF; -- unsigned long start, len, offset, ext_offset; -- int entry, type; -+ unsigned long start, len, offset, ext_offset, gpt_offset; -+ int entry, type, gpt_count, gpt_size; - char mbr[512]; - - /* The drive must be a hard disk. */ -@@ -524,8 +535,15 @@ set_partition_hidden_flag (int hidden) - /* Look for the partition. */ - while (next_partition (current_drive, 0xFFFFFF, &part, &type, - &start, &len, &offset, &entry, -- &ext_offset, mbr)) -- { -+ &ext_offset, &gpt_offset, &gpt_count, &gpt_size, mbr)) -+ { -+ /* The partition may not be a GPT partition. */ -+ if (gpt_offset != 0) -+ { -+ errnum = ERR_BAD_ARGUMENT; -+ return 1; -+ } -+ - if (part == current_partition) - { - /* Found. */ -@@ -577,11 +595,14 @@ next_partition (unsigned long drive, unsigned long dest, - unsigned long *partition, int *type, - unsigned long *start, unsigned long *len, - unsigned long *offset, int *entry, -- unsigned long *ext_offset, char *buf) -+ unsigned long *ext_offset, -+ unsigned long *gpt_offset, int *gpt_count, -+ int *gpt_size, char *buf) - { - /* Forward declarations. */ - auto int next_bsd_partition (void); - auto int next_pc_slice (void); -+ auto int next_gpt_slice(void); - - /* Get next BSD partition in current PC slice. */ - int next_bsd_partition (void) -@@ -601,7 +622,7 @@ next_partition (unsigned long drive, unsigned long dest, - - /* Read the BSD label. */ - if (! rawread (drive, *start + BSD_LABEL_SECTOR, -- 0, SECTOR_SIZE, buf)) -+ 0, get_sector_size(drive), buf)) - return 0; - - /* Check if it is valid. */ -@@ -656,7 +677,7 @@ next_partition (unsigned long drive, unsigned long dest, - } - - /* Read the MBR or the boot sector of the extended partition. */ -- if (! rawread (drive, *offset, 0, SECTOR_SIZE, buf)) -+ if (! rawread (drive, *offset, 0, get_sector_size(drive), buf)) - return 0; - - /* Check if it is valid. */ -@@ -666,6 +687,42 @@ next_partition (unsigned long drive, unsigned long dest, - return 0; - } - -+ /* If this is a GPT partition table, read it as such. */ -+ if (*entry == -1 && *offset == 0 && -+ (PC_SLICE_TYPE (buf, 0) == PC_SLICE_TYPE_GPT || -+ PC_SLICE_TYPE (buf, 0) == PC_SLICE_TYPE_NONE)) -+ { -+ struct grub_gpt_header *hdr = (struct grub_gpt_header *) buf; -+ -+ /* Read in the GPT Partition table header. */ -+ if (! rawread (drive, 1, 0, get_sector_size(drive), buf)) -+ return 0; -+ -+ if (hdr->magic == GPT_HEADER_MAGIC && hdr->version == 0x10000) -+ { -+ /* Let gpt_offset point to the first entry in the GPT -+ partition table. This can also be used by callers of -+ next_partition to determine if a entry comes from a -+ GPT partition table or not. */ -+ *gpt_offset = hdr->partitions; -+ *gpt_count = hdr->maxpart; -+ *gpt_size = hdr->partentry_size; -+ -+ return next_gpt_slice(); -+ } -+ else -+ { -+ /* This is not a valid header for a GPT partition table. -+ Re-read the MBR or the boot sector of the extended -+ partition. */ -+ if (! rawread (drive, *offset, 0, get_sector_size(drive), buf)) -+ return 0; -+ } -+ } -+ -+ /* Not a GPT partition. */ -+ *gpt_offset = 0; -+ - /* Increase the entry number. */ - (*entry)++; - -@@ -710,6 +767,43 @@ next_partition (unsigned long drive, unsigned long dest, - return 1; - } - -+ /* Get the next GPT slice. */ -+ int next_gpt_slice (void) -+ { -+ struct grub_gpt_partentry *gptentry = (struct grub_gpt_partentry *) buf; -+ /* Make GPT partitions show up as PC slices. */ -+ int pc_slice_no = (*partition & 0xFF0000) >> 16; -+ -+ /* If this is the first time... */ -+ if (pc_slice_no == 0xFF) -+ { -+ pc_slice_no = -1; -+ *entry = -1; -+ } -+ -+ do { -+ (*entry)++; -+ -+ if (*entry >= *gpt_count) -+ { -+ errnum = ERR_NO_PART; -+ return 0; -+ } -+ /* Read in the GPT Partition table entry. */ -+ if (! rawread (drive, (*gpt_offset) + GPT_ENTRY_SECTOR (drive, *gpt_size, *entry), GPT_ENTRY_INDEX (drive, *gpt_size, *entry), *gpt_size, buf)) -+ return 0; -+ } while (! (gptentry->type1 && gptentry->type2)); -+ -+ pc_slice_no++; -+ *start = gptentry->start; -+ *len = gptentry->end - gptentry->start + 1; -+ *type = PC_SLICE_TYPE_EXT2FS; -+ *entry = pc_slice_no; -+ *partition = (*entry << 16) | 0xFFFF; -+ -+ return 1; -+ } -+ - /* Start the body of this function. */ - - #ifndef STAGE1_5 -@@ -717,6 +811,9 @@ next_partition (unsigned long drive, unsigned long dest, - return 0; - #endif - -+ if (*partition != 0xFFFFFF && *gpt_offset != 0) -+ return next_gpt_slice (); -+ - /* If previous partition is a BSD partition or a PC slice which - contains BSD partitions... */ - if ((*partition != 0xFFFFFF && IS_PC_SLICE_TYPE_BSD (*type & 0xff)) -@@ -755,8 +852,11 @@ real_open_partition (int flags) - unsigned long dest_partition = current_partition; - unsigned long part_offset; - unsigned long ext_offset; -+ unsigned long gpt_offset; -+ int gpt_count; -+ int gpt_size; - int entry; -- char buf[SECTOR_SIZE]; -+ char buf[4096]; - int bsd_part, pc_slice; - - /* For simplicity. */ -@@ -766,7 +866,8 @@ real_open_partition (int flags) - int ret = next_partition (current_drive, dest_partition, - ¤t_partition, ¤t_slice, - &part_start, &part_length, -- &part_offset, &entry, &ext_offset, buf); -+ &part_offset, &entry, &ext_offset, -+ &gpt_offset, &gpt_count, &gpt_size, buf); - bsd_part = (current_partition >> 8) & 0xFF; - pc_slice = current_partition >> 16; - return ret; -@@ -926,6 +1027,17 @@ open_partition (void) - return real_open_partition (0); - } - -+#if !defined(PLATFORM_EFI) && !defined(GRUB_UTIL) -+int get_sector_size (int drive) -+{ -+ return SECTOR_SIZE; -+} -+int get_sector_bits (int drive) -+{ -+ return SECTOR_BITS; -+} -+#endif /* !defined(PLATFORM_EFI) && !defined(GRUB_UTIL) */ -+ - - #ifndef STAGE1_5 - /* XX used for device completion in 'set_device' and 'print_completions' */ -@@ -978,7 +1090,7 @@ set_device (char *device) - if (*device != ',' && *device != ')') - { - char ch = *device; --#ifdef SUPPORT_NETBOOT -+#if defined(SUPPORT_NETBOOT) || defined(PLATFORM_EFI) - if (*device == 'f' || *device == 'h' - || (*device == 'n' && network_ready) - || (*device == 'c' && cdrom_drive != GRUB_INVALID_DRIVE)) -@@ -1002,14 +1114,14 @@ set_device (char *device) - - if ((*device == 'f' - || *device == 'h' --#ifdef SUPPORT_NETBOOT -+#if defined(SUPPORT_NETBOOT) || defined(PLATFORM_EFI) - || (*device == 'n' && network_ready) - #endif - || (*device == 'c' && cdrom_drive != GRUB_INVALID_DRIVE)) - && (device += 2, (*(device - 1) != 'd'))) - errnum = ERR_NUMBER_PARSING; -- --#ifdef SUPPORT_NETBOOT -+ -+#if defined(SUPPORT_NETBOOT) || defined(PLATFORM_EFI) - if (ch == 'n' && network_ready) - current_drive = NETWORK_DRIVE; - else -@@ -1131,7 +1243,7 @@ set_bootdev (int hdbias) - if ((saved_drive & 0x80) && cur_part_addr) - { - if (rawread (saved_drive, cur_part_offset, -- 0, SECTOR_SIZE, (char *) SCRATCHADDR)) -+ 0, get_sector_size(saved_drive), (char *) SCRATCHADDR)) - { - char *dst, *src; - -@@ -1243,6 +1355,12 @@ setup_part (char *filename) - - - #ifndef STAGE1_5 -+char * -+get_fsys_type (void) -+{ -+ return fsys_table[fsys_type].name; -+} -+ - /* - * This prints the filesystem type or gives relevant information. - */ -@@ -1376,7 +1494,7 @@ print_completions (int is_filename, int is_completion) - - if (!ptr - || *(ptr-1) != 'd' --#ifdef SUPPORT_NETBOOT -+#if defined(SUPPORT_NETBOOT) || defined(PLATFORM_EFI) - || *(ptr-2) != 'n' - #endif /* SUPPORT_NETBOOT */ - || *(ptr-2) != 'c') -@@ -1385,7 +1503,7 @@ print_completions (int is_filename, int is_completion) - i < (ptr && (*(ptr-1) == 'd' && *(ptr-2) == 'f') ? 1:2); - i++) - { -- for (j = 0; j < 8; j++) -+ for (j = 0; j < MAX_HD_NUM; j++) - { - disk_no = (i * 0x80) + j; - if ((disk_choice || disk_no == current_drive) -@@ -1407,7 +1525,7 @@ print_completions (int is_filename, int is_completion) - || (*(ptr-1) == 'd' && *(ptr-2) == 'c'))) - print_a_completion ("cd"); - --# ifdef SUPPORT_NETBOOT -+# if defined(SUPPORT_NETBOOT) || defined(PLATFORM_EFI) - if (network_ready - && (disk_choice || NETWORK_DRIVE == current_drive) - && (!ptr -@@ -1596,7 +1714,7 @@ grub_open (char *filename) - - BLK_BLKLENGTH (list_addr) = tmp; - -- filemax += (tmp * SECTOR_SIZE); -+ filemax += (tmp * get_sector_size(current_drive)); - list_addr += BLK_BLKLIST_INC_VAL; - - if (*ptr != ',') -@@ -1673,6 +1791,7 @@ grub_read (char *buf, int len) - if (block_file) - { - int size, off, ret = 0; -+ int sector_size = get_sector_size(current_drive); - - while (len && !errnum) - { -@@ -1687,10 +1806,10 @@ grub_read (char *buf, int len) - /* run BLK_CUR_FILEPOS up to filepos */ - while (filepos > BLK_CUR_FILEPOS) - { -- if ((filepos - (BLK_CUR_FILEPOS & ~(SECTOR_SIZE - 1))) -- >= SECTOR_SIZE) -+ if ((filepos - (BLK_CUR_FILEPOS & ~(sector_size - 1))) -+ >= sector_size) - { -- BLK_CUR_FILEPOS += SECTOR_SIZE; -+ BLK_CUR_FILEPOS += sector_size; - BLK_CUR_BLKNUM++; - - if (BLK_CUR_BLKNUM >= BLK_BLKLENGTH (BLK_CUR_BLKLIST)) -@@ -1703,9 +1822,9 @@ grub_read (char *buf, int len) - BLK_CUR_FILEPOS = filepos; - } - -- off = filepos & (SECTOR_SIZE - 1); -+ off = filepos & (sector_size - 1); - size = ((BLK_BLKLENGTH (BLK_CUR_BLKLIST) - BLK_CUR_BLKNUM) -- * SECTOR_SIZE) - off; -+ * sector_size) - off; - if (size > len) - size = len; - -diff --git a/stage2/efistubs.c b/stage2/efistubs.c -new file mode 100644 -index 0000000..29b086a ---- /dev/null -+++ b/stage2/efistubs.c -@@ -0,0 +1,7 @@ -+ -+#include "shared.h" -+#include "efistubs.h" -+ -+#if defined(PLATFORM_EFI) -+int network_ready = 0; -+#endif /* defined(PLATFORM_EFI) */ -diff --git a/stage2/efistubs.h b/stage2/efistubs.h -new file mode 100644 -index 0000000..97e407d ---- /dev/null -+++ b/stage2/efistubs.h -@@ -0,0 +1,8 @@ -+#ifndef EFISTUBS_H -+#define EFISTUBS_H 1 -+ -+#if defined(PLATFORM_EFI) -+extern int network_ready; -+#endif /* defined(PLATFORM_EFI) */ -+ -+#endif /* EFISTUBS_H */ -diff --git a/stage2/fat.h b/stage2/fat.h -index 7fed6ba..f154eed 100644 ---- a/stage2/fat.h -+++ b/stage2/fat.h -@@ -92,7 +92,7 @@ struct fat_bpb { - #define FAT_DIRENTRY_FIRST_CLUSTER(entry) \ - ((*((unsigned short *) (entry+26)))+(*((unsigned short *) (entry+20)) << 16)) - #define FAT_DIRENTRY_FILELENGTH(entry) \ -- (*((unsigned long *) (entry+28))) -+ (*((unsigned int *) (entry+28))) - - #define FAT_LONGDIR_ID(entry) \ - (*((unsigned char *) (entry))) -diff --git a/stage2/filesys.h b/stage2/filesys.h -index bbad8b9..79e5f1f 100644 ---- a/stage2/filesys.h -+++ b/stage2/filesys.h -@@ -40,6 +40,16 @@ int ufs2_embed (int *start_sector, int needed_sectors); - #define FSYS_UFS2_NUM 0 - #endif - -+#ifdef PLATFORM_EFI -+#define FSYS_UEFI_NUM 1 -+int uefi_mount (void); -+int uefi_read (char *buf, int len); -+int uefi_dir (char *dirname); -+void uefi_close (void); -+#else -+#define FSYS_UEFI_NUM 0 -+#endif -+ - #ifdef FSYS_FAT - #define FSYS_FAT_NUM 1 - int fat_mount (void); -@@ -115,6 +125,17 @@ void tftp_close (void); - #define FSYS_TFTP_NUM 0 - #endif - -+#ifdef PLATFORM_EFI -+#define FSYS_EFI_TFTP_NUM 1 -+int efi_tftp_mount (void); -+int efi_tftp_read (char *buf, int len); -+int efi_tftp_dir (char *dirname); -+void efi_tftp_close (void); -+#else -+#define FSYS_EFI_TFTP_NUM 0 -+#endif -+ -+ - #ifdef FSYS_ISO9660 - #define FSYS_ISO9660_NUM 1 - int iso9660_mount (void); -@@ -128,7 +149,8 @@ int iso9660_dir (char *dirname); - #define NUM_FSYS \ - (FSYS_FFS_NUM + FSYS_FAT_NUM + FSYS_EXT2FS_NUM + FSYS_MINIX_NUM \ - + FSYS_REISERFS_NUM + FSYS_VSTAFS_NUM + FSYS_JFS_NUM + FSYS_XFS_NUM \ -- + FSYS_TFTP_NUM + FSYS_ISO9660_NUM + FSYS_UFS2_NUM) -+ + FSYS_TFTP_NUM + FSYS_EFI_TFTP_NUM + FSYS_ISO9660_NUM + FSYS_UFS2_NUM \ -+ + FSYS_UEFI_NUM) - #endif - - /* defines for the block filesystem info area */ -@@ -137,8 +159,8 @@ int iso9660_dir (char *dirname); - #define BLK_CUR_BLKLIST (*((int*)(FSYS_BUF+4))) - #define BLK_CUR_BLKNUM (*((int*)(FSYS_BUF+8))) - #define BLK_MAX_ADDR (FSYS_BUF+0x7FF9) --#define BLK_BLKSTART(l) (*((int*)l)) --#define BLK_BLKLENGTH(l) (*((int*)(l+4))) -+#define BLK_BLKSTART(l) (*((int*)(unsigned long)l)) -+#define BLK_BLKLENGTH(l) (*((int*)(unsigned long)(l+4))) - #define BLK_BLKLIST_START (FSYS_BUF+12) - #define BLK_BLKLIST_INC_VAL 8 - #endif /* NO_BLOCK_FILES */ -diff --git a/stage2/fsys_ext2fs.c b/stage2/fsys_ext2fs.c -index 560048f..01386d1 100644 ---- a/stage2/fsys_ext2fs.c -+++ b/stage2/fsys_ext2fs.c -@@ -25,7 +25,7 @@ - static int mapblock1, mapblock2; - - /* sizes are always in bytes, BLOCK values are always in DEV_BSIZE (sectors) */ --#define DEV_BSIZE 512 -+#define DEV_BSIZE get_sector_size(current_drive) - - /* include/linux/fs.h */ - #define BLOCK_SIZE 1024 /* initial block size for superblock read */ -@@ -33,6 +33,7 @@ static int mapblock1, mapblock2; - #define WHICH_SUPER 1 - /* kind of from fs/ext2/super.c */ - #define SBLOCK (WHICH_SUPER * BLOCK_SIZE / DEV_BSIZE) /* = 2 */ -+#define SBOFF ((WHICH_SUPER * BLOCK_SIZE) % DEV_BSIZE) - - /* include/asm-i386/types.h */ - typedef __signed__ char __s8; -@@ -41,6 +42,7 @@ typedef __signed__ short __s16; - typedef unsigned short __u16; - typedef __signed__ int __s32; - typedef unsigned int __u32; -+typedef unsigned long long __u64; - - /* - * Constants relative to the data blocks, from ext2_fs.h -@@ -51,7 +53,7 @@ typedef unsigned int __u32; - #define EXT2_TIND_BLOCK (EXT2_DIND_BLOCK + 1) - #define EXT2_N_BLOCKS (EXT2_TIND_BLOCK + 1) - --/* include/linux/ext2_fs.h */ -+/* lib/ext2fs/ext2_fs.h from e2fsprogs */ - struct ext2_super_block - { - __u32 s_inodes_count; /* Inodes count */ -@@ -61,9 +63,9 @@ struct ext2_super_block - __u32 s_free_inodes_count; /* Free inodes count */ - __u32 s_first_data_block; /* First Data Block */ - __u32 s_log_block_size; /* Block size */ -- __s32 s_log_frag_size; /* Fragment size */ -+ __s32 s_obso_log_frag_size; /* Obsoleted Fragment size */ - __u32 s_blocks_per_group; /* # Blocks per group */ -- __u32 s_frags_per_group; /* # Fragments per group */ -+ __u32 s_obso_frags_per_group; /* Obsoleted Fragments per group */ - __u32 s_inodes_per_group; /* # Inodes per group */ - __u32 s_mtime; /* Mount time */ - __u32 s_wtime; /* Write time */ -@@ -72,17 +74,76 @@ struct ext2_super_block - __u16 s_magic; /* Magic signature */ - __u16 s_state; /* File system state */ - __u16 s_errors; /* Behaviour when detecting errors */ -- __u16 s_pad; -+ __u16 s_minor_rev_level; /* minor revision level */ - __u32 s_lastcheck; /* time of last check */ - __u32 s_checkinterval; /* max. time between checks */ - __u32 s_creator_os; /* OS */ - __u32 s_rev_level; /* Revision level */ - __u16 s_def_resuid; /* Default uid for reserved blocks */ - __u16 s_def_resgid; /* Default gid for reserved blocks */ -- __u32 s_reserved[235]; /* Padding to the end of the block */ -- }; -- --struct ext2_group_desc -+ /* -+ * These fields are for EXT2_DYNAMIC_REV superblocks only. -+ * -+ * Note: the difference between the compatible feature set and -+ * the incompatible feature set is that if there is a bit set -+ * in the incompatible feature set that the kernel doesn't -+ * know about, it should refuse to mount the filesystem. -+ * -+ * e2fsck's requirements are more strict; if it doesn't know -+ * about a feature in either the compatible or incompatible -+ * feature set, it must abort and not try to meddle with -+ * things it doesn't understand... -+ */ -+ __u32 s_first_ino; /* First non-reserved inode */ -+ __u16 s_inode_size; /* size of inode structure */ -+ __u16 s_block_group_nr; /* block group # of this superblock */ -+ __u32 s_feature_compat; /* compatible feature set */ -+ __u32 s_feature_incompat; /* incompatible feature set */ -+ __u32 s_feature_ro_compat; /* readonly-compatible feature set */ -+ __u8 s_uuid[16]; /* 128-bit uuid for volume */ -+ char s_volume_name[16]; /* volume name */ -+ char s_last_mounted[64]; /* directory where last mounted */ -+ __u32 s_algorithm_usage_bitmap; /* For compression */ -+ /* -+ * Performance hints. Directory preallocation should only -+ * happen if the EXT2_FEATURE_COMPAT_DIR_PREALLOC flag is on. -+ */ -+ __u8 s_prealloc_blocks; /* Nr of blocks to try to preallocate*/ -+ __u8 s_prealloc_dir_blocks; /* Nr to preallocate for dirs */ -+ __u16 s_reserved_gdt_blocks;/* Per group table for online growth */ -+ /* -+ * Journaling support valid if EXT2_FEATURE_COMPAT_HAS_JOURNAL set. -+ */ -+ __u8 s_journal_uuid[16]; /* uuid of journal superblock */ -+ __u32 s_journal_inum; /* inode number of journal file */ -+ __u32 s_journal_dev; /* device number of journal file */ -+ __u32 s_last_orphan; /* start of list of inodes to delete */ -+ __u32 s_hash_seed[4]; /* HTREE hash seed */ -+ __u8 s_def_hash_version; /* Default hash version to use */ -+ __u8 s_jnl_backup_type; /* Default type of journal backup */ -+ __u16 s_desc_size; /* size of group descriptor */ -+ __u32 s_default_mount_opts; -+ __u32 s_first_meta_bg; /* First metablock group */ -+ __u32 s_mkfs_time; /* When the filesystem was created */ -+ __u32 s_jnl_blocks[17]; /* Backup of the journal inode */ -+ /* 64bit desc support valid if EXT4_FEATURE_INCOMPAT_64BIT */ -+ __u32 s_blocks_count_hi; /* Blocks count */ -+ __u32 s_r_blocks_count_hi; /* Reserved blocks count */ -+ __u32 s_free_blocks_count_hi; /* Free blocks count */ -+ __u16 s_min_extra_isize; /* All inodes have at least # bytes */ -+ __u16 s_max_extra_isize; /* New inodes should reverve # bytes */ -+ __u32 s_flags; /* Miscellaneous flags */ -+ __u16 s_raid_stride; /* Raid stride */ -+ __u16 s_mmp_interval; /* # seconds to wait MMP checking */ -+ __u64 s_mmp_block; /* Block for multi-mount protection */ -+ __u32 s_raid_stripe_width; /* Blocks on all data disks (N*stride)*/ -+ __u8 s_log_groups_per_flex;/* FLEX_BG group size*/ -+ __u8 s_reserved_char_pad; -+ __u16 s_reserved_pad; -+ __u32 s_reserved[162]; /* Padding to the end of the block */ -+}; -+ -+struct ext4_group_desc - { - __u32 bg_block_bitmap; /* Blocks bitmap block */ - __u32 bg_inode_bitmap; /* Inodes bitmap block */ -@@ -90,8 +151,18 @@ struct ext2_group_desc - __u16 bg_free_blocks_count; /* Free blocks count */ - __u16 bg_free_inodes_count; /* Free inodes count */ - __u16 bg_used_dirs_count; /* Directories count */ -- __u16 bg_pad; -- __u32 bg_reserved[3]; -+ __u16 bg_flags; /* EXT4_BG_flags (INODE_UNINIT, etc) */ -+ __u32 bg_reserved[2]; /* Likely block/inode bitmap checksum */ -+ __u16 bg_itable_unused; /* Unused inodes count */ -+ __u16 bg_checksum; /* crc16(sb_uuid+group+desc) */ -+ __u32 bg_block_bitmap_hi; /* Blocks bitmap block MSB */ -+ __u32 bg_inode_bitmap_hi; /* Inodes bitmap block MSB */ -+ __u32 bg_inode_table_hi; /* Inodes table block MSB */ -+ __u16 bg_free_blocks_count_hi;/* Free blocks count MSB */ -+ __u16 bg_free_inodes_count_hi;/* Free inodes count MSB */ -+ __u16 bg_used_dirs_count_hi; /* Directories count MSB */ -+ __u16 bg_itable_unused_hi; /* Unused inodes count MSB */ -+ __u32 bg_reserved2[3]; - }; - - struct ext2_inode -@@ -129,22 +200,22 @@ struct ext2_inode - __u32 i_block[EXT2_N_BLOCKS]; /* 40: Pointers to blocks */ - __u32 i_version; /* File version (for NFS) */ - __u32 i_file_acl; /* File ACL */ -- __u32 i_dir_acl; /* Directory ACL */ -- __u32 i_faddr; /* Fragment address */ -+ __u32 i_size_high; -+ __u32 i_obso_faddr; /* Obsoleted fragment address */ - union - { - struct - { -- __u8 l_i_frag; /* Fragment number */ -- __u8 l_i_fsize; /* Fragment size */ -- __u16 i_pad1; -- __u32 l_i_reserved2[2]; -+ __u16 l_i_blocks_high; /* were l_i_reserved1 */ -+ __u16 l_i_file_acl_high; -+ __u16 l_i_uid_high; /* these 2 fields */ -+ __u16 l_i_gid_high; /* were reserved2[0] */ -+ __u32 l_i_reserved2; - } - linux2; - struct - { -- __u8 h_i_frag; /* Fragment number */ -- __u8 h_i_fsize; /* Fragment size */ -+ __u16 h_i_reserved1; /* Obsoleted fragment number/size which are removed in ext4 */ - __u16 h_i_mode_high; - __u16 h_i_uid_high; - __u16 h_i_gid_high; -@@ -153,16 +224,36 @@ struct ext2_inode - hurd2; - struct - { -- __u8 m_i_frag; /* Fragment number */ -- __u8 m_i_fsize; /* Fragment size */ -- __u16 m_pad1; -+ __u16 h_i_reserved1; /* Obsoleted fragment number/size which are removed in ext4 */ -+ __u16 m_i_file_acl_high; - __u32 m_i_reserved2[2]; - } - masix2; - } - osd2; /* OS dependent 2 */ -+ __u16 i_extra_isize; -+ __u16 i_pad1; -+ __u32 i_ctime_extra; /* extra Change time (nsec << 2 | epoch) */ -+ __u32 i_mtime_extra; /* extra Modification time(nsec << 2 | epoch) */ -+ __u32 i_atime_extra; /* extra Access time (nsec << 2 | epoch) */ -+ __u32 i_crtime; /* File Creation time */ -+ __u32 i_crtime_extra; /* extra FileCreationtime (nsec << 2 | epoch) */ -+ __u32 i_version_hi; /* high 32 bits for 64-bit version */ - }; - -+#define EXT4_FEATURE_INCOMPAT_EXTENTS 0x0040 /* extents support */ -+#define EXT4_FEATURE_INCOMPAT_64BIT 0x0080 /* grub not supported*/ -+#define EXT4_FEATURE_INCOMPAT_MMP 0x0100 -+#define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200 -+ -+#define EXT4_HAS_INCOMPAT_FEATURE(sb,mask) \ -+ ( sb->s_feature_incompat & mask ) -+ -+#define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */ -+#define EXT4_HUGE_FILE_FL 0x00040000 /* Set to each huge file */ -+ -+#define EXT4_MIN_DESC_SIZE 32 -+ - /* linux/limits.h */ - #define NAME_MAX 255 /* # chars in a file name */ - -@@ -180,6 +271,57 @@ struct ext2_dir_entry - char name[EXT2_NAME_LEN]; /* File name */ - }; - -+/* linux/ext4_fs_extents.h */ -+/* This is the extent on-disk structure. -+ * It's used at the bottom of the tree. -+ */ -+struct ext4_extent -+ { -+ __u32 ee_block; /* first logical block extent covers */ -+ __u16 ee_len; /* number of blocks covered by extent */ -+ __u16 ee_start_hi; /* high 16 bits of physical block */ -+ __u32 ee_start_lo; /* low 32 bits of physical block */ -+ }; -+ -+/* -+ * This is index on-disk structure. -+ * It's used at all the levels except the bottom. -+ */ -+struct ext4_extent_idx -+ { -+ __u32 ei_block; /* index covers logical blocks from 'block' */ -+ __u32 ei_leaf_lo; /* pointer to the physical block of the next * -+ * level. leaf or next index could be there */ -+ __u16 ei_leaf_hi; /* high 16 bits of physical block */ -+ __u16 ei_unused; -+ }; -+ -+/* -+ * Each block (leaves and indexes), even inode-stored has header. -+ */ -+struct ext4_extent_header -+ { -+ __u16 eh_magic; /* probably will support different formats */ -+ __u16 eh_entries; /* number of valid entries */ -+ __u16 eh_max; /* capacity of store in entries */ -+ __u16 eh_depth; /* has tree real underlying blocks? */ -+ __u32 eh_generation; /* generation of the tree */ -+ }; -+ -+#define EXT4_EXT_MAGIC (0xf30a) -+#define EXT_FIRST_EXTENT(__hdr__) \ -+ ((struct ext4_extent *) (((char *) (__hdr__)) + \ -+ sizeof(struct ext4_extent_header))) -+#define EXT_FIRST_INDEX(__hdr__) \ -+ ((struct ext4_extent_idx *) (((char *) (__hdr__)) + \ -+ sizeof(struct ext4_extent_header))) -+#define EXT_LAST_EXTENT(__hdr__) \ -+ (EXT_FIRST_EXTENT((__hdr__)) + (__u16)((__hdr__)->eh_entries) - 1) -+#define EXT_LAST_INDEX(__hdr__) \ -+ (EXT_FIRST_INDEX((__hdr__)) + (__u16)((__hdr__)->eh_entries) - 1) -+ -+ -+ - /* linux/ext2fs.h */ - /* - * EXT2_DIR_PAD defines the directory entries boundaries -@@ -206,25 +348,37 @@ struct ext2_dir_entry - ((struct ext2_super_block *)(FSYS_BUF)) - #define GROUP_DESC \ - ((struct ext2_group_desc *) \ -- ((int)SUPERBLOCK + sizeof(struct ext2_super_block))) -+ ((unsigned long)SUPERBLOCK + sizeof(struct ext2_super_block))) - #define INODE \ -- ((struct ext2_inode *)((int)GROUP_DESC + EXT2_BLOCK_SIZE(SUPERBLOCK))) -+ ((struct ext2_inode *)((unsigned long)GROUP_DESC + EXT2_BLOCK_SIZE(SUPERBLOCK))) - #define DATABLOCK1 \ -- ((int)((int)INODE + sizeof(struct ext2_inode))) -+ ((unsigned long)INODE + sizeof(struct ext2_inode)) - #define DATABLOCK2 \ -- ((int)((int)DATABLOCK1 + EXT2_BLOCK_SIZE(SUPERBLOCK))) -+ ((unsigned long)DATABLOCK1 + EXT2_BLOCK_SIZE(SUPERBLOCK)) - - /* linux/ext2_fs.h */ - #define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (__u32)) - #define EXT2_ADDR_PER_BLOCK_BITS(s) (log2(EXT2_ADDR_PER_BLOCK(s))) - -+#define EXT2_INODE_SIZE(s) (SUPERBLOCK->s_inode_size) -+#define EXT2_INODES_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s)/EXT2_INODE_SIZE(s)) -+ - /* linux/ext2_fs.h */ - #define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_log_block_size + 10) - /* kind of from ext2/super.c */ - #define EXT2_BLOCK_SIZE(s) (1 << EXT2_BLOCK_SIZE_BITS(s)) - /* linux/ext2fs.h */ -+/* sizeof(struct ext2_group_desc) is changed in ext4 -+ * in kernel code, ext2/3 uses sizeof(struct ext2_group_desc) to calculate -+ * number of desc per block, while ext4 uses superblock->s_desc_size in stead -+ * superblock->s_desc_size is not available in ext2/3 -+ * */ -+#define EXT2_DESC_SIZE(s) \ -+ (EXT4_HAS_INCOMPAT_FEATURE(s,EXT4_FEATURE_INCOMPAT_64BIT)? \ -+ s->s_desc_size : EXT4_MIN_DESC_SIZE) - #define EXT2_DESC_PER_BLOCK(s) \ -- (EXT2_BLOCK_SIZE(s) / sizeof (struct ext2_group_desc)) -+ (EXT2_BLOCK_SIZE(s) / EXT2_DESC_SIZE(s)) -+ - /* linux/stat.h */ - #define S_IFMT 00170000 - #define S_IFLNK 0120000 -@@ -239,8 +393,8 @@ struct ext2_dir_entry - * ffz = Find First Zero in word. Undefined if no zero exists, - * so code should check against ~0UL first.. - */ --static __inline__ unsigned long --ffz (unsigned long word) -+static __inline__ unsigned int -+ffz (unsigned int word) - { - __asm__ ("bsfl %1,%0" - : "=r" (word) -@@ -260,7 +414,7 @@ ext2fs_mount (void) - && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_EXT2FS)) - && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_OTHER))) - || part_length < (SBLOCK + (sizeof (struct ext2_super_block) / DEV_BSIZE)) -- || !devread (SBLOCK, 0, sizeof (struct ext2_super_block), -+ || !devread (SBLOCK, SBOFF, sizeof (struct ext2_super_block), - (char *) SUPERBLOCK) - || SUPERBLOCK->s_magic != EXT2_SUPER_MAGIC) - retval = 0; -@@ -276,7 +430,7 @@ ext2_rdfsb (int fsblock, int buffer) - printf ("fsblock %d buffer %d\n", fsblock, buffer); - #endif /* E2DEBUG */ - return devread (fsblock * (EXT2_BLOCK_SIZE (SUPERBLOCK) / DEV_BSIZE), 0, -- EXT2_BLOCK_SIZE (SUPERBLOCK), (char *) buffer); -+ EXT2_BLOCK_SIZE (SUPERBLOCK), (char *) (unsigned long) buffer); - } - - /* from -@@ -386,6 +540,122 @@ ext2fs_block_map (int logical_block) - [logical_block & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)]; - } - -+/* extent binary search index -+ * find closest index in the current level extent tree -+ * kind of from ext4_ext_binsearch_idx in ext4/extents.c -+ */ -+static struct ext4_extent_idx* -+ext4_ext_binsearch_idx(struct ext4_extent_header* eh, int logical_block) -+{ -+ struct ext4_extent_idx *r, *l, *m; -+ l = EXT_FIRST_INDEX(eh) + 1; -+ r = EXT_LAST_INDEX(eh); -+ while (l <= r) -+ { -+ m = l + (r - l) / 2; -+ if (logical_block < m->ei_block) -+ r = m - 1; -+ else -+ l = m + 1; -+ } -+ return (struct ext4_extent_idx*)(l - 1); -+} -+ -+/* extent binary search -+ * find closest extent in the leaf level -+ * kind of from ext4_ext_binsearch in ext4/extents.c -+ */ -+static struct ext4_extent* -+ext4_ext_binsearch(struct ext4_extent_header* eh, int logical_block) -+{ -+ struct ext4_extent *r, *l, *m; -+ l = EXT_FIRST_EXTENT(eh) + 1; -+ r = EXT_LAST_EXTENT(eh); -+ while (l <= r) -+ { -+ m = l + (r - l) / 2; -+ if (logical_block < m->ee_block) -+ r = m - 1; -+ else -+ l = m + 1; -+ } -+ return (struct ext4_extent*)(l - 1); -+} -+ -+/* Maps extents enabled logical block into physical block via an inode. -+ * EXT4_HUGE_FILE_FL should be checked before calling this. -+ */ -+static int -+ext4fs_block_map (int logical_block) -+{ -+ struct ext4_extent_header *eh; -+ struct ext4_extent *ex, *extent; -+ struct ext4_extent_idx *ei, *index; -+ int depth; -+ int i; -+ -+#ifdef E2DEBUG -+ unsigned char *i; -+ for (i = (unsigned char *) INODE; -+ i < ((unsigned char *) INODE + sizeof (struct ext2_inode)); -+ i++) -+ { -+ printf ("%c", "0123456789abcdef"[*i >> 4]); -+ printf ("%c", "0123456789abcdef"[*i % 16]); -+ if (!((i + 1 - (unsigned char *) INODE) % 16)) -+ { -+ printf ("\n"); -+ } -+ else -+ { -+ printf (" "); -+ } -+ } -+ printf ("logical block %d\n", logical_block); -+#endif /* E2DEBUG */ -+ eh = (struct ext4_extent_header*)INODE->i_block; -+ if (eh->eh_magic != EXT4_EXT_MAGIC) -+ { -+ errnum = ERR_FSYS_CORRUPT; -+ return -1; -+ } -+ while((depth = eh->eh_depth) != 0) -+ { /* extent index */ -+ if (eh->eh_magic != EXT4_EXT_MAGIC) -+ { -+ errnum = ERR_FSYS_CORRUPT; -+ return -1; -+ } -+ ei = ext4_ext_binsearch_idx(eh, logical_block); -+ if (ei->ei_leaf_hi) -+ {/* 64bit physical block number not supported */ -+ errnum = ERR_FILELENGTH; -+ return -1; -+ } -+ if (!ext2_rdfsb(ei->ei_leaf_lo, DATABLOCK1)) -+ { -+ errnum = ERR_FSYS_CORRUPT; -+ return -1; -+ } -+ eh = (struct ext4_extent_header*)DATABLOCK1; -+ } -+ -+ /* depth==0, we come to the leaf */ -+ ex = ext4_ext_binsearch(eh, logical_block); -+ if (ex->ee_start_hi) -+ {/* 64bit physical block number not supported */ -+ errnum = ERR_FILELENGTH; -+ return -1; -+ } -+ if ((ex->ee_block + ex->ee_len) < logical_block) -+ { -+ errnum = ERR_FSYS_CORRUPT; -+ return -1; -+ } -+ return ex->ee_start_lo + logical_block - ex->ee_block; -+ -+} -+ - /* preconditions: all preconds of ext2fs_block_map */ - int - ext2fs_read (char *buf, int len) -@@ -420,6 +690,11 @@ ext2fs_read (char *buf, int len) - /* find the (logical) block component of our location */ - logical_block = filepos >> EXT2_BLOCK_SIZE_BITS (SUPERBLOCK); - offset = filepos & (EXT2_BLOCK_SIZE (SUPERBLOCK) - 1); -+ /* map extents enabled logical block number to physical fs on-disk block number */ -+ if (EXT4_HAS_INCOMPAT_FEATURE(SUPERBLOCK,EXT4_FEATURE_INCOMPAT_EXTENTS) -+ && INODE->i_flags & EXT4_EXTENTS_FL) -+ map = ext4fs_block_map (logical_block); -+ else - map = ext2fs_block_map (logical_block); - #ifdef E2DEBUG - printf ("map=%d\n", map); -@@ -504,7 +779,7 @@ ext2fs_dir (char *dirname) - int desc; /* index within that group */ - int ino_blk; /* fs pointer of the inode's information */ - int str_chk = 0; /* used to hold the results of a string compare */ -- struct ext2_group_desc *gdp; -+ struct ext4_group_desc *ext4_gdp; - struct ext2_inode *raw_inode; /* inode info corresponding to current_ino */ - - char linkbuf[PATH_MAX]; /* buffer for following symbolic links */ -@@ -546,18 +821,25 @@ ext2fs_dir (char *dirname) - #endif /* E2DEBUG */ - if (!ext2_rdfsb ( - (WHICH_SUPER + group_desc + SUPERBLOCK->s_first_data_block), -- (int) GROUP_DESC)) -+ (unsigned long) GROUP_DESC)) - { - return 0; - } -- gdp = GROUP_DESC; -- ino_blk = gdp[desc].bg_inode_table + -+ ext4_gdp = (struct ext4_group_desc *)( (__u8*)GROUP_DESC + -+ desc * EXT2_DESC_SIZE(SUPERBLOCK)); -+ if (EXT4_HAS_INCOMPAT_FEATURE(SUPERBLOCK, EXT4_FEATURE_INCOMPAT_64BIT) -+ && (! ext4_gdp->bg_inode_table_hi)) -+ {/* 64bit itable not supported */ -+ errnum = ERR_FILELENGTH; -+ return -1; -+ } -+ ino_blk = ext4_gdp->bg_inode_table + - (((current_ino - 1) % (SUPERBLOCK->s_inodes_per_group)) -- >> log2 (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode))); -+ >> log2 (EXT2_INODES_PER_BLOCK (SUPERBLOCK))); - #ifdef E2DEBUG - printf ("inode table fsblock=%d\n", ino_blk); - #endif /* E2DEBUG */ -- if (!ext2_rdfsb (ino_blk, (int) INODE)) -+ if (!ext2_rdfsb (ino_blk, (unsigned long) INODE)) - { - return 0; - } -@@ -565,13 +847,12 @@ ext2fs_dir (char *dirname) - /* reset indirect blocks! */ - mapblock2 = mapblock1 = -1; - -- raw_inode = INODE + -- ((current_ino - 1) -- & (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode) - 1)); -+ raw_inode = (struct ext2_inode *)((char *)INODE + -+ ((current_ino - 1) & (EXT2_INODES_PER_BLOCK (SUPERBLOCK) - 1)) * -+ EXT2_INODE_SIZE (SUPERBLOCK)); - #ifdef E2DEBUG - printf ("ipb=%d, sizeof(inode)=%d\n", -- (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode)), -- sizeof (struct ext2_inode)); -+ EXT2_INODES_PER_BLOCK (SUPERBLOCK), EXT2_INODE_SIZE (SUPERBLOCK)); - printf ("inode=%x, raw_inode=%x\n", INODE, raw_inode); - printf ("offset into inode table block=%d\n", (int) raw_inode - (int) INODE); - for (i = (unsigned char *) INODE; i <= (unsigned char *) raw_inode; -@@ -629,7 +910,10 @@ ext2fs_dir (char *dirname) - } - linkbuf[filemax + len] = '\0'; - -- /* Read the symlink data. */ -+ /* Read the symlink data. -+ * Slow symlink is extents enabled -+ * But since grub_read invokes ext2fs_read, nothing to change here -+ */ - if (! ext2_is_fast_symlink ()) - { - /* Read the necessary blocks, and reset the file pointer. */ -@@ -640,7 +924,9 @@ ext2fs_dir (char *dirname) - } - else - { -- /* Copy the data directly from the inode. */ -+ /* Copy the data directly from the inode. -+ * Fast symlink is not extents enabled -+ */ - len = filemax; - memmove (linkbuf, (char *) INODE->i_block, len); - } -@@ -674,6 +960,13 @@ ext2fs_dir (char *dirname) - errnum = ERR_BAD_FILETYPE; - return 0; - } -+ /* if file is too large, just stop and report an error*/ -+ if ( (INODE->i_flags & EXT4_HUGE_FILE_FL) && !(INODE->i_size_high)) -+ { -+ /* file too large, stop reading */ -+ errnum = ERR_FILELENGTH; -+ return 0; -+ } - - filemax = (INODE->i_size); - return 1; -@@ -728,17 +1021,28 @@ ext2fs_dir (char *dirname) - } - - /* else, find the (logical) block component of our location */ -+ /* ext4 logical block number the same as ext2/3 */ - blk = loc >> EXT2_BLOCK_SIZE_BITS (SUPERBLOCK); - - /* we know which logical block of the directory entry we are looking - for, now we have to translate that to the physical (fs) block on - the disk */ -+ /* map extents enabled logical block number to physical fs on-disk block number */ -+ if (EXT4_HAS_INCOMPAT_FEATURE(SUPERBLOCK,EXT4_FEATURE_INCOMPAT_EXTENTS) -+ && INODE->i_flags & EXT4_EXTENTS_FL) -+ map = ext4fs_block_map (blk); -+ else - map = ext2fs_block_map (blk); - #ifdef E2DEBUG - printf ("fs block=%d\n", map); - #endif /* E2DEBUG */ - mapblock2 = -1; -- if ((map < 0) || !ext2_rdfsb (map, DATABLOCK2)) -+ if (map < 0) -+ { -+ *rest = ch; -+ return 0; -+ } -+ if (!ext2_rdfsb (map, DATABLOCK2)) - { - errnum = ERR_FSYS_CORRUPT; - *rest = ch; -diff --git a/stage2/fsys_fat.c b/stage2/fsys_fat.c -index f40e658..f1157f4 100644 ---- a/stage2/fsys_fat.c -+++ b/stage2/fsys_fat.c -@@ -49,13 +49,13 @@ struct fat_superblock - /* pointer(s) into filesystem info buffer for DOS stuff */ - #define FAT_SUPER ( (struct fat_superblock *) \ - ( FSYS_BUF + 32256) )/* 512 bytes long */ --#define FAT_BUF ( FSYS_BUF + 30208 ) /* 4 sector FAT buffer */ --#define NAME_BUF ( FSYS_BUF + 29184 ) /* Filename buffer (833 bytes) */ -+#define FAT_BUF ( FSYS_BUF + 28160 ) /* 4 sector FAT buffer */ -+#define NAME_BUF ( FSYS_BUF + 27136 ) /* Filename buffer (833 bytes) */ - --#define FAT_CACHE_SIZE 2048 -+#define FAT_CACHE_SIZE 4096 - --static __inline__ unsigned long --log2 (unsigned long word) -+static __inline__ unsigned int -+grub_log2 (unsigned int word) - { - __asm__ ("bsfl %1,%0" - : "=r" (word) -@@ -68,9 +68,12 @@ fat_mount (void) - { - struct fat_bpb bpb; - __u32 magic, first_fat; -+ int sector_size; - - /* Check partition type for harddisk */ - if (((current_drive & 0x80) || (current_slice != 0)) -+ && (current_slice != PC_SLICE_TYPE_EXT2FS) -+ && (current_slice != PC_SLICE_TYPE_LINUX_RAID) - && ! IS_PC_SLICE_TYPE_FAT (current_slice) - && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_MSDOS))) - return 0; -@@ -79,14 +82,16 @@ fat_mount (void) - if (! devread (0, 0, sizeof (bpb), (char *) &bpb)) - return 0; - -+ sector_size = get_sector_size(current_drive); -+ - /* Check if the number of sectors per cluster is zero here, to avoid - zero division. */ - if (bpb.sects_per_clust == 0) - return 0; - -- FAT_SUPER->sectsize_bits = log2 (FAT_CVT_U16 (bpb.bytes_per_sect)); -+ FAT_SUPER->sectsize_bits = grub_log2 (FAT_CVT_U16 (bpb.bytes_per_sect)); - FAT_SUPER->clustsize_bits -- = FAT_SUPER->sectsize_bits + log2 (bpb.sects_per_clust); -+ = FAT_SUPER->sectsize_bits + grub_log2 (bpb.sects_per_clust); - - /* Fill in info about super block */ - FAT_SUPER->num_sectors = FAT_CVT_U16 (bpb.short_sectors) -@@ -106,7 +111,7 @@ fat_mount (void) - FAT_SUPER->data_offset = - FAT_SUPER->root_offset - + ((FAT_SUPER->root_max - 1) >> FAT_SUPER->sectsize_bits) + 1; -- FAT_SUPER->num_clust = -+ FAT_SUPER->num_clust = - 2 + ((FAT_SUPER->num_sectors - FAT_SUPER->data_offset) - / bpb.sects_per_clust); - FAT_SUPER->sects_per_clust = bpb.sects_per_clust; -@@ -153,11 +158,11 @@ fat_mount (void) - /* Now do some sanity checks */ - - if (FAT_CVT_U16(bpb.bytes_per_sect) != (1 << FAT_SUPER->sectsize_bits) -- || FAT_CVT_U16(bpb.bytes_per_sect) != SECTOR_SIZE -+ || FAT_CVT_U16(bpb.bytes_per_sect) != sector_size - || bpb.sects_per_clust != (1 << (FAT_SUPER->clustsize_bits - - FAT_SUPER->sectsize_bits)) - || FAT_SUPER->num_clust <= 2 -- || (FAT_SUPER->fat_size * FAT_SUPER->num_clust / (2 * SECTOR_SIZE) -+ || (FAT_SUPER->fat_size * FAT_SUPER->num_clust / (2 * sector_size) - > FAT_SUPER->fat_length)) - return 0; - -@@ -201,6 +206,7 @@ fat_read (char *buf, int len) - int offset; - int ret = 0; - int size; -+ int sector_size = get_sector_size(current_drive); - - if (FAT_SUPER->file_cluster < 0) - { -@@ -236,10 +242,10 @@ fat_read (char *buf, int len) - if (cached_pos < 0 || - (cached_pos + FAT_SUPER->fat_size) > 2*FAT_CACHE_SIZE) - { -- FAT_SUPER->cached_fat = (fat_entry & ~(2*SECTOR_SIZE - 1)); -+ FAT_SUPER->cached_fat = (fat_entry & ~(2*sector_size - 1)); - cached_pos = (fat_entry - FAT_SUPER->cached_fat); - sector = FAT_SUPER->fat_offset -- + FAT_SUPER->cached_fat / (2*SECTOR_SIZE); -+ + FAT_SUPER->cached_fat / (2*sector_size); - if (!devread (sector, 0, FAT_CACHE_SIZE, (char*) FAT_BUF)) - return 0; - } -@@ -257,6 +263,8 @@ fat_read (char *buf, int len) - return ret; - if (next_cluster < 2 || next_cluster >= FAT_SUPER->num_clust) - { -+ grub_printf("next_cluster: %d FAT_SUPER->num_clust: %d\n", -+ next_cluster, FAT_SUPER->num_clust); - errnum = ERR_FSYS_CORRUPT; - return 0; - } -@@ -340,7 +348,8 @@ fat_dir (char *dirname) - /* Directories don't have a file size */ - filemax = MAXINT; - -- for (rest = dirname; (ch = *rest) && !isspace (ch) && ch != '/'; rest++); -+ for (rest = dirname; (ch = *rest) && !isspace (ch) && ch != '/'; rest++) -+ *rest = tolower(*rest); - - *rest = 0; - -@@ -432,7 +441,7 @@ fat_dir (char *dirname) - goto print_filename; - # endif /* STAGE1_5 */ - -- if (substring (dirname, filename) == 0) -+ if (subcasestring (dirname, filename) == 0) - break; - } - } -@@ -459,7 +468,7 @@ fat_dir (char *dirname) - if (do_possibilities) - { - print_filename: -- if (substring (dirname, filename) <= 0) -+ if (subcasestring (dirname, filename) <= 0) - { - if (print_possibilities > 0) - print_possibilities = -print_possibilities; -@@ -469,7 +478,7 @@ fat_dir (char *dirname) - } - # endif /* STAGE1_5 */ - -- if (substring (dirname, filename) == 0) -+ if (subcasestring (dirname, filename) == 0) - break; - } - -diff --git a/stage2/fsys_iso9660.c b/stage2/fsys_iso9660.c -index 90e4aa8..858238b 100644 ---- a/stage2/fsys_iso9660.c -+++ b/stage2/fsys_iso9660.c -@@ -56,8 +56,8 @@ struct iso_inode_info { - #define NAME_BUF ((unsigned char *)(FSYS_BUF + 8192)) - - --static inline unsigned long --log2 (unsigned long word) -+static inline unsigned int -+grub_log2 (unsigned int word) - { - asm volatile ("bsfl %1,%0" - : "=r" (word) -@@ -68,7 +68,7 @@ log2 (unsigned long 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); -+ unsigned short sector_size_lg2 = grub_log2(buf_geom.sector_size); - - /* - * We have to use own devread() function since BIOS return wrong geometry -@@ -81,8 +81,6 @@ iso9660_devread (int sector, int byte_offset, int byte_len, char *buf) - 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)), -diff --git a/stage2/fsys_jfs.c b/stage2/fsys_jfs.c -index 307f836..d63b1de 100644 ---- a/stage2/fsys_jfs.c -+++ b/stage2/fsys_jfs.c -@@ -207,19 +207,20 @@ int - jfs_mount (void) - { - struct jfs_superblock super; -+ int sector_bits = get_sector_bits(current_drive); - -- if (part_length < MINJFS >> SECTOR_BITS -- || !devread (SUPER1_OFF >> SECTOR_BITS, 0, -+ if (part_length < MINJFS >> sector_bits -+ || !devread (SUPER1_OFF >> sector_bits, 0, - sizeof(struct jfs_superblock), (char *)&super) - || (super.s_magic != JFS_MAGIC) -- || !devread ((AITBL_OFF >> SECTOR_BITS) + FILESYSTEM_I, -+ || !devread ((AITBL_OFF >> sector_bits) + FILESYSTEM_I, - 0, DISIZE, (char*)fileset)) { - return 0; - } - - jfs.bsize = super.s_bsize; - jfs.l2bsize = super.s_l2bsize; -- jfs.bdlog = jfs.l2bsize - SECTOR_BITS; -+ jfs.bdlog = jfs.l2bsize - sector_bits; - - return 1; - } -@@ -387,9 +388,10 @@ int - jfs_embed (int *start_sector, int needed_sectors) - { - struct jfs_superblock super; -+ int sector_bits = get_sector_bits(current_drive); - - if (needed_sectors > 63 -- || !devread (SUPER1_OFF >> SECTOR_BITS, 0, -+ || !devread (SUPER1_OFF >> sector_bits, 0, - sizeof (struct jfs_superblock), - (char *)&super) - || (super.s_magic != JFS_MAGIC)) { -diff --git a/stage2/fsys_minix.c b/stage2/fsys_minix.c -index 5c76796..175ecf2 100644 ---- a/stage2/fsys_minix.c -+++ b/stage2/fsys_minix.c -@@ -138,11 +138,11 @@ struct minix_dir_entry { - #define SUPERBLOCK \ - ((struct minix_super_block *)(FSYS_BUF)) - #define INODE \ -- ((struct minix_inode *)((int) SUPERBLOCK + BLOCK_SIZE)) -+ ((struct minix_inode *)((unsigned long) SUPERBLOCK + BLOCK_SIZE)) - #define DATABLOCK1 \ -- ((int)((int)INODE + sizeof(struct minix_inode))) -+ ((unsigned long)INODE + sizeof(struct minix_inode)) - #define DATABLOCK2 \ -- ((int)((int)DATABLOCK1 + BLOCK_SIZE)) -+ ((unsigned long)DATABLOCK1 + BLOCK_SIZE) - - /* linux/stat.h */ - #define S_IFMT 00170000 -@@ -193,7 +193,7 @@ static int - minix_rdfsb (int fsblock, int buffer) - { - return devread (fsblock * (BLOCK_SIZE / DEV_BSIZE), 0, -- BLOCK_SIZE, (char *) buffer); -+ BLOCK_SIZE, (char *) (unsigned long) buffer); - } - - /* Maps LOGICAL_BLOCK (the file offset divided by the blocksize) into -@@ -336,7 +336,7 @@ minix_dir (char *dirname) - - ino_blk = (2 + SUPERBLOCK->s_imap_blocks + SUPERBLOCK->s_zmap_blocks - + (current_ino - 1) / MINIX_INODES_PER_BLOCK); -- if (! minix_rdfsb (ino_blk, (int) INODE)) -+ if (! minix_rdfsb (ino_blk, (unsigned long) INODE)) - return 0; - - /* reset indirect blocks! */ -diff --git a/stage2/fsys_reiserfs.c b/stage2/fsys_reiserfs.c -index 93ec5f8..f46fcb2 100644 ---- a/stage2/fsys_reiserfs.c -+++ b/stage2/fsys_reiserfs.c -@@ -292,7 +292,6 @@ struct reiserfs_de_head - - /* The size of the node cache */ - #define FSYSREISER_CACHE_SIZE 24*1024 --#define FSYSREISER_MIN_BLOCKSIZE SECTOR_SIZE - #define FSYSREISER_MAX_BLOCKSIZE FSYSREISER_CACHE_SIZE / 3 - - /* Info about currently opened file */ -@@ -341,19 +340,19 @@ struct fsys_reiser_info - /* The cached s+tree blocks in FSYS_BUF, see below - * for a more detailed description. - */ --#define ROOT ((char *) ((int) FSYS_BUF)) -+#define ROOT ((char *) ((unsigned long) FSYS_BUF)) - #define CACHE(i) (ROOT + ((i) << INFO->fullblocksize_shift)) - #define LEAF CACHE (DISK_LEAF_NODE_LEVEL) - - #define BLOCKHEAD(cache) ((struct block_head *) cache) --#define ITEMHEAD ((struct item_head *) ((int) LEAF + BLKH_SIZE)) --#define KEY(cache) ((struct key *) ((int) cache + BLKH_SIZE)) -+#define ITEMHEAD ((struct item_head *) ((unsigned long) LEAF + BLKH_SIZE)) -+#define KEY(cache) ((struct key *) ((unsigned long) cache + BLKH_SIZE)) - #define DC(cache) ((struct disk_child *) \ -- ((int) cache + BLKH_SIZE + KEY_SIZE * nr_item)) -+ ((unsigned long) cache + BLKH_SIZE + KEY_SIZE * nr_item)) - /* The fsys_reiser_info block. - */ - #define INFO \ -- ((struct fsys_reiser_info *) ((int) FSYS_BUF + FSYSREISER_CACHE_SIZE)) -+ ((struct fsys_reiser_info *) ((unsigned long) FSYS_BUF + FSYSREISER_CACHE_SIZE)) - /* - * The journal cache. For each transaction it contains the number of - * blocks followed by the real block numbers of this transaction. -@@ -366,8 +365,8 @@ struct fsys_reiser_info - #define JOURNAL_END ((__u32 *) (FSYS_BUF + FSYS_BUFLEN)) - - --static __inline__ unsigned long --log2 (unsigned long word) -+static __inline__ unsigned int -+grub_log2 (unsigned int word) - { - __asm__ ("bsfl %1,%0" - : "=r" (word) -@@ -569,9 +568,11 @@ int - reiserfs_mount (void) - { - struct reiserfs_super_block super; -- int superblock = REISERFS_DISK_OFFSET_IN_BYTES >> SECTOR_BITS; -+ int sector_bits = get_sector_bits(current_drive); -+ int sector_size = get_sector_size(current_drive); -+ int superblock = REISERFS_DISK_OFFSET_IN_BYTES >> sector_bits; - -- if (part_length < superblock + (sizeof (super) >> SECTOR_BITS) -+ if (part_length < superblock + (sizeof (super) >> sector_bits) - || ! devread (superblock, 0, sizeof (struct reiserfs_super_block), - (char *) &super) - || (substring (REISER3FS_SUPER_MAGIC_STRING, super.s_magic) > 0 -@@ -582,8 +583,8 @@ reiserfs_mount (void) - <= REISERFS_DISK_OFFSET_IN_BYTES)) - { - /* Try old super block position */ -- superblock = REISERFS_OLD_DISK_OFFSET_IN_BYTES >> SECTOR_BITS; -- if (part_length < superblock + (sizeof (super) >> SECTOR_BITS) -+ superblock = REISERFS_OLD_DISK_OFFSET_IN_BYTES >> sector_bits; -+ if (part_length < superblock + (sizeof (super) >> sector_bits) - || ! devread (superblock, 0, sizeof (struct reiserfs_super_block), - (char *) &super)) - return 0; -@@ -594,7 +595,7 @@ reiserfs_mount (void) - { - /* pre journaling super block ? */ - if (substring (REISERFS_SUPER_MAGIC_STRING, -- (char*) ((int) &super + 20)) > 0) -+ (char*) ((unsigned long) &super + 20)) > 0) - return 0; - - super.s_blocksize = REISERFS_OLD_BLOCKSIZE; -@@ -609,8 +610,8 @@ reiserfs_mount (void) - - INFO->version = super.s_version; - INFO->blocksize = super.s_blocksize; -- INFO->fullblocksize_shift = log2 (super.s_blocksize); -- INFO->blocksize_shift = INFO->fullblocksize_shift - SECTOR_BITS; -+ INFO->fullblocksize_shift = grub_log2 (super.s_blocksize); -+ INFO->blocksize_shift = INFO->fullblocksize_shift - sector_bits; - INFO->cached_slots = - (FSYSREISER_CACHE_SIZE >> INFO->fullblocksize_shift) - 1; - -@@ -622,9 +623,9 @@ reiserfs_mount (void) - /* Clear node cache. */ - memset (INFO->blocks, 0, sizeof (INFO->blocks)); - -- if (super.s_blocksize < FSYSREISER_MIN_BLOCKSIZE -+ if (super.s_blocksize < get_sector_size(current_drive) - || super.s_blocksize > FSYSREISER_MAX_BLOCKSIZE -- || (SECTOR_SIZE << INFO->blocksize_shift) != super.s_blocksize) -+ || (sector_size << INFO->blocksize_shift) != super.s_blocksize) - return 0; - - /* Initialize journal code. If something fails we end with zero -@@ -1215,9 +1216,10 @@ int - reiserfs_embed (int *start_sector, int needed_sectors) - { - struct reiserfs_super_block super; -+ int sector_bits = get_sector_bits(current_drive); - int num_sectors; -- -- if (! devread (REISERFS_DISK_OFFSET_IN_BYTES >> SECTOR_BITS, 0, -+ -+ if (! devread (REISERFS_DISK_OFFSET_IN_BYTES >> sector_bits, 0, - sizeof (struct reiserfs_super_block), (char *) &super)) - return 0; - -@@ -1229,9 +1231,9 @@ reiserfs_embed (int *start_sector, int needed_sectors) - * the journal log */ - super.s_journal_block * super.s_blocksize - > REISERFS_DISK_OFFSET_IN_BYTES)) -- num_sectors = (REISERFS_DISK_OFFSET_IN_BYTES >> SECTOR_BITS) - 1; -+ num_sectors = (REISERFS_DISK_OFFSET_IN_BYTES >> sector_bits) - 1; - else -- num_sectors = (REISERFS_OLD_DISK_OFFSET_IN_BYTES >> SECTOR_BITS) - 1; -+ num_sectors = (REISERFS_OLD_DISK_OFFSET_IN_BYTES >> sector_bits) - 1; - - return (needed_sectors <= num_sectors); - } -diff --git a/stage2/fsys_uefi.c b/stage2/fsys_uefi.c -new file mode 100644 -index 0000000..58b7050 ---- /dev/null -+++ b/stage2/fsys_uefi.c -@@ -0,0 +1,265 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2001 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. -+ */ -+ -+#include "shared.h" -+#include "filesys.h" -+ -+#ifdef PLATFORM_EFI -+#undef GRUB_UTIL -+ -+#include -+#include -+#include -+#include -+#include -+ -+static grub_efi_simple_file_system_t *file_system; -+static grub_efi_guid_t fsinfo_guid = GRUB_EFI_DEVICE_PATH_GUID; -+grub_efi_file_t *root = NULL; -+grub_efi_file_t *file = NULL; -+ -+typedef struct { -+ grub_efi_uint64_t size; -+ grub_efi_uint64_t filesize; -+ grub_efi_uint64_t physicalsize; -+ grub_efi_time_t createtime; -+ grub_efi_time_t accesstime; -+ grub_efi_time_t modifytime; -+ grub_efi_uint64_t attribute; -+ grub_efi_char16_t filename[]; -+} grub_efi_file_info_t; -+ -+int -+uefi_mount (void) -+{ -+ grub_efi_handle_t dev_handle = grub_efidisk_get_current_bdev_handle(); -+ grub_efi_status_t status; -+ -+ if (!dev_handle) -+ return 0; -+ -+ file_system = grub_efi_open_protocol (dev_handle, &simple_file_system_guid, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+ -+ if (!file_system) -+ return 0; -+ -+ status = Call_Service_2 (file_system->open_volume, file_system, &root); -+ -+ if (status != GRUB_EFI_SUCCESS) -+ return 0; -+ -+ return 1; -+} -+ -+int -+uefi_dir (char *dirname) -+{ -+ grub_efi_status_t status; -+ grub_efi_char16_t *file_name_w = NULL; -+ grub_efi_char16_t *dir_name_w = NULL; -+ grub_efi_file_info_t *fileinfo = NULL; -+ grub_efi_uintn_t buffersize = 0; -+ grub_efi_file_t *directory = NULL; -+ int i, dirlen = 0, ret = 0; -+ -+ file_name_w = grub_malloc (2 * strlen(dirname) + 2); -+ if (!file_name_w) -+ goto done; -+ -+ for (i=0; iopen, root, &file, file_name_w, -+ GRUB_EFI_FILE_MODE_READ, 0); -+ -+ if (status != GRUB_EFI_SUCCESS) -+ goto done; -+ -+ if (dirname[i-1] == '/') { -+ if (print_possibilities) -+ grub_printf("\n"); -+ -+ while (1) { -+ int filenamelen; -+ -+ status = Call_Service_3 (file->read, file, &buffersize, fileinfo); -+ -+ if (status == GRUB_EFI_BUFFER_TOO_SMALL) { -+ fileinfo = grub_malloc(buffersize); -+ continue; -+ } else if (status) { -+ goto done; -+ } else if (buffersize == 0) { -+ ret = 1; -+ if (print_possibilities) -+ grub_printf("\n"); -+ goto done; -+ } -+ -+ filenamelen = fileinfo->size - sizeof(*fileinfo); -+ -+ if (print_possibilities) { -+ for (i=0; ifilename[i]); -+ } -+ grub_printf(" "); -+ } -+ } else { -+ char *data = NULL; -+ dir_name_w = grub_malloc (2 * dirlen + 2); -+ if (!dir_name_w) -+ goto done; -+ -+ for (i=0; iopen, root, &directory, dir_name_w, -+ GRUB_EFI_FILE_MODE_READ, 0); -+ -+ while (1) { -+ int filenamelen; -+ int invalid = 0; -+ -+ status = Call_Service_3 (directory->read, directory, &buffersize, fileinfo); -+ -+ if (status == GRUB_EFI_BUFFER_TOO_SMALL) { -+ fileinfo = grub_malloc(buffersize); -+ continue; -+ } else if (status) { -+ goto done; -+ } else if (buffersize == 0) { -+ goto done; -+ } -+ -+ filenamelen = fileinfo->size - sizeof(*fileinfo); -+ -+ if (filenamelen != ((strlen(dirname) - dirlen) * 2)) -+ continue; -+ -+ for (i=0; ifilename[i] != file_name_w[i + dirlen + 1]) { -+ if (fileinfo->filename[i] > 0xff || -+ (grub_tolower(fileinfo->filename[i]) != -+ grub_tolower(file_name_w[i + dirlen + 1]))) -+ invalid = 1; -+ } -+ } -+ -+ if (!invalid) -+ break; -+ } -+ -+ if (fileinfo->filesize < 256 && fileinfo->filesize > 3) -+ { -+ data = grub_malloc(fileinfo->filesize); -+ filepos = 0; -+ -+ uefi_read(data, fileinfo->filesize); -+ -+ /* -+ * UEFI doesn't really support symlinks. Apple's UEFI driver exposes -+ * them as files containing the path of the target. This provides -+ * hacky support in the absence of a real driver. -+ */ -+ if (data[0] == '.' && data[1] == '.' && data[2] == '/') -+ { -+ int j; -+ char *tmpdir = grub_malloc(dirlen + fileinfo->filesize); -+ -+ for (j=0; jfilesize; j++) -+ tmpdir[j+dirlen+1] = data[j]; -+ tmpdir[j+dirlen+1] = '\0'; -+ -+ /* Open the new file */ -+ ret = uefi_dir(tmpdir); -+ grub_free (tmpdir); -+ grub_free (data); -+ goto done; -+ } -+ } -+ -+ if (data) -+ grub_free(data); -+ ret = 1; -+ filemax = fileinfo->filesize; -+ filepos = 0; -+ } -+ -+ done: -+ if (fileinfo) -+ grub_free (fileinfo); -+ if (dir_name_w) -+ grub_free (dir_name_w); -+ if (file_name_w) -+ grub_free (file_name_w); -+ -+ return ret; -+} -+ -+void -+uefi_close (void) -+{ -+ grub_efi_status_t status = 0; -+ -+ if (file) -+ status = Call_Service_1 (file->close, file); -+ -+ file = NULL; -+} -+ -+int -+uefi_read (char *addr, int len) -+{ -+ grub_efi_status_t status; -+ grub_efi_uintn_t length = len; -+ -+ errnum = 0; -+ -+ status = Call_Service_2 (file->set_position, file, filepos); -+ -+ if (status != GRUB_EFI_SUCCESS) -+ goto out; -+ -+ status = Call_Service_3 (file->read, file, &length, addr); -+ -+ len = length; -+ -+ if (status == GRUB_EFI_SUCCESS) { -+ filepos += len; -+ return len; -+ } -+ -+ out: -+ errnum = ERR_FILE_NOT_FOUND; -+ -+ return 0; -+} -+#endif -diff --git a/stage2/fsys_vstafs.c b/stage2/fsys_vstafs.c -index a116717..652e784 100644 ---- a/stage2/fsys_vstafs.c -+++ b/stage2/fsys_vstafs.c -@@ -30,8 +30,8 @@ static struct dir_entry *vstafs_nextdir (void); - - - #define FIRST_SECTOR ((struct first_sector *) FSYS_BUF) --#define FILE_INFO ((struct fs_file *) (int) FIRST_SECTOR + 8192) --#define DIRECTORY_BUF ((struct dir_entry *) (int) FILE_INFO + 512) -+#define FILE_INFO ((struct fs_file *) (unsigned long) FIRST_SECTOR + 8192) -+#define DIRECTORY_BUF ((struct dir_entry *) (unsigned long) FILE_INFO + 512) - - #define ROOT_SECTOR 1 - -@@ -186,35 +186,35 @@ vstafs_dir (char *dirname) - int - vstafs_read (char *addr, int len) - { -- struct alloc *a; -+ struct alloc *al; - int size, ret = 0, offset, curr_len = 0; -- int curr_ext; -+ int this_ext; - char extent; - int ext_size; - char *curr_pos; - - get_file_info (f_sector); - size = FILE_INFO->len-VSTAFS_START_DATA; -- a = FILE_INFO->blocks; -+ al = FILE_INFO->blocks; - - if (filepos > 0) - { -- if (filepos < a[0].a_len * 512 - VSTAFS_START_DATA) -+ if (filepos < al[0].a_len * 512 - VSTAFS_START_DATA) - { - offset = filepos + VSTAFS_START_DATA; - extent = 0; -- curr_len = a[0].a_len * 512 - offset - filepos; -+ curr_len = al[0].a_len * 512 - offset - filepos; - } - else - { -- ext_size = a[0].a_len * 512 - VSTAFS_START_DATA; -+ ext_size = al[0].a_len * 512 - VSTAFS_START_DATA; - offset = filepos - ext_size; - extent = 1; - do - { - curr_len -= ext_size; - offset -= ext_size; -- ext_size = a[extent+1].a_len * 512; -+ ext_size = al[extent+1].a_len * 512; - } - while (extent < FILE_INFO->extents && offset>ext_size); - } -@@ -223,16 +223,16 @@ vstafs_read (char *addr, int len) - { - offset = VSTAFS_START_DATA; - extent = 0; -- curr_len = a[0].a_len * 512 - offset; -+ curr_len = al[0].a_len * 512 - offset; - } - - curr_pos = addr; - if (curr_len > len) - curr_len = len; - -- for (curr_ext=extent; -- curr_ext < FILE_INFO->extents; -- curr_len = a[curr_ext].a_len * 512, curr_pos += curr_len, curr_ext++) -+ for (this_ext=extent; -+ this_ext < FILE_INFO->extents; -+ curr_len = al[this_ext].a_len * 512, curr_pos += curr_len, this_ext++) - { - ret += curr_len; - size -= curr_len; -@@ -242,7 +242,7 @@ vstafs_read (char *addr, int len) - curr_len += size; - } - -- devread (a[curr_ext].a_start,offset, curr_len, curr_pos); -+ devread (al[this_ext].a_start,offset, curr_len, curr_pos); - offset = 0; - } - -diff --git a/stage2/fsys_xfs.c b/stage2/fsys_xfs.c -index 76c4c13..226e343 100644 ---- a/stage2/fsys_xfs.c -+++ b/stage2/fsys_xfs.c -@@ -97,19 +97,23 @@ ino2offset (xfs_ino_t ino) - return ino & XFS_INO_MASK(XFS_INO_OFFSET_BITS); - } - --static inline __const__ xfs_uint16_t --le16 (xfs_uint16_t x) -+static inline xfs_uint16_t __attribute__((__const__)) -+le16 (xfs_uint16_t x) - { -+#if 1 -+ return ((x & 0xff00) >> 8) | ((x & 0xff) << 8); -+#else - __asm__("xchgb %b0,%h0" \ - : "=q" (x) \ - : "0" (x)); \ - return x; -+#endif - } - --static inline __const__ xfs_uint32_t -+static inline xfs_uint32_t __attribute__((__const__)) - le32 (xfs_uint32_t x) - { --#if 0 -+#if 1 - /* 386 doesn't have bswap. */ - __asm__("bswap %0" : "=r" (x) : "0" (x)); - #else -@@ -122,7 +126,7 @@ le32 (xfs_uint32_t x) - return x; - } - --static inline __const__ xfs_uint64_t -+static inline xfs_uint64_t __attribute__((__const__)) - le64 (xfs_uint64_t x) - { - xfs_uint32_t h = x >> 32; -@@ -187,12 +191,12 @@ fsb2daddr (xfs_fsblock_t fsbno) - } - - #undef offsetof --#define offsetof(t,m) ((int)&(((t *)0)->m)) -+#define offsetof(t,m) __builtin_offsetof(t, m) - --static inline int -+static inline xfs_uint64_t - btroot_maxrecs (void) - { -- int tmp = icore.di_forkoff ? (icore.di_forkoff << 3) : xfs.isize; -+ xfs_uint64_t tmp = icore.di_forkoff ? (icore.di_forkoff << 3) : xfs.isize; - - return (tmp - sizeof(xfs_bmdr_block_t) - offsetof(xfs_dinode_t, di_u)) / - (sizeof (xfs_bmbt_key_t) + sizeof (xfs_bmbt_ptr_t)); -@@ -465,7 +469,7 @@ xfs_mount (void) - - xfs.bsize = le32 (super.sb_blocksize); - xfs.blklog = super.sb_blocklog; -- xfs.bdlog = xfs.blklog - SECTOR_BITS; -+ xfs.bdlog = xfs.blklog - get_sector_bits(current_drive); - xfs.rootino = le64 (super.sb_rootino); - xfs.isize = le16 (super.sb_inodesize); - xfs.agblocks = le32 (super.sb_agblocks); -diff --git a/stage2/gpt.h b/stage2/gpt.h -new file mode 100644 -index 0000000..ad6d8f1 ---- /dev/null -+++ b/stage2/gpt.h -@@ -0,0 +1,69 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2002,2005,2006 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. -+ */ -+ -+#ifndef _GPT_H -+#define _GPT_H -+ -+typedef signed char grub_int8_t; -+typedef signed short grub_int16_t; -+typedef signed int grub_int32_t; -+typedef signed long long int grub_int64_t; -+typedef unsigned char grub_uint8_t; -+typedef unsigned short grub_uint16_t; -+typedef unsigned int grub_uint32_t; -+typedef unsigned long long int grub_uint64_t; -+ -+struct grub_gpt_header -+{ -+ grub_uint64_t magic; -+ grub_uint32_t version; -+ grub_uint32_t headersize; -+ grub_uint32_t crc32; -+ grub_uint32_t unused1; -+ grub_uint64_t primary; -+ grub_uint64_t backup; -+ grub_uint64_t start; -+ grub_uint64_t end; -+ grub_uint8_t guid[16]; -+ grub_uint64_t partitions; -+ grub_uint32_t maxpart; -+ grub_uint32_t partentry_size; -+ grub_uint32_t partentry_crc32; -+} __attribute__ ((packed)); -+ -+struct grub_gpt_partentry -+{ -+ grub_uint64_t type1; -+ grub_uint64_t type2; -+ grub_uint8_t guid[16]; -+ grub_uint64_t start; -+ grub_uint64_t end; -+ grub_uint8_t attrib; -+ char name[72]; -+} __attribute__ ((packed)); -+ -+#define GPT_HEADER_MAGIC 0x5452415020494645ULL -+ -+#define GPT_ENTRY_SECTOR(drive,size,entry) \ -+ ((((entry) * (size) + 1) & ~(get_sector_size(drive) - 1)) \ -+ >> get_sector_bits(drive)) -+#define GPT_ENTRY_INDEX(drive, size,entry) \ -+ ((((entry) * (size) + 1) & (get_sector_size(drive) - 1)) - 1) -+ -+#endif /* _GPT_H */ -diff --git a/stage2/graphics.c b/stage2/graphics.c -new file mode 100644 -index 0000000..81109ae ---- /dev/null -+++ b/stage2/graphics.c -@@ -0,0 +1,573 @@ -+/* graphics.c - graphics mode support for GRUB */ -+/* Implemented as a terminal type by Jeremy Katz based -+ * on a patch by Paulo C�sar Pereira de Andrade -+ */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2001,2002 Red Hat, Inc. -+ * Portions copyright (C) 2000 Conectiva, 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. -+ */ -+ -+ -+ -+#ifdef SUPPORT_GRAPHICS -+ -+#include -+#include -+#include -+ -+int saved_videomode; -+unsigned char *font8x16; -+ -+int graphics_inited = 0; -+static char splashimage[64]; -+ -+#define VSHADOW VSHADOW1 -+unsigned char VSHADOW1[38400]; -+unsigned char VSHADOW2[38400]; -+unsigned char VSHADOW4[38400]; -+unsigned char VSHADOW8[38400]; -+ -+/* constants to define the viewable area */ -+const int x0 = 0; -+const int x1 = 80; -+const int y0 = 0; -+const int y1 = 30; -+ -+/* text buffer has to be kept around so that we can write things as we -+ * scroll and the like */ -+unsigned short text[80 * 30]; -+ -+/* why do these have to be kept here? */ -+int foreground = (63 << 16) | (63 << 8) | (63), background = 0, border = 0; -+ -+/* current position */ -+static int fontx = 0; -+static int fonty = 0; -+ -+/* global state so that we don't try to recursively scroll or cursor */ -+static int no_scroll = 0; -+ -+/* color state */ -+static int graphics_standard_color = A_NORMAL; -+static int graphics_normal_color = A_NORMAL; -+static int graphics_highlight_color = A_REVERSE; -+static int graphics_current_color = A_NORMAL; -+static color_state graphics_color_state = COLOR_STATE_STANDARD; -+ -+ -+/* graphics local functions */ -+static void graphics_setxy(int col, int row); -+static void graphics_scroll(void); -+ -+/* FIXME: where do these really belong? */ -+static inline void outb(unsigned short port, unsigned char val) -+{ -+ __asm __volatile ("outb %0,%1"::"a" (val), "d" (port)); -+} -+ -+static void MapMask(int value) { -+ outb(0x3c4, 2); -+ outb(0x3c5, value); -+} -+ -+/* bit mask register */ -+static void BitMask(int value) { -+ outb(0x3ce, 8); -+ outb(0x3cf, value); -+} -+ -+ -+ -+/* Set the splash image */ -+void graphics_set_splash(char *splashfile) { -+ grub_strcpy(splashimage, splashfile); -+} -+ -+/* Get the current splash image */ -+char *graphics_get_splash(void) { -+ return splashimage; -+} -+ -+/* Initialize a vga16 graphics display with the palette based off of -+ * the image in splashimage. If the image doesn't exist, leave graphics -+ * mode. */ -+int graphics_init() -+{ -+ if (!read_image(splashimage)) { -+ current_term = term_table; -+ grub_printf("failed to read image\n"); -+ return 0; -+ } -+ -+ font8x16 = (unsigned char*)graphics_get_font(); -+ -+ graphics_inited = 1; -+ -+ /* make sure that the highlight color is set correctly */ -+ graphics_highlight_color = ((graphics_normal_color >> 4) | -+ ((graphics_normal_color & 0xf) << 4)); -+ -+ return 1; -+} -+ -+/* Leave graphics mode */ -+void graphics_end(void) -+{ -+ if (graphics_inited) { -+ set_videomode(saved_videomode); -+ graphics_inited = 0; -+ } -+} -+ -+/* Print ch on the screen. Handle any needed scrolling or the like */ -+void graphics_putchar(int ch) { -+ ch &= 0xff; -+ -+ graphics_cursor(0); -+ -+ if (ch == '\n') { -+ if (fonty + 1 < y1) -+ graphics_setxy(fontx, fonty + 1); -+ else -+ graphics_scroll(); -+ graphics_cursor(1); -+ return; -+ } else if (ch == '\r') { -+ graphics_setxy(x0, fonty); -+ graphics_cursor(1); -+ return; -+ } -+ -+ graphics_cursor(0); -+ -+ text[fonty * 80 + fontx] = ch; -+ text[fonty * 80 + fontx] &= 0x00ff; -+ if (graphics_current_color & 0xf0) -+ text[fonty * 80 + fontx] |= 0x100; -+ -+ graphics_cursor(0); -+ -+ if ((fontx + 1) >= x1) { -+ graphics_setxy(x0, fonty); -+ if (fonty + 1 < y1) -+ graphics_setxy(x0, fonty + 1); -+ else -+ graphics_scroll(); -+ } else { -+ graphics_setxy(fontx + 1, fonty); -+ } -+ -+ graphics_cursor(1); -+} -+ -+/* get the current location of the cursor */ -+int graphics_getxy(void) { -+ return (fontx << 8) | fonty; -+} -+ -+void graphics_gotoxy(int x, int y) { -+ graphics_cursor(0); -+ -+ graphics_setxy(x, y); -+ -+ graphics_cursor(1); -+} -+ -+void graphics_cls(void) { -+ int i; -+ unsigned char *mem, *s1, *s2, *s4, *s8; -+ -+ graphics_cursor(0); -+ graphics_gotoxy(x0, y0); -+ -+ mem = (unsigned char*)VIDEOMEM; -+ s1 = (unsigned char*)VSHADOW1; -+ s2 = (unsigned char*)VSHADOW2; -+ s4 = (unsigned char*)VSHADOW4; -+ s8 = (unsigned char*)VSHADOW8; -+ -+ for (i = 0; i < 80 * 30; i++) -+ text[i] = ' '; -+ graphics_cursor(1); -+ -+ BitMask(0xff); -+ -+ /* plano 1 */ -+ MapMask(1); -+ grub_memcpy(mem, s1, 38400); -+ -+ /* plano 2 */ -+ MapMask(2); -+ grub_memcpy(mem, s2, 38400); -+ -+ /* plano 3 */ -+ MapMask(4); -+ grub_memcpy(mem, s4, 38400); -+ -+ /* plano 4 */ -+ MapMask(8); -+ grub_memcpy(mem, s8, 38400); -+ -+ MapMask(15); -+ -+} -+ -+void graphics_setcolorstate (color_state state) { -+ switch (state) { -+ case COLOR_STATE_STANDARD: -+ graphics_current_color = graphics_standard_color; -+ break; -+ case COLOR_STATE_NORMAL: -+ graphics_current_color = graphics_normal_color; -+ break; -+ case COLOR_STATE_HIGHLIGHT: -+ graphics_current_color = graphics_highlight_color; -+ break; -+ default: -+ graphics_current_color = graphics_standard_color; -+ break; -+ } -+ -+ graphics_color_state = state; -+} -+ -+void graphics_setcolor (int normal_color, int highlight_color) { -+ graphics_normal_color = normal_color; -+ graphics_highlight_color = highlight_color; -+ -+ graphics_setcolorstate (graphics_color_state); -+} -+ -+int graphics_setcursor (int on) { -+ /* FIXME: we don't have a cursor in graphics */ -+ return 0; -+} -+ -+/* Open the file, and search for a valid XPM header. Return 1 if one is found, -+ * leaving the current position as the start of the next line. Else, -+ * return 0. -+ */ -+static int xpm_open(char *s) { -+ char buf, prev, target[]="/* XPM */\n"; -+ int pos=0; -+ -+ if (!grub_open(s)) -+ return 0; -+ -+ prev='\n'; -+ buf=0; -+ do { -+ if (grub_read(&buf, 1) != 1) { -+ grub_close(); -+ return 0; -+ } -+ if ((pos == 0 && prev == '\n') || pos > 0) { -+ if (buf == target[pos]) -+ pos++; -+ else -+ pos=0; -+ } -+ prev=buf; -+ } while (target[pos]); -+ return 1; -+} -+ -+/* Read in the splashscreen image and set the palette up appropriately. -+ * Format of splashscreen is an xpm (can be gzipped) with 16 colors and -+ * 640x480. */ -+int read_image(char *s) -+{ -+ char buf[32], pal[16]; -+ unsigned char c, base, mask, *s1, *s2, *s4, *s8; -+ unsigned i, len, idx, colors, x, y, width, height; -+ -+ if (!xpm_open(s)) -+ return 0; -+ -+ saved_videomode = set_videomode(0x12); -+ -+ /* parse info */ -+ while (grub_read(&c, 1)) { -+ if (c == '"') -+ break; -+ } -+ -+ while (grub_read(&c, 1) && (c == ' ' || c == '\t')) -+ ; -+ -+ i = 0; -+ width = c - '0'; -+ while (grub_read(&c, 1)) { -+ if (c >= '0' && c <= '9') -+ width = width * 10 + c - '0'; -+ else -+ break; -+ } -+ while (grub_read(&c, 1) && (c == ' ' || c == '\t')) -+ ; -+ -+ height = c - '0'; -+ while (grub_read(&c, 1)) { -+ if (c >= '0' && c <= '9') -+ height = height * 10 + c - '0'; -+ else -+ break; -+ } -+ while (grub_read(&c, 1) && (c == ' ' || c == '\t')) -+ ; -+ -+ colors = c - '0'; -+ while (grub_read(&c, 1)) { -+ if (c >= '0' && c <= '9') -+ colors = colors * 10 + c - '0'; -+ else -+ break; -+ } -+ -+ base = 0; -+ while (grub_read(&c, 1) && c != '"') -+ ; -+ -+ /* palette */ -+ for (i = 0, idx = 1; i < colors; i++) { -+ len = 0; -+ -+ while (grub_read(&c, 1) && c != '"') -+ ; -+ grub_read(&c, 1); /* char */ -+ base = c; -+ grub_read(buf, 4); /* \t c # */ -+ -+ while (grub_read(&c, 1) && c != '"') { -+ if (len < sizeof(buf)) -+ buf[len++] = c; -+ } -+ -+ if (len == 6 && idx < 15) { -+ int r = ((hex(buf[0]) << 4) | hex(buf[1])) >> 2; -+ int g = ((hex(buf[2]) << 4) | hex(buf[3])) >> 2; -+ int b = ((hex(buf[4]) << 4) | hex(buf[5])) >> 2; -+ -+ pal[idx] = base; -+ graphics_set_palette(idx, r, g, b); -+ ++idx; -+ } -+ } -+ -+ x = y = len = 0; -+ -+ s1 = (unsigned char*)VSHADOW1; -+ s2 = (unsigned char*)VSHADOW2; -+ s4 = (unsigned char*)VSHADOW4; -+ s8 = (unsigned char*)VSHADOW8; -+ -+ for (i = 0; i < 38400; i++) -+ s1[i] = s2[i] = s4[i] = s8[i] = 0; -+ -+ /* parse xpm data */ -+ while (y < height) { -+ while (1) { -+ if (!grub_read(&c, 1)) { -+ grub_close(); -+ return 0; -+ } -+ if (c == '"') -+ break; -+ } -+ -+ while (grub_read(&c, 1) && c != '"') { -+ for (i = 1; i < 15; i++) -+ if (pal[i] == c) { -+ c = i; -+ break; -+ } -+ -+ mask = 0x80 >> (x & 7); -+ if (c & 1) -+ s1[len + (x >> 3)] |= mask; -+ if (c & 2) -+ s2[len + (x >> 3)] |= mask; -+ if (c & 4) -+ s4[len + (x >> 3)] |= mask; -+ if (c & 8) -+ s8[len + (x >> 3)] |= mask; -+ -+ if (++x >= 640) { -+ x = 0; -+ -+ if (y < 480) -+ len += 80; -+ ++y; -+ } -+ } -+ } -+ -+ grub_close(); -+ -+ graphics_set_palette(0, (background >> 16), (background >> 8) & 63, -+ background & 63); -+ graphics_set_palette(15, (foreground >> 16), (foreground >> 8) & 63, -+ foreground & 63); -+ graphics_set_palette(0x11, (border >> 16), (border >> 8) & 63, -+ border & 63); -+ -+ return 1; -+} -+ -+ -+/* Convert a character which is a hex digit to the appropriate integer */ -+int hex(int v) -+{ -+ if (v >= 'A' && v <= 'F') -+ return (v - 'A' + 10); -+ if (v >= 'a' && v <= 'f') -+ return (v - 'a' + 10); -+ return (v - '0'); -+} -+ -+ -+/* move the graphics cursor location to col, row */ -+static void graphics_setxy(int col, int row) { -+ if (col >= x0 && col < x1) { -+ fontx = col; -+ cursorX = col << 3; -+ } -+ if (row >= y0 && row < y1) { -+ fonty = row; -+ cursorY = row << 4; -+ } -+} -+ -+/* scroll the screen */ -+static void graphics_scroll(void) { -+ int i, j; -+ -+ /* we don't want to scroll recursively... that would be bad */ -+ if (no_scroll) -+ return; -+ no_scroll = 1; -+ -+ /* move everything up a line */ -+ for (j = y0 + 1; j < y1; j++) { -+ graphics_gotoxy(x0, j - 1); -+ for (i = x0; i < x1; i++) { -+ graphics_putchar(text[j * 80 + i]); -+ } -+ } -+ -+ /* last line should be blank */ -+ graphics_gotoxy(x0, y1 - 1); -+ for (i = x0; i < x1; i++) -+ graphics_putchar(' '); -+ graphics_setxy(x0, y1 - 1); -+ -+ no_scroll = 0; -+} -+ -+ -+void graphics_cursor(int set) { -+ unsigned char *pat, *mem, *ptr, chr[16 << 2]; -+ int i, ch, invert, offset; -+ -+ if (set && no_scroll) -+ return; -+ -+ offset = cursorY * 80 + fontx; -+ ch = text[fonty * 80 + fontx] & 0xff; -+ invert = (text[fonty * 80 + fontx] & 0xff00) != 0; -+ pat = font8x16 + (ch << 4); -+ -+ mem = (unsigned char*)VIDEOMEM + offset; -+ -+ if (!set) { -+ for (i = 0; i < 16; i++) { -+ unsigned char mask = pat[i]; -+ -+ if (!invert) { -+ chr[i ] = ((unsigned char*)VSHADOW1)[offset]; -+ chr[16 + i] = ((unsigned char*)VSHADOW2)[offset]; -+ chr[32 + i] = ((unsigned char*)VSHADOW4)[offset]; -+ chr[48 + i] = ((unsigned char*)VSHADOW8)[offset]; -+ -+ /* FIXME: if (shade) */ -+ if (1) { -+ if (ch == DISP_VERT || ch == DISP_LL || -+ ch == DISP_UR || ch == DISP_LR) { -+ unsigned char pmask = ~(pat[i] >> 1); -+ -+ chr[i ] &= pmask; -+ chr[16 + i] &= pmask; -+ chr[32 + i] &= pmask; -+ chr[48 + i] &= pmask; -+ } -+ if (i > 0 && ch != DISP_VERT) { -+ unsigned char pmask = ~(pat[i - 1] >> 1); -+ -+ chr[i ] &= pmask; -+ chr[16 + i] &= pmask; -+ chr[32 + i] &= pmask; -+ chr[48 + i] &= pmask; -+ if (ch == DISP_HORIZ || ch == DISP_UR || ch == DISP_LR) { -+ pmask = ~pat[i - 1]; -+ -+ chr[i ] &= pmask; -+ chr[16 + i] &= pmask; -+ chr[32 + i] &= pmask; -+ chr[48 + i] &= pmask; -+ } -+ } -+ } -+ chr[i ] |= mask; -+ chr[16 + i] |= mask; -+ chr[32 + i] |= mask; -+ chr[48 + i] |= mask; -+ -+ offset += 80; -+ } -+ else { -+ chr[i ] = ~mask; -+ chr[16 + i] = ~mask; -+ chr[32 + i] = ~mask; -+ chr[48 + i] = ~mask; -+ } -+ } -+ } -+ else { -+ MapMask(15); -+ ptr = mem; -+ for (i = 0; i < 16; i++, ptr += 80) { -+ cursorBuf[i] = pat[i]; -+ *ptr = ~pat[i]; -+ } -+ return; -+ } -+ -+ offset = 0; -+ for (i = 1; i < 16; i <<= 1, offset += 16) { -+ int j; -+ -+ MapMask(i); -+ ptr = mem; -+ for (j = 0; j < 16; j++, ptr += 80) -+ *ptr = chr[j + offset]; -+ } -+ -+ MapMask(15); -+} -+ -+#endif /* SUPPORT_GRAPHICS */ -diff --git a/stage2/graphics.h b/stage2/graphics.h -new file mode 100644 -index 0000000..a4cd9e8 ---- /dev/null -+++ b/stage2/graphics.h -@@ -0,0 +1,42 @@ -+/* graphics.h - graphics console interface */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2002 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. -+ */ -+ -+#ifndef GRAPHICS_H -+#define GRAPHICS_H -+ -+/* magic constant */ -+#define VIDEOMEM 0xA0000 -+ -+/* function prototypes */ -+char *graphics_get_splash(void); -+ -+int read_image(char *s); -+void graphics_cursor(int set); -+ -+/* function prototypes for asm functions */ -+void * graphics_get_font(); -+void graphics_set_palette(int idx, int red, int green, int blue); -+void set_int1c_handler(); -+void unset_int1c_handler(); -+ -+extern short cursorX, cursorY; -+extern char cursorBuf[16]; -+ -+#endif /* GRAPHICS_H */ -diff --git a/stage2/gunzip.c b/stage2/gunzip.c -index 8835089..45a2312 100644 ---- a/stage2/gunzip.c -+++ b/stage2/gunzip.c -@@ -141,7 +141,7 @@ static int gzip_filepos; - static int gzip_filemax; - static int gzip_fsmax; - static int saved_filepos; --static unsigned long gzip_crc; -+static unsigned int gzip_crc; - - /* internal extra variables for use of inflate code */ - static int block_type; -@@ -169,7 +169,14 @@ linalloc (int size) - static void - reset_linalloc (void) - { -+#ifdef PLATFORM_EFI -+ unsigned int top = (mbi.mem_upper << 10) + 0x100000; -+ if (top > GRUB_SCRATCH_MEM_SIZE) -+ top = GRUB_SCRATCH_MEM_SIZE; -+ linalloc_topaddr = RAW_ADDR (top); -+#else - linalloc_topaddr = RAW_ADDR ((mbi.mem_upper << 10) + 0x100000); -+#endif - } - - -@@ -253,7 +260,7 @@ bad_field (int len) - - typedef unsigned char uch; - typedef unsigned short ush; --typedef unsigned long ulg; -+typedef unsigned int ulg; - - /* - * Window Size -@@ -316,8 +323,8 @@ gunzip_test_header (void) - return 0; - } - -- gzip_crc = *((unsigned long *) buf); -- gzip_fsmax = gzip_filemax = *((unsigned long *) (buf + 4)); -+ gzip_crc = *((unsigned int *) buf); -+ gzip_fsmax = gzip_filemax = *((unsigned int *) (buf + 4)); - - initialize_tables (); - -diff --git a/stage2/iso9660.h b/stage2/iso9660.h -index 4a6a8cc..c311ecf 100644 ---- a/stage2/iso9660.h -+++ b/stage2/iso9660.h -@@ -73,11 +73,11 @@ typedef union { - - typedef struct __iso_16bit { - u_int16_t l, b; --} iso_16bit_t __attribute__ ((packed)); -+} iso_16bit_t; - - typedef struct __iso_32bit { - u_int32_t l, b; --} iso_32bit_t __attribute__ ((packed)); -+} iso_32bit_t; - - typedef u_int8_t iso_date_t[7]; - -diff --git a/stage2/mb_info.h b/stage2/mb_info.h -index 1e1e63b..3a8dcfb 100644 ---- a/stage2/mb_info.h -+++ b/stage2/mb_info.h -@@ -44,10 +44,10 @@ struct mod_list - - struct AddrRangeDesc - { -- unsigned long size; -+ unsigned int size; - unsigned long long BaseAddr; - unsigned long long Length; -- unsigned long Type; -+ unsigned int Type; - - /* unspecified optional padding... */ - } __attribute__ ((packed)); -diff --git a/stage2/pc_slice.h b/stage2/pc_slice.h -index a38d97f..2206e82 100644 ---- a/stage2/pc_slice.h -+++ b/stage2/pc_slice.h -@@ -38,50 +38,50 @@ - */ - - #define PC_MBR_CHECK_SIG(mbr_ptr) \ -- ( *( (unsigned short *) (((int) mbr_ptr) + PC_MBR_SIG_OFFSET) ) \ -+ ( *( (unsigned short *) (((unsigned long) mbr_ptr) + PC_MBR_SIG_OFFSET) ) \ - == PC_MBR_SIGNATURE ) - - #define PC_MBR_SIG(mbr_ptr) \ -- ( *( (unsigned short *) (((int) mbr_ptr) + PC_MBR_SIG_OFFSET) ) ) -+ ( *( (unsigned short *) (((unsigned long) mbr_ptr) + PC_MBR_SIG_OFFSET) ) ) - - #define PC_SLICE_FLAG(mbr_ptr, part) \ -- ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET \ -+ ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET \ - + (part << 4)) ) ) - - #define PC_SLICE_HEAD(mbr_ptr, part) \ -- ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 1 \ -+ ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 1 \ - + (part << 4)) ) ) - - #define PC_SLICE_SEC(mbr_ptr, part) \ -- ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 2 \ -+ ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 2 \ - + (part << 4)) ) ) - - #define PC_SLICE_CYL(mbr_ptr, part) \ -- ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 3 \ -+ ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 3 \ - + (part << 4)) ) ) - - #define PC_SLICE_TYPE(mbr_ptr, part) \ -- ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 4 \ -+ ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 4 \ - + (part << 4)) ) ) - - #define PC_SLICE_EHEAD(mbr_ptr, part) \ -- ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 5 \ -+ ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 5 \ - + (part << 4)) ) ) - - #define PC_SLICE_ESEC(mbr_ptr, part) \ -- ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 6 \ -+ ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 6 \ - + (part << 4)) ) ) - - #define PC_SLICE_ECYL(mbr_ptr, part) \ -- ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 7 \ -+ ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 7 \ - + (part << 4)) ) ) - - #define PC_SLICE_START(mbr_ptr, part) \ -- ( *( (unsigned long *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 8 \ -+ ( *( (unsigned int *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 8 \ - + (part << 4)) ) ) - - #define PC_SLICE_LENGTH(mbr_ptr, part) \ -- ( *( (unsigned long *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 12 \ -+ ( *( (unsigned int *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 12 \ - + (part << 4)) ) ) - - -@@ -115,6 +115,8 @@ - #define PC_SLICE_TYPE_LINUX_EXTENDED 0x85 - #define PC_SLICE_TYPE_VSTAFS 0x9e - #define PC_SLICE_TYPE_DELL_UTIL 0xde -+#define PC_SLICE_TYPE_GPT 0xee -+#define PC_SLICE_TYPE_EFI 0xef - #define PC_SLICE_TYPE_LINUX_RAID 0xfd - - -@@ -129,7 +131,8 @@ - || _type == PC_SLICE_TYPE_FAT16_LBA \ - || _type == PC_SLICE_TYPE_FAT32 \ - || _type == PC_SLICE_TYPE_FAT32_LBA \ -- || _type == PC_SLICE_TYPE_DELL_UTIL; }) -+ || _type == PC_SLICE_TYPE_DELL_UTIL \ -+ || _type == PC_SLICE_TYPE_EFI; }) - - #define IS_PC_SLICE_TYPE_EXTENDED(type) \ - (((type) == PC_SLICE_TYPE_EXTENDED) \ -@@ -177,40 +180,40 @@ - */ - - #define BSD_LABEL_CHECK_MAG(l_ptr) \ -- ( *( (unsigned long *) (((int) l_ptr) + BSD_LABEL_MAG_OFFSET) ) \ -- == ( (unsigned long) BSD_LABEL_MAGIC ) ) -+ ( *( (unsigned int *) (((unsigned long) l_ptr) + BSD_LABEL_MAG_OFFSET) ) \ -+ == ( (unsigned int) BSD_LABEL_MAGIC ) ) - - #define BSD_LABEL_MAG(l_ptr) \ -- ( *( (unsigned long *) (((int) l_ptr) + BSD_LABEL_MAG_OFFSET) ) ) -+ ( *( (unsigned int *) (((unsigned long) l_ptr) + BSD_LABEL_MAG_OFFSET) ) ) - - #define BSD_LABEL_DTYPE(l_ptr) \ -- ( *( (unsigned short *) (((int) l_ptr) + BSD_LABEL_MAG_OFFSET + 4) ) ) -+ ( *( (unsigned short *) (((unsigned long) l_ptr) + BSD_LABEL_MAG_OFFSET + 4) ) ) - - #define BSD_LABEL_NPARTS(l_ptr) \ -- ( *( (unsigned short *) (((int) l_ptr) + BSD_LABEL_NPARTS_OFFSET) ) ) -+ ( *( (unsigned short *) (((unsigned long) l_ptr) + BSD_LABEL_NPARTS_OFFSET) ) ) - - #define BSD_PART_LENGTH(l_ptr, part) \ -- ( *( (unsigned long *) (((int) l_ptr) + BSD_PART_OFFSET \ -+ ( *( (unsigned int *) (((unsigned long) l_ptr) + BSD_PART_OFFSET \ - + (part << 4)) ) ) - - #define BSD_PART_START(l_ptr, part) \ -- ( *( (unsigned long *) (((int) l_ptr) + BSD_PART_OFFSET + 4 \ -+ ( *( (unsigned int *) (((unsigned long) l_ptr) + BSD_PART_OFFSET + 4 \ - + (part << 4)) ) ) - - #define BSD_PART_FRAG_SIZE(l_ptr, part) \ -- ( *( (unsigned long *) (((int) l_ptr) + BSD_PART_OFFSET + 8 \ -+ ( *( (unsigned int *) (((unsigned long) l_ptr) + BSD_PART_OFFSET + 8 \ - + (part << 4)) ) ) - - #define BSD_PART_TYPE(l_ptr, part) \ -- ( *( (unsigned char *) (((int) l_ptr) + BSD_PART_OFFSET + 12 \ -+ ( *( (unsigned char *) (((unsigned long) l_ptr) + BSD_PART_OFFSET + 12 \ - + (part << 4)) ) ) - - #define BSD_PART_FRAGS_PER_BLOCK(l_ptr, part) \ -- ( *( (unsigned char *) (((int) l_ptr) + BSD_PART_OFFSET + 13 \ -+ ( *( (unsigned char *) (((unsigned long) l_ptr) + BSD_PART_OFFSET + 13 \ - + (part << 4)) ) ) - - #define BSD_PART_EXTRA(l_ptr, part) \ -- ( *( (unsigned short *) (((int) l_ptr) + BSD_PART_OFFSET + 14 \ -+ ( *( (unsigned short *) (((unsigned long) l_ptr) + BSD_PART_OFFSET + 14 \ - + (part << 4)) ) ) - - -diff --git a/stage2/serial.c b/stage2/serial.c -index 16c376f..37b9532 100644 ---- a/stage2/serial.c -+++ b/stage2/serial.c -@@ -37,7 +37,7 @@ static int keep_track = 1; - - /* Hardware-dependent definitions. */ - --#ifndef GRUB_UTIL -+#if ! defined (GRUB_UTIL) && ! defined (PLATFORM_EFI) - /* The structure for speed vs. divisor. */ - struct divisor - { -@@ -187,7 +187,7 @@ serial_hw_init (unsigned short port, unsigned int speed, - - return 1; - } --#endif /* ! GRUB_UTIL */ -+#endif /* ! defined (GRUB_UTIL) && ! defined (PLATFORM_EFI) */ - - - /* Generic definitions. */ -diff --git a/stage2/sha256crypt.c b/stage2/sha256crypt.c -new file mode 100644 -index 0000000..db168a2 ---- /dev/null -+++ b/stage2/sha256crypt.c -@@ -0,0 +1,723 @@ -+/* SHA256-based Unix crypt implementation. -+ Released into the Public Domain by Ulrich Drepper . -+ Adapted for grub by Miloslav Trmac . */ -+ -+#include -+#include -+ -+#include -+ -+typedef unsigned int uint32_t; -+typedef size_t uintptr_t; -+#define alloca(SIZE) (__builtin_alloca (SIZE)) -+#define MIN(A, B) ((A) < (B) ? (A) : (B)) -+#define MAX(A, B) ((A) > (B) ? (A) : (B)) -+ -+/* Structure to save state of computation between the single steps. */ -+struct sha256_ctx -+{ -+ uint32_t H[8]; -+ -+ uint32_t total[2]; -+ uint32_t buflen; -+ char buffer[128]; /* NB: always correctly aligned for uint32_t. */ -+}; -+ -+ -+#if 1 /* __BYTE_ORDER == __LITTLE_ENDIAN */ -+# define SWAP(n) \ -+ (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24)) -+#else -+# define SWAP(n) (n) -+#endif -+ -+ -+/* This array contains the bytes used to pad the buffer to the next -+ 64-byte boundary. (FIPS 180-2:5.1.1) */ -+static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ... */ }; -+ -+ -+/* Constants for SHA256 from FIPS 180-2:4.2.2. */ -+static const uint32_t K[64] = -+ { -+ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, -+ 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, -+ 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, -+ 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, -+ 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, -+ 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, -+ 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, -+ 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, -+ 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, -+ 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, -+ 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, -+ 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, -+ 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, -+ 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, -+ 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, -+ 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 -+ }; -+ -+ -+/* Process LEN bytes of BUFFER, accumulating context into CTX. -+ It is assumed that LEN % 64 == 0. */ -+static void -+sha256_process_block (const void *buffer, size_t len, struct sha256_ctx *ctx) -+{ -+ const uint32_t *words = buffer; -+ size_t nwords = len / sizeof (uint32_t); -+ uint32_t a = ctx->H[0]; -+ uint32_t b = ctx->H[1]; -+ uint32_t c = ctx->H[2]; -+ uint32_t d = ctx->H[3]; -+ uint32_t e = ctx->H[4]; -+ uint32_t f = ctx->H[5]; -+ uint32_t g = ctx->H[6]; -+ uint32_t h = ctx->H[7]; -+ -+ /* First increment the byte count. FIPS 180-2 specifies the possible -+ length of the file up to 2^64 bits. Here we only compute the -+ number of bytes. Do a double word increment. */ -+ ctx->total[0] += len; -+ if (ctx->total[0] < len) -+ ++ctx->total[1]; -+ -+ /* Process all bytes in the buffer with 64 bytes in each round of -+ the loop. */ -+ while (nwords > 0) -+ { -+ uint32_t W[64]; -+ uint32_t a_save = a; -+ uint32_t b_save = b; -+ uint32_t c_save = c; -+ uint32_t d_save = d; -+ uint32_t e_save = e; -+ uint32_t f_save = f; -+ uint32_t g_save = g; -+ uint32_t h_save = h; -+ unsigned int t; -+ -+ /* Operators defined in FIPS 180-2:4.1.2. */ -+#define Ch(x, y, z) ((x & y) ^ (~x & z)) -+#define Maj(x, y, z) ((x & y) ^ (x & z) ^ (y & z)) -+#define S0(x) (CYCLIC (x, 2) ^ CYCLIC (x, 13) ^ CYCLIC (x, 22)) -+#define S1(x) (CYCLIC (x, 6) ^ CYCLIC (x, 11) ^ CYCLIC (x, 25)) -+#define R0(x) (CYCLIC (x, 7) ^ CYCLIC (x, 18) ^ (x >> 3)) -+#define R1(x) (CYCLIC (x, 17) ^ CYCLIC (x, 19) ^ (x >> 10)) -+ -+ /* It is unfortunate that C does not provide an operator for -+ cyclic rotation. Hope the C compiler is smart enough. */ -+#define CYCLIC(w, s) ((w >> s) | (w << (32 - s))) -+ -+ /* Compute the message schedule according to FIPS 180-2:6.2.2 step 2. */ -+ for (t = 0; t < 16; ++t) -+ { -+ W[t] = SWAP (*words); -+ ++words; -+ } -+ for (t = 16; t < 64; ++t) -+ W[t] = R1 (W[t - 2]) + W[t - 7] + R0 (W[t - 15]) + W[t - 16]; -+ -+ /* The actual computation according to FIPS 180-2:6.2.2 step 3. */ -+ for (t = 0; t < 64; ++t) -+ { -+ uint32_t T1 = h + S1 (e) + Ch (e, f, g) + K[t] + W[t]; -+ uint32_t T2 = S0 (a) + Maj (a, b, c); -+ h = g; -+ g = f; -+ f = e; -+ e = d + T1; -+ d = c; -+ c = b; -+ b = a; -+ a = T1 + T2; -+ } -+ -+ /* Add the starting values of the context according to FIPS 180-2:6.2.2 -+ step 4. */ -+ a += a_save; -+ b += b_save; -+ c += c_save; -+ d += d_save; -+ e += e_save; -+ f += f_save; -+ g += g_save; -+ h += h_save; -+ -+ /* Prepare for the next round. */ -+ nwords -= 16; -+ } -+ -+ /* Put checksum in context given as argument. */ -+ ctx->H[0] = a; -+ ctx->H[1] = b; -+ ctx->H[2] = c; -+ ctx->H[3] = d; -+ ctx->H[4] = e; -+ ctx->H[5] = f; -+ ctx->H[6] = g; -+ ctx->H[7] = h; -+} -+ -+ -+/* Initialize structure containing state of computation. -+ (FIPS 180-2:5.3.2) */ -+static void -+sha256_init_ctx (struct sha256_ctx *ctx) -+{ -+ ctx->H[0] = 0x6a09e667; -+ ctx->H[1] = 0xbb67ae85; -+ ctx->H[2] = 0x3c6ef372; -+ ctx->H[3] = 0xa54ff53a; -+ ctx->H[4] = 0x510e527f; -+ ctx->H[5] = 0x9b05688c; -+ ctx->H[6] = 0x1f83d9ab; -+ ctx->H[7] = 0x5be0cd19; -+ -+ ctx->total[0] = ctx->total[1] = 0; -+ ctx->buflen = 0; -+} -+ -+ -+/* Process the remaining bytes in the internal buffer and the usual -+ prolog according to the standard and write the result to RESBUF. -+ -+ IMPORTANT: On some systems it is required that RESBUF is correctly -+ aligned for a 32 bits value. */ -+static void * -+sha256_finish_ctx (struct sha256_ctx *ctx, void *resbuf) -+{ -+ /* Take yet unprocessed bytes into account. */ -+ uint32_t bytes = ctx->buflen; -+ size_t pad; -+ unsigned int i; -+ -+ /* Now count remaining bytes. */ -+ ctx->total[0] += bytes; -+ if (ctx->total[0] < bytes) -+ ++ctx->total[1]; -+ -+ pad = bytes >= 56 ? 64 + 56 - bytes : 56 - bytes; -+ memcpy (&ctx->buffer[bytes], fillbuf, pad); -+ -+ /* Put the 64-bit file length in *bits* at the end of the buffer. */ -+ *(uint32_t *) &ctx->buffer[bytes + pad + 4] = SWAP (ctx->total[0] << 3); -+ *(uint32_t *) &ctx->buffer[bytes + pad] = SWAP ((ctx->total[1] << 3) | -+ (ctx->total[0] >> 29)); -+ -+ /* Process last bytes. */ -+ sha256_process_block (ctx->buffer, bytes + pad + 8, ctx); -+ -+ /* Put result from CTX in first 32 bytes following RESBUF. */ -+ for (i = 0; i < 8; ++i) -+ ((uint32_t *) resbuf)[i] = SWAP (ctx->H[i]); -+ -+ return resbuf; -+} -+ -+ -+static void -+sha256_process_bytes (const void *buffer, size_t len, struct sha256_ctx *ctx) -+{ -+ /* When we already have some bits in our internal buffer concatenate -+ both inputs first. */ -+ if (ctx->buflen != 0) -+ { -+ size_t left_over = ctx->buflen; -+ size_t add = 128 - left_over > len ? len : 128 - left_over; -+ -+ memcpy (&ctx->buffer[left_over], buffer, add); -+ ctx->buflen += add; -+ -+ if (ctx->buflen > 64) -+ { -+ sha256_process_block (ctx->buffer, ctx->buflen & ~63, ctx); -+ -+ ctx->buflen &= 63; -+ /* The regions in the following copy operation cannot overlap. */ -+ memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63], -+ ctx->buflen); -+ } -+ -+ buffer = (const char *) buffer + add; -+ len -= add; -+ } -+ -+ /* Process available complete blocks. */ -+ if (len >= 64) -+ { -+/* To check alignment gcc has an appropriate operator. Other -+ compilers don't. */ -+#if __GNUC__ >= 2 -+# define UNALIGNED_P(p) (((uintptr_t) p) % __alignof__ (uint32_t) != 0) -+#else -+# define UNALIGNED_P(p) (((uintptr_t) p) % sizeof (uint32_t) != 0) -+#endif -+ if (UNALIGNED_P (buffer)) -+ while (len > 64) -+ { -+ sha256_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx); -+ buffer = (const char *) buffer + 64; -+ len -= 64; -+ } -+ else -+ { -+ sha256_process_block (buffer, len & ~63, ctx); -+ buffer = (const char *) buffer + (len & ~63); -+ len &= 63; -+ } -+ } -+ -+ /* Move remaining bytes into internal buffer. */ -+ if (len > 0) -+ { -+ size_t left_over = ctx->buflen; -+ -+ memcpy (&ctx->buffer[left_over], buffer, len); -+ left_over += len; -+ if (left_over >= 64) -+ { -+ sha256_process_block (ctx->buffer, 64, ctx); -+ left_over -= 64; -+ memcpy (ctx->buffer, &ctx->buffer[64], left_over); -+ } -+ ctx->buflen = left_over; -+ } -+} -+ -+ -+/* Define our magic string to mark salt for SHA256 "encryption" -+ replacement. */ -+static const char sha256_salt_prefix[] = "$5$"; -+ -+/* Prefix for optional rounds specification. */ -+static const char sha256_rounds_prefix[] = "rounds="; -+ -+/* Maximum salt string length. */ -+#define SALT_LEN_MAX 16 -+/* Default number of rounds if not explicitly specified. */ -+#define ROUNDS_DEFAULT 5000 -+/* Minimum number of rounds. */ -+#define ROUNDS_MIN 1000 -+/* Maximum number of rounds. */ -+#define ROUNDS_MAX 999999999 -+ -+/* Table with characters for base64 transformation. */ -+static const char b64t[64] = -+"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; -+ -+ -+static char * -+sha256_crypt_r (const char *key, const char *salt, char *buffer, int buflen) -+{ -+ unsigned char alt_result[32] -+ __attribute__ ((__aligned__ (__alignof__ (uint32_t)))); -+ unsigned char temp_result[32] -+ __attribute__ ((__aligned__ (__alignof__ (uint32_t)))); -+ struct sha256_ctx ctx; -+ struct sha256_ctx alt_ctx; -+ size_t salt_len; -+ size_t key_len; -+ size_t cnt; -+ char *cp; -+ char *copied_key = NULL; -+ char *copied_salt = NULL; -+ char *p_bytes; -+ char *s_bytes; -+ /* Default number of rounds. */ -+ size_t rounds = ROUNDS_DEFAULT; -+ bool rounds_custom = false; -+ -+ /* Find beginning of salt string. The prefix should normally always -+ be present. Just in case it is not. */ -+ if (grub_memcmp (sha256_salt_prefix, salt, -+ sizeof (sha256_salt_prefix) - 1) == 0) -+ /* Skip salt prefix. */ -+ salt += sizeof (sha256_salt_prefix) - 1; -+ -+ if (grub_memcmp (salt, sha256_rounds_prefix, -+ sizeof (sha256_rounds_prefix) - 1) == 0) -+ { -+ const char *num = salt + sizeof (sha256_rounds_prefix) - 1; -+ char *endp = (char *)num; -+ int srounds = 0; -+ if (*endp == '0' && tolower (endp[1]) == 'x') -+ /* This would be interpreted as hexadecimal by safe_parse_maxint(). */ -+ endp++; -+ else -+ /* On error, endp and srounds is not changed. */ -+ safe_parse_maxint(&endp, &srounds); -+ if (*endp == '$') -+ { -+ salt = endp + 1; -+ rounds = MAX (ROUNDS_MIN, MIN (srounds, ROUNDS_MAX)); -+ rounds_custom = true; -+ } -+ } -+ -+ salt_len = MIN (strcspn (salt, "$"), SALT_LEN_MAX); -+ key_len = strlen (key); -+ -+ if ((key - (char *) 0) % __alignof__ (uint32_t) != 0) -+ { -+ char *tmp = (char *) alloca (key_len + __alignof__ (uint32_t)); -+ key = copied_key = -+ memcpy (tmp + __alignof__ (uint32_t) -+ - (tmp - (char *) 0) % __alignof__ (uint32_t), -+ key, key_len); -+ } -+ -+ if ((salt - (char *) 0) % __alignof__ (uint32_t) != 0) -+ { -+ char *tmp = (char *) alloca (salt_len + __alignof__ (uint32_t)); -+ salt = copied_salt = -+ memcpy (tmp + __alignof__ (uint32_t) -+ - (tmp - (char *) 0) % __alignof__ (uint32_t), -+ salt, salt_len); -+ } -+ -+ /* Prepare for the real work. */ -+ sha256_init_ctx (&ctx); -+ -+ /* Add the key string. */ -+ sha256_process_bytes (key, key_len, &ctx); -+ -+ /* The last part is the salt string. This must be at most 16 -+ characters and it ends at the first `$' character (for -+ compatibility with existing implementations). */ -+ sha256_process_bytes (salt, salt_len, &ctx); -+ -+ -+ /* Compute alternate SHA256 sum with input KEY, SALT, and KEY. The -+ final result will be added to the first context. */ -+ sha256_init_ctx (&alt_ctx); -+ -+ /* Add key. */ -+ sha256_process_bytes (key, key_len, &alt_ctx); -+ -+ /* Add salt. */ -+ sha256_process_bytes (salt, salt_len, &alt_ctx); -+ -+ /* Add key again. */ -+ sha256_process_bytes (key, key_len, &alt_ctx); -+ -+ /* Now get result of this (32 bytes) and add it to the other -+ context. */ -+ sha256_finish_ctx (&alt_ctx, alt_result); -+ -+ /* Add for any character in the key one byte of the alternate sum. */ -+ for (cnt = key_len; cnt > 32; cnt -= 32) -+ sha256_process_bytes (alt_result, 32, &ctx); -+ sha256_process_bytes (alt_result, cnt, &ctx); -+ -+ /* Take the binary representation of the length of the key and for every -+ 1 add the alternate sum, for every 0 the key. */ -+ for (cnt = key_len; cnt > 0; cnt >>= 1) -+ if ((cnt & 1) != 0) -+ sha256_process_bytes (alt_result, 32, &ctx); -+ else -+ sha256_process_bytes (key, key_len, &ctx); -+ -+ /* Create intermediate result. */ -+ sha256_finish_ctx (&ctx, alt_result); -+ -+ /* Start computation of P byte sequence. */ -+ sha256_init_ctx (&alt_ctx); -+ -+ /* For every character in the password add the entire password. */ -+ for (cnt = 0; cnt < key_len; ++cnt) -+ sha256_process_bytes (key, key_len, &alt_ctx); -+ -+ /* Finish the digest. */ -+ sha256_finish_ctx (&alt_ctx, temp_result); -+ -+ /* Create byte sequence P. */ -+ cp = p_bytes = alloca (key_len); -+ for (cnt = key_len; cnt >= 32; cnt -= 32) -+ { -+ memcpy (cp, temp_result, 32); -+ cp += 32; -+ } -+ memcpy (cp, temp_result, cnt); -+ -+ /* Start computation of S byte sequence. */ -+ sha256_init_ctx (&alt_ctx); -+ -+ /* For every character in the password add the entire password. */ -+ for (cnt = 0; cnt < 16 + alt_result[0]; ++cnt) -+ sha256_process_bytes (salt, salt_len, &alt_ctx); -+ -+ /* Finish the digest. */ -+ sha256_finish_ctx (&alt_ctx, temp_result); -+ -+ /* Create byte sequence S. */ -+ cp = s_bytes = alloca (salt_len); -+ for (cnt = salt_len; cnt >= 32; cnt -= 32) -+ { -+ memcpy (cp, temp_result, 32); -+ cp += 32; -+ } -+ memcpy (cp, temp_result, cnt); -+ -+ /* Repeatedly run the collected hash value through SHA256 to burn -+ CPU cycles. */ -+ for (cnt = 0; cnt < rounds; ++cnt) -+ { -+ /* New context. */ -+ sha256_init_ctx (&ctx); -+ -+ /* Add key or last result. */ -+ if ((cnt & 1) != 0) -+ sha256_process_bytes (p_bytes, key_len, &ctx); -+ else -+ sha256_process_bytes (alt_result, 32, &ctx); -+ -+ /* Add salt for numbers not divisible by 3. */ -+ if (cnt % 3 != 0) -+ sha256_process_bytes (s_bytes, salt_len, &ctx); -+ -+ /* Add key for numbers not divisible by 7. */ -+ if (cnt % 7 != 0) -+ sha256_process_bytes (p_bytes, key_len, &ctx); -+ -+ /* Add key or last result. */ -+ if ((cnt & 1) != 0) -+ sha256_process_bytes (alt_result, 32, &ctx); -+ else -+ sha256_process_bytes (p_bytes, key_len, &ctx); -+ -+ /* Create intermediate result. */ -+ sha256_finish_ctx (&ctx, alt_result); -+ } -+ -+ /* Now we can construct the result string. It consists of three -+ parts. */ -+ cp = stpncpy (buffer, sha256_salt_prefix, MAX (0, buflen)); -+ buflen -= sizeof (sha256_salt_prefix) - 1; -+ -+ if (rounds_custom) -+ { -+ char sbuf[64]; -+ grub_sprintf (sbuf, "%s%llu$", sha256_rounds_prefix, -+ (unsigned long long)rounds); -+ size_t n = strlen (sbuf); -+ memcpy (cp, sbuf, MIN (MAX (0, buflen), n)); -+ cp += n; -+ buflen -= n; -+ } -+ -+ cp = stpncpy (cp, salt, MIN ((size_t) MAX (0, buflen), salt_len)); -+ buflen -= MIN ((size_t) MAX (0, buflen), salt_len); -+ -+ if (buflen > 0) -+ { -+ *cp++ = '$'; -+ --buflen; -+ } -+ -+#define b64_from_24bit(B2, B1, B0, N) \ -+ do { \ -+ unsigned int w = ((B2) << 16) | ((B1) << 8) | (B0); \ -+ int n = (N); \ -+ while (n-- > 0 && buflen > 0) \ -+ { \ -+ *cp++ = b64t[w & 0x3f]; \ -+ --buflen; \ -+ w >>= 6; \ -+ } \ -+ } while (0) -+ -+ b64_from_24bit (alt_result[0], alt_result[10], alt_result[20], 4); -+ b64_from_24bit (alt_result[21], alt_result[1], alt_result[11], 4); -+ b64_from_24bit (alt_result[12], alt_result[22], alt_result[2], 4); -+ b64_from_24bit (alt_result[3], alt_result[13], alt_result[23], 4); -+ b64_from_24bit (alt_result[24], alt_result[4], alt_result[14], 4); -+ b64_from_24bit (alt_result[15], alt_result[25], alt_result[5], 4); -+ b64_from_24bit (alt_result[6], alt_result[16], alt_result[26], 4); -+ b64_from_24bit (alt_result[27], alt_result[7], alt_result[17], 4); -+ b64_from_24bit (alt_result[18], alt_result[28], alt_result[8], 4); -+ b64_from_24bit (alt_result[9], alt_result[19], alt_result[29], 4); -+ b64_from_24bit (0, alt_result[31], alt_result[30], 3); -+ if (buflen <= 0) -+ buffer = NULL; -+ else -+ *cp = '\0'; /* Terminate the string. */ -+ -+ /* Clear the buffer for the intermediate result so that people -+ attaching to processes or reading core dumps cannot get any -+ information. We do it in this way to clear correct_words[] -+ inside the SHA256 implementation as well. */ -+ sha256_init_ctx (&ctx); -+ sha256_finish_ctx (&ctx, alt_result); -+ memset (temp_result, '\0', sizeof (temp_result)); -+ memset (p_bytes, '\0', key_len); -+ memset (s_bytes, '\0', salt_len); -+ memset (&ctx, '\0', sizeof (ctx)); -+ memset (&alt_ctx, '\0', sizeof (alt_ctx)); -+ if (copied_key != NULL) -+ memset (copied_key, '\0', key_len); -+ if (copied_salt != NULL) -+ memset (copied_salt, '\0', salt_len); -+ -+ return buffer; -+} -+ -+ -+/* This entry point is equivalent to the `crypt' function in Unix -+ libcs. */ -+char * -+sha256_crypt (const char *key, const char *salt) -+{ -+ static char buffer[sizeof (sha256_salt_prefix) - 1 -+ + sizeof (sha256_rounds_prefix) + 9 + 1 -+ + 256 + 1 + 43 + 1]; /* 256 bytes for salt */ -+ int needed = (sizeof (sha256_salt_prefix) - 1 -+ + sizeof (sha256_rounds_prefix) + 9 + 1 -+ + strlen (salt) + 1 + 43 + 1); -+ -+ if (sizeof (buffer) < needed) -+ return NULL; -+ -+ return sha256_crypt_r (key, salt, buffer, sizeof (buffer)); -+} -+ -+ -+#ifdef TEST -+static const struct -+{ -+ const char *input; -+ const char result[32]; -+} tests[] = -+ { -+ /* Test vectors from FIPS 180-2: appendix B.1. */ -+ { "abc", -+ "\xba\x78\x16\xbf\x8f\x01\xcf\xea\x41\x41\x40\xde\x5d\xae\x22\x23" -+ "\xb0\x03\x61\xa3\x96\x17\x7a\x9c\xb4\x10\xff\x61\xf2\x00\x15\xad" }, -+ /* Test vectors from FIPS 180-2: appendix B.2. */ -+ { "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", -+ "\x24\x8d\x6a\x61\xd2\x06\x38\xb8\xe5\xc0\x26\x93\x0c\x3e\x60\x39" -+ "\xa3\x3c\xe4\x59\x64\xff\x21\x67\xf6\xec\xed\xd4\x19\xdb\x06\xc1" }, -+ /* Test vectors from the NESSIE project. */ -+ { "", -+ "\xe3\xb0\xc4\x42\x98\xfc\x1c\x14\x9a\xfb\xf4\xc8\x99\x6f\xb9\x24" -+ "\x27\xae\x41\xe4\x64\x9b\x93\x4c\xa4\x95\x99\x1b\x78\x52\xb8\x55" }, -+ { "a", -+ "\xca\x97\x81\x12\xca\x1b\xbd\xca\xfa\xc2\x31\xb3\x9a\x23\xdc\x4d" -+ "\xa7\x86\xef\xf8\x14\x7c\x4e\x72\xb9\x80\x77\x85\xaf\xee\x48\xbb" }, -+ { "message digest", -+ "\xf7\x84\x6f\x55\xcf\x23\xe1\x4e\xeb\xea\xb5\xb4\xe1\x55\x0c\xad" -+ "\x5b\x50\x9e\x33\x48\xfb\xc4\xef\xa3\xa1\x41\x3d\x39\x3c\xb6\x50" }, -+ { "abcdefghijklmnopqrstuvwxyz", -+ "\x71\xc4\x80\xdf\x93\xd6\xae\x2f\x1e\xfa\xd1\x44\x7c\x66\xc9\x52" -+ "\x5e\x31\x62\x18\xcf\x51\xfc\x8d\x9e\xd8\x32\xf2\xda\xf1\x8b\x73" }, -+ { "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", -+ "\x24\x8d\x6a\x61\xd2\x06\x38\xb8\xe5\xc0\x26\x93\x0c\x3e\x60\x39" -+ "\xa3\x3c\xe4\x59\x64\xff\x21\x67\xf6\xec\xed\xd4\x19\xdb\x06\xc1" }, -+ { "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", -+ "\xdb\x4b\xfc\xbd\x4d\xa0\xcd\x85\xa6\x0c\x3c\x37\xd3\xfb\xd8\x80" -+ "\x5c\x77\xf1\x5f\xc6\xb1\xfd\xfe\x61\x4e\xe0\xa7\xc8\xfd\xb4\xc0" }, -+ { "123456789012345678901234567890123456789012345678901234567890" -+ "12345678901234567890", -+ "\xf3\x71\xbc\x4a\x31\x1f\x2b\x00\x9e\xef\x95\x2d\xd8\x3c\xa8\x0e" -+ "\x2b\x60\x02\x6c\x8e\x93\x55\x92\xd0\xf9\xc3\x08\x45\x3c\x81\x3e" } -+ }; -+#define ntests (sizeof (tests) / sizeof (tests[0])) -+ -+ -+static const struct -+{ -+ const char *salt; -+ const char *input; -+ const char *expected; -+} tests2[] = -+{ -+ { "$5$saltstring", "Hello world!", -+ "$5$saltstring$5B8vYYiY.CVt1RlTTf8KbXBH3hsxY/GNooZaBBGWEc5" }, -+ { "$5$rounds=10000$saltstringsaltstring", "Hello world!", -+ "$5$rounds=10000$saltstringsaltst$3xv.VbSHBb41AL9AvLeujZkZRBAwqFMz2." -+ "opqey6IcA" }, -+ { "$5$rounds=5000$toolongsaltstring", "This is just a test", -+ "$5$rounds=5000$toolongsaltstrin$Un/5jzAHMgOGZ5.mWJpuVolil07guHPvOW8" -+ "mGRcvxa5" }, -+ { "$5$rounds=1400$anotherlongsaltstring", -+ "a very much longer text to encrypt. This one even stretches over more" -+ "than one line.", -+ "$5$rounds=1400$anotherlongsalts$Rx.j8H.h8HjEDGomFU8bDkXm3XIUnzyxf12" -+ "oP84Bnq1" }, -+ { "$5$rounds=77777$short", -+ "we have a short salt string but not a short password", -+ "$5$rounds=77777$short$JiO1O3ZpDAxGJeaDIuqCoEFysAe1mZNJRs3pw0KQRd/" }, -+ { "$5$rounds=123456$asaltof16chars..", "a short string", -+ "$5$rounds=123456$asaltof16chars..$gP3VQ/6X7UUEW3HkBn2w1/Ptq2jxPyzV/" -+ "cZKmF/wJvD" }, -+ { "$5$rounds=10$roundstoolow", "the minimum number is still observed", -+ "$5$rounds=1000$roundstoolow$yfvwcWrQ8l/K0DAWyuPMDNHpIVlTQebY9l/gL97" -+ "2bIC" }, -+}; -+#define ntests2 (sizeof (tests2) / sizeof (tests2[0])) -+ -+ -+int -+sha256_test (void) -+{ -+ struct sha256_ctx ctx; -+ char sum[32]; -+ int result = 0; -+ int cnt, i; -+ -+ for (cnt = 0; cnt < (int) ntests; ++cnt) -+ { -+ sha256_init_ctx (&ctx); -+ sha256_process_bytes (tests[cnt].input, strlen (tests[cnt].input), &ctx); -+ sha256_finish_ctx (&ctx, sum); -+ if (memcmp (tests[cnt].result, sum, 32) != 0) -+ { -+ printf ("test %d run %d failed\n", cnt, 1); -+ result = 1; -+ } -+ -+ sha256_init_ctx (&ctx); -+ for (i = 0; tests[cnt].input[i] != '\0'; ++i) -+ sha256_process_bytes (&tests[cnt].input[i], 1, &ctx); -+ sha256_finish_ctx (&ctx, sum); -+ if (memcmp (tests[cnt].result, sum, 32) != 0) -+ { -+ printf ("test %d run %d failed\n", cnt, 2); -+ result = 1; -+ } -+ } -+ -+ /* Test vector from FIPS 180-2: appendix B.3. */ -+ char buf[1000]; -+ memset (buf, 'a', sizeof (buf)); -+ sha256_init_ctx (&ctx); -+ for (i = 0; i < 1000; ++i) -+ sha256_process_bytes (buf, sizeof (buf), &ctx); -+ sha256_finish_ctx (&ctx, sum); -+ static const char expected[32] = -+ "\xcd\xc7\x6e\x5c\x99\x14\xfb\x92\x81\xa1\xc7\xe2\x84\xd7\x3e\x67" -+ "\xf1\x80\x9a\x48\xa4\x97\x20\x0e\x04\x6d\x39\xcc\xc7\x11\x2c\xd0"; -+ if (memcmp (expected, sum, 32) != 0) -+ { -+ printf ("test %d failed\n", cnt); -+ result = 1; -+ } -+ -+ for (cnt = 0; cnt < ntests2; ++cnt) -+ { -+ char *cp = sha256_crypt (tests2[cnt].input, tests2[cnt].salt); -+ -+ if (strcmp (cp, tests2[cnt].expected) != 0) -+ { -+ printf ("test %d: expected \"%s\", got \"%s\"\n", -+ cnt, tests2[cnt].expected, cp); -+ result = 1; -+ } -+ } -+ -+ if (result == 0) -+ printf ("all tests OK\n"); -+ -+ return result; -+} -+#endif -diff --git a/stage2/sha512crypt.c b/stage2/sha512crypt.c -new file mode 100644 -index 0000000..ff6cd26 ---- /dev/null -+++ b/stage2/sha512crypt.c -@@ -0,0 +1,795 @@ -+/* SHA512-based Unix crypt implementation. -+ Released into the Public Domain by Ulrich Drepper . -+ Adapted for grub by Miloslav Trmac . */ -+ -+#include -+#include -+ -+#include -+ -+typedef unsigned long long uint64_t; -+typedef size_t uintptr_t; -+#define alloca(SIZE) (__builtin_alloca (SIZE)) -+#define UINT64_C(X) X ## ULL -+#define MIN(a, b) ((a) < (b) ? (a) : (b)) -+#define MAX(a, b) ((a) > (b) ? (a) : (b)) -+ -+/* Structure to save state of computation between the single steps. */ -+struct sha512_ctx -+{ -+ uint64_t H[8]; -+ -+ uint64_t total[2]; -+ uint64_t buflen; -+ char buffer[256]; /* NB: always correctly aligned for uint64_t. */ -+}; -+ -+ -+#if 1 /* __BYTE_ORDER == __LITTLE_ENDIAN */ -+# define SWAP(n) \ -+ (((n) << 56) \ -+ | (((n) & 0xff00) << 40) \ -+ | (((n) & 0xff0000) << 24) \ -+ | (((n) & 0xff000000) << 8) \ -+ | (((n) >> 8) & 0xff000000) \ -+ | (((n) >> 24) & 0xff0000) \ -+ | (((n) >> 40) & 0xff00) \ -+ | ((n) >> 56)) -+#else -+# define SWAP(n) (n) -+#endif -+ -+ -+/* This array contains the bytes used to pad the buffer to the next -+ 64-byte boundary. (FIPS 180-2:5.1.2) */ -+static const unsigned char fillbuf[128] = { 0x80, 0 /* , 0, 0, ... */ }; -+ -+ -+/* Constants for SHA512 from FIPS 180-2:4.2.3. */ -+static const uint64_t K[80] = -+ { -+ UINT64_C (0x428a2f98d728ae22), UINT64_C (0x7137449123ef65cd), -+ UINT64_C (0xb5c0fbcfec4d3b2f), UINT64_C (0xe9b5dba58189dbbc), -+ UINT64_C (0x3956c25bf348b538), UINT64_C (0x59f111f1b605d019), -+ UINT64_C (0x923f82a4af194f9b), UINT64_C (0xab1c5ed5da6d8118), -+ UINT64_C (0xd807aa98a3030242), UINT64_C (0x12835b0145706fbe), -+ UINT64_C (0x243185be4ee4b28c), UINT64_C (0x550c7dc3d5ffb4e2), -+ UINT64_C (0x72be5d74f27b896f), UINT64_C (0x80deb1fe3b1696b1), -+ UINT64_C (0x9bdc06a725c71235), UINT64_C (0xc19bf174cf692694), -+ UINT64_C (0xe49b69c19ef14ad2), UINT64_C (0xefbe4786384f25e3), -+ UINT64_C (0x0fc19dc68b8cd5b5), UINT64_C (0x240ca1cc77ac9c65), -+ UINT64_C (0x2de92c6f592b0275), UINT64_C (0x4a7484aa6ea6e483), -+ UINT64_C (0x5cb0a9dcbd41fbd4), UINT64_C (0x76f988da831153b5), -+ UINT64_C (0x983e5152ee66dfab), UINT64_C (0xa831c66d2db43210), -+ UINT64_C (0xb00327c898fb213f), UINT64_C (0xbf597fc7beef0ee4), -+ UINT64_C (0xc6e00bf33da88fc2), UINT64_C (0xd5a79147930aa725), -+ UINT64_C (0x06ca6351e003826f), UINT64_C (0x142929670a0e6e70), -+ UINT64_C (0x27b70a8546d22ffc), UINT64_C (0x2e1b21385c26c926), -+ UINT64_C (0x4d2c6dfc5ac42aed), UINT64_C (0x53380d139d95b3df), -+ UINT64_C (0x650a73548baf63de), UINT64_C (0x766a0abb3c77b2a8), -+ UINT64_C (0x81c2c92e47edaee6), UINT64_C (0x92722c851482353b), -+ UINT64_C (0xa2bfe8a14cf10364), UINT64_C (0xa81a664bbc423001), -+ UINT64_C (0xc24b8b70d0f89791), UINT64_C (0xc76c51a30654be30), -+ UINT64_C (0xd192e819d6ef5218), UINT64_C (0xd69906245565a910), -+ UINT64_C (0xf40e35855771202a), UINT64_C (0x106aa07032bbd1b8), -+ UINT64_C (0x19a4c116b8d2d0c8), UINT64_C (0x1e376c085141ab53), -+ UINT64_C (0x2748774cdf8eeb99), UINT64_C (0x34b0bcb5e19b48a8), -+ UINT64_C (0x391c0cb3c5c95a63), UINT64_C (0x4ed8aa4ae3418acb), -+ UINT64_C (0x5b9cca4f7763e373), UINT64_C (0x682e6ff3d6b2b8a3), -+ UINT64_C (0x748f82ee5defb2fc), UINT64_C (0x78a5636f43172f60), -+ UINT64_C (0x84c87814a1f0ab72), UINT64_C (0x8cc702081a6439ec), -+ UINT64_C (0x90befffa23631e28), UINT64_C (0xa4506cebde82bde9), -+ UINT64_C (0xbef9a3f7b2c67915), UINT64_C (0xc67178f2e372532b), -+ UINT64_C (0xca273eceea26619c), UINT64_C (0xd186b8c721c0c207), -+ UINT64_C (0xeada7dd6cde0eb1e), UINT64_C (0xf57d4f7fee6ed178), -+ UINT64_C (0x06f067aa72176fba), UINT64_C (0x0a637dc5a2c898a6), -+ UINT64_C (0x113f9804bef90dae), UINT64_C (0x1b710b35131c471b), -+ UINT64_C (0x28db77f523047d84), UINT64_C (0x32caab7b40c72493), -+ UINT64_C (0x3c9ebe0a15c9bebc), UINT64_C (0x431d67c49c100d4c), -+ UINT64_C (0x4cc5d4becb3e42b6), UINT64_C (0x597f299cfc657e2a), -+ UINT64_C (0x5fcb6fab3ad6faec), UINT64_C (0x6c44198c4a475817) -+ }; -+ -+ -+/* Process LEN bytes of BUFFER, accumulating context into CTX. -+ It is assumed that LEN % 128 == 0. */ -+static void -+sha512_process_block (const void *buffer, size_t len, struct sha512_ctx *ctx) -+{ -+ const uint64_t *words = buffer; -+ size_t nwords = len / sizeof (uint64_t); -+ uint64_t a = ctx->H[0]; -+ uint64_t b = ctx->H[1]; -+ uint64_t c = ctx->H[2]; -+ uint64_t d = ctx->H[3]; -+ uint64_t e = ctx->H[4]; -+ uint64_t f = ctx->H[5]; -+ uint64_t g = ctx->H[6]; -+ uint64_t h = ctx->H[7]; -+ -+ /* First increment the byte count. FIPS 180-2 specifies the possible -+ length of the file up to 2^128 bits. Here we only compute the -+ number of bytes. Do a double word increment. */ -+ ctx->total[0] += len; -+ if (ctx->total[0] < len) -+ ++ctx->total[1]; -+ -+ /* Process all bytes in the buffer with 128 bytes in each round of -+ the loop. */ -+ while (nwords > 0) -+ { -+ uint64_t W[80]; -+ uint64_t a_save = a; -+ uint64_t b_save = b; -+ uint64_t c_save = c; -+ uint64_t d_save = d; -+ uint64_t e_save = e; -+ uint64_t f_save = f; -+ uint64_t g_save = g; -+ uint64_t h_save = h; -+ unsigned int t; -+ -+ /* Operators defined in FIPS 180-2:4.1.2. */ -+#define Ch(x, y, z) ((x & y) ^ (~x & z)) -+#define Maj(x, y, z) ((x & y) ^ (x & z) ^ (y & z)) -+#define S0(x) (CYCLIC (x, 28) ^ CYCLIC (x, 34) ^ CYCLIC (x, 39)) -+#define S1(x) (CYCLIC (x, 14) ^ CYCLIC (x, 18) ^ CYCLIC (x, 41)) -+#define R0(x) (CYCLIC (x, 1) ^ CYCLIC (x, 8) ^ (x >> 7)) -+#define R1(x) (CYCLIC (x, 19) ^ CYCLIC (x, 61) ^ (x >> 6)) -+ -+ /* It is unfortunate that C does not provide an operator for -+ cyclic rotation. Hope the C compiler is smart enough. */ -+#define CYCLIC(w, s) ((w >> s) | (w << (64 - s))) -+ -+ /* Compute the message schedule according to FIPS 180-2:6.3.2 step 2. */ -+ for (t = 0; t < 16; ++t) -+ { -+ W[t] = SWAP (*words); -+ ++words; -+ } -+ for (t = 16; t < 80; ++t) -+ W[t] = R1 (W[t - 2]) + W[t - 7] + R0 (W[t - 15]) + W[t - 16]; -+ -+ /* The actual computation according to FIPS 180-2:6.3.2 step 3. */ -+ for (t = 0; t < 80; ++t) -+ { -+ uint64_t T1 = h + S1 (e) + Ch (e, f, g) + K[t] + W[t]; -+ uint64_t T2 = S0 (a) + Maj (a, b, c); -+ h = g; -+ g = f; -+ f = e; -+ e = d + T1; -+ d = c; -+ c = b; -+ b = a; -+ a = T1 + T2; -+ } -+ -+ /* Add the starting values of the context according to FIPS 180-2:6.3.2 -+ step 4. */ -+ a += a_save; -+ b += b_save; -+ c += c_save; -+ d += d_save; -+ e += e_save; -+ f += f_save; -+ g += g_save; -+ h += h_save; -+ -+ /* Prepare for the next round. */ -+ nwords -= 16; -+ } -+ -+ /* Put checksum in context given as argument. */ -+ ctx->H[0] = a; -+ ctx->H[1] = b; -+ ctx->H[2] = c; -+ ctx->H[3] = d; -+ ctx->H[4] = e; -+ ctx->H[5] = f; -+ ctx->H[6] = g; -+ ctx->H[7] = h; -+} -+ -+ -+/* Initialize structure containing state of computation. -+ (FIPS 180-2:5.3.3) */ -+static void -+sha512_init_ctx (struct sha512_ctx *ctx) -+{ -+ ctx->H[0] = UINT64_C (0x6a09e667f3bcc908); -+ ctx->H[1] = UINT64_C (0xbb67ae8584caa73b); -+ ctx->H[2] = UINT64_C (0x3c6ef372fe94f82b); -+ ctx->H[3] = UINT64_C (0xa54ff53a5f1d36f1); -+ ctx->H[4] = UINT64_C (0x510e527fade682d1); -+ ctx->H[5] = UINT64_C (0x9b05688c2b3e6c1f); -+ ctx->H[6] = UINT64_C (0x1f83d9abfb41bd6b); -+ ctx->H[7] = UINT64_C (0x5be0cd19137e2179); -+ -+ ctx->total[0] = ctx->total[1] = 0; -+ ctx->buflen = 0; -+} -+ -+ -+/* Process the remaining bytes in the internal buffer and the usual -+ prolog according to the standard and write the result to RESBUF. -+ -+ IMPORTANT: On some systems it is required that RESBUF is correctly -+ aligned for a 32 bits value. */ -+static void * -+sha512_finish_ctx (struct sha512_ctx *ctx, void *resbuf) -+{ -+ /* Take yet unprocessed bytes into account. */ -+ uint64_t bytes = ctx->buflen; -+ size_t pad; -+ unsigned int i; -+ -+ /* Now count remaining bytes. */ -+ ctx->total[0] += bytes; -+ if (ctx->total[0] < bytes) -+ ++ctx->total[1]; -+ -+ pad = bytes >= 112 ? 128 + 112 - bytes : 112 - bytes; -+ memcpy (&ctx->buffer[bytes], fillbuf, pad); -+ -+ /* Put the 128-bit file length in *bits* at the end of the buffer. */ -+ *(uint64_t *) &ctx->buffer[bytes + pad + 8] = SWAP (ctx->total[0] << 3); -+ *(uint64_t *) &ctx->buffer[bytes + pad] = SWAP ((ctx->total[1] << 3) | -+ (ctx->total[0] >> 61)); -+ -+ /* Process last bytes. */ -+ sha512_process_block (ctx->buffer, bytes + pad + 16, ctx); -+ -+ /* Put result from CTX in first 64 bytes following RESBUF. */ -+ for (i = 0; i < 8; ++i) -+ ((uint64_t *) resbuf)[i] = SWAP (ctx->H[i]); -+ -+ return resbuf; -+} -+ -+ -+static void -+sha512_process_bytes (const void *buffer, size_t len, struct sha512_ctx *ctx) -+{ -+ /* When we already have some bits in our internal buffer concatenate -+ both inputs first. */ -+ if (ctx->buflen != 0) -+ { -+ size_t left_over = ctx->buflen; -+ size_t add = 256 - left_over > len ? len : 256 - left_over; -+ -+ memcpy (&ctx->buffer[left_over], buffer, add); -+ ctx->buflen += add; -+ -+ if (ctx->buflen > 128) -+ { -+ sha512_process_block (ctx->buffer, ctx->buflen & ~127, ctx); -+ -+ ctx->buflen &= 127; -+ /* The regions in the following copy operation cannot overlap. */ -+ memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~127], -+ ctx->buflen); -+ } -+ -+ buffer = (const char *) buffer + add; -+ len -= add; -+ } -+ -+ /* Process available complete blocks. */ -+ if (len >= 128) -+ { -+/* To check alignment gcc has an appropriate operator. Other -+ compilers don't. */ -+# if __GNUC__ >= 2 -+# define UNALIGNED_P(p) (((uintptr_t) p) % __alignof__ (uint64_t) != 0) -+# else -+# define UNALIGNED_P(p) (((uintptr_t) p) % sizeof (uint64_t) != 0) -+# endif -+ if (UNALIGNED_P (buffer)) -+ while (len > 128) -+ { -+ sha512_process_block (memcpy (ctx->buffer, buffer, 128), 128, -+ ctx); -+ buffer = (const char *) buffer + 128; -+ len -= 128; -+ } -+ else -+ { -+ sha512_process_block (buffer, len & ~127, ctx); -+ buffer = (const char *) buffer + (len & ~127); -+ len &= 127; -+ } -+ } -+ -+ /* Move remaining bytes into internal buffer. */ -+ if (len > 0) -+ { -+ size_t left_over = ctx->buflen; -+ -+ memcpy (&ctx->buffer[left_over], buffer, len); -+ left_over += len; -+ if (left_over >= 128) -+ { -+ sha512_process_block (ctx->buffer, 128, ctx); -+ left_over -= 128; -+ memcpy (ctx->buffer, &ctx->buffer[128], left_over); -+ } -+ ctx->buflen = left_over; -+ } -+} -+ -+ -+/* Define our magic string to mark salt for SHA512 "encryption" -+ replacement. */ -+static const char sha512_salt_prefix[] = "$6$"; -+ -+/* Prefix for optional rounds specification. */ -+static const char sha512_rounds_prefix[] = "rounds="; -+ -+/* Maximum salt string length. */ -+#define SALT_LEN_MAX 16 -+/* Default number of rounds if not explicitly specified. */ -+#define ROUNDS_DEFAULT 5000 -+/* Minimum number of rounds. */ -+#define ROUNDS_MIN 1000 -+/* Maximum number of rounds. */ -+#define ROUNDS_MAX 999999999 -+ -+/* Table with characters for base64 transformation. */ -+static const char b64t[64] = -+"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; -+ -+ -+static char * -+sha512_crypt_r (const char *key, const char *salt, char *buffer, int buflen) -+{ -+ unsigned char alt_result[64] -+ __attribute__ ((__aligned__ (__alignof__ (uint64_t)))); -+ unsigned char temp_result[64] -+ __attribute__ ((__aligned__ (__alignof__ (uint64_t)))); -+ struct sha512_ctx ctx; -+ struct sha512_ctx alt_ctx; -+ size_t salt_len; -+ size_t key_len; -+ size_t cnt; -+ char *cp; -+ char *copied_key = NULL; -+ char *copied_salt = NULL; -+ char *p_bytes; -+ char *s_bytes; -+ /* Default number of rounds. */ -+ size_t rounds = ROUNDS_DEFAULT; -+ bool rounds_custom = false; -+ -+ /* Find beginning of salt string. The prefix should normally always -+ be present. Just in case it is not. */ -+ if (grub_memcmp (sha512_salt_prefix, salt, -+ sizeof (sha512_salt_prefix) - 1) == 0) -+ /* Skip salt prefix. */ -+ salt += sizeof (sha512_salt_prefix) - 1; -+ -+ if (grub_memcmp (salt, sha512_rounds_prefix, -+ sizeof (sha512_rounds_prefix) - 1) == 0) -+ { -+ const char *num = salt + sizeof (sha512_rounds_prefix) - 1; -+ char *endp = (char *)num; -+ int srounds = 0; -+ if (*endp == '0' && tolower (endp[1]) == 'x') -+ /* This would be interpreted as hexadecimal by safe_parse_maxint(). */ -+ endp++; -+ else -+ /* On error, endp and srounds is not changed. */ -+ safe_parse_maxint(&endp, &srounds); -+ if (*endp == '$') -+ { -+ salt = endp + 1; -+ rounds = MAX (ROUNDS_MIN, MIN (srounds, ROUNDS_MAX)); -+ rounds_custom = true; -+ } -+ } -+ -+ salt_len = MIN (strcspn (salt, "$"), SALT_LEN_MAX); -+ key_len = strlen (key); -+ -+ if ((key - (char *) 0) % __alignof__ (uint64_t) != 0) -+ { -+ char *tmp = (char *) alloca (key_len + __alignof__ (uint64_t)); -+ key = copied_key = -+ memcpy (tmp + __alignof__ (uint64_t) -+ - (tmp - (char *) 0) % __alignof__ (uint64_t), -+ key, key_len); -+ } -+ -+ if ((salt - (char *) 0) % __alignof__ (uint64_t) != 0) -+ { -+ char *tmp = (char *) alloca (salt_len + __alignof__ (uint64_t)); -+ salt = copied_salt = -+ memcpy (tmp + __alignof__ (uint64_t) -+ - (tmp - (char *) 0) % __alignof__ (uint64_t), -+ salt, salt_len); -+ } -+ -+ /* Prepare for the real work. */ -+ sha512_init_ctx (&ctx); -+ -+ /* Add the key string. */ -+ sha512_process_bytes (key, key_len, &ctx); -+ -+ /* The last part is the salt string. This must be at most 16 -+ characters and it ends at the first `$' character (for -+ compatibility with existing implementations). */ -+ sha512_process_bytes (salt, salt_len, &ctx); -+ -+ -+ /* Compute alternate SHA512 sum with input KEY, SALT, and KEY. The -+ final result will be added to the first context. */ -+ sha512_init_ctx (&alt_ctx); -+ -+ /* Add key. */ -+ sha512_process_bytes (key, key_len, &alt_ctx); -+ -+ /* Add salt. */ -+ sha512_process_bytes (salt, salt_len, &alt_ctx); -+ -+ /* Add key again. */ -+ sha512_process_bytes (key, key_len, &alt_ctx); -+ -+ /* Now get result of this (64 bytes) and add it to the other -+ context. */ -+ sha512_finish_ctx (&alt_ctx, alt_result); -+ -+ /* Add for any character in the key one byte of the alternate sum. */ -+ for (cnt = key_len; cnt > 64; cnt -= 64) -+ sha512_process_bytes (alt_result, 64, &ctx); -+ sha512_process_bytes (alt_result, cnt, &ctx); -+ -+ /* Take the binary representation of the length of the key and for every -+ 1 add the alternate sum, for every 0 the key. */ -+ for (cnt = key_len; cnt > 0; cnt >>= 1) -+ if ((cnt & 1) != 0) -+ sha512_process_bytes (alt_result, 64, &ctx); -+ else -+ sha512_process_bytes (key, key_len, &ctx); -+ -+ /* Create intermediate result. */ -+ sha512_finish_ctx (&ctx, alt_result); -+ -+ /* Start computation of P byte sequence. */ -+ sha512_init_ctx (&alt_ctx); -+ -+ /* For every character in the password add the entire password. */ -+ for (cnt = 0; cnt < key_len; ++cnt) -+ sha512_process_bytes (key, key_len, &alt_ctx); -+ -+ /* Finish the digest. */ -+ sha512_finish_ctx (&alt_ctx, temp_result); -+ -+ /* Create byte sequence P. */ -+ cp = p_bytes = alloca (key_len); -+ for (cnt = key_len; cnt >= 64; cnt -= 64) -+ { -+ memcpy (cp, temp_result, 64); -+ cp += 64; -+ } -+ memcpy (cp, temp_result, cnt); -+ -+ /* Start computation of S byte sequence. */ -+ sha512_init_ctx (&alt_ctx); -+ -+ /* For every character in the password add the entire password. */ -+ for (cnt = 0; cnt < 16 + alt_result[0]; ++cnt) -+ sha512_process_bytes (salt, salt_len, &alt_ctx); -+ -+ /* Finish the digest. */ -+ sha512_finish_ctx (&alt_ctx, temp_result); -+ -+ /* Create byte sequence S. */ -+ cp = s_bytes = alloca (salt_len); -+ for (cnt = salt_len; cnt >= 64; cnt -= 64) -+ { -+ memcpy (cp, temp_result, 64); -+ cp += 64; -+ } -+ memcpy (cp, temp_result, cnt); -+ -+ /* Repeatedly run the collected hash value through SHA512 to burn -+ CPU cycles. */ -+ for (cnt = 0; cnt < rounds; ++cnt) -+ { -+ /* New context. */ -+ sha512_init_ctx (&ctx); -+ -+ /* Add key or last result. */ -+ if ((cnt & 1) != 0) -+ sha512_process_bytes (p_bytes, key_len, &ctx); -+ else -+ sha512_process_bytes (alt_result, 64, &ctx); -+ -+ /* Add salt for numbers not divisible by 3. */ -+ if (cnt % 3 != 0) -+ sha512_process_bytes (s_bytes, salt_len, &ctx); -+ -+ /* Add key for numbers not divisible by 7. */ -+ if (cnt % 7 != 0) -+ sha512_process_bytes (p_bytes, key_len, &ctx); -+ -+ /* Add key or last result. */ -+ if ((cnt & 1) != 0) -+ sha512_process_bytes (alt_result, 64, &ctx); -+ else -+ sha512_process_bytes (p_bytes, key_len, &ctx); -+ -+ /* Create intermediate result. */ -+ sha512_finish_ctx (&ctx, alt_result); -+ } -+ -+ /* Now we can construct the result string. It consists of three -+ parts. */ -+ cp = stpncpy (buffer, sha512_salt_prefix, MAX (0, buflen)); -+ buflen -= sizeof (sha512_salt_prefix) - 1; -+ -+ if (rounds_custom) -+ { -+ char sbuf[64]; -+ grub_sprintf (sbuf, "%s%llu$", sha512_rounds_prefix, -+ (unsigned long long)rounds); -+ size_t n = strlen (sbuf); -+ memcpy (cp, sbuf, MIN (MAX (0, buflen), n)); -+ cp += n; -+ buflen -= n; -+ } -+ -+ cp = stpncpy (cp, salt, MIN ((size_t) MAX (0, buflen), salt_len)); -+ buflen -= MIN ((size_t) MAX (0, buflen), salt_len); -+ -+ if (buflen > 0) -+ { -+ *cp++ = '$'; -+ --buflen; -+ } -+ -+#define b64_from_24bit(B2, B1, B0, N) \ -+ do { \ -+ unsigned int w = ((B2) << 16) | ((B1) << 8) | (B0); \ -+ int n = (N); \ -+ while (n-- > 0 && buflen > 0) \ -+ { \ -+ *cp++ = b64t[w & 0x3f]; \ -+ --buflen; \ -+ w >>= 6; \ -+ } \ -+ } while (0) -+ -+ b64_from_24bit (alt_result[0], alt_result[21], alt_result[42], 4); -+ b64_from_24bit (alt_result[22], alt_result[43], alt_result[1], 4); -+ b64_from_24bit (alt_result[44], alt_result[2], alt_result[23], 4); -+ b64_from_24bit (alt_result[3], alt_result[24], alt_result[45], 4); -+ b64_from_24bit (alt_result[25], alt_result[46], alt_result[4], 4); -+ b64_from_24bit (alt_result[47], alt_result[5], alt_result[26], 4); -+ b64_from_24bit (alt_result[6], alt_result[27], alt_result[48], 4); -+ b64_from_24bit (alt_result[28], alt_result[49], alt_result[7], 4); -+ b64_from_24bit (alt_result[50], alt_result[8], alt_result[29], 4); -+ b64_from_24bit (alt_result[9], alt_result[30], alt_result[51], 4); -+ b64_from_24bit (alt_result[31], alt_result[52], alt_result[10], 4); -+ b64_from_24bit (alt_result[53], alt_result[11], alt_result[32], 4); -+ b64_from_24bit (alt_result[12], alt_result[33], alt_result[54], 4); -+ b64_from_24bit (alt_result[34], alt_result[55], alt_result[13], 4); -+ b64_from_24bit (alt_result[56], alt_result[14], alt_result[35], 4); -+ b64_from_24bit (alt_result[15], alt_result[36], alt_result[57], 4); -+ b64_from_24bit (alt_result[37], alt_result[58], alt_result[16], 4); -+ b64_from_24bit (alt_result[59], alt_result[17], alt_result[38], 4); -+ b64_from_24bit (alt_result[18], alt_result[39], alt_result[60], 4); -+ b64_from_24bit (alt_result[40], alt_result[61], alt_result[19], 4); -+ b64_from_24bit (alt_result[62], alt_result[20], alt_result[41], 4); -+ b64_from_24bit (0, 0, alt_result[63], 2); -+ -+ if (buflen <= 0) -+ buffer = NULL; -+ else -+ *cp = '\0'; /* Terminate the string. */ -+ -+ /* Clear the buffer for the intermediate result so that people -+ attaching to processes or reading core dumps cannot get any -+ information. We do it in this way to clear correct_words[] -+ inside the SHA512 implementation as well. */ -+ sha512_init_ctx (&ctx); -+ sha512_finish_ctx (&ctx, alt_result); -+ memset (temp_result, '\0', sizeof (temp_result)); -+ memset (p_bytes, '\0', key_len); -+ memset (s_bytes, '\0', salt_len); -+ memset (&ctx, '\0', sizeof (ctx)); -+ memset (&alt_ctx, '\0', sizeof (alt_ctx)); -+ if (copied_key != NULL) -+ memset (copied_key, '\0', key_len); -+ if (copied_salt != NULL) -+ memset (copied_salt, '\0', salt_len); -+ -+ return buffer; -+} -+ -+ -+/* This entry point is equivalent to the `crypt' function in Unix -+ libcs. */ -+char * -+sha512_crypt (const char *key, const char *salt) -+{ -+ /* We don't want to have an arbitrary limit in the size of the -+ password. We can compute an upper bound for the size of the -+ result in advance and so we can prepare the buffer we pass to -+ `sha512_crypt_r'. */ -+ static char buffer[sizeof (sha512_salt_prefix) - 1 -+ + sizeof (sha512_rounds_prefix) + 9 + 1 -+ + 256 + 1 + 86 + 1]; /* 256 bytes for salt */ -+ int needed = (sizeof (sha512_salt_prefix) - 1 -+ + sizeof (sha512_rounds_prefix) + 9 + 1 -+ + strlen (salt) + 1 + 86 + 1); -+ -+ if (sizeof (buffer) < needed) -+ return NULL; -+ -+ return sha512_crypt_r (key, salt, buffer, sizeof (buffer)); -+} -+ -+ -+#ifdef TEST -+static const struct -+{ -+ const char *input; -+ const char result[64]; -+} tests[] = -+ { -+ /* Test vectors from FIPS 180-2: appendix C.1. */ -+ { "abc", -+ "\xdd\xaf\x35\xa1\x93\x61\x7a\xba\xcc\x41\x73\x49\xae\x20\x41\x31" -+ "\x12\xe6\xfa\x4e\x89\xa9\x7e\xa2\x0a\x9e\xee\xe6\x4b\x55\xd3\x9a" -+ "\x21\x92\x99\x2a\x27\x4f\xc1\xa8\x36\xba\x3c\x23\xa3\xfe\xeb\xbd" -+ "\x45\x4d\x44\x23\x64\x3c\xe8\x0e\x2a\x9a\xc9\x4f\xa5\x4c\xa4\x9f" }, -+ /* Test vectors from FIPS 180-2: appendix C.2. */ -+ { "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmn" -+ "hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu", -+ "\x8e\x95\x9b\x75\xda\xe3\x13\xda\x8c\xf4\xf7\x28\x14\xfc\x14\x3f" -+ "\x8f\x77\x79\xc6\xeb\x9f\x7f\xa1\x72\x99\xae\xad\xb6\x88\x90\x18" -+ "\x50\x1d\x28\x9e\x49\x00\xf7\xe4\x33\x1b\x99\xde\xc4\xb5\x43\x3a" -+ "\xc7\xd3\x29\xee\xb6\xdd\x26\x54\x5e\x96\xe5\x5b\x87\x4b\xe9\x09" }, -+ /* Test vectors from the NESSIE project. */ -+ { "", -+ "\xcf\x83\xe1\x35\x7e\xef\xb8\xbd\xf1\x54\x28\x50\xd6\x6d\x80\x07" -+ "\xd6\x20\xe4\x05\x0b\x57\x15\xdc\x83\xf4\xa9\x21\xd3\x6c\xe9\xce" -+ "\x47\xd0\xd1\x3c\x5d\x85\xf2\xb0\xff\x83\x18\xd2\x87\x7e\xec\x2f" -+ "\x63\xb9\x31\xbd\x47\x41\x7a\x81\xa5\x38\x32\x7a\xf9\x27\xda\x3e" }, -+ { "a", -+ "\x1f\x40\xfc\x92\xda\x24\x16\x94\x75\x09\x79\xee\x6c\xf5\x82\xf2" -+ "\xd5\xd7\xd2\x8e\x18\x33\x5d\xe0\x5a\xbc\x54\xd0\x56\x0e\x0f\x53" -+ "\x02\x86\x0c\x65\x2b\xf0\x8d\x56\x02\x52\xaa\x5e\x74\x21\x05\x46" -+ "\xf3\x69\xfb\xbb\xce\x8c\x12\xcf\xc7\x95\x7b\x26\x52\xfe\x9a\x75" }, -+ { "message digest", -+ "\x10\x7d\xbf\x38\x9d\x9e\x9f\x71\xa3\xa9\x5f\x6c\x05\x5b\x92\x51" -+ "\xbc\x52\x68\xc2\xbe\x16\xd6\xc1\x34\x92\xea\x45\xb0\x19\x9f\x33" -+ "\x09\xe1\x64\x55\xab\x1e\x96\x11\x8e\x8a\x90\x5d\x55\x97\xb7\x20" -+ "\x38\xdd\xb3\x72\xa8\x98\x26\x04\x6d\xe6\x66\x87\xbb\x42\x0e\x7c" }, -+ { "abcdefghijklmnopqrstuvwxyz", -+ "\x4d\xbf\xf8\x6c\xc2\xca\x1b\xae\x1e\x16\x46\x8a\x05\xcb\x98\x81" -+ "\xc9\x7f\x17\x53\xbc\xe3\x61\x90\x34\x89\x8f\xaa\x1a\xab\xe4\x29" -+ "\x95\x5a\x1b\xf8\xec\x48\x3d\x74\x21\xfe\x3c\x16\x46\x61\x3a\x59" -+ "\xed\x54\x41\xfb\x0f\x32\x13\x89\xf7\x7f\x48\xa8\x79\xc7\xb1\xf1" }, -+ { "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", -+ "\x20\x4a\x8f\xc6\xdd\xa8\x2f\x0a\x0c\xed\x7b\xeb\x8e\x08\xa4\x16" -+ "\x57\xc1\x6e\xf4\x68\xb2\x28\xa8\x27\x9b\xe3\x31\xa7\x03\xc3\x35" -+ "\x96\xfd\x15\xc1\x3b\x1b\x07\xf9\xaa\x1d\x3b\xea\x57\x78\x9c\xa0" -+ "\x31\xad\x85\xc7\xa7\x1d\xd7\x03\x54\xec\x63\x12\x38\xca\x34\x45" }, -+ { "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", -+ "\x1e\x07\xbe\x23\xc2\x6a\x86\xea\x37\xea\x81\x0c\x8e\xc7\x80\x93" -+ "\x52\x51\x5a\x97\x0e\x92\x53\xc2\x6f\x53\x6c\xfc\x7a\x99\x96\xc4" -+ "\x5c\x83\x70\x58\x3e\x0a\x78\xfa\x4a\x90\x04\x1d\x71\xa4\xce\xab" -+ "\x74\x23\xf1\x9c\x71\xb9\xd5\xa3\xe0\x12\x49\xf0\xbe\xbd\x58\x94" }, -+ { "123456789012345678901234567890123456789012345678901234567890" -+ "12345678901234567890", -+ "\x72\xec\x1e\xf1\x12\x4a\x45\xb0\x47\xe8\xb7\xc7\x5a\x93\x21\x95" -+ "\x13\x5b\xb6\x1d\xe2\x4e\xc0\xd1\x91\x40\x42\x24\x6e\x0a\xec\x3a" -+ "\x23\x54\xe0\x93\xd7\x6f\x30\x48\xb4\x56\x76\x43\x46\x90\x0c\xb1" -+ "\x30\xd2\xa4\xfd\x5d\xd1\x6a\xbb\x5e\x30\xbc\xb8\x50\xde\xe8\x43" } -+ }; -+#define ntests (sizeof (tests) / sizeof (tests[0])) -+ -+ -+static const struct -+{ -+ const char *salt; -+ const char *input; -+ const char *expected; -+} tests2[] = -+{ -+ { "$6$saltstring", "Hello world!", -+ "$6$saltstring$svn8UoSVapNtMuq1ukKS4tPQd8iKwSMHWjl/O817G3uBnIFNjnQJu" -+ "esI68u4OTLiBFdcbYEdFCoEOfaS35inz1" }, -+ { "$6$rounds=10000$saltstringsaltstring", "Hello world!", -+ "$6$rounds=10000$saltstringsaltst$OW1/O6BYHV6BcXZu8QVeXbDWra3Oeqh0sb" -+ "HbbMCVNSnCM/UrjmM0Dp8vOuZeHBy/YTBmSK6H9qs/y3RnOaw5v." }, -+ { "$6$rounds=5000$toolongsaltstring", "This is just a test", -+ "$6$rounds=5000$toolongsaltstrin$lQ8jolhgVRVhY4b5pZKaysCLi0QBxGoNeKQ" -+ "zQ3glMhwllF7oGDZxUhx1yxdYcz/e1JSbq3y6JMxxl8audkUEm0" }, -+ { "$6$rounds=1400$anotherlongsaltstring", -+ "a very much longer text to encrypt. This one even stretches over more" -+ "than one line.", -+ "$6$rounds=1400$anotherlongsalts$POfYwTEok97VWcjxIiSOjiykti.o/pQs.wP" -+ "vMxQ6Fm7I6IoYN3CmLs66x9t0oSwbtEW7o7UmJEiDwGqd8p4ur1" }, -+ { "$6$rounds=77777$short", -+ "we have a short salt string but not a short password", -+ "$6$rounds=77777$short$WuQyW2YR.hBNpjjRhpYD/ifIw05xdfeEyQoMxIXbkvr0g" -+ "ge1a1x3yRULJ5CCaUeOxFmtlcGZelFl5CxtgfiAc0" }, -+ { "$6$rounds=123456$asaltof16chars..", "a short string", -+ "$6$rounds=123456$asaltof16chars..$BtCwjqMJGx5hrJhZywWvt0RLE8uZ4oPwc" -+ "elCjmw2kSYu.Ec6ycULevoBK25fs2xXgMNrCzIMVcgEJAstJeonj1" }, -+ { "$6$rounds=10$roundstoolow", "the minimum number is still observed", -+ "$6$rounds=1000$roundstoolow$kUMsbe306n21p9R.FRkW3IGn.S9NPN0x50YhH1x" -+ "hLsPuWGsUSklZt58jaTfF4ZEQpyUNGc0dqbpBYYBaHHrsX." }, -+}; -+#define ntests2 (sizeof (tests2) / sizeof (tests2[0])) -+ -+ -+int -+sha512_test (void) -+{ -+ struct sha512_ctx ctx; -+ char sum[64]; -+ int result = 0; -+ int cnt, i; -+ -+ for (cnt = 0; cnt < (int) ntests; ++cnt) -+ { -+ sha512_init_ctx (&ctx); -+ sha512_process_bytes (tests[cnt].input, strlen (tests[cnt].input), &ctx); -+ sha512_finish_ctx (&ctx, sum); -+ if (memcmp (tests[cnt].result, sum, 64) != 0) -+ { -+ printf ("test %d run %d failed\n", cnt, 1); -+ result = 1; -+ } -+ -+ sha512_init_ctx (&ctx); -+ for (i = 0; tests[cnt].input[i] != '\0'; ++i) -+ sha512_process_bytes (&tests[cnt].input[i], 1, &ctx); -+ sha512_finish_ctx (&ctx, sum); -+ if (memcmp (tests[cnt].result, sum, 64) != 0) -+ { -+ printf ("test %d run %d failed\n", cnt, 2); -+ result = 1; -+ } -+ } -+ -+ /* Test vector from FIPS 180-2: appendix C.3. */ -+ char buf[1000]; -+ memset (buf, 'a', sizeof (buf)); -+ sha512_init_ctx (&ctx); -+ for (i = 0; i < 1000; ++i) -+ sha512_process_bytes (buf, sizeof (buf), &ctx); -+ sha512_finish_ctx (&ctx, sum); -+ static const char expected[64] = -+ "\xe7\x18\x48\x3d\x0c\xe7\x69\x64\x4e\x2e\x42\xc7\xbc\x15\xb4\x63" -+ "\x8e\x1f\x98\xb1\x3b\x20\x44\x28\x56\x32\xa8\x03\xaf\xa9\x73\xeb" -+ "\xde\x0f\xf2\x44\x87\x7e\xa6\x0a\x4c\xb0\x43\x2c\xe5\x77\xc3\x1b" -+ "\xeb\x00\x9c\x5c\x2c\x49\xaa\x2e\x4e\xad\xb2\x17\xad\x8c\xc0\x9b"; -+ if (memcmp (expected, sum, 64) != 0) -+ { -+ printf ("test %d failed\n", cnt); -+ result = 1; -+ } -+ -+ for (cnt = 0; cnt < ntests2; ++cnt) -+ { -+ char *cp = sha512_crypt (tests2[cnt].input, tests2[cnt].salt); -+ -+ if (strcmp (cp, tests2[cnt].expected) != 0) -+ { -+ printf ("test %d: expected \"%s\", got \"%s\"\n", -+ cnt, tests2[cnt].expected, cp); -+ result = 1; -+ } -+ } -+ -+ if (result == 0) -+ printf ("all tests OK\n"); -+ -+ return result; -+} -+#endif -diff --git a/stage2/shared.h b/stage2/shared.h -index 77eef11..b56b44b 100644 ---- a/stage2/shared.h -+++ b/stage2/shared.h -@@ -35,9 +35,10 @@ - #endif - - /* Maybe redirect memory requests through grub_scratch_mem. */ --#ifdef GRUB_UTIL --extern char *grub_scratch_mem; --# define RAW_ADDR(x) ((x) + (int) grub_scratch_mem) -+#if defined(GRUB_UTIL) || defined(PLATFORM_EFI) -+#define GRUB_SCRATCH_MEM_SIZE 0x400000 -+extern void *grub_scratch_mem; -+# define RAW_ADDR(x) ((x) + (unsigned long) grub_scratch_mem) - # define RAW_SEG(x) (RAW_ADDR ((x) << 4) >> 4) - #else - # define RAW_ADDR(x) (x) -@@ -56,15 +57,15 @@ extern char *grub_scratch_mem; - #define NEW_HEAPSIZE 1500 - - /* 512-byte scratch area */ --#define SCRATCHADDR RAW_ADDR (0x77e00) --#define SCRATCHSEG RAW_SEG (0x77e0) -+#define SCRATCHADDR RAW_ADDR (0x77000) -+#define SCRATCHSEG RAW_SEG (0x7700) - - /* -- * This is the location of the raw device buffer. It is 31.5K -+ * This is the location of the raw device buffer. It is 28K - * in size. - */ - --#define BUFFERLEN 0x7e00 -+#define BUFFERLEN 0x7000 - #define BUFFERADDR RAW_ADDR (0x70000) - #define BUFFERSEG RAW_SEG (0x7000) - -@@ -79,6 +80,8 @@ extern char *grub_scratch_mem; - #define BIOSDISK_FLAG_LBA_EXTENSION 0x1 - #define BIOSDISK_FLAG_CDROM 0x2 - -+#define MAX_HD_NUM 128 -+ - /* - * This is the filesystem (not raw device) buffer. - * It is 32K in size, do not overrun! -@@ -127,7 +130,7 @@ extern char *grub_scratch_mem; - #define MENU_BUFLEN (0x8000 + PASSWORD_BUF - MENU_BUF) - - /* The size of the drive map. */ --#define DRIVE_MAP_SIZE 8 -+#define DRIVE_MAP_SIZE 128 - - /* The size of the key map. */ - #define KEY_MAP_SIZE 128 -@@ -160,16 +163,18 @@ extern char *grub_scratch_mem; - #define LINUX_VID_MODE_ASK 0xFFFD - - #define LINUX_CL_OFFSET 0x9000 --#define LINUX_CL_END_OFFSET 0x90FF --#define LINUX_SETUP_MOVE_SIZE 0x9100 -+#define LINUX_CL_END_OFFSET 0x97FF -+#define LINUX_SETUP_MOVE_SIZE 0x9800 - #define LINUX_CL_MAGIC 0xA33F - - /* - * General disk stuff - */ - -+#ifndef PLATFORM_EFI - #define SECTOR_SIZE 0x200 - #define SECTOR_BITS 9 -+#endif /* PLATFORM_EFI */ - #define BIOS_FLAG_FIXED_DISK 0x80 - - #define BOOTSEC_LOCATION RAW_ADDR (0x7C00) -@@ -200,6 +205,8 @@ extern char *grub_scratch_mem; - #define STAGE2_FORCE_LBA 0x11 - #define STAGE2_VER_STR_OFFS 0x12 - -+#define STAGE2_ONCEONLY_ENTRY 0x10000 -+ - /* Stage 2 identifiers */ - #define STAGE2_ID_STAGE2 0 - #define STAGE2_ID_FFS_STAGE1_5 1 -@@ -360,7 +367,7 @@ extern char *grub_scratch_mem; - #define memcpy grub_memmove /* we don't need a separate memcpy */ - #define memset grub_memset - #define isspace grub_isspace --#define printf grub_printf -+#define printf(format...) grub_printf(format) - #define sprintf grub_sprintf - #undef putchar - #define putchar grub_putchar -@@ -371,14 +378,24 @@ extern char *grub_scratch_mem; - #define tolower grub_tolower - #define strlen grub_strlen - #define strcpy grub_strcpy -+#define stpncpy grub_stpncpy -+#define strspn grub_strspn -+#define strcspn grub_strcspn -+#define strtok_r grub_strtok_r -+#define strchr grub_strchr -+#define strrchr grub_strrchr -+#define strnchr grub_strnchr -+#define strncpy grub_strncpy -+#define strncasecmp grub_strncasecmp - #endif /* WITHOUT_LIBC_STUBS */ - -- - #ifndef ASM_FILE - /* - * Below this should be ONLY defines and other constructs for C code. - */ - -+#include -+ - /* multiboot stuff */ - - #include "mb_header.h" -@@ -400,30 +417,33 @@ struct linux_kernel_header - unsigned short root_dev; /* Default root device number */ - unsigned short boot_flag; /* 0xAA55 magic number */ - unsigned short jump; /* Jump instruction */ -- unsigned long header; /* Magic signature "HdrS" */ -+ unsigned int header; /* Magic signature "HdrS" */ - unsigned short version; /* Boot protocol version supported */ -- unsigned long realmode_swtch; /* Boot loader hook */ -- unsigned long start_sys; /* Points to kernel version string */ -+ unsigned int realmode_swtch; /* Boot loader hook */ -+ unsigned int start_sys; /* Points to kernel version string */ - unsigned char type_of_loader; /* Boot loader identifier */ - unsigned char loadflags; /* Boot protocol option flags */ - unsigned short setup_move_size; /* Move to high memory size */ -- unsigned long code32_start; /* Boot loader hook */ -- unsigned long ramdisk_image; /* initrd load address */ -- unsigned long ramdisk_size; /* initrd size */ -- unsigned long bootsect_kludge; /* obsolete */ -+ unsigned int code32_start; /* Boot loader hook */ -+ unsigned int ramdisk_image; /* initrd load address */ -+ unsigned int ramdisk_size; /* initrd size */ -+ unsigned int bootsect_kludge; /* obsolete */ - unsigned short heap_end_ptr; /* Free memory after setup end */ - unsigned short pad1; /* Unused */ - char *cmd_line_ptr; /* Points to the kernel command line */ -- unsigned long initrd_addr_max; /* The highest address of initrd */ -+ unsigned int initrd_addr_max; /* The highest address of initrd */ -+ unsigned int kernel_alignment; /* Physical addr alignment required for kernel */ -+ unsigned int relocatable_kernel; /* Whether kernel is relocatable or not */ -+ unsigned int cmdline_size; /* Maximum size of the kernel command line */ - } __attribute__ ((packed)); - - /* Memory map address range descriptor used by GET_MMAP_ENTRY. */ - struct mmar_desc - { -- unsigned long desc_len; /* Size of this descriptor. */ -+ unsigned int desc_len; /* Size of this descriptor. */ - unsigned long long addr; /* Base address. */ - unsigned long long length; /* Length in bytes. */ -- unsigned long type; /* Type of address range. */ -+ unsigned int type; /* Type of address range. */ - } __attribute__ ((packed)); - - /* VBE controller information. */ -@@ -600,6 +620,7 @@ typedef enum - { - PASSWORD_PLAIN, - PASSWORD_MD5, -+ PASSWORD_ENCRYPTED, - PASSWORD_UNSUPPORTED - } - password_t; -@@ -627,8 +648,16 @@ extern void (*disk_read_func) (int, int, int); - #ifndef STAGE1_5 - /* The flag for debug mode. */ - extern int debug; -+extern int debug_graphics; - #endif /* STAGE1_5 */ - -+/* Verbose mode flag. */ -+extern int grub_verbose; -+#define verbose_printf(format...) \ -+ do { if (grub_verbose) printf(format); } while (0) -+#define grub_verbose_printf(format...) \ -+ do { if (grub_verbose) grub_printf(format); } while (0) -+ - extern unsigned long current_drive; - extern unsigned long current_partition; - -@@ -666,6 +695,8 @@ extern struct geometry buf_geom; - extern int filepos; - extern int filemax; - -+extern int silent_grub; -+ - /* - * Common BIOS/boot data. - */ -@@ -804,11 +835,17 @@ int getkey (void); - available. */ - int checkkey (void); - -+/* Return keyboard modifier status. */ -+int -+keystatus (void); -+ - /* Low-level disk I/O */ - int get_diskinfo (int drive, struct geometry *geometry); - int biosdisk (int subfunc, int drive, struct geometry *geometry, - int sector, int nsec, int segment); - void stop_floppy (void); -+int get_sector_size (int drive); -+int get_sector_bits (int drive); - - /* Command-line interface functions. */ - #ifndef STAGE1_5 -@@ -860,17 +897,25 @@ void init_builtins (void); - void init_config (void); - char *skip_to (int after_equal, char *cmdline); - struct builtin *find_command (char *command); --void print_cmdline_message (int forever); - void enter_cmdline (char *heap, int forever); - int run_script (char *script, char *heap); -+ -+/* the flags for the cmdline message */ -+#define CMDLINE_FOREVER_MODE 0x0 -+#define CMDLINE_NORMAL_MODE 0x1 -+#define CMDLINE_EDIT_MODE 0x2 -+ -+void print_cmdline_message (int type); - #endif - - /* C library replacement functions with identical semantics. */ --void grub_printf (const char *format,...); -+int grub_vsprintf (char *str, const char *fmt, va_list args); -+void grub_printf (char *format,...); - int grub_sprintf (char *buffer, const char *format, ...); - int grub_tolower (int c); - int grub_isspace (int c); - int grub_strncat (char *s1, const char *s2, int n); -+void grub_memcpy(void *dest, const void *src, int len); - void *grub_memmove (void *to, const void *from, int len); - void *grub_memset (void *start, int c, int len); - int grub_strncat (char *s1, const char *s2, int n); -@@ -879,9 +924,19 @@ int grub_memcmp (const char *s1, const char *s2, int n); - int grub_strcmp (const char *s1, const char *s2); - int grub_strlen (const char *str); - char *grub_strcpy (char *dest, const char *src); -+char *grub_stpncpy (char *dest, const char *src, int n); -+int grub_strspn(const char *s, const char *accept); -+int grub_strcspn(const char *s, const char *reject); -+char *grub_strtok_r(char *s, const char *delim, char **ptrptr); -+char *grub_strchr (const char *s, int c); -+char *grub_strrchr (const char *s, int c); -+char *grub_strnchr (const char *s, int c); -+int grub_strnlen (const char *s, int n); -+char *grub_strncpy (char *new, const char *s, int n); -+int grub_strncasecmp(const char *s0, const char *s1, int n); - - #ifndef GRUB_UTIL --typedef unsigned long grub_jmp_buf[6]; -+typedef unsigned long grub_jmp_buf[8]; - #else - /* In the grub shell, use the libc jmp_buf instead. */ - # include -@@ -904,10 +959,11 @@ extern grub_jmp_buf restart_cmdline_env; - /* misc */ - void init_page (void); - void print_error (void); --char *convert_to_ascii (char *buf, int c, ...); -+char *convert_to_ascii (char *buf, int c, unsigned int num); - int get_cmdline (char *prompt, char *cmdline, int maxlen, - int echo_char, int history); - int substring (const char *s1, const char *s2); -+int subcasestring (const char *s1, const char *s2); - int nul_terminate (char *str); - int get_based_digit (int c, int base); - int safe_parse_maxint (char **str_ptr, int *myint_ptr); -@@ -934,7 +990,9 @@ int next_partition (unsigned long drive, unsigned long dest, - unsigned long *partition, int *type, - unsigned long *start, unsigned long *len, - unsigned long *offset, int *entry, -- unsigned long *ext_offset, char *buf); -+ unsigned long *ext_offset, -+ unsigned long *gpt_offset, int *gpt_count, -+ int *gpt_size, char *buf); - - /* Sets device to the one represented by the SAVED_* parameters. */ - int make_saved_active (void); -@@ -962,6 +1020,8 @@ int dir (char *dirname); - - int set_bootdev (int hdbias); - -+char *get_fsys_type (void); -+ - /* Display statistics on the current active device. */ - void print_fsys_type (void); - -@@ -987,10 +1047,22 @@ int load_module (char *module, char *arg); - int load_initrd (char *initrd); - - int check_password(char *entered, char* expected, password_t type); -+ -+char *sha256_crypt (const char *key, const char *salt); -+char *sha512_crypt (const char *key, const char *salt); - #endif - - void init_bios_info (void); - -+#ifdef PLATFORM_EFI -+void grub_set_config_file (char *path_name); -+int grub_save_saved_default (int new_default); -+extern int check_device (const char *device); -+extern void assign_device_name (int drive, const char *device); -+#endif -+int grub_load_linux (char *kernel, char *arg); -+int grub_load_initrd (char *initrd); -+int grub_chainloader (char *filename); - #endif /* ASM_FILE */ - - #endif /* ! GRUB_SHARED_HEADER */ -diff --git a/stage2/smp-imps.h b/stage2/smp-imps.h -index c0fdce3..bae9b77 100644 ---- a/stage2/smp-imps.h -+++ b/stage2/smp-imps.h -@@ -196,7 +196,6 @@ struct imps_interrupt - - int imps_probe (void); - -- - /* - * Defines that use variables - */ -diff --git a/stage2/stage1_5.c b/stage2/stage1_5.c -index 5c45d4c..c2d9632 100644 ---- a/stage2/stage1_5.c -+++ b/stage2/stage1_5.c -@@ -30,7 +30,8 @@ disk_read_savesect_func (int sector, int offset, int length) - void - cmain (void) - { -- grub_printf ("\n\nGRUB loading, please wait...\n"); -+ if (0) -+ grub_printf ("\n\nGRUB loading, please wait...\n"); - - /* - * Here load the true second-stage boot-loader. -diff --git a/stage2/stage2.c b/stage2/stage2.c -index 4dbf6f5..cca4332 100644 ---- a/stage2/stage2.c -+++ b/stage2/stage2.c -@@ -22,6 +22,8 @@ - - grub_jmp_buf restart_env; - -+int silent_grub = 0; -+ - #if defined(PRESET_MENU_STRING) || defined(SUPPORT_DISKLESS) - - # if defined(PRESET_MENU_STRING) -@@ -233,6 +235,10 @@ run_menu (char *menu_entries, char *config_entries, int num_entries, - { - int c, time1, time2 = -1, first_entry = 0; - char *cur_entry = 0; -+ struct term_entry *prev_term = NULL; -+ -+ if (grub_verbose) -+ cls(); - - /* - * Main loop for menu UI. -@@ -254,18 +260,33 @@ restart: - interface. */ - if (grub_timeout < 0) - show_menu = 1; -- -+ - /* If SHOW_MENU is false, don't display the menu until ESC is pressed. */ - if (! show_menu) - { -+ /* Don't show the "Booting in blah seconds message" if the timeout is 0 */ -+ int print_message = grub_timeout != 0; -+ - /* Get current time. */ - while ((time1 = getrtsecs ()) == 0xFF) - ; - -+ if (print_message) -+ grub_printf("\rPress any key to enter the menu\n\n\n"); -+ - while (1) - { -- /* Check if ESC is pressed. */ -- if (checkkey () != -1 && ASCII_CHAR (getkey ()) == '\e') -+ /* Check if any key is pressed */ -+ if (checkkey () != -1) -+ { -+ grub_timeout = -1; -+ show_menu = 1; -+ getkey (); -+ break; -+ } -+ -+ /* See if a modifier key is held down. */ -+ if (keystatus () != 0) - { - grub_timeout = -1; - show_menu = 1; -@@ -287,8 +308,10 @@ restart: - grub_timeout--; - - /* Print a message. */ -- grub_printf ("\rPress `ESC' to enter the menu... %d ", -- grub_timeout); -+ if (print_message) -+ grub_printf ("\rBooting %s in %d seconds...", -+ get_entry(menu_entries, first_entry + entryno, 0), -+ grub_timeout); - } - } - } -@@ -319,7 +342,8 @@ restart: - if (config_entries) - printf ("\ - Press enter to boot the selected OS, \'e\' to edit the\n\ -- commands before booting, or \'c\' for a command-line."); -+ commands before booting, \'a\' to modify the kernel arguments\n\ -+ before booting, or \'c\' for a command-line."); - else - printf ("\ - Press \'b\' to boot, \'e\' to edit the selected command in the\n\ -@@ -514,7 +538,7 @@ restart: - if (c == 'O') - { - grub_memmove (cur_entry + 2, cur_entry, -- ((int) heap) - ((int) cur_entry)); -+ heap - cur_entry); - - cur_entry[0] = ' '; - cur_entry[1] = 0; -@@ -530,8 +554,8 @@ restart: - 0); - - grub_memmove (cur_entry, ptr, -- ((int) heap) - ((int) ptr)); -- heap -= (((int) ptr) - ((int) cur_entry)); -+ heap - ptr); -+ heap -= ptr - cur_entry; - - num_entries--; - -@@ -655,7 +679,7 @@ restart: - else - { - cls (); -- print_cmdline_message (0); -+ print_cmdline_message (CMDLINE_EDIT_MODE); - - new_heap = heap + NEW_HEAPSIZE + 1; - -@@ -681,7 +705,7 @@ restart: - - /* align rest of commands properly */ - grub_memmove (cur_entry + j, cur_entry + i, -- (int) heap - ((int) cur_entry + i)); -+ (unsigned long) heap - ((unsigned long) cur_entry + i)); - - /* copy command to correct area */ - grub_memmove (cur_entry, new_heap, j); -@@ -697,6 +721,98 @@ restart: - enter_cmdline (heap, 0); - goto restart; - } -+ if (config_entries && c == 'a') -+ { -+ int new_num_entries = 0, i = 0, j; -+ int needs_padding, amount; -+ char *new_heap; -+ char * entries; -+ char * entry_copy; -+ char * append_line; -+ char * start; -+ -+ entry_copy = new_heap = heap; -+ cur_entry = get_entry (config_entries, first_entry + entryno, -+ 1); -+ -+ do -+ { -+ while ((*(new_heap++) = cur_entry[i++]) != 0); -+ new_num_entries++; -+ } -+ while (config_entries && cur_entry[i]); -+ -+ /* this only needs to be done if config_entries is non-NULL, -+ but it doesn't hurt to do it always */ -+ *(new_heap++) = 0; -+ -+ new_heap = heap + NEW_HEAPSIZE + 1; -+ -+ entries = entry_copy; -+ while (*entries) -+ { -+ if ((strstr(entries, "kernel") == entries) && -+ isspace(entries[6])) -+ break; -+ -+ while (*entries) entries++; -+ entries++; -+ } -+ -+ if (!*entries) -+ goto restart; -+ -+ start = entries + 6; -+ -+ /* skip the white space */ -+ while (*start && isspace(*start)) start++; -+ /* skip the kernel name */ -+ while (*start && !isspace(*start)) start++; -+ -+ /* skip the white space */ -+ needs_padding = (!*start || !isspace(*start)); -+ while (*start && isspace(*start)) start++; -+ -+ append_line = new_heap; -+ grub_strcpy(append_line, start); -+ -+ cls(); -+ print_cmdline_message (CMDLINE_EDIT_MODE); -+ -+ if (get_cmdline(PACKAGE " append> ", -+ append_line, NEW_HEAPSIZE + 1, -+ 0, 1)) -+ goto restart; -+ -+ /* have new args; append_line points to the -+ new args and start points to the old -+ args */ -+ -+ i = grub_strlen(start); -+ j = grub_strlen(append_line); -+ -+ if (i > (j + needs_padding)) -+ amount = i; -+ else -+ amount = j + needs_padding; -+ -+ /* align rest of commands properly */ -+ memmove (start + j + needs_padding, start + i, -+ ((unsigned long) append_line) - ((unsigned long) start) - (amount)); -+ -+ if (needs_padding) -+ *start = ' '; -+ -+ /* copy command to correct area */ -+ memmove (start + needs_padding, append_line, j); -+ -+ /* set up this entry to boot */ -+ config_entries = NULL; -+ cur_entry = entry_copy; -+ heap = new_heap; -+ -+ break; -+ } - #ifdef GRUB_UTIL - if (c == 'q') - { -@@ -712,16 +828,31 @@ restart: - - boot_entry: - -- cls (); -- setcursor (1); -+ if (grub_verbose || show_menu) -+ { -+ cls (); -+ setcursor (1); -+ } -+ /* if our terminal needed initialization, we should shut it down -+ * before booting the kernel, but we want to save what it was so -+ * we can come back if needed */ -+ prev_term = current_term; -+ if (current_term->shutdown) -+ { -+ (*current_term->shutdown)(); -+ current_term = term_table; /* assumption: console is first */ -+ } -+ -+ if (silent_grub) -+ setcursor(0); - - while (1) - { - if (config_entries) -- printf (" Booting \'%s\'\n\n", -+ verbose_printf (" Booting \'%s\'\n\n", - get_entry (menu_entries, first_entry + entryno, 0)); - else -- printf (" Booting command-list\n\n"); -+ verbose_printf (" Booting command-list\n\n"); - - if (! cur_entry) - cur_entry = get_entry (config_entries, first_entry + entryno, 1); -@@ -748,6 +879,13 @@ restart: - break; - } - -+ /* if we get back here, we should go back to what our term was before */ -+ current_term = prev_term; -+ if (current_term->startup) -+ /* if our terminal fails to initialize, fall back to console since -+ * it should always work */ -+ if ((*current_term->startup)() == 0) -+ current_term = term_table; /* we know that console is first */ - show_menu = 1; - goto restart; - } -@@ -867,38 +1005,8 @@ cmain (void) - if (use_config_file) - #endif /* GRUB_UTIL */ - { -- char *default_file = (char *) DEFAULT_FILE_BUF; - int i; -- -- /* Get a saved default entry if possible. */ -- saved_entryno = 0; -- *default_file = 0; -- grub_strncat (default_file, config_file, DEFAULT_FILE_BUFLEN); -- for (i = grub_strlen(default_file); i >= 0; i--) -- if (default_file[i] == '/') -- { -- i++; -- break; -- } -- default_file[i] = 0; -- grub_strncat (default_file + i, "default", DEFAULT_FILE_BUFLEN - i); -- if (grub_open (default_file)) -- { -- char buf[10]; /* This is good enough. */ -- char *p = buf; -- int len; -- -- len = grub_read (buf, sizeof (buf)); -- if (len > 0) -- { -- buf[sizeof (buf) - 1] = 0; -- safe_parse_maxint (&p, &saved_entryno); -- } - -- grub_close (); -- } -- errnum = ERR_NONE; -- - do - { - /* STATE 0: Before any title command. -@@ -1050,11 +1158,16 @@ cmain (void) - while (is_preset); - } - -+ /* go ahead and make sure the terminal is setup */ -+ if (current_term->startup) -+ (*current_term->startup)(); -+ - if (! num_entries) - { - /* If no acceptable config file, goto command-line, starting - heap from where the config entries would have been stored - if there were any. */ -+ grub_verbose = 1; - enter_cmdline (config_entries, 1); - } - else -diff --git a/stage2/start.S b/stage2/start.S -index 9a7d504..7a6652f 100644 ---- a/stage2/start.S -+++ b/stage2/start.S -@@ -39,6 +39,9 @@ - - /* Print message string */ - #define MSG(x) movw $ABS(x), %si; call message -+ -+ /* Print verbose message string */ -+#define VMSG(x) - - .file "start.S" - -@@ -67,9 +70,9 @@ _start: - - /* print a notification message on the screen */ - pushw %si -- MSG(notification_string) -+ VMSG(notification_string) - popw %si -- -+ - /* this sets up for the first run through "bootloop" */ - movw $ABS(firstlist - BOOTSEC_LISTSIZE), %di - -@@ -291,9 +294,9 @@ copy_buffer: - movsb /* this runs the actual copy */ - - /* restore addressing regs and print a dot with correct DS -- (MSG modifies SI, which is saved, and unused AX and BX) */ -+ (VMSG modifies SI, which is saved, and unused AX and BX) */ - popw %ds -- MSG(notification_step) -+ VMSG(notification_step) - popa - - /* check if finished with this dataset */ -@@ -310,7 +313,7 @@ copy_buffer: - - bootit: - /* print a newline */ -- MSG(notification_done) -+ VMSG(notification_done) - popw %dx /* this makes sure %dl is our "boot" drive */ - #ifdef STAGE1_5 - ljmp $0, $0x2200 -diff --git a/stage2/term.h b/stage2/term.h -index 8261c7c..803de58 100644 ---- a/stage2/term.h -+++ b/stage2/term.h -@@ -54,18 +54,28 @@ typedef enum - /* Set when the terminal needs to be initialized. */ - #define TERM_NEED_INIT (1 << 16) - -+/* Bitmasks for modifier keys returned by term->keystatus(). */ -+#define TERM_STATUS_ALT (1 << 3) -+#define TERM_STATUS_CTRL (1 << 2) -+#define TERM_STATUS_LEFT_SHIFT (1 << 1) -+#define TERM_STATUS_RIGHT_SHIFT (1 << 0) -+ - struct term_entry - { - /* The name of a terminal. */ - const char *name; - /* The feature flags defined above. */ - unsigned long flags; -+ /* Default for maximum number of lines if not specified */ -+ unsigned short max_lines; - /* Put a character. */ - void (*putchar) (int c); - /* Check if any input character is available. */ - int (*checkkey) (void); - /* Get a character. */ - int (*getkey) (void); -+ /* Get keyboard modifier status. */ -+ int (*keystatus) (void); - /* Get the cursor position. The return value is ((X << 8) | Y). */ - int (*getxy) (void); - /* Go to the position (X, Y). */ -@@ -79,6 +89,11 @@ struct term_entry - void (*setcolor) (int normal_color, int highlight_color); - /* Turn on/off the cursor. */ - int (*setcursor) (int on); -+ -+ /* function to start a terminal */ -+ int (*startup) (void); -+ /* function to use to shutdown a terminal */ -+ void (*shutdown) (void); - }; - - /* This lists up available terminals. */ -@@ -96,6 +111,7 @@ void console_putchar (int c); - #ifndef STAGE1_5 - int console_checkkey (void); - int console_getkey (void); -+int console_keystatus (void); - int console_getxy (void); - void console_gotoxy (int x, int y); - void console_cls (void); -@@ -124,4 +140,23 @@ void hercules_setcolor (int normal_color, int highlight_color); - int hercules_setcursor (int on); - #endif - -+#ifdef SUPPORT_GRAPHICS -+extern int foreground, background, border, graphics_inited; -+ -+void graphics_set_splash(char *splashfile); -+int set_videomode (int mode); -+void graphics_putchar (int c); -+int graphics_getxy(void); -+void graphics_gotoxy(int x, int y); -+void graphics_cls(void); -+void graphics_setcolorstate (color_state state); -+void graphics_setcolor (int normal_color, int highlight_color); -+int graphics_setcursor (int on); -+int graphics_init(void); -+void graphics_end(void); -+ -+int hex(int v); -+void graphics_set_palette(int idx, int red, int green, int blue); -+#endif /* SUPPORT_GRAPHICS */ -+ - #endif /* ! GRUB_TERM_HEADER */ -diff --git a/stage2/tparm.c b/stage2/tparm.c -index ff78d53..408b284 100644 ---- a/stage2/tparm.c -+++ b/stage2/tparm.c -@@ -320,7 +320,7 @@ parse_format(const char *s, char *format, int *len) - #define isLOWER(c) ((c) >= 'a' && (c) <= 'z') - - static inline char * --tparam_internal(const char *string, int *dataptr) -+tparam_internal(const char *string, va_list args) - { - #define NUM_VARS 26 - char *p_is_s[9]; -@@ -461,9 +461,9 @@ tparam_internal(const char *string, int *dataptr) - * a char* and an int may not be the same size on the stack. - */ - if (p_is_s[i] != 0) { -- p_is_s[i] = (char *)(*(dataptr++)); -+ p_is_s[i] = va_arg (args, char *); - } else { -- param[i] = (int)(*(dataptr++)); -+ param[i] = va_arg (args, int); - } - } - -@@ -716,11 +716,11 @@ char * - grub_tparm(const char *string,...) - { - char *result; -- int *dataptr = (int *) &string; -+ va_list ap; - -- dataptr++; -- -- result = tparam_internal(string, dataptr); -+ va_start (ap, string); -+ result = tparam_internal(string, ap); -+ va_end(ap); - - return result; - } -diff --git a/test b/test -new file mode 100644 -index 0000000..b182379 ---- /dev/null -+++ b/test -@@ -0,0 +1 @@ -+fo of fo -diff --git a/util/.gitignore b/util/.gitignore -new file mode 100644 -index 0000000..6687356 ---- /dev/null -+++ b/util/.gitignore -@@ -0,0 +1,7 @@ -+Makefile.in -+Makefile -+.deps -+grub-image -+grub-install -+grub-md5-crypt -+grub-terminfo -diff --git a/util/Makefile.am b/util/Makefile.am -index 2e04711..fa545b1 100644 ---- a/util/Makefile.am -+++ b/util/Makefile.am -@@ -1,6 +1,7 @@ -+if !PLATFORM_EFI -+ - bin_PROGRAMS = mbchk --sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo \ -- grub-set-default -+sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo grub-crypt - noinst_SCRIPTS = grub-image mkbimage - - EXTRA_DIST = mkbimage -@@ -10,3 +11,9 @@ AM_CFLAGS = -I$(top_srcdir)/lib -I$(top_srcdir)/docs - - mbchk_SOURCES = mbchk.c - mbchk_LDADD = ../lib/libcommon.a -+ -+else -+ -+sbin_SCRIPTS = grub-md5-crypt grub-terminfo grub-crypt -+ -+endif -diff --git a/util/Makefile.in b/util/Makefile.in -deleted file mode 100644 -index e700cf7..0000000 ---- a/util/Makefile.in -+++ /dev/null -@@ -1,478 +0,0 @@ --# Makefile.in generated by automake 1.9.4 from Makefile.am. --# @configure_input@ -- --# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, --# 2003, 2004 Free Software Foundation, Inc. --# This Makefile.in is free software; the Free Software Foundation --# gives unlimited permission to copy and/or distribute it, --# with or without modifications, as long as this notice is preserved. -- --# This program is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY, to the extent permitted by law; without --# even the implied warranty of MERCHANTABILITY or FITNESS FOR A --# PARTICULAR PURPOSE. -- --@SET_MAKE@ -- -- --SOURCES = $(mbchk_SOURCES) -- --srcdir = @srcdir@ --top_srcdir = @top_srcdir@ --VPATH = @srcdir@ --pkgdatadir = $(datadir)/@PACKAGE@ --pkglibdir = $(libdir)/@PACKAGE@ --pkgincludedir = $(includedir)/@PACKAGE@ --top_builddir = .. --am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd --INSTALL = @INSTALL@ --install_sh_DATA = $(install_sh) -c -m 644 --install_sh_PROGRAM = $(install_sh) -c --install_sh_SCRIPT = $(install_sh) -c --INSTALL_HEADER = $(INSTALL_DATA) --transform = $(program_transform_name) --NORMAL_INSTALL = : --PRE_INSTALL = : --POST_INSTALL = : --NORMAL_UNINSTALL = : --PRE_UNINSTALL = : --POST_UNINSTALL = : --build_triplet = @build@ --host_triplet = @host@ --bin_PROGRAMS = mbchk$(EXEEXT) --subdir = util --DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ -- $(srcdir)/grub-image.in $(srcdir)/grub-install.in \ -- $(srcdir)/grub-md5-crypt.in $(srcdir)/grub-set-default.in \ -- $(srcdir)/grub-terminfo.in --ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 --am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \ -- $(top_srcdir)/configure.ac --am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ -- $(ACLOCAL_M4) --mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs --CONFIG_HEADER = $(top_builddir)/config.h --CONFIG_CLEAN_FILES = grub-image grub-install grub-md5-crypt \ -- grub-terminfo grub-set-default --am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)" --binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) --PROGRAMS = $(bin_PROGRAMS) --am_mbchk_OBJECTS = mbchk.$(OBJEXT) --mbchk_OBJECTS = $(am_mbchk_OBJECTS) --mbchk_DEPENDENCIES = ../lib/libcommon.a --sbinSCRIPT_INSTALL = $(INSTALL_SCRIPT) --SCRIPTS = $(noinst_SCRIPTS) $(sbin_SCRIPTS) --DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) --depcomp = $(SHELL) $(top_srcdir)/depcomp --am__depfiles_maybe = depfiles --COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ -- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) --CCLD = $(CC) --LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ --SOURCES = $(mbchk_SOURCES) --DIST_SOURCES = $(mbchk_SOURCES) --ETAGS = etags --CTAGS = ctags --DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) --ACLOCAL = @ACLOCAL@ --AMDEP_FALSE = @AMDEP_FALSE@ --AMDEP_TRUE = @AMDEP_TRUE@ --AMTAR = @AMTAR@ --AUTOCONF = @AUTOCONF@ --AUTOHEADER = @AUTOHEADER@ --AUTOMAKE = @AUTOMAKE@ --AWK = @AWK@ --BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@ --BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@ --CC = @CC@ --CCAS = @CCAS@ --CCASFLAGS = @CCASFLAGS@ --CCDEPMODE = @CCDEPMODE@ --CFLAGS = @CFLAGS@ --CPP = @CPP@ --CPPFLAGS = @CPPFLAGS@ --CYGPATH_W = @CYGPATH_W@ --DEFS = @DEFS@ --DEPDIR = @DEPDIR@ --DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@ --DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@ --ECHO_C = @ECHO_C@ --ECHO_N = @ECHO_N@ --ECHO_T = @ECHO_T@ --EGREP = @EGREP@ --EXEEXT = @EXEEXT@ --FSYS_CFLAGS = @FSYS_CFLAGS@ --GRUB_CFLAGS = @GRUB_CFLAGS@ --GRUB_LIBS = @GRUB_LIBS@ --HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@ --HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@ --INSTALL_DATA = @INSTALL_DATA@ --INSTALL_PROGRAM = @INSTALL_PROGRAM@ --INSTALL_SCRIPT = @INSTALL_SCRIPT@ --INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ --LDFLAGS = @LDFLAGS@ --LIBOBJS = @LIBOBJS@ --LIBS = @LIBS@ --LTLIBOBJS = @LTLIBOBJS@ --MAINT = @MAINT@ --MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ --MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ --MAKEINFO = @MAKEINFO@ --NETBOOT_DRIVERS = @NETBOOT_DRIVERS@ --NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@ --NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@ --NET_CFLAGS = @NET_CFLAGS@ --NET_EXTRAFLAGS = @NET_EXTRAFLAGS@ --OBJCOPY = @OBJCOPY@ --OBJEXT = @OBJEXT@ --PACKAGE = @PACKAGE@ --PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ --PACKAGE_NAME = @PACKAGE_NAME@ --PACKAGE_STRING = @PACKAGE_STRING@ --PACKAGE_TARNAME = @PACKAGE_TARNAME@ --PACKAGE_VERSION = @PACKAGE_VERSION@ --PATH_SEPARATOR = @PATH_SEPARATOR@ --PERL = @PERL@ --RANLIB = @RANLIB@ --SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@ --SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@ --SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@ --SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@ --SET_MAKE = @SET_MAKE@ --SHELL = @SHELL@ --STAGE1_CFLAGS = @STAGE1_CFLAGS@ --STAGE2_CFLAGS = @STAGE2_CFLAGS@ --STRIP = @STRIP@ --VERSION = @VERSION@ --ac_ct_CC = @ac_ct_CC@ --ac_ct_OBJCOPY = @ac_ct_OBJCOPY@ --ac_ct_RANLIB = @ac_ct_RANLIB@ --ac_ct_STRIP = @ac_ct_STRIP@ --am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ --am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ --am__include = @am__include@ --am__leading_dot = @am__leading_dot@ --am__quote = @am__quote@ --am__tar = @am__tar@ --am__untar = @am__untar@ --bindir = @bindir@ --build = @build@ --build_alias = @build_alias@ --build_cpu = @build_cpu@ --build_os = @build_os@ --build_vendor = @build_vendor@ --datadir = @datadir@ --exec_prefix = @exec_prefix@ --host = @host@ --host_alias = @host_alias@ --host_cpu = @host_cpu@ --host_os = @host_os@ --host_vendor = @host_vendor@ --includedir = @includedir@ --infodir = @infodir@ --install_sh = @install_sh@ --libdir = @libdir@ --libexecdir = @libexecdir@ --localstatedir = @localstatedir@ --mandir = @mandir@ --mkdir_p = @mkdir_p@ --oldincludedir = @oldincludedir@ --prefix = @prefix@ --program_transform_name = @program_transform_name@ --sbindir = @sbindir@ --sharedstatedir = @sharedstatedir@ --sysconfdir = @sysconfdir@ --target_alias = @target_alias@ --sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo \ -- grub-set-default -- --noinst_SCRIPTS = grub-image mkbimage --EXTRA_DIST = mkbimage -- --# XXX: Need to search for a header file in docs, because of multiboot.h. --AM_CFLAGS = -I$(top_srcdir)/lib -I$(top_srcdir)/docs --mbchk_SOURCES = mbchk.c --mbchk_LDADD = ../lib/libcommon.a --all: all-am -- --.SUFFIXES: --.SUFFIXES: .c .o .obj --$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) -- @for dep in $?; do \ -- case '$(am__configure_deps)' in \ -- *$$dep*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ -- && exit 0; \ -- exit 1;; \ -- esac; \ -- done; \ -- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu util/Makefile'; \ -- cd $(top_srcdir) && \ -- $(AUTOMAKE) --gnu util/Makefile --.PRECIOUS: Makefile --Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status -- @case '$?' in \ -- *config.status*) \ -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ -- *) \ -- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ -- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ -- esac; -- --$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh -- --$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh --$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) -- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh --grub-image: $(top_builddir)/config.status $(srcdir)/grub-image.in -- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ --grub-install: $(top_builddir)/config.status $(srcdir)/grub-install.in -- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ --grub-md5-crypt: $(top_builddir)/config.status $(srcdir)/grub-md5-crypt.in -- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ --grub-terminfo: $(top_builddir)/config.status $(srcdir)/grub-terminfo.in -- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ --grub-set-default: $(top_builddir)/config.status $(srcdir)/grub-set-default.in -- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ --install-binPROGRAMS: $(bin_PROGRAMS) -- @$(NORMAL_INSTALL) -- test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" -- @list='$(bin_PROGRAMS)'; for p in $$list; do \ -- p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ -- if test -f $$p \ -- ; then \ -- f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ -- echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ -- $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ -- else :; fi; \ -- done -- --uninstall-binPROGRAMS: -- @$(NORMAL_UNINSTALL) -- @list='$(bin_PROGRAMS)'; for p in $$list; do \ -- f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ -- echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ -- rm -f "$(DESTDIR)$(bindir)/$$f"; \ -- done -- --clean-binPROGRAMS: -- -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) --mbchk$(EXEEXT): $(mbchk_OBJECTS) $(mbchk_DEPENDENCIES) -- @rm -f mbchk$(EXEEXT) -- $(LINK) $(mbchk_LDFLAGS) $(mbchk_OBJECTS) $(mbchk_LDADD) $(LIBS) --install-sbinSCRIPTS: $(sbin_SCRIPTS) -- @$(NORMAL_INSTALL) -- test -z "$(sbindir)" || $(mkdir_p) "$(DESTDIR)$(sbindir)" -- @list='$(sbin_SCRIPTS)'; for p in $$list; do \ -- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ -- if test -f $$d$$p; then \ -- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ -- echo " $(sbinSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(sbindir)/$$f'"; \ -- $(sbinSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(sbindir)/$$f"; \ -- else :; fi; \ -- done -- --uninstall-sbinSCRIPTS: -- @$(NORMAL_UNINSTALL) -- @list='$(sbin_SCRIPTS)'; for p in $$list; do \ -- f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ -- echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \ -- rm -f "$(DESTDIR)$(sbindir)/$$f"; \ -- done -- --mostlyclean-compile: -- -rm -f *.$(OBJEXT) -- --distclean-compile: -- -rm -f *.tab.c -- --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbchk.Po@am__quote@ -- --.c.o: --@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(COMPILE) -c $< -- --.c.obj: --@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ --@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi --@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ --@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ --@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` --uninstall-info-am: -- --ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) -- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- mkid -fID $$unique --tags: TAGS -- --TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -- $(TAGS_FILES) $(LISP) -- tags=; \ -- here=`pwd`; \ -- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ -- test -n "$$unique" || unique=$$empty_fix; \ -- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ -- $$tags $$unique; \ -- fi --ctags: CTAGS --CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ -- $(TAGS_FILES) $(LISP) -- tags=; \ -- here=`pwd`; \ -- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ -- unique=`for i in $$list; do \ -- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ -- done | \ -- $(AWK) ' { files[$$0] = 1; } \ -- END { for (i in files) print i; }'`; \ -- test -z "$(CTAGS_ARGS)$$tags$$unique" \ -- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ -- $$tags $$unique -- --GTAGS: -- here=`$(am__cd) $(top_builddir) && pwd` \ -- && cd $(top_srcdir) \ -- && gtags -i $(GTAGS_ARGS) $$here -- --distclean-tags: -- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -- --distdir: $(DISTFILES) -- @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ -- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ -- list='$(DISTFILES)'; for file in $$list; do \ -- case $$file in \ -- $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ -- $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ -- esac; \ -- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ -- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ -- if test "$$dir" != "$$file" && test "$$dir" != "."; then \ -- dir="/$$dir"; \ -- $(mkdir_p) "$(distdir)$$dir"; \ -- else \ -- dir=''; \ -- fi; \ -- if test -d $$d/$$file; then \ -- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ -- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ -- fi; \ -- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ -- else \ -- test -f $(distdir)/$$file \ -- || cp -p $$d/$$file $(distdir)/$$file \ -- || exit 1; \ -- fi; \ -- done --check-am: all-am --check: check-am --all-am: Makefile $(PROGRAMS) $(SCRIPTS) --installdirs: -- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)"; do \ -- test -z "$$dir" || $(mkdir_p) "$$dir"; \ -- done --install: install-am --install-exec: install-exec-am --install-data: install-data-am --uninstall: uninstall-am -- --install-am: all-am -- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am -- --installcheck: installcheck-am --install-strip: -- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ -- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ -- `test -z '$(STRIP)' || \ -- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install --mostlyclean-generic: -- --clean-generic: -- --distclean-generic: -- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -- --maintainer-clean-generic: -- @echo "This command is intended for maintainers to use" -- @echo "it deletes files that may require special tools to rebuild." --clean: clean-am -- --clean-am: clean-binPROGRAMS clean-generic mostlyclean-am -- --distclean: distclean-am -- -rm -rf ./$(DEPDIR) -- -rm -f Makefile --distclean-am: clean-am distclean-compile distclean-generic \ -- distclean-tags -- --dvi: dvi-am -- --dvi-am: -- --html: html-am -- --info: info-am -- --info-am: -- --install-data-am: -- --install-exec-am: install-binPROGRAMS install-sbinSCRIPTS -- --install-info: install-info-am -- --install-man: -- --installcheck-am: -- --maintainer-clean: maintainer-clean-am -- -rm -rf ./$(DEPDIR) -- -rm -f Makefile --maintainer-clean-am: distclean-am maintainer-clean-generic -- --mostlyclean: mostlyclean-am -- --mostlyclean-am: mostlyclean-compile mostlyclean-generic -- --pdf: pdf-am -- --pdf-am: -- --ps: ps-am -- --ps-am: -- --uninstall-am: uninstall-binPROGRAMS uninstall-info-am \ -- uninstall-sbinSCRIPTS -- --.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ -- clean-generic ctags distclean distclean-compile \ -- distclean-generic distclean-tags distdir dvi dvi-am html \ -- html-am info info-am install install-am install-binPROGRAMS \ -- install-data install-data-am install-exec install-exec-am \ -- install-info install-info-am install-man install-sbinSCRIPTS \ -- install-strip installcheck installcheck-am installdirs \ -- maintainer-clean maintainer-clean-generic mostlyclean \ -- mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \ -- tags uninstall uninstall-am uninstall-binPROGRAMS \ -- uninstall-info-am uninstall-sbinSCRIPTS -- --# Tell versions [3.59,3.63) of GNU make to not export all variables. --# Otherwise a system limit (for SysV at least) may be exceeded. --.NOEXPORT: -diff --git a/util/grub-crypt.in b/util/grub-crypt.in -new file mode 100644 -index 0000000..e8783c8 ---- /dev/null -+++ b/util/grub-crypt.in -@@ -0,0 +1,80 @@ -+#! /usr/bin/python -+ -+'''Generate encrypted passwords for GRUB.''' -+ -+import crypt -+import getopt -+import getpass -+import sys -+ -+def usage(): -+ '''Output usage message to stderr and exit.''' -+ print >> sys.stderr, 'Usage: grub-crypt [OPTION]...' -+ print >> sys.stderr, 'Try `$progname --help\' for more information.' -+ sys.exit(1) -+ -+def gen_salt(): -+ '''Generate a random salt.''' -+ ret = '' -+ with open('/dev/urandom', 'rb') as urandom: -+ while True: -+ byte = urandom.read(1) -+ if byte in ('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' -+ './0123456789'): -+ ret += byte -+ if len(ret) == 16: -+ break -+ return ret -+ -+def main(): -+ '''Top level.''' -+ crypt_type = '$6$' # SHA-256 -+ try: -+ opts, args = getopt.getopt(sys.argv[1:], 'hv', -+ ('help', 'version', 'md5', 'sha-256', -+ 'sha-512')) -+ except getopt.GetoptError, err: -+ print >> sys.stderr, str(err) -+ usage() -+ if args: -+ print >> sys.stderr, 'Unexpected argument `%s\'' % (args[0],) -+ usage() -+ for (opt, _) in opts: -+ if opt in ('-h', '--help'): -+ print ( -+'''Usage: grub-crypt [OPTION]... -+Encrypt a password. -+ -+ -h, --help Print this message and exit -+ -v, --version Print the version information and exit -+ --md5 Use MD5 to encrypt the password -+ --sha-256 Use SHA-256 to encrypt the password -+ --sha-512 Use SHA-512 to encrypt the password (default) -+ -+Report bugs to . -+EOF''') -+ sys.exit(0) -+ elif opt in ('-v', '--version'): -+ print 'grub-crypt (GNU GRUB @VERSION@)' -+ sys.exit(0) -+ elif opt == '--md5': -+ crypt_type = '$1$' -+ elif opt == '--sha-256': -+ crypt_type = '$5$' -+ elif opt == '--sha-512': -+ crypt_type = '$6$' -+ else: -+ assert False, 'Unhandled option' -+ password = getpass.getpass('Password: ') -+ password2 = getpass.getpass('Retype password: ') -+ if not password: -+ print >> sys.stderr, 'Empty password is not permitted.' -+ sys.exit(1) -+ if password != password2: -+ print >> sys.stderr, 'Sorry, passwords do not match.' -+ sys.exit(1) -+ salt = crypt_type + gen_salt() -+ print crypt.crypt(password, salt) -+ -+if __name__ == '__main__': -+ main() -diff --git a/util/grub-install.in b/util/grub-install.in -index 2e598b0..12539b8 100644 ---- a/util/grub-install.in -+++ b/util/grub-install.in -@@ -21,34 +21,36 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ - sbindir=@sbindir@ --libdir=@libdir@ -+datadir=@datadir@ - PACKAGE=@PACKAGE@ - VERSION=@VERSION@ - host_cpu=@host_cpu@ - host_os=@host_os@ - host_vendor=@host_vendor@ --pkglibdir=${libdir}/${PACKAGE}/${host_cpu}-${host_vendor} -+pkgdatadir=${datadir}/${PACKAGE}/${host_cpu}-${host_vendor} - - grub_shell=${sbindir}/grub --grub_set_default=${sbindir}/grub-set-default --log_file=/tmp/grub-install.log.$$ --img_file=/tmp/grub-install.img.$$ -+mdadm=${sbindir}/mdadm -+log_file=${TMPDIR:-/tmp}/grub-install.log.$$ -+img_file=${TMPDIR:-/tmp}/grub-install.img.$$ - rootdir= - grub_prefix=/boot/grub - -+install_drives= - install_device= - no_floppy= - force_lba= - recheck=no - debug=no -+justcopy=no - - # look for secure tempfile creation wrappers on this platform - if test -x /bin/tempfile; then - mklog="/bin/tempfile --prefix=grub" - mkimg="/bin/tempfile --prefix=grub" - elif test -x /bin/mktemp; then -- mklog="/bin/mktemp /tmp/grub-install.log.XXXXXX" -- mkimg="/bin/mktemp /tmp/grub-install.img.XXXXXX" -+ mklog="/bin/mktemp ${TMPDIR:-/tmp}/grub-install.log.XXXXXX" -+ mkimg="/bin/mktemp ${TMPDIR:-/tmp}/grub-install.img.XXXXXX" - else - mklog="" - mkimg="" -@@ -70,6 +72,8 @@ Install GRUB on your drive. - --force-lba force GRUB to use LBA mode even for a buggy - BIOS - --recheck probe a device map even if it already exists -+ This flag is unreliable and its use is -+ strongly discouraged. - - INSTALL_DEVICE can be a GRUB device name or a system device filename. - -@@ -96,17 +100,28 @@ convert () { - # Break the device name into the disk part and the partition part. - case "$host_os" in - linux*) -- tmp_disk=`echo "$1" | sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' \ -+ tmp_disk=`echo "$1" | grep -v '/mapper/control$' | -+ grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq | -+ sed -e 's%\([shv]d[a-z]\)[0-9]*$%\1%' \ - -e 's%\(d[0-9]*\)p[0-9]*$%\1%' \ - -e 's%\(fd[0-9]*\)$%\1%' \ - -e 's%/part[0-9]*$%/disc%' \ -- -e 's%\(c[0-7]d[0-9]*\).*$%\1%'` -- tmp_part=`echo "$1" | sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' \ -+ -e 's%\(c[0-7]d[0-9]*\).*$%\1%' \ -+ -e 's%\(/mapper/[[:alpha:]]\+[[:digit:]]\+\)p[[:digit:]]\+$%\1%' \ -+ -e 's%\(/mapper/isw_[[:alpha:]_]\+[[:alpha:]]\+[[:digit:]]\+\)p[[:digit:]]\+$%\1%' \ -+ -e 's%\(/mapper/[[:alpha:]]\+_[[:alpha:]]\+\)[[:digit:]]\+$%\1%'` -+ tmp_part=`echo "$1" | grep -v '/mapper/control$' | -+ grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq | -+ sed -e 's%.*/[shv]d[a-z]\([0-9]*\)$%\1%' \ - -e 's%.*d[0-9]*p%%' \ - -e 's%.*/fd[0-9]*$%%' \ - -e 's%.*/floppy/[0-9]*$%%' \ - -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' \ -- -e 's%.*c[0-7]d[0-9]*p%%'` -+ -e 's%.*c[0-7]d[0-9]*p%%' \ -+ -e 's%.*/mapper/[[:alpha:]]\+[[:digit:]]\+p\([[:digit:]]\+\)$%\1%' \ -+ -e 's%.*/mapper/isw_[[:alpha:]_]\+[[:alpha:]]\+[[:digit:]]\+p\([[:digit:]]\+\)$%\1%' \ -+ -e 's%.*/mapper/[[:alpha:]]\+_[[:alpha:]]\+\([[:digit:]]\+\)$%\1%' | -+ grep -v '.*/mapper/.*'` - ;; - gnu*) - tmp_disk=`echo "$1" | sed 's%\([sh]d[0-9]*\).*%\1%'` -@@ -196,7 +211,7 @@ resolve_symlink () { - while test -L $tmp_fname; do - tmp_new_fname=`ls -al $tmp_fname | sed -n 's%.*-> \(.*\)%\1%p'` - if test -z "$tmp_new_fname"; then -- echo "Unrecognized ls output" 2>&1 -+ echo "Unrecognized ls output" 1>&2 - exit 1 - fi - -@@ -211,6 +226,80 @@ resolve_symlink () { - echo "$tmp_fname" - } - -+# Usage: is_raid1_device devicename -+# Returns 0 if devicename is a raid1 md device, 1 if it is not. -+is_raid1_device () { -+ case "$host_os" in -+ linux*) -+ level=`$mdadm --query --detail $1 2>/dev/null | \ -+ awk '/Raid Level :/ {print $4}'` -+ if [ "$level" = "raid1" ]; then -+ return 0 -+ fi -+ ;; -+ esac -+ return 1 -+} -+ -+# Usage: find_real_devs device -+# Returns space separated list of devices for linux if device is -+# a raid1 device. In all other cases, the provided value is returned. -+find_real_devs () { -+ source_device=$1 -+ case "$host_os" in -+ linux*) -+ if is_raid1_device $source_device ; then -+ list="" -+ for device in `$mdadm --query --detail "${source_device}" | \ -+ awk '/\/dev\/[^(md)]/ {print $7}'` ; do -+ list="$list $device" -+ done -+ echo $list -+ return 0 -+ fi -+ ;; -+ esac -+ echo $source_device -+ return 0 -+} -+ -+# Usage: stat_device file -+# Find major:minor of a device node. -+stat_device() { -+ majmin=`stat -c "%t:%T" "$1" 2>/dev/null` -+ if test -z "$majmin"; then -+ echo "Could not find device for $1" 1>&2 -+ exit 1 -+ fi -+ -+ echo "$majmin" -+} -+ -+# Usage: find_mapper_device file -+# Find a file in /dev/mapper with the same major:minor as the specified node. -+find_mapper_device() { -+ if [ -b "$1" ]; then -+ dev="$1" -+ else -+ mntpnt=`echo "$1" | sed 's,/,\\\\/,g'` -+ dev=`awk '($2 ~ /'$mntpnt'/) { print $1 }' /etc/mtab` -+ fi -+ if test -z "$dev"; then -+ echo "Could not find device for $1" 1>&2 -+ exit 1 -+ fi -+ -+ majmin=`stat_device $dev` -+ for x in /dev/mapper/* ; do -+ devmajmin=`stat_device "$x"` -+ if [ "$majmin" == "$devmajmin" ]; then -+ echo "$x" -+ return 0 -+ fi -+ done -+ return 1 -+} -+ - # Usage: find_device file - # Find block device on which the file resides. - find_device () { -@@ -219,15 +308,55 @@ find_device () { - tmp_fname=`df $1/ | sed -n 's%.*\(/dev/[^ ]*\).*%\1%p'` - - if test -z "$tmp_fname"; then -- echo "Could not find device for $1" 2>&1 -+ echo "Could not find device for $1" 1>&2 - exit 1 - fi - -- tmp_fname=`resolve_symlink $tmp_fname` -+ ret_fname=`resolve_symlink $tmp_fname` || exit 1 -+ tmp_fname=`find_mapper_device $ret_fname` -+ if test -n "$tmp_fname"; then -+ ret_fname="$tmp_fname" -+ fi -+ -+ echo "$ret_fname" -+ return 0 -+} -+ -+copy_images() { -+ # Copy the GRUB images to the GRUB directory. -+ for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do -+ rm -f $file || exit 1 -+ done -+ for file in \ -+ ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do -+ cp -f $file ${grubdir} 1>&2 || exit 1 -+ done -+} -+ -+ -+dump_boot_block () { -+ sync -+ $grub_shell --batch $no_floppy --device-map=$device_map <$log_file -+dump ${root_drive}${tmp} ${img_file} -+quit -+EOF -+} -+ -+ -+install_boot_block () { -+ # Before all invocations of the grub shell, call sync to make sure -+ # the raw device is in sync with any bufferring in filesystems. -+ sync - -- echo "$tmp_fname" -+ # Now perform the installation. -+ $grub_shell --batch $no_floppy --device-map=$device_map <>$log_file -+root $1 -+setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $2 -+quit -+EOF - } - -+ - # Check the arguments. - for option in "$@"; do - case "$option" in -@@ -247,6 +376,8 @@ for option in "$@"; do - force_lba="--force-lba" ;; - --recheck) - recheck=yes ;; -+ --just-copy) -+ justcopy=yes ;; - # This is an undocumented feature... - --debug) - debug=yes ;; -@@ -265,12 +396,6 @@ for option in "$@"; do - esac - done - --if test "x$install_device" = x; then -- echo "install_device not specified." 1>&2 -- usage -- exit 1 --fi -- - # If the debugging feature is enabled, print commands. - if test $debug = yes; then - set -x -@@ -293,6 +418,26 @@ esac - grubdir=${bootdir}/grub - device_map=${grubdir}/device.map - -+if [ "$recheck" == "yes" ]; then -+ if grep 'mapper' ${device_map} >/dev/null; then -+ echo 'grub-install does not support reprobing of device.map when' 1>&2 -+ echo 'using a device-mapper based boot device.' 1>&2 -+ exit 1 -+ fi -+fi -+ -+# if they just want the images copied, copy the images and then exit -+if test $justcopy = yes; then -+ copy_images -+ exit 0 -+fi -+ -+if test "x$install_device" = x; then -+ echo "install_device not specified." 1>&2 -+ usage -+ exit 1 -+fi -+ - # Check if GRUB is installed. - # This is necessary, because the user can specify "grub --read-only". - set $grub_shell dummy -@@ -303,17 +448,17 @@ else - exit 1 - fi - --if test -f "$pkglibdir/stage1"; then -+if test -f "$pkgdatadir/stage1"; then - : - else -- echo "${pkglibdir}/stage1: Not found." 1>&2 -+ echo "${pkgdatadir}/stage1: Not found." 1>&2 - exit 1 - fi - --if test -f "$pkglibdir/stage2"; then -+if test -f "$pkgdatadir/stage2"; then - : - else -- echo "${pkglibdir}/stage2: Not found." 1>&2 -+ echo "${pkgdatadir}/stage2: Not found." 1>&2 - exit 1 - fi - -@@ -324,9 +469,11 @@ fi - test -d "$bootdir" || mkdir "$bootdir" || exit 1 - test -d "$grubdir" || mkdir "$grubdir" || exit 1 - -+copy_images -+ - # If --recheck is specified, remove the device map, if present. - if test $recheck = yes; then -- rm -f $device_map -+ mv $device_map ${device_map}.backup - fi - - # Create the device map file if it is not present. -@@ -336,6 +483,10 @@ else - # Create a safe temporary file. - test -n "$mklog" && log_file=`$mklog` - -+ # Before all invocations of the grub shell, call sync to make sure -+ # the raw device is in sync with any bufferring in filesystems. -+ sync -+ - $grub_shell --batch $no_floppy --device-map=$device_map <$log_file - quit - EOF -@@ -351,34 +502,60 @@ fi - tmp=`sed -n '/^([fh]d[0-9]*)/s/\(^(.*)\).*/\1/p' $device_map \ - | sort | uniq -d | sed -n 1p` - if test -n "$tmp"; then -- echo "The drive $tmp is defined multiple times in the device map $device_map" 1>&2 -+ echo "The drive $tmp is defined multiple times in the new device map." 1>&2 -+ if test $recheck = yes; then -+ echo "Reverting to backed up copy." 1>&2 -+ mv ${device_map}.backup $device_map -+ fi -+ exit 1 -+fi -+ -+# Make sure device.map has at least one hd device -+grep -q "^(hd[0-9]\+)" $device_map -+if [ "x$?" != "x0" ]; then -+ echo "No suitable drive was found in the generated device map." 1>&2 -+ if test $recheck = yes; then -+ echo "Reverting to backed up copy." 1>&2 -+ mv ${device_map}.backup $device_map -+ fi - exit 1 - fi - - # Check for INSTALL_DEVICE. - case "$install_device" in - /dev/*) -- install_device=`resolve_symlink "$install_device"` -- install_drive=`convert "$install_device"` -- # I don't know why, but some shells wouldn't die if exit is -- # called in a function. -- if test "x$install_drive" = x; then -+ install_device=`resolve_symlink "$install_device"` || exit 1 -+ for install_drive in `find_real_devs $install_device` ; do -+ install_drive=`convert $install_drive` || exit 1 -+ if is_raid1_device $install_device; then -+ install_drive=`echo $install_drive | sed 's/,[0-9]*)/)/'` -+ fi -+ if [ "x$install_drive" = "x" ]; then -+ exit 1 -+ fi -+ install_drives="${install_drives} ${install_drive}" -+ done -+ unset install_drive -+ -+ if test "x$install_drives" = x ; then - exit 1 - fi ;; - \([hf]d[0-9]*\)) -- install_drive="$install_device" ;; -+ install_drives="$install_device" ;; - [hf]d[0-9]*) - # The GRUB format with no parenthesis. -- install_drive="($install_device)" ;; -+ install_drives="($install_device)" ;; - *) - echo "Format of install_device not recognized." 1>&2 - usage - exit 1 ;; - esac - -+unset install_device -+ - # Get the root drive. --root_device=`find_device ${rootdir}` --bootdir_device=`find_device ${bootdir}` -+root_device=`find_device ${rootdir}` || exit 1 -+bootdir_device=`find_device ${bootdir}` || exit 1 - - # Check if the boot directory is in the same device as the root directory. - if test "x$root_device" != "x$bootdir_device"; then -@@ -387,15 +564,8 @@ if test "x$root_device" != "x$bootdir_device"; then - grub_prefix="/grub" - fi - --# Convert the root device to a GRUB drive. --root_drive=`convert "$root_device"` --if test "x$root_drive" = x; then -- exit 1 --fi -- --# Check if the root directory exists in the same device as the grub --# directory. --grubdir_device=`find_device ${grubdir}` -+# Check if the root directory exists in the same device as the grub directory. -+grubdir_device=`find_device ${grubdir}` || exit 1 - - if test "x$grubdir_device" != "x$root_device"; then - # For now, cannot deal with this situation. -@@ -406,61 +576,71 @@ EOF - exit 1 - fi - --# Copy the GRUB images to the GRUB directory. --for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do -- rm -f $file || exit 1 --done --for file in \ -- ${pkglibdir}/stage1 ${pkglibdir}/stage2 ${pkglibdir}/*stage1_5; do -- cp -f $file ${grubdir} || exit 1 --done -- --# Make a default file. --${grub_set_default} --root-directory=${rootdir} default -- - # Make sure that GRUB reads the same images as the host OS. - test -n "$mkimg" && img_file=`$mkimg` - test -n "$mklog" && log_file=`$mklog` - -+# There's not a real root device, so just pick the first -+if is_raid1_device $root_device ; then -+ root_device=`find_real_devs $root_device | awk '{print $1}'` -+fi -+ -+# Convert the root deviceto a GRUB drive. -+root_drive=`convert "$root_device"` || exit 1 -+if [ "x$root_drive" = x ]; then -+ exit 1 -+fi -+ - for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do - count=5 - tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"` - while test $count -gt 0; do -- $grub_shell --batch $no_floppy --device-map=$device_map <$log_file --dump ${root_drive}${tmp} ${img_file} --quit --EOF -- if grep "Error [0-9]*: " $log_file >/dev/null; then -- : -- elif cmp $file $img_file >/dev/null; then -- break -- fi -- sleep 1 -- count=`expr $count - 1` -+ dump_boot_block $root_drive $img_file -+ if grep "Error [0-9]*: " $log_file >/dev/null; then -+ : -+ else -+ # Use sha1sum instead of cmp to avoid a dependency on diffutils. -+ sha1=`sha1sum $file | cut -d' ' -f 1` -+ sha2=`sha1sum $img_file | cut -d' ' -f 1` -+ if test -f $file -a -f $img_file -a "$sha1" = "$sha2"; then -+ break -+ fi -+ fi -+ sleep 1 -+ count=`expr $count - 1` - done - if test $count -eq 0; then -- echo "The file $file not read correctly." 1>&2 -- exit 1 -+ echo "The file $file not read correctly." 1>&2 -+ exit 1 - fi - done - - rm -f $img_file - rm -f $log_file - -+if ! test -e ${grubdir}/grub.conf ; then -+ test -e ${grubdir}/menu.lst && ln -s ./menu.lst ${grubdir}/grub.conf -+fi -+ - # Create a safe temporary file. - test -n "$mklog" && log_file=`$mklog` - --# Now perform the installation. --$grub_shell --batch $no_floppy --device-map=$device_map <$log_file --root $root_drive --setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $install_drive --quit --EOF -+for install_drive in $install_drives; do -+ # Convert the root deviceto a GRUB drive. -+ root_drive=`convert "$root_device"` || exit 1 -+ if [ "x$root_drive" = x ]; then -+ exit 1 -+ fi -+ install_boot_block $root_drive $install_drive -+done - --if grep "Error [0-9]*: " $log_file >/dev/null || test $debug = yes; then -+if grep "Error [0-9]*: " $log_file >/dev/null ; then - cat $log_file 1>&2 - exit 1 - fi -+if test $debug = yes; then -+ cat $log_file 1>&2 -+fi - - rm -f $log_file - diff --git a/grub-larger-efi-stack-frame.patch b/grub-larger-efi-stack-frame.patch deleted file mode 100644 index 2f036ba..0000000 --- a/grub-larger-efi-stack-frame.patch +++ /dev/null @@ -1,70 +0,0 @@ -From: Peter Jones -Date: Mon, 14 Mar, 2011 09:29:00 -0500 -Subject: [PATCH] Use larger stack frame for x64_call[0..4]() - -This fixes rhbz# 669765 - -diff --git a/efi/x86_64/callwrap.c b/efi/x86_64/callwrap.c -index eb8fd25..bd5dd5e 100644 ---- a/efi/x86_64/callwrap.c -+++ b/efi/x86_64/callwrap.c -@@ -113,9 +113,9 @@ unsigned long long x64_call0(void *func) - register unsigned long long r10 __asm__("r10"); - register unsigned long long r11 __asm__("r11"); - __asm__ __volatile__( -- alloc_win_stack_frame(4) -+ alloc_win_stack_frame(5) - "call *%[fptr]\n\t" -- free_win_stack_frame(4) -+ free_win_stack_frame(5) - : "=a" (ret), "=c" (dummy), "=d" (dummy), - "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11) - : [fptr] "r" (func)); -@@ -130,9 +130,9 @@ unsigned long long x64_call1(void *func, unsigned long long arg1) - register unsigned long long r10 __asm__("r10"); - register unsigned long long r11 __asm__("r11"); - __asm__ __volatile__( -- alloc_win_stack_frame(4) -+ alloc_win_stack_frame(5) - "call *%[fptr]\n\t" -- free_win_stack_frame(4) -+ free_win_stack_frame(5) - : "=a" (ret), "=c" (dummy), "=d" (dummy), - "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11) - : "c" (arg1), -@@ -148,9 +148,9 @@ unsigned long long x64_call2(void *func, unsigned long long arg1, unsigned long - register unsigned long long r10 __asm__("r10"); - register unsigned long long r11 __asm__("r11"); - __asm__ __volatile__( -- alloc_win_stack_frame(4) -+ alloc_win_stack_frame(5) - "call *%[fptr]\n\t" -- free_win_stack_frame(4) -+ free_win_stack_frame(5) - : "=a" (ret), "=c" (dummy), "=d" (dummy), - "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11) - : "c" (arg1), "d" (arg2), -@@ -170,9 +170,9 @@ unsigned long long x64_call3( - register unsigned long long r10 __asm__("r10"); - register unsigned long long r11 __asm__("r11"); - __asm__ __volatile__( -- alloc_win_stack_frame(4) -+ alloc_win_stack_frame(5) - "call *%[fptr]\n\t" -- free_win_stack_frame(4) -+ free_win_stack_frame(5) - : "=a" (ret), "=c" (dummy), "=d" (dummy), - "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11) - : "c" (arg1), "d" (arg2), "r" (r8), -@@ -193,9 +193,9 @@ unsigned long long x64_call4( - register unsigned long long r10 __asm__("r10"); - register unsigned long long r11 __asm__("r11"); - __asm__ __volatile__( -- alloc_win_stack_frame(4) -+ alloc_win_stack_frame(5) - "call *%[fptr]\n\t" -- free_win_stack_frame(4) -+ free_win_stack_frame(5) - : "=a" (ret), "=c" (dummy), "=d" (dummy), - "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11) - : "c" (arg1), "d" (arg2), "r" (r8), "r" (r9), diff --git a/grub.spec b/grub.spec deleted file mode 100644 index 997242f..0000000 --- a/grub.spec +++ /dev/null @@ -1,735 +0,0 @@ -Name: grub -Version: 0.97 -Release: 91%{?dist} -Epoch: 1 -Summary: Grand Unified Boot Loader. -Group: System Environment/Base -License: GPLv2+ - -ExclusiveArch: i686 x86_64 ia64 -BuildRequires: binutils >= 2.9.1.0.23, ncurses-devel, ncurses-static, texinfo -BuildRequires: autoconf /usr/lib/crt1.o automake -BuildRequires: gnu-efi >= 3.0e-9 -BuildRequires: glibc-static -BuildRequires: git -Requires(post): /sbin/install-info -Requires(preun): /sbin/install-info -Requires: coreutils -Requires: system-logos -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -Conflicts: grub2 - -URL: http://www.gnu.org/software/%{name}/ -Source0: ftp://alpha.gnu.org/gnu/%{name}/%{name}-%{version}.tar.gz - -# This is from -# http://git.kernel.org/?p=boot/grub-fedora/grub-fedora.git;a=summary -Patch0: grub-fedora-18.patch -Patch1: 0001-Fix-strange-compilation-problem.patch - -%description -GRUB (Grand Unified Boot Loader) is an experimental boot loader -capable of booting into most free operating systems - Linux, FreeBSD, -NetBSD, GNU Mach, and others as well as most commercial operating -systems. - -%package efi -Summary: GRUB bootloader for EFI systems -Group: System Environment/Base -Obsoletes: grub < 1:0.97-83 - -%description efi -GRUB for EFI systems is a bootloader used to boot EFI systems. - -%prep -%setup -q -git init -git config user.email "pjones@fedoraproject.org" -git config user.name "Fedora Ninjas" -git add . -git commit -a -q -m "%{version} baseline." -git am %{patches} - -# Modify grub to show the full version number -sed -i 's/0\.97/%{version}-%{release}/' configure.in - -%build -autoreconf -autoconf -GCCVERS=$(gcc --version | head -1 | cut -d\ -f3 | cut -d. -f1) -CFLAGS="-O0 -g -fno-reorder-functions -fno-strict-aliasing -Wall -Werror -Wno-shadow -Wno-unused" -if [ "$GCCVERS" == "4" ]; then - CFLAGS="$CFLAGS -Wno-pointer-sign" -fi -export CFLAGS -%configure --sbindir=/sbin --disable-auto-linux-mem-opt --datarootdir=%{_datadir} --with-platform=efi -make -mv efi/grub.efi . -make clean -autoreconf -autoconf -CFLAGS="$CFLAGS -static" -export CFLAGS -%configure --sbindir=/sbin --disable-auto-linux-mem-opt --datarootdir=%{_datadir} -make - -%install -rm -fr $RPM_BUILD_ROOT -%makeinstall sbindir=${RPM_BUILD_ROOT}/sbin -mkdir -p ${RPM_BUILD_ROOT}/boot/grub -mkdir -m 0755 -p ${RPM_BUILD_ROOT}/boot/efi/EFI/redhat/ -install -m 755 grub.efi ${RPM_BUILD_ROOT}/boot/efi/EFI/redhat/grub.efi - -rm -f ${RPM_BUILD_ROOT}/%{_infodir}/dir - -%clean -rm -fr $RPM_BUILD_ROOT - -%post -if [ "$1" = 1 ]; then - /sbin/install-info --info-dir=%{_infodir} %{_infodir}/grub.info.gz || : - /sbin/install-info --info-dir=%{_infodir} %{_infodir}/multiboot.info.gz || : -fi - -%preun -if [ "$1" = 0 ] ;then - /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/grub.info.gz || : - /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/multiboot.info.gz || : -fi - -%files -%defattr(-,root,root) -%doc AUTHORS ChangeLog NEWS README COPYING TODO docs/menu.lst -/boot/grub -/sbin/grub -/sbin/grub-install -/sbin/grub-terminfo -/sbin/grub-md5-crypt -/sbin/grub-crypt -%{_bindir}/mbchk -%{_infodir}/grub* -%{_infodir}/multiboot* -%{_mandir}/man*/* -%{_datadir}/grub - -%files efi -%defattr(-,root,root) -%attr(0755,root,root)/boot/efi/EFI/redhat -/sbin/grub-terminfo -/sbin/grub-md5-crypt -/sbin/grub-crypt - -%changelog -* Wed Apr 18 2012 Peter Jones - 0.97-91 -- Disable Broadcom network devices on Apple hardware (mjg59) - -* Mon Apr 16 2012 Peter Jones - 0.97-90 -- Add symbolic link support for the uefi filesystem (mjg59) - -* Fri Apr 13 2012 Peter Jones - 0.97-89 -- Workaround Apple CD oddities (mjg59) - -* Tue Mar 27 2012 Peter Jones - 0.97-88 -- Add directory listing to uefifs -- Add -fno-reorder-functions for EFI builds -- Clean up if EFI graphics init fails -- Avoid crash if there's no pxe handles -- fix efigraph allocation error -- Check harder for GPT -- Relocate the kernel properly -- Limit PCI root conf access to Intel -- Fix uefifs case-sensitivity issue - -* Tue Feb 14 2012 Peter Jones - 0.97-87 -- Fix TFTP booting on systems with multiple NICs -- Fix ISO size calculation when not on an optical disc. - -* Thu Feb 09 2012 Peter Jones - 0.97-86 -- Add EFI filesystem stuff for mac booting. - -* Fri Jan 13 2012 Fedora Release Engineering - 1:0.97-85 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Wed Oct 26 2011 Fedora Release Engineering - 1:0.97-84 -- Rebuilt for glibc bug#747377 - -* Wed Oct 12 2011 Adam Williamson - 0.97-83 -- the obsolete doesn't work as phrased in -82, make it correct and - specific - -* Wed Oct 12 2011 Peter Jones - 0.97-82 -- grub-efi also needs to obsolete grub. - -* Tue Oct 11 2011 Peter Jones - 0.97-81 -- We don't need the conflicts with grub2 any more since grub2 has an - obsolete. - -* Tue Oct 04 2011 Peter Jones - 0.97-80 -- Separate grub-efi into a separate subpackage - Resolves: rhbz#743376 - -* Wed Sep 28 2011 Peter Jones - 0.97-79 -- Fix compile problem - Related: rhbz#741781 - -* Tue Sep 27 2011 Peter Jones - 0.97-78 -- Fall back to old efi GOP detection behavior. - Resolves: rhbz#741781 - -* Thu Aug 25 2011 Peter Jones - 0.97-77 -- Update to kernel.org fedora-16 branch - - Add findiso command - - Add support for providing legacy graphics rom support - - Fix locate_device_path - - Add support for finding the parent device in a device path - - Add mechanism for getting runtime pages - - Add support for the PCI and PCI root bridge IO protocols - - Merge -76 changes upstream. - -* Wed Aug 17 2011 Peter Jones - 0.97-76 -- Fix stack alignment on UEFI machines (replaces patch in -74) - Resolves: rhbz#677468 -- Allow booting from higher drive numbers - Resolves: rhbz#671355 -- Conflict with grub2 - -* Mon Jun 06 2011 Peter Jones - 0.97-75 -- Update to Fedora-16 branch. -- This has the commit from 0.97-74 reverted. - -* Mon Mar 14 2011 Peter Jones - 0.97-74 -- Fix stack alignment in UEFI calls (Patch from Stuart Hayes) (#677468) - -* Fri Mar 11 2011 Lubomir Rintel - 1:0.97-73 -- Support flat file installs (#681787) -- Fix Rawhide build - -* Wed Feb 09 2011 Fedora Release Engineering - 1:0.97-72 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Thu Dec 02 2010 Peter Jones - 0.97-71 -- Boot from disks with 4kB sectors on UEFI. - -* Thu Oct 07 2010 Peter Jones - 0.97-68 -- Handle tftp implementations that don't do TFTP_GET_FILE_SIZE correctly - -* Tue Aug 31 2010 Peter Jones - 0.97-68 -- Fix "device" command parsing bug. - Resolves: rhbz#626447 - -* Thu Aug 19 2010 Peter Jones - 0.97-67 -- When the EFI memory map is too large, copy the parts we can to e820 - Resolves: rhbz#624806 -- Add version command (bcl) - Resolves: rhbz#621989 - -* Wed Aug 04 2010 Peter Jones - 0.97-66 -- Draw the inverted line correctly in the menu - Resolves: rhbz#613153 -- Don't fail to boot on UEFI when the memory map changes (shayes) - Resolves: rhbz#607213 -- Allow drive remaping in UEFI mode so ordering changes don't cause failure - Resolves: rhbz#598572 - -* Tue Mar 09 2010 Peter Jones - 0.97-65 -- Add sha256 support to grub's password options (mitr) - Resolves: rhbz#553741 - -* Tue Jan 05 2010 Peter Jones - 0.97-64 -- Propogate the fix for the version number mishap in the F-12 tree to here... - -* Tue Jan 05 2010 Peter Jones - 0.97-63 -- Clear the screen when the timeout finishes, not just if verbose is set. - Patch from Eelko Berkenpies. - Resolves: rhbz#473319 - -* Fri Nov 13 2009 Peter Jones - 0.97-62 -- Update relocatable kernel support for UEFI/x86_64 . - Related: rhbz #476230 -- grub-0.97-gate-a20.patch: Patch from Suse. Make really, really sure that - A20 is behaving itself. (mjg) -- add "silent" option (mjg) -- Rework EFI Graphics Output Protocol mode selection. - -* Fri Nov 13 2009 Peter Jones - 0.97-61 -- This was a mistake in CVS. - -* Wed Sep 16 2009 Peter Jones - 0.97-60 -- Fix a typo introduced in grub-fedora-9.patch that may effect UEFI - Graphics Output Protocol. - -* Thu Aug 20 2009 Peter Jones - 0.97-59 -- Correctly link against gnuefi. - -* Tue Aug 11 2009 Peter Jones - 0.97-58 -- Dynamically choose load address for bzimage on 64-bit UEFI. - -* Mon Jul 27 2009 Hans de Goede - 0.97-57 -- Fix building with new rpm (with auto buildroot cleaning) -- Update Exclusive arch for F-12 i586 -> i686 change - -* Mon Jul 27 2009 Hans de Goede - 0.97-56 -- Actually apply support for partitionable md devices patch (#503698) - -* Fri Jul 24 2009 Fedora Release Engineering - 0.97-55 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Fri Jul 10 2009 Peter Jones - 0.97-54 -- Add support for partitionable md devices. - -* Tue Jun 30 2009 Peter Jones - 0.97-53 -- Don't assume that gcc provides us with writable strings in the xfs driver - -* Mon Jun 29 2009 Peter Jones - 0.97-52 -- Add ext4 support (#486284) - -* Thu Jun 04 2009 Peter Jones - 0.97-51 -- Fix memory corruptor in "setup" command. (#496093) - -* Wed Apr 29 2009 Peter Jones - 0.97-50 -- Handle virtio_blk disks and their crazy new device name in grub-install - (rhbz#479760) - -* Thu Apr 16 2009 Peter Jones - 0.97-49 -- Fix efi booting on machines with continguous memory regions across - the 1G boundary. - -* Thu Apr 09 2009 Peter Jones - 0.97-48 -- remove test message Re: using network drive or not. - -* Tue Apr 07 2009 Peter Jones - 0.97-47 -- Add more filenames to the tftp config file search list -- Tweak FAT filename comparison... -- Vomit. - -* Mon Apr 06 2009 Peter Jones - 0.97-46 -- Update gnu-efi buildreq. -- Fix up pxe code for i386 - -* Fri Apr 03 2009 Peter Jones - 0.97-45 -- Add very basic PXE support for EFI. - -* Mon Mar 30 2009 Matthew Garrett - 0.97-44 -- Recognise the 0xef partition type - -* Wed Mar 11 2009 Peter Jones - 0.97-43 -- Use blt operations instead of memmove() on Efi Graphics Protocol systems. - -* Tue Mar 03 2009 Peter Jones - 0.97-42 -- Switch from i386 to i586. -- BuildReq on glibc-static. - -* Mon Mar 02 2009 Peter Jones - 0.97-41 -- Fix CD Booting on EFI. -- Fix XFS build on x86_64. - -* Tue Feb 24 2009 Fedora Release Engineering - 0.97-40 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Fri Feb 13 2009 Peter Jones - 0.97-39 -- Remove chainloader timeout patch; fixing it in booty instead in order to - address rhbz#468526 . -- Fix up some style weirdness in the .spec -- Require newer gnu-efi so it'll build with newer binutils. - -* Sun Jan 11 2009 Lubomir Rintel - 0.97-37 -- Get rid of /usr/bin/cmp dependency (Ville Skyttä, #431351) -- Support multiple initrds (Jeff Layton, #179127) -- Obey 2.06 boot protocol's cmdline_size (Lubomir Rintel, #327541) - -* Wed Oct 22 2008 Peter Jones - 0.97-36 -- Add force-chainloader patch from rstrode (rhbz #458576) - -* Tue Oct 07 2008 Peter Jones - 0.97-35 -- Add dep on newer gnu-efi. - -* Wed Jun 25 2008 Peter Jones - 0.97-34 -- Add keystatus patch from krh. - -* Mon Apr 07 2008 Peter Jones - 0.97-33 -- Rewrite ia32 efi call wrapper to make the makefile simpler. - -* Tue Apr 01 2008 Peter Jones - 0.97-32 -- Add graphics debug mode -- Fix screen geometry variable passing -- Fix broken efi call wrapper on x86_64 so UGA works there. - -* Thu Mar 20 2008 Peter Jones - 0.97-31 -- Fix efifb setup. - -* Wed Mar 19 2008 Peter Jones - 0.97-30 -- Fix the bootloader for ANOTHER random kernel ABI change on EFI+x86_64. - -* Tue Mar 18 2008 Peter Jones - 0.97-29 -- Remove all the prot_mode_mem code from EFI loader on x86_64. - -* Thu Mar 06 2008 Peter Jones - 0.97-28 -- Fix FAT/VFAT directory searching. -- Don't artificially limit the kernel's location to lowmem. - -* Wed Mar 05 2008 Peter Jones - 0.97-27 -- Fix permissions on grub.efi so cpio doesn't error when it's on vfat. - -* Tue Mar 04 2008 Peter Jones - 0.97-26 -- Move grub.efi to a more useful location. - -* Wed Feb 27 2008 Peter Jones - 0.97-25 -- Fix memory allocation bug in EFI on i386 and x86_64. - -* Wed Feb 27 2008 Peter Jones - 0.97-24 -- Fix build of xfs code on amd64. - -* Wed Feb 27 2008 Peter Jones - 0.97-23 -- Enable EFI on i386, update to newest git head. - -* Tue Feb 19 2008 Fedora Release Engineering - 0.97-22 -- Autorebuild for GCC 4.3 - -* Fri Jan 25 2008 Jesse Keating - 0.97-21 -- Add a patch from esandeen to support booting from 256byte inodes. - -* Mon Nov 05 2007 Peter Jones - 0.97-20 -- Add EFI support from Intel on x86_64 - -* Thu Sep 20 2007 Peter Jones - 0.97-19 -- Fix dmraid detection on Intel (isw) controllers in grub-install . - -* Wed Aug 22 2007 Peter Jones - 0.97-18 -- Fix license tag. - -* Mon Aug 20 2007 Peter Jones - 0.97-17 -- Use --build-id=none instead of stripping out the build-id notes in the - first and second stage loaders. - -* Tue Aug 7 2007 Peter Jones - 0.97-16 -- Add ext[23] large inode support (patch from Eric Sandeen) -- Fix auto* breakage that happened when we switched from autoreconf to autoconf -- Move to original tarball + patch generated from git - -* Mon Jul 16 2007 Peter Jones - 0.97-15 -- Support booting from GPT - -* Fri Feb 23 2007 Bill Nottingham - 0.97-14 -- fix scriplet errors when installed with --nodocs -- coax grub into building (-ltinfo, autoconf instead of autoreconf) - -* Sun Oct 01 2006 Jesse Keating - 0.97-13 -- rebuilt for unwind info generation, broken in gcc-4.1.1-21 - -* Thu Sep 21 2006 Peter Jones - 0.97-12 -- Reenable patch 505, which fixes #116311 - -* Tue Aug 15 2006 Peter Jones - 0.97-11 -- Disable patch 505 (#164497) - -* Wed Aug 2 2006 Peter Jones - 0.97-10 -- Fix grub-install for multipath - -* Wed Jul 12 2006 Jesse Keating - 0.97-9.1 -- rebuild - -* Fri Jul 7 2006 Peter Jones - 0.97-9 -- fix broken error reporting from helper functions - -* Mon Jun 12 2006 Peter Jones - 0.97-8 -- Fix BIOS keyboard handler to use extended keyboard interrupts, so the - Mac Mini works. - -* Mon Jun 5 2006 Jesse Keating - 0.97-7 -- Added BuildRequires on a 32bit library - -* Sat May 27 2006 Peter Jones - 0.97-6 -- Fix mactel keyboard problems, patch from Juergen Keil, forwarded by Linus. - -* Mon Mar 13 2006 Peter Jones - 0.97-5 -- Fix merge error for "bootonce" patch (broken in 0.95->0.97 update) -- Get rid of the 0.97 "default" stuff, since it conflicts with our working - method. - -* Mon Mar 9 2006 Peter Jones - 0.97-4 -- Fix running "install" multiple times on the same fs in the same invocation - of grub. (bz #158426 , patch from lxo@redhat.com) - -* Mon Feb 13 2006 Peter Jones - 0.97-3 -- fix partition names on dmraid - -* Tue Feb 07 2006 Jesse Keating - 0.97-2.1 -- rebuilt for new gcc4.1 snapshot and glibc changes - -* Fri Jan 13 2006 Peter Jones - 0.97-2 -- add dmraid support - -* Wed Dec 14 2005 Peter Jones - 0.97-1 -- update to grub 0.97 - -* Mon Dec 5 2005 Peter Jones - 0.95-17 -- fix configure conftest.c bugs -- add -Wno-unused to defeat gcc41 "unused" checking when there are aliases. - -* Mon Aug 1 2005 Peter Jones - 0.95-16 -- minor fix to the --recheck fix. - -* Mon Jul 25 2005 Peter Jones 0.95-15 -- Make "grub-install --recheck" warn the user about how bad it is, - and keep a backup file, which it reverts to upon detecting some errors. - -* Wed Jul 6 2005 Peter Jones 0.95-14 -- Fix changelog to be UTF-8 - -* Thu May 19 2005 Peter Jones 0.95-13 -- Make the spec work with gcc3 and gcc4, so people can test on existing - installations. -- don't treat i2o like a cciss device, since its partition names aren't done - that way. (#158158) - -* Wed Mar 16 2005 Peter Jones 0.95-12 -- Make installing on a partition work again when not using raid - -* Thu Mar 3 2005 Peter Jones 0.95-11 -- Make it build with gcc4 - -* Sun Feb 20 2005 Peter Jones 0.95-10 -- Always install in MBR for raid1 /boot/ - -* Sun Feb 20 2005 Peter Jones 0.95-9 -- Always use full path for mdadm in grub-install - -* Tue Feb 8 2005 Peter Jones 0.95-8 -- Mark the simulation stack executable -- Eliminate the use of inline functions in stage2/builtins.c - -* Wed Jan 11 2005 Peter Jones 0.95-7 -- Make grub ignore everything before the XPM header in the splash image, - fixing #143879 -- If the boot splash image is missing, use console mode instead - of graphics mode. -- Don't print out errors using the graphics terminal code if we're not - actually in graphics mode. - -* Mon Jan 3 2005 Peter Jones 0.95-6 -- reworked much of how the RAID1 support in grub-install works. This version - does not require all the devices in the raid to be listed in device.map, - as long as you specify a physical device or partition rather than an md - device. It should also work with a windows dual-boot on the first partition. - -* Fri Dec 17 2004 Peter Jones 0.95-5 -- added support for RAID1 devices to grub-install, partly based on a - patch from David Knierim. (#114690) - -* Tue Nov 30 2004 Jeremy Katz 0.95-4 -- add patch from upstream CVS to handle sparse files on ext[23] -- make geometry detection a little bit more robust/correct -- use O_DIRECT when reading/writing from devices. use aligned buffers as - needed for read/write (#125808) -- actually apply the i2o patch -- detect cciss/cpqarray devices better (#123249) - -* Thu Sep 30 2004 Jeremy Katz - 0.95-3 -- don't act on the keypress for the menu (#134029) - -* Mon Jun 28 2004 Jeremy Katz - 0.95-2 -- add patch from Nicholas Miell to make hiddenmenu work more - nicely with splashimage mode (#126764) - -* Fri Jun 18 2004 Jeremy Katz - 0.95-1 -- update to 0.95 -- drop emd patch, E-MD isn't making forward progress upstream -- fix static build for x86_64 (#121095) - -* Tue Jun 15 2004 Elliot Lee -- rebuilt - -* Wed Jun 9 2004 Jeremy Katz -- require system-logos (#120837) - -* Fri Jun 4 2004 Jeremy Katz -- buildrequire automake (#125326) - -* Thu May 06 2004 Warren Togami - 0.94-5 -- i2o patch from Markus Lidel - -* Wed Apr 14 2004 Jeremy Katz - 0.94-4 -- read geometry off of the disk since HDIO_GETGEO doesn't actually - return correct data with a 2.6 kernel - -* Fri Mar 12 2004 Jeremy Katz -- add texinfo buildrequires (#118146) - -* Wed Feb 25 2004 Jeremy Katz 0.94-3 -- don't use initrd_max_address - -* Fri Feb 13 2004 Elliot Lee 0.94-2 -- rebuilt - -* Thu Feb 12 2004 Jeremy Katz 0.94-1 -- update to 0.94, patch merging and updating as necessary - -* Sat Jan 3 2004 Jeremy Katz 0.93-8 -- new bootonce patch from Padraig Brady so that you don't lose - the old default (#112775) - -* Mon Nov 24 2003 Jeremy Katz -- add ncurses-devel as a buildrequires (#110732) - -* Tue Oct 14 2003 Jeremy Katz 0.93-7 -- rebuild - -* Wed Jul 2 2003 Jeremy Katz -- Requires: /usr/bin/cmp (#98325) - -* Thu May 22 2003 Jeremy Katz 0.93-6 -- add patch from upstream to fix build with gcc 3.3 - -* Wed Apr 2 2003 Jeremy Katz 0.93-5 -- add patch to fix support for serial terminfo (#85595) - -* Wed Jan 22 2003 Tim Powers -- rebuilt - -* Fri Jan 17 2003 Jeremy Katz 0.93-3 -- add patch from HJ Lu to support large disks (#80980, #63848) -- add patch to make message when ending edit clearer (#53846) - -* Sun Dec 29 2002 Jeremy Katz 0.93-2 -- add a patch to reset the terminal type to console before doing 'boot' from - the command line (#61069) - -* Sat Dec 28 2002 Jeremy Katz 0.93-1 -- update to 0.93 -- update configfile patch -- graphics patch rework to fit in as a terminal type as present in 0.93 -- use CFLAGS="-Os -g" -- patch configure.in to allow building if host_cpu=x86_64, include -m32 in - CFLAGS if building on x86_64 -- link glibc static on x86_64 to not require glibc32 -- include multiboot info pages -- drop obsolete patches, reorder remaining patches into some semblance of order - -* Thu Sep 5 2002 Jeremy Katz 0.92-7 -- splashscreen is in redhat-logos now - -* Tue Sep 3 2002 Jeremy Katz 0.92-6 -- update splashscreen again - -* Mon Sep 2 2002 Jeremy Katz 0.92-5 -- update splashscreen - -* Fri Jun 21 2002 Tim Powers 0.92-4 -- automated rebuild - -* Thu May 23 2002 Tim Powers 0.92-3 -- automated rebuild - -* Fri May 3 2002 Jeremy Katz 0.92-2 -- add patch from Grant Edwards to make vga16 + serial happier (#63491) - -* Wed May 1 2002 Jeremy Katz 0.92-1 -- update to 0.92 -- back to autoreconf -- make it work with automake 1.6/autoconf 2.53 -- use "-falign-jumps=1 -falign-loops=1 -falign-functions=1" instead of - "-malign-jumps=1 -malign-loops=1 -malign-functions=1" to not use - deprecated gcc options - -* Tue Apr 9 2002 Jeremy Katz 0.91-4 -- new splash screen - -* Fri Mar 8 2002 Jeremy Katz 0.91-3 -- include patch from Denis Kitzmen to fix typo causing several options to - never be defined (in upstream CVS) -- include patch from upstream CVS to make displaymem always use hex for - consistency -- add patch from GRUB mailing list from Keir Fraser to add a --once flag to - savedefault function so that you can have the equivalent of lilo -R - functionality (use 'savedefault --default=N --once' from the grub shell) -- back to autoconf - -* Sun Jan 27 2002 Jeremy Katz -- change to use $grubdir instead of /boot/grub in the symlink patch (#58771) - -* Fri Jan 25 2002 Jeremy Katz 0.91-2 -- don't ifdef out the auto memory passing, use the configure flag instead -- add a patch so that grub respects mem= from the kernel command line when - deciding where to place the initrd (#52558) - -* Mon Jan 21 2002 Jeremy Katz 0.91-1 -- update to 0.91 final -- add documentation on splashimage param (#51609) - -* Wed Jan 2 2002 Jeremy Katz 0.91-0.20020102cvs -- update to current CVS snapshot to fix some of the hangs on boot related - to LBA probing (#57503, #55868, and others) - -* Fri Dec 21 2001 Erik Troan 0.90-14 -- fixed append patch to not require arguments to begin with -- changed to autoreconf from autoconf - -* Wed Oct 31 2001 Jeremy Katz 0.90-13 -- include additional patch from Erich to add sync calls in grub-install to - work around updated images not being synced to disk -- fix segfault in grub shell if 'password --md5' is used without specifying - a password (#55008) - -* Fri Oct 26 2001 Jeremy Katz 0.90-12 -- Include Erich Boleyn 's patch to disconnect from the - BIOS after APM operations. Should fix #54375 - -* Wed Sep 12 2001 Erik Troan -- added patch for 'a' option in grub boot menu - -* Wed Sep 5 2001 Jeremy Katz 0.90-11 -- grub-install: if /boot/grub/grub.conf doesn't exist but /boot/grub/menu.lst - does, create a symlink - -* Fri Aug 24 2001 Jeremy Katz -- pull in patch from upstream CVS to fix md5crypt in grub shell (#52220) -- use mktemp in grub-install to avoid tmp races - -* Fri Aug 3 2001 Jeremy Katz -- link curses statically (#49519) - -* Thu Aug 2 2001 Jeremy Katz -- fix segfault with using the serial device before initialization (#50219) - -* Thu Jul 19 2001 Jeremy Katz -- add --copy-only flag to grub-install - -* Thu Jul 19 2001 Jeremy Katz -- copy files in grub-install prior to device probe - -* Thu Jul 19 2001 Jeremy Katz -- original images don't go in /boot and then grub-install does the right - thing - -* Thu Jul 19 2001 Jeremy Katz -- fix the previous patch -- put the password prompt in the proper location - -* Thu Jul 19 2001 Jeremy Katz -- reset the screen when the countdown is cancelled so text will disappear - in vga16 mode - -* Mon Jul 16 2001 Jeremy Katz -- change configfile defaults to grub.conf - -* Sun Jul 15 2001 Jeremy Katz -- updated to grub 0.90 final - -* Fri Jul 6 2001 Matt Wilson -- modifed splash screen to a nice shade of blue - -* Tue Jul 3 2001 Matt Wilson -- added a first cut at a splash screen - -* Sun Jul 1 2001 Nalin Dahyabhai -- fix datadir mismatch between build and install phases - -* Mon Jun 25 2001 Jeremy Katz -- update to current CVS -- forward port VGA16 patch from Paulo César Pereira de - Andrade -- add patch for cciss, ida, and rd raid controllers -- don't pass mem= to the kernel - -* Wed May 23 2001 Erik Troan -- initial build for Red Hat diff --git a/sources b/sources deleted file mode 100644 index 7043a2b..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -cd3f3eb54446be6003156158d51f4884 grub-0.97.tar.gz