1 From: Peter Jones <pjones@redhat.com>"
2 Date: Wed Apr 18 12:53:49 EDT 2012
3 Subject: [PATCH] Changes from grub-0.97 to master
5 This patch is a bundle of the changes between grub-0.97 and master.
6 It can be reginerated from the git repository at:
8 git://github.com/vathpela/grub-fedora.git
12 git diff grub-0.97 master
19 aclocal.m4 | 1061 -----
21 configure | 7639 -----------------------------------------
25 docs/Makefile.in | 770 ----
26 docs/grub-crypt.8 | 39
27 docs/grub-install.8 | 2
29 docs/grub.info | 370 +
37 efi/efichainloader.c | 265 +
40 efi/efidisk.c | 801 ++++
41 efi/efidp.c | 999 +++++
42 efi/efigraph.c | 1501 ++++++++
44 efi/efimisc.c | 665 +++
46 efi/efiserial.c | 265 +
48 efi/efiuga.c | 982 +++++
49 efi/font_8x16.c | 4638 ++++++++++++++++++++++++
50 efi/graphics.c | 666 +++
52 efi/grub/.gitignore | 1
53 efi/grub/efi/api.h | 1716 +++++++++
54 efi/grub/efi/console_control.h | 59
55 efi/grub/efi/efi.h | 85
56 efi/grub/efi/eficall.h | 162
57 efi/grub/efi/misc.h | 60
58 efi/grub/efi/time.h | 31
59 efi/grub/i386/linux.h | 226 +
60 efi/grub/i386/types.h | 32
62 efi/grub/symbol.h | 34
63 efi/grub/types.h | 158
64 efi/grub/x86_64/linux.h | 234 +
65 efi/grub/x86_64/types.h | 32
66 efi/ia32/callwrap.S | 1
67 efi/ia32/callwrap.c | 131
68 efi/ia32/loader/bin_to_h.c | 29
69 efi/ia32/loader/linux.c | 648 +++
70 efi/ia32/loader/switch.S | 118
71 efi/ia32/loader/switch.h | 19
73 efi/ia32/setjmp.S | 86
76 efi/ugadebug.h | 201 +
77 efi/x86_64/callwrap.S | 274 +
78 efi/x86_64/crt0-efi.S | 63
79 efi/x86_64/elf_efi.lds | 58
80 efi/x86_64/loader/Makefile | 20
81 efi/x86_64/loader/bin_to_h.c | 29
82 efi/x86_64/loader/linux.c | 760 ++++
83 efi/x86_64/loader/switch.S | 92
84 efi/x86_64/loader/switch.h | 25
85 efi/x86_64/reloc.c | 79
86 efi/x86_64/setjmp.S | 56
92 grub/Makefile.in | 445 --
93 grub/asmstub.c | 194 -
97 lib/Makefile.in | 416 --
100 netboot/.gitignore | 2
101 netboot/Makefile.in | 1091 -----
102 netboot/etherboot.h | 34
106 stage1/.gitignore | 2
107 stage1/Makefile.am | 15
108 stage1/Makefile.in | 433 --
110 stage2/.gitignore | 5
111 stage2/Makefile.am | 77
112 stage2/Makefile.in | 3250 -----------------
115 stage2/builtins.c | 1368 +++++--
116 stage2/char_io.c | 609 ++-
117 stage2/cmdline.c | 19
119 stage2/disk_io.c | 213 -
120 stage2/efistubs.c | 7
121 stage2/efistubs.h | 8
123 stage2/filesys.h | 28
124 stage2/fsys_ext2fs.c | 394 +-
125 stage2/fsys_fat.c | 41
126 stage2/fsys_iso9660.c | 8
127 stage2/fsys_jfs.c | 12
128 stage2/fsys_minix.c | 10
129 stage2/fsys_reiserfs.c | 44
130 stage2/fsys_uefi.c | 265 +
131 stage2/fsys_vstafs.c | 28
132 stage2/fsys_xfs.c | 22
134 stage2/graphics.c | 573 +++
135 stage2/graphics.h | 42
139 stage2/pc_slice.h | 51
141 stage2/sha256crypt.c | 723 +++
142 stage2/sha512crypt.c | 795 ++++
143 stage2/shared.h | 126
144 stage2/smp-imps.h | 1
145 stage2/stage1_5.c | 3
146 stage2/stage2.c | 203 -
152 util/Makefile.am | 11
153 util/Makefile.in | 478 --
154 util/grub-crypt.in | 80
155 util/grub-install.in | 334 +
156 142 files changed, 26410 insertions(+), 17652 deletions(-)
158 diff --git a/.gitignore b/.gitignore
160 index 0000000..3d7295a
174 diff --git a/ChangeLog b/ChangeLog
175 index 0f93033..9602fb9 100644
179 DATA_LEN is less than or equal to MULTIBOOT_SEARCH.
180 Reported by Neelkanth Natu <neelnatu@yahoo.com>.
182 +2003-03-12 Leonid Lisovskiy <lly@pisem.net>
184 + * lib/device.c (get_drive_geometry): grub utility didn't work
185 + due to uninitialized 'sector_size' struct geometry member.
186 + * stage1/stage1.h (GRUB_NO_DRIVE): Constant moved from
187 + stage2/shared.h and its value rolled back to 0xFF for backward
188 + compatibility with original grub.
189 + * stage1/stage1.S (boot_drive): Use GRUB_NO_DRIVE instead of
191 + * stage2/bios.c (get_diskinfo): Workaround for BIOS'es that
192 + has CD-ROM drive number = last harddisk + 1.
194 2003-03-10 Yoshinori K. Okuji <okuji@enbug.org>
196 From Andrew Walrond <andrew@walrond.org>:
198 thus corrupts the stack. This is why we specify the exactly
199 necessary size of 0x42 bytes.
201 +2003-01-28 Leonid Lisovskiy <lly@pisem.net>
203 + ISO9660 support is added.
205 + * stage2/fsys_iso9660.c: New file - a lot of code stolen from
207 + * stage2/iso9660.h: Likewise.
208 + * stage2/start_torito.S: New file - El Torito boot sector.
209 + * stage2/Makefile.am (noinst_HEADERS): iso9660.h added.
210 + (libgrub_a_SOURCES): fsys_iso9660.c added.
211 + (pkgdata_DATA): iso9660_stage1_5 added.
212 + (noinst_PROGRAMS): iso9660_stage1_5.exec added.
213 + * configure.in (--disable-iso9660): New option.
214 + * stage2/builtins.c (setup_func): Add item for ISO9660 into
216 + * stage2/disk_io.c (rawread): Ability to read devices with
217 + sector size other than 512 added.
218 + (fsys_table): Added entry for ISO9660.
219 + (check_and_print_mount): Don't print error when probing
221 + (real_open_partition): Cleanup globals after probing.
222 + * stage2/filesys.h [FSYS_ISO9660]: Add entries for ISO9660
224 + (NUM_FSYS): Added FSYS_ISO9660_NUM.
225 + * stage2/shared.h (STAGE2_ID_ISO9660_STAGE1_5): New macro.
226 + (GRUB_NO_DRIVE): New constant.
227 + (struct geometry): New member 'sector_size'.
228 + * stage2/bios.c (get_diskinfo): Request 1.xx version of
229 + int13 extensions only since higher version request can
230 + destroy El Torito emulation on some BIOS'es.
231 + (get_cdinfo): New function - get El Torito emulation parameters.
232 + * stage2/asm.S (biosdisk_int13_extensions): pass AX, instead
233 + of AH for universality, save EBX,ECX,EDX registers content to
234 + avoid data corruption in caller functions.
235 + (get_diskinfo_int13_extensions): Removed.
237 2003-01-25 Yoshinori K. Okuji <okuji@enbug.org>
239 From Steven Dick <ssd.gnu@mmae.ucf.edu>:
240 diff --git a/Makefile.am b/Makefile.am
241 index 63a9a4f..9bde872 100644
245 # Do not change this order if you don't know what you are doing.
246 AUTOMAKE_OPTIONS = 1.7 gnu
247 -SUBDIRS = netboot stage2 stage1 lib grub util docs
248 +SUBDIRS = netboot stage2 stage1 lib util docs
254 EXTRA_DIST = BUGS MAINTENANCE
255 diff --git a/Makefile.in b/Makefile.in
256 deleted file mode 100644
257 index 6652366..0000000
261 -# Makefile.in generated by automake 1.9.4 from Makefile.am.
264 -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
265 -# 2003, 2004 Free Software Foundation, Inc.
266 -# This Makefile.in is free software; the Free Software Foundation
267 -# gives unlimited permission to copy and/or distribute it,
268 -# with or without modifications, as long as this notice is preserved.
270 -# This program is distributed in the hope that it will be useful,
271 -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
272 -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
273 -# PARTICULAR PURPOSE.
277 -top_srcdir = @top_srcdir@
279 -pkgdatadir = $(datadir)/@PACKAGE@
280 -pkglibdir = $(libdir)/@PACKAGE@
281 -pkgincludedir = $(includedir)/@PACKAGE@
283 -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
285 -install_sh_DATA = $(install_sh) -c -m 644
286 -install_sh_PROGRAM = $(install_sh) -c
287 -install_sh_SCRIPT = $(install_sh) -c
288 -INSTALL_HEADER = $(INSTALL_DATA)
289 -transform = $(program_transform_name)
293 -NORMAL_UNINSTALL = :
296 -build_triplet = @build@
297 -host_triplet = @host@
298 -DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
299 - $(srcdir)/Makefile.in $(srcdir)/config.h.in \
300 - $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
301 - THANKS TODO compile config.guess config.sub depcomp install-sh \
302 - missing mkinstalldirs
304 -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
305 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
306 - $(top_srcdir)/configure.ac
307 -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
309 -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
310 - configure.lineno configure.status.lineno
311 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
312 -CONFIG_HEADER = config.h
313 -CONFIG_CLEAN_FILES =
316 -RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
317 - html-recursive info-recursive install-data-recursive \
318 - install-exec-recursive install-info-recursive \
319 - install-recursive installcheck-recursive installdirs-recursive \
320 - pdf-recursive ps-recursive uninstall-info-recursive \
321 - uninstall-recursive
324 -DIST_SUBDIRS = $(SUBDIRS)
325 -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
326 -distdir = $(PACKAGE)-$(VERSION)
327 -top_distdir = $(distdir)
328 -am__remove_distdir = \
329 - { test ! -d $(distdir) \
330 - || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
331 - && rm -fr $(distdir); }; }
332 -DIST_ARCHIVES = $(distdir).tar.gz
334 -distuninstallcheck_listfiles = find . -type f -print
335 -distcleancheck_listfiles = find . -type f -print
337 -AMDEP_FALSE = @AMDEP_FALSE@
338 -AMDEP_TRUE = @AMDEP_TRUE@
340 -AUTOCONF = @AUTOCONF@
341 -AUTOHEADER = @AUTOHEADER@
342 -AUTOMAKE = @AUTOMAKE@
344 -BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
345 -BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
348 -CCASFLAGS = @CCASFLAGS@
349 -CCDEPMODE = @CCDEPMODE@
352 -CPPFLAGS = @CPPFLAGS@
353 -CYGPATH_W = @CYGPATH_W@
356 -DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
357 -DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
363 -FSYS_CFLAGS = @FSYS_CFLAGS@
364 -GRUB_CFLAGS = @GRUB_CFLAGS@
365 -GRUB_LIBS = @GRUB_LIBS@
366 -HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
367 -HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
368 -INSTALL_DATA = @INSTALL_DATA@
369 -INSTALL_PROGRAM = @INSTALL_PROGRAM@
370 -INSTALL_SCRIPT = @INSTALL_SCRIPT@
371 -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
375 -LTLIBOBJS = @LTLIBOBJS@
377 -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
378 -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
379 -MAKEINFO = @MAKEINFO@
380 -NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
381 -NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
382 -NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
383 -NET_CFLAGS = @NET_CFLAGS@
384 -NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
388 -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
389 -PACKAGE_NAME = @PACKAGE_NAME@
390 -PACKAGE_STRING = @PACKAGE_STRING@
391 -PACKAGE_TARNAME = @PACKAGE_TARNAME@
392 -PACKAGE_VERSION = @PACKAGE_VERSION@
393 -PATH_SEPARATOR = @PATH_SEPARATOR@
396 -SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
397 -SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
398 -SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
399 -SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
400 -SET_MAKE = @SET_MAKE@
402 -STAGE1_CFLAGS = @STAGE1_CFLAGS@
403 -STAGE2_CFLAGS = @STAGE2_CFLAGS@
406 -ac_ct_CC = @ac_ct_CC@
407 -ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
408 -ac_ct_RANLIB = @ac_ct_RANLIB@
409 -ac_ct_STRIP = @ac_ct_STRIP@
410 -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
411 -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
412 -am__include = @am__include@
413 -am__leading_dot = @am__leading_dot@
414 -am__quote = @am__quote@
416 -am__untar = @am__untar@
419 -build_alias = @build_alias@
420 -build_cpu = @build_cpu@
421 -build_os = @build_os@
422 -build_vendor = @build_vendor@
424 -exec_prefix = @exec_prefix@
426 -host_alias = @host_alias@
427 -host_cpu = @host_cpu@
429 -host_vendor = @host_vendor@
430 -includedir = @includedir@
432 -install_sh = @install_sh@
434 -libexecdir = @libexecdir@
435 -localstatedir = @localstatedir@
438 -oldincludedir = @oldincludedir@
440 -program_transform_name = @program_transform_name@
442 -sharedstatedir = @sharedstatedir@
443 -sysconfdir = @sysconfdir@
444 -target_alias = @target_alias@
446 -# Do not change this order if you don't know what you are doing.
447 -AUTOMAKE_OPTIONS = 1.7 gnu
448 -SUBDIRS = netboot stage2 stage1 lib grub util docs
449 -EXTRA_DIST = BUGS MAINTENANCE
451 - $(MAKE) $(AM_MAKEFLAGS) all-recursive
456 -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
457 - @for dep in $?; do \
458 - case '$(am__configure_deps)' in \
460 - echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
461 - cd $(srcdir) && $(AUTOMAKE) --gnu \
466 - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
467 - cd $(top_srcdir) && \
468 - $(AUTOMAKE) --gnu Makefile
470 -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
473 - echo ' $(SHELL) ./config.status'; \
474 - $(SHELL) ./config.status;; \
476 - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
477 - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
480 -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
481 - $(SHELL) ./config.status --recheck
483 -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
484 - cd $(srcdir) && $(AUTOCONF)
485 -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
486 - cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
489 - @if test ! -f $@; then \
491 - $(MAKE) stamp-h1; \
494 -stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
496 - cd $(top_builddir) && $(SHELL) ./config.status config.h
497 -$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
498 - cd $(top_srcdir) && $(AUTOHEADER)
503 - -rm -f config.h stamp-h1
506 -# This directory's subdirectories are mostly independent; you can cd
507 -# into them and run `make' without going through this Makefile.
508 -# To change the values of `make' variables: instead of editing Makefiles,
509 -# (1) if the variable is set in `config.status', edit `config.status'
510 -# (which will cause the Makefiles to be regenerated when you run `make');
511 -# (2) otherwise, pass the desired values on the `make' command line.
512 -$(RECURSIVE_TARGETS):
513 - @set fnord $$MAKEFLAGS; amf=$$2; \
515 - target=`echo $@ | sed s/-recursive//`; \
516 - list='$(SUBDIRS)'; for subdir in $$list; do \
517 - echo "Making $$target in $$subdir"; \
518 - if test "$$subdir" = "."; then \
520 - local_target="$$target-am"; \
522 - local_target="$$target"; \
524 - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
525 - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
527 - if test "$$dot_seen" = "no"; then \
528 - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
529 - fi; test -z "$$fail"
531 -mostlyclean-recursive clean-recursive distclean-recursive \
532 -maintainer-clean-recursive:
533 - @set fnord $$MAKEFLAGS; amf=$$2; \
536 - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
537 - *) list='$(SUBDIRS)' ;; \
539 - rev=''; for subdir in $$list; do \
540 - if test "$$subdir" = "."; then :; else \
541 - rev="$$subdir $$rev"; \
545 - target=`echo $@ | sed s/-recursive//`; \
546 - for subdir in $$rev; do \
547 - echo "Making $$target in $$subdir"; \
548 - if test "$$subdir" = "."; then \
549 - local_target="$$target-am"; \
551 - local_target="$$target"; \
553 - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
554 - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
555 - done && test -z "$$fail"
557 - list='$(SUBDIRS)'; for subdir in $$list; do \
558 - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
561 - list='$(SUBDIRS)'; for subdir in $$list; do \
562 - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
565 -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
566 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
567 - unique=`for i in $$list; do \
568 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
570 - $(AWK) ' { files[$$0] = 1; } \
571 - END { for (i in files) print i; }'`; \
575 -TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
576 - $(TAGS_FILES) $(LISP)
579 - if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
580 - include_option=--etags-include; \
583 - include_option=--include; \
586 - list='$(SUBDIRS)'; for subdir in $$list; do \
587 - if test "$$subdir" = .; then :; else \
588 - test ! -f $$subdir/TAGS || \
589 - tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
592 - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
593 - unique=`for i in $$list; do \
594 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
596 - $(AWK) ' { files[$$0] = 1; } \
597 - END { for (i in files) print i; }'`; \
598 - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
599 - test -n "$$unique" || unique=$$empty_fix; \
600 - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
604 -CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
605 - $(TAGS_FILES) $(LISP)
608 - list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
609 - unique=`for i in $$list; do \
610 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
612 - $(AWK) ' { files[$$0] = 1; } \
613 - END { for (i in files) print i; }'`; \
614 - test -z "$(CTAGS_ARGS)$$tags$$unique" \
615 - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
619 - here=`$(am__cd) $(top_builddir) && pwd` \
620 - && cd $(top_srcdir) \
621 - && gtags -i $(GTAGS_ARGS) $$here
624 - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
626 -distdir: $(DISTFILES)
627 - $(am__remove_distdir)
629 - $(mkdir_p) $(distdir)/util
630 - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
631 - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
632 - list='$(DISTFILES)'; for file in $$list; do \
634 - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
635 - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
637 - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
638 - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
639 - if test "$$dir" != "$$file" && test "$$dir" != "."; then \
641 - $(mkdir_p) "$(distdir)$$dir"; \
645 - if test -d $$d/$$file; then \
646 - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
647 - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
649 - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
651 - test -f $(distdir)/$$file \
652 - || cp -p $$d/$$file $(distdir)/$$file \
656 - list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
657 - if test "$$subdir" = .; then :; else \
658 - test -d "$(distdir)/$$subdir" \
659 - || $(mkdir_p) "$(distdir)/$$subdir" \
661 - distdir=`$(am__cd) $(distdir) && pwd`; \
662 - top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
664 - $(MAKE) $(AM_MAKEFLAGS) \
665 - top_distdir="$$top_distdir" \
666 - distdir="$$distdir/$$subdir" \
671 - -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
672 - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
673 - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
674 - ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
675 - || chmod -R a+r $(distdir)
677 - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
678 - $(am__remove_distdir)
681 - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
682 - $(am__remove_distdir)
685 - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
686 - $(am__remove_distdir)
689 - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
690 - $(am__remove_distdir)
693 - -rm -f $(distdir).zip
694 - zip -rq $(distdir).zip $(distdir)
695 - $(am__remove_distdir)
697 -dist dist-all: distdir
698 - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
699 - $(am__remove_distdir)
701 -# This target untars the dist file and tries a VPATH configuration. Then
702 -# it guarantees that the distribution is self-contained by making another
705 - case '$(DIST_ARCHIVES)' in \
707 - GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
709 - bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
711 - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
713 - GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
715 - unzip $(distdir).zip ;;\
717 - chmod -R a-w $(distdir); chmod a+w $(distdir)
718 - mkdir $(distdir)/_build
719 - mkdir $(distdir)/_inst
720 - chmod a-w $(distdir)
721 - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
722 - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
723 - && cd $(distdir)/_build \
724 - && ../configure --srcdir=.. --prefix="$$dc_install_base" \
725 - $(DISTCHECK_CONFIGURE_FLAGS) \
726 - && $(MAKE) $(AM_MAKEFLAGS) \
727 - && $(MAKE) $(AM_MAKEFLAGS) dvi \
728 - && $(MAKE) $(AM_MAKEFLAGS) check \
729 - && $(MAKE) $(AM_MAKEFLAGS) install \
730 - && $(MAKE) $(AM_MAKEFLAGS) installcheck \
731 - && $(MAKE) $(AM_MAKEFLAGS) uninstall \
732 - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
733 - distuninstallcheck \
734 - && chmod -R a-w "$$dc_install_base" \
736 - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
737 - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
738 - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
739 - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
740 - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
741 - } || { rm -rf "$$dc_destdir"; exit 1; }) \
742 - && rm -rf "$$dc_destdir" \
743 - && $(MAKE) $(AM_MAKEFLAGS) dist \
744 - && rm -rf $(DIST_ARCHIVES) \
745 - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
746 - $(am__remove_distdir)
747 - @(echo "$(distdir) archives ready for distribution: "; \
748 - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
749 - sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
751 - @cd $(distuninstallcheck_dir) \
752 - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
753 - || { echo "ERROR: files left after uninstall:" ; \
754 - if test -n "$(DESTDIR)"; then \
755 - echo " (check DESTDIR support)"; \
757 - $(distuninstallcheck_listfiles) ; \
759 -distcleancheck: distclean
760 - @if test '$(srcdir)' = . ; then \
761 - echo "ERROR: distcleancheck can only run from a VPATH build" ; \
764 - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
765 - || { echo "ERROR: files left in build directory after distclean:" ; \
766 - $(distcleancheck_listfiles) ; \
769 -check: check-recursive
770 -all-am: Makefile config.h
771 -installdirs: installdirs-recursive
773 -install: install-recursive
774 -install-exec: install-exec-recursive
775 -install-data: install-data-recursive
776 -uninstall: uninstall-recursive
779 - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
781 -installcheck: installcheck-recursive
783 - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
784 - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
785 - `test -z '$(STRIP)' || \
786 - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
787 -mostlyclean-generic:
792 - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
794 -maintainer-clean-generic:
795 - @echo "This command is intended for maintainers to use"
796 - @echo "it deletes files that may require special tools to rebuild."
797 -clean: clean-recursive
799 -clean-am: clean-generic mostlyclean-am
801 -distclean: distclean-recursive
802 - -rm -f $(am__CONFIG_DISTCLEAN_FILES)
804 -distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
810 -html: html-recursive
812 -info: info-recursive
820 -install-info: install-info-recursive
826 -maintainer-clean: maintainer-clean-recursive
827 - -rm -f $(am__CONFIG_DISTCLEAN_FILES)
828 - -rm -rf $(top_srcdir)/autom4te.cache
830 -maintainer-clean-am: distclean-am maintainer-clean-generic
832 -mostlyclean: mostlyclean-recursive
834 -mostlyclean-am: mostlyclean-generic
844 -uninstall-am: uninstall-info-am
846 -uninstall-info: uninstall-info-recursive
848 -.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
849 - check-am clean clean-generic clean-recursive ctags \
850 - ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \
851 - dist-tarZ dist-zip distcheck distclean distclean-generic \
852 - distclean-hdr distclean-recursive distclean-tags \
853 - distcleancheck distdir distuninstallcheck dvi dvi-am html \
854 - html-am info info-am install install-am install-data \
855 - install-data-am install-exec install-exec-am install-info \
856 - install-info-am install-man install-strip installcheck \
857 - installcheck-am installdirs installdirs-am maintainer-clean \
858 - maintainer-clean-generic maintainer-clean-recursive \
859 - mostlyclean mostlyclean-generic mostlyclean-recursive pdf \
860 - pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
863 -# Tell versions [3.59,3.63) of GNU make to not export all variables.
864 -# Otherwise a system limit (for SysV at least) may be exceeded.
866 diff --git a/acinclude.m4 b/acinclude.m4
867 index 368839c..1cf1d67 100644
870 @@ -44,6 +44,8 @@ AC_DEFUN([grub_PROG_OBJCOPY_ABSOLUTE],
871 [AC_MSG_CHECKING([whether ${OBJCOPY} works for absolute addresses])
872 AC_CACHE_VAL(grub_cv_prog_objcopy_absolute,
873 [cat > conftest.c <<\EOF
879 @@ -57,7 +59,7 @@ else
881 grub_cv_prog_objcopy_absolute=yes
882 for link_addr in 2000 8000 7C00; do
883 - if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr conftest.o -o conftest.exec]); then :
884 + 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 :
886 AC_MSG_ERROR([${CC-cc} cannot link at address $link_addr])
888 diff --git a/aclocal.m4 b/aclocal.m4
889 deleted file mode 100644
890 index aa691f6..0000000
894 -# generated automatically by aclocal 1.9.4 -*- Autoconf -*-
896 -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
897 -# Free Software Foundation, Inc.
898 -# This file is free software; the Free Software Foundation
899 -# gives unlimited permission to copy and/or distribute it,
900 -# with or without modifications, as long as this notice is preserved.
902 -# This program is distributed in the hope that it will be useful,
903 -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
904 -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
905 -# PARTICULAR PURPOSE.
908 -# Copyright (C) 2002, 2003 Free Software Foundation, Inc.
909 -# Generated from amversion.in; do not edit by hand.
911 -# This program is free software; you can redistribute it and/or modify
912 -# it under the terms of the GNU General Public License as published by
913 -# the Free Software Foundation; either version 2, or (at your option)
914 -# any later version.
916 -# This program is distributed in the hope that it will be useful,
917 -# but WITHOUT ANY WARRANTY; without even the implied warranty of
918 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
919 -# GNU General Public License for more details.
921 -# You should have received a copy of the GNU General Public License
922 -# along with this program; if not, write to the Free Software
923 -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
925 -# AM_AUTOMAKE_VERSION(VERSION)
926 -# ----------------------------
927 -# Automake X.Y traces this macro to ensure aclocal.m4 has been
928 -# generated from the m4 files accompanying Automake X.Y.
929 -AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
931 -# AM_SET_CURRENT_AUTOMAKE_VERSION
932 -# -------------------------------
933 -# Call AM_AUTOMAKE_VERSION so it can be traced.
934 -# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
935 -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
936 - [AM_AUTOMAKE_VERSION([1.9.4])])
940 -# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
942 -# This program is free software; you can redistribute it and/or modify
943 -# it under the terms of the GNU General Public License as published by
944 -# the Free Software Foundation; either version 2, or (at your option)
945 -# any later version.
947 -# This program is distributed in the hope that it will be useful,
948 -# but WITHOUT ANY WARRANTY; without even the implied warranty of
949 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
950 -# GNU General Public License for more details.
952 -# You should have received a copy of the GNU General Public License
953 -# along with this program; if not, write to the Free Software
954 -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
957 -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
958 -# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
959 -# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
961 -# Of course, Automake must honor this variable whenever it calls a
962 -# tool from the auxiliary directory. The problem is that $srcdir (and
963 -# therefore $ac_aux_dir as well) can be either absolute or relative,
964 -# depending on how configure is run. This is pretty annoying, since
965 -# it makes $ac_aux_dir quite unusable in subdirectories: in the top
966 -# source directory, any form will work fine, but in subdirectories a
967 -# relative path needs to be adjusted first.
969 -# $ac_aux_dir/missing
970 -# fails when called from a subdirectory if $ac_aux_dir is relative
971 -# $top_srcdir/$ac_aux_dir/missing
972 -# fails if $ac_aux_dir is absolute,
973 -# fails when called from a subdirectory in a VPATH build with
974 -# a relative $ac_aux_dir
976 -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
977 -# are both prefixed by $srcdir. In an in-source build this is usually
978 -# harmless because $srcdir is `.', but things will broke when you
979 -# start a VPATH build or use an absolute $srcdir.
981 -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
982 -# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
983 -# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
984 -# and then we would define $MISSING as
985 -# MISSING="\${SHELL} $am_aux_dir/missing"
986 -# This will work as long as MISSING is not called from configure, because
987 -# unfortunately $(top_srcdir) has no meaning in configure.
988 -# However there are other variables, like CC, which are often used in
989 -# configure, and could therefore not use this "fixed" $ac_aux_dir.
991 -# Another solution, used here, is to always expand $ac_aux_dir to an
992 -# absolute PATH. The drawback is that using absolute paths prevent a
993 -# configured tree to be moved without reconfiguration.
995 -AC_DEFUN([AM_AUX_DIR_EXPAND],
996 -[dnl Rely on autoconf to set up CDPATH properly.
997 -AC_PREREQ([2.50])dnl
998 -# expand $ac_aux_dir to an absolute path
999 -am_aux_dir=`cd $ac_aux_dir && pwd`
1002 -# AM_CONDITIONAL -*- Autoconf -*-
1004 -# Copyright (C) 1997, 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
1006 -# This program is free software; you can redistribute it and/or modify
1007 -# it under the terms of the GNU General Public License as published by
1008 -# the Free Software Foundation; either version 2, or (at your option)
1009 -# any later version.
1011 -# This program is distributed in the hope that it will be useful,
1012 -# but WITHOUT ANY WARRANTY; without even the implied warranty of
1013 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1014 -# GNU General Public License for more details.
1016 -# You should have received a copy of the GNU General Public License
1017 -# along with this program; if not, write to the Free Software
1018 -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
1023 -# AM_CONDITIONAL(NAME, SHELL-CONDITION)
1024 -# -------------------------------------
1025 -# Define a conditional.
1026 -AC_DEFUN([AM_CONDITIONAL],
1027 -[AC_PREREQ(2.52)dnl
1028 - ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
1029 - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
1030 -AC_SUBST([$1_TRUE])
1031 -AC_SUBST([$1_FALSE])
1039 -AC_CONFIG_COMMANDS_PRE(
1040 -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
1041 - AC_MSG_ERROR([[conditional "$1" was never defined.
1042 -Usually this means the macro was only invoked conditionally.]])
1045 -# serial 7 -*- Autoconf -*-
1047 -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
1048 -# Free Software Foundation, Inc.
1050 -# This program is free software; you can redistribute it and/or modify
1051 -# it under the terms of the GNU General Public License as published by
1052 -# the Free Software Foundation; either version 2, or (at your option)
1053 -# any later version.
1055 -# This program is distributed in the hope that it will be useful,
1056 -# but WITHOUT ANY WARRANTY; without even the implied warranty of
1057 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1058 -# GNU General Public License for more details.
1060 -# You should have received a copy of the GNU General Public License
1061 -# along with this program; if not, write to the Free Software
1062 -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
1066 -# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
1067 -# written in clear, in which case automake, when reading aclocal.m4,
1068 -# will think it sees a *use*, and therefore will trigger all it's
1069 -# C support machinery. Also note that it means that autoscan, seeing
1070 -# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
1074 -# _AM_DEPENDENCIES(NAME)
1075 -# ----------------------
1076 -# See how the compiler implements dependency checking.
1077 -# NAME is "CC", "CXX", "GCJ", or "OBJC".
1078 -# We try a few techniques and use that to set a single cache variable.
1080 -# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
1081 -# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
1082 -# dependency, and given that the user is not expected to run this macro,
1083 -# just rely on AC_PROG_CC.
1084 -AC_DEFUN([_AM_DEPENDENCIES],
1085 -[AC_REQUIRE([AM_SET_DEPDIR])dnl
1086 -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
1087 -AC_REQUIRE([AM_MAKE_INCLUDE])dnl
1088 -AC_REQUIRE([AM_DEP_TRACK])dnl
1090 -ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
1091 - [$1], CXX, [depcc="$CXX" am_compiler_list=],
1092 - [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
1093 - [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
1094 - [depcc="$$1" am_compiler_list=])
1096 -AC_CACHE_CHECK([dependency style of $depcc],
1097 - [am_cv_$1_dependencies_compiler_type],
1098 -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
1099 - # We make a subdir and do the tests there. Otherwise we can end up
1100 - # making bogus files that we don't know about and never remove. For
1101 - # instance it was reported that on HP-UX the gcc test will end up
1102 - # making a dummy file named `D' -- because `-MD' means `put the output
1104 - mkdir conftest.dir
1105 - # Copy depcomp to subdir because otherwise we won't find it if we're
1106 - # using a relative directory.
1107 - cp "$am_depcomp" conftest.dir
1109 - # We will build objects and dependencies in a subdirectory because
1110 - # it helps to detect inapplicable dependency modes. For instance
1111 - # both Tru64's cc and ICC support -MD to output dependencies as a
1112 - # side effect of compilation, but ICC will put the dependencies in
1113 - # the current directory while Tru64 will put them in the object
1117 - am_cv_$1_dependencies_compiler_type=none
1118 - if test "$am_compiler_list" = ""; then
1119 - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
1121 - for depmode in $am_compiler_list; do
1122 - # Setup a source with many dependencies, because some compilers
1123 - # like to wrap large dependency lists on column 80 (with \), and
1124 - # we should not choose a depcomp mode which is confused by this.
1126 - # We need to recreate these files for each test, as the compiler may
1127 - # overwrite some of them when testing with obscure command lines.
1128 - # This happens at least with the AIX C compiler.
1129 - : > sub/conftest.c
1130 - for i in 1 2 3 4 5 6; do
1131 - echo '#include "conftst'$i'.h"' >> sub/conftest.c
1132 - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
1133 - # Solaris 8's {/usr,}/bin/sh.
1134 - touch sub/conftst$i.h
1136 - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
1140 - # after this tag, mechanisms are not by side-effect, so they'll
1141 - # only be used when explicitly requested
1142 - if test "x$enable_dependency_tracking" = xyes; then
1150 - # We check with `-c' and `-o' for the sake of the "dashmstdout"
1151 - # mode. It turns out that the SunPro C++ compiler does not properly
1152 - # handle `-M -o', and we need to detect this.
1153 - if depmode=$depmode \
1154 - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
1155 - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
1156 - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
1157 - >/dev/null 2>conftest.err &&
1158 - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
1159 - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
1160 - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
1161 - # icc doesn't choke on unknown options, it will just issue warnings
1162 - # or remarks (even with -Werror). So we grep stderr for any message
1163 - # that says an option was ignored or not supported.
1164 - # When given -MP, icc 7.0 and 7.1 complain thusly:
1165 - # icc: Command line warning: ignoring option '-M'; no argument required
1166 - # The diagnosis changed in icc 8.0:
1167 - # icc: Command line remark: option '-MP' not supported
1168 - if (grep 'ignoring option' conftest.err ||
1169 - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
1170 - am_cv_$1_dependencies_compiler_type=$depmode
1177 - rm -rf conftest.dir
1179 - am_cv_$1_dependencies_compiler_type=none
1182 -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
1183 -AM_CONDITIONAL([am__fastdep$1], [
1184 - test "x$enable_dependency_tracking" != xno \
1185 - && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
1191 -# Choose a directory name for dependency files.
1192 -# This macro is AC_REQUIREd in _AM_DEPENDENCIES
1193 -AC_DEFUN([AM_SET_DEPDIR],
1194 -[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
1195 -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
1201 -AC_DEFUN([AM_DEP_TRACK],
1202 -[AC_ARG_ENABLE(dependency-tracking,
1203 -[ --disable-dependency-tracking speeds up one-time build
1204 - --enable-dependency-tracking do not reject slow dependency extractors])
1205 -if test "x$enable_dependency_tracking" != xno; then
1206 - am_depcomp="$ac_aux_dir/depcomp"
1207 - AMDEPBACKSLASH='\'
1209 -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
1210 -AC_SUBST([AMDEPBACKSLASH])
1213 -# Generate code to set up dependency tracking. -*- Autoconf -*-
1215 -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
1216 -# Free Software Foundation, Inc.
1218 -# This program is free software; you can redistribute it and/or modify
1219 -# it under the terms of the GNU General Public License as published by
1220 -# the Free Software Foundation; either version 2, or (at your option)
1221 -# any later version.
1223 -# This program is distributed in the hope that it will be useful,
1224 -# but WITHOUT ANY WARRANTY; without even the implied warranty of
1225 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1226 -# GNU General Public License for more details.
1228 -# You should have received a copy of the GNU General Public License
1229 -# along with this program; if not, write to the Free Software
1230 -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
1235 -# _AM_OUTPUT_DEPENDENCY_COMMANDS
1236 -# ------------------------------
1237 -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
1238 -[for mf in $CONFIG_FILES; do
1239 - # Strip MF so we end up with the name of the file.
1240 - mf=`echo "$mf" | sed -e 's/:.*$//'`
1241 - # Check whether this is an Automake generated Makefile or not.
1242 - # We used to match only the files named `Makefile.in', but
1243 - # some people rename them; so instead we look at the file content.
1244 - # Grep'ing the first line is not enough: some people post-process
1245 - # each Makefile.in and add a new line on top of each file to say so.
1246 - # So let's grep whole file.
1247 - if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
1248 - dirpart=`AS_DIRNAME("$mf")`
1252 - # Extract the definition of DEPDIR, am__include, and am__quote
1253 - # from the Makefile without running `make'.
1254 - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
1255 - test -z "$DEPDIR" && continue
1256 - am__include=`sed -n 's/^am__include = //p' < "$mf"`
1257 - test -z "am__include" && continue
1258 - am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
1259 - # When using ansi2knr, U may be empty or an underscore; expand it
1260 - U=`sed -n 's/^U = //p' < "$mf"`
1261 - # Find all dependency output files, they are included files with
1262 - # $(DEPDIR) in their names. We invoke sed twice because it is the
1263 - # simplest approach to changing $(DEPDIR) to its actual value in the
1265 - for file in `sed -n "
1266 - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
1267 - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
1268 - # Make sure the directory exists.
1269 - test -f "$dirpart/$file" && continue
1270 - fdir=`AS_DIRNAME(["$file"])`
1271 - AS_MKDIR_P([$dirpart/$fdir])
1272 - # echo "creating $dirpart/$file"
1273 - echo '# dummy' > "$dirpart/$file"
1276 -])# _AM_OUTPUT_DEPENDENCY_COMMANDS
1279 -# AM_OUTPUT_DEPENDENCY_COMMANDS
1280 -# -----------------------------
1281 -# This macro should only be invoked once -- use via AC_REQUIRE.
1283 -# This code is only required when automatic dependency tracking
1284 -# is enabled. FIXME. This creates each `.P' file that we will
1285 -# need in order to bootstrap the dependency handling code.
1286 -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
1287 -[AC_CONFIG_COMMANDS([depfiles],
1288 - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
1289 - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
1292 -# Do all the work for Automake. -*- Autoconf -*-
1294 -# This macro actually does too much some checks are only needed if
1295 -# your package does certain things. But this isn't really a big deal.
1297 -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
1298 -# Free Software Foundation, Inc.
1300 -# This program is free software; you can redistribute it and/or modify
1301 -# it under the terms of the GNU General Public License as published by
1302 -# the Free Software Foundation; either version 2, or (at your option)
1303 -# any later version.
1305 -# This program is distributed in the hope that it will be useful,
1306 -# but WITHOUT ANY WARRANTY; without even the implied warranty of
1307 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1308 -# GNU General Public License for more details.
1310 -# You should have received a copy of the GNU General Public License
1311 -# along with this program; if not, write to the Free Software
1312 -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
1317 -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
1318 -# AM_INIT_AUTOMAKE([OPTIONS])
1319 -# -----------------------------------------------
1320 -# The call with PACKAGE and VERSION arguments is the old style
1321 -# call (pre autoconf-2.50), which is being phased out. PACKAGE
1322 -# and VERSION should now be passed to AC_INIT and removed from
1323 -# the call to AM_INIT_AUTOMAKE.
1324 -# We support both call styles for the transition. After
1325 -# the next Automake release, Autoconf can make the AC_INIT
1326 -# arguments mandatory, and then we can depend on a new Autoconf
1327 -# release and drop the old call support.
1328 -AC_DEFUN([AM_INIT_AUTOMAKE],
1329 -[AC_PREREQ([2.58])dnl
1330 -dnl Autoconf wants to disallow AM_ names. We explicitly allow
1331 -dnl the ones we care about.
1332 -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
1333 -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
1334 -AC_REQUIRE([AC_PROG_INSTALL])dnl
1335 -# test to see if srcdir already configured
1336 -if test "`cd $srcdir && pwd`" != "`pwd`" &&
1337 - test -f $srcdir/config.status; then
1338 - AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
1341 -# test whether we have cygpath
1342 -if test -z "$CYGPATH_W"; then
1343 - if (cygpath --version) >/dev/null 2>/dev/null; then
1344 - CYGPATH_W='cygpath -w'
1349 -AC_SUBST([CYGPATH_W])
1351 -# Define the identity of the package.
1352 -dnl Distinguish between old-style and new-style calls.
1354 -[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
1355 - AC_SUBST([PACKAGE], [$1])dnl
1356 - AC_SUBST([VERSION], [$2])],
1357 -[_AM_SET_OPTIONS([$1])dnl
1358 - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
1359 - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
1361 -_AM_IF_OPTION([no-define],,
1362 -[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
1363 - AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
1365 -# Some tools Automake needs.
1366 -AC_REQUIRE([AM_SANITY_CHECK])dnl
1367 -AC_REQUIRE([AC_ARG_PROGRAM])dnl
1368 -AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
1369 -AM_MISSING_PROG(AUTOCONF, autoconf)
1370 -AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
1371 -AM_MISSING_PROG(AUTOHEADER, autoheader)
1372 -AM_MISSING_PROG(MAKEINFO, makeinfo)
1374 -AM_PROG_INSTALL_STRIP
1375 -AC_REQUIRE([AM_PROG_MKDIR_P])dnl
1376 -# We need awk for the "check" target. The system "awk" is bad on
1378 -AC_REQUIRE([AC_PROG_AWK])dnl
1379 -AC_REQUIRE([AC_PROG_MAKE_SET])dnl
1380 -AC_REQUIRE([AM_SET_LEADING_DOT])dnl
1381 -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
1382 - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
1383 - [_AM_PROG_TAR([v7])])])
1384 -_AM_IF_OPTION([no-dependencies],,
1385 -[AC_PROVIDE_IFELSE([AC_PROG_CC],
1386 - [_AM_DEPENDENCIES(CC)],
1387 - [define([AC_PROG_CC],
1388 - defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
1389 -AC_PROVIDE_IFELSE([AC_PROG_CXX],
1390 - [_AM_DEPENDENCIES(CXX)],
1391 - [define([AC_PROG_CXX],
1392 - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
1397 -# When config.status generates a header, we must update the stamp-h file.
1398 -# This file resides in the same directory as the config header
1399 -# that is generated. The stamp files are numbered to have different names.
1401 -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
1402 -# loop where config.status creates the headers, so we can generate
1403 -# our stamp files there.
1404 -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
1405 -[# Compute $1's index in $config_headers.
1407 -for _am_header in $config_headers :; do
1408 - case $_am_header in
1412 - _am_stamp_count=`expr $_am_stamp_count + 1` ;;
1415 -echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
1417 -# AM_PROG_INSTALL_SH
1418 -# ------------------
1419 -# Define $install_sh.
1421 -# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
1423 -# This program is free software; you can redistribute it and/or modify
1424 -# it under the terms of the GNU General Public License as published by
1425 -# the Free Software Foundation; either version 2, or (at your option)
1426 -# any later version.
1428 -# This program is distributed in the hope that it will be useful,
1429 -# but WITHOUT ANY WARRANTY; without even the implied warranty of
1430 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1431 -# GNU General Public License for more details.
1433 -# You should have received a copy of the GNU General Public License
1434 -# along with this program; if not, write to the Free Software
1435 -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
1438 -AC_DEFUN([AM_PROG_INSTALL_SH],
1439 -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
1440 -install_sh=${install_sh-"$am_aux_dir/install-sh"}
1441 -AC_SUBST(install_sh)])
1444 -# Copyright (C) 2003 Free Software Foundation, Inc.
1446 -# This program is free software; you can redistribute it and/or modify
1447 -# it under the terms of the GNU General Public License as published by
1448 -# the Free Software Foundation; either version 2, or (at your option)
1449 -# any later version.
1451 -# This program is distributed in the hope that it will be useful,
1452 -# but WITHOUT ANY WARRANTY; without even the implied warranty of
1453 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1454 -# GNU General Public License for more details.
1456 -# You should have received a copy of the GNU General Public License
1457 -# along with this program; if not, write to the Free Software
1458 -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
1463 -# Check whether the underlying file-system supports filenames
1464 -# with a leading dot. For instance MS-DOS doesn't.
1465 -AC_DEFUN([AM_SET_LEADING_DOT],
1466 -[rm -rf .tst 2>/dev/null
1467 -mkdir .tst 2>/dev/null
1468 -if test -d .tst; then
1473 -rmdir .tst 2>/dev/null
1474 -AC_SUBST([am__leading_dot])])
1476 -# Add --enable-maintainer-mode option to configure.
1477 -# From Jim Meyering
1479 -# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004
1480 -# Free Software Foundation, Inc.
1482 -# This program is free software; you can redistribute it and/or modify
1483 -# it under the terms of the GNU General Public License as published by
1484 -# the Free Software Foundation; either version 2, or (at your option)
1485 -# any later version.
1487 -# This program is distributed in the hope that it will be useful,
1488 -# but WITHOUT ANY WARRANTY; without even the implied warranty of
1489 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1490 -# GNU General Public License for more details.
1492 -# You should have received a copy of the GNU General Public License
1493 -# along with this program; if not, write to the Free Software
1494 -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
1499 -AC_DEFUN([AM_MAINTAINER_MODE],
1500 -[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
1501 - dnl maintainer-mode is disabled by default
1502 - AC_ARG_ENABLE(maintainer-mode,
1503 -[ --enable-maintainer-mode enable make rules and dependencies not useful
1504 - (and sometimes confusing) to the casual installer],
1505 - USE_MAINTAINER_MODE=$enableval,
1506 - USE_MAINTAINER_MODE=no)
1507 - AC_MSG_RESULT([$USE_MAINTAINER_MODE])
1508 - AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
1509 - MAINT=$MAINTAINER_MODE_TRUE
1510 - AC_SUBST(MAINT)dnl
1514 -AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
1516 -# Check to see how 'make' treats includes. -*- Autoconf -*-
1518 -# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
1520 -# This program is free software; you can redistribute it and/or modify
1521 -# it under the terms of the GNU General Public License as published by
1522 -# the Free Software Foundation; either version 2, or (at your option)
1523 -# any later version.
1525 -# This program is distributed in the hope that it will be useful,
1526 -# but WITHOUT ANY WARRANTY; without even the implied warranty of
1527 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1528 -# GNU General Public License for more details.
1530 -# You should have received a copy of the GNU General Public License
1531 -# along with this program; if not, write to the Free Software
1532 -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
1537 -# AM_MAKE_INCLUDE()
1538 -# -----------------
1539 -# Check to see how make treats includes.
1540 -AC_DEFUN([AM_MAKE_INCLUDE],
1541 -[am_make=${MAKE-make}
1542 -cat > confinc << 'END'
1547 -# If we don't find an include directive, just comment out the code.
1548 -AC_MSG_CHECKING([for style of include used by $am_make])
1552 -# First try GNU make style include.
1553 -echo "include confinc" > confmf
1554 -# We grep out `Entering directory' and `Leaving directory'
1555 -# messages which can occur if `w' ends up in MAKEFLAGS.
1556 -# In particular we don't look at `^make:' because GNU make might
1557 -# be invoked under some other name (usually "gmake"), in which
1558 -# case it prints its new name instead of `make'.
1559 -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
1560 - am__include=include
1564 -# Now try BSD make style include.
1565 -if test "$am__include" = "#"; then
1566 - echo '.include "confinc"' > confmf
1567 - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
1568 - am__include=.include
1573 -AC_SUBST([am__include])
1574 -AC_SUBST([am__quote])
1575 -AC_MSG_RESULT([$_am_result])
1576 -rm -f confinc confmf
1582 -# Copyright (C) 1997, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
1584 -# This program is free software; you can redistribute it and/or modify
1585 -# it under the terms of the GNU General Public License as published by
1586 -# the Free Software Foundation; either version 2, or (at your option)
1587 -# any later version.
1589 -# This program is distributed in the hope that it will be useful,
1590 -# but WITHOUT ANY WARRANTY; without even the implied warranty of
1591 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1592 -# GNU General Public License for more details.
1594 -# You should have received a copy of the GNU General Public License
1595 -# along with this program; if not, write to the Free Software
1596 -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
1601 -# AM_MISSING_PROG(NAME, PROGRAM)
1602 -# ------------------------------
1603 -AC_DEFUN([AM_MISSING_PROG],
1604 -[AC_REQUIRE([AM_MISSING_HAS_RUN])
1605 -$1=${$1-"${am_missing_run}$2"}
1609 -# AM_MISSING_HAS_RUN
1610 -# ------------------
1611 -# Define MISSING if not defined so far and test if it supports --run.
1612 -# If it does, set am_missing_run to use it, otherwise, to nothing.
1613 -AC_DEFUN([AM_MISSING_HAS_RUN],
1614 -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
1615 -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
1616 -# Use eval to expand $SHELL
1617 -if eval "$MISSING --run true"; then
1618 - am_missing_run="$MISSING --run "
1621 - AC_MSG_WARN([`missing' script is too old or missing])
1627 -# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
1629 -# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
1631 -# This program is free software; you can redistribute it and/or modify
1632 -# it under the terms of the GNU General Public License as published by
1633 -# the Free Software Foundation; either version 2, or (at your option)
1634 -# any later version.
1636 -# This program is distributed in the hope that it will be useful,
1637 -# but WITHOUT ANY WARRANTY; without even the implied warranty of
1638 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1639 -# GNU General Public License for more details.
1641 -# You should have received a copy of the GNU General Public License
1642 -# along with this program; if not, write to the Free Software
1643 -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
1646 -# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
1647 -# created by `make install' are always world readable, even if the
1648 -# installer happens to have an overly restrictive umask (e.g. 077).
1649 -# This was a mistake. There are at least two reasons why we must not
1651 -# - it causes special bits like SGID to be ignored,
1652 -# - it may be too restrictive (some setups expect 775 directories).
1654 -# Do not use -m 0755 and let people choose whatever they expect by
1657 -# We cannot accept any implementation of `mkdir' that recognizes `-p'.
1658 -# Some implementations (such as Solaris 8's) are not thread-safe: if a
1659 -# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
1660 -# concurrently, both version can detect that a/ is missing, but only
1661 -# one can create it and the other will error out. Consequently we
1662 -# restrict ourselves to GNU make (using the --version option ensures
1664 -AC_DEFUN([AM_PROG_MKDIR_P],
1665 -[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
1666 - # We used to keeping the `.' as first argument, in order to
1667 - # allow $(mkdir_p) to be used without argument. As in
1668 - # $(mkdir_p) $(somedir)
1669 - # where $(somedir) is conditionally defined. However this is wrong
1670 - # for two reasons:
1671 - # 1. if the package is installed by a user who cannot write `.'
1672 - # make install will fail,
1673 - # 2. the above comment should most certainly read
1674 - # $(mkdir_p) $(DESTDIR)$(somedir)
1675 - # so it does not work when $(somedir) is undefined and
1676 - # $(DESTDIR) is not.
1677 - # To support the latter case, we have to write
1678 - # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
1679 - # so the `.' trick is pointless.
1680 - mkdir_p='mkdir -p --'
1682 - # On NextStep and OpenStep, the `mkdir' command does not
1683 - # recognize any option. It will interpret all options as
1684 - # directories to create, and then abort because `.' already
1686 - for d in ./-p ./--version;
1688 - test -d $d && rmdir $d
1690 - # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
1691 - if test -f "$ac_aux_dir/mkinstalldirs"; then
1692 - mkdir_p='$(mkinstalldirs)'
1694 - mkdir_p='$(install_sh) -d'
1697 -AC_SUBST([mkdir_p])])
1699 -# Helper functions for option handling. -*- Autoconf -*-
1701 -# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
1703 -# This program is free software; you can redistribute it and/or modify
1704 -# it under the terms of the GNU General Public License as published by
1705 -# the Free Software Foundation; either version 2, or (at your option)
1706 -# any later version.
1708 -# This program is distributed in the hope that it will be useful,
1709 -# but WITHOUT ANY WARRANTY; without even the implied warranty of
1710 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1711 -# GNU General Public License for more details.
1713 -# You should have received a copy of the GNU General Public License
1714 -# along with this program; if not, write to the Free Software
1715 -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
1720 -# _AM_MANGLE_OPTION(NAME)
1721 -# -----------------------
1722 -AC_DEFUN([_AM_MANGLE_OPTION],
1723 -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
1725 -# _AM_SET_OPTION(NAME)
1726 -# ------------------------------
1727 -# Set option NAME. Presently that only means defining a flag for this option.
1728 -AC_DEFUN([_AM_SET_OPTION],
1729 -[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
1731 -# _AM_SET_OPTIONS(OPTIONS)
1732 -# ----------------------------------
1733 -# OPTIONS is a space-separated list of Automake options.
1734 -AC_DEFUN([_AM_SET_OPTIONS],
1735 -[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
1737 -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
1738 -# -------------------------------------------
1739 -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
1740 -AC_DEFUN([_AM_IF_OPTION],
1741 -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
1744 -# Check to make sure that the build environment is sane.
1747 -# Copyright (C) 1996, 1997, 2000, 2001, 2003 Free Software Foundation, Inc.
1749 -# This program is free software; you can redistribute it and/or modify
1750 -# it under the terms of the GNU General Public License as published by
1751 -# the Free Software Foundation; either version 2, or (at your option)
1752 -# any later version.
1754 -# This program is distributed in the hope that it will be useful,
1755 -# but WITHOUT ANY WARRANTY; without even the implied warranty of
1756 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1757 -# GNU General Public License for more details.
1759 -# You should have received a copy of the GNU General Public License
1760 -# along with this program; if not, write to the Free Software
1761 -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
1768 -AC_DEFUN([AM_SANITY_CHECK],
1769 -[AC_MSG_CHECKING([whether build environment is sane])
1772 -echo timestamp > conftest.file
1773 -# Do `set' in a subshell so we don't clobber the current shell's
1774 -# arguments. Must try -L first in case configure is actually a
1775 -# symlink; some systems play weird games with the mod time of symlinks
1776 -# (eg FreeBSD returns the mod time of the symlink's containing
1779 - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
1780 - if test "$[*]" = "X"; then
1782 - set X `ls -t $srcdir/configure conftest.file`
1784 - rm -f conftest.file
1785 - if test "$[*]" != "X $srcdir/configure conftest.file" \
1786 - && test "$[*]" != "X conftest.file $srcdir/configure"; then
1788 - # If neither matched, then we have a broken ls. This can happen
1789 - # if, for instance, CONFIG_SHELL is bash and it inherits a
1790 - # broken ls alias from the environment. This has actually
1791 - # happened. Such a system could not be considered "sane".
1792 - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
1793 -alias in your environment])
1796 - test "$[2]" = conftest.file
1802 - AC_MSG_ERROR([newly created file is older than distributed files!
1803 -Check your system clock])
1805 -AC_MSG_RESULT(yes)])
1807 -# AM_PROG_INSTALL_STRIP
1809 -# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
1811 -# This program is free software; you can redistribute it and/or modify
1812 -# it under the terms of the GNU General Public License as published by
1813 -# the Free Software Foundation; either version 2, or (at your option)
1814 -# any later version.
1816 -# This program is distributed in the hope that it will be useful,
1817 -# but WITHOUT ANY WARRANTY; without even the implied warranty of
1818 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1819 -# GNU General Public License for more details.
1821 -# You should have received a copy of the GNU General Public License
1822 -# along with this program; if not, write to the Free Software
1823 -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
1826 -# One issue with vendor `install' (even GNU) is that you can't
1827 -# specify the program used to strip binaries. This is especially
1828 -# annoying in cross-compiling environments, where the build's strip
1829 -# is unlikely to handle the host's binaries.
1830 -# Fortunately install-sh will honor a STRIPPROG variable, so we
1831 -# always use install-sh in `make install-strip', and initialize
1832 -# STRIPPROG with the value of the STRIP variable (set by the user).
1833 -AC_DEFUN([AM_PROG_INSTALL_STRIP],
1834 -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
1835 -# Installed binaries are usually stripped using `strip' when the user
1836 -# run `make install-strip'. However `strip' might not be the right
1837 -# tool to use in cross-compilation environments, therefore Automake
1838 -# will honor the `STRIP' environment variable to overrule this program.
1839 -dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
1840 -if test "$cross_compiling" != no; then
1841 - AC_CHECK_TOOL([STRIP], [strip], :)
1843 -INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
1844 -AC_SUBST([INSTALL_STRIP_PROGRAM])])
1846 -# Check how to create a tarball. -*- Autoconf -*-
1848 -# Copyright (C) 2004 Free Software Foundation, Inc.
1850 -# This program is free software; you can redistribute it and/or modify
1851 -# it under the terms of the GNU General Public License as published by
1852 -# the Free Software Foundation; either version 2, or (at your option)
1853 -# any later version.
1855 -# This program is distributed in the hope that it will be useful,
1856 -# but WITHOUT ANY WARRANTY; without even the implied warranty of
1857 -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1858 -# GNU General Public License for more details.
1860 -# You should have received a copy of the GNU General Public License
1861 -# along with this program; if not, write to the Free Software
1862 -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
1868 -# _AM_PROG_TAR(FORMAT)
1869 -# --------------------
1870 -# Check how to create a tarball in format FORMAT.
1871 -# FORMAT should be one of `v7', `ustar', or `pax'.
1873 -# Substitute a variable $(am__tar) that is a command
1874 -# writing to stdout a FORMAT-tarball containing the directory
1876 -# tardir=directory && $(am__tar) > result.tar
1878 -# Substitute a variable $(am__untar) that extract such
1879 -# a tarball read from stdin.
1880 -# $(am__untar) < result.tar
1881 -AC_DEFUN([_AM_PROG_TAR],
1882 -[# Always define AMTAR for backward compatibility.
1883 -AM_MISSING_PROG([AMTAR], [tar])
1885 - [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
1886 - [m4_case([$1], [ustar],, [pax],,
1887 - [m4_fatal([Unknown tar format])])
1888 -AC_MSG_CHECKING([how to create a $1 tar archive])
1889 -# Loop over all known methods to create a tar archive until one works.
1890 -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
1891 -_am_tools=${am_cv_prog_tar_$1-$_am_tools}
1892 -# Do not fold the above two line into one, because Tru64 sh and
1893 -# Solaris sh will not grok spaces in the rhs of `-'.
1894 -for _am_tool in $_am_tools
1898 - for _am_tar in tar gnutar gtar;
1900 - AM_RUN_LOG([$_am_tar --version]) && break
1902 - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
1903 - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
1904 - am__untar="$_am_tar -xf -"
1907 - # Must skip GNU tar: if it does not support --format= it doesn't create
1908 - # ustar tarball either.
1909 - (tar --version) >/dev/null 2>&1 && continue
1910 - am__tar='tar chf - "$$tardir"'
1911 - am__tar_='tar chf - "$tardir"'
1912 - am__untar='tar xf -'
1915 - am__tar='pax -L -x $1 -w "$$tardir"'
1916 - am__tar_='pax -L -x $1 -w "$tardir"'
1917 - am__untar='pax -r'
1920 - am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
1921 - am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
1922 - am__untar='cpio -i -H $1 -d'
1931 - # If the value was cached, stop now. We just wanted to have am__tar
1932 - # and am__untar set.
1933 - test -n "${am_cv_prog_tar_$1}" && break
1935 - # tar/untar a dummy directory, and stop if the command works
1936 - rm -rf conftest.dir
1937 - mkdir conftest.dir
1938 - echo GrepMe > conftest.dir/file
1939 - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
1940 - rm -rf conftest.dir
1941 - if test -s conftest.tar; then
1942 - AM_RUN_LOG([$am__untar <conftest.tar])
1943 - grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
1946 -rm -rf conftest.dir
1948 -AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
1949 -AC_MSG_RESULT([$am_cv_prog_tar_$1])])
1950 -AC_SUBST([am__tar])
1951 -AC_SUBST([am__untar])
1954 -m4_include([acinclude.m4])
1955 diff --git a/config.h.in b/config.h.in
1956 deleted file mode 100644
1957 index 68d7c8c..0000000
1961 -/* config.h.in. Generated from configure.ac by autoheader. */
1963 -/* Define if an absolute indirect call/jump must NOT be prefixed with `*' */
1964 -#undef ABSOLUTE_WITHOUT_ASTERISK
1966 -/* Define it to \"addr32\" or \"addr32;\" to make GAS happy */
1969 -/* Define if you don't want to pass the mem= option to Linux */
1970 -#undef AUTO_LINUX_MEM_OPT
1972 -/* Define it to \"data32\" or \"data32;\" to make GAS happy */
1975 -/* Define if C symbols get an underscore after compilation */
1976 -#undef HAVE_ASM_USCORE
1978 -/* Define to 1 if you have the <curses.h> header file. */
1979 -#undef HAVE_CURSES_H
1981 -/* Define if edata is defined */
1982 -#undef HAVE_EDATA_SYMBOL
1984 -/* Define if end is defined */
1985 -#undef HAVE_END_SYMBOL
1987 -/* Define to 1 if you have the <inttypes.h> header file. */
1988 -#undef HAVE_INTTYPES_H
1990 -/* Define if you have a curses library */
1991 -#undef HAVE_LIBCURSES
1993 -/* Define to 1 if you have the <memory.h> header file. */
1994 -#undef HAVE_MEMORY_H
1996 -/* Define to 1 if you have the <ncurses/curses.h> header file. */
1997 -#undef HAVE_NCURSES_CURSES_H
1999 -/* Define to 1 if you have the <ncurses.h> header file. */
2000 -#undef HAVE_NCURSES_H
2002 -/* Define if opendisk() in -lutil can be used */
2003 -#undef HAVE_OPENDISK
2005 -/* Define if start is defined */
2006 -#undef HAVE_START_SYMBOL
2008 -/* Define to 1 if you have the <stdint.h> header file. */
2009 -#undef HAVE_STDINT_H
2011 -/* Define to 1 if you have the <stdlib.h> header file. */
2012 -#undef HAVE_STDLIB_H
2014 -/* Define to 1 if you have the <strings.h> header file. */
2015 -#undef HAVE_STRINGS_H
2017 -/* Define to 1 if you have the <string.h> header file. */
2018 -#undef HAVE_STRING_H
2020 -/* Define to 1 if you have the <sys/stat.h> header file. */
2021 -#undef HAVE_SYS_STAT_H
2023 -/* Define to 1 if you have the <sys/types.h> header file. */
2024 -#undef HAVE_SYS_TYPES_H
2026 -/* Define to 1 if you have the <unistd.h> header file. */
2027 -#undef HAVE_UNISTD_H
2029 -/* Define if _edata is defined */
2030 -#undef HAVE_USCORE_EDATA_SYMBOL
2032 -/* Define if end is defined */
2033 -#undef HAVE_USCORE_END_SYMBOL
2035 -/* Define if _start is defined */
2036 -#undef HAVE_USCORE_START_SYMBOL
2038 -/* Define if __bss_start is defined */
2039 -#undef HAVE_USCORE_USCORE_BSS_START_SYMBOL
2041 -/* Name of package */
2044 -/* Define to the address where bug reports for this package should be sent. */
2045 -#undef PACKAGE_BUGREPORT
2047 -/* Define to the full name of this package. */
2048 -#undef PACKAGE_NAME
2050 -/* Define to the full name and version of this package. */
2051 -#undef PACKAGE_STRING
2053 -/* Define to the one symbol short name of this package. */
2054 -#undef PACKAGE_TARNAME
2056 -/* Define to the version of this package. */
2057 -#undef PACKAGE_VERSION
2059 -/* Define if there is user specified preset menu string */
2060 -#undef PRESET_MENU_STRING
2062 -/* Define to 1 if you have the ANSI C header files. */
2063 -#undef STDC_HEADERS
2065 -/* Version number of package */
2067 diff --git a/configure b/configure
2068 deleted file mode 100755
2069 index 537ab89..0000000
2074 -# Guess values for system-dependent variables and create Makefiles.
2075 -# Generated by GNU Autoconf 2.59 for GRUB 0.97.
2077 -# Report bugs to <bug-grub@gnu.org>.
2079 -# Copyright (C) 2003 Free Software Foundation, Inc.
2080 -# This configure script is free software; the Free Software Foundation
2081 -# gives unlimited permission to copy, distribute and modify it.
2082 -## --------------------- ##
2083 -## M4sh Initialization. ##
2084 -## --------------------- ##
2086 -# Be Bourne compatible
2087 -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
2090 - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
2091 - # is contrary to our usage. Disable this feature.
2092 - alias -g '${1+"$@"}'='"$@"'
2093 -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
2096 -DUALCASE=1; export DUALCASE # for MKS sh
2098 -# Support unset when possible.
2099 -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
2106 -# Work around bugs in pre-3.0 UWIN ksh.
2107 -$as_unset ENV MAIL MAILPATH
2114 - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
2115 - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
2116 - LC_TELEPHONE LC_TIME
2118 - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
2119 - eval $as_var=C; export $as_var
2125 -# Required to use basename.
2126 -if expr a : '\(a\)' >/dev/null 2>&1; then
2132 -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
2133 - as_basename=basename
2139 -# Name of the executable.
2140 -as_me=`$as_basename "$0" ||
2141 -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
2142 - X"$0" : 'X\(//\)$' \| \
2143 - X"$0" : 'X\(/\)$' \| \
2144 - . : '\(.\)' 2>/dev/null ||
2146 - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
2147 - /^X\/\(\/\/\)$/{ s//\1/; q; }
2148 - /^X\/\(\/\).*/{ s//\1/; q; }
2152 -# PATH needs CR, and LINENO needs CR and PATH.
2153 -# Avoid depending upon Character Ranges.
2154 -as_cr_letters='abcdefghijklmnopqrstuvwxyz'
2155 -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
2156 -as_cr_Letters=$as_cr_letters$as_cr_LETTERS
2157 -as_cr_digits='0123456789'
2158 -as_cr_alnum=$as_cr_Letters$as_cr_digits
2160 -# The user is always right.
2161 -if test "${PATH_SEPARATOR+set}" != set; then
2162 - echo "#! /bin/sh" >conf$$.sh
2163 - echo "exit 0" >>conf$$.sh
2164 - chmod +x conf$$.sh
2165 - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
2166 - PATH_SEPARATOR=';'
2174 - as_lineno_1=$LINENO
2175 - as_lineno_2=$LINENO
2176 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
2177 - test "x$as_lineno_1" != "x$as_lineno_2" &&
2178 - test "x$as_lineno_3" = "x$as_lineno_2" || {
2179 - # Find who we are. Look in the path if we contain no path at all
2180 - # relative or not.
2182 - *[\\/]* ) as_myself=$0 ;;
2183 - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2184 -for as_dir in $PATH
2187 - test -z "$as_dir" && as_dir=.
2188 - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
2193 - # We did not find ourselves, most probably we were run as `sh COMMAND'
2194 - # in which case we are not to be found in the path.
2195 - if test "x$as_myself" = x; then
2198 - if test ! -f "$as_myself"; then
2199 - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
2200 - { (exit 1); exit 1; }; }
2202 - case $CONFIG_SHELL in
2204 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
2205 -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
2208 - test -z "$as_dir" && as_dir=.
2209 - for as_base in sh bash ksh sh5; do
2212 - if ("$as_dir/$as_base" -c '
2213 - as_lineno_1=$LINENO
2214 - as_lineno_2=$LINENO
2215 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
2216 - test "x$as_lineno_1" != "x$as_lineno_2" &&
2217 - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
2218 - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
2219 - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
2220 - CONFIG_SHELL=$as_dir/$as_base
2221 - export CONFIG_SHELL
2222 - exec "$CONFIG_SHELL" "$0" ${1+"$@"}
2230 - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
2231 - # uniformly replaced by the line number. The first 'sed' inserts a
2232 - # line-number line before each line; the second 'sed' does the real
2233 - # work. The second script uses 'N' to pair each line-number line
2234 - # with the numbered line, and appends trailing '-' during
2235 - # substitution so that $LINENO is not a special case at line end.
2236 - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
2237 - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
2238 - sed '=' <$as_myself |
2243 - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
2246 - s,^['$as_cr_digits']*\n,,
2247 - ' >$as_me.lineno &&
2248 - chmod +x $as_me.lineno ||
2249 - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
2250 - { (exit 1); exit 1; }; }
2252 - # Don't try to exec as it changes $[0], causing all sort of problems
2253 - # (the dirname of $[0] is not the place where we might find the
2254 - # original and so on. Autoconf is especially sensible to this).
2256 - # Exit status is that of the last command.
2261 -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
2262 - *c*,-n*) ECHO_N= ECHO_C='
2264 - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
2265 - *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
2268 -if expr a : '\(a\)' >/dev/null 2>&1; then
2274 -rm -f conf$$ conf$$.exe conf$$.file
2276 -if ln -s conf$$.file conf$$ 2>/dev/null; then
2277 - # We could just check for DJGPP; but this test a) works b) is more generic
2278 - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
2279 - if test -f conf$$.exe; then
2280 - # Don't use ln at all; we don't have any links
2285 -elif ln conf$$.file conf$$ 2>/dev/null; then
2290 -rm -f conf$$ conf$$.exe conf$$.file
2292 -if mkdir -p . 2>/dev/null; then
2295 - test -d ./-p && rmdir ./-p
2299 -as_executable_p="test -f"
2301 -# Sed expression to map a string onto a valid CPP name.
2302 -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
2304 -# Sed expression to map a string onto a valid variable name.
2305 -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
2309 -# We need space, tab and new line, in precisely that order.
2318 -# Name of the host.
2319 -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
2320 -# so uname gets run too.
2321 -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
2328 -ac_default_prefix=/usr/local
2329 -ac_config_libobj_dir=.
2334 -SHELL=${CONFIG_SHELL-/bin/sh}
2336 -# Maximum number of lines to put in a shell here document.
2337 -# This variable seems obsolete. It should probably be removed, and
2338 -# only ac_max_sed_lines should be used.
2339 -: ${ac_max_here_lines=38}
2341 -# Identity of this package.
2342 -PACKAGE_NAME='GRUB'
2343 -PACKAGE_TARNAME='grub'
2344 -PACKAGE_VERSION='0.97'
2345 -PACKAGE_STRING='GRUB 0.97'
2346 -PACKAGE_BUGREPORT='bug-grub@gnu.org'
2348 -ac_unique_file="stage2/stage2.c"
2349 -# Factoring default headers for most tests.
2350 -ac_includes_default="\
2352 -#if HAVE_SYS_TYPES_H
2353 -# include <sys/types.h>
2355 -#if HAVE_SYS_STAT_H
2356 -# include <sys/stat.h>
2359 -# include <stdlib.h>
2360 -# include <stddef.h>
2363 -# include <stdlib.h>
2367 -# if !STDC_HEADERS && HAVE_MEMORY_H
2368 -# include <memory.h>
2370 -# include <string.h>
2373 -# include <strings.h>
2375 -#if HAVE_INTTYPES_H
2376 -# include <inttypes.h>
2379 -# include <stdint.h>
2383 -# include <unistd.h>
2386 -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'
2389 -# Initialize some variables set by options.
2391 -ac_init_version=false
2392 -# The variables have the same names as the options, with
2393 -# dashes changed to underlines.
2394 -cache_file=/dev/null
2399 -program_prefix=NONE
2400 -program_suffix=NONE
2401 -program_transform_name=s,x,x,
2409 -# Installation directory options.
2410 -# These are left unexpanded so users can "make install exec_prefix=/foo"
2411 -# and all the variables that are supposed to be based on exec_prefix
2412 -# by default will actually change.
2413 -# Use braces instead of parens because sh, perl, etc. also accept them.
2414 -bindir='${exec_prefix}/bin'
2415 -sbindir='${exec_prefix}/sbin'
2416 -libexecdir='${exec_prefix}/libexec'
2417 -datadir='${prefix}/share'
2418 -sysconfdir='${prefix}/etc'
2419 -sharedstatedir='${prefix}/com'
2420 -localstatedir='${prefix}/var'
2421 -libdir='${exec_prefix}/lib'
2422 -includedir='${prefix}/include'
2423 -oldincludedir='/usr/include'
2424 -infodir='${prefix}/info'
2425 -mandir='${prefix}/man'
2430 - # If the previous option needs an argument, assign it.
2431 - if test -n "$ac_prev"; then
2432 - eval "$ac_prev=\$ac_option"
2437 - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
2439 - # Accept the important Cygnus configure options, so we can diagnose typos.
2441 - case $ac_option in
2443 - -bindir | --bindir | --bindi | --bind | --bin | --bi)
2445 - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
2446 - bindir=$ac_optarg ;;
2448 - -build | --build | --buil | --bui | --bu)
2449 - ac_prev=build_alias ;;
2450 - -build=* | --build=* | --buil=* | --bui=* | --bu=*)
2451 - build_alias=$ac_optarg ;;
2453 - -cache-file | --cache-file | --cache-fil | --cache-fi \
2454 - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
2455 - ac_prev=cache_file ;;
2456 - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
2457 - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
2458 - cache_file=$ac_optarg ;;
2460 - --config-cache | -C)
2461 - cache_file=config.cache ;;
2463 - -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
2464 - ac_prev=datadir ;;
2465 - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
2467 - datadir=$ac_optarg ;;
2469 - -disable-* | --disable-*)
2470 - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
2471 - # Reject names that are not valid shell variable names.
2472 - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
2473 - { echo "$as_me: error: invalid feature name: $ac_feature" >&2
2474 - { (exit 1); exit 1; }; }
2475 - ac_feature=`echo $ac_feature | sed 's/-/_/g'`
2476 - eval "enable_$ac_feature=no" ;;
2478 - -enable-* | --enable-*)
2479 - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
2480 - # Reject names that are not valid shell variable names.
2481 - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
2482 - { echo "$as_me: error: invalid feature name: $ac_feature" >&2
2483 - { (exit 1); exit 1; }; }
2484 - ac_feature=`echo $ac_feature | sed 's/-/_/g'`
2485 - case $ac_option in
2486 - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
2487 - *) ac_optarg=yes ;;
2489 - eval "enable_$ac_feature='$ac_optarg'" ;;
2491 - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
2492 - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
2493 - | --exec | --exe | --ex)
2494 - ac_prev=exec_prefix ;;
2495 - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
2496 - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
2497 - | --exec=* | --exe=* | --ex=*)
2498 - exec_prefix=$ac_optarg ;;
2500 - -gas | --gas | --ga | --g)
2501 - # Obsolete; use --with-gas.
2504 - -help | --help | --hel | --he | -h)
2505 - ac_init_help=long ;;
2506 - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
2507 - ac_init_help=recursive ;;
2508 - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
2509 - ac_init_help=short ;;
2511 - -host | --host | --hos | --ho)
2512 - ac_prev=host_alias ;;
2513 - -host=* | --host=* | --hos=* | --ho=*)
2514 - host_alias=$ac_optarg ;;
2516 - -includedir | --includedir | --includedi | --included | --include \
2517 - | --includ | --inclu | --incl | --inc)
2518 - ac_prev=includedir ;;
2519 - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
2520 - | --includ=* | --inclu=* | --incl=* | --inc=*)
2521 - includedir=$ac_optarg ;;
2523 - -infodir | --infodir | --infodi | --infod | --info | --inf)
2524 - ac_prev=infodir ;;
2525 - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
2526 - infodir=$ac_optarg ;;
2528 - -libdir | --libdir | --libdi | --libd)
2530 - -libdir=* | --libdir=* | --libdi=* | --libd=*)
2531 - libdir=$ac_optarg ;;
2533 - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
2534 - | --libexe | --libex | --libe)
2535 - ac_prev=libexecdir ;;
2536 - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
2537 - | --libexe=* | --libex=* | --libe=*)
2538 - libexecdir=$ac_optarg ;;
2540 - -localstatedir | --localstatedir | --localstatedi | --localstated \
2541 - | --localstate | --localstat | --localsta | --localst \
2542 - | --locals | --local | --loca | --loc | --lo)
2543 - ac_prev=localstatedir ;;
2544 - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
2545 - | --localstate=* | --localstat=* | --localsta=* | --localst=* \
2546 - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
2547 - localstatedir=$ac_optarg ;;
2549 - -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
2551 - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
2552 - mandir=$ac_optarg ;;
2554 - -nfp | --nfp | --nf)
2555 - # Obsolete; use --without-fp.
2558 - -no-create | --no-create | --no-creat | --no-crea | --no-cre \
2559 - | --no-cr | --no-c | -n)
2562 - -no-recursion | --no-recursion | --no-recursio | --no-recursi \
2563 - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
2564 - no_recursion=yes ;;
2566 - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
2567 - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
2568 - | --oldin | --oldi | --old | --ol | --o)
2569 - ac_prev=oldincludedir ;;
2570 - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
2571 - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
2572 - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
2573 - oldincludedir=$ac_optarg ;;
2575 - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
2577 - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
2578 - prefix=$ac_optarg ;;
2580 - -program-prefix | --program-prefix | --program-prefi | --program-pref \
2581 - | --program-pre | --program-pr | --program-p)
2582 - ac_prev=program_prefix ;;
2583 - -program-prefix=* | --program-prefix=* | --program-prefi=* \
2584 - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
2585 - program_prefix=$ac_optarg ;;
2587 - -program-suffix | --program-suffix | --program-suffi | --program-suff \
2588 - | --program-suf | --program-su | --program-s)
2589 - ac_prev=program_suffix ;;
2590 - -program-suffix=* | --program-suffix=* | --program-suffi=* \
2591 - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
2592 - program_suffix=$ac_optarg ;;
2594 - -program-transform-name | --program-transform-name \
2595 - | --program-transform-nam | --program-transform-na \
2596 - | --program-transform-n | --program-transform- \
2597 - | --program-transform | --program-transfor \
2598 - | --program-transfo | --program-transf \
2599 - | --program-trans | --program-tran \
2600 - | --progr-tra | --program-tr | --program-t)
2601 - ac_prev=program_transform_name ;;
2602 - -program-transform-name=* | --program-transform-name=* \
2603 - | --program-transform-nam=* | --program-transform-na=* \
2604 - | --program-transform-n=* | --program-transform-=* \
2605 - | --program-transform=* | --program-transfor=* \
2606 - | --program-transfo=* | --program-transf=* \
2607 - | --program-trans=* | --program-tran=* \
2608 - | --progr-tra=* | --program-tr=* | --program-t=*)
2609 - program_transform_name=$ac_optarg ;;
2611 - -q | -quiet | --quiet | --quie | --qui | --qu | --q \
2612 - | -silent | --silent | --silen | --sile | --sil)
2615 - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
2616 - ac_prev=sbindir ;;
2617 - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
2618 - | --sbi=* | --sb=*)
2619 - sbindir=$ac_optarg ;;
2621 - -sharedstatedir | --sharedstatedir | --sharedstatedi \
2622 - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
2623 - | --sharedst | --shareds | --shared | --share | --shar \
2625 - ac_prev=sharedstatedir ;;
2626 - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
2627 - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
2628 - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
2629 - | --sha=* | --sh=*)
2630 - sharedstatedir=$ac_optarg ;;
2632 - -site | --site | --sit)
2634 - -site=* | --site=* | --sit=*)
2635 - site=$ac_optarg ;;
2637 - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
2639 - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
2640 - srcdir=$ac_optarg ;;
2642 - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
2643 - | --syscon | --sysco | --sysc | --sys | --sy)
2644 - ac_prev=sysconfdir ;;
2645 - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
2646 - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
2647 - sysconfdir=$ac_optarg ;;
2649 - -target | --target | --targe | --targ | --tar | --ta | --t)
2650 - ac_prev=target_alias ;;
2651 - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
2652 - target_alias=$ac_optarg ;;
2654 - -v | -verbose | --verbose | --verbos | --verbo | --verb)
2657 - -version | --version | --versio | --versi | --vers | -V)
2658 - ac_init_version=: ;;
2660 - -with-* | --with-*)
2661 - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
2662 - # Reject names that are not valid shell variable names.
2663 - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
2664 - { echo "$as_me: error: invalid package name: $ac_package" >&2
2665 - { (exit 1); exit 1; }; }
2666 - ac_package=`echo $ac_package| sed 's/-/_/g'`
2667 - case $ac_option in
2668 - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
2669 - *) ac_optarg=yes ;;
2671 - eval "with_$ac_package='$ac_optarg'" ;;
2673 - -without-* | --without-*)
2674 - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
2675 - # Reject names that are not valid shell variable names.
2676 - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
2677 - { echo "$as_me: error: invalid package name: $ac_package" >&2
2678 - { (exit 1); exit 1; }; }
2679 - ac_package=`echo $ac_package | sed 's/-/_/g'`
2680 - eval "with_$ac_package=no" ;;
2683 - # Obsolete; use --with-x.
2686 - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
2687 - | --x-incl | --x-inc | --x-in | --x-i)
2688 - ac_prev=x_includes ;;
2689 - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
2690 - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
2691 - x_includes=$ac_optarg ;;
2693 - -x-libraries | --x-libraries | --x-librarie | --x-librari \
2694 - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
2695 - ac_prev=x_libraries ;;
2696 - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
2697 - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
2698 - x_libraries=$ac_optarg ;;
2700 - -*) { echo "$as_me: error: unrecognized option: $ac_option
2701 -Try \`$0 --help' for more information." >&2
2702 - { (exit 1); exit 1; }; }
2706 - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
2707 - # Reject names that are not valid shell variable names.
2708 - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
2709 - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
2710 - { (exit 1); exit 1; }; }
2711 - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
2712 - eval "$ac_envvar='$ac_optarg'"
2713 - export $ac_envvar ;;
2716 - # FIXME: should be removed in autoconf 3.0.
2717 - echo "$as_me: WARNING: you should use --build, --host, --target" >&2
2718 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
2719 - echo "$as_me: WARNING: invalid host type: $ac_option" >&2
2720 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
2726 -if test -n "$ac_prev"; then
2727 - ac_option=--`echo $ac_prev | sed 's/_/-/g'`
2728 - { echo "$as_me: error: missing argument to $ac_option" >&2
2729 - { (exit 1); exit 1; }; }
2732 -# Be sure to have absolute paths.
2733 -for ac_var in exec_prefix prefix
2735 - eval ac_val=$`echo $ac_var`
2737 - [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
2738 - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
2739 - { (exit 1); exit 1; }; };;
2743 -# Be sure to have absolute paths.
2744 -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
2745 - localstatedir libdir includedir oldincludedir infodir mandir
2747 - eval ac_val=$`echo $ac_var`
2749 - [\\/$]* | ?:[\\/]* ) ;;
2750 - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
2751 - { (exit 1); exit 1; }; };;
2755 -# There might be people who depend on the old broken behavior: `$host'
2756 -# used to hold the argument of --host etc.
2757 -# FIXME: To remove some day.
2760 -target=$target_alias
2762 -# FIXME: To remove some day.
2763 -if test "x$host_alias" != x; then
2764 - if test "x$build_alias" = x; then
2765 - cross_compiling=maybe
2766 - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
2767 - If a cross compiler is detected then cross compile mode will be used." >&2
2768 - elif test "x$build_alias" != "x$host_alias"; then
2769 - cross_compiling=yes
2774 -test -n "$host_alias" && ac_tool_prefix=$host_alias-
2776 -test "$silent" = yes && exec 6>/dev/null
2779 -# Find the source files, if location was not specified.
2780 -if test -z "$srcdir"; then
2781 - ac_srcdir_defaulted=yes
2782 - # Try the directory containing this script, then its parent.
2783 - ac_confdir=`(dirname "$0") 2>/dev/null ||
2784 -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
2785 - X"$0" : 'X\(//\)[^/]' \| \
2786 - X"$0" : 'X\(//\)$' \| \
2787 - X"$0" : 'X\(/\)' \| \
2788 - . : '\(.\)' 2>/dev/null ||
2790 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
2791 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
2792 - /^X\(\/\/\)$/{ s//\1/; q; }
2793 - /^X\(\/\).*/{ s//\1/; q; }
2795 - srcdir=$ac_confdir
2796 - if test ! -r $srcdir/$ac_unique_file; then
2800 - ac_srcdir_defaulted=no
2802 -if test ! -r $srcdir/$ac_unique_file; then
2803 - if test "$ac_srcdir_defaulted" = yes; then
2804 - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
2805 - { (exit 1); exit 1; }; }
2807 - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
2808 - { (exit 1); exit 1; }; }
2811 -(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
2812 - { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
2813 - { (exit 1); exit 1; }; }
2814 -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
2815 -ac_env_build_alias_set=${build_alias+set}
2816 -ac_env_build_alias_value=$build_alias
2817 -ac_cv_env_build_alias_set=${build_alias+set}
2818 -ac_cv_env_build_alias_value=$build_alias
2819 -ac_env_host_alias_set=${host_alias+set}
2820 -ac_env_host_alias_value=$host_alias
2821 -ac_cv_env_host_alias_set=${host_alias+set}
2822 -ac_cv_env_host_alias_value=$host_alias
2823 -ac_env_target_alias_set=${target_alias+set}
2824 -ac_env_target_alias_value=$target_alias
2825 -ac_cv_env_target_alias_set=${target_alias+set}
2826 -ac_cv_env_target_alias_value=$target_alias
2827 -ac_env_CC_set=${CC+set}
2828 -ac_env_CC_value=$CC
2829 -ac_cv_env_CC_set=${CC+set}
2830 -ac_cv_env_CC_value=$CC
2831 -ac_env_CFLAGS_set=${CFLAGS+set}
2832 -ac_env_CFLAGS_value=$CFLAGS
2833 -ac_cv_env_CFLAGS_set=${CFLAGS+set}
2834 -ac_cv_env_CFLAGS_value=$CFLAGS
2835 -ac_env_LDFLAGS_set=${LDFLAGS+set}
2836 -ac_env_LDFLAGS_value=$LDFLAGS
2837 -ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
2838 -ac_cv_env_LDFLAGS_value=$LDFLAGS
2839 -ac_env_CPPFLAGS_set=${CPPFLAGS+set}
2840 -ac_env_CPPFLAGS_value=$CPPFLAGS
2841 -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
2842 -ac_cv_env_CPPFLAGS_value=$CPPFLAGS
2843 -ac_env_CPP_set=${CPP+set}
2844 -ac_env_CPP_value=$CPP
2845 -ac_cv_env_CPP_set=${CPP+set}
2846 -ac_cv_env_CPP_value=$CPP
2849 -# Report the --help message.
2851 -if test "$ac_init_help" = "long"; then
2852 - # Omit some internal or obsolete options to make the list less imposing.
2853 - # This message is too long to be a string in the A/UX 3.1 sh.
2855 -\`configure' configures GRUB 0.97 to adapt to many kinds of systems.
2857 -Usage: $0 [OPTION]... [VAR=VALUE]...
2859 -To assign environment variables (e.g., CC, CFLAGS...), specify them as
2860 -VAR=VALUE. See below for descriptions of some of the useful variables.
2862 -Defaults for the options are specified in brackets.
2865 - -h, --help display this help and exit
2866 - --help=short display options specific to this package
2867 - --help=recursive display the short help of all the included packages
2868 - -V, --version display version information and exit
2869 - -q, --quiet, --silent do not print \`checking...' messages
2870 - --cache-file=FILE cache test results in FILE [disabled]
2871 - -C, --config-cache alias for \`--cache-file=config.cache'
2872 - -n, --no-create do not create output files
2873 - --srcdir=DIR find the sources in DIR [configure dir or \`..']
2878 -Installation directories:
2879 - --prefix=PREFIX install architecture-independent files in PREFIX
2880 - [$ac_default_prefix]
2881 - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
2884 -By default, \`make install' will install all the files in
2885 -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
2886 -an installation prefix other than \`$ac_default_prefix' using \`--prefix',
2887 -for instance \`--prefix=\$HOME'.
2889 -For better control, use the options below.
2891 -Fine tuning of the installation directories:
2892 - --bindir=DIR user executables [EPREFIX/bin]
2893 - --sbindir=DIR system admin executables [EPREFIX/sbin]
2894 - --libexecdir=DIR program executables [EPREFIX/libexec]
2895 - --datadir=DIR read-only architecture-independent data [PREFIX/share]
2896 - --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
2897 - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
2898 - --localstatedir=DIR modifiable single-machine data [PREFIX/var]
2899 - --libdir=DIR object code libraries [EPREFIX/lib]
2900 - --includedir=DIR C header files [PREFIX/include]
2901 - --oldincludedir=DIR C header files for non-gcc [/usr/include]
2902 - --infodir=DIR info documentation [PREFIX/info]
2903 - --mandir=DIR man documentation [PREFIX/man]
2909 - --program-prefix=PREFIX prepend PREFIX to installed program names
2910 - --program-suffix=SUFFIX append SUFFIX to installed program names
2911 - --program-transform-name=PROGRAM run sed PROGRAM on installed program names
2914 - --build=BUILD configure for building on BUILD [guessed]
2915 - --host=HOST cross-compile to build programs to run on HOST [BUILD]
2919 -if test -n "$ac_init_help"; then
2920 - case $ac_init_help in
2921 - short | recursive ) echo "Configuration of GRUB 0.97:";;
2926 - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
2927 - --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
2928 - --enable-maintainer-mode enable make rules and dependencies not useful
2929 - (and sometimes confusing) to the casual installer
2930 - --disable-dependency-tracking speeds up one-time build
2931 - --enable-dependency-tracking do not reject slow dependency extractors
2932 - --disable-ext2fs disable ext2fs support in Stage 2
2933 - --disable-fat disable FAT support in Stage 2
2934 - --disable-ffs disable FFS support in Stage 2
2935 - --disable-ufs2 disable UFS2 support in Stage 2
2936 - --disable-minix disable Minix fs support in Stage 2
2937 - --disable-reiserfs disable ReiserFS support in Stage 2
2938 - --disable-vstafs disable VSTa FS support in Stage 2
2939 - --disable-jfs disable IBM JFS support in Stage 2
2940 - --disable-xfs disable SGI XFS support in Stage 2
2941 - --disable-iso9660 disable ISO9660 support in Stage 2
2942 - --disable-gunzip disable decompression in Stage 2
2943 - --disable-md5-password disable MD5 password support in Stage 2
2944 - --disable-packet-retransmission
2945 - turn off packet retransmission
2946 - --enable-pci-direct access PCI directly instead of using BIOS
2947 - --enable-3c509 enable 3Com509 driver
2948 - --enable-3c529 enable 3Com529 driver
2949 - --enable-3c595 enable 3Com595 driver
2950 - --enable-3c90x enable 3Com90x driver
2951 - --enable-cs89x0 enable CS89x0 driver
2952 - --enable-davicom enable Davicom driver
2953 - --enable-depca enable DEPCA and EtherWORKS driver
2954 - --enable-eepro enable Etherexpress Pro/10 driver
2955 - --enable-eepro100 enable Etherexpress Pro/100 driver
2956 - --enable-epic100 enable SMC 83c170 EPIC/100 driver
2957 - --enable-3c507 enable 3Com507 driver
2958 - --enable-exos205 enable EXOS205 driver
2959 - --enable-ni5210 enable Racal-Interlan NI5210 driver
2960 - --enable-lance enable Lance PCI PCNet/32 driver
2961 - --enable-ne2100 enable Novell NE2100 driver
2962 - --enable-ni6510 enable Racal-Interlan NI6510 driver
2963 - --enable-natsemi enable NatSemi DP8381x driver
2964 - --enable-ni5010 enable Racal-Interlan NI5010 driver
2965 - --enable-3c503 enable 3Com503 driver
2966 - --enable-ne enable NE1000/2000 ISA driver
2967 - --enable-ns8390 enable NE2000 PCI driver
2968 - --enable-wd enable WD8003/8013, SMC8216/8416 driver
2969 - --enable-otulip enable old Tulip driver
2970 - --enable-rtl8139 enable Realtek 8139 driver
2971 - --enable-sis900 enable SIS 900 and SIS 7016 driver
2972 - --enable-sk-g16 enable Schneider and Koch G16 driver
2973 - --enable-smc9000 enable SMC9000 driver
2974 - --enable-tiara enable Tiara driver
2975 - --enable-tulip enable Tulip driver
2976 - --enable-via-rhine enable Rhine-I/II driver
2977 - --enable-w89c840 enable Winbond W89c840, Compex RL100-ATX driver
2978 - --enable-3c503-shmem use 3c503 shared memory mode
2979 - --enable-3c503-aui use AUI by default on 3c503 cards
2980 - --enable-compex-rl2000-fix
2981 - specify this if you have a Compex RL2000 PCI
2982 - --enable-smc9000-scan=LIST
2983 - probe for SMC9000 I/O addresses using LIST
2984 - --enable-ne-scan=LIST probe for NE base address using LIST
2985 - --enable-wd-default-mem=MEM
2986 - set the default memory location for WD/SMC
2987 - --enable-cs-scan=LIST probe for CS89x0 base address using LIST
2988 - --enable-diskless enable diskless support
2989 - --disable-hercules disable hercules terminal support
2990 - --disable-serial disable serial terminal support
2991 - --enable-serial-speed-simulation
2992 - simulate the slowness of a serial device
2993 - --enable-preset-menu=FILE
2994 - preset a menu file FILE in Stage 2
2995 - --enable-example-kernel
2996 - build the example Multiboot kernel
2997 - --disable-auto-linux-mem-opt
2998 - don't pass Linux mem= option automatically
3001 - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
3002 - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
3003 - --with-binutils=DIR search the directory DIR to find binutils
3004 - --without-curses do not use curses
3006 -Some influential environment variables:
3007 - CC C compiler command
3008 - CFLAGS C compiler flags
3009 - LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
3010 - nonstandard directory <lib dir>
3011 - CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
3012 - headers in a nonstandard directory <include dir>
3013 - CPP C preprocessor
3015 -Use these variables to override the choices made by `configure' or to help
3016 -it to find libraries and programs with nonstandard names/locations.
3018 -Report bugs to <bug-grub@gnu.org>.
3022 -if test "$ac_init_help" = "recursive"; then
3023 - # If there are subdirs, report their specific --help.
3025 - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
3026 - test -d $ac_dir || continue
3029 -if test "$ac_dir" != .; then
3030 - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
3031 - # A "../" for each directory in $ac_dir_suffix.
3032 - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
3034 - ac_dir_suffix= ac_top_builddir=
3038 - .) # No --srcdir option. We are building in place.
3040 - if test -z "$ac_top_builddir"; then
3043 - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
3045 - [\\/]* | ?:[\\/]* ) # Absolute path.
3046 - ac_srcdir=$srcdir$ac_dir_suffix;
3047 - ac_top_srcdir=$srcdir ;;
3048 - *) # Relative path.
3049 - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
3050 - ac_top_srcdir=$ac_top_builddir$srcdir ;;
3053 -# Do not use `cd foo && pwd` to compute absolute paths, because
3054 -# the directories may not exist.
3056 -.) ac_abs_builddir="$ac_dir";;
3059 - .) ac_abs_builddir=`pwd`;;
3060 - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
3061 - *) ac_abs_builddir=`pwd`/"$ac_dir";;
3064 -case $ac_abs_builddir in
3065 -.) ac_abs_top_builddir=${ac_top_builddir}.;;
3067 - case ${ac_top_builddir}. in
3068 - .) ac_abs_top_builddir=$ac_abs_builddir;;
3069 - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
3070 - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
3073 -case $ac_abs_builddir in
3074 -.) ac_abs_srcdir=$ac_srcdir;;
3076 - case $ac_srcdir in
3077 - .) ac_abs_srcdir=$ac_abs_builddir;;
3078 - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
3079 - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
3082 -case $ac_abs_builddir in
3083 -.) ac_abs_top_srcdir=$ac_top_srcdir;;
3085 - case $ac_top_srcdir in
3086 - .) ac_abs_top_srcdir=$ac_abs_builddir;;
3087 - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
3088 - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
3093 - # Check for guested configure; otherwise get Cygnus style configure.
3094 - if test -f $ac_srcdir/configure.gnu; then
3096 - $SHELL $ac_srcdir/configure.gnu --help=recursive
3097 - elif test -f $ac_srcdir/configure; then
3099 - $SHELL $ac_srcdir/configure --help=recursive
3100 - elif test -f $ac_srcdir/configure.ac ||
3101 - test -f $ac_srcdir/configure.in; then
3103 - $ac_configure --help
3105 - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
3111 -test -n "$ac_init_help" && exit 0
3112 -if $ac_init_version; then
3114 -GRUB configure 0.97
3115 -generated by GNU Autoconf 2.59
3117 -Copyright (C) 2003 Free Software Foundation, Inc.
3118 -This configure script is free software; the Free Software Foundation
3119 -gives unlimited permission to copy, distribute and modify it.
3125 -This file contains any messages produced by compilers while
3126 -running configure, to aid debugging if configure makes a mistake.
3128 -It was created by GRUB $as_me 0.97, which was
3129 -generated by GNU Autoconf 2.59. Invocation command line was
3140 -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
3141 -uname -m = `(uname -m) 2>/dev/null || echo unknown`
3142 -uname -r = `(uname -r) 2>/dev/null || echo unknown`
3143 -uname -s = `(uname -s) 2>/dev/null || echo unknown`
3144 -uname -v = `(uname -v) 2>/dev/null || echo unknown`
3146 -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
3147 -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
3149 -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
3150 -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
3151 -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
3152 -hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
3153 -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
3154 -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
3155 -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
3159 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3160 -for as_dir in $PATH
3163 - test -z "$as_dir" && as_dir=.
3164 - echo "PATH: $as_dir"
3179 -# Keep a trace of the command line.
3180 -# Strip out --no-create and --no-recursion so they do not pile up.
3181 -# Strip out --silent because we don't want to record it for future runs.
3182 -# Also quote any args containing shell meta-characters.
3183 -# Make two passes to allow for proper duplicate-argument suppression.
3185 -ac_configure_args0=
3186 -ac_configure_args1=
3188 -ac_must_keep_next=false
3194 - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
3195 - -q | -quiet | --quiet | --quie | --qui | --qu | --q \
3196 - | -silent | --silent | --silen | --sile | --sil)
3198 - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
3199 - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
3202 - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
3204 - ac_configure_args1="$ac_configure_args1 '$ac_arg'"
3205 - if test $ac_must_keep_next = true; then
3206 - ac_must_keep_next=false # Got value, back to normal.
3209 - *=* | --config-cache | -C | -disable-* | --disable-* \
3210 - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
3211 - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
3212 - | -with-* | --with-* | -without-* | --without-* | --x)
3213 - case "$ac_configure_args0 " in
3214 - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
3217 - -* ) ac_must_keep_next=true ;;
3220 - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
3221 - # Get rid of the leading space.
3227 -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
3228 -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
3230 -# When interrupted or exit'd, cleanup temporary files, and complete
3231 -# config.log. We remove comments because anyway the quotes in there
3232 -# would cause problems or look ugly.
3233 -# WARNING: Be sure not to use single quotes in there, as some shells,
3234 -# such as our DU 5.0 friend, will then `close' the trap.
3235 -trap 'exit_status=$?
3236 - # Save into config.log some information that might help in debugging.
3241 -## ---------------- ##
3242 -## Cache variables. ##
3243 -## ---------------- ##
3246 - # The following way of writing the cache mishandles newlines in values,
3249 - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
3252 - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
3253 - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
3257 - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
3264 -## ----------------- ##
3265 -## Output variables. ##
3266 -## ----------------- ##
3269 - for ac_var in $ac_subst_vars
3271 - eval ac_val=$`echo $ac_var`
3272 - echo "$ac_var='"'"'$ac_val'"'"'"
3276 - if test -n "$ac_subst_files"; then
3278 -## ------------- ##
3279 -## Output files. ##
3280 -## ------------- ##
3283 - for ac_var in $ac_subst_files
3285 - eval ac_val=$`echo $ac_var`
3286 - echo "$ac_var='"'"'$ac_val'"'"'"
3291 - if test -s confdefs.h; then
3298 - sed "/^$/d" confdefs.h | sort
3301 - test "$ac_signal" != 0 &&
3302 - echo "$as_me: caught signal $ac_signal"
3303 - echo "$as_me: exit $exit_status"
3305 - rm -f core *.core &&
3306 - rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
3309 -for ac_signal in 1 2 13 15; do
3310 - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
3314 -# confdefs.h avoids OS command line length limits that DEFS can exceed.
3315 -rm -rf conftest* confdefs.h
3316 -# AIX cpp loses on an empty file, so make sure it contains at least a newline.
3319 -# Predefined preprocessor variables.
3321 -cat >>confdefs.h <<_ACEOF
3322 -#define PACKAGE_NAME "$PACKAGE_NAME"
3326 -cat >>confdefs.h <<_ACEOF
3327 -#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
3331 -cat >>confdefs.h <<_ACEOF
3332 -#define PACKAGE_VERSION "$PACKAGE_VERSION"
3336 -cat >>confdefs.h <<_ACEOF
3337 -#define PACKAGE_STRING "$PACKAGE_STRING"
3341 -cat >>confdefs.h <<_ACEOF
3342 -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
3346 -# Let the site file select an alternate cache file if it wants to.
3347 -# Prefer explicitly selected file to automatically selected ones.
3348 -if test -z "$CONFIG_SITE"; then
3349 - if test "x$prefix" != xNONE; then
3350 - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
3352 - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
3355 -for ac_site_file in $CONFIG_SITE; do
3356 - if test -r "$ac_site_file"; then
3357 - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
3358 -echo "$as_me: loading site script $ac_site_file" >&6;}
3359 - sed 's/^/| /' "$ac_site_file" >&5
3364 -if test -r "$cache_file"; then
3365 - # Some versions of bash will fail to source /dev/null (special
3366 - # files actually), so we avoid doing that.
3367 - if test -f "$cache_file"; then
3368 - { echo "$as_me:$LINENO: loading cache $cache_file" >&5
3369 -echo "$as_me: loading cache $cache_file" >&6;}
3370 - case $cache_file in
3371 - [\\/]* | ?:[\\/]* ) . $cache_file;;
3372 - *) . ./$cache_file;;
3376 - { echo "$as_me:$LINENO: creating cache $cache_file" >&5
3377 -echo "$as_me: creating cache $cache_file" >&6;}
3381 -# Check that the precious variables saved in the cache have kept the same
3383 -ac_cache_corrupted=false
3384 -for ac_var in `(set) 2>&1 |
3385 - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
3386 - eval ac_old_set=\$ac_cv_env_${ac_var}_set
3387 - eval ac_new_set=\$ac_env_${ac_var}_set
3388 - eval ac_old_val="\$ac_cv_env_${ac_var}_value"
3389 - eval ac_new_val="\$ac_env_${ac_var}_value"
3390 - case $ac_old_set,$ac_new_set in
3392 - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
3393 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
3394 - ac_cache_corrupted=: ;;
3396 - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
3397 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
3398 - ac_cache_corrupted=: ;;
3401 - if test "x$ac_old_val" != "x$ac_new_val"; then
3402 - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
3403 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
3404 - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
3405 -echo "$as_me: former value: $ac_old_val" >&2;}
3406 - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
3407 -echo "$as_me: current value: $ac_new_val" >&2;}
3408 - ac_cache_corrupted=:
3411 - # Pass precious variables to config.status.
3412 - if test "$ac_new_set" = set; then
3413 - case $ac_new_val in
3414 - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
3415 - ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
3416 - *) ac_arg=$ac_var=$ac_new_val ;;
3418 - case " $ac_configure_args " in
3419 - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
3420 - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
3424 -if $ac_cache_corrupted; then
3425 - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
3426 -echo "$as_me: error: changes in the environment can compromise the build" >&2;}
3427 - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
3428 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
3429 - { (exit 1); exit 1; }; }
3433 -ac_cpp='$CPP $CPPFLAGS'
3434 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
3435 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
3436 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
3465 - ac_config_headers="$ac_config_headers config.h"
3467 -am__api_version="1.9"
3469 -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
3470 - if test -f $ac_dir/install-sh; then
3471 - ac_aux_dir=$ac_dir
3472 - ac_install_sh="$ac_aux_dir/install-sh -c"
3474 - elif test -f $ac_dir/install.sh; then
3475 - ac_aux_dir=$ac_dir
3476 - ac_install_sh="$ac_aux_dir/install.sh -c"
3478 - elif test -f $ac_dir/shtool; then
3479 - ac_aux_dir=$ac_dir
3480 - ac_install_sh="$ac_aux_dir/shtool install -c"
3484 -if test -z "$ac_aux_dir"; then
3485 - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
3486 -echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
3487 - { (exit 1); exit 1; }; }
3489 -ac_config_guess="$SHELL $ac_aux_dir/config.guess"
3490 -ac_config_sub="$SHELL $ac_aux_dir/config.sub"
3491 -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
3493 -# Find a good install program. We prefer a C program (faster),
3494 -# so one script is as good as another. But avoid the broken or
3495 -# incompatible versions:
3496 -# SysV /etc/install, /usr/sbin/install
3497 -# SunOS /usr/etc/install
3498 -# IRIX /sbin/install
3500 -# AmigaOS /C/install, which installs bootblocks on floppy discs
3501 -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
3502 -# AFS /usr/afsws/bin/install, which mishandles nonexistent args
3503 -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
3504 -# OS/2's system install, which has a completely different semantic
3505 -# ./install, which can be erroneously created by make from ./install.sh.
3506 -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
3507 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
3508 -if test -z "$INSTALL"; then
3509 -if test "${ac_cv_path_install+set}" = set; then
3510 - echo $ECHO_N "(cached) $ECHO_C" >&6
3512 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3513 -for as_dir in $PATH
3516 - test -z "$as_dir" && as_dir=.
3517 - # Account for people who put trailing slashes in PATH elements.
3519 - ./ | .// | /cC/* | \
3520 - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
3521 - ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
3524 - # OSF1 and SCO ODT 3.0 have their own names for install.
3525 - # Don't use installbsd from OSF since it installs stuff as root
3527 - for ac_prog in ginstall scoinst install; do
3528 - for ac_exec_ext in '' $ac_executable_extensions; do
3529 - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
3530 - if test $ac_prog = install &&
3531 - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
3532 - # AIX install. It has an incompatible calling convention.
3534 - elif test $ac_prog = install &&
3535 - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
3536 - # program-specific install script used by HP pwplus--don't use.
3539 - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
3551 - if test "${ac_cv_path_install+set}" = set; then
3552 - INSTALL=$ac_cv_path_install
3554 - # As a last resort, use the slow shell script. We don't cache a
3555 - # path for INSTALL within a source directory, because that will
3556 - # break other packages using the cache if that directory is
3557 - # removed, or if the path is relative.
3558 - INSTALL=$ac_install_sh
3561 -echo "$as_me:$LINENO: result: $INSTALL" >&5
3562 -echo "${ECHO_T}$INSTALL" >&6
3564 -# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
3565 -# It thinks the first close brace ends the variable substitution.
3566 -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
3568 -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
3570 -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
3572 -echo "$as_me:$LINENO: checking whether build environment is sane" >&5
3573 -echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
3576 -echo timestamp > conftest.file
3577 -# Do `set' in a subshell so we don't clobber the current shell's
3578 -# arguments. Must try -L first in case configure is actually a
3579 -# symlink; some systems play weird games with the mod time of symlinks
3580 -# (eg FreeBSD returns the mod time of the symlink's containing
3583 - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
3584 - if test "$*" = "X"; then
3586 - set X `ls -t $srcdir/configure conftest.file`
3588 - rm -f conftest.file
3589 - if test "$*" != "X $srcdir/configure conftest.file" \
3590 - && test "$*" != "X conftest.file $srcdir/configure"; then
3592 - # If neither matched, then we have a broken ls. This can happen
3593 - # if, for instance, CONFIG_SHELL is bash and it inherits a
3594 - # broken ls alias from the environment. This has actually
3595 - # happened. Such a system could not be considered "sane".
3596 - { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken
3597 -alias in your environment" >&5
3598 -echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken
3599 -alias in your environment" >&2;}
3600 - { (exit 1); exit 1; }; }
3603 - test "$2" = conftest.file
3609 - { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
3610 -Check your system clock" >&5
3611 -echo "$as_me: error: newly created file is older than distributed files!
3612 -Check your system clock" >&2;}
3613 - { (exit 1); exit 1; }; }
3615 -echo "$as_me:$LINENO: result: yes" >&5
3616 -echo "${ECHO_T}yes" >&6
3617 -test "$program_prefix" != NONE &&
3618 - program_transform_name="s,^,$program_prefix,;$program_transform_name"
3619 -# Use a double $ so make ignores it.
3620 -test "$program_suffix" != NONE &&
3621 - program_transform_name="s,\$,$program_suffix,;$program_transform_name"
3622 -# Double any \ or $. echo might interpret backslashes.
3623 -# By default was `s,x,x', remove it if useless.
3624 -cat <<\_ACEOF >conftest.sed
3625 -s/[\\$]/&&/g;s/;s,x,x,$//
3627 -program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
3630 -# expand $ac_aux_dir to an absolute path
3631 -am_aux_dir=`cd $ac_aux_dir && pwd`
3633 -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
3634 -# Use eval to expand $SHELL
3635 -if eval "$MISSING --run true"; then
3636 - am_missing_run="$MISSING --run "
3639 - { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
3640 -echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
3643 -if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
3644 - # We used to keeping the `.' as first argument, in order to
3645 - # allow $(mkdir_p) to be used without argument. As in
3646 - # $(mkdir_p) $(somedir)
3647 - # where $(somedir) is conditionally defined. However this is wrong
3648 - # for two reasons:
3649 - # 1. if the package is installed by a user who cannot write `.'
3650 - # make install will fail,
3651 - # 2. the above comment should most certainly read
3652 - # $(mkdir_p) $(DESTDIR)$(somedir)
3653 - # so it does not work when $(somedir) is undefined and
3654 - # $(DESTDIR) is not.
3655 - # To support the latter case, we have to write
3656 - # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
3657 - # so the `.' trick is pointless.
3658 - mkdir_p='mkdir -p --'
3660 - # On NextStep and OpenStep, the `mkdir' command does not
3661 - # recognize any option. It will interpret all options as
3662 - # directories to create, and then abort because `.' already
3664 - for d in ./-p ./--version;
3666 - test -d $d && rmdir $d
3668 - # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
3669 - if test -f "$ac_aux_dir/mkinstalldirs"; then
3670 - mkdir_p='$(mkinstalldirs)'
3672 - mkdir_p='$(install_sh) -d'
3676 -for ac_prog in gawk mawk nawk awk
3678 - # Extract the first word of "$ac_prog", so it can be a program name with args.
3679 -set dummy $ac_prog; ac_word=$2
3680 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3681 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3682 -if test "${ac_cv_prog_AWK+set}" = set; then
3683 - echo $ECHO_N "(cached) $ECHO_C" >&6
3685 - if test -n "$AWK"; then
3686 - ac_cv_prog_AWK="$AWK" # Let the user override the test.
3688 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3689 -for as_dir in $PATH
3692 - test -z "$as_dir" && as_dir=.
3693 - for ac_exec_ext in '' $ac_executable_extensions; do
3694 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3695 - ac_cv_prog_AWK="$ac_prog"
3696 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3704 -AWK=$ac_cv_prog_AWK
3705 -if test -n "$AWK"; then
3706 - echo "$as_me:$LINENO: result: $AWK" >&5
3707 -echo "${ECHO_T}$AWK" >&6
3709 - echo "$as_me:$LINENO: result: no" >&5
3710 -echo "${ECHO_T}no" >&6
3713 - test -n "$AWK" && break
3716 -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
3717 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
3718 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
3719 -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
3720 - echo $ECHO_N "(cached) $ECHO_C" >&6
3722 - cat >conftest.make <<\_ACEOF
3724 - @echo 'ac_maketemp="$(MAKE)"'
3726 -# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
3727 -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
3728 -if test -n "$ac_maketemp"; then
3729 - eval ac_cv_prog_make_${ac_make}_set=yes
3731 - eval ac_cv_prog_make_${ac_make}_set=no
3733 -rm -f conftest.make
3735 -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
3736 - echo "$as_me:$LINENO: result: yes" >&5
3737 -echo "${ECHO_T}yes" >&6
3740 - echo "$as_me:$LINENO: result: no" >&5
3741 -echo "${ECHO_T}no" >&6
3742 - SET_MAKE="MAKE=${MAKE-make}"
3745 -rm -rf .tst 2>/dev/null
3746 -mkdir .tst 2>/dev/null
3747 -if test -d .tst; then
3752 -rmdir .tst 2>/dev/null
3754 -# test to see if srcdir already configured
3755 -if test "`cd $srcdir && pwd`" != "`pwd`" &&
3756 - test -f $srcdir/config.status; then
3757 - { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
3758 -echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
3759 - { (exit 1); exit 1; }; }
3762 -# test whether we have cygpath
3763 -if test -z "$CYGPATH_W"; then
3764 - if (cygpath --version) >/dev/null 2>/dev/null; then
3765 - CYGPATH_W='cygpath -w'
3772 -# Define the identity of the package.
3777 -cat >>confdefs.h <<_ACEOF
3778 -#define PACKAGE "$PACKAGE"
3782 -cat >>confdefs.h <<_ACEOF
3783 -#define VERSION "$VERSION"
3786 -# Some tools Automake needs.
3788 -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
3791 -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
3794 -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
3797 -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
3800 -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
3802 -install_sh=${install_sh-"$am_aux_dir/install-sh"}
3804 -# Installed binaries are usually stripped using `strip' when the user
3805 -# run `make install-strip'. However `strip' might not be the right
3806 -# tool to use in cross-compilation environments, therefore Automake
3807 -# will honor the `STRIP' environment variable to overrule this program.
3808 -if test "$cross_compiling" != no; then
3809 - if test -n "$ac_tool_prefix"; then
3810 - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
3811 -set dummy ${ac_tool_prefix}strip; ac_word=$2
3812 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3813 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3814 -if test "${ac_cv_prog_STRIP+set}" = set; then
3815 - echo $ECHO_N "(cached) $ECHO_C" >&6
3817 - if test -n "$STRIP"; then
3818 - ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
3820 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3821 -for as_dir in $PATH
3824 - test -z "$as_dir" && as_dir=.
3825 - for ac_exec_ext in '' $ac_executable_extensions; do
3826 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3827 - ac_cv_prog_STRIP="${ac_tool_prefix}strip"
3828 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3836 -STRIP=$ac_cv_prog_STRIP
3837 -if test -n "$STRIP"; then
3838 - echo "$as_me:$LINENO: result: $STRIP" >&5
3839 -echo "${ECHO_T}$STRIP" >&6
3841 - echo "$as_me:$LINENO: result: no" >&5
3842 -echo "${ECHO_T}no" >&6
3846 -if test -z "$ac_cv_prog_STRIP"; then
3847 - ac_ct_STRIP=$STRIP
3848 - # Extract the first word of "strip", so it can be a program name with args.
3849 -set dummy strip; ac_word=$2
3850 -echo "$as_me:$LINENO: checking for $ac_word" >&5
3851 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
3852 -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
3853 - echo $ECHO_N "(cached) $ECHO_C" >&6
3855 - if test -n "$ac_ct_STRIP"; then
3856 - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
3858 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
3859 -for as_dir in $PATH
3862 - test -z "$as_dir" && as_dir=.
3863 - for ac_exec_ext in '' $ac_executable_extensions; do
3864 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
3865 - ac_cv_prog_ac_ct_STRIP="strip"
3866 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
3872 - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
3875 -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
3876 -if test -n "$ac_ct_STRIP"; then
3877 - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
3878 -echo "${ECHO_T}$ac_ct_STRIP" >&6
3880 - echo "$as_me:$LINENO: result: no" >&5
3881 -echo "${ECHO_T}no" >&6
3884 - STRIP=$ac_ct_STRIP
3886 - STRIP="$ac_cv_prog_STRIP"
3890 -INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
3892 -# We need awk for the "check" target. The system "awk" is bad on
3894 -# Always define AMTAR for backward compatibility.
3896 -AMTAR=${AMTAR-"${am_missing_run}tar"}
3898 -am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
3905 -# Make sure we can run config.sub.
3906 -$ac_config_sub sun4 >/dev/null 2>&1 ||
3907 - { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
3908 -echo "$as_me: error: cannot run $ac_config_sub" >&2;}
3909 - { (exit 1); exit 1; }; }
3911 -echo "$as_me:$LINENO: checking build system type" >&5
3912 -echo $ECHO_N "checking build system type... $ECHO_C" >&6
3913 -if test "${ac_cv_build+set}" = set; then
3914 - echo $ECHO_N "(cached) $ECHO_C" >&6
3916 - ac_cv_build_alias=$build_alias
3917 -test -z "$ac_cv_build_alias" &&
3918 - ac_cv_build_alias=`$ac_config_guess`
3919 -test -z "$ac_cv_build_alias" &&
3920 - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
3921 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
3922 - { (exit 1); exit 1; }; }
3923 -ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
3924 - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
3925 -echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
3926 - { (exit 1); exit 1; }; }
3929 -echo "$as_me:$LINENO: result: $ac_cv_build" >&5
3930 -echo "${ECHO_T}$ac_cv_build" >&6
3932 -build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
3933 -build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
3934 -build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
3937 -echo "$as_me:$LINENO: checking host system type" >&5
3938 -echo $ECHO_N "checking host system type... $ECHO_C" >&6
3939 -if test "${ac_cv_host+set}" = set; then
3940 - echo $ECHO_N "(cached) $ECHO_C" >&6
3942 - ac_cv_host_alias=$host_alias
3943 -test -z "$ac_cv_host_alias" &&
3944 - ac_cv_host_alias=$ac_cv_build_alias
3945 -ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
3946 - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
3947 -echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
3948 - { (exit 1); exit 1; }; }
3951 -echo "$as_me:$LINENO: result: $ac_cv_host" >&5
3952 -echo "${ECHO_T}$ac_cv_host" >&6
3954 -host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
3955 -host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
3956 -host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
3960 -case "$host_cpu" in
3961 -i[3456]86) host_cpu=i386 ;;
3962 -x86_64) host_cpu=x86_64 ;;
3963 -*) { { echo "$as_me:$LINENO: error: unsupported CPU type" >&5
3964 -echo "$as_me: error: unsupported CPU type" >&2;}
3965 - { (exit 1); exit 1; }; } ;;
3975 -echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
3976 -echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
3977 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
3978 -if test "${enable_maintainer_mode+set}" = set; then
3979 - enableval="$enable_maintainer_mode"
3980 - USE_MAINTAINER_MODE=$enableval
3982 - USE_MAINTAINER_MODE=no
3984 - echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
3985 -echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
3988 -if test $USE_MAINTAINER_MODE = yes; then
3989 - MAINTAINER_MODE_TRUE=
3990 - MAINTAINER_MODE_FALSE='#'
3992 - MAINTAINER_MODE_TRUE='#'
3993 - MAINTAINER_MODE_FALSE=
3996 - MAINT=$MAINTAINER_MODE_TRUE
3999 -if test "x$enable_maintainer_mode" = xyes; then
4000 - # Extract the first word of "perl", so it can be a program name with args.
4001 -set dummy perl; ac_word=$2
4002 -echo "$as_me:$LINENO: checking for $ac_word" >&5
4003 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4004 -if test "${ac_cv_path_PERL+set}" = set; then
4005 - echo $ECHO_N "(cached) $ECHO_C" >&6
4008 - [\\/]* | ?:[\\/]*)
4009 - ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
4012 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4013 -for as_dir in $PATH
4016 - test -z "$as_dir" && as_dir=.
4017 - for ac_exec_ext in '' $ac_executable_extensions; do
4018 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4019 - ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
4020 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4029 -PERL=$ac_cv_path_PERL
4031 -if test -n "$PERL"; then
4032 - echo "$as_me:$LINENO: result: $PERL" >&5
4033 -echo "${ECHO_T}$PERL" >&6
4035 - echo "$as_me:$LINENO: result: no" >&5
4036 -echo "${ECHO_T}no" >&6
4039 - if test -z "$PERL"; then
4040 - { { echo "$as_me:$LINENO: error: perl not found" >&5
4041 -echo "$as_me: error: perl not found" >&2;}
4042 - { (exit 1); exit 1; }; }
4046 -# This should be checked before AC_PROG_CC
4047 -if test "x$CFLAGS" = x; then
4048 - default_CFLAGS=yes
4051 -if test "x$host_cpu" = xx86_64; then
4052 - CFLAGS="-m32 $CFLAGS"
4059 -if test -n "$ac_tool_prefix"; then
4060 - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
4061 -set dummy ${ac_tool_prefix}gcc; ac_word=$2
4062 -echo "$as_me:$LINENO: checking for $ac_word" >&5
4063 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4064 -if test "${ac_cv_prog_CC+set}" = set; then
4065 - echo $ECHO_N "(cached) $ECHO_C" >&6
4067 - if test -n "$CC"; then
4068 - ac_cv_prog_CC="$CC" # Let the user override the test.
4070 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4071 -for as_dir in $PATH
4074 - test -z "$as_dir" && as_dir=.
4075 - for ac_exec_ext in '' $ac_executable_extensions; do
4076 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4077 - ac_cv_prog_CC="${ac_tool_prefix}gcc"
4078 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4087 -if test -n "$CC"; then
4088 - echo "$as_me:$LINENO: result: $CC" >&5
4089 -echo "${ECHO_T}$CC" >&6
4091 - echo "$as_me:$LINENO: result: no" >&5
4092 -echo "${ECHO_T}no" >&6
4096 -if test -z "$ac_cv_prog_CC"; then
4098 - # Extract the first word of "gcc", so it can be a program name with args.
4099 -set dummy gcc; ac_word=$2
4100 -echo "$as_me:$LINENO: checking for $ac_word" >&5
4101 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4102 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
4103 - echo $ECHO_N "(cached) $ECHO_C" >&6
4105 - if test -n "$ac_ct_CC"; then
4106 - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
4108 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4109 -for as_dir in $PATH
4112 - test -z "$as_dir" && as_dir=.
4113 - for ac_exec_ext in '' $ac_executable_extensions; do
4114 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4115 - ac_cv_prog_ac_ct_CC="gcc"
4116 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4124 -ac_ct_CC=$ac_cv_prog_ac_ct_CC
4125 -if test -n "$ac_ct_CC"; then
4126 - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
4127 -echo "${ECHO_T}$ac_ct_CC" >&6
4129 - echo "$as_me:$LINENO: result: no" >&5
4130 -echo "${ECHO_T}no" >&6
4135 - CC="$ac_cv_prog_CC"
4139 -ac_cpp='$CPP $CPPFLAGS'
4140 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
4141 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
4142 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
4143 -if test -n "$ac_tool_prefix"; then
4144 - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
4145 -set dummy ${ac_tool_prefix}gcc; ac_word=$2
4146 -echo "$as_me:$LINENO: checking for $ac_word" >&5
4147 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4148 -if test "${ac_cv_prog_CC+set}" = set; then
4149 - echo $ECHO_N "(cached) $ECHO_C" >&6
4151 - if test -n "$CC"; then
4152 - ac_cv_prog_CC="$CC" # Let the user override the test.
4154 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4155 -for as_dir in $PATH
4158 - test -z "$as_dir" && as_dir=.
4159 - for ac_exec_ext in '' $ac_executable_extensions; do
4160 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4161 - ac_cv_prog_CC="${ac_tool_prefix}gcc"
4162 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4171 -if test -n "$CC"; then
4172 - echo "$as_me:$LINENO: result: $CC" >&5
4173 -echo "${ECHO_T}$CC" >&6
4175 - echo "$as_me:$LINENO: result: no" >&5
4176 -echo "${ECHO_T}no" >&6
4180 -if test -z "$ac_cv_prog_CC"; then
4182 - # Extract the first word of "gcc", so it can be a program name with args.
4183 -set dummy gcc; ac_word=$2
4184 -echo "$as_me:$LINENO: checking for $ac_word" >&5
4185 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4186 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
4187 - echo $ECHO_N "(cached) $ECHO_C" >&6
4189 - if test -n "$ac_ct_CC"; then
4190 - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
4192 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4193 -for as_dir in $PATH
4196 - test -z "$as_dir" && as_dir=.
4197 - for ac_exec_ext in '' $ac_executable_extensions; do
4198 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4199 - ac_cv_prog_ac_ct_CC="gcc"
4200 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4208 -ac_ct_CC=$ac_cv_prog_ac_ct_CC
4209 -if test -n "$ac_ct_CC"; then
4210 - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
4211 -echo "${ECHO_T}$ac_ct_CC" >&6
4213 - echo "$as_me:$LINENO: result: no" >&5
4214 -echo "${ECHO_T}no" >&6
4219 - CC="$ac_cv_prog_CC"
4222 -if test -z "$CC"; then
4223 - if test -n "$ac_tool_prefix"; then
4224 - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
4225 -set dummy ${ac_tool_prefix}cc; ac_word=$2
4226 -echo "$as_me:$LINENO: checking for $ac_word" >&5
4227 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4228 -if test "${ac_cv_prog_CC+set}" = set; then
4229 - echo $ECHO_N "(cached) $ECHO_C" >&6
4231 - if test -n "$CC"; then
4232 - ac_cv_prog_CC="$CC" # Let the user override the test.
4234 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4235 -for as_dir in $PATH
4238 - test -z "$as_dir" && as_dir=.
4239 - for ac_exec_ext in '' $ac_executable_extensions; do
4240 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4241 - ac_cv_prog_CC="${ac_tool_prefix}cc"
4242 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4251 -if test -n "$CC"; then
4252 - echo "$as_me:$LINENO: result: $CC" >&5
4253 -echo "${ECHO_T}$CC" >&6
4255 - echo "$as_me:$LINENO: result: no" >&5
4256 -echo "${ECHO_T}no" >&6
4260 -if test -z "$ac_cv_prog_CC"; then
4262 - # Extract the first word of "cc", so it can be a program name with args.
4263 -set dummy cc; ac_word=$2
4264 -echo "$as_me:$LINENO: checking for $ac_word" >&5
4265 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4266 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
4267 - echo $ECHO_N "(cached) $ECHO_C" >&6
4269 - if test -n "$ac_ct_CC"; then
4270 - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
4272 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4273 -for as_dir in $PATH
4276 - test -z "$as_dir" && as_dir=.
4277 - for ac_exec_ext in '' $ac_executable_extensions; do
4278 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4279 - ac_cv_prog_ac_ct_CC="cc"
4280 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4288 -ac_ct_CC=$ac_cv_prog_ac_ct_CC
4289 -if test -n "$ac_ct_CC"; then
4290 - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
4291 -echo "${ECHO_T}$ac_ct_CC" >&6
4293 - echo "$as_me:$LINENO: result: no" >&5
4294 -echo "${ECHO_T}no" >&6
4299 - CC="$ac_cv_prog_CC"
4303 -if test -z "$CC"; then
4304 - # Extract the first word of "cc", so it can be a program name with args.
4305 -set dummy cc; ac_word=$2
4306 -echo "$as_me:$LINENO: checking for $ac_word" >&5
4307 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4308 -if test "${ac_cv_prog_CC+set}" = set; then
4309 - echo $ECHO_N "(cached) $ECHO_C" >&6
4311 - if test -n "$CC"; then
4312 - ac_cv_prog_CC="$CC" # Let the user override the test.
4314 - ac_prog_rejected=no
4315 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4316 -for as_dir in $PATH
4319 - test -z "$as_dir" && as_dir=.
4320 - for ac_exec_ext in '' $ac_executable_extensions; do
4321 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4322 - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
4323 - ac_prog_rejected=yes
4326 - ac_cv_prog_CC="cc"
4327 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4333 -if test $ac_prog_rejected = yes; then
4334 - # We found a bogon in the path, so make sure we never use it.
4335 - set dummy $ac_cv_prog_CC
4337 - if test $# != 0; then
4338 - # We chose a different compiler from the bogus one.
4339 - # However, it has the same basename, so the bogon will be chosen
4340 - # first if we set CC to just the basename; use the full file name.
4342 - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
4348 -if test -n "$CC"; then
4349 - echo "$as_me:$LINENO: result: $CC" >&5
4350 -echo "${ECHO_T}$CC" >&6
4352 - echo "$as_me:$LINENO: result: no" >&5
4353 -echo "${ECHO_T}no" >&6
4357 -if test -z "$CC"; then
4358 - if test -n "$ac_tool_prefix"; then
4361 - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
4362 -set dummy $ac_tool_prefix$ac_prog; ac_word=$2
4363 -echo "$as_me:$LINENO: checking for $ac_word" >&5
4364 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4365 -if test "${ac_cv_prog_CC+set}" = set; then
4366 - echo $ECHO_N "(cached) $ECHO_C" >&6
4368 - if test -n "$CC"; then
4369 - ac_cv_prog_CC="$CC" # Let the user override the test.
4371 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4372 -for as_dir in $PATH
4375 - test -z "$as_dir" && as_dir=.
4376 - for ac_exec_ext in '' $ac_executable_extensions; do
4377 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4378 - ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
4379 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4388 -if test -n "$CC"; then
4389 - echo "$as_me:$LINENO: result: $CC" >&5
4390 -echo "${ECHO_T}$CC" >&6
4392 - echo "$as_me:$LINENO: result: no" >&5
4393 -echo "${ECHO_T}no" >&6
4396 - test -n "$CC" && break
4399 -if test -z "$CC"; then
4403 - # Extract the first word of "$ac_prog", so it can be a program name with args.
4404 -set dummy $ac_prog; ac_word=$2
4405 -echo "$as_me:$LINENO: checking for $ac_word" >&5
4406 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
4407 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
4408 - echo $ECHO_N "(cached) $ECHO_C" >&6
4410 - if test -n "$ac_ct_CC"; then
4411 - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
4413 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
4414 -for as_dir in $PATH
4417 - test -z "$as_dir" && as_dir=.
4418 - for ac_exec_ext in '' $ac_executable_extensions; do
4419 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
4420 - ac_cv_prog_ac_ct_CC="$ac_prog"
4421 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
4429 -ac_ct_CC=$ac_cv_prog_ac_ct_CC
4430 -if test -n "$ac_ct_CC"; then
4431 - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
4432 -echo "${ECHO_T}$ac_ct_CC" >&6
4434 - echo "$as_me:$LINENO: result: no" >&5
4435 -echo "${ECHO_T}no" >&6
4438 - test -n "$ac_ct_CC" && break
4447 -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
4448 -See \`config.log' for more details." >&5
4449 -echo "$as_me: error: no acceptable C compiler found in \$PATH
4450 -See \`config.log' for more details." >&2;}
4451 - { (exit 1); exit 1; }; }
4453 -# Provide some information about the compiler.
4454 -echo "$as_me:$LINENO:" \
4455 - "checking for C compiler version" >&5
4456 -ac_compiler=`set X $ac_compile; echo $2`
4457 -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
4458 - (eval $ac_compiler --version </dev/null >&5) 2>&5
4460 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4461 - (exit $ac_status); }
4462 -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
4463 - (eval $ac_compiler -v </dev/null >&5) 2>&5
4465 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4466 - (exit $ac_status); }
4467 -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
4468 - (eval $ac_compiler -V </dev/null >&5) 2>&5
4470 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4471 - (exit $ac_status); }
4473 -cat >conftest.$ac_ext <<_ACEOF
4476 -cat confdefs.h >>conftest.$ac_ext
4477 -cat >>conftest.$ac_ext <<_ACEOF
4478 -/* end confdefs.h. */
4488 -ac_clean_files_save=$ac_clean_files
4489 -ac_clean_files="$ac_clean_files a.out a.exe b.out"
4490 -# Try to create an executable without -o first, disregard a.out.
4491 -# It will help us diagnose broken compilers, and finding out an intuition
4493 -echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
4494 -echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
4495 -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
4496 -if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
4497 - (eval $ac_link_default) 2>&5
4499 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4500 - (exit $ac_status); }; then
4501 - # Find the output, starting from the most likely. This scheme is
4502 -# not robust to junk in `.', hence go to wildcards (a.*) only as a last
4505 -# Be careful to initialize this variable, since it used to be cached.
4506 -# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
4508 -# b.out is created by i960 compilers.
4509 -for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
4511 - test -f "$ac_file" || continue
4513 - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
4515 - conftest.$ac_ext )
4516 - # This is the source file.
4519 - # We found the default executable, but exeext='' is most
4520 - # certainly right.
4523 - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
4524 - # FIXME: I believe we export ac_cv_exeext for Libtool,
4525 - # but it would be cool to find out if it's true. Does anybody
4526 - # maintain Libtool? --akim.
4527 - export ac_cv_exeext
4534 - echo "$as_me: failed program was:" >&5
4535 -sed 's/^/| /' conftest.$ac_ext >&5
4537 -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
4538 -See \`config.log' for more details." >&5
4539 -echo "$as_me: error: C compiler cannot create executables
4540 -See \`config.log' for more details." >&2;}
4541 - { (exit 77); exit 77; }; }
4544 -ac_exeext=$ac_cv_exeext
4545 -echo "$as_me:$LINENO: result: $ac_file" >&5
4546 -echo "${ECHO_T}$ac_file" >&6
4548 -# Check the compiler produces executables we can run. If not, either
4549 -# the compiler is broken, or we cross compile.
4550 -echo "$as_me:$LINENO: checking whether the C compiler works" >&5
4551 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
4552 -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
4553 -# If not cross compiling, check that we can run a simple program.
4554 -if test "$cross_compiling" != yes; then
4555 - if { ac_try='./$ac_file'
4556 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4557 - (eval $ac_try) 2>&5
4559 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4560 - (exit $ac_status); }; }; then
4561 - cross_compiling=no
4563 - if test "$cross_compiling" = maybe; then
4564 - cross_compiling=yes
4566 - { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
4567 -If you meant to cross compile, use \`--host'.
4568 -See \`config.log' for more details." >&5
4569 -echo "$as_me: error: cannot run C compiled programs.
4570 -If you meant to cross compile, use \`--host'.
4571 -See \`config.log' for more details." >&2;}
4572 - { (exit 1); exit 1; }; }
4576 -echo "$as_me:$LINENO: result: yes" >&5
4577 -echo "${ECHO_T}yes" >&6
4579 -rm -f a.out a.exe conftest$ac_cv_exeext b.out
4580 -ac_clean_files=$ac_clean_files_save
4581 -# Check the compiler produces executables we can run. If not, either
4582 -# the compiler is broken, or we cross compile.
4583 -echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
4584 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
4585 -echo "$as_me:$LINENO: result: $cross_compiling" >&5
4586 -echo "${ECHO_T}$cross_compiling" >&6
4588 -echo "$as_me:$LINENO: checking for suffix of executables" >&5
4589 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
4590 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
4591 - (eval $ac_link) 2>&5
4593 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4594 - (exit $ac_status); }; then
4595 - # If both `conftest.exe' and `conftest' are `present' (well, observable)
4596 -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
4597 -# work properly (i.e., refer to `conftest.exe'), while it won't with
4599 -for ac_file in conftest.exe conftest conftest.*; do
4600 - test -f "$ac_file" || continue
4602 - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
4603 - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
4604 - export ac_cv_exeext
4610 - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
4611 -See \`config.log' for more details." >&5
4612 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
4613 -See \`config.log' for more details." >&2;}
4614 - { (exit 1); exit 1; }; }
4617 -rm -f conftest$ac_cv_exeext
4618 -echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
4619 -echo "${ECHO_T}$ac_cv_exeext" >&6
4621 -rm -f conftest.$ac_ext
4622 -EXEEXT=$ac_cv_exeext
4624 -echo "$as_me:$LINENO: checking for suffix of object files" >&5
4625 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
4626 -if test "${ac_cv_objext+set}" = set; then
4627 - echo $ECHO_N "(cached) $ECHO_C" >&6
4629 - cat >conftest.$ac_ext <<_ACEOF
4632 -cat confdefs.h >>conftest.$ac_ext
4633 -cat >>conftest.$ac_ext <<_ACEOF
4634 -/* end confdefs.h. */
4644 -rm -f conftest.o conftest.obj
4645 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4646 - (eval $ac_compile) 2>&5
4648 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4649 - (exit $ac_status); }; then
4650 - for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
4652 - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
4653 - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
4658 - echo "$as_me: failed program was:" >&5
4659 -sed 's/^/| /' conftest.$ac_ext >&5
4661 -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
4662 -See \`config.log' for more details." >&5
4663 -echo "$as_me: error: cannot compute suffix of object files: cannot compile
4664 -See \`config.log' for more details." >&2;}
4665 - { (exit 1); exit 1; }; }
4668 -rm -f conftest.$ac_cv_objext conftest.$ac_ext
4670 -echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
4671 -echo "${ECHO_T}$ac_cv_objext" >&6
4672 -OBJEXT=$ac_cv_objext
4674 -echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
4675 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
4676 -if test "${ac_cv_c_compiler_gnu+set}" = set; then
4677 - echo $ECHO_N "(cached) $ECHO_C" >&6
4679 - cat >conftest.$ac_ext <<_ACEOF
4682 -cat confdefs.h >>conftest.$ac_ext
4683 -cat >>conftest.$ac_ext <<_ACEOF
4684 -/* end confdefs.h. */
4697 -rm -f conftest.$ac_objext
4698 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4699 - (eval $ac_compile) 2>conftest.er1
4701 - grep -v '^ *+' conftest.er1 >conftest.err
4702 - rm -f conftest.er1
4703 - cat conftest.err >&5
4704 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4705 - (exit $ac_status); } &&
4706 - { ac_try='test -z "$ac_c_werror_flag"
4707 - || test ! -s conftest.err'
4708 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4709 - (eval $ac_try) 2>&5
4711 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4712 - (exit $ac_status); }; } &&
4713 - { ac_try='test -s conftest.$ac_objext'
4714 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4715 - (eval $ac_try) 2>&5
4717 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4718 - (exit $ac_status); }; }; then
4719 - ac_compiler_gnu=yes
4721 - echo "$as_me: failed program was:" >&5
4722 -sed 's/^/| /' conftest.$ac_ext >&5
4726 -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
4727 -ac_cv_c_compiler_gnu=$ac_compiler_gnu
4730 -echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
4731 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
4732 -GCC=`test $ac_compiler_gnu = yes && echo yes`
4733 -ac_test_CFLAGS=${CFLAGS+set}
4734 -ac_save_CFLAGS=$CFLAGS
4736 -echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
4737 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
4738 -if test "${ac_cv_prog_cc_g+set}" = set; then
4739 - echo $ECHO_N "(cached) $ECHO_C" >&6
4741 - cat >conftest.$ac_ext <<_ACEOF
4744 -cat confdefs.h >>conftest.$ac_ext
4745 -cat >>conftest.$ac_ext <<_ACEOF
4746 -/* end confdefs.h. */
4756 -rm -f conftest.$ac_objext
4757 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4758 - (eval $ac_compile) 2>conftest.er1
4760 - grep -v '^ *+' conftest.er1 >conftest.err
4761 - rm -f conftest.er1
4762 - cat conftest.err >&5
4763 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4764 - (exit $ac_status); } &&
4765 - { ac_try='test -z "$ac_c_werror_flag"
4766 - || test ! -s conftest.err'
4767 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4768 - (eval $ac_try) 2>&5
4770 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4771 - (exit $ac_status); }; } &&
4772 - { ac_try='test -s conftest.$ac_objext'
4773 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4774 - (eval $ac_try) 2>&5
4776 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4777 - (exit $ac_status); }; }; then
4778 - ac_cv_prog_cc_g=yes
4780 - echo "$as_me: failed program was:" >&5
4781 -sed 's/^/| /' conftest.$ac_ext >&5
4785 -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
4787 -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
4788 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
4789 -if test "$ac_test_CFLAGS" = set; then
4790 - CFLAGS=$ac_save_CFLAGS
4791 -elif test $ac_cv_prog_cc_g = yes; then
4792 - if test "$GCC" = yes; then
4798 - if test "$GCC" = yes; then
4804 -echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
4805 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
4806 -if test "${ac_cv_prog_cc_stdc+set}" = set; then
4807 - echo $ECHO_N "(cached) $ECHO_C" >&6
4809 - ac_cv_prog_cc_stdc=no
4811 -cat >conftest.$ac_ext <<_ACEOF
4814 -cat confdefs.h >>conftest.$ac_ext
4815 -cat >>conftest.$ac_ext <<_ACEOF
4816 -/* end confdefs.h. */
4817 -#include <stdarg.h>
4819 -#include <sys/types.h>
4820 -#include <sys/stat.h>
4821 -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
4822 -struct buf { int x; };
4823 -FILE * (*rcsopen) (struct buf *, struct stat *, int);
4824 -static char *e (p, i)
4830 -static char *f (char * (*g) (char **, int), char **p, ...)
4835 - s = g (p, va_arg (v,int));
4840 -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
4841 - function prototypes and stuff, but not '\xHH' hex character constants.
4842 - These don't provoke an error unfortunately, instead are silently treated
4843 - as 'x'. The following induces an error, until -std1 is added to get
4844 - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
4845 - array size at least. It's necessary to write '\x00'==0 to get something
4846 - that's true only with -std1. */
4847 -int osf4_cc_array ['\x00' == 0 ? 1 : -1];
4849 -int test (int i, double x);
4850 -struct s1 {int (*f) (int a);};
4851 -struct s2 {int (*f) (double a);};
4852 -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
4858 -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
4863 -# Don't try gcc -ansi; that turns off useful extensions and
4864 -# breaks some systems' header files.
4865 -# AIX -qlanglvl=ansi
4866 -# Ultrix and OSF/1 -std1
4867 -# HP-UX 10.20 and later -Ae
4868 -# HP-UX older versions -Aa -D_HPUX_SOURCE
4869 -# SVR4 -Xc -D__EXTENSIONS__
4870 -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
4872 - CC="$ac_save_CC $ac_arg"
4873 - rm -f conftest.$ac_objext
4874 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4875 - (eval $ac_compile) 2>conftest.er1
4877 - grep -v '^ *+' conftest.er1 >conftest.err
4878 - rm -f conftest.er1
4879 - cat conftest.err >&5
4880 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4881 - (exit $ac_status); } &&
4882 - { ac_try='test -z "$ac_c_werror_flag"
4883 - || test ! -s conftest.err'
4884 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4885 - (eval $ac_try) 2>&5
4887 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4888 - (exit $ac_status); }; } &&
4889 - { ac_try='test -s conftest.$ac_objext'
4890 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4891 - (eval $ac_try) 2>&5
4893 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4894 - (exit $ac_status); }; }; then
4895 - ac_cv_prog_cc_stdc=$ac_arg
4898 - echo "$as_me: failed program was:" >&5
4899 -sed 's/^/| /' conftest.$ac_ext >&5
4902 -rm -f conftest.err conftest.$ac_objext
4904 -rm -f conftest.$ac_ext conftest.$ac_objext
4909 -case "x$ac_cv_prog_cc_stdc" in
4911 - echo "$as_me:$LINENO: result: none needed" >&5
4912 -echo "${ECHO_T}none needed" >&6 ;;
4914 - echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
4915 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
4916 - CC="$CC $ac_cv_prog_cc_stdc" ;;
4919 -# Some people use a C++ compiler to compile C. Since we use `exit',
4920 -# in C++ we need to declare it. In case someone uses the same compiler
4921 -# for both compiling C and C++ we need to have the C++ compiler decide
4922 -# the declaration of exit, since it's the most demanding environment.
4923 -cat >conftest.$ac_ext <<_ACEOF
4924 -#ifndef __cplusplus
4928 -rm -f conftest.$ac_objext
4929 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4930 - (eval $ac_compile) 2>conftest.er1
4932 - grep -v '^ *+' conftest.er1 >conftest.err
4933 - rm -f conftest.er1
4934 - cat conftest.err >&5
4935 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4936 - (exit $ac_status); } &&
4937 - { ac_try='test -z "$ac_c_werror_flag"
4938 - || test ! -s conftest.err'
4939 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4940 - (eval $ac_try) 2>&5
4942 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4943 - (exit $ac_status); }; } &&
4944 - { ac_try='test -s conftest.$ac_objext'
4945 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4946 - (eval $ac_try) 2>&5
4948 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4949 - (exit $ac_status); }; }; then
4950 - for ac_declaration in \
4952 - 'extern "C" void std::exit (int) throw (); using std::exit;' \
4953 - 'extern "C" void std::exit (int); using std::exit;' \
4954 - 'extern "C" void exit (int) throw ();' \
4955 - 'extern "C" void exit (int);' \
4956 - 'void exit (int);'
4958 - cat >conftest.$ac_ext <<_ACEOF
4961 -cat confdefs.h >>conftest.$ac_ext
4962 -cat >>conftest.$ac_ext <<_ACEOF
4963 -/* end confdefs.h. */
4965 -#include <stdlib.h>
4974 -rm -f conftest.$ac_objext
4975 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
4976 - (eval $ac_compile) 2>conftest.er1
4978 - grep -v '^ *+' conftest.er1 >conftest.err
4979 - rm -f conftest.er1
4980 - cat conftest.err >&5
4981 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4982 - (exit $ac_status); } &&
4983 - { ac_try='test -z "$ac_c_werror_flag"
4984 - || test ! -s conftest.err'
4985 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4986 - (eval $ac_try) 2>&5
4988 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4989 - (exit $ac_status); }; } &&
4990 - { ac_try='test -s conftest.$ac_objext'
4991 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
4992 - (eval $ac_try) 2>&5
4994 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
4995 - (exit $ac_status); }; }; then
4998 - echo "$as_me: failed program was:" >&5
4999 -sed 's/^/| /' conftest.$ac_ext >&5
5003 -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
5004 - cat >conftest.$ac_ext <<_ACEOF
5007 -cat confdefs.h >>conftest.$ac_ext
5008 -cat >>conftest.$ac_ext <<_ACEOF
5009 -/* end confdefs.h. */
5019 -rm -f conftest.$ac_objext
5020 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5021 - (eval $ac_compile) 2>conftest.er1
5023 - grep -v '^ *+' conftest.er1 >conftest.err
5024 - rm -f conftest.er1
5025 - cat conftest.err >&5
5026 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5027 - (exit $ac_status); } &&
5028 - { ac_try='test -z "$ac_c_werror_flag"
5029 - || test ! -s conftest.err'
5030 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5031 - (eval $ac_try) 2>&5
5033 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5034 - (exit $ac_status); }; } &&
5035 - { ac_try='test -s conftest.$ac_objext'
5036 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5037 - (eval $ac_try) 2>&5
5039 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5040 - (exit $ac_status); }; }; then
5043 - echo "$as_me: failed program was:" >&5
5044 -sed 's/^/| /' conftest.$ac_ext >&5
5047 -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
5050 -if test -n "$ac_declaration"; then
5051 - echo '#ifdef __cplusplus' >>confdefs.h
5052 - echo $ac_declaration >>confdefs.h
5053 - echo '#endif' >>confdefs.h
5057 - echo "$as_me: failed program was:" >&5
5058 -sed 's/^/| /' conftest.$ac_ext >&5
5061 -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
5063 -ac_cpp='$CPP $CPPFLAGS'
5064 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
5065 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
5066 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
5067 -DEPDIR="${am__leading_dot}deps"
5069 - ac_config_commands="$ac_config_commands depfiles"
5072 -am_make=${MAKE-make}
5073 -cat > confinc << 'END'
5078 -# If we don't find an include directive, just comment out the code.
5079 -echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
5080 -echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
5084 -# First try GNU make style include.
5085 -echo "include confinc" > confmf
5086 -# We grep out `Entering directory' and `Leaving directory'
5087 -# messages which can occur if `w' ends up in MAKEFLAGS.
5088 -# In particular we don't look at `^make:' because GNU make might
5089 -# be invoked under some other name (usually "gmake"), in which
5090 -# case it prints its new name instead of `make'.
5091 -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
5092 - am__include=include
5096 -# Now try BSD make style include.
5097 -if test "$am__include" = "#"; then
5098 - echo '.include "confinc"' > confmf
5099 - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
5100 - am__include=.include
5107 -echo "$as_me:$LINENO: result: $_am_result" >&5
5108 -echo "${ECHO_T}$_am_result" >&6
5109 -rm -f confinc confmf
5111 -# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
5112 -if test "${enable_dependency_tracking+set}" = set; then
5113 - enableval="$enable_dependency_tracking"
5116 -if test "x$enable_dependency_tracking" != xno; then
5117 - am_depcomp="$ac_aux_dir/depcomp"
5118 - AMDEPBACKSLASH='\'
5122 -if test "x$enable_dependency_tracking" != xno; then
5133 -depcc="$CC" am_compiler_list=
5135 -echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
5136 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
5137 -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
5138 - echo $ECHO_N "(cached) $ECHO_C" >&6
5140 - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
5141 - # We make a subdir and do the tests there. Otherwise we can end up
5142 - # making bogus files that we don't know about and never remove. For
5143 - # instance it was reported that on HP-UX the gcc test will end up
5144 - # making a dummy file named `D' -- because `-MD' means `put the output
5146 - mkdir conftest.dir
5147 - # Copy depcomp to subdir because otherwise we won't find it if we're
5148 - # using a relative directory.
5149 - cp "$am_depcomp" conftest.dir
5151 - # We will build objects and dependencies in a subdirectory because
5152 - # it helps to detect inapplicable dependency modes. For instance
5153 - # both Tru64's cc and ICC support -MD to output dependencies as a
5154 - # side effect of compilation, but ICC will put the dependencies in
5155 - # the current directory while Tru64 will put them in the object
5159 - am_cv_CC_dependencies_compiler_type=none
5160 - if test "$am_compiler_list" = ""; then
5161 - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
5163 - for depmode in $am_compiler_list; do
5164 - # Setup a source with many dependencies, because some compilers
5165 - # like to wrap large dependency lists on column 80 (with \), and
5166 - # we should not choose a depcomp mode which is confused by this.
5168 - # We need to recreate these files for each test, as the compiler may
5169 - # overwrite some of them when testing with obscure command lines.
5170 - # This happens at least with the AIX C compiler.
5171 - : > sub/conftest.c
5172 - for i in 1 2 3 4 5 6; do
5173 - echo '#include "conftst'$i'.h"' >> sub/conftest.c
5174 - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
5175 - # Solaris 8's {/usr,}/bin/sh.
5176 - touch sub/conftst$i.h
5178 - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
5182 - # after this tag, mechanisms are not by side-effect, so they'll
5183 - # only be used when explicitly requested
5184 - if test "x$enable_dependency_tracking" = xyes; then
5192 - # We check with `-c' and `-o' for the sake of the "dashmstdout"
5193 - # mode. It turns out that the SunPro C++ compiler does not properly
5194 - # handle `-M -o', and we need to detect this.
5195 - if depmode=$depmode \
5196 - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
5197 - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
5198 - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
5199 - >/dev/null 2>conftest.err &&
5200 - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
5201 - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
5202 - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
5203 - # icc doesn't choke on unknown options, it will just issue warnings
5204 - # or remarks (even with -Werror). So we grep stderr for any message
5205 - # that says an option was ignored or not supported.
5206 - # When given -MP, icc 7.0 and 7.1 complain thusly:
5207 - # icc: Command line warning: ignoring option '-M'; no argument required
5208 - # The diagnosis changed in icc 8.0:
5209 - # icc: Command line remark: option '-MP' not supported
5210 - if (grep 'ignoring option' conftest.err ||
5211 - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
5212 - am_cv_CC_dependencies_compiler_type=$depmode
5219 - rm -rf conftest.dir
5221 - am_cv_CC_dependencies_compiler_type=none
5225 -echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
5226 -echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
5227 -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
5232 - test "x$enable_dependency_tracking" != xno \
5233 - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
5234 - am__fastdepCC_TRUE=
5235 - am__fastdepCC_FALSE='#'
5237 - am__fastdepCC_TRUE='#'
5238 - am__fastdepCC_FALSE=
5242 -# We need this for older versions of Autoconf.
5244 -depcc="$CC" am_compiler_list=
5246 -echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
5247 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
5248 -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
5249 - echo $ECHO_N "(cached) $ECHO_C" >&6
5251 - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
5252 - # We make a subdir and do the tests there. Otherwise we can end up
5253 - # making bogus files that we don't know about and never remove. For
5254 - # instance it was reported that on HP-UX the gcc test will end up
5255 - # making a dummy file named `D' -- because `-MD' means `put the output
5257 - mkdir conftest.dir
5258 - # Copy depcomp to subdir because otherwise we won't find it if we're
5259 - # using a relative directory.
5260 - cp "$am_depcomp" conftest.dir
5262 - # We will build objects and dependencies in a subdirectory because
5263 - # it helps to detect inapplicable dependency modes. For instance
5264 - # both Tru64's cc and ICC support -MD to output dependencies as a
5265 - # side effect of compilation, but ICC will put the dependencies in
5266 - # the current directory while Tru64 will put them in the object
5270 - am_cv_CC_dependencies_compiler_type=none
5271 - if test "$am_compiler_list" = ""; then
5272 - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
5274 - for depmode in $am_compiler_list; do
5275 - # Setup a source with many dependencies, because some compilers
5276 - # like to wrap large dependency lists on column 80 (with \), and
5277 - # we should not choose a depcomp mode which is confused by this.
5279 - # We need to recreate these files for each test, as the compiler may
5280 - # overwrite some of them when testing with obscure command lines.
5281 - # This happens at least with the AIX C compiler.
5282 - : > sub/conftest.c
5283 - for i in 1 2 3 4 5 6; do
5284 - echo '#include "conftst'$i'.h"' >> sub/conftest.c
5285 - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
5286 - # Solaris 8's {/usr,}/bin/sh.
5287 - touch sub/conftst$i.h
5289 - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
5293 - # after this tag, mechanisms are not by side-effect, so they'll
5294 - # only be used when explicitly requested
5295 - if test "x$enable_dependency_tracking" = xyes; then
5303 - # We check with `-c' and `-o' for the sake of the "dashmstdout"
5304 - # mode. It turns out that the SunPro C++ compiler does not properly
5305 - # handle `-M -o', and we need to detect this.
5306 - if depmode=$depmode \
5307 - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
5308 - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
5309 - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
5310 - >/dev/null 2>conftest.err &&
5311 - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
5312 - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
5313 - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
5314 - # icc doesn't choke on unknown options, it will just issue warnings
5315 - # or remarks (even with -Werror). So we grep stderr for any message
5316 - # that says an option was ignored or not supported.
5317 - # When given -MP, icc 7.0 and 7.1 complain thusly:
5318 - # icc: Command line warning: ignoring option '-M'; no argument required
5319 - # The diagnosis changed in icc 8.0:
5320 - # icc: Command line remark: option '-MP' not supported
5321 - if (grep 'ignoring option' conftest.err ||
5322 - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
5323 - am_cv_CC_dependencies_compiler_type=$depmode
5330 - rm -rf conftest.dir
5332 - am_cv_CC_dependencies_compiler_type=none
5336 -echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
5337 -echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
5338 -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
5343 - test "x$enable_dependency_tracking" != xno \
5344 - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
5345 - am__fastdepCC_TRUE=
5346 - am__fastdepCC_FALSE='#'
5348 - am__fastdepCC_TRUE='#'
5349 - am__fastdepCC_FALSE=
5358 -# Check whether --with-binutils or --without-binutils was given.
5359 -if test "${with_binutils+set}" = set; then
5360 - withval="$with_binutils"
5364 -if test "x$with_binutils" != x; then
5365 - # Extract the first word of "ranlib", so it can be a program name with args.
5366 -set dummy ranlib; ac_word=$2
5367 -echo "$as_me:$LINENO: checking for $ac_word" >&5
5368 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
5369 -if test "${ac_cv_path_RANLIB+set}" = set; then
5370 - echo $ECHO_N "(cached) $ECHO_C" >&6
5373 - [\\/]* | ?:[\\/]*)
5374 - ac_cv_path_RANLIB="$RANLIB" # Let the user override the test with a path.
5377 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5378 -as_dummy=""$with_binutils:$PATH""
5379 -for as_dir in $as_dummy
5382 - test -z "$as_dir" && as_dir=.
5383 - for ac_exec_ext in '' $ac_executable_extensions; do
5384 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
5385 - ac_cv_path_RANLIB="$as_dir/$ac_word$ac_exec_ext"
5386 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
5392 - test -z "$ac_cv_path_RANLIB" && ac_cv_path_RANLIB=":"
5396 -RANLIB=$ac_cv_path_RANLIB
5398 -if test -n "$RANLIB"; then
5399 - echo "$as_me:$LINENO: result: $RANLIB" >&5
5400 -echo "${ECHO_T}$RANLIB" >&6
5402 - echo "$as_me:$LINENO: result: no" >&5
5403 -echo "${ECHO_T}no" >&6
5407 - if test -n "$ac_tool_prefix"; then
5408 - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
5409 -set dummy ${ac_tool_prefix}ranlib; ac_word=$2
5410 -echo "$as_me:$LINENO: checking for $ac_word" >&5
5411 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
5412 -if test "${ac_cv_prog_RANLIB+set}" = set; then
5413 - echo $ECHO_N "(cached) $ECHO_C" >&6
5415 - if test -n "$RANLIB"; then
5416 - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
5418 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5419 -for as_dir in $PATH
5422 - test -z "$as_dir" && as_dir=.
5423 - for ac_exec_ext in '' $ac_executable_extensions; do
5424 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
5425 - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
5426 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
5434 -RANLIB=$ac_cv_prog_RANLIB
5435 -if test -n "$RANLIB"; then
5436 - echo "$as_me:$LINENO: result: $RANLIB" >&5
5437 -echo "${ECHO_T}$RANLIB" >&6
5439 - echo "$as_me:$LINENO: result: no" >&5
5440 -echo "${ECHO_T}no" >&6
5444 -if test -z "$ac_cv_prog_RANLIB"; then
5445 - ac_ct_RANLIB=$RANLIB
5446 - # Extract the first word of "ranlib", so it can be a program name with args.
5447 -set dummy ranlib; ac_word=$2
5448 -echo "$as_me:$LINENO: checking for $ac_word" >&5
5449 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
5450 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
5451 - echo $ECHO_N "(cached) $ECHO_C" >&6
5453 - if test -n "$ac_ct_RANLIB"; then
5454 - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
5456 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5457 -for as_dir in $PATH
5460 - test -z "$as_dir" && as_dir=.
5461 - for ac_exec_ext in '' $ac_executable_extensions; do
5462 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
5463 - ac_cv_prog_ac_ct_RANLIB="ranlib"
5464 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
5470 - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
5473 -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
5474 -if test -n "$ac_ct_RANLIB"; then
5475 - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
5476 -echo "${ECHO_T}$ac_ct_RANLIB" >&6
5478 - echo "$as_me:$LINENO: result: no" >&5
5479 -echo "${ECHO_T}no" >&6
5482 - RANLIB=$ac_ct_RANLIB
5484 - RANLIB="$ac_cv_prog_RANLIB"
5489 -# optimization flags
5490 -if test "x$ac_cv_c_compiler_gnu" = xyes; then
5491 - if test "x$default_CFLAGS" = xyes; then
5492 - # Autoconf may set CFLAGS to -O2 and/or -g. So eliminate them.
5493 - CFLAGS="`echo $CFLAGS | sed -e 's/-g//g' -e 's/-O[0-9]//g'` -g"
5494 - # If the user specify the directory for binutils, add the option `-B'.
5495 - if test "x$with_binutils" != x; then
5496 - CFLAGS="-B$with_binutils/ $CFLAGS"
5498 - STAGE1_CFLAGS="-O2"
5501 -echo "$as_me:$LINENO: checking whether optimization for size works" >&5
5502 -echo $ECHO_N "checking whether optimization for size works... $ECHO_C" >&6
5503 -if test "${size_flag+set}" = set; then
5504 - echo $ECHO_N "(cached) $ECHO_C" >&6
5507 - saved_CFLAGS=$CFLAGS
5509 - cat >conftest.$ac_ext <<_ACEOF
5512 -cat confdefs.h >>conftest.$ac_ext
5513 -cat >>conftest.$ac_ext <<_ACEOF
5514 -/* end confdefs.h. */
5524 -rm -f conftest.$ac_objext
5525 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5526 - (eval $ac_compile) 2>conftest.er1
5528 - grep -v '^ *+' conftest.er1 >conftest.err
5529 - rm -f conftest.er1
5530 - cat conftest.err >&5
5531 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5532 - (exit $ac_status); } &&
5533 - { ac_try='test -z "$ac_c_werror_flag"
5534 - || test ! -s conftest.err'
5535 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5536 - (eval $ac_try) 2>&5
5538 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5539 - (exit $ac_status); }; } &&
5540 - { ac_try='test -s conftest.$ac_objext'
5541 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5542 - (eval $ac_try) 2>&5
5544 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5545 - (exit $ac_status); }; }; then
5548 - echo "$as_me: failed program was:" >&5
5549 -sed 's/^/| /' conftest.$ac_ext >&5
5553 -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
5554 - CFLAGS=$saved_CFLAGS
5557 -echo "$as_me:$LINENO: result: $size_flag" >&5
5558 -echo "${ECHO_T}$size_flag" >&6
5559 - if test "x$size_flag" = xyes; then
5560 - STAGE2_CFLAGS="-Os"
5562 - STAGE2_CFLAGS="-O2 -fno-strength-reduce -fno-unroll-loops"
5564 - # OpenBSD has a GCC extension for protecting applications from
5565 - # stack smashing attacks, but GRUB doesn't want this feature.
5566 - echo "$as_me:$LINENO: checking whether gcc has -fno-stack-protector" >&5
5567 -echo $ECHO_N "checking whether gcc has -fno-stack-protector... $ECHO_C" >&6
5568 -if test "${no_stack_protector_flag+set}" = set; then
5569 - echo $ECHO_N "(cached) $ECHO_C" >&6
5572 - saved_CFLAGS=$CFLAGS
5573 - CFLAGS="-fno-stack-protector"
5574 - cat >conftest.$ac_ext <<_ACEOF
5577 -cat confdefs.h >>conftest.$ac_ext
5578 -cat >>conftest.$ac_ext <<_ACEOF
5579 -/* end confdefs.h. */
5589 -rm -f conftest.$ac_objext
5590 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5591 - (eval $ac_compile) 2>conftest.er1
5593 - grep -v '^ *+' conftest.er1 >conftest.err
5594 - rm -f conftest.er1
5595 - cat conftest.err >&5
5596 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5597 - (exit $ac_status); } &&
5598 - { ac_try='test -z "$ac_c_werror_flag"
5599 - || test ! -s conftest.err'
5600 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5601 - (eval $ac_try) 2>&5
5603 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5604 - (exit $ac_status); }; } &&
5605 - { ac_try='test -s conftest.$ac_objext'
5606 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5607 - (eval $ac_try) 2>&5
5609 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5610 - (exit $ac_status); }; }; then
5611 - no_stack_protector_flag=yes
5613 - echo "$as_me: failed program was:" >&5
5614 -sed 's/^/| /' conftest.$ac_ext >&5
5616 -no_stack_protector_flag=no
5618 -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
5619 - CFLAGS=$saved_CFLAGS
5622 -echo "$as_me:$LINENO: result: $no_stack_protector_flag" >&5
5623 -echo "${ECHO_T}$no_stack_protector_flag" >&6
5624 - if test "x$no_stack_protector_flag" = xyes; then
5625 - STAGE2_CFLAGS="$STAGE2_CFLAGS -fno-stack-protector"
5634 -# Enforce coding standards.
5635 -CPPFLAGS="$CPPFLAGS -Wall -Wmissing-prototypes -Wunused -Wshadow"
5636 -CPPFLAGS="$CPPFLAGS -Wpointer-arith"
5638 -echo "$as_me:$LINENO: checking whether -Wundef works" >&5
5639 -echo $ECHO_N "checking whether -Wundef works... $ECHO_C" >&6
5640 -if test "${undef_flag+set}" = set; then
5641 - echo $ECHO_N "(cached) $ECHO_C" >&6
5644 - saved_CPPFLAGS="$CPPFLAGS"
5645 - CPPFLAGS="-Wundef"
5646 - cat >conftest.$ac_ext <<_ACEOF
5649 -cat confdefs.h >>conftest.$ac_ext
5650 -cat >>conftest.$ac_ext <<_ACEOF
5651 -/* end confdefs.h. */
5661 -rm -f conftest.$ac_objext
5662 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5663 - (eval $ac_compile) 2>conftest.er1
5665 - grep -v '^ *+' conftest.er1 >conftest.err
5666 - rm -f conftest.er1
5667 - cat conftest.err >&5
5668 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5669 - (exit $ac_status); } &&
5670 - { ac_try='test -z "$ac_c_werror_flag"
5671 - || test ! -s conftest.err'
5672 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5673 - (eval $ac_try) 2>&5
5675 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5676 - (exit $ac_status); }; } &&
5677 - { ac_try='test -s conftest.$ac_objext'
5678 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5679 - (eval $ac_try) 2>&5
5681 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5682 - (exit $ac_status); }; }; then
5685 - echo "$as_me: failed program was:" >&5
5686 -sed 's/^/| /' conftest.$ac_ext >&5
5690 -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
5691 - CPPFLAGS="$saved_CPPFLAGS"
5694 -echo "$as_me:$LINENO: result: $undef_flag" >&5
5695 -echo "${ECHO_T}$undef_flag" >&6
5697 -# The options `-falign-*' are supported by gcc 3.0 or later.
5698 -# Probably it is sufficient to only check for -falign-loops.
5699 -echo "$as_me:$LINENO: checking whether -falign-loops works" >&5
5700 -echo $ECHO_N "checking whether -falign-loops works... $ECHO_C" >&6
5701 -if test "${falign_loop_flag+set}" = set; then
5702 - echo $ECHO_N "(cached) $ECHO_C" >&6
5705 - saved_CPPFLAGS="$CPPFLAGS"
5706 - CPPFLAGS="-falign-loops=1"
5707 - cat >conftest.$ac_ext <<_ACEOF
5710 -cat confdefs.h >>conftest.$ac_ext
5711 -cat >>conftest.$ac_ext <<_ACEOF
5712 -/* end confdefs.h. */
5722 -rm -f conftest.$ac_objext
5723 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5724 - (eval $ac_compile) 2>conftest.er1
5726 - grep -v '^ *+' conftest.er1 >conftest.err
5727 - rm -f conftest.er1
5728 - cat conftest.err >&5
5729 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5730 - (exit $ac_status); } &&
5731 - { ac_try='test -z "$ac_c_werror_flag"
5732 - || test ! -s conftest.err'
5733 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5734 - (eval $ac_try) 2>&5
5736 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5737 - (exit $ac_status); }; } &&
5738 - { ac_try='test -s conftest.$ac_objext'
5739 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5740 - (eval $ac_try) 2>&5
5742 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5743 - (exit $ac_status); }; }; then
5744 - falign_loop_flag=yes
5746 - echo "$as_me: failed program was:" >&5
5747 -sed 's/^/| /' conftest.$ac_ext >&5
5749 -falign_loop_flag=no
5751 -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
5752 - CPPFLAGS="$saved_CPPFLAGS"
5755 -echo "$as_me:$LINENO: result: $falign_loop_flag" >&5
5756 -echo "${ECHO_T}$falign_loop_flag" >&6
5758 -# Force no alignment to save space.
5759 -if test "x$falign_loop_flag" = xyes; then
5760 - CPPFLAGS="$CPPFLAGS -falign-jumps=1 -falign-loops=1 -falign-functions=1"
5762 - CPPFLAGS="$CPPFLAGS -malign-jumps=1 -malign-loops=1 -malign-functions=1"
5765 -if test "x$undef_flag" = xyes; then
5766 - CPPFLAGS="$CPPFLAGS -Wundef"
5769 -if test "x$with_binutils" != x; then
5770 - # Extract the first word of "objcopy", so it can be a program name with args.
5771 -set dummy objcopy; ac_word=$2
5772 -echo "$as_me:$LINENO: checking for $ac_word" >&5
5773 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
5774 -if test "${ac_cv_path_OBJCOPY+set}" = set; then
5775 - echo $ECHO_N "(cached) $ECHO_C" >&6
5778 - [\\/]* | ?:[\\/]*)
5779 - ac_cv_path_OBJCOPY="$OBJCOPY" # Let the user override the test with a path.
5782 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5783 -as_dummy=""$with_binutils:$PATH""
5784 -for as_dir in $as_dummy
5787 - test -z "$as_dir" && as_dir=.
5788 - for ac_exec_ext in '' $ac_executable_extensions; do
5789 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
5790 - ac_cv_path_OBJCOPY="$as_dir/$ac_word$ac_exec_ext"
5791 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
5800 -OBJCOPY=$ac_cv_path_OBJCOPY
5802 -if test -n "$OBJCOPY"; then
5803 - echo "$as_me:$LINENO: result: $OBJCOPY" >&5
5804 -echo "${ECHO_T}$OBJCOPY" >&6
5806 - echo "$as_me:$LINENO: result: no" >&5
5807 -echo "${ECHO_T}no" >&6
5811 - if test -n "$ac_tool_prefix"; then
5812 - # Extract the first word of "${ac_tool_prefix}objcopy", so it can be a program name with args.
5813 -set dummy ${ac_tool_prefix}objcopy; ac_word=$2
5814 -echo "$as_me:$LINENO: checking for $ac_word" >&5
5815 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
5816 -if test "${ac_cv_prog_OBJCOPY+set}" = set; then
5817 - echo $ECHO_N "(cached) $ECHO_C" >&6
5819 - if test -n "$OBJCOPY"; then
5820 - ac_cv_prog_OBJCOPY="$OBJCOPY" # Let the user override the test.
5822 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5823 -for as_dir in $PATH
5826 - test -z "$as_dir" && as_dir=.
5827 - for ac_exec_ext in '' $ac_executable_extensions; do
5828 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
5829 - ac_cv_prog_OBJCOPY="${ac_tool_prefix}objcopy"
5830 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
5838 -OBJCOPY=$ac_cv_prog_OBJCOPY
5839 -if test -n "$OBJCOPY"; then
5840 - echo "$as_me:$LINENO: result: $OBJCOPY" >&5
5841 -echo "${ECHO_T}$OBJCOPY" >&6
5843 - echo "$as_me:$LINENO: result: no" >&5
5844 -echo "${ECHO_T}no" >&6
5848 -if test -z "$ac_cv_prog_OBJCOPY"; then
5849 - ac_ct_OBJCOPY=$OBJCOPY
5850 - # Extract the first word of "objcopy", so it can be a program name with args.
5851 -set dummy objcopy; ac_word=$2
5852 -echo "$as_me:$LINENO: checking for $ac_word" >&5
5853 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
5854 -if test "${ac_cv_prog_ac_ct_OBJCOPY+set}" = set; then
5855 - echo $ECHO_N "(cached) $ECHO_C" >&6
5857 - if test -n "$ac_ct_OBJCOPY"; then
5858 - ac_cv_prog_ac_ct_OBJCOPY="$ac_ct_OBJCOPY" # Let the user override the test.
5860 -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
5861 -for as_dir in $PATH
5864 - test -z "$as_dir" && as_dir=.
5865 - for ac_exec_ext in '' $ac_executable_extensions; do
5866 - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
5867 - ac_cv_prog_ac_ct_OBJCOPY="objcopy"
5868 - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
5876 -ac_ct_OBJCOPY=$ac_cv_prog_ac_ct_OBJCOPY
5877 -if test -n "$ac_ct_OBJCOPY"; then
5878 - echo "$as_me:$LINENO: result: $ac_ct_OBJCOPY" >&5
5879 -echo "${ECHO_T}$ac_ct_OBJCOPY" >&6
5881 - echo "$as_me:$LINENO: result: no" >&5
5882 -echo "${ECHO_T}no" >&6
5885 - OBJCOPY=$ac_ct_OBJCOPY
5887 - OBJCOPY="$ac_cv_prog_OBJCOPY"
5892 -# Defined in acinclude.m4.
5894 -echo "$as_me:$LINENO: checking if C symbols get an underscore after compilation" >&5
5895 -echo $ECHO_N "checking if C symbols get an underscore after compilation... $ECHO_C" >&6
5896 -if test "${grub_cv_asm_uscore+set}" = set; then
5897 - echo $ECHO_N "(cached) $ECHO_C" >&6
5899 - cat > conftest.c <<\EOF
5908 -if { ac_try='${CC-cc} ${CFLAGS} -S conftest.c'
5909 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5910 - (eval $ac_try) 2>&5
5912 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5913 - (exit $ac_status); }; } && test -s conftest.s; then
5916 - { { echo "$as_me:$LINENO: error: ${CC-cc} failed to produce assembly code" >&5
5917 -echo "$as_me: error: ${CC-cc} failed to produce assembly code" >&2;}
5918 - { (exit 1); exit 1; }; }
5921 -if grep _func conftest.s >/dev/null 2>&1; then
5922 - grub_cv_asm_uscore=yes
5924 - grub_cv_asm_uscore=no
5931 -if test "x$grub_cv_asm_uscore" = xyes; then
5933 -cat >>confdefs.h <<_ACEOF
5934 -#define HAVE_ASM_USCORE $grub_cv_asm_uscore
5939 -echo "$as_me:$LINENO: result: $grub_cv_asm_uscore" >&5
5940 -echo "${ECHO_T}$grub_cv_asm_uscore" >&6
5942 -echo "$as_me:$LINENO: checking whether ${OBJCOPY} works for absolute addresses" >&5
5943 -echo $ECHO_N "checking whether ${OBJCOPY} works for absolute addresses... $ECHO_C" >&6
5944 -if test "${grub_cv_prog_objcopy_absolute+set}" = set; then
5945 - echo $ECHO_N "(cached) $ECHO_C" >&6
5947 - cat > conftest.c <<\EOF
5951 - *((int *) 0x1000) = 2;
5955 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
5956 - (eval $ac_compile) 2>&5
5958 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5959 - (exit $ac_status); } && test -s conftest.o; then :
5961 - { { echo "$as_me:$LINENO: error: ${CC-cc} cannot compile C source code" >&5
5962 -echo "$as_me: error: ${CC-cc} cannot compile C source code" >&2;}
5963 - { (exit 1); exit 1; }; }
5965 -grub_cv_prog_objcopy_absolute=yes
5966 -for link_addr in 2000 8000 7C00; do
5967 - if { ac_try='${CC-cc} ${CFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr conftest.o -o conftest.exec'
5968 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5969 - (eval $ac_try) 2>&5
5971 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5972 - (exit $ac_status); }; }; then :
5974 - { { echo "$as_me:$LINENO: error: ${CC-cc} cannot link at address $link_addr" >&5
5975 -echo "$as_me: error: ${CC-cc} cannot link at address $link_addr" >&2;}
5976 - { (exit 1); exit 1; }; }
5978 - if { ac_try='${OBJCOPY-objcopy} -O binary conftest.exec conftest'
5979 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5980 - (eval $ac_try) 2>&5
5982 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5983 - (exit $ac_status); }; }; then :
5985 - { { echo "$as_me:$LINENO: error: ${OBJCOPY-objcopy} cannot create binary files" >&5
5986 -echo "$as_me: error: ${OBJCOPY-objcopy} cannot create binary files" >&2;}
5987 - { (exit 1); exit 1; }; }
5989 - if test ! -f conftest.old || { ac_try='cmp -s conftest.old conftest'
5990 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
5991 - (eval $ac_try) 2>&5
5993 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
5994 - (exit $ac_status); }; }; then
5995 - mv -f conftest conftest.old
5997 - grub_cv_prog_objcopy_absolute=no
6004 -echo "$as_me:$LINENO: result: $grub_cv_prog_objcopy_absolute" >&5
6005 -echo "${ECHO_T}$grub_cv_prog_objcopy_absolute" >&6
6006 -if test "x$grub_cv_prog_objcopy_absolute" != xyes; then
6007 - { { echo "$as_me:$LINENO: error: GRUB requires a working absolute objcopy; upgrade your binutils" >&5
6008 -echo "$as_me: error: GRUB requires a working absolute objcopy; upgrade your binutils" >&2;}
6009 - { (exit 1); exit 1; }; }
6013 -echo "$as_me:$LINENO: checking whether addr32 must be in the same line as the instruction" >&5
6014 -echo $ECHO_N "checking whether addr32 must be in the same line as the instruction... $ECHO_C" >&6
6015 -if test "${grub_cv_asm_prefix_requirement+set}" = set; then
6016 - echo $ECHO_N "(cached) $ECHO_C" >&6
6018 - cat > conftest.s <<\EOF
6020 -l1: addr32 movb %al, l1
6023 -if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'
6024 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6025 - (eval $ac_try) 2>&5
6027 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6028 - (exit $ac_status); }; } && test -s conftest.o; then
6029 - grub_cv_asm_prefix_requirement=yes
6031 - grub_cv_asm_prefix_requirement=no
6038 -if test "x$grub_cv_asm_prefix_requirement" = xyes; then
6039 - grub_tmp_addr32="addr32"
6040 - grub_tmp_data32="data32"
6042 - grub_tmp_addr32="addr32;"
6043 - grub_tmp_data32="data32;"
6047 -cat >>confdefs.h <<_ACEOF
6048 -#define ADDR32 $grub_tmp_addr32
6052 -cat >>confdefs.h <<_ACEOF
6053 -#define DATA32 $grub_tmp_data32
6057 -echo "$as_me:$LINENO: result: $grub_cv_asm_prefix_requirement" >&5
6058 -echo "${ECHO_T}$grub_cv_asm_prefix_requirement" >&6
6062 -echo "$as_me:$LINENO: checking for .code16 addr32 assembler support" >&5
6063 -echo $ECHO_N "checking for .code16 addr32 assembler support... $ECHO_C" >&6
6064 -if test "${grub_cv_asm_addr32+set}" = set; then
6065 - echo $ECHO_N "(cached) $ECHO_C" >&6
6067 - cat > conftest.s.in <<\EOF
6069 -l1: @ADDR32@ movb %al, l1
6072 -if test "x$grub_cv_asm_prefix_requirement" = xyes; then
6073 - sed -e s/@ADDR32@/addr32/ < conftest.s.in > conftest.s
6075 - sed -e s/@ADDR32@/addr32\;/ < conftest.s.in > conftest.s
6078 -if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'
6079 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6080 - (eval $ac_try) 2>&5
6082 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6083 - (exit $ac_status); }; } && test -s conftest.o; then
6084 - grub_cv_asm_addr32=yes
6086 - grub_cv_asm_addr32=no
6093 -echo "$as_me:$LINENO: result: $grub_cv_asm_addr32" >&5
6094 -echo "${ECHO_T}$grub_cv_asm_addr32" >&6
6095 -if test "x$grub_cv_asm_addr32" != xyes; then
6096 - { { echo "$as_me:$LINENO: error: GRUB requires GAS .code16 addr32 support; upgrade your binutils" >&5
6097 -echo "$as_me: error: GRUB requires GAS .code16 addr32 support; upgrade your binutils" >&2;}
6098 - { (exit 1); exit 1; }; }
6102 -echo "$as_me:$LINENO: checking whether an absolute indirect call/jump must not be prefixed with an asterisk" >&5
6103 -echo $ECHO_N "checking whether an absolute indirect call/jump must not be prefixed with an asterisk... $ECHO_C" >&6
6104 -if test "${grub_cv_asm_absolute_without_asterisk+set}" = set; then
6105 - echo $ECHO_N "(cached) $ECHO_C" >&6
6107 - cat > conftest.s <<\EOF
6114 -if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'
6115 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6116 - (eval $ac_try) 2>&5
6118 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6119 - (exit $ac_status); }; } && test -s conftest.o; then
6120 - grub_cv_asm_absolute_without_asterisk=no
6122 - grub_cv_asm_absolute_without_asterisk=yes
6129 -if test "x$grub_cv_asm_absolute_without_asterisk" = xyes; then
6131 -cat >>confdefs.h <<\_ACEOF
6132 -#define ABSOLUTE_WITHOUT_ASTERISK 1
6137 -echo "$as_me:$LINENO: result: $grub_cv_asm_absolute_without_asterisk" >&5
6138 -echo "${ECHO_T}$grub_cv_asm_absolute_without_asterisk" >&6
6141 -echo "$as_me:$LINENO: checking if start is defined by the compiler" >&5
6142 -echo $ECHO_N "checking if start is defined by the compiler... $ECHO_C" >&6
6143 -if test "${grub_cv_check_start_symbol+set}" = set; then
6144 - echo $ECHO_N "(cached) $ECHO_C" >&6
6146 - cat >conftest.$ac_ext <<_ACEOF
6149 -cat confdefs.h >>conftest.$ac_ext
6150 -cat >>conftest.$ac_ext <<_ACEOF
6151 -/* end confdefs.h. */
6161 -rm -f conftest.$ac_objext conftest$ac_exeext
6162 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6163 - (eval $ac_link) 2>conftest.er1
6165 - grep -v '^ *+' conftest.er1 >conftest.err
6166 - rm -f conftest.er1
6167 - cat conftest.err >&5
6168 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6169 - (exit $ac_status); } &&
6170 - { ac_try='test -z "$ac_c_werror_flag"
6171 - || test ! -s conftest.err'
6172 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6173 - (eval $ac_try) 2>&5
6175 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6176 - (exit $ac_status); }; } &&
6177 - { ac_try='test -s conftest$ac_exeext'
6178 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6179 - (eval $ac_try) 2>&5
6181 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6182 - (exit $ac_status); }; }; then
6183 - grub_cv_check_start_symbol=yes
6185 - echo "$as_me: failed program was:" >&5
6186 -sed 's/^/| /' conftest.$ac_ext >&5
6188 -grub_cv_check_start_symbol=no
6190 -rm -f conftest.err conftest.$ac_objext \
6191 - conftest$ac_exeext conftest.$ac_ext
6195 -if test "x$grub_cv_check_start_symbol" = xyes; then
6197 -cat >>confdefs.h <<\_ACEOF
6198 -#define HAVE_START_SYMBOL 1
6203 -echo "$as_me:$LINENO: result: $grub_cv_check_start_symbol" >&5
6204 -echo "${ECHO_T}$grub_cv_check_start_symbol" >&6
6207 -echo "$as_me:$LINENO: checking if _start is defined by the compiler" >&5
6208 -echo $ECHO_N "checking if _start is defined by the compiler... $ECHO_C" >&6
6209 -if test "${grub_cv_check_uscore_start_symbol+set}" = set; then
6210 - echo $ECHO_N "(cached) $ECHO_C" >&6
6212 - cat >conftest.$ac_ext <<_ACEOF
6215 -cat confdefs.h >>conftest.$ac_ext
6216 -cat >>conftest.$ac_ext <<_ACEOF
6217 -/* end confdefs.h. */
6222 -asm ("incl _start")
6227 -rm -f conftest.$ac_objext conftest$ac_exeext
6228 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6229 - (eval $ac_link) 2>conftest.er1
6231 - grep -v '^ *+' conftest.er1 >conftest.err
6232 - rm -f conftest.er1
6233 - cat conftest.err >&5
6234 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6235 - (exit $ac_status); } &&
6236 - { ac_try='test -z "$ac_c_werror_flag"
6237 - || test ! -s conftest.err'
6238 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6239 - (eval $ac_try) 2>&5
6241 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6242 - (exit $ac_status); }; } &&
6243 - { ac_try='test -s conftest$ac_exeext'
6244 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6245 - (eval $ac_try) 2>&5
6247 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6248 - (exit $ac_status); }; }; then
6249 - grub_cv_check_uscore_start_symbol=yes
6251 - echo "$as_me: failed program was:" >&5
6252 -sed 's/^/| /' conftest.$ac_ext >&5
6254 -grub_cv_check_uscore_start_symbol=no
6256 -rm -f conftest.err conftest.$ac_objext \
6257 - conftest$ac_exeext conftest.$ac_ext
6261 -if test "x$grub_cv_check_uscore_start_symbol" = xyes; then
6263 -cat >>confdefs.h <<\_ACEOF
6264 -#define HAVE_USCORE_START_SYMBOL 1
6269 -echo "$as_me:$LINENO: result: $grub_cv_check_uscore_start_symbol" >&5
6270 -echo "${ECHO_T}$grub_cv_check_uscore_start_symbol" >&6
6272 -if test "x$grub_cv_check_start_symbol" != "xyes" \
6273 - -a "x$grub_cv_check_uscore_start_symbol" != "xyes"; then
6274 - { { echo "$as_me:$LINENO: error: Neither start nor _start is defined" >&5
6275 -echo "$as_me: error: Neither start nor _start is defined" >&2;}
6276 - { (exit 1); exit 1; }; }
6280 -echo "$as_me:$LINENO: checking if __bss_start is defined by the compiler" >&5
6281 -echo $ECHO_N "checking if __bss_start is defined by the compiler... $ECHO_C" >&6
6282 -if test "${grub_cv_check_uscore_uscore_bss_start_symbol+set}" = set; then
6283 - echo $ECHO_N "(cached) $ECHO_C" >&6
6285 - cat >conftest.$ac_ext <<_ACEOF
6288 -cat confdefs.h >>conftest.$ac_ext
6289 -cat >>conftest.$ac_ext <<_ACEOF
6290 -/* end confdefs.h. */
6295 -asm ("incl __bss_start")
6300 -rm -f conftest.$ac_objext conftest$ac_exeext
6301 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6302 - (eval $ac_link) 2>conftest.er1
6304 - grep -v '^ *+' conftest.er1 >conftest.err
6305 - rm -f conftest.er1
6306 - cat conftest.err >&5
6307 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6308 - (exit $ac_status); } &&
6309 - { ac_try='test -z "$ac_c_werror_flag"
6310 - || test ! -s conftest.err'
6311 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6312 - (eval $ac_try) 2>&5
6314 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6315 - (exit $ac_status); }; } &&
6316 - { ac_try='test -s conftest$ac_exeext'
6317 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6318 - (eval $ac_try) 2>&5
6320 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6321 - (exit $ac_status); }; }; then
6322 - grub_cv_check_uscore_uscore_bss_start_symbol=yes
6324 - echo "$as_me: failed program was:" >&5
6325 -sed 's/^/| /' conftest.$ac_ext >&5
6327 -grub_cv_check_uscore_uscore_bss_start_symbol=no
6329 -rm -f conftest.err conftest.$ac_objext \
6330 - conftest$ac_exeext conftest.$ac_ext
6334 -if test "x$grub_cv_check_uscore_uscore_bss_start_symbol" = xyes; then
6336 -cat >>confdefs.h <<\_ACEOF
6337 -#define HAVE_USCORE_USCORE_BSS_START_SYMBOL 1
6342 -echo "$as_me:$LINENO: result: $grub_cv_check_uscore_uscore_bss_start_symbol" >&5
6343 -echo "${ECHO_T}$grub_cv_check_uscore_uscore_bss_start_symbol" >&6
6346 -echo "$as_me:$LINENO: checking if _edata is defined by the compiler" >&5
6347 -echo $ECHO_N "checking if _edata is defined by the compiler... $ECHO_C" >&6
6348 -if test "${grub_cv_check_uscore_edata_symbol+set}" = set; then
6349 - echo $ECHO_N "(cached) $ECHO_C" >&6
6351 - cat >conftest.$ac_ext <<_ACEOF
6354 -cat confdefs.h >>conftest.$ac_ext
6355 -cat >>conftest.$ac_ext <<_ACEOF
6356 -/* end confdefs.h. */
6361 -asm ("incl _edata")
6366 -rm -f conftest.$ac_objext conftest$ac_exeext
6367 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6368 - (eval $ac_link) 2>conftest.er1
6370 - grep -v '^ *+' conftest.er1 >conftest.err
6371 - rm -f conftest.er1
6372 - cat conftest.err >&5
6373 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6374 - (exit $ac_status); } &&
6375 - { ac_try='test -z "$ac_c_werror_flag"
6376 - || test ! -s conftest.err'
6377 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6378 - (eval $ac_try) 2>&5
6380 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6381 - (exit $ac_status); }; } &&
6382 - { ac_try='test -s conftest$ac_exeext'
6383 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6384 - (eval $ac_try) 2>&5
6386 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6387 - (exit $ac_status); }; }; then
6388 - grub_cv_check_uscore_edata_symbol=yes
6390 - echo "$as_me: failed program was:" >&5
6391 -sed 's/^/| /' conftest.$ac_ext >&5
6393 -grub_cv_check_uscore_edata_symbol=no
6395 -rm -f conftest.err conftest.$ac_objext \
6396 - conftest$ac_exeext conftest.$ac_ext
6400 -if test "x$grub_cv_check_uscore_edata_symbol" = xyes; then
6402 -cat >>confdefs.h <<\_ACEOF
6403 -#define HAVE_USCORE_EDATA_SYMBOL 1
6408 -echo "$as_me:$LINENO: result: $grub_cv_check_uscore_edata_symbol" >&5
6409 -echo "${ECHO_T}$grub_cv_check_uscore_edata_symbol" >&6
6412 -echo "$as_me:$LINENO: checking if edata is defined by the compiler" >&5
6413 -echo $ECHO_N "checking if edata is defined by the compiler... $ECHO_C" >&6
6414 -if test "${grub_cv_check_edata_symbol+set}" = set; then
6415 - echo $ECHO_N "(cached) $ECHO_C" >&6
6417 - cat >conftest.$ac_ext <<_ACEOF
6420 -cat confdefs.h >>conftest.$ac_ext
6421 -cat >>conftest.$ac_ext <<_ACEOF
6422 -/* end confdefs.h. */
6432 -rm -f conftest.$ac_objext conftest$ac_exeext
6433 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6434 - (eval $ac_link) 2>conftest.er1
6436 - grep -v '^ *+' conftest.er1 >conftest.err
6437 - rm -f conftest.er1
6438 - cat conftest.err >&5
6439 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6440 - (exit $ac_status); } &&
6441 - { ac_try='test -z "$ac_c_werror_flag"
6442 - || test ! -s conftest.err'
6443 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6444 - (eval $ac_try) 2>&5
6446 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6447 - (exit $ac_status); }; } &&
6448 - { ac_try='test -s conftest$ac_exeext'
6449 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6450 - (eval $ac_try) 2>&5
6452 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6453 - (exit $ac_status); }; }; then
6454 - grub_cv_check_edata_symbol=yes
6456 - echo "$as_me: failed program was:" >&5
6457 -sed 's/^/| /' conftest.$ac_ext >&5
6459 -grub_cv_check_edata_symbol=no
6461 -rm -f conftest.err conftest.$ac_objext \
6462 - conftest$ac_exeext conftest.$ac_ext
6466 -if test "x$grub_cv_check_edata_symbol" = xyes; then
6468 -cat >>confdefs.h <<\_ACEOF
6469 -#define HAVE_EDATA_SYMBOL 1
6474 -echo "$as_me:$LINENO: result: $grub_cv_check_edata_symbol" >&5
6475 -echo "${ECHO_T}$grub_cv_check_edata_symbol" >&6
6477 -if test "x$grub_cv_check_uscore_uscore_bss_start_symbol" != "xyes" \
6478 - -a "x$grub_cv_check_uscore_edata_symbol" != "xyes" \
6479 - -a "x$grub_cv_check_edata_symbol" != "xyes"; then
6480 - { { echo "$as_me:$LINENO: error: None of __bss_start, _edata, edata defined" >&5
6481 -echo "$as_me: error: None of __bss_start, _edata, edata defined" >&2;}
6482 - { (exit 1); exit 1; }; }
6486 -echo "$as_me:$LINENO: checking if end is defined by the compiler" >&5
6487 -echo $ECHO_N "checking if end is defined by the compiler... $ECHO_C" >&6
6488 -if test "${grub_cv_check_end_symbol+set}" = set; then
6489 - echo $ECHO_N "(cached) $ECHO_C" >&6
6491 - cat >conftest.$ac_ext <<_ACEOF
6494 -cat confdefs.h >>conftest.$ac_ext
6495 -cat >>conftest.$ac_ext <<_ACEOF
6496 -/* end confdefs.h. */
6506 -rm -f conftest.$ac_objext conftest$ac_exeext
6507 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6508 - (eval $ac_link) 2>conftest.er1
6510 - grep -v '^ *+' conftest.er1 >conftest.err
6511 - rm -f conftest.er1
6512 - cat conftest.err >&5
6513 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6514 - (exit $ac_status); } &&
6515 - { ac_try='test -z "$ac_c_werror_flag"
6516 - || test ! -s conftest.err'
6517 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6518 - (eval $ac_try) 2>&5
6520 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6521 - (exit $ac_status); }; } &&
6522 - { ac_try='test -s conftest$ac_exeext'
6523 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6524 - (eval $ac_try) 2>&5
6526 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6527 - (exit $ac_status); }; }; then
6528 - grub_cv_check_end_symbol=yes
6530 - echo "$as_me: failed program was:" >&5
6531 -sed 's/^/| /' conftest.$ac_ext >&5
6533 -grub_cv_check_end_symbol=no
6535 -rm -f conftest.err conftest.$ac_objext \
6536 - conftest$ac_exeext conftest.$ac_ext
6540 -if test "x$grub_cv_check_end_symbol" = xyes; then
6542 -cat >>confdefs.h <<\_ACEOF
6543 -#define HAVE_END_SYMBOL 1
6548 -echo "$as_me:$LINENO: result: $grub_cv_check_end_symbol" >&5
6549 -echo "${ECHO_T}$grub_cv_check_end_symbol" >&6
6552 -echo "$as_me:$LINENO: checking if _end is defined by the compiler" >&5
6553 -echo $ECHO_N "checking if _end is defined by the compiler... $ECHO_C" >&6
6554 -if test "${grub_cv_check_uscore_end_symbol+set}" = set; then
6555 - echo $ECHO_N "(cached) $ECHO_C" >&6
6557 - cat >conftest.$ac_ext <<_ACEOF
6560 -cat confdefs.h >>conftest.$ac_ext
6561 -cat >>conftest.$ac_ext <<_ACEOF
6562 -/* end confdefs.h. */
6572 -rm -f conftest.$ac_objext conftest$ac_exeext
6573 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6574 - (eval $ac_link) 2>conftest.er1
6576 - grep -v '^ *+' conftest.er1 >conftest.err
6577 - rm -f conftest.er1
6578 - cat conftest.err >&5
6579 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6580 - (exit $ac_status); } &&
6581 - { ac_try='test -z "$ac_c_werror_flag"
6582 - || test ! -s conftest.err'
6583 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6584 - (eval $ac_try) 2>&5
6586 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6587 - (exit $ac_status); }; } &&
6588 - { ac_try='test -s conftest$ac_exeext'
6589 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6590 - (eval $ac_try) 2>&5
6592 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6593 - (exit $ac_status); }; }; then
6594 - grub_cv_check_uscore_end_symbol=yes
6596 - echo "$as_me: failed program was:" >&5
6597 -sed 's/^/| /' conftest.$ac_ext >&5
6599 -grub_cv_check_uscore_end_symbol=no
6601 -rm -f conftest.err conftest.$ac_objext \
6602 - conftest$ac_exeext conftest.$ac_ext
6606 -if test "x$grub_cv_check_uscore_end_symbol" = xyes; then
6608 -cat >>confdefs.h <<\_ACEOF
6609 -#define HAVE_USCORE_END_SYMBOL 1
6614 -echo "$as_me:$LINENO: result: $grub_cv_check_uscore_end_symbol" >&5
6615 -echo "${ECHO_T}$grub_cv_check_uscore_end_symbol" >&6
6617 -if test "x$grub_cv_check_end_symbol" != "xyes" \
6618 - -a "x$grub_cv_check_uscore_end_symbol" != "xyes"; then
6619 - { { echo "$as_me:$LINENO: error: Neither end nor _end is defined" >&5
6620 -echo "$as_me: error: Neither end nor _end is defined" >&2;}
6621 - { (exit 1); exit 1; }; }
6624 -# Check for curses libraries.
6626 -# Check whether --with-curses or --without-curses was given.
6627 -if test "${with_curses+set}" = set; then
6628 - withval="$with_curses"
6632 -# Get the filename or the whole disk and open it.
6633 -# Known to work on NetBSD.
6634 -echo "$as_me:$LINENO: checking for opendisk in -lutil" >&5
6635 -echo $ECHO_N "checking for opendisk in -lutil... $ECHO_C" >&6
6636 -if test "${ac_cv_lib_util_opendisk+set}" = set; then
6637 - echo $ECHO_N "(cached) $ECHO_C" >&6
6639 - ac_check_lib_save_LIBS=$LIBS
6640 -LIBS="-lutil $LIBS"
6641 -cat >conftest.$ac_ext <<_ACEOF
6644 -cat confdefs.h >>conftest.$ac_ext
6645 -cat >>conftest.$ac_ext <<_ACEOF
6646 -/* end confdefs.h. */
6648 -/* Override any gcc2 internal prototype to avoid an error. */
6652 -/* We use char because int might match the return type of a gcc2
6653 - builtin and then its argument prototype would still apply. */
6663 -rm -f conftest.$ac_objext conftest$ac_exeext
6664 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6665 - (eval $ac_link) 2>conftest.er1
6667 - grep -v '^ *+' conftest.er1 >conftest.err
6668 - rm -f conftest.er1
6669 - cat conftest.err >&5
6670 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6671 - (exit $ac_status); } &&
6672 - { ac_try='test -z "$ac_c_werror_flag"
6673 - || test ! -s conftest.err'
6674 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6675 - (eval $ac_try) 2>&5
6677 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6678 - (exit $ac_status); }; } &&
6679 - { ac_try='test -s conftest$ac_exeext'
6680 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6681 - (eval $ac_try) 2>&5
6683 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6684 - (exit $ac_status); }; }; then
6685 - ac_cv_lib_util_opendisk=yes
6687 - echo "$as_me: failed program was:" >&5
6688 -sed 's/^/| /' conftest.$ac_ext >&5
6690 -ac_cv_lib_util_opendisk=no
6692 -rm -f conftest.err conftest.$ac_objext \
6693 - conftest$ac_exeext conftest.$ac_ext
6694 -LIBS=$ac_check_lib_save_LIBS
6696 -echo "$as_me:$LINENO: result: $ac_cv_lib_util_opendisk" >&5
6697 -echo "${ECHO_T}$ac_cv_lib_util_opendisk" >&6
6698 -if test $ac_cv_lib_util_opendisk = yes; then
6699 - GRUB_LIBS="$GRUB_LIBS -lutil"
6701 -cat >>confdefs.h <<\_ACEOF
6702 -#define HAVE_OPENDISK 1
6708 -# Unless the user specify --without-curses, check for curses.
6709 -if test "x$with_curses" != "xno"; then
6710 - echo "$as_me:$LINENO: checking for wgetch in -lncurses" >&5
6711 -echo $ECHO_N "checking for wgetch in -lncurses... $ECHO_C" >&6
6712 -if test "${ac_cv_lib_ncurses_wgetch+set}" = set; then
6713 - echo $ECHO_N "(cached) $ECHO_C" >&6
6715 - ac_check_lib_save_LIBS=$LIBS
6716 -LIBS="-lncurses $LIBS"
6717 -cat >conftest.$ac_ext <<_ACEOF
6720 -cat confdefs.h >>conftest.$ac_ext
6721 -cat >>conftest.$ac_ext <<_ACEOF
6722 -/* end confdefs.h. */
6724 -/* Override any gcc2 internal prototype to avoid an error. */
6728 -/* We use char because int might match the return type of a gcc2
6729 - builtin and then its argument prototype would still apply. */
6739 -rm -f conftest.$ac_objext conftest$ac_exeext
6740 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6741 - (eval $ac_link) 2>conftest.er1
6743 - grep -v '^ *+' conftest.er1 >conftest.err
6744 - rm -f conftest.er1
6745 - cat conftest.err >&5
6746 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6747 - (exit $ac_status); } &&
6748 - { ac_try='test -z "$ac_c_werror_flag"
6749 - || test ! -s conftest.err'
6750 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6751 - (eval $ac_try) 2>&5
6753 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6754 - (exit $ac_status); }; } &&
6755 - { ac_try='test -s conftest$ac_exeext'
6756 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6757 - (eval $ac_try) 2>&5
6759 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6760 - (exit $ac_status); }; }; then
6761 - ac_cv_lib_ncurses_wgetch=yes
6763 - echo "$as_me: failed program was:" >&5
6764 -sed 's/^/| /' conftest.$ac_ext >&5
6766 -ac_cv_lib_ncurses_wgetch=no
6768 -rm -f conftest.err conftest.$ac_objext \
6769 - conftest$ac_exeext conftest.$ac_ext
6770 -LIBS=$ac_check_lib_save_LIBS
6772 -echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_wgetch" >&5
6773 -echo "${ECHO_T}$ac_cv_lib_ncurses_wgetch" >&6
6774 -if test $ac_cv_lib_ncurses_wgetch = yes; then
6775 - GRUB_LIBS="$GRUB_LIBS -lncurses"
6777 -cat >>confdefs.h <<\_ACEOF
6778 -#define HAVE_LIBCURSES 1
6782 - echo "$as_me:$LINENO: checking for wgetch in -lcurses" >&5
6783 -echo $ECHO_N "checking for wgetch in -lcurses... $ECHO_C" >&6
6784 -if test "${ac_cv_lib_curses_wgetch+set}" = set; then
6785 - echo $ECHO_N "(cached) $ECHO_C" >&6
6787 - ac_check_lib_save_LIBS=$LIBS
6788 -LIBS="-lcurses $LIBS"
6789 -cat >conftest.$ac_ext <<_ACEOF
6792 -cat confdefs.h >>conftest.$ac_ext
6793 -cat >>conftest.$ac_ext <<_ACEOF
6794 -/* end confdefs.h. */
6796 -/* Override any gcc2 internal prototype to avoid an error. */
6800 -/* We use char because int might match the return type of a gcc2
6801 - builtin and then its argument prototype would still apply. */
6811 -rm -f conftest.$ac_objext conftest$ac_exeext
6812 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
6813 - (eval $ac_link) 2>conftest.er1
6815 - grep -v '^ *+' conftest.er1 >conftest.err
6816 - rm -f conftest.er1
6817 - cat conftest.err >&5
6818 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6819 - (exit $ac_status); } &&
6820 - { ac_try='test -z "$ac_c_werror_flag"
6821 - || test ! -s conftest.err'
6822 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6823 - (eval $ac_try) 2>&5
6825 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6826 - (exit $ac_status); }; } &&
6827 - { ac_try='test -s conftest$ac_exeext'
6828 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
6829 - (eval $ac_try) 2>&5
6831 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6832 - (exit $ac_status); }; }; then
6833 - ac_cv_lib_curses_wgetch=yes
6835 - echo "$as_me: failed program was:" >&5
6836 -sed 's/^/| /' conftest.$ac_ext >&5
6838 -ac_cv_lib_curses_wgetch=no
6840 -rm -f conftest.err conftest.$ac_objext \
6841 - conftest$ac_exeext conftest.$ac_ext
6842 -LIBS=$ac_check_lib_save_LIBS
6844 -echo "$as_me:$LINENO: result: $ac_cv_lib_curses_wgetch" >&5
6845 -echo "${ECHO_T}$ac_cv_lib_curses_wgetch" >&6
6846 -if test $ac_cv_lib_curses_wgetch = yes; then
6847 - GRUB_LIBS="$GRUB_LIBS -lcurses"
6849 -cat >>confdefs.h <<\_ACEOF
6850 -#define HAVE_LIBCURSES 1
6861 -# Check for headers.
6863 -ac_cpp='$CPP $CPPFLAGS'
6864 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
6865 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
6866 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
6867 -echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
6868 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
6869 -# On Suns, sometimes $CPP names a directory.
6870 -if test -n "$CPP" && test -d "$CPP"; then
6873 -if test -z "$CPP"; then
6874 - if test "${ac_cv_prog_CPP+set}" = set; then
6875 - echo $ECHO_N "(cached) $ECHO_C" >&6
6877 - # Double quotes because CPP needs to be expanded
6878 - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
6880 - ac_preproc_ok=false
6881 -for ac_c_preproc_warn_flag in '' yes
6883 - # Use a header file that comes with gcc, so configuring glibc
6884 - # with a fresh cross-compiler works.
6885 - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
6886 - # <limits.h> exists even on freestanding compilers.
6887 - # On the NeXT, cc -E runs the code through the compiler's parser,
6888 - # not just through cpp. "Syntax error" is here to catch this case.
6889 - cat >conftest.$ac_ext <<_ACEOF
6892 -cat confdefs.h >>conftest.$ac_ext
6893 -cat >>conftest.$ac_ext <<_ACEOF
6894 -/* end confdefs.h. */
6896 -# include <limits.h>
6898 -# include <assert.h>
6902 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
6903 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
6905 - grep -v '^ *+' conftest.er1 >conftest.err
6906 - rm -f conftest.er1
6907 - cat conftest.err >&5
6908 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6909 - (exit $ac_status); } >/dev/null; then
6910 - if test -s conftest.err; then
6911 - ac_cpp_err=$ac_c_preproc_warn_flag
6912 - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
6919 -if test -z "$ac_cpp_err"; then
6922 - echo "$as_me: failed program was:" >&5
6923 -sed 's/^/| /' conftest.$ac_ext >&5
6925 - # Broken: fails on valid input.
6928 -rm -f conftest.err conftest.$ac_ext
6930 - # OK, works on sane cases. Now check whether non-existent headers
6931 - # can be detected and how.
6932 - cat >conftest.$ac_ext <<_ACEOF
6935 -cat confdefs.h >>conftest.$ac_ext
6936 -cat >>conftest.$ac_ext <<_ACEOF
6937 -/* end confdefs.h. */
6938 -#include <ac_nonexistent.h>
6940 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
6941 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
6943 - grep -v '^ *+' conftest.er1 >conftest.err
6944 - rm -f conftest.er1
6945 - cat conftest.err >&5
6946 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
6947 - (exit $ac_status); } >/dev/null; then
6948 - if test -s conftest.err; then
6949 - ac_cpp_err=$ac_c_preproc_warn_flag
6950 - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
6957 -if test -z "$ac_cpp_err"; then
6958 - # Broken: success on invalid input.
6961 - echo "$as_me: failed program was:" >&5
6962 -sed 's/^/| /' conftest.$ac_ext >&5
6964 - # Passes both tests.
6968 -rm -f conftest.err conftest.$ac_ext
6971 -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
6972 -rm -f conftest.err conftest.$ac_ext
6973 -if $ac_preproc_ok; then
6978 - ac_cv_prog_CPP=$CPP
6981 - CPP=$ac_cv_prog_CPP
6983 - ac_cv_prog_CPP=$CPP
6985 -echo "$as_me:$LINENO: result: $CPP" >&5
6986 -echo "${ECHO_T}$CPP" >&6
6987 -ac_preproc_ok=false
6988 -for ac_c_preproc_warn_flag in '' yes
6990 - # Use a header file that comes with gcc, so configuring glibc
6991 - # with a fresh cross-compiler works.
6992 - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
6993 - # <limits.h> exists even on freestanding compilers.
6994 - # On the NeXT, cc -E runs the code through the compiler's parser,
6995 - # not just through cpp. "Syntax error" is here to catch this case.
6996 - cat >conftest.$ac_ext <<_ACEOF
6999 -cat confdefs.h >>conftest.$ac_ext
7000 -cat >>conftest.$ac_ext <<_ACEOF
7001 -/* end confdefs.h. */
7003 -# include <limits.h>
7005 -# include <assert.h>
7009 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
7010 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
7012 - grep -v '^ *+' conftest.er1 >conftest.err
7013 - rm -f conftest.er1
7014 - cat conftest.err >&5
7015 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
7016 - (exit $ac_status); } >/dev/null; then
7017 - if test -s conftest.err; then
7018 - ac_cpp_err=$ac_c_preproc_warn_flag
7019 - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
7026 -if test -z "$ac_cpp_err"; then
7029 - echo "$as_me: failed program was:" >&5
7030 -sed 's/^/| /' conftest.$ac_ext >&5
7032 - # Broken: fails on valid input.
7035 -rm -f conftest.err conftest.$ac_ext
7037 - # OK, works on sane cases. Now check whether non-existent headers
7038 - # can be detected and how.
7039 - cat >conftest.$ac_ext <<_ACEOF
7042 -cat confdefs.h >>conftest.$ac_ext
7043 -cat >>conftest.$ac_ext <<_ACEOF
7044 -/* end confdefs.h. */
7045 -#include <ac_nonexistent.h>
7047 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
7048 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
7050 - grep -v '^ *+' conftest.er1 >conftest.err
7051 - rm -f conftest.er1
7052 - cat conftest.err >&5
7053 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
7054 - (exit $ac_status); } >/dev/null; then
7055 - if test -s conftest.err; then
7056 - ac_cpp_err=$ac_c_preproc_warn_flag
7057 - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
7064 -if test -z "$ac_cpp_err"; then
7065 - # Broken: success on invalid input.
7068 - echo "$as_me: failed program was:" >&5
7069 -sed 's/^/| /' conftest.$ac_ext >&5
7071 - # Passes both tests.
7075 -rm -f conftest.err conftest.$ac_ext
7078 -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
7079 -rm -f conftest.err conftest.$ac_ext
7080 -if $ac_preproc_ok; then
7083 - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
7084 -See \`config.log' for more details." >&5
7085 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
7086 -See \`config.log' for more details." >&2;}
7087 - { (exit 1); exit 1; }; }
7091 -ac_cpp='$CPP $CPPFLAGS'
7092 -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
7093 -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
7094 -ac_compiler_gnu=$ac_cv_c_compiler_gnu
7097 -echo "$as_me:$LINENO: checking for egrep" >&5
7098 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6
7099 -if test "${ac_cv_prog_egrep+set}" = set; then
7100 - echo $ECHO_N "(cached) $ECHO_C" >&6
7102 - if echo a | (grep -E '(a|b)') >/dev/null 2>&1
7103 - then ac_cv_prog_egrep='grep -E'
7104 - else ac_cv_prog_egrep='egrep'
7107 -echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
7108 -echo "${ECHO_T}$ac_cv_prog_egrep" >&6
7109 - EGREP=$ac_cv_prog_egrep
7112 -echo "$as_me:$LINENO: checking for ANSI C header files" >&5
7113 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
7114 -if test "${ac_cv_header_stdc+set}" = set; then
7115 - echo $ECHO_N "(cached) $ECHO_C" >&6
7117 - cat >conftest.$ac_ext <<_ACEOF
7120 -cat confdefs.h >>conftest.$ac_ext
7121 -cat >>conftest.$ac_ext <<_ACEOF
7122 -/* end confdefs.h. */
7123 -#include <stdlib.h>
7124 -#include <stdarg.h>
7125 -#include <string.h>
7136 -rm -f conftest.$ac_objext
7137 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7138 - (eval $ac_compile) 2>conftest.er1
7140 - grep -v '^ *+' conftest.er1 >conftest.err
7141 - rm -f conftest.er1
7142 - cat conftest.err >&5
7143 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
7144 - (exit $ac_status); } &&
7145 - { ac_try='test -z "$ac_c_werror_flag"
7146 - || test ! -s conftest.err'
7147 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7148 - (eval $ac_try) 2>&5
7150 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
7151 - (exit $ac_status); }; } &&
7152 - { ac_try='test -s conftest.$ac_objext'
7153 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7154 - (eval $ac_try) 2>&5
7156 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
7157 - (exit $ac_status); }; }; then
7158 - ac_cv_header_stdc=yes
7160 - echo "$as_me: failed program was:" >&5
7161 -sed 's/^/| /' conftest.$ac_ext >&5
7163 -ac_cv_header_stdc=no
7165 -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
7167 -if test $ac_cv_header_stdc = yes; then
7168 - # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
7169 - cat >conftest.$ac_ext <<_ACEOF
7172 -cat confdefs.h >>conftest.$ac_ext
7173 -cat >>conftest.$ac_ext <<_ACEOF
7174 -/* end confdefs.h. */
7175 -#include <string.h>
7178 -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
7179 - $EGREP "memchr" >/dev/null 2>&1; then
7182 - ac_cv_header_stdc=no
7188 -if test $ac_cv_header_stdc = yes; then
7189 - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
7190 - cat >conftest.$ac_ext <<_ACEOF
7193 -cat confdefs.h >>conftest.$ac_ext
7194 -cat >>conftest.$ac_ext <<_ACEOF
7195 -/* end confdefs.h. */
7196 -#include <stdlib.h>
7199 -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
7200 - $EGREP "free" >/dev/null 2>&1; then
7203 - ac_cv_header_stdc=no
7209 -if test $ac_cv_header_stdc = yes; then
7210 - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
7211 - if test "$cross_compiling" = yes; then
7214 - cat >conftest.$ac_ext <<_ACEOF
7217 -cat confdefs.h >>conftest.$ac_ext
7218 -cat >>conftest.$ac_ext <<_ACEOF
7219 -/* end confdefs.h. */
7221 -#if ((' ' & 0x0FF) == 0x020)
7222 -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
7223 -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
7225 -# define ISLOWER(c) \
7226 - (('a' <= (c) && (c) <= 'i') \
7227 - || ('j' <= (c) && (c) <= 'r') \
7228 - || ('s' <= (c) && (c) <= 'z'))
7229 -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
7232 -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
7237 - for (i = 0; i < 256; i++)
7238 - if (XOR (islower (i), ISLOWER (i))
7239 - || toupper (i) != TOUPPER (i))
7244 -rm -f conftest$ac_exeext
7245 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7246 - (eval $ac_link) 2>&5
7248 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
7249 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
7250 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7251 - (eval $ac_try) 2>&5
7253 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
7254 - (exit $ac_status); }; }; then
7257 - echo "$as_me: program exited with status $ac_status" >&5
7258 -echo "$as_me: failed program was:" >&5
7259 -sed 's/^/| /' conftest.$ac_ext >&5
7261 -( exit $ac_status )
7262 -ac_cv_header_stdc=no
7264 -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
7268 -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
7269 -echo "${ECHO_T}$ac_cv_header_stdc" >&6
7270 -if test $ac_cv_header_stdc = yes; then
7272 -cat >>confdefs.h <<\_ACEOF
7273 -#define STDC_HEADERS 1
7278 -# On IRIX 5.3, sys/types and inttypes.h are conflicting.
7288 -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
7289 - inttypes.h stdint.h unistd.h
7291 -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
7292 -echo "$as_me:$LINENO: checking for $ac_header" >&5
7293 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
7294 -if eval "test \"\${$as_ac_Header+set}\" = set"; then
7295 - echo $ECHO_N "(cached) $ECHO_C" >&6
7297 - cat >conftest.$ac_ext <<_ACEOF
7300 -cat confdefs.h >>conftest.$ac_ext
7301 -cat >>conftest.$ac_ext <<_ACEOF
7302 -/* end confdefs.h. */
7303 -$ac_includes_default
7305 -#include <$ac_header>
7307 -rm -f conftest.$ac_objext
7308 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7309 - (eval $ac_compile) 2>conftest.er1
7311 - grep -v '^ *+' conftest.er1 >conftest.err
7312 - rm -f conftest.er1
7313 - cat conftest.err >&5
7314 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
7315 - (exit $ac_status); } &&
7316 - { ac_try='test -z "$ac_c_werror_flag"
7317 - || test ! -s conftest.err'
7318 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7319 - (eval $ac_try) 2>&5
7321 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
7322 - (exit $ac_status); }; } &&
7323 - { ac_try='test -s conftest.$ac_objext'
7324 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7325 - (eval $ac_try) 2>&5
7327 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
7328 - (exit $ac_status); }; }; then
7329 - eval "$as_ac_Header=yes"
7331 - echo "$as_me: failed program was:" >&5
7332 -sed 's/^/| /' conftest.$ac_ext >&5
7334 -eval "$as_ac_Header=no"
7336 -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
7338 -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
7339 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
7340 -if test `eval echo '${'$as_ac_Header'}'` = yes; then
7341 - cat >>confdefs.h <<_ACEOF
7342 -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
7355 -for ac_header in string.h strings.h ncurses/curses.h ncurses.h curses.h
7357 -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
7358 -if eval "test \"\${$as_ac_Header+set}\" = set"; then
7359 - echo "$as_me:$LINENO: checking for $ac_header" >&5
7360 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
7361 -if eval "test \"\${$as_ac_Header+set}\" = set"; then
7362 - echo $ECHO_N "(cached) $ECHO_C" >&6
7364 -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
7365 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
7367 - # Is the header compilable?
7368 -echo "$as_me:$LINENO: checking $ac_header usability" >&5
7369 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
7370 -cat >conftest.$ac_ext <<_ACEOF
7373 -cat confdefs.h >>conftest.$ac_ext
7374 -cat >>conftest.$ac_ext <<_ACEOF
7375 -/* end confdefs.h. */
7376 -$ac_includes_default
7377 -#include <$ac_header>
7379 -rm -f conftest.$ac_objext
7380 -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
7381 - (eval $ac_compile) 2>conftest.er1
7383 - grep -v '^ *+' conftest.er1 >conftest.err
7384 - rm -f conftest.er1
7385 - cat conftest.err >&5
7386 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
7387 - (exit $ac_status); } &&
7388 - { ac_try='test -z "$ac_c_werror_flag"
7389 - || test ! -s conftest.err'
7390 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7391 - (eval $ac_try) 2>&5
7393 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
7394 - (exit $ac_status); }; } &&
7395 - { ac_try='test -s conftest.$ac_objext'
7396 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7397 - (eval $ac_try) 2>&5
7399 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
7400 - (exit $ac_status); }; }; then
7401 - ac_header_compiler=yes
7403 - echo "$as_me: failed program was:" >&5
7404 -sed 's/^/| /' conftest.$ac_ext >&5
7406 -ac_header_compiler=no
7408 -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
7409 -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
7410 -echo "${ECHO_T}$ac_header_compiler" >&6
7412 -# Is the header present?
7413 -echo "$as_me:$LINENO: checking $ac_header presence" >&5
7414 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
7415 -cat >conftest.$ac_ext <<_ACEOF
7418 -cat confdefs.h >>conftest.$ac_ext
7419 -cat >>conftest.$ac_ext <<_ACEOF
7420 -/* end confdefs.h. */
7421 -#include <$ac_header>
7423 -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
7424 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
7426 - grep -v '^ *+' conftest.er1 >conftest.err
7427 - rm -f conftest.er1
7428 - cat conftest.err >&5
7429 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
7430 - (exit $ac_status); } >/dev/null; then
7431 - if test -s conftest.err; then
7432 - ac_cpp_err=$ac_c_preproc_warn_flag
7433 - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
7440 -if test -z "$ac_cpp_err"; then
7441 - ac_header_preproc=yes
7443 - echo "$as_me: failed program was:" >&5
7444 -sed 's/^/| /' conftest.$ac_ext >&5
7446 - ac_header_preproc=no
7448 -rm -f conftest.err conftest.$ac_ext
7449 -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
7450 -echo "${ECHO_T}$ac_header_preproc" >&6
7452 -# So? What about this header?
7453 -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
7455 - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
7456 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
7457 - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
7458 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
7459 - ac_header_preproc=yes
7462 - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
7463 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
7464 - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
7465 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
7466 - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
7467 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
7468 - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
7469 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
7470 - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
7471 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
7472 - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
7473 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
7476 -## ------------------------------- ##
7477 -## Report this to bug-grub@gnu.org ##
7478 -## ------------------------------- ##
7481 - sed "s/^/$as_me: WARNING: /" >&2
7484 -echo "$as_me:$LINENO: checking for $ac_header" >&5
7485 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
7486 -if eval "test \"\${$as_ac_Header+set}\" = set"; then
7487 - echo $ECHO_N "(cached) $ECHO_C" >&6
7489 - eval "$as_ac_Header=\$ac_header_preproc"
7491 -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
7492 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
7495 -if test `eval echo '${'$as_ac_Header'}'` = yes; then
7496 - cat >>confdefs.h <<_ACEOF
7497 -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
7505 -# Check for user options.
7507 -# filesystems support.
7508 -# Check whether --enable-ext2fs or --disable-ext2fs was given.
7509 -if test "${enable_ext2fs+set}" = set; then
7510 - enableval="$enable_ext2fs"
7514 -if test x"$enable_ext2fs" != xno; then
7515 - FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_EXT2FS=1"
7518 -# Check whether --enable-fat or --disable-fat was given.
7519 -if test "${enable_fat+set}" = set; then
7520 - enableval="$enable_fat"
7524 -if test x"$enable_fat" != xno; then
7525 - FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_FAT=1"
7528 -# Check whether --enable-ffs or --disable-ffs was given.
7529 -if test "${enable_ffs+set}" = set; then
7530 - enableval="$enable_ffs"
7534 -if test x"$enable_ffs" != xno; then
7535 - FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_FFS=1"
7538 -# Check whether --enable-ufs2 or --disable-ufs2 was given.
7539 -if test "${enable_ufs2+set}" = set; then
7540 - enableval="$enable_ufs2"
7544 -if test x"$enable_ufs2" != xno; then
7545 - FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_UFS2=1"
7548 -# Check whether --enable-minix or --disable-minix was given.
7549 -if test "${enable_minix+set}" = set; then
7550 - enableval="$enable_minix"
7554 -if test x"$enable_minix" != xno; then
7555 - FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_MINIX=1"
7558 -# Check whether --enable-reiserfs or --disable-reiserfs was given.
7559 -if test "${enable_reiserfs+set}" = set; then
7560 - enableval="$enable_reiserfs"
7564 -if test x"$enable_reiserfs" != xno; then
7565 - FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_REISERFS=1"
7568 -# Check whether --enable-vstafs or --disable-vstafs was given.
7569 -if test "${enable_vstafs+set}" = set; then
7570 - enableval="$enable_vstafs"
7574 -if test x"$enable_vstafs" != xno; then
7575 - FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_VSTAFS=1"
7578 -# Check whether --enable-jfs or --disable-jfs was given.
7579 -if test "${enable_jfs+set}" = set; then
7580 - enableval="$enable_jfs"
7584 -if test x"$enable_jfs" != xno; then
7585 - FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_JFS=1"
7588 -# Check whether --enable-xfs or --disable-xfs was given.
7589 -if test "${enable_xfs+set}" = set; then
7590 - enableval="$enable_xfs"
7594 -if test x"$enable_xfs" != xno; then
7595 - FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_XFS=1"
7598 -# Check whether --enable-iso9660 or --disable-iso9660 was given.
7599 -if test "${enable_iso9660+set}" = set; then
7600 - enableval="$enable_iso9660"
7604 -if test x"$enable_iso9660" != xno; then
7605 - FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_ISO9660=1"
7609 -# Check whether --enable-gunzip or --disable-gunzip was given.
7610 -if test "${enable_gunzip+set}" = set; then
7611 - enableval="$enable_gunzip"
7615 -if test x"$enable_gunzip" = xno; then
7616 - FSYS_CFLAGS="$FSYS_CFLAGS -DNO_DECOMPRESSION=1"
7619 -# Check whether --enable-md5-password or --disable-md5-password was given.
7620 -if test "${enable_md5_password+set}" = set; then
7621 - enableval="$enable_md5_password"
7624 -if test "x$enable_md5_password" != xno; then
7625 - FSYS_CFLAGS="$FSYS_CFLAGS -DUSE_MD5_PASSWORDS=1"
7628 -# Check whether --enable-packet-retransmission or --disable-packet-retransmission was given.
7629 -if test "${enable_packet_retransmission+set}" = set; then
7630 - enableval="$enable_packet_retransmission"
7633 -if test "x$enable_packet_retransmission" != xno; then
7634 - NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCONGESTED=1"
7637 -# Check whether --enable-pci-direct or --disable-pci-direct was given.
7638 -if test "${enable_pci_direct+set}" = set; then
7639 - enableval="$enable_pci_direct"
7642 -if test "x$enable_pci_direct" = xyes; then
7643 - NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCONFIG_PCI_DIRECT=1"
7646 -# Check whether --enable-3c509 or --disable-3c509 was given.
7647 -if test "${enable_3c509+set}" = set; then
7648 - enableval="$enable_3c509"
7651 -if test "x$enable_3c509" = xyes; then
7652 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C509"
7653 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c509.o"
7656 -# Check whether --enable-3c529 or --disable-3c529 was given.
7657 -if test "${enable_3c529+set}" = set; then
7658 - enableval="$enable_3c529"
7661 -if test "x$enable_3c529" = xyes; then
7662 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C529=1"
7663 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c529.o"
7666 -# Check whether --enable-3c595 or --disable-3c595 was given.
7667 -if test "${enable_3c595+set}" = set; then
7668 - enableval="$enable_3c595"
7671 -if test "x$enable_3c595" = xyes; then
7672 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C595=1"
7673 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c595.o"
7676 -# Check whether --enable-3c90x or --disable-3c90x was given.
7677 -if test "${enable_3c90x+set}" = set; then
7678 - enableval="$enable_3c90x"
7681 -if test "x$enable_3c90x" = xyes; then
7682 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C90X=1"
7683 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c90x.o"
7686 -# Check whether --enable-cs89x0 or --disable-cs89x0 was given.
7687 -if test "${enable_cs89x0+set}" = set; then
7688 - enableval="$enable_cs89x0"
7691 -if test "x$enable_cs89x0" = xyes; then
7692 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_CS89X0=1"
7693 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS cs89x0.o"
7696 -# Check whether --enable-davicom or --disable-davicom was given.
7697 -if test "${enable_davicom+set}" = set; then
7698 - enableval="$enable_davicom"
7701 -if test "x$enable_davicom" = xyes; then
7702 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_DAVICOM=1"
7703 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS davicom.o"
7706 -# Check whether --enable-depca or --disable-depca was given.
7707 -if test "${enable_depca+set}" = set; then
7708 - enableval="$enable_depca"
7711 -if test "x$enable_depca" = xyes; then
7712 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_DEPCA=1"
7713 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS depca.o"
7716 -# Check whether --enable-eepro or --disable-eepro was given.
7717 -if test "${enable_eepro+set}" = set; then
7718 - enableval="$enable_eepro"
7721 -if test "x$enable_eepro" = xyes; then
7722 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EEPRO=1"
7723 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS eepro.o"
7726 -# Check whether --enable-eepro100 or --disable-eepro100 was given.
7727 -if test "${enable_eepro100+set}" = set; then
7728 - enableval="$enable_eepro100"
7731 -if test "x$enable_eepro100" = xyes; then
7732 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EEPRO100=1"
7733 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS eepro100.o"
7736 -# Check whether --enable-epic100 or --disable-epic100 was given.
7737 -if test "${enable_epic100+set}" = set; then
7738 - enableval="$enable_epic100"
7741 -if test "x$enable_epic100" = xyes; then
7742 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EPIC100=1"
7743 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS epic100.o"
7746 -# Check whether --enable-3c507 or --disable-3c507 was given.
7747 -if test "${enable_3c507+set}" = set; then
7748 - enableval="$enable_3c507"
7751 -if test "x$enable_3c507" = xyes; then
7752 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C507=1"
7753 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c507.o"
7756 -# Check whether --enable-exos205 or --disable-exos205 was given.
7757 -if test "${enable_exos205+set}" = set; then
7758 - enableval="$enable_exos205"
7761 -if test "x$enable_exos205" = xyes; then
7762 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EXOS205=1"
7763 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS exos205.o"
7766 -# Check whether --enable-ni5210 or --disable-ni5210 was given.
7767 -if test "${enable_ni5210+set}" = set; then
7768 - enableval="$enable_ni5210"
7771 -if test "x$enable_ni5210" = xyes; then
7772 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NI5210=1"
7773 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS ni5210.o"
7776 -# Check whether --enable-lance or --disable-lance was given.
7777 -if test "${enable_lance+set}" = set; then
7778 - enableval="$enable_lance"
7781 -if test "x$enable_lance" = xyes; then
7782 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_LANCE=1"
7783 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS lance.o"
7786 -# Check whether --enable-ne2100 or --disable-ne2100 was given.
7787 -if test "${enable_ne2100+set}" = set; then
7788 - enableval="$enable_ne2100"
7791 -if test "x$enable_ne2100" = xyes; then
7792 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NE2100=1"
7793 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS ne2100.o"
7796 -# Check whether --enable-ni6510 or --disable-ni6510 was given.
7797 -if test "${enable_ni6510+set}" = set; then
7798 - enableval="$enable_ni6510"
7801 -if test "x$enable_ni6510" = xyes; then
7802 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NI6510=1"
7803 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS ni6510.o"
7806 -# Check whether --enable-natsemi or --disable-natsemi was given.
7807 -if test "${enable_natsemi+set}" = set; then
7808 - enableval="$enable_natsemi"
7811 -if test "x$enable_natsemi" = xyes; then
7812 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NATSEMI=1"
7813 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS natsemi.o"
7816 -# Check whether --enable-ni5010 or --disable-ni5010 was given.
7817 -if test "${enable_ni5010+set}" = set; then
7818 - enableval="$enable_ni5010"
7821 -if test "x$enable_ni5010" = xyes; then
7822 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NI5010=1"
7823 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS ni5010.o"
7826 -# Check whether --enable-3c503 or --disable-3c503 was given.
7827 -if test "${enable_3c503+set}" = set; then
7828 - enableval="$enable_3c503"
7831 -if test "x$enable_3c503" = xyes; then
7832 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C503=1"
7833 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c503.o"
7836 -# Check whether --enable-ne or --disable-ne was given.
7837 -if test "${enable_ne+set}" = set; then
7838 - enableval="$enable_ne"
7841 -if test "x$enable_ne" = xyes; then
7842 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NE=1"
7843 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS ne.o"
7846 -# Check whether --enable-ns8390 or --disable-ns8390 was given.
7847 -if test "${enable_ns8390+set}" = set; then
7848 - enableval="$enable_ns8390"
7851 -if test "x$enable_ns8390" = xyes; then
7852 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NS8390=1"
7853 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS ns8390.o"
7856 -# Check whether --enable-wd or --disable-wd was given.
7857 -if test "${enable_wd+set}" = set; then
7858 - enableval="$enable_wd"
7861 -if test "x$enable_wd" = xyes; then
7862 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_WD=1"
7863 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS wd.o"
7866 -# Check whether --enable-otulip or --disable-otulip was given.
7867 -if test "${enable_otulip+set}" = set; then
7868 - enableval="$enable_otulip"
7871 -if test "x$enable_otulip" = xyes; then
7872 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_OTULIP=1"
7873 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS otulip.o"
7876 -# Check whether --enable-rtl8139 or --disable-rtl8139 was given.
7877 -if test "${enable_rtl8139+set}" = set; then
7878 - enableval="$enable_rtl8139"
7881 -if test "x$enable_rtl8139" = xyes; then
7882 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_RTL8139=1"
7883 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS rtl8139.o"
7886 -# Check whether --enable-sis900 or --disable-sis900 was given.
7887 -if test "${enable_sis900+set}" = set; then
7888 - enableval="$enable_sis900"
7891 -if test "x$enable_sis900" = xyes; then
7892 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_SIS900=1"
7893 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS sis900.o"
7896 -# Check whether --enable-sk-g16 or --disable-sk-g16 was given.
7897 -if test "${enable_sk_g16+set}" = set; then
7898 - enableval="$enable_sk_g16"
7901 -if test "x$enable_sk_g16" = xyes; then
7902 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_SK_G16=1"
7903 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS sk_g16.o"
7906 -# Check whether --enable-smc9000 or --disable-smc9000 was given.
7907 -if test "${enable_smc9000+set}" = set; then
7908 - enableval="$enable_smc9000"
7911 -if test "x$enable_smc9000" = xyes; then
7912 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_SMC9000=1"
7913 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS smc9000.o"
7916 -# Check whether --enable-tiara or --disable-tiara was given.
7917 -if test "${enable_tiara+set}" = set; then
7918 - enableval="$enable_tiara"
7921 -if test "x$enable_tiara" = xyes; then
7922 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_TIARA=1"
7923 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS tiara.o"
7926 -# Check whether --enable-tulip or --disable-tulip was given.
7927 -if test "${enable_tulip+set}" = set; then
7928 - enableval="$enable_tulip"
7931 -if test "x$enable_tulip" = xyes; then
7932 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_TULIP=1"
7933 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS tulip.o"
7936 -# Check whether --enable-via-rhine or --disable-via-rhine was given.
7937 -if test "${enable_via_rhine+set}" = set; then
7938 - enableval="$enable_via_rhine"
7941 -if test "x$enable_via_rhine" = xyes; then
7942 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_VIA_RHINE=1"
7943 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS via_rhine.o"
7946 -# Check whether --enable-w89c840 or --disable-w89c840 was given.
7947 -if test "${enable_w89c840+set}" = set; then
7948 - enableval="$enable_w89c840"
7951 -if test "x$enable_w89c840" = xyes; then
7952 - NET_CFLAGS="$NET_CFLAGS -DINCLUDE_W89C840=1"
7953 - NETBOOT_DRIVERS="$NETBOOT_DRIVERS w89c840.o"
7958 -if test "x$NET_CFLAGS" != x; then
7959 - NETBOOT_SUPPORT_TRUE=
7960 - NETBOOT_SUPPORT_FALSE='#'
7962 - NETBOOT_SUPPORT_TRUE='#'
7963 - NETBOOT_SUPPORT_FALSE=
7966 -if test "x$NET_CFLAGS" != x; then
7967 - FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_TFTP=1"
7970 -# Check whether --enable-3c503-shmem or --disable-3c503-shmem was given.
7971 -if test "${enable_3c503_shmem+set}" = set; then
7972 - enableval="$enable_3c503_shmem"
7975 -if test "x$enable_3c503_shmem" = xyes; then
7976 - NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DT503_SHMEM=1"
7979 -# Check whether --enable-3c503-aui or --disable-3c503-aui was given.
7980 -if test "${enable_3c503_aui+set}" = set; then
7981 - enableval="$enable_3c503_aui"
7984 -if test "x$enable_3c503_aui" = xyes; then
7985 - NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DT503_AUI=1"
7988 -# Check whether --enable-compex-rl2000-fix or --disable-compex-rl2000-fix was given.
7989 -if test "${enable_compex_rl2000_fix+set}" = set; then
7990 - enableval="$enable_compex_rl2000_fix"
7993 -if test "x$enable_compex_rl2000_fix" = xyes; then
7994 - NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCOMPEX_RL2000_FIX=1"
7997 -# Check whether --enable-smc9000-scan or --disable-smc9000-scan was given.
7998 -if test "${enable_smc9000_scan+set}" = set; then
7999 - enableval="$enable_smc9000_scan"
8000 - NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DSMC9000_SCAN=$enable_smc9000_scan"
8003 -# Check whether --enable-ne-scan or --disable-ne-scan was given.
8004 -if test "${enable_ne_scan+set}" = set; then
8005 - enableval="$enable_ne_scan"
8006 - NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DNE_SCAN=$enable_ne_scan"
8008 - NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DNE_SCAN=0x280,0x300,0x320,0x340"
8011 -# Check whether --enable-wd-default-mem or --disable-wd-default-mem was given.
8012 -if test "${enable_wd_default_mem+set}" = set; then
8013 - enableval="$enable_wd_default_mem"
8014 - NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DWD_DEFAULT_MEM=$enable_wd_default_mem"
8016 - NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DWD_DEFAULT_MEM=0xCC000"
8019 -# Check whether --enable-cs-scan or --disable-cs-scan was given.
8020 -if test "${enable_cs_scan+set}" = set; then
8021 - enableval="$enable_cs_scan"
8022 - NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCS_SCAN=$enable_cs_scan"
8025 -# Check whether --enable-diskless or --disable-diskless was given.
8026 -if test "${enable_diskless+set}" = set; then
8027 - enableval="$enable_diskless"
8032 -if test "x$enable_diskless" = xyes; then
8033 - DISKLESS_SUPPORT_TRUE=
8034 - DISKLESS_SUPPORT_FALSE='#'
8036 - DISKLESS_SUPPORT_TRUE='#'
8037 - DISKLESS_SUPPORT_FALSE=
8041 -# Check whether --enable-hercules or --disable-hercules was given.
8042 -if test "${enable_hercules+set}" = set; then
8043 - enableval="$enable_hercules"
8048 -if test "x$enable_hercules" != xno; then
8049 - HERCULES_SUPPORT_TRUE=
8050 - HERCULES_SUPPORT_FALSE='#'
8052 - HERCULES_SUPPORT_TRUE='#'
8053 - HERCULES_SUPPORT_FALSE=
8057 -# Check whether --enable-serial or --disable-serial was given.
8058 -if test "${enable_serial+set}" = set; then
8059 - enableval="$enable_serial"
8064 -if test "x$enable_serial" != xno; then
8065 - SERIAL_SUPPORT_TRUE=
8066 - SERIAL_SUPPORT_FALSE='#'
8068 - SERIAL_SUPPORT_TRUE='#'
8069 - SERIAL_SUPPORT_FALSE=
8073 -# Check whether --enable-serial-speed-simulation or --disable-serial-speed-simulation was given.
8074 -if test "${enable_serial_speed_simulation+set}" = set; then
8075 - enableval="$enable_serial_speed_simulation"
8080 -if test "x$enable_serial_speed_simulation" = xyes; then
8081 - SERIAL_SPEED_SIMULATION_TRUE=
8082 - SERIAL_SPEED_SIMULATION_FALSE='#'
8084 - SERIAL_SPEED_SIMULATION_TRUE='#'
8085 - SERIAL_SPEED_SIMULATION_FALSE=
8090 -if test "x$enable_diskless" = xyes; then
8091 - if test "x$NET_CFLAGS" = x; then
8092 - { { echo "$as_me:$LINENO: error: You must enable at least one network driver" >&5
8093 -echo "$as_me: error: You must enable at least one network driver" >&2;}
8094 - { (exit 1); exit 1; }; }
8098 -# Check whether --enable-preset-menu or --disable-preset-menu was given.
8099 -if test "${enable_preset_menu+set}" = set; then
8100 - enableval="$enable_preset_menu"
8103 -if test "x$enable_preset_menu" = x; then
8106 - if test -r $enable_preset_menu; then
8108 -# Because early versions of GNU sed 3.x are too buggy, use a C program
8109 -# instead of shell commands. *sigh*
8110 -cat >conftest.c <<\EOF
8118 - while ((c = getchar ()) != EOF)
8123 - fputs ("\\n", stdout);
8126 - fputs ("\\r", stdout);
8129 - fputs ("\\\\", stdout);
8132 - fputs ("\\\"", stdout);
8143 -if { ac_try='${CC-cc} ${CFLAGS} conftest.c -o conftest'
8144 - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8145 - (eval $ac_try) 2>&5
8147 - echo "$as_me:$LINENO: \$? = $ac_status" >&5
8148 - (exit $ac_status); }; } && test -s conftest; then
8149 - grub_tmp_value=`./conftest < "$enable_preset_menu"`
8151 - { { echo "$as_me:$LINENO: error: ${CC-cc} failed to produce an executable file" >&5
8152 -echo "$as_me: error: ${CC-cc} failed to produce an executable file" >&2;}
8153 - { (exit 1); exit 1; }; }
8157 -cat >>confdefs.h <<_ACEOF
8158 -#define PRESET_MENU_STRING "$grub_tmp_value"
8164 - { { echo "$as_me:$LINENO: error: Cannot read the preset menu file $enable_preset_menu" >&5
8165 -echo "$as_me: error: Cannot read the preset menu file $enable_preset_menu" >&2;}
8166 - { (exit 1); exit 1; }; }
8170 -# Check whether --enable-example-kernel or --disable-example-kernel was given.
8171 -if test "${enable_example_kernel+set}" = set; then
8172 - enableval="$enable_example_kernel"
8177 -if test "x$enable_example_kernel" = xyes; then
8178 - BUILD_EXAMPLE_KERNEL_TRUE=
8179 - BUILD_EXAMPLE_KERNEL_FALSE='#'
8181 - BUILD_EXAMPLE_KERNEL_TRUE='#'
8182 - BUILD_EXAMPLE_KERNEL_FALSE=
8186 -# Check whether --enable-auto-linux-mem-opt or --disable-auto-linux-mem-opt was given.
8187 -if test "${enable_auto_linux_mem_opt+set}" = set; then
8188 - enableval="$enable_auto_linux_mem_opt"
8191 -if test "x$enable_auto_linux_mem_opt" = xno; then
8195 -cat >>confdefs.h <<\_ACEOF
8196 -#define AUTO_LINUX_MEM_OPT 1
8206 -CCASFLAGS='$(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)'
8210 - 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"
8212 -cat >confcache <<\_ACEOF
8213 -# This file is a shell script that caches the results of configure
8214 -# tests run on this system so they can be shared between configure
8215 -# scripts and configure runs, see configure's option --config-cache.
8216 -# It is not useful on other systems. If it contains results you don't
8217 -# want to keep, you may remove or edit it.
8219 -# config.status only pays attention to the cache file if you give it
8220 -# the --recheck option to rerun configure.
8222 -# `ac_cv_env_foo' variables (set or unset) will be overridden when
8223 -# loading this file, other *unset* `ac_cv_foo' will be assigned the
8224 -# following values.
8228 -# The following way of writing the cache mishandles newlines in values,
8229 -# but we know of no workaround that is simple, portable, and efficient.
8230 -# So, don't put newlines in cache variables' values.
8231 -# Ultrix sh set writes to stderr and can't be redirected directly,
8232 -# and sets the high bit in the cache file unless we assign to the vars.
8235 - case `(ac_space=' '; set | grep ac_space) 2>&1` in
8237 - # `set' does not quote correctly, so add quotes (double-quote
8238 - # substitution turns \\\\ into \\, and sed turns \\ into \).
8241 - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
8244 - # `set' quotes correctly as required by POSIX, so do not add quotes.
8246 - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
8253 - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
8255 - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
8256 - : end' >>confcache
8257 -if diff $cache_file confcache >/dev/null 2>&1; then :; else
8258 - if test -w $cache_file; then
8259 - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
8260 - cat confcache >$cache_file
8262 - echo "not updating unwritable cache $cache_file"
8267 -test "x$prefix" = xNONE && prefix=$ac_default_prefix
8268 -# Let make expand exec_prefix.
8269 -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
8271 -# VPATH may cause trouble with some makes, so we remove $(srcdir),
8272 -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
8273 -# trailing colons and then remove the whole line if VPATH becomes empty
8274 -# (actually we leave an empty line to preserve line numbers).
8275 -if test "x$srcdir" = x.; then
8276 - ac_vpsub='/^[ ]*VPATH[ ]*=/{
8277 -s/:*\$(srcdir):*/:/;
8278 -s/:*\${srcdir}:*/:/;
8280 -s/^\([^=]*=[ ]*\):*/\1/;
8286 -DEFS=-DHAVE_CONFIG_H
8290 -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
8291 - # 1. Remove the extension, and $U if already installed.
8292 - ac_i=`echo "$ac_i" |
8293 - sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
8295 - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
8296 - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
8298 -LIBOBJS=$ac_libobjs
8300 -LTLIBOBJS=$ac_ltlibobjs
8303 -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
8304 - { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
8305 -Usually this means the macro was only invoked conditionally." >&5
8306 -echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
8307 -Usually this means the macro was only invoked conditionally." >&2;}
8308 - { (exit 1); exit 1; }; }
8310 -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
8311 - { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
8312 -Usually this means the macro was only invoked conditionally." >&5
8313 -echo "$as_me: error: conditional \"AMDEP\" was never defined.
8314 -Usually this means the macro was only invoked conditionally." >&2;}
8315 - { (exit 1); exit 1; }; }
8317 -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
8318 - { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
8319 -Usually this means the macro was only invoked conditionally." >&5
8320 -echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
8321 -Usually this means the macro was only invoked conditionally." >&2;}
8322 - { (exit 1); exit 1; }; }
8324 -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
8325 - { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
8326 -Usually this means the macro was only invoked conditionally." >&5
8327 -echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
8328 -Usually this means the macro was only invoked conditionally." >&2;}
8329 - { (exit 1); exit 1; }; }
8331 -if test -z "${NETBOOT_SUPPORT_TRUE}" && test -z "${NETBOOT_SUPPORT_FALSE}"; then
8332 - { { echo "$as_me:$LINENO: error: conditional \"NETBOOT_SUPPORT\" was never defined.
8333 -Usually this means the macro was only invoked conditionally." >&5
8334 -echo "$as_me: error: conditional \"NETBOOT_SUPPORT\" was never defined.
8335 -Usually this means the macro was only invoked conditionally." >&2;}
8336 - { (exit 1); exit 1; }; }
8338 -if test -z "${DISKLESS_SUPPORT_TRUE}" && test -z "${DISKLESS_SUPPORT_FALSE}"; then
8339 - { { echo "$as_me:$LINENO: error: conditional \"DISKLESS_SUPPORT\" was never defined.
8340 -Usually this means the macro was only invoked conditionally." >&5
8341 -echo "$as_me: error: conditional \"DISKLESS_SUPPORT\" was never defined.
8342 -Usually this means the macro was only invoked conditionally." >&2;}
8343 - { (exit 1); exit 1; }; }
8345 -if test -z "${HERCULES_SUPPORT_TRUE}" && test -z "${HERCULES_SUPPORT_FALSE}"; then
8346 - { { echo "$as_me:$LINENO: error: conditional \"HERCULES_SUPPORT\" was never defined.
8347 -Usually this means the macro was only invoked conditionally." >&5
8348 -echo "$as_me: error: conditional \"HERCULES_SUPPORT\" was never defined.
8349 -Usually this means the macro was only invoked conditionally." >&2;}
8350 - { (exit 1); exit 1; }; }
8352 -if test -z "${SERIAL_SUPPORT_TRUE}" && test -z "${SERIAL_SUPPORT_FALSE}"; then
8353 - { { echo "$as_me:$LINENO: error: conditional \"SERIAL_SUPPORT\" was never defined.
8354 -Usually this means the macro was only invoked conditionally." >&5
8355 -echo "$as_me: error: conditional \"SERIAL_SUPPORT\" was never defined.
8356 -Usually this means the macro was only invoked conditionally." >&2;}
8357 - { (exit 1); exit 1; }; }
8359 -if test -z "${SERIAL_SPEED_SIMULATION_TRUE}" && test -z "${SERIAL_SPEED_SIMULATION_FALSE}"; then
8360 - { { echo "$as_me:$LINENO: error: conditional \"SERIAL_SPEED_SIMULATION\" was never defined.
8361 -Usually this means the macro was only invoked conditionally." >&5
8362 -echo "$as_me: error: conditional \"SERIAL_SPEED_SIMULATION\" was never defined.
8363 -Usually this means the macro was only invoked conditionally." >&2;}
8364 - { (exit 1); exit 1; }; }
8366 -if test -z "${BUILD_EXAMPLE_KERNEL_TRUE}" && test -z "${BUILD_EXAMPLE_KERNEL_FALSE}"; then
8367 - { { echo "$as_me:$LINENO: error: conditional \"BUILD_EXAMPLE_KERNEL\" was never defined.
8368 -Usually this means the macro was only invoked conditionally." >&5
8369 -echo "$as_me: error: conditional \"BUILD_EXAMPLE_KERNEL\" was never defined.
8370 -Usually this means the macro was only invoked conditionally." >&2;}
8371 - { (exit 1); exit 1; }; }
8374 -: ${CONFIG_STATUS=./config.status}
8375 -ac_clean_files_save=$ac_clean_files
8376 -ac_clean_files="$ac_clean_files $CONFIG_STATUS"
8377 -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
8378 -echo "$as_me: creating $CONFIG_STATUS" >&6;}
8379 -cat >$CONFIG_STATUS <<_ACEOF
8381 -# Generated by $as_me.
8382 -# Run this file to recreate the current configuration.
8383 -# Compiler output produced by configure, useful for debugging
8384 -# configure, is in config.log if it exists.
8387 -ac_cs_recheck=false
8389 -SHELL=\${CONFIG_SHELL-$SHELL}
8392 -cat >>$CONFIG_STATUS <<\_ACEOF
8393 -## --------------------- ##
8394 -## M4sh Initialization. ##
8395 -## --------------------- ##
8397 -# Be Bourne compatible
8398 -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
8401 - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
8402 - # is contrary to our usage. Disable this feature.
8403 - alias -g '${1+"$@"}'='"$@"'
8404 -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
8407 -DUALCASE=1; export DUALCASE # for MKS sh
8409 -# Support unset when possible.
8410 -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
8417 -# Work around bugs in pre-3.0 UWIN ksh.
8418 -$as_unset ENV MAIL MAILPATH
8425 - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
8426 - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
8427 - LC_TELEPHONE LC_TIME
8429 - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
8430 - eval $as_var=C; export $as_var
8436 -# Required to use basename.
8437 -if expr a : '\(a\)' >/dev/null 2>&1; then
8443 -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
8444 - as_basename=basename
8450 -# Name of the executable.
8451 -as_me=`$as_basename "$0" ||
8452 -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
8453 - X"$0" : 'X\(//\)$' \| \
8454 - X"$0" : 'X\(/\)$' \| \
8455 - . : '\(.\)' 2>/dev/null ||
8457 - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
8458 - /^X\/\(\/\/\)$/{ s//\1/; q; }
8459 - /^X\/\(\/\).*/{ s//\1/; q; }
8463 -# PATH needs CR, and LINENO needs CR and PATH.
8464 -# Avoid depending upon Character Ranges.
8465 -as_cr_letters='abcdefghijklmnopqrstuvwxyz'
8466 -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
8467 -as_cr_Letters=$as_cr_letters$as_cr_LETTERS
8468 -as_cr_digits='0123456789'
8469 -as_cr_alnum=$as_cr_Letters$as_cr_digits
8471 -# The user is always right.
8472 -if test "${PATH_SEPARATOR+set}" != set; then
8473 - echo "#! /bin/sh" >conf$$.sh
8474 - echo "exit 0" >>conf$$.sh
8475 - chmod +x conf$$.sh
8476 - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
8477 - PATH_SEPARATOR=';'
8485 - as_lineno_1=$LINENO
8486 - as_lineno_2=$LINENO
8487 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
8488 - test "x$as_lineno_1" != "x$as_lineno_2" &&
8489 - test "x$as_lineno_3" = "x$as_lineno_2" || {
8490 - # Find who we are. Look in the path if we contain no path at all
8491 - # relative or not.
8493 - *[\\/]* ) as_myself=$0 ;;
8494 - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8495 -for as_dir in $PATH
8498 - test -z "$as_dir" && as_dir=.
8499 - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
8504 - # We did not find ourselves, most probably we were run as `sh COMMAND'
8505 - # in which case we are not to be found in the path.
8506 - if test "x$as_myself" = x; then
8509 - if test ! -f "$as_myself"; then
8510 - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
8511 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
8512 - { (exit 1); exit 1; }; }
8514 - case $CONFIG_SHELL in
8516 - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
8517 -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
8520 - test -z "$as_dir" && as_dir=.
8521 - for as_base in sh bash ksh sh5; do
8524 - if ("$as_dir/$as_base" -c '
8525 - as_lineno_1=$LINENO
8526 - as_lineno_2=$LINENO
8527 - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
8528 - test "x$as_lineno_1" != "x$as_lineno_2" &&
8529 - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
8530 - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
8531 - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
8532 - CONFIG_SHELL=$as_dir/$as_base
8533 - export CONFIG_SHELL
8534 - exec "$CONFIG_SHELL" "$0" ${1+"$@"}
8542 - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
8543 - # uniformly replaced by the line number. The first 'sed' inserts a
8544 - # line-number line before each line; the second 'sed' does the real
8545 - # work. The second script uses 'N' to pair each line-number line
8546 - # with the numbered line, and appends trailing '-' during
8547 - # substitution so that $LINENO is not a special case at line end.
8548 - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
8549 - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
8550 - sed '=' <$as_myself |
8555 - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
8558 - s,^['$as_cr_digits']*\n,,
8559 - ' >$as_me.lineno &&
8560 - chmod +x $as_me.lineno ||
8561 - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
8562 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
8563 - { (exit 1); exit 1; }; }
8565 - # Don't try to exec as it changes $[0], causing all sort of problems
8566 - # (the dirname of $[0] is not the place where we might find the
8567 - # original and so on. Autoconf is especially sensible to this).
8569 - # Exit status is that of the last command.
8574 -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
8575 - *c*,-n*) ECHO_N= ECHO_C='
8577 - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
8578 - *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
8581 -if expr a : '\(a\)' >/dev/null 2>&1; then
8587 -rm -f conf$$ conf$$.exe conf$$.file
8589 -if ln -s conf$$.file conf$$ 2>/dev/null; then
8590 - # We could just check for DJGPP; but this test a) works b) is more generic
8591 - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
8592 - if test -f conf$$.exe; then
8593 - # Don't use ln at all; we don't have any links
8598 -elif ln conf$$.file conf$$ 2>/dev/null; then
8603 -rm -f conf$$ conf$$.exe conf$$.file
8605 -if mkdir -p . 2>/dev/null; then
8608 - test -d ./-p && rmdir ./-p
8612 -as_executable_p="test -f"
8614 -# Sed expression to map a string onto a valid CPP name.
8615 -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
8617 -# Sed expression to map a string onto a valid variable name.
8618 -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
8622 -# We need space, tab and new line, in precisely that order.
8632 -# Open the log real soon, to keep \$[0] and so on meaningful, and to
8633 -# report actual input values of CONFIG_FILES etc. instead of their
8634 -# values after options handling. Logging --version etc. is OK.
8638 - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
8639 -## Running $as_me. ##
8644 -This file was extended by GRUB $as_me 0.97, which was
8645 -generated by GNU Autoconf 2.59. Invocation command line was
8647 - CONFIG_FILES = $CONFIG_FILES
8648 - CONFIG_HEADERS = $CONFIG_HEADERS
8649 - CONFIG_LINKS = $CONFIG_LINKS
8650 - CONFIG_COMMANDS = $CONFIG_COMMANDS
8654 -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
8658 -# Files that config.status was made for.
8659 -if test -n "$ac_config_files"; then
8660 - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
8663 -if test -n "$ac_config_headers"; then
8664 - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
8667 -if test -n "$ac_config_links"; then
8668 - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
8671 -if test -n "$ac_config_commands"; then
8672 - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
8675 -cat >>$CONFIG_STATUS <<\_ACEOF
8678 -\`$as_me' instantiates files from templates according to the
8679 -current configuration.
8681 -Usage: $0 [OPTIONS] [FILE]...
8683 - -h, --help print this help, then exit
8684 - -V, --version print version number, then exit
8685 - -q, --quiet do not print progress messages
8686 - -d, --debug don't remove temporary files
8687 - --recheck update $as_me by reconfiguring in the same conditions
8688 - --file=FILE[:TEMPLATE]
8689 - instantiate the configuration file FILE
8690 - --header=FILE[:TEMPLATE]
8691 - instantiate the configuration header FILE
8693 -Configuration files:
8696 -Configuration headers:
8699 -Configuration commands:
8702 -Report bugs to <bug-autoconf@gnu.org>."
8705 -cat >>$CONFIG_STATUS <<_ACEOF
8707 -GRUB config.status 0.97
8708 -configured by $0, generated by GNU Autoconf 2.59,
8709 - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
8711 -Copyright (C) 2003 Free Software Foundation, Inc.
8712 -This config.status script is free software; the Free Software Foundation
8713 -gives unlimited permission to copy, distribute and modify it."
8718 -cat >>$CONFIG_STATUS <<\_ACEOF
8719 -# If no file are specified by the user, then we need to provide default
8720 -# value. By we need to know if files were specified by the user.
8726 - ac_option=`expr "x$1" : 'x\([^=]*\)='`
8727 - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
8735 - *) # This is not an option, so the user has probably given explicit
8738 - ac_need_defaults=false;;
8741 - case $ac_option in
8742 - # Handling of the options.
8744 -cat >>$CONFIG_STATUS <<\_ACEOF
8745 - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
8746 - ac_cs_recheck=: ;;
8747 - --version | --vers* | -V )
8748 - echo "$ac_cs_version"; exit 0 ;;
8750 - # Conflict between --help and --header
8751 - { { echo "$as_me:$LINENO: error: ambiguous option: $1
8752 -Try \`$0 --help' for more information." >&5
8753 -echo "$as_me: error: ambiguous option: $1
8754 -Try \`$0 --help' for more information." >&2;}
8755 - { (exit 1); exit 1; }; };;
8756 - --help | --hel | -h )
8757 - echo "$ac_cs_usage"; exit 0 ;;
8758 - --debug | --d* | -d )
8760 - --file | --fil | --fi | --f )
8762 - CONFIG_FILES="$CONFIG_FILES $ac_optarg"
8763 - ac_need_defaults=false;;
8764 - --header | --heade | --head | --hea )
8766 - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
8767 - ac_need_defaults=false;;
8768 - -q | -quiet | --quiet | --quie | --qui | --qu | --q \
8769 - | -silent | --silent | --silen | --sile | --sil | --si | --s)
8772 - # This is an error.
8773 - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
8774 -Try \`$0 --help' for more information." >&5
8775 -echo "$as_me: error: unrecognized option: $1
8776 -Try \`$0 --help' for more information." >&2;}
8777 - { (exit 1); exit 1; }; } ;;
8779 - *) ac_config_targets="$ac_config_targets $1" ;;
8785 -ac_configure_extra_args=
8787 -if $ac_cs_silent; then
8789 - ac_configure_extra_args="$ac_configure_extra_args --silent"
8793 -cat >>$CONFIG_STATUS <<_ACEOF
8794 -if \$ac_cs_recheck; then
8795 - echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
8796 - exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
8801 -cat >>$CONFIG_STATUS <<_ACEOF
8803 -# INIT-COMMANDS section.
8806 -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
8812 -cat >>$CONFIG_STATUS <<\_ACEOF
8813 -for ac_config_target in $ac_config_targets
8815 - case "$ac_config_target" in
8816 - # Handling of arguments.
8817 - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
8818 - "stage1/Makefile" ) CONFIG_FILES="$CONFIG_FILES stage1/Makefile" ;;
8819 - "stage2/Makefile" ) CONFIG_FILES="$CONFIG_FILES stage2/Makefile" ;;
8820 - "docs/Makefile" ) CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;;
8821 - "lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
8822 - "util/Makefile" ) CONFIG_FILES="$CONFIG_FILES util/Makefile" ;;
8823 - "grub/Makefile" ) CONFIG_FILES="$CONFIG_FILES grub/Makefile" ;;
8824 - "netboot/Makefile" ) CONFIG_FILES="$CONFIG_FILES netboot/Makefile" ;;
8825 - "util/grub-image" ) CONFIG_FILES="$CONFIG_FILES util/grub-image" ;;
8826 - "util/grub-install" ) CONFIG_FILES="$CONFIG_FILES util/grub-install" ;;
8827 - "util/grub-md5-crypt" ) CONFIG_FILES="$CONFIG_FILES util/grub-md5-crypt" ;;
8828 - "util/grub-terminfo" ) CONFIG_FILES="$CONFIG_FILES util/grub-terminfo" ;;
8829 - "util/grub-set-default" ) CONFIG_FILES="$CONFIG_FILES util/grub-set-default" ;;
8830 - "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
8831 - "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
8832 - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
8833 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
8834 - { (exit 1); exit 1; }; };;
8838 -# If the user did not use the arguments to specify the items to instantiate,
8839 -# then the envvar interface is used. Set only those that are not.
8840 -# We use the long form for the default assignment because of an extremely
8841 -# bizarre bug on SunOS 4.1.3.
8842 -if $ac_need_defaults; then
8843 - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
8844 - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
8845 - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
8848 -# Have a temporary directory for convenience. Make it in the build tree
8849 -# simply because there is no reason to put it here, and in addition,
8850 -# creating and moving files from /tmp can sometimes cause problems.
8851 -# Create a temporary directory, and hook for its removal unless debugging.
8854 - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
8855 - trap '{ (exit 1); exit 1; }' 1 2 13 15
8858 -# Create a (secure) tmp directory for tmp files.
8861 - tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
8862 - test -n "$tmp" && test -d "$tmp"
8865 - tmp=./confstat$$-$RANDOM
8866 - (umask 077 && mkdir $tmp)
8869 - echo "$me: cannot create a temporary directory in ." >&2
8870 - { (exit 1); exit 1; }
8875 -cat >>$CONFIG_STATUS <<_ACEOF
8878 -# CONFIG_FILES section.
8881 -# No need to generate the scripts if there are no CONFIG_FILES.
8882 -# This happens for instance when ./config.status config.h
8883 -if test -n "\$CONFIG_FILES"; then
8884 - # Protect against being on the right side of a sed subst in config.status.
8885 - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
8886 - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
8887 -s,@SHELL@,$SHELL,;t t
8888 -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
8889 -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
8890 -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
8891 -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
8892 -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
8893 -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
8894 -s,@exec_prefix@,$exec_prefix,;t t
8895 -s,@prefix@,$prefix,;t t
8896 -s,@program_transform_name@,$program_transform_name,;t t
8897 -s,@bindir@,$bindir,;t t
8898 -s,@sbindir@,$sbindir,;t t
8899 -s,@libexecdir@,$libexecdir,;t t
8900 -s,@datadir@,$datadir,;t t
8901 -s,@sysconfdir@,$sysconfdir,;t t
8902 -s,@sharedstatedir@,$sharedstatedir,;t t
8903 -s,@localstatedir@,$localstatedir,;t t
8904 -s,@libdir@,$libdir,;t t
8905 -s,@includedir@,$includedir,;t t
8906 -s,@oldincludedir@,$oldincludedir,;t t
8907 -s,@infodir@,$infodir,;t t
8908 -s,@mandir@,$mandir,;t t
8909 -s,@build_alias@,$build_alias,;t t
8910 -s,@host_alias@,$host_alias,;t t
8911 -s,@target_alias@,$target_alias,;t t
8912 -s,@DEFS@,$DEFS,;t t
8913 -s,@ECHO_C@,$ECHO_C,;t t
8914 -s,@ECHO_N@,$ECHO_N,;t t
8915 -s,@ECHO_T@,$ECHO_T,;t t
8916 -s,@LIBS@,$LIBS,;t t
8917 -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
8918 -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
8919 -s,@INSTALL_DATA@,$INSTALL_DATA,;t t
8920 -s,@CYGPATH_W@,$CYGPATH_W,;t t
8921 -s,@PACKAGE@,$PACKAGE,;t t
8922 -s,@VERSION@,$VERSION,;t t
8923 -s,@ACLOCAL@,$ACLOCAL,;t t
8924 -s,@AUTOCONF@,$AUTOCONF,;t t
8925 -s,@AUTOMAKE@,$AUTOMAKE,;t t
8926 -s,@AUTOHEADER@,$AUTOHEADER,;t t
8927 -s,@MAKEINFO@,$MAKEINFO,;t t
8928 -s,@install_sh@,$install_sh,;t t
8929 -s,@STRIP@,$STRIP,;t t
8930 -s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
8931 -s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
8932 -s,@mkdir_p@,$mkdir_p,;t t
8934 -s,@SET_MAKE@,$SET_MAKE,;t t
8935 -s,@am__leading_dot@,$am__leading_dot,;t t
8936 -s,@AMTAR@,$AMTAR,;t t
8937 -s,@am__tar@,$am__tar,;t t
8938 -s,@am__untar@,$am__untar,;t t
8939 -s,@build@,$build,;t t
8940 -s,@build_cpu@,$build_cpu,;t t
8941 -s,@build_vendor@,$build_vendor,;t t
8942 -s,@build_os@,$build_os,;t t
8943 -s,@host@,$host,;t t
8944 -s,@host_cpu@,$host_cpu,;t t
8945 -s,@host_vendor@,$host_vendor,;t t
8946 -s,@host_os@,$host_os,;t t
8947 -s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
8948 -s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
8949 -s,@MAINT@,$MAINT,;t t
8950 -s,@PERL@,$PERL,;t t
8952 -s,@ac_ct_CC@,$ac_ct_CC,;t t
8953 -s,@CFLAGS@,$CFLAGS,;t t
8954 -s,@LDFLAGS@,$LDFLAGS,;t t
8955 -s,@CPPFLAGS@,$CPPFLAGS,;t t
8956 -s,@EXEEXT@,$EXEEXT,;t t
8957 -s,@OBJEXT@,$OBJEXT,;t t
8958 -s,@DEPDIR@,$DEPDIR,;t t
8959 -s,@am__include@,$am__include,;t t
8960 -s,@am__quote@,$am__quote,;t t
8961 -s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t
8962 -s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t
8963 -s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
8964 -s,@CCDEPMODE@,$CCDEPMODE,;t t
8965 -s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
8966 -s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
8967 -s,@CCAS@,$CCAS,;t t
8968 -s,@RANLIB@,$RANLIB,;t t
8969 -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
8970 -s,@STAGE1_CFLAGS@,$STAGE1_CFLAGS,;t t
8971 -s,@STAGE2_CFLAGS@,$STAGE2_CFLAGS,;t t
8972 -s,@GRUB_CFLAGS@,$GRUB_CFLAGS,;t t
8973 -s,@OBJCOPY@,$OBJCOPY,;t t
8974 -s,@ac_ct_OBJCOPY@,$ac_ct_OBJCOPY,;t t
8975 -s,@GRUB_LIBS@,$GRUB_LIBS,;t t
8977 -s,@EGREP@,$EGREP,;t t
8978 -s,@NETBOOT_SUPPORT_TRUE@,$NETBOOT_SUPPORT_TRUE,;t t
8979 -s,@NETBOOT_SUPPORT_FALSE@,$NETBOOT_SUPPORT_FALSE,;t t
8980 -s,@DISKLESS_SUPPORT_TRUE@,$DISKLESS_SUPPORT_TRUE,;t t
8981 -s,@DISKLESS_SUPPORT_FALSE@,$DISKLESS_SUPPORT_FALSE,;t t
8982 -s,@HERCULES_SUPPORT_TRUE@,$HERCULES_SUPPORT_TRUE,;t t
8983 -s,@HERCULES_SUPPORT_FALSE@,$HERCULES_SUPPORT_FALSE,;t t
8984 -s,@SERIAL_SUPPORT_TRUE@,$SERIAL_SUPPORT_TRUE,;t t
8985 -s,@SERIAL_SUPPORT_FALSE@,$SERIAL_SUPPORT_FALSE,;t t
8986 -s,@SERIAL_SPEED_SIMULATION_TRUE@,$SERIAL_SPEED_SIMULATION_TRUE,;t t
8987 -s,@SERIAL_SPEED_SIMULATION_FALSE@,$SERIAL_SPEED_SIMULATION_FALSE,;t t
8988 -s,@BUILD_EXAMPLE_KERNEL_TRUE@,$BUILD_EXAMPLE_KERNEL_TRUE,;t t
8989 -s,@BUILD_EXAMPLE_KERNEL_FALSE@,$BUILD_EXAMPLE_KERNEL_FALSE,;t t
8990 -s,@FSYS_CFLAGS@,$FSYS_CFLAGS,;t t
8991 -s,@NET_CFLAGS@,$NET_CFLAGS,;t t
8992 -s,@NET_EXTRAFLAGS@,$NET_EXTRAFLAGS,;t t
8993 -s,@NETBOOT_DRIVERS@,$NETBOOT_DRIVERS,;t t
8994 -s,@CCASFLAGS@,$CCASFLAGS,;t t
8995 -s,@LIBOBJS@,$LIBOBJS,;t t
8996 -s,@LTLIBOBJS@,$LTLIBOBJS,;t t
9001 - cat >>$CONFIG_STATUS <<\_ACEOF
9002 - # Split the substitutions into bite-sized pieces for seds with
9003 - # small command number limits, like on Digital OSF/1 and HP-UX.
9004 - ac_max_sed_lines=48
9005 - ac_sed_frag=1 # Number of current file.
9006 - ac_beg=1 # First line for current file.
9007 - ac_end=$ac_max_sed_lines # Line after last line for current file.
9010 - while $ac_more_lines; do
9011 - if test $ac_beg -gt 1; then
9012 - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
9014 - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
9016 - if test ! -s $tmp/subs.frag; then
9017 - ac_more_lines=false
9019 - # The purpose of the label and of the branching condition is to
9020 - # speed up the sed processing (if there are no `@' at all, there
9021 - # is no need to browse any of the substitutions).
9022 - # These are the two extra sed commands mentioned above.
9024 - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
9025 - if test -z "$ac_sed_cmds"; then
9026 - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
9028 - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
9030 - ac_sed_frag=`expr $ac_sed_frag + 1`
9032 - ac_end=`expr $ac_end + $ac_max_sed_lines`
9035 - if test -z "$ac_sed_cmds"; then
9038 -fi # test -n "$CONFIG_FILES"
9041 -cat >>$CONFIG_STATUS <<\_ACEOF
9042 -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
9043 - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
9045 - - | *:- | *:-:* ) # input from stdin
9047 - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
9048 - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
9049 - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
9050 - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
9051 - * ) ac_file_in=$ac_file.in ;;
9054 - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
9055 - ac_dir=`(dirname "$ac_file") 2>/dev/null ||
9056 -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
9057 - X"$ac_file" : 'X\(//\)[^/]' \| \
9058 - X"$ac_file" : 'X\(//\)$' \| \
9059 - X"$ac_file" : 'X\(/\)' \| \
9060 - . : '\(.\)' 2>/dev/null ||
9062 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
9063 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
9064 - /^X\(\/\/\)$/{ s//\1/; q; }
9065 - /^X\(\/\).*/{ s//\1/; q; }
9067 - { if $as_mkdir_p; then
9068 - mkdir -p "$ac_dir"
9072 - while test ! -d "$as_dir"; do
9073 - as_dirs="$as_dir $as_dirs"
9074 - as_dir=`(dirname "$as_dir") 2>/dev/null ||
9075 -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
9076 - X"$as_dir" : 'X\(//\)[^/]' \| \
9077 - X"$as_dir" : 'X\(//\)$' \| \
9078 - X"$as_dir" : 'X\(/\)' \| \
9079 - . : '\(.\)' 2>/dev/null ||
9081 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
9082 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
9083 - /^X\(\/\/\)$/{ s//\1/; q; }
9084 - /^X\(\/\).*/{ s//\1/; q; }
9087 - test ! -n "$as_dirs" || mkdir $as_dirs
9088 - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
9089 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
9090 - { (exit 1); exit 1; }; }; }
9094 -if test "$ac_dir" != .; then
9095 - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
9096 - # A "../" for each directory in $ac_dir_suffix.
9097 - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
9099 - ac_dir_suffix= ac_top_builddir=
9103 - .) # No --srcdir option. We are building in place.
9105 - if test -z "$ac_top_builddir"; then
9108 - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
9110 - [\\/]* | ?:[\\/]* ) # Absolute path.
9111 - ac_srcdir=$srcdir$ac_dir_suffix;
9112 - ac_top_srcdir=$srcdir ;;
9113 - *) # Relative path.
9114 - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
9115 - ac_top_srcdir=$ac_top_builddir$srcdir ;;
9118 -# Do not use `cd foo && pwd` to compute absolute paths, because
9119 -# the directories may not exist.
9121 -.) ac_abs_builddir="$ac_dir";;
9124 - .) ac_abs_builddir=`pwd`;;
9125 - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
9126 - *) ac_abs_builddir=`pwd`/"$ac_dir";;
9129 -case $ac_abs_builddir in
9130 -.) ac_abs_top_builddir=${ac_top_builddir}.;;
9132 - case ${ac_top_builddir}. in
9133 - .) ac_abs_top_builddir=$ac_abs_builddir;;
9134 - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
9135 - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
9138 -case $ac_abs_builddir in
9139 -.) ac_abs_srcdir=$ac_srcdir;;
9141 - case $ac_srcdir in
9142 - .) ac_abs_srcdir=$ac_abs_builddir;;
9143 - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
9144 - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
9147 -case $ac_abs_builddir in
9148 -.) ac_abs_top_srcdir=$ac_top_srcdir;;
9150 - case $ac_top_srcdir in
9151 - .) ac_abs_top_srcdir=$ac_abs_builddir;;
9152 - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
9153 - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
9159 - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
9160 - *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
9163 - if test x"$ac_file" != x-; then
9164 - { echo "$as_me:$LINENO: creating $ac_file" >&5
9165 -echo "$as_me: creating $ac_file" >&6;}
9168 - # Let's still pretend it is `configure' which instantiates (i.e., don't
9169 - # use $as_me), people would be surprised to read:
9170 - # /* config.h. Generated by config.status. */
9171 - if test x"$ac_file" = x-; then
9174 - configure_input="$ac_file. "
9176 - configure_input=$configure_input"Generated from `echo $ac_file_in |
9177 - sed 's,.*/,,'` by configure."
9179 - # First look for the input files in the build tree, otherwise in the
9181 - ac_file_inputs=`IFS=:
9182 - for f in $ac_file_in; do
9184 - -) echo $tmp/stdin ;;
9186 - # Absolute (can't be DOS-style, as IFS=:)
9187 - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
9188 -echo "$as_me: error: cannot find input file: $f" >&2;}
9189 - { (exit 1); exit 1; }; }
9192 - if test -f "$f"; then
9195 - elif test -f "$srcdir/$f"; then
9200 - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
9201 -echo "$as_me: error: cannot find input file: $f" >&2;}
9202 - { (exit 1); exit 1; }; }
9205 - done` || { (exit 1); exit 1; }
9207 -cat >>$CONFIG_STATUS <<_ACEOF
9211 -cat >>$CONFIG_STATUS <<\_ACEOF
9213 -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
9214 -s,@configure_input@,$configure_input,;t t
9215 -s,@srcdir@,$ac_srcdir,;t t
9216 -s,@abs_srcdir@,$ac_abs_srcdir,;t t
9217 -s,@top_srcdir@,$ac_top_srcdir,;t t
9218 -s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
9219 -s,@builddir@,$ac_builddir,;t t
9220 -s,@abs_builddir@,$ac_abs_builddir,;t t
9221 -s,@top_builddir@,$ac_top_builddir,;t t
9222 -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
9223 -s,@INSTALL@,$ac_INSTALL,;t t
9224 -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
9226 - if test x"$ac_file" != x-; then
9227 - mv $tmp/out $ac_file
9235 -cat >>$CONFIG_STATUS <<\_ACEOF
9238 -# CONFIG_HEADER section.
9241 -# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
9242 -# NAME is the cpp macro being defined and VALUE is the value it is being given.
9244 -# ac_d sets the value in "#define NAME VALUE" lines.
9245 -ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
9246 -ac_dB='[ ].*$,\1#\2'
9249 -# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
9250 -ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
9251 -ac_uB='$,\1#\2define\3'
9255 -for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
9256 - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
9258 - - | *:- | *:-:* ) # input from stdin
9260 - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
9261 - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
9262 - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
9263 - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
9264 - * ) ac_file_in=$ac_file.in ;;
9267 - test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
9268 -echo "$as_me: creating $ac_file" >&6;}
9270 - # First look for the input files in the build tree, otherwise in the
9272 - ac_file_inputs=`IFS=:
9273 - for f in $ac_file_in; do
9275 - -) echo $tmp/stdin ;;
9277 - # Absolute (can't be DOS-style, as IFS=:)
9278 - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
9279 -echo "$as_me: error: cannot find input file: $f" >&2;}
9280 - { (exit 1); exit 1; }; }
9281 - # Do quote $f, to prevent DOS paths from being IFS'd.
9284 - if test -f "$f"; then
9287 - elif test -f "$srcdir/$f"; then
9292 - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
9293 -echo "$as_me: error: cannot find input file: $f" >&2;}
9294 - { (exit 1); exit 1; }; }
9297 - done` || { (exit 1); exit 1; }
9298 - # Remove the trailing spaces.
9299 - sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
9303 -# Transform confdefs.h into two sed scripts, `conftest.defines' and
9304 -# `conftest.undefs', that substitutes the proper values into
9305 -# config.h.in to produce config.h. The first handles `#define'
9306 -# templates, and the second `#undef' templates.
9307 -# And first: Protect against being on the right side of a sed subst in
9308 -# config.status. Protect against being in an unquoted here document
9309 -# in config.status.
9310 -rm -f conftest.defines conftest.undefs
9311 -# Using a here document instead of a string reduces the quoting nightmare.
9312 -# Putting comments in sed scripts is not portable.
9314 -# `end' is used to avoid that the second main sed command (meant for
9315 -# 0-ary CPP macros) applies to n-ary macro definitions.
9316 -# See the Autoconf documentation for `clear'.
9317 -cat >confdef2sed.sed <<\_ACEOF
9322 -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
9324 -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
9327 -# If some macros were called several times there might be several times
9328 -# the same #defines, which is useless. Nevertheless, we may not want to
9329 -# sort them, since we want the *last* AC-DEFINE to be honored.
9330 -uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
9331 -sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
9332 -rm -f confdef2sed.sed
9334 -# This sed command replaces #undef with comments. This is necessary, for
9335 -# example, in the case of _POSIX_SOURCE, which is predefined and required
9336 -# on some systems where configure will not decide to define it.
9337 -cat >>conftest.undefs <<\_ACEOF
9338 -s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
9341 -# Break up conftest.defines because some shells have a limit on the size
9342 -# of here documents, and old seds have small limits too (100 cmds).
9343 -echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
9344 -echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
9345 -echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
9346 -echo ' :' >>$CONFIG_STATUS
9347 -rm -f conftest.tail
9348 -while grep . conftest.defines >/dev/null
9350 - # Write a limited-size here document to $tmp/defines.sed.
9351 - echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
9352 - # Speed up: don't consider the non `#define' lines.
9353 - echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
9354 - # Work around the forget-to-reset-the-flag bug.
9355 - echo 't clr' >>$CONFIG_STATUS
9356 - echo ': clr' >>$CONFIG_STATUS
9357 - sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
9359 - sed -f $tmp/defines.sed $tmp/in >$tmp/out
9361 - mv $tmp/out $tmp/in
9363 - sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
9364 - rm -f conftest.defines
9365 - mv conftest.tail conftest.defines
9367 -rm -f conftest.defines
9368 -echo ' fi # grep' >>$CONFIG_STATUS
9369 -echo >>$CONFIG_STATUS
9371 -# Break up conftest.undefs because some shells have a limit on the size
9372 -# of here documents, and old seds have small limits too (100 cmds).
9373 -echo ' # Handle all the #undef templates' >>$CONFIG_STATUS
9374 -rm -f conftest.tail
9375 -while grep . conftest.undefs >/dev/null
9377 - # Write a limited-size here document to $tmp/undefs.sed.
9378 - echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
9379 - # Speed up: don't consider the non `#undef'
9380 - echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
9381 - # Work around the forget-to-reset-the-flag bug.
9382 - echo 't clr' >>$CONFIG_STATUS
9383 - echo ': clr' >>$CONFIG_STATUS
9384 - sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
9386 - sed -f $tmp/undefs.sed $tmp/in >$tmp/out
9388 - mv $tmp/out $tmp/in
9390 - sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
9391 - rm -f conftest.undefs
9392 - mv conftest.tail conftest.undefs
9394 -rm -f conftest.undefs
9396 -cat >>$CONFIG_STATUS <<\_ACEOF
9397 - # Let's still pretend it is `configure' which instantiates (i.e., don't
9398 - # use $as_me), people would be surprised to read:
9399 - # /* config.h. Generated by config.status. */
9400 - if test x"$ac_file" = x-; then
9401 - echo "/* Generated by configure. */" >$tmp/config.h
9403 - echo "/* $ac_file. Generated by configure. */" >$tmp/config.h
9405 - cat $tmp/in >>$tmp/config.h
9407 - if test x"$ac_file" != x-; then
9408 - if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
9409 - { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
9410 -echo "$as_me: $ac_file is unchanged" >&6;}
9412 - ac_dir=`(dirname "$ac_file") 2>/dev/null ||
9413 -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
9414 - X"$ac_file" : 'X\(//\)[^/]' \| \
9415 - X"$ac_file" : 'X\(//\)$' \| \
9416 - X"$ac_file" : 'X\(/\)' \| \
9417 - . : '\(.\)' 2>/dev/null ||
9419 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
9420 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
9421 - /^X\(\/\/\)$/{ s//\1/; q; }
9422 - /^X\(\/\).*/{ s//\1/; q; }
9424 - { if $as_mkdir_p; then
9425 - mkdir -p "$ac_dir"
9429 - while test ! -d "$as_dir"; do
9430 - as_dirs="$as_dir $as_dirs"
9431 - as_dir=`(dirname "$as_dir") 2>/dev/null ||
9432 -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
9433 - X"$as_dir" : 'X\(//\)[^/]' \| \
9434 - X"$as_dir" : 'X\(//\)$' \| \
9435 - X"$as_dir" : 'X\(/\)' \| \
9436 - . : '\(.\)' 2>/dev/null ||
9438 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
9439 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
9440 - /^X\(\/\/\)$/{ s//\1/; q; }
9441 - /^X\(\/\).*/{ s//\1/; q; }
9444 - test ! -n "$as_dirs" || mkdir $as_dirs
9445 - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
9446 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
9447 - { (exit 1); exit 1; }; }; }
9450 - mv $tmp/config.h $ac_file
9454 - rm -f $tmp/config.h
9456 -# Compute $ac_file's index in $config_headers.
9458 -for _am_header in $config_headers :; do
9459 - case $_am_header in
9460 - $ac_file | $ac_file:* )
9463 - _am_stamp_count=`expr $_am_stamp_count + 1` ;;
9466 -echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null ||
9467 -$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
9468 - X$ac_file : 'X\(//\)[^/]' \| \
9469 - X$ac_file : 'X\(//\)$' \| \
9470 - X$ac_file : 'X\(/\)' \| \
9471 - . : '\(.\)' 2>/dev/null ||
9473 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
9474 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
9475 - /^X\(\/\/\)$/{ s//\1/; q; }
9476 - /^X\(\/\).*/{ s//\1/; q; }
9477 - s/.*/./; q'`/stamp-h$_am_stamp_count
9480 -cat >>$CONFIG_STATUS <<\_ACEOF
9483 -# CONFIG_COMMANDS section.
9485 -for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
9486 - ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
9487 - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
9488 - ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
9489 -$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
9490 - X"$ac_dest" : 'X\(//\)[^/]' \| \
9491 - X"$ac_dest" : 'X\(//\)$' \| \
9492 - X"$ac_dest" : 'X\(/\)' \| \
9493 - . : '\(.\)' 2>/dev/null ||
9495 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
9496 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
9497 - /^X\(\/\/\)$/{ s//\1/; q; }
9498 - /^X\(\/\).*/{ s//\1/; q; }
9500 - { if $as_mkdir_p; then
9501 - mkdir -p "$ac_dir"
9505 - while test ! -d "$as_dir"; do
9506 - as_dirs="$as_dir $as_dirs"
9507 - as_dir=`(dirname "$as_dir") 2>/dev/null ||
9508 -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
9509 - X"$as_dir" : 'X\(//\)[^/]' \| \
9510 - X"$as_dir" : 'X\(//\)$' \| \
9511 - X"$as_dir" : 'X\(/\)' \| \
9512 - . : '\(.\)' 2>/dev/null ||
9514 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
9515 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
9516 - /^X\(\/\/\)$/{ s//\1/; q; }
9517 - /^X\(\/\).*/{ s//\1/; q; }
9520 - test ! -n "$as_dirs" || mkdir $as_dirs
9521 - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
9522 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
9523 - { (exit 1); exit 1; }; }; }
9527 -if test "$ac_dir" != .; then
9528 - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
9529 - # A "../" for each directory in $ac_dir_suffix.
9530 - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
9532 - ac_dir_suffix= ac_top_builddir=
9536 - .) # No --srcdir option. We are building in place.
9538 - if test -z "$ac_top_builddir"; then
9541 - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
9543 - [\\/]* | ?:[\\/]* ) # Absolute path.
9544 - ac_srcdir=$srcdir$ac_dir_suffix;
9545 - ac_top_srcdir=$srcdir ;;
9546 - *) # Relative path.
9547 - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
9548 - ac_top_srcdir=$ac_top_builddir$srcdir ;;
9551 -# Do not use `cd foo && pwd` to compute absolute paths, because
9552 -# the directories may not exist.
9554 -.) ac_abs_builddir="$ac_dir";;
9557 - .) ac_abs_builddir=`pwd`;;
9558 - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
9559 - *) ac_abs_builddir=`pwd`/"$ac_dir";;
9562 -case $ac_abs_builddir in
9563 -.) ac_abs_top_builddir=${ac_top_builddir}.;;
9565 - case ${ac_top_builddir}. in
9566 - .) ac_abs_top_builddir=$ac_abs_builddir;;
9567 - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
9568 - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
9571 -case $ac_abs_builddir in
9572 -.) ac_abs_srcdir=$ac_srcdir;;
9574 - case $ac_srcdir in
9575 - .) ac_abs_srcdir=$ac_abs_builddir;;
9576 - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
9577 - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
9580 -case $ac_abs_builddir in
9581 -.) ac_abs_top_srcdir=$ac_top_srcdir;;
9583 - case $ac_top_srcdir in
9584 - .) ac_abs_top_srcdir=$ac_abs_builddir;;
9585 - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
9586 - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
9591 - { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
9592 -echo "$as_me: executing $ac_dest commands" >&6;}
9594 - depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
9595 - # Strip MF so we end up with the name of the file.
9596 - mf=`echo "$mf" | sed -e 's/:.*$//'`
9597 - # Check whether this is an Automake generated Makefile or not.
9598 - # We used to match only the files named `Makefile.in', but
9599 - # some people rename them; so instead we look at the file content.
9600 - # Grep'ing the first line is not enough: some people post-process
9601 - # each Makefile.in and add a new line on top of each file to say so.
9602 - # So let's grep whole file.
9603 - if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
9604 - dirpart=`(dirname "$mf") 2>/dev/null ||
9605 -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
9606 - X"$mf" : 'X\(//\)[^/]' \| \
9607 - X"$mf" : 'X\(//\)$' \| \
9608 - X"$mf" : 'X\(/\)' \| \
9609 - . : '\(.\)' 2>/dev/null ||
9611 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
9612 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
9613 - /^X\(\/\/\)$/{ s//\1/; q; }
9614 - /^X\(\/\).*/{ s//\1/; q; }
9619 - # Extract the definition of DEPDIR, am__include, and am__quote
9620 - # from the Makefile without running `make'.
9621 - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
9622 - test -z "$DEPDIR" && continue
9623 - am__include=`sed -n 's/^am__include = //p' < "$mf"`
9624 - test -z "am__include" && continue
9625 - am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
9626 - # When using ansi2knr, U may be empty or an underscore; expand it
9627 - U=`sed -n 's/^U = //p' < "$mf"`
9628 - # Find all dependency output files, they are included files with
9629 - # $(DEPDIR) in their names. We invoke sed twice because it is the
9630 - # simplest approach to changing $(DEPDIR) to its actual value in the
9632 - for file in `sed -n "
9633 - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
9634 - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
9635 - # Make sure the directory exists.
9636 - test -f "$dirpart/$file" && continue
9637 - fdir=`(dirname "$file") 2>/dev/null ||
9638 -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
9639 - X"$file" : 'X\(//\)[^/]' \| \
9640 - X"$file" : 'X\(//\)$' \| \
9641 - X"$file" : 'X\(/\)' \| \
9642 - . : '\(.\)' 2>/dev/null ||
9644 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
9645 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
9646 - /^X\(\/\/\)$/{ s//\1/; q; }
9647 - /^X\(\/\).*/{ s//\1/; q; }
9649 - { if $as_mkdir_p; then
9650 - mkdir -p $dirpart/$fdir
9652 - as_dir=$dirpart/$fdir
9654 - while test ! -d "$as_dir"; do
9655 - as_dirs="$as_dir $as_dirs"
9656 - as_dir=`(dirname "$as_dir") 2>/dev/null ||
9657 -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
9658 - X"$as_dir" : 'X\(//\)[^/]' \| \
9659 - X"$as_dir" : 'X\(//\)$' \| \
9660 - X"$as_dir" : 'X\(/\)' \| \
9661 - . : '\(.\)' 2>/dev/null ||
9663 - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
9664 - /^X\(\/\/\)[^/].*/{ s//\1/; q; }
9665 - /^X\(\/\/\)$/{ s//\1/; q; }
9666 - /^X\(\/\).*/{ s//\1/; q; }
9669 - test ! -n "$as_dirs" || mkdir $as_dirs
9670 - fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
9671 -echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
9672 - { (exit 1); exit 1; }; }; }
9674 - # echo "creating $dirpart/$file"
9675 - echo '# dummy' > "$dirpart/$file"
9683 -cat >>$CONFIG_STATUS <<\_ACEOF
9685 -{ (exit 0); exit 0; }
9687 -chmod +x $CONFIG_STATUS
9688 -ac_clean_files=$ac_clean_files_save
9691 -# configure is writing to config.log, and then calls config.status.
9692 -# config.status does its own redirection, appending to config.log.
9693 -# Unfortunately, on DOS this fails, as config.log is still kept open
9694 -# by configure, so config.status won't be able to write to it; its
9695 -# output is simply discarded. So we exec the FD to /dev/null,
9696 -# effectively closing config.log, so it can be properly (re)opened and
9697 -# appended to by config.status. When coming back to configure, we
9698 -# need to make the FD available again.
9699 -if test "$no_create" != yes; then
9701 - ac_config_status_args=
9702 - test "$silent" = yes &&
9703 - ac_config_status_args="$ac_config_status_args --quiet"
9705 - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
9706 - exec 5>>config.log
9707 - # Use ||, not &&, to avoid exiting from the if with $? = 1, which
9708 - # would make configure fail if this is the last instruction.
9709 - $ac_cs_success || { (exit 1); exit 1; }
9712 diff --git a/configure.ac b/configure.in
9713 similarity index 86%
9714 rename from configure.ac
9715 rename to configure.in
9716 index bb9e1d9..e5970af 100644
9719 @@ -29,6 +29,65 @@ esac
9721 AC_SUBST(host_vendor)
9723 +# Specify the platform (such as firmware).
9724 +AC_ARG_WITH([platform],
9725 + AS_HELP_STRING([--with-platform=PLATFORM],
9726 + [select the host platform [[guessed]]]))
9728 +# Guess the platform if not specified.
9729 +if test "x$with_platform" = x; then
9730 + case "$host_cpu"-"$host_vendor" in
9731 + i386-*) platform=pc ;;
9732 + x86_64-*) platform=pc ;;
9733 + *) AC_MSG_ERROR([unsupported machine type $host_cpu-$host_vendor]) ;;
9736 + platform="$with_platform"
9740 +case "$host_cpu"-"$platform" in
9745 + *) AC_MSG_ERROR([unsupported machine type "$host_cpu"-"$platform"]) ;;
9748 +if test "x$platform" = xefi; then
9749 + case "$host_cpu" in
9750 + i386) EFI_ARCH=ia32 ;;
9751 + x86_64) EFI_ARCH=x86_64 ;;
9752 + *) AC_MSG_ERROR([unsupported machine type "$host_cpu"]) ;;
9754 + AC_SUBST(EFI_ARCH)
9757 +gnuefi_path=${libdir}/gnuefi
9758 +gnuefi_crt0=${gnuefi_path}/crt0-efi-${EFI_ARCH}.o
9759 +if ! test -f $gnuefi_crt0 ; then
9760 + gnuefi_crt0=crt0-efi.o
9762 +GNUEFI_CRT0=${gnuefi_crt0}
9763 +AC_SUBST(GNUEFI_CRT0)
9764 +gnuefi_lds=${gnuefi_path}/elf_${EFI_ARCH}_efi.lds
9765 +if ! test -f $gnuefi_lds ; then
9766 + gnuefi_lds=${EFI_ARCH}/elf_efi.lds
9768 +GNUEFI_LDS=${gnuefi_lds}
9769 +AC_SUBST(GNUEFI_LDS)
9770 +LIBGNUEFI=${libdir}/libgnuefi.a
9771 +AC_SUBST(LIBGNUEFI)
9772 +LIBEFI=${libdir}/libefi.a
9776 +AM_CONDITIONAL(PLATFORM_EFI, test "x$platform" = xefi)
9778 +if test "x$platform" = xefi; then
9779 + AC_DEFINE(PLATFORM_EFI, 1, [Define if you run on EFI platform.])
9785 @@ -46,7 +105,7 @@ if test "x$CFLAGS" = x; then
9789 -if test "x$host_cpu" = xx86_64; then
9790 +if test "x$platform" = xpc -a "x$host_cpu" = xx86_64; then
9791 CFLAGS="-m32 $CFLAGS"
9794 @@ -63,6 +122,8 @@ dnl Because recent automake complains about AS, set it here.
9798 +_AM_DEPENDENCIES(CCAS)
9800 AC_ARG_WITH(binutils,
9801 [ --with-binutils=DIR search the directory DIR to find binutils])
9803 @@ -114,6 +175,20 @@ if test "x$ac_cv_prog_gcc" = xyes; then
9807 +STAGE2_CFLAGS="$STAGE2_CFLAGS -isystem `$CC -print-file-name=include`"
9809 +LIBGCC=$(gcc $CFLAGS -static-libgcc -print-libgcc-file-name)
9812 +LOADER_LDFLAGS="-Wl,--build-id=none ${LIBGCC}"
9813 +AC_SUBST(LOADER_LDFLAGS)
9815 +if test "x$platform" = xefi; then
9816 + STAGE2_CFLAGS="$STAGE2_CFLAGS -fpic -fshort-wchar -fno-strict-aliasing -fno-merge-constants -fno-reorder-functions"
9817 + if test "x$EFI_ARCH" = xx86_64; then
9818 + STAGE2_CFLAGS="$STAGE2_CFLAGS -DEFI_FUNCTION_WRAPPER"
9822 AC_SUBST(STAGE1_CFLAGS)
9823 AC_SUBST(STAGE2_CFLAGS)
9824 @@ -159,9 +234,12 @@ fi
9826 # Defined in acinclude.m4.
9828 -grub_PROG_OBJCOPY_ABSOLUTE
9829 -if test "x$grub_cv_prog_objcopy_absolute" != xyes; then
9830 - AC_MSG_ERROR([GRUB requires a working absolute objcopy; upgrade your binutils])
9832 +if test "x$platform" != xefi; then
9833 + grub_PROG_OBJCOPY_ABSOLUTE
9834 + if test "x$grub_cv_prog_objcopy_absolute" != xyes; then
9835 + AC_MSG_ERROR([GRUB requires a working absolute objcopy; upgrade your binutils])
9839 grub_ASM_PREFIX_REQUIREMENT
9840 @@ -207,9 +285,9 @@ AC_CHECK_LIB(util, opendisk, [GRUB_LIBS="$GRUB_LIBS -lutil"
9842 # Unless the user specify --without-curses, check for curses.
9843 if test "x$with_curses" != "xno"; then
9844 - AC_CHECK_LIB(ncurses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lncurses"
9845 + AC_CHECK_LIB(ncurses, wgetch, [GRUB_LIBS="$GRUB_LIBS -Wl,-Bstatic -lncurses -ltinfo -Wl,-Bdynamic"
9846 AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])],
9847 - [AC_CHECK_LIB(curses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lcurses"
9848 + [AC_CHECK_LIB(curses, wgetch, [GRUB_LIBS="$GRUB_LIBS -Wl,-Bstatic -lcurses -Wl,-Bdynamic"
9849 AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])])])
9852 @@ -595,9 +673,18 @@ AC_ARG_ENABLE(diskless,
9853 [ --enable-diskless enable diskless support])
9854 AM_CONDITIONAL(DISKLESS_SUPPORT, test "x$enable_diskless" = xyes)
9856 +dnl Graphical splashscreen support
9857 +AC_ARG_ENABLE(graphics,
9858 + [ --disable-graphics disable graphics terminal support])
9859 +AM_CONDITIONAL(GRAPHICS_SUPPORT, test "x$enable_graphics" != xno)
9861 dnl Hercules terminal
9862 -AC_ARG_ENABLE(hercules,
9863 - [ --disable-hercules disable hercules terminal support])
9864 +if test "x$platform" = xefi; then
9865 + enable_hercules=no
9867 + AC_ARG_ENABLE(hercules,
9868 + [ --disable-hercules disable hercules terminal support])
9870 AM_CONDITIONAL(HERCULES_SUPPORT, test "x$enable_hercules" != xno)
9873 @@ -662,9 +749,13 @@ AC_SUBST(CCASFLAGS)
9877 +if test "x$platform" = xefi; then
9878 + AC_CONFIG_FILES([efi/Makefile])
9879 + AC_CONFIG_LINKS([efi/grub/cpu:efi/grub/$host_cpu])
9881 AC_CONFIG_FILES([Makefile stage1/Makefile stage2/Makefile \
9882 docs/Makefile lib/Makefile util/Makefile \
9883 - grub/Makefile netboot/Makefile util/grub-image \
9884 - util/grub-install util/grub-md5-crypt \
9885 - util/grub-terminfo util/grub-set-default])
9886 + grub/Makefile netboot/Makefile util/grub-crypt \
9887 + util/grub-image util/grub-install util/grub-md5-crypt \
9888 + util/grub-terminfo])
9890 diff --git a/docs/.gitignore b/docs/.gitignore
9891 new file mode 100644
9892 index 0000000..e440faf
9894 +++ b/docs/.gitignore
9899 diff --git a/docs/Makefile.am b/docs/Makefile.am
9900 index db99e2d..fe6b22b 100644
9901 --- a/docs/Makefile.am
9902 +++ b/docs/Makefile.am
9903 @@ -2,7 +2,8 @@ info_TEXINFOS = grub.texi multiboot.texi
9904 grub_TEXINFOS = internals.texi
9905 EXAMPLES = boot.S kernel.c multiboot.h
9906 multiboot_TEXINFOS = boot.S.texi kernel.c.texi multiboot.h.texi
9907 -man_MANS = grub.8 mbchk.1 grub-install.8 grub-md5-crypt.8 grub-terminfo.8
9908 +man_MANS = grub.8 mbchk.1 grub-crypt.8 grub-install.8 grub-md5-crypt.8 \
9912 noinst_SCRIPTS = $(HELP2MAN) $(SRC2TEXI)
9913 @@ -51,6 +52,12 @@ $(srcdir)/mbchk.1: ../util/mbchk $(srcdir)/$(HELP2MAN)
9914 --name="check the format of a Multiboot kernel" \
9915 --section=1 --output=$@ $<
9917 +$(srcdir)/grub-crypt.8: ../util/grub-crypt $(srcdir)/$(HELP2MAN)
9919 + $(PERL) $(srcdir)/$(HELP2MAN) \
9920 + --name="Encrypt a password" \
9921 + --section=8 --output=$@ $<
9923 $(srcdir)/grub-md5-crypt.8: ../util/grub-md5-crypt $(srcdir)/$(HELP2MAN)
9925 $(PERL) $(srcdir)/$(HELP2MAN) \
9926 diff --git a/docs/Makefile.in b/docs/Makefile.in
9927 deleted file mode 100644
9928 index 3e2de4b..0000000
9929 --- a/docs/Makefile.in
9932 -# Makefile.in generated by automake 1.9.4 from Makefile.am.
9933 -# @configure_input@
9935 -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
9936 -# 2003, 2004 Free Software Foundation, Inc.
9937 -# This Makefile.in is free software; the Free Software Foundation
9938 -# gives unlimited permission to copy and/or distribute it,
9939 -# with or without modifications, as long as this notice is preserved.
9941 -# This program is distributed in the hope that it will be useful,
9942 -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
9943 -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
9944 -# PARTICULAR PURPOSE.
9949 -SOURCES = $(kernel_SOURCES)
9952 -top_srcdir = @top_srcdir@
9954 -pkgdatadir = $(datadir)/@PACKAGE@
9955 -pkglibdir = $(libdir)/@PACKAGE@
9956 -pkgincludedir = $(includedir)/@PACKAGE@
9958 -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
9959 -INSTALL = @INSTALL@
9960 -install_sh_DATA = $(install_sh) -c -m 644
9961 -install_sh_PROGRAM = $(install_sh) -c
9962 -install_sh_SCRIPT = $(install_sh) -c
9963 -INSTALL_HEADER = $(INSTALL_DATA)
9964 -transform = $(program_transform_name)
9968 -NORMAL_UNINSTALL = :
9971 -build_triplet = @build@
9972 -host_triplet = @host@
9973 -EXTRA_PROGRAMS = kernel$(EXEEXT)
9974 -@BUILD_EXAMPLE_KERNEL_TRUE@noinst_PROGRAMS = kernel$(EXEEXT)
9976 -DIST_COMMON = $(grub_TEXINFOS) $(multiboot_TEXINFOS) \
9977 - $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
9978 - $(srcdir)/stamp-vti $(srcdir)/version.texi mdate-sh \
9980 -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
9981 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
9982 - $(top_srcdir)/configure.ac
9983 -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
9985 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
9986 -CONFIG_HEADER = $(top_builddir)/config.h
9987 -CONFIG_CLEAN_FILES =
9988 -PROGRAMS = $(noinst_PROGRAMS)
9989 -am__kernel_SOURCES_DIST = boot.S kernel.c multiboot.h
9990 -am__objects_1 = boot.$(OBJEXT) kernel-kernel.$(OBJEXT)
9991 -@BUILD_EXAMPLE_KERNEL_TRUE@am_kernel_OBJECTS = $(am__objects_1)
9992 -kernel_OBJECTS = $(am_kernel_OBJECTS)
9993 -kernel_LDADD = $(LDADD)
9994 -SCRIPTS = $(noinst_SCRIPTS)
9995 -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
9996 -depcomp = $(SHELL) $(top_srcdir)/depcomp
9997 -am__depfiles_maybe = depfiles
9998 -CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS)
9999 -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
10000 - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
10002 -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
10003 -SOURCES = $(kernel_SOURCES)
10004 -DIST_SOURCES = $(am__kernel_SOURCES_DIST)
10005 -INFO_DEPS = $(srcdir)/grub.info $(srcdir)/multiboot.info
10006 -am__TEXINFO_TEX_DIR = $(srcdir)
10007 -DVIS = grub.dvi multiboot.dvi
10008 -PDFS = grub.pdf multiboot.pdf
10009 -PSS = grub.ps multiboot.ps
10010 -HTMLS = grub.html multiboot.html
10011 -TEXINFOS = grub.texi multiboot.texi
10012 -TEXI2DVI = texi2dvi
10013 -TEXI2PDF = $(TEXI2DVI) --pdf --batch
10014 -MAKEINFOHTML = $(MAKEINFO) --html
10015 -AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS)
10017 -am__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" \
10018 - "$(DESTDIR)$(man8dir)"
10019 -man1dir = $(mandir)/man1
10020 -man8dir = $(mandir)/man8
10022 -MANS = $(man_MANS)
10025 -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
10026 -ACLOCAL = @ACLOCAL@
10027 -AMDEP_FALSE = @AMDEP_FALSE@
10028 -AMDEP_TRUE = @AMDEP_TRUE@
10030 -AUTOCONF = @AUTOCONF@
10031 -AUTOHEADER = @AUTOHEADER@
10032 -AUTOMAKE = @AUTOMAKE@
10034 -BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
10035 -BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
10038 -CCASFLAGS = @CCASFLAGS@
10039 -CCDEPMODE = @CCDEPMODE@
10042 -CPPFLAGS = @CPPFLAGS@
10043 -CYGPATH_W = @CYGPATH_W@
10046 -DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
10047 -DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
10053 -FSYS_CFLAGS = @FSYS_CFLAGS@
10054 -GRUB_CFLAGS = @GRUB_CFLAGS@
10055 -GRUB_LIBS = @GRUB_LIBS@
10056 -HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
10057 -HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
10058 -INSTALL_DATA = @INSTALL_DATA@
10059 -INSTALL_PROGRAM = @INSTALL_PROGRAM@
10060 -INSTALL_SCRIPT = @INSTALL_SCRIPT@
10061 -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
10062 -LDFLAGS = @LDFLAGS@
10063 -LIBOBJS = @LIBOBJS@
10065 -LTLIBOBJS = @LTLIBOBJS@
10067 -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
10068 -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
10069 -MAKEINFO = @MAKEINFO@
10070 -NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
10071 -NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
10072 -NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
10073 -NET_CFLAGS = @NET_CFLAGS@
10074 -NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
10075 -OBJCOPY = @OBJCOPY@
10077 -PACKAGE = @PACKAGE@
10078 -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
10079 -PACKAGE_NAME = @PACKAGE_NAME@
10080 -PACKAGE_STRING = @PACKAGE_STRING@
10081 -PACKAGE_TARNAME = @PACKAGE_TARNAME@
10082 -PACKAGE_VERSION = @PACKAGE_VERSION@
10083 -PATH_SEPARATOR = @PATH_SEPARATOR@
10086 -SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
10087 -SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
10088 -SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
10089 -SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
10090 -SET_MAKE = @SET_MAKE@
10092 -STAGE1_CFLAGS = @STAGE1_CFLAGS@
10093 -STAGE2_CFLAGS = @STAGE2_CFLAGS@
10095 -VERSION = @VERSION@
10096 -ac_ct_CC = @ac_ct_CC@
10097 -ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
10098 -ac_ct_RANLIB = @ac_ct_RANLIB@
10099 -ac_ct_STRIP = @ac_ct_STRIP@
10100 -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
10101 -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
10102 -am__include = @am__include@
10103 -am__leading_dot = @am__leading_dot@
10104 -am__quote = @am__quote@
10105 -am__tar = @am__tar@
10106 -am__untar = @am__untar@
10109 -build_alias = @build_alias@
10110 -build_cpu = @build_cpu@
10111 -build_os = @build_os@
10112 -build_vendor = @build_vendor@
10113 -datadir = @datadir@
10114 -exec_prefix = @exec_prefix@
10116 -host_alias = @host_alias@
10117 -host_cpu = @host_cpu@
10118 -host_os = @host_os@
10119 -host_vendor = @host_vendor@
10120 -includedir = @includedir@
10121 -infodir = @infodir@
10122 -install_sh = @install_sh@
10124 -libexecdir = @libexecdir@
10125 -localstatedir = @localstatedir@
10127 -mkdir_p = @mkdir_p@
10128 -oldincludedir = @oldincludedir@
10130 -program_transform_name = @program_transform_name@
10131 -sbindir = @sbindir@
10132 -sharedstatedir = @sharedstatedir@
10133 -sysconfdir = @sysconfdir@
10134 -target_alias = @target_alias@
10135 -info_TEXINFOS = grub.texi multiboot.texi
10136 -grub_TEXINFOS = internals.texi
10137 -EXAMPLES = boot.S kernel.c multiboot.h
10138 -multiboot_TEXINFOS = boot.S.texi kernel.c.texi multiboot.h.texi
10139 -man_MANS = grub.8 mbchk.1 grub-install.8 grub-md5-crypt.8 grub-terminfo.8
10140 -HELP2MAN = help2man
10141 -SRC2TEXI = src2texi
10142 -noinst_SCRIPTS = $(HELP2MAN) $(SRC2TEXI)
10143 -@BUILD_EXAMPLE_KERNEL_TRUE@kernel_SOURCES = $(EXAMPLES)
10144 -@BUILD_EXAMPLE_KERNEL_TRUE@kernel_CFLAGS = -fno-builtin -nostdinc -O -g -Wall \
10145 -@BUILD_EXAMPLE_KERNEL_TRUE@ -imacros $(top_builddir)/config.h
10147 -@BUILD_EXAMPLE_KERNEL_TRUE@kernel_LDFLAGS = -nostdlib -Wl,-N -Wl,-Ttext -Wl,100000
10148 -EXTRA_DIST = menu.lst $(man_MANS) $(noinst_SCRIPTS) \
10149 - $(EXAMPLES) $(multiboot_TEXINFOS)
10151 -CLEANFILES = $(noinst_PROGRAMS)
10155 -.SUFFIXES: .S .c .dvi .html .info .o .obj .pdf .ps .texi
10156 -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
10157 - @for dep in $?; do \
10158 - case '$(am__configure_deps)' in \
10160 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
10165 - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile'; \
10166 - cd $(top_srcdir) && \
10167 - $(AUTOMAKE) --gnu docs/Makefile
10168 -.PRECIOUS: Makefile
10169 -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
10171 - *config.status*) \
10172 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
10174 - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
10175 - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
10178 -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
10179 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
10181 -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
10182 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
10183 -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
10184 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
10186 -clean-noinstPROGRAMS:
10187 - -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
10188 -kernel$(EXEEXT): $(kernel_OBJECTS) $(kernel_DEPENDENCIES)
10189 - @rm -f kernel$(EXEEXT)
10190 - $(LINK) $(kernel_LDFLAGS) $(kernel_OBJECTS) $(kernel_LDADD) $(LIBS)
10192 -mostlyclean-compile:
10193 - -rm -f *.$(OBJEXT)
10195 -distclean-compile:
10198 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kernel-kernel.Po@am__quote@
10201 - $(CCASCOMPILE) -c $<
10204 - $(CCASCOMPILE) -c `$(CYGPATH_W) '$<'`
10207 -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
10208 -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
10209 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
10210 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
10211 -@am__fastdepCC_FALSE@ $(COMPILE) -c $<
10214 -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
10215 -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
10216 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
10217 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
10218 -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
10220 -kernel-kernel.o: kernel.c
10221 -@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; \
10222 -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/kernel-kernel.Tpo" "$(DEPDIR)/kernel-kernel.Po"; else rm -f "$(DEPDIR)/kernel-kernel.Tpo"; exit 1; fi
10223 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='kernel.c' object='kernel-kernel.o' libtool=no @AMDEPBACKSLASH@
10224 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
10225 -@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
10227 -kernel-kernel.obj: kernel.c
10228 -@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`; \
10229 -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/kernel-kernel.Tpo" "$(DEPDIR)/kernel-kernel.Po"; else rm -f "$(DEPDIR)/kernel-kernel.Tpo"; exit 1; fi
10230 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='kernel.c' object='kernel-kernel.obj' libtool=no @AMDEPBACKSLASH@
10231 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
10232 -@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`
10235 - restore=: && backupdir="$(am__leading_dot)am$$$$" && \
10236 - am__cwd=`pwd` && cd $(srcdir) && \
10237 - rm -rf $$backupdir && mkdir $$backupdir && \
10238 - for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
10239 - if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
10241 - cd "$$am__cwd"; \
10242 - if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
10249 - cd $(srcdir) && \
10250 - $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
10252 - rm -rf $$backupdir; exit $$rc
10255 - TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
10256 - MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
10260 - TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
10261 - MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
10265 - rm -rf $(@:.html=.htp)
10266 - if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
10267 - -o $(@:.html=.htp) $<; \
10270 - if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
10271 - mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
10273 - if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
10274 - rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
10277 -$(srcdir)/grub.info: grub.texi $(srcdir)/version.texi $(grub_TEXINFOS)
10278 -grub.dvi: grub.texi $(srcdir)/version.texi $(grub_TEXINFOS)
10279 -grub.pdf: grub.texi $(srcdir)/version.texi $(grub_TEXINFOS)
10280 -grub.html: grub.texi $(srcdir)/version.texi $(grub_TEXINFOS)
10281 -$(srcdir)/version.texi: @MAINTAINER_MODE_TRUE@ $(srcdir)/stamp-vti
10282 -$(srcdir)/stamp-vti: grub.texi $(top_srcdir)/configure
10283 - @(dir=.; test -f ./grub.texi || dir=$(srcdir); \
10284 - set `$(SHELL) $(srcdir)/mdate-sh $$dir/grub.texi`; \
10285 - echo "@set UPDATED $$1 $$2 $$3"; \
10286 - echo "@set UPDATED-MONTH $$2 $$3"; \
10287 - echo "@set EDITION $(VERSION)"; \
10288 - echo "@set VERSION $(VERSION)") > vti.tmp
10289 - @cmp -s vti.tmp $(srcdir)/version.texi \
10290 - || (echo "Updating $(srcdir)/version.texi"; \
10291 - cp vti.tmp $(srcdir)/version.texi)
10293 - @cp $(srcdir)/version.texi $@
10298 -maintainer-clean-vti:
10299 -@MAINTAINER_MODE_TRUE@ -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
10300 -$(srcdir)/multiboot.info: multiboot.texi $(multiboot_TEXINFOS)
10301 -multiboot.dvi: multiboot.texi $(multiboot_TEXINFOS)
10302 -multiboot.pdf: multiboot.texi $(multiboot_TEXINFOS)
10303 -multiboot.html: multiboot.texi $(multiboot_TEXINFOS)
10305 - $(DVIPS) -o $@ $<
10307 -uninstall-info-am:
10309 - @if (install-info --version && \
10310 - install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
10311 - list='$(INFO_DEPS)'; \
10312 - for file in $$list; do \
10313 - relfile=`echo "$$file" | sed 's|^.*/||'`; \
10314 - echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \
10315 - install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \
10318 - @$(NORMAL_UNINSTALL)
10319 - @list='$(INFO_DEPS)'; \
10320 - for file in $$list; do \
10321 - relfile=`echo "$$file" | sed 's|^.*/||'`; \
10322 - relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \
10323 - (if cd "$(DESTDIR)$(infodir)"; then \
10324 - echo " rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9])"; \
10325 - rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \
10329 -dist-info: $(INFO_DEPS)
10330 - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
10331 - list='$(INFO_DEPS)'; \
10332 - for base in $$list; do \
10334 - $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \
10336 - if test -f $$base; then d=.; else d=$(srcdir); fi; \
10337 - for file in $$d/$$base*; do \
10338 - relfile=`expr "$$file" : "$$d/\(.*\)"`; \
10339 - test -f $(distdir)/$$relfile || \
10340 - cp -p $$file $(distdir)/$$relfile; \
10344 -mostlyclean-aminfo:
10345 - -rm -rf grub.aux grub.cp grub.cps grub.fn grub.ky grub.log grub.pg grub.tmp \
10346 - grub.toc grub.tp grub.vr grub.dvi grub.pdf grub.ps grub.html \
10347 - multiboot.aux multiboot.cp multiboot.cps multiboot.fn \
10348 - multiboot.ky multiboot.log multiboot.pg multiboot.tmp \
10349 - multiboot.toc multiboot.tp multiboot.vr multiboot.dvi \
10350 - multiboot.pdf multiboot.ps multiboot.html
10352 -maintainer-clean-aminfo:
10353 - @list='$(INFO_DEPS)'; for i in $$list; do \
10354 - i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \
10355 - echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
10356 - rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
10358 -install-man1: $(man1_MANS) $(man_MANS)
10359 - @$(NORMAL_INSTALL)
10360 - test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
10361 - @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
10362 - l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
10363 - for i in $$l2; do \
10365 - *.1*) list="$$list $$i" ;; \
10368 - for i in $$list; do \
10369 - if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
10370 - else file=$$i; fi; \
10371 - ext=`echo $$i | sed -e 's/^.*\\.//'`; \
10372 - case "$$ext" in \
10376 - inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
10377 - inst=`echo $$inst | sed -e 's/^.*\///'`; \
10378 - inst=`echo $$inst | sed '$(transform)'`.$$ext; \
10379 - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
10380 - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
10383 - @$(NORMAL_UNINSTALL)
10384 - @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
10385 - l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
10386 - for i in $$l2; do \
10388 - *.1*) list="$$list $$i" ;; \
10391 - for i in $$list; do \
10392 - ext=`echo $$i | sed -e 's/^.*\\.//'`; \
10393 - case "$$ext" in \
10397 - inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
10398 - inst=`echo $$inst | sed -e 's/^.*\///'`; \
10399 - inst=`echo $$inst | sed '$(transform)'`.$$ext; \
10400 - echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
10401 - rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
10403 -install-man8: $(man8_MANS) $(man_MANS)
10404 - @$(NORMAL_INSTALL)
10405 - test -z "$(man8dir)" || $(mkdir_p) "$(DESTDIR)$(man8dir)"
10406 - @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
10407 - l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
10408 - for i in $$l2; do \
10410 - *.8*) list="$$list $$i" ;; \
10413 - for i in $$list; do \
10414 - if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
10415 - else file=$$i; fi; \
10416 - ext=`echo $$i | sed -e 's/^.*\\.//'`; \
10417 - case "$$ext" in \
10421 - inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
10422 - inst=`echo $$inst | sed -e 's/^.*\///'`; \
10423 - inst=`echo $$inst | sed '$(transform)'`.$$ext; \
10424 - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \
10425 - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst"; \
10428 - @$(NORMAL_UNINSTALL)
10429 - @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
10430 - l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
10431 - for i in $$l2; do \
10433 - *.8*) list="$$list $$i" ;; \
10436 - for i in $$list; do \
10437 - ext=`echo $$i | sed -e 's/^.*\\.//'`; \
10438 - case "$$ext" in \
10442 - inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
10443 - inst=`echo $$inst | sed -e 's/^.*\///'`; \
10444 - inst=`echo $$inst | sed '$(transform)'`.$$ext; \
10445 - echo " rm -f '$(DESTDIR)$(man8dir)/$$inst'"; \
10446 - rm -f "$(DESTDIR)$(man8dir)/$$inst"; \
10449 -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
10450 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
10451 - unique=`for i in $$list; do \
10452 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
10454 - $(AWK) ' { files[$$0] = 1; } \
10455 - END { for (i in files) print i; }'`; \
10456 - mkid -fID $$unique
10459 -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
10460 - $(TAGS_FILES) $(LISP)
10463 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
10464 - unique=`for i in $$list; do \
10465 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
10467 - $(AWK) ' { files[$$0] = 1; } \
10468 - END { for (i in files) print i; }'`; \
10469 - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
10470 - test -n "$$unique" || unique=$$empty_fix; \
10471 - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
10472 - $$tags $$unique; \
10475 -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
10476 - $(TAGS_FILES) $(LISP)
10479 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
10480 - unique=`for i in $$list; do \
10481 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
10483 - $(AWK) ' { files[$$0] = 1; } \
10484 - END { for (i in files) print i; }'`; \
10485 - test -z "$(CTAGS_ARGS)$$tags$$unique" \
10486 - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
10490 - here=`$(am__cd) $(top_builddir) && pwd` \
10491 - && cd $(top_srcdir) \
10492 - && gtags -i $(GTAGS_ARGS) $$here
10495 - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
10497 -distdir: $(DISTFILES)
10498 - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
10499 - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
10500 - list='$(DISTFILES)'; for file in $$list; do \
10502 - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
10503 - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
10505 - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
10506 - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
10507 - if test "$$dir" != "$$file" && test "$$dir" != "."; then \
10509 - $(mkdir_p) "$(distdir)$$dir"; \
10513 - if test -d $$d/$$file; then \
10514 - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
10515 - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
10517 - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
10519 - test -f $(distdir)/$$file \
10520 - || cp -p $$d/$$file $(distdir)/$$file \
10524 - $(MAKE) $(AM_MAKEFLAGS) \
10525 - top_distdir="$(top_distdir)" distdir="$(distdir)" \
10529 -all-am: Makefile $(INFO_DEPS) $(PROGRAMS) $(SCRIPTS) $(MANS)
10531 - for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man8dir)"; do \
10532 - test -z "$$dir" || $(mkdir_p) "$$dir"; \
10534 -install: install-am
10535 -install-exec: install-exec-am
10536 -install-data: install-data-am
10537 -uninstall: uninstall-am
10539 -install-am: all-am
10540 - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
10542 -installcheck: installcheck-am
10544 - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
10545 - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
10546 - `test -z '$(STRIP)' || \
10547 - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
10548 -mostlyclean-generic:
10551 - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
10553 -distclean-generic:
10554 - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
10556 -maintainer-clean-generic:
10557 - @echo "This command is intended for maintainers to use"
10558 - @echo "it deletes files that may require special tools to rebuild."
10561 -clean-am: clean-generic clean-noinstPROGRAMS mostlyclean-am
10563 -distclean: distclean-am
10564 - -rm -rf ./$(DEPDIR)
10566 -distclean-am: clean-am distclean-compile distclean-generic \
10579 -info-am: $(INFO_DEPS)
10581 -install-data-am: install-info-am install-man
10585 -install-info: install-info-am
10587 -install-info-am: $(INFO_DEPS)
10588 - @$(NORMAL_INSTALL)
10589 - test -z "$(infodir)" || $(mkdir_p) "$(DESTDIR)$(infodir)"
10590 - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
10591 - list='$(INFO_DEPS)'; \
10592 - for file in $$list; do \
10594 - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
10596 - if test -f $$file; then d=.; else d=$(srcdir); fi; \
10597 - file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \
10598 - for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \
10599 - $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \
10600 - if test -f $$ifile; then \
10601 - relfile=`echo "$$ifile" | sed 's|^.*/||'`; \
10602 - echo " $(INSTALL_DATA) '$$ifile' '$(DESTDIR)$(infodir)/$$relfile'"; \
10603 - $(INSTALL_DATA) "$$ifile" "$(DESTDIR)$(infodir)/$$relfile"; \
10608 - @if (install-info --version && \
10609 - install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
10610 - list='$(INFO_DEPS)'; \
10611 - for file in $$list; do \
10612 - relfile=`echo "$$file" | sed 's|^.*/||'`; \
10613 - echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\
10614 - install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\
10617 -install-man: install-man1 install-man8
10621 -maintainer-clean: maintainer-clean-am
10622 - -rm -rf ./$(DEPDIR)
10624 -maintainer-clean-am: distclean-am maintainer-clean-aminfo \
10625 - maintainer-clean-generic maintainer-clean-vti
10627 -mostlyclean: mostlyclean-am
10629 -mostlyclean-am: mostlyclean-aminfo mostlyclean-compile \
10630 - mostlyclean-generic mostlyclean-vti
10640 -uninstall-am: uninstall-info-am uninstall-man
10642 -uninstall-man: uninstall-man1 uninstall-man8
10644 -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
10645 - clean-noinstPROGRAMS ctags dist-info distclean \
10646 - distclean-compile distclean-generic distclean-tags distdir dvi \
10647 - dvi-am html html-am info info-am install install-am \
10648 - install-data install-data-am install-exec install-exec-am \
10649 - install-info install-info-am install-man install-man1 \
10650 - install-man8 install-strip installcheck installcheck-am \
10651 - installdirs maintainer-clean maintainer-clean-aminfo \
10652 - maintainer-clean-generic maintainer-clean-vti mostlyclean \
10653 - mostlyclean-aminfo mostlyclean-compile mostlyclean-generic \
10654 - mostlyclean-vti pdf pdf-am ps ps-am tags uninstall \
10655 - uninstall-am uninstall-info-am uninstall-man uninstall-man1 \
10659 -@BUILD_EXAMPLE_KERNEL_TRUE@boot.o: multiboot.h
10661 -# Cancel the rule %.texi -> %. This rule may confuse make to determine
10662 -# the dependecies.
10665 -%.c.texi: %.c $(srcdir)/$(SRC2TEXI)
10666 - $(SHELL) $(srcdir)/$(SRC2TEXI) $(srcdir) $< $@
10668 -%.h.texi: %.h $(srcdir)/$(SRC2TEXI)
10669 - $(SHELL) $(srcdir)/$(SRC2TEXI) $(srcdir) $< $@
10671 -%.S.texi: %.S $(srcdir)/$(SRC2TEXI)
10672 - $(SHELL) $(srcdir)/$(SRC2TEXI) $(srcdir) $< $@
10674 -@MAINTAINER_MODE_TRUE@$(srcdir)/grub.8: ../grub/grub $(srcdir)/$(HELP2MAN)
10675 -@MAINTAINER_MODE_TRUE@ $(PERL) $(srcdir)/$(HELP2MAN) --name="the grub shell" \
10676 -@MAINTAINER_MODE_TRUE@ --section=8 --output=$@ $<
10678 -@MAINTAINER_MODE_TRUE@$(srcdir)/grub-install.8: ../util/grub-install $(srcdir)/$(HELP2MAN)
10679 -@MAINTAINER_MODE_TRUE@ chmod 755 $<
10680 -@MAINTAINER_MODE_TRUE@ $(PERL) $(srcdir)/$(HELP2MAN) --name="install GRUB on your drive" \
10681 -@MAINTAINER_MODE_TRUE@ --section=8 --output=$@ $<
10683 -@MAINTAINER_MODE_TRUE@$(srcdir)/mbchk.1: ../util/mbchk $(srcdir)/$(HELP2MAN)
10684 -@MAINTAINER_MODE_TRUE@ $(PERL) $(srcdir)/$(HELP2MAN) \
10685 -@MAINTAINER_MODE_TRUE@ --name="check the format of a Multiboot kernel" \
10686 -@MAINTAINER_MODE_TRUE@ --section=1 --output=$@ $<
10688 -@MAINTAINER_MODE_TRUE@$(srcdir)/grub-md5-crypt.8: ../util/grub-md5-crypt $(srcdir)/$(HELP2MAN)
10689 -@MAINTAINER_MODE_TRUE@ chmod 755 $<
10690 -@MAINTAINER_MODE_TRUE@ $(PERL) $(srcdir)/$(HELP2MAN) \
10691 -@MAINTAINER_MODE_TRUE@ --name="Encrypt a password in MD5 format" \
10692 -@MAINTAINER_MODE_TRUE@ --section=8 --output=$@ $<
10694 -@MAINTAINER_MODE_TRUE@$(srcdir)/grub-terminfo.8: ../util/grub-terminfo $(srcdir)/$(HELP2MAN)
10695 -@MAINTAINER_MODE_TRUE@ chmod 755 $<
10696 -@MAINTAINER_MODE_TRUE@ $(PERL) $(srcdir)/$(HELP2MAN) \
10697 -@MAINTAINER_MODE_TRUE@ --name="Generate a terminfo command from a terminfo name" \
10698 -@MAINTAINER_MODE_TRUE@ --section=8 --output=$@ $<
10699 -# Tell versions [3.59,3.63) of GNU make to not export all variables.
10700 -# Otherwise a system limit (for SysV at least) may be exceeded.
10702 diff --git a/docs/grub-crypt.8 b/docs/grub-crypt.8
10703 new file mode 100644
10704 index 0000000..eb132d7
10706 +++ b/docs/grub-crypt.8
10708 +.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.23.
10709 +.TH GRUB-CRYPT "1" "January 2010" "grub-crypt (GNU GRUB 0.97)" FSF
10711 +grub-crypt \- manual page for grub-crypt (GNU GRUB 0.97)
10716 +Encrypt a password.
10718 +\fB\-h\fR, \fB\-\-help\fR
10719 +Print this message and exit
10721 +\fB\-v\fR, \fB\-\-version\fR
10722 +Print the version information and exit
10725 +Use MD5 to encrypt the password
10727 +\fB\-\-sha\-256\fR
10728 +Use SHA-256 to encrypt the password
10730 +\fB\-\-sha\-512\fR
10731 +Use SHA-512 to encrypt the password (default)
10732 +.SH "REPORTING BUGS"
10733 +Report bugs to <bug-grub@gnu.org>.
10736 +The full documentation for
10738 +is maintained as a Texinfo manual. If the
10742 +programs are properly installed at your site, the command
10744 +.B info grub-crypt
10746 +should give you access to the complete manual.
10747 diff --git a/docs/grub-install.8 b/docs/grub-install.8
10748 index ac588a3..accff22 100644
10749 --- a/docs/grub-install.8
10750 +++ b/docs/grub-install.8
10751 @@ -30,6 +30,8 @@ BIOS
10754 probe a device map even if it already exists
10756 +This option is unreliable and its use is strongly discouraged.
10758 INSTALL_DEVICE can be a GRUB device name or a system device filename.
10760 diff --git a/docs/grub.8 b/docs/grub.8
10761 index 92149f7..7a087d6 100644
10764 @@ -15,7 +15,7 @@ turn on batch mode for non-interactive use
10765 specify stage2 boot_drive [default=0x0]
10767 \fB\-\-config\-file\fR=\fIFILE\fR
10768 -specify stage2 config_file [default=/boot/grub/menu.lst]
10769 +specify stage2 config_file [default=/boot/grub/grub.conf]
10771 \fB\-\-device\-map\fR=\fIFILE\fR
10772 use the device map file FILE
10773 diff --git a/docs/grub.info b/docs/grub.info
10774 index f48783c..7692f31 100644
10775 --- a/docs/grub.info
10776 +++ b/docs/grub.info
10778 -This is ../../docs/grub.info, produced by makeinfo version 4.8 from
10779 -../../docs/grub.texi.
10780 +This is grub.info, produced by makeinfo version 4.9 from grub.texi.
10782 INFO-DIR-SECTION Kernel
10783 START-INFO-DIR-ENTRY
10784 @@ -1147,7 +1146,7 @@ your OS. There's a solution to that - GRUB provides a menu interface
10785 (*note Menu interface::) from which you can select an item (using arrow
10786 keys) that will do everything to boot an OS.
10788 - To enable the menu, you need a configuration file, `menu.lst' under
10789 + To enable the menu, you need a configuration file, `grub.conf' under
10790 the boot directory. We'll analyze an example file.
10792 The file first contains some general settings, the menu interface
10793 @@ -1693,12 +1692,12 @@ There are two ways to specify files, by "absolute file name" and by
10795 An absolute file name resembles a Unix absolute file name, using `/'
10796 for the directory separator (not `\' as in DOS). One example is
10797 -`(hd0,0)/boot/grub/menu.lst'. This means the file `/boot/grub/menu.lst'
10798 -in the first partition of the first hard disk. If you omit the device
10799 -name in an absolute file name, GRUB uses GRUB's "root device"
10800 -implicitly. So if you set the root device to, say, `(hd1,0)' by the
10801 -command `root' (*note root::), then `/boot/kernel' is the same as
10802 -`(hd1,0)/boot/kernel'.
10803 +`(hd0,0)/boot/grub/grub.conf'. This means the file
10804 +`/boot/grub/grub.conf' in the first partition of the first hard disk.
10805 +If you omit the device name in an absolute file name, GRUB uses GRUB's
10806 +"root device" implicitly. So if you set the root device to, say,
10807 +`(hd1,0)' by the command `root' (*note root::), then `/boot/kernel' is
10808 +the same as `(hd1,0)/boot/kernel'.
10811 File: grub.info, Node: Block list syntax, Prev: File name syntax, Up: Filesystem
10812 @@ -2023,6 +2022,7 @@ Commands usable anywhere in the menu and in the command-line.
10813 * rarp:: Initialize a network device via RARP
10814 * serial:: Set up a serial device
10815 * setkey:: Configure the key map
10816 +* splashimage:: Use a splash image
10817 * terminal:: Choose a terminal
10818 * terminfo:: Define escape sequences for a terminal
10819 * tftpserver:: Specify a TFTP server
10820 @@ -2258,7 +2258,7 @@ File: grub.info, Node: serial, Next: setkey, Prev: rarp, Up: General command
10821 support. See also *Note Serial terminal::.
10824 -File: grub.info, Node: setkey, Next: terminal, Prev: serial, Up: General commands
10825 +File: grub.info, Node: setkey, Next: splashimage, Prev: serial, Up: General commands
10829 @@ -2384,9 +2384,20 @@ File: grub.info, Node: setkey, Next: terminal, Prev: serial, Up: General com
10833 -File: grub.info, Node: terminal, Next: terminfo, Prev: setkey, Up: General commands
10834 +File: grub.info, Node: splashimage, Next: terminal, Prev: setkey, Up: General commands
10837 +13.2.14 splashimage
10838 +-------------------
10840 + -- Command: splashimage file
10841 + Select an image to use as the background image. This should be
10842 + specified using normal GRUB device naming syntax. The format of
10843 + the file is a gzipped xpm which is 640x480 with a 14 color palette.
10846 +File: grub.info, Node: terminal, Next: terminfo, Prev: splashimage, Up: General commands
10851 -- Command: terminal [`--dumb'] [`--no-echo'] [`--no-edit']
10852 @@ -2421,7 +2432,7 @@ File: grub.info, Node: terminal, Next: terminfo, Prev: setkey, Up: General c
10854 File: grub.info, Node: terminfo, Next: tftpserver, Prev: terminal, Up: General commands
10860 -- Command: terminfo `--name=name' `--cursor-address=seq'
10861 @@ -2439,7 +2450,7 @@ File: grub.info, Node: terminfo, Next: tftpserver, Prev: terminal, Up: Gener
10863 File: grub.info, Node: tftpserver, Next: unhide, Prev: terminfo, Up: General commands
10865 -13.2.16 tftpserver
10866 +13.2.17 tftpserver
10869 -- Command: tftpserver ipaddr
10870 @@ -2454,7 +2465,7 @@ File: grub.info, Node: tftpserver, Next: unhide, Prev: terminfo, Up: General
10872 File: grub.info, Node: unhide, Prev: tftpserver, Up: General commands
10878 -- Command: unhide partition
10879 @@ -3405,9 +3416,9 @@ calls with UNIX system calls and libc functions.
10880 grub shell just ignores this option.
10882 `--config-file=FILE'
10883 - Read the configuration file FILE instead of `/boot/grub/menu.lst'.
10884 - The format is the same as the normal GRUB syntax. See *Note
10885 - Filesystem::, for more information.
10886 + Read the configuration file FILE instead of
10887 + `/boot/grub/grub.conf'. The format is the same as the normal GRUB
10888 + syntax. See *Note Filesystem::, for more information.
10890 `--boot-drive=DRIVE'
10891 Set the stage2 BOOT_DRIVE to DRIVE. This argument should be an
10892 @@ -3551,8 +3562,9 @@ name.
10895 Recheck the device map, even if `/boot/grub/device.map' already
10896 - exists. You should use this option whenever you add/remove a disk
10897 - into/from your computer.
10900 + This option is unreliable and its use is strongly discouraged.
10903 File: grub.info, Node: Invoking grub-md5-crypt, Next: Invoking grub-terminfo, Prev: Invoking grub-install, Up: Top
10904 @@ -4279,6 +4291,7 @@ Index
10905 * serial: serial. (line 9)
10906 * setkey: setkey. (line 7)
10907 * setup: setup. (line 8)
10908 +* splashimage: splashimage. (line 7)
10909 * terminal: terminal. (line 9)
10910 * terminfo: terminfo. (line 9)
10911 * testload: testload. (line 7)
10912 @@ -4293,163 +4306,164 @@ Index
10917 -Node: Introduction
\7f3266
10918 -Node: Overview
\7f3643
10919 -Node: Overview-Footnotes
\7f5865
10920 -Ref: Overview-Footnote-1
\7f5926
10921 -Node: History
\7f6087
10922 -Node: Features
\7f7208
10923 -Node: Features-Footnotes
\7f12976
10924 -Ref: Features-Footnote-1
\7f13037
10925 -Node: Role of a boot loader
\7f13182
10926 -Node: Role of a boot loader-Footnotes
\7f14520
10927 -Ref: Role of a boot loader-Footnote-1
\7f14607
10928 -Node: Naming convention
\7f14686
10929 -Node: Installation
\7f17621
10930 -Node: Creating a GRUB boot floppy
\7f19363
10931 -Node: Installing GRUB natively
\7f20181
10932 -Node: Installing GRUB natively-Footnotes
\7f22461
10933 -Ref: Installing GRUB natively-Footnote-1
\7f22554
10934 -Node: Installing GRUB using grub-install
\7f22739
10935 -Node: Making a GRUB bootable CD-ROM
\7f25685
10936 -Node: Making a GRUB bootable CD-ROM-Footnotes
\7f27730
10937 -Ref: Making a GRUB bootable CD-ROM-Footnote-1
\7f27833
10938 -Node: Booting
\7f27908
10939 -Node: General boot methods
\7f28363
10940 -Node: Loading an operating system directly
\7f29104
10941 -Node: Chain-loading
\7f30408
10942 -Node: Chain-loading-Footnotes
\7f31718
10943 -Ref: Chain-loading-Footnote-1
\7f31789
10944 -Node: OS-specific notes
\7f31861
10945 -Node: GNU/Hurd
\7f32237
10946 -Node: GNU/Linux
\7f32856
10947 -Node: FreeBSD
\7f34104
10948 -Node: NetBSD
\7f34617
10949 -Node: OpenBSD
\7f35275
10950 -Node: DOS/Windows
\7f35475
10951 -Node: SCO UnixWare
\7f37301
10953 -Node: Making your system robust
\7f37969
10954 -Node: Booting once-only
\7f39294
10955 -Node: Booting fallback systems
\7f41219
10956 -Node: Configuration
\7f44066
10957 -Node: Network
\7f48495
10958 -Node: General usage of network support
\7f48989
10959 -Node: General usage of network support-Footnotes
\7f50850
10960 -Ref: General usage of network support-Footnote-1
\7f50959
10961 -Node: Diskless
\7f51027
10962 -Node: Serial terminal
\7f53211
10963 -Node: Preset Menu
\7f55444
10964 -Node: Security
\7f57812
10965 -Node: Images
\7f60620
10966 -Node: Filesystem
\7f63131
10967 -Node: Device syntax
\7f63814
10968 -Node: File name syntax
\7f65308
10969 -Node: Block list syntax
\7f66051
10970 -Node: Interface
\7f66784
10971 -Node: Command-line interface
\7f67661
10972 -Node: Command-line interface-Footnotes
\7f69602
10973 -Ref: Command-line interface-Footnote-1
\7f69691
10974 -Node: Menu interface
\7f69786
10975 -Node: Menu entry editor
\7f70796
10976 -Node: Hidden menu interface
\7f71875
10977 -Node: Commands
\7f72452
10978 -Node: Menu-specific commands
\7f73029
10979 -Node: default
\7f74200
10980 -Node: fallback
\7f74678
10981 -Node: hiddenmenu
\7f75229
10982 -Node: timeout
\7f75717
10983 -Node: title
\7f75995
10984 -Node: General commands
\7f76266
10985 -Node: bootp
\7f77579
10986 -Node: color
\7f78058
10987 -Node: device
\7f79532
10988 -Node: dhcp
\7f80104
10989 -Node: hide
\7f80689
10990 -Node: ifconfig
\7f81066
10991 -Node: pager
\7f81642
10992 -Node: partnew
\7f81976
10993 -Node: parttype
\7f82412
10994 -Node: password
\7f82779
10995 -Node: rarp
\7f83598
10996 -Node: serial
\7f83899
10997 -Node: setkey
\7f85172
10998 -Node: terminal
\7f87341
10999 -Node: terminfo
\7f88878
11000 -Node: tftpserver
\7f89565
11001 -Node: unhide
\7f90111
11002 -Node: Command-line and menu entry commands
\7f90486
11003 -Node: blocklist
\7f93017
11004 -Node: boot
\7f93259
11006 -Node: chainloader
\7f93884
11008 -Node: configfile
\7f95051
11009 -Node: debug
\7f95265
11010 -Node: displayapm
\7f95649
11011 -Node: displaymem
\7f95860
11012 -Node: embed
\7f96562
11013 -Node: embed-Footnotes
\7f97096
11014 -Ref: embed-Footnote-1
\7f97151
11015 -Node: find
\7f97208
11016 -Node: fstest
\7f97588
11017 -Node: geometry
\7f98273
11018 -Node: halt
\7f98885
11019 -Node: help
\7f99212
11020 -Node: impsprobe
\7f99833
11021 -Node: initrd
\7f100232
11022 -Node: install
\7f100571
11023 -Node: install-Footnotes
\7f103415
11024 -Ref: install-Footnote-1
\7f103474
11025 -Node: ioprobe
\7f103571
11026 -Node: kernel
\7f103896
11027 -Node: lock
\7f105016
11028 -Node: makeactive
\7f105591
11029 -Node: map
\7f105903
11030 -Node: md5crypt
\7f106470
11031 -Node: module
\7f106817
11032 -Node: modulenounzip
\7f107394
11033 -Node: pause
\7f107687
11034 -Node: quit
\7f108101
11035 -Node: reboot
\7f108377
11036 -Node: read
\7f108558
11037 -Node: root
\7f108800
11038 -Node: rootnoverify
\7f109677
11039 -Node: savedefault
\7f110232
11040 -Node: setup
\7f111208
11041 -Node: testload
\7f112274
11042 -Node: testvbe
\7f112884
11043 -Node: uppermem
\7f113255
11044 -Node: vbeprobe
\7f113837
11045 -Node: Troubleshooting
\7f114220
11046 -Node: Stage1 errors
\7f114758
11047 -Node: Stage1.5 errors
\7f116135
11048 -Node: Stage2 errors
\7f116573
11049 -Node: Invoking the grub shell
\7f124033
11050 -Node: Basic usage
\7f124786
11051 -Node: Installation under UNIX
\7f127073
11052 -Node: Device map
\7f128748
11053 -Node: Invoking grub-install
\7f129896
11054 -Node: Invoking grub-md5-crypt
\7f131484
11055 -Node: Invoking grub-terminfo
\7f132133
11056 -Node: Invoking grub-set-default
\7f132899
11057 -Node: Invoking mbchk
\7f134700
11058 -Node: Obtaining and Building GRUB
\7f135214
11059 -Node: Reporting bugs
\7f136631
11060 -Node: Future
\7f139435
11061 -Node: Internals
\7f139926
11062 -Node: Memory map
\7f141149
11063 -Node: Embedded data
\7f142627
11064 -Node: Filesystem interface
\7f144644
11065 -Node: Command interface
\7f148077
11066 -Node: Bootstrap tricks
\7f149392
11067 -Node: I/O ports detection
\7f151541
11068 -Node: Memory detection
\7f151813
11069 -Node: Low-level disk I/O
\7f152105
11070 -Node: MBR
\7f152374
11071 -Node: Partition table
\7f152571
11072 -Node: Submitting patches
\7f152844
11073 -Node: Index
\7f154332
11075 +Node: Introduction
\7f3244
11076 +Node: Overview
\7f3621
11077 +Node: Overview-Footnotes
\7f5843
11078 +Ref: Overview-Footnote-1
\7f5904
11079 +Node: History
\7f6065
11080 +Node: Features
\7f7186
11081 +Node: Features-Footnotes
\7f12954
11082 +Ref: Features-Footnote-1
\7f13015
11083 +Node: Role of a boot loader
\7f13160
11084 +Node: Role of a boot loader-Footnotes
\7f14498
11085 +Ref: Role of a boot loader-Footnote-1
\7f14585
11086 +Node: Naming convention
\7f14664
11087 +Node: Installation
\7f17599
11088 +Node: Creating a GRUB boot floppy
\7f19341
11089 +Node: Installing GRUB natively
\7f20159
11090 +Node: Installing GRUB natively-Footnotes
\7f22439
11091 +Ref: Installing GRUB natively-Footnote-1
\7f22532
11092 +Node: Installing GRUB using grub-install
\7f22717
11093 +Node: Making a GRUB bootable CD-ROM
\7f25663
11094 +Node: Making a GRUB bootable CD-ROM-Footnotes
\7f27708
11095 +Ref: Making a GRUB bootable CD-ROM-Footnote-1
\7f27811
11096 +Node: Booting
\7f27886
11097 +Node: General boot methods
\7f28341
11098 +Node: Loading an operating system directly
\7f29082
11099 +Node: Chain-loading
\7f30386
11100 +Node: Chain-loading-Footnotes
\7f31696
11101 +Ref: Chain-loading-Footnote-1
\7f31767
11102 +Node: OS-specific notes
\7f31839
11103 +Node: GNU/Hurd
\7f32215
11104 +Node: GNU/Linux
\7f32834
11105 +Node: FreeBSD
\7f34082
11106 +Node: NetBSD
\7f34595
11107 +Node: OpenBSD
\7f35253
11108 +Node: DOS/Windows
\7f35453
11109 +Node: SCO UnixWare
\7f37279
11111 +Node: Making your system robust
\7f37947
11112 +Node: Booting once-only
\7f39272
11113 +Node: Booting fallback systems
\7f41197
11114 +Node: Configuration
\7f44044
11115 +Node: Network
\7f48474
11116 +Node: General usage of network support
\7f48968
11117 +Node: General usage of network support-Footnotes
\7f50829
11118 +Ref: General usage of network support-Footnote-1
\7f50938
11119 +Node: Diskless
\7f51006
11120 +Node: Serial terminal
\7f53190
11121 +Node: Preset Menu
\7f55423
11122 +Node: Security
\7f57791
11123 +Node: Images
\7f60599
11124 +Node: Filesystem
\7f63110
11125 +Node: Device syntax
\7f63793
11126 +Node: File name syntax
\7f65287
11127 +Node: Block list syntax
\7f66032
11128 +Node: Interface
\7f66765
11129 +Node: Command-line interface
\7f67642
11130 +Node: Command-line interface-Footnotes
\7f69583
11131 +Ref: Command-line interface-Footnote-1
\7f69672
11132 +Node: Menu interface
\7f69767
11133 +Node: Menu entry editor
\7f70777
11134 +Node: Hidden menu interface
\7f71856
11135 +Node: Commands
\7f72433
11136 +Node: Menu-specific commands
\7f73010
11137 +Node: default
\7f74181
11138 +Node: fallback
\7f74659
11139 +Node: hiddenmenu
\7f75210
11140 +Node: timeout
\7f75698
11141 +Node: title
\7f75976
11142 +Node: General commands
\7f76247
11143 +Node: bootp
\7f77611
11144 +Node: color
\7f78090
11145 +Node: device
\7f79564
11146 +Node: dhcp
\7f80136
11147 +Node: hide
\7f80721
11148 +Node: ifconfig
\7f81098
11149 +Node: pager
\7f81674
11150 +Node: partnew
\7f82008
11151 +Node: parttype
\7f82444
11152 +Node: password
\7f82811
11153 +Node: rarp
\7f83630
11154 +Node: serial
\7f83931
11155 +Node: setkey
\7f85204
11156 +Node: splashimage
\7f87376
11157 +Node: terminal
\7f87754
11158 +Node: terminfo
\7f89296
11159 +Node: tftpserver
\7f89983
11160 +Node: unhide
\7f90529
11161 +Node: Command-line and menu entry commands
\7f90904
11162 +Node: blocklist
\7f93435
11163 +Node: boot
\7f93677
11165 +Node: chainloader
\7f94302
11167 +Node: configfile
\7f95469
11168 +Node: debug
\7f95683
11169 +Node: displayapm
\7f96067
11170 +Node: displaymem
\7f96278
11171 +Node: embed
\7f96980
11172 +Node: embed-Footnotes
\7f97514
11173 +Ref: embed-Footnote-1
\7f97569
11174 +Node: find
\7f97626
11175 +Node: fstest
\7f98006
11176 +Node: geometry
\7f98691
11177 +Node: halt
\7f99303
11178 +Node: help
\7f99630
11179 +Node: impsprobe
\7f100251
11180 +Node: initrd
\7f100650
11181 +Node: install
\7f100989
11182 +Node: install-Footnotes
\7f103833
11183 +Ref: install-Footnote-1
\7f103892
11184 +Node: ioprobe
\7f103989
11185 +Node: kernel
\7f104314
11186 +Node: lock
\7f105434
11187 +Node: makeactive
\7f106009
11188 +Node: map
\7f106321
11189 +Node: md5crypt
\7f106888
11190 +Node: module
\7f107235
11191 +Node: modulenounzip
\7f107812
11192 +Node: pause
\7f108105
11193 +Node: quit
\7f108519
11194 +Node: reboot
\7f108795
11195 +Node: read
\7f108976
11196 +Node: root
\7f109218
11197 +Node: rootnoverify
\7f110095
11198 +Node: savedefault
\7f110650
11199 +Node: setup
\7f111626
11200 +Node: testload
\7f112692
11201 +Node: testvbe
\7f113302
11202 +Node: uppermem
\7f113673
11203 +Node: vbeprobe
\7f114255
11204 +Node: Troubleshooting
\7f114638
11205 +Node: Stage1 errors
\7f115176
11206 +Node: Stage1.5 errors
\7f116553
11207 +Node: Stage2 errors
\7f116991
11208 +Node: Invoking the grub shell
\7f124451
11209 +Node: Basic usage
\7f125204
11210 +Node: Installation under UNIX
\7f127492
11211 +Node: Device map
\7f129167
11212 +Node: Invoking grub-install
\7f130315
11213 +Node: Invoking grub-md5-crypt
\7f131884
11214 +Node: Invoking grub-terminfo
\7f132533
11215 +Node: Invoking grub-set-default
\7f133299
11216 +Node: Invoking mbchk
\7f135100
11217 +Node: Obtaining and Building GRUB
\7f135614
11218 +Node: Reporting bugs
\7f137031
11219 +Node: Future
\7f139835
11220 +Node: Internals
\7f140326
11221 +Node: Memory map
\7f141549
11222 +Node: Embedded data
\7f143027
11223 +Node: Filesystem interface
\7f145044
11224 +Node: Command interface
\7f148477
11225 +Node: Bootstrap tricks
\7f149792
11226 +Node: I/O ports detection
\7f151941
11227 +Node: Memory detection
\7f152213
11228 +Node: Low-level disk I/O
\7f152505
11229 +Node: MBR
\7f152774
11230 +Node: Partition table
\7f152971
11231 +Node: Submitting patches
\7f153244
11232 +Node: Index
\7f154732
11235 diff --git a/docs/grub.texi b/docs/grub.texi
11236 index 51d330a..5fd324d 100644
11237 --- a/docs/grub.texi
11238 +++ b/docs/grub.texi
11240 @dircategory Kernel
11242 * GRUB: (grub). The GRand Unified Bootloader
11243 +* grub-crypt: (grub)Invoking grub-crypt. Encrypt a password
11244 * grub-install: (grub)Invoking grub-install. Install GRUB on your drive
11245 * grub-md5-crypt: (grub)Invoking grub-md5-crypt. Encrypt a password
11247 @@ -115,8 +116,9 @@ This edition documents version @value{VERSION}.
11248 * Commands:: The list of available builtin commands
11249 * Troubleshooting:: Error messages produced by GRUB
11250 * Invoking the grub shell:: How to use the grub shell
11251 +* Invoking grub-crypt:: How to generate an encrypted password
11252 * Invoking grub-install:: How to use the GRUB installer
11253 -* Invoking grub-md5-crypt:: How to generate a cryptic password
11254 +* Invoking grub-md5-crypt:: How to generate an MD5-encrypted password
11255 * Invoking grub-terminfo:: How to generate a terminfo command
11256 * Invoking grub-set-default:: How to set a default boot entry
11257 * Invoking mbchk:: How to use the Multiboot checker
11258 @@ -1265,7 +1267,7 @@ OS. There's a solution to that - GRUB provides a menu interface
11259 keys) that will do everything to boot an OS.
11261 To enable the menu, you need a configuration file,
11262 -@file{menu.lst} under the boot directory. We'll analyze an example
11263 +@file{grub.conf} under the boot directory. We'll analyze an example
11266 The file first contains some general settings, the menu interface
11267 @@ -1685,27 +1687,17 @@ run the command @command{password} in your configuration file
11268 (@pxref{password}), like this:
11271 -password --md5 PASSWORD
11272 +password --encrypted PASSWORD
11275 If this is specified, GRUB disallows any interactive control, until you
11276 press the key @key{p} and enter a correct password. The option
11277 -@option{--md5} tells GRUB that @samp{PASSWORD} is in MD5 format. If it
11278 +@option{--encrypted} tells GRUB that @samp{PASSWORD} is encrypted format. If it
11279 is omitted, GRUB assumes the @samp{PASSWORD} is in clear text.
11281 -You can encrypt your password with the command @command{md5crypt}
11282 -(@pxref{md5crypt}). For example, run the grub shell (@pxref{Invoking the
11283 -grub shell}), and enter your password:
11288 -Password: **********
11289 -Encrypted: $1$U$JK7xFegdxWH6VuppCUSIb.
11293 -Then, cut and paste the encrypted password to your configuration file.
11294 +You can encrypt your password with the program @command{grub-crypt}
11295 +(@pxref{Invoking grub-crypt}). Then, cut and paste the encrypted password to
11296 +your configuration file.
11298 Also, you can specify an optional argument to @command{password}. See
11300 @@ -1882,8 +1874,8 @@ There are two ways to specify files, by @dfn{absolute file name} and by
11302 An absolute file name resembles a Unix absolute file name, using
11303 @samp{/} for the directory separator (not @samp{\} as in DOS). One
11304 -example is @samp{(hd0,0)/boot/grub/menu.lst}. This means the file
11305 -@file{/boot/grub/menu.lst} in the first partition of the first hard
11306 +example is @samp{(hd0,0)/boot/grub/grub.conf}. This means the file
11307 +@file{/boot/grub/grub.conf} in the first partition of the first hard
11308 disk. If you omit the device name in an absolute file name, GRUB uses
11309 GRUB's @dfn{root device} implicitly. So if you set the root device to,
11310 say, @samp{(hd1,0)} by the command @command{root} (@pxref{root}), then
11311 @@ -2199,6 +2191,7 @@ Commands usable anywhere in the menu and in the command-line.
11312 * rarp:: Initialize a network device via RARP
11313 * serial:: Set up a serial device
11314 * setkey:: Configure the key map
11315 +* splashimage:: Use a splash image
11316 * terminal:: Choose a terminal
11317 * terminfo:: Define escape sequences for a terminal
11318 * tftpserver:: Specify a TFTP server
11319 @@ -2398,7 +2391,7 @@ is the new partition type and must be a number in the range 0-0xff.
11321 @subsection password
11323 -@deffn Command password [@option{--md5}] passwd [new-config-file]
11324 +@deffn Command password [@option{--md5}] [@option{--encrypted}] passwd [new-config-file]
11325 If used in the first section of a menu file, disable all interactive
11326 editing control (menu entry editor and command-line) and entries
11327 protected by the command @command{lock}. If the password @var{passwd} is
11328 @@ -2408,7 +2401,9 @@ specified. Otherwise, GRUB will just unlock the privileged instructions.
11329 You can also use this command in the script section, in which case it
11330 will ask for the password, before continuing. The option
11331 @option{--md5} tells GRUB that @var{passwd} is encrypted with
11332 -@command{md5crypt} (@pxref{md5crypt}).
11333 +@command{md5crypt} (@pxref{md5crypt}), the option @option{--encrypted}
11334 +tells GRUB that @var{passwd} is using one of the crypt formats (GRUB currently
11335 +supports MD5, SHA-256 and SHA-512 encryption).
11339 @@ -2578,6 +2573,16 @@ character each of the symbols corresponds:
11344 +@subsection splashimage
11346 +@deffn Command splashimage file
11347 +Select an image to use as the background image. This should be
11348 +specified using normal GRUB device naming syntax. The format of the
11349 +file is a gzipped xpm which is 640x480 with a 14 color palette.
11354 @subsection terminal
11356 @@ -3542,7 +3547,7 @@ ignores this option.
11358 @item --config-file=@var{file}
11359 Read the configuration file @var{file} instead of
11360 -@file{/boot/grub/menu.lst}. The format is the same as the normal GRUB
11361 +@file{/boot/grub/grub.conf}. The format is the same as the normal GRUB
11362 syntax. See @ref{Filesystem}, for more information.
11364 @item --boot-drive=@var{drive}
11365 @@ -3653,6 +3658,31 @@ comments in the file if needed, as the grub shell assumes that a line is
11366 just a comment if the first character is @samp{#}.
11369 +@node Invoking grub-crypt
11370 +@chapter Invoking grub-crypt
11372 +The program @command{grub-crypt} encrypts a password in one of the specified
11373 +formats. Passwords encrypted by this program can be used with the
11374 +command @command{password} (@pxref{password}).
11376 +@command{grub-crypt} accepts the following options:
11380 +Print a summary of the command-line options and exit.
11383 +Print the version information and exit.
11386 +Use MD5 for password encryption.
11388 +Use SHA-256 for password encryption.
11390 +Use SHA-512 for password encryption. This is the default.
11394 @node Invoking grub-install
11395 @chapter Invoking grub-install
11397 @@ -3702,8 +3732,9 @@ Use @var{file} as the grub shell. You can append arbitrary options to
11400 Recheck the device map, even if @file{/boot/grub/device.map} already
11401 -exists. You should use this option whenever you add/remove a disk
11402 -into/from your computer.
11405 +This option is unreliable and its use is strongly discouraged.
11409 diff --git a/docs/stamp-vti b/docs/stamp-vti
11410 index b97de24..eb5144d 100644
11411 --- a/docs/stamp-vti
11412 +++ b/docs/stamp-vti
11414 -@set UPDATED 8 May 2005
11415 -@set UPDATED-MONTH May 2005
11416 +@set UPDATED 7 August 2007
11417 +@set UPDATED-MONTH August 2007
11420 diff --git a/docs/version.texi b/docs/version.texi
11421 index b97de24..eb5144d 100644
11422 --- a/docs/version.texi
11423 +++ b/docs/version.texi
11425 -@set UPDATED 8 May 2005
11426 -@set UPDATED-MONTH May 2005
11427 +@set UPDATED 7 August 2007
11428 +@set UPDATED-MONTH August 2007
11431 diff --git a/efi/.gitignore b/efi/.gitignore
11432 new file mode 100644
11433 index 0000000..a0e4294
11435 +++ b/efi/.gitignore
11444 diff --git a/efi/Makefile.am b/efi/Makefile.am
11445 new file mode 100644
11446 index 0000000..1d5bd15
11448 +++ b/efi/Makefile.am
11451 +pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
11452 +pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
11456 +if NETBOOT_SUPPORT
11457 +NETBOOT_FLAGS = -I$(top_srcdir)/netboot -DSUPPORT_NETBOOT=1
11463 +SERIAL_FLAGS = -DSUPPORT_SERIAL=1
11468 +if HERCULES_SUPPORT
11469 +HERCULES_FLAGS = -DSUPPORT_HERCULES=1
11474 +if GRAPHICS_SUPPORT
11475 +GRAPHICS_FLAGS = -DSUPPORT_GRAPHICS=1
11480 +GRUBEFI_FORMAT = efi-app-$(EFI_ARCH)
11481 +GRUBSO_LD_SCRIPT = @GNUEFI_LDS@
11482 +GRUBSO_LD_FLAGS = -T $(GRUBSO_LD_SCRIPT) -nostdlib -shared -Bsymbolic
11484 +GRUBSO_OBJS = efimain.o
11485 +GRUBSO_LIBS = @GNUEFI_CRT0@ $(top_srcdir)/stage2/libstage2.a \
11486 + libgrubefi.a @LIBGCC@
11488 +if NETBOOT_SUPPORT
11489 +GRUBSO_LIBS += $(top_srcdir)/netboot/libdrivers.a
11492 +pkgdata_DATA = grub.efi
11495 + $(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel \
11496 + -j .rela -j .reloc --target=$(GRUBEFI_FORMAT) $^ $@
11498 +grub.so: $(GRUBSO_OBJS) $(GRUBSO_LIBS) @LIBGNUEFI@
11499 + $(LD) -o $@ $(GRUBSO_LD_FLAGS) $^
11500 + echo '-------------- unresolved symbols ---------------------'
11501 + ! nm $@ | grep -iw u
11502 + echo '-------------------------------------------------------'
11504 +crt0-efi.o: $(EFI_ARCH)/crt0-efi.S
11505 + $(CC) -o $@ -c $(libgrubefi_a_CFLAGS) $^
11507 +efimain.o: efimain.c
11508 + $(CC) -o $@ -c $(libgrubefi_a_CFLAGS) $^
11511 + -rm -rf grub.so grub.efi
11513 +RELOC_FLAGS = $(STAGE2_CFLAGS) -I$(top_srcdir)/stage1 \
11514 + -I$(top_srcdir)/lib -I. -I$(top_srcdir) -I$(top_srcdir)/stage2 \
11515 + -fno-builtin $(NETBOOT_FLAGS) $(SERIAL_FLAGS) \
11516 + $(HERCULES_FLAGS) $(GRAPHICS_FLAGS)
11518 +noinst_LIBRARIES = libgrubefi.a
11519 +libgrubefi_a_SOURCES = $(EFI_ARCH)/callwrap.S eficore.c efimm.c efimisc.c \
11520 + eficon.c efidisk.c graphics.c efigraph.c efiuga.c efidp.c \
11521 + font_8x16.c efiserial.c $(EFI_ARCH)/loader/linux.c efichainloader.c \
11522 + xpm.c pxe.c efitftp.c
11523 +libgrubefi_a_CFLAGS = $(RELOC_FLAGS) -nostdinc
11526 diff --git a/efi/byteswap.h b/efi/byteswap.h
11527 new file mode 100644
11528 index 0000000..5a057c4
11530 +++ b/efi/byteswap.h
11532 +#ifndef BYTESWAP_H
11533 +#define BYTESWAP_H 1
11535 +#if defined(__i386__)
11536 +#define LITTLE_ENDIAN 1
11537 +#elif defined(__x86_64__)
11538 +#define LITTLE_ENDIAN 1
11540 +#error endian not defined
11543 +#define bswap_16(x) \
11544 + ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))
11546 +#define bswap_32(x) \
11547 + ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >> 8) | \
11548 + (((x) & 0x0000ff00) << 8) | (((x) & 0x000000ff) << 24))
11550 +static inline grub_efi_uint16_t htons(grub_efi_uint16_t hostshort)
11552 +#ifdef LITTLE_ENDIAN
11553 + return bswap_16(hostshort);
11555 + return hostshort;
11559 +static inline grub_efi_uint32_t htonl(grub_efi_uint32_t hostshort)
11561 +#ifdef LITTLE_ENDIAN
11562 + return bswap_32(hostshort);
11564 + return hostshort;
11568 +#endif /* BYTESWAP_H */
11569 diff --git a/efi/dhcp.h b/efi/dhcp.h
11570 new file mode 100644
11571 index 0000000..a82a522
11580 +#define EFI_DHCP4_PROTOCOL_GUID \
11581 +{ 0x8a219718, 0x4ef5, 0x4761, {0x91,0xc8,0xc0,0xf0,0x4b,0xda,0x9e,0x56} }
11582 +static grub_efi_guid_t DHCP4Protocol = EFI_DHCP4_PROTOCOL_GUID;
11584 +#define EFI_DHCP4_SERVICE_BINDING_PROTOCOL_GUID \
11585 +{ 0x9d9a39d8, 0xbd42, 0x4a73, {0xa4,0xd5,0x8e,0xe9,0x4b,0xe1,0x13,0x80} }
11586 +static grub_efi_guid_t DHCP4SbProtocol = EFI_DHCP4_SERVICE_BINDING_PROTOCOL_GUID;
11588 +#define EFI_PXE_DHCP4_PROTOCOL_GUID \
11589 +{ 0x03c4e624, 0xac28, 0x11d3, {0x9a,0x2d,0x00,0x90,0x29,0x3f,0xc1,0x4d} }
11590 +static grub_efi_guid_t PxeDHCP4Protocol = EFI_PXE_DHCP4_PROTOCOL_GUID;
11593 +typedef EFI_STATUS (*EFI_DHCP4_GET_MODE_DATA)();
11594 +typedef EFI_STATUS (*EFI_DHCP4_CONFIGURE)();
11595 +typedef EFI_STATUS (*EFI_DHCP4_START)();
11596 +typedef EFI_STATUS (*EFI_DHCP4_RENEW_REBIND)();
11597 +typedef EFI_STATUS (*EFI_DHCP4_RELEASE)();
11598 +typedef EFI_STATUS (*EFI_DHCP4_STOP)();
11599 +typedef EFI_STATUS (*EFI_DHCP4_BUILD)();
11600 +typedef EFI_STATUS (*EFI_DHCP4_TRANSMIT_RECIEVE)();
11601 +typedef EFI_STATUS (*EFI_DHCP4_PARSE)();
11603 +typedef struct _EFI_DHCP4_PROTOCOL {
11604 + EFI_DHCP4_GET_MODE_DATA GetModeData;
11605 + EFI_DHCP4_CONFIGURE Configure;
11606 + EFI_DHCP4_START Start;
11607 + EFI_DHCP4_RENEW_REBIND RenewRebind;
11608 + EFI_DHCP4_RELEASE Release;
11609 + EFI_DHCP4_STOP Stop;
11610 + EFI_DHCP4_BUILD Build;
11611 + EFI_DHCP4_TRANSMIT_RECIEVE TransmitReceive;
11612 + EFI_DHCP4_PARSE Parse;
11613 +} EFI_DHCP4_PROTOCOL;
11625 +} EFI_DHCP4_STATE;
11628 + Dhcp4SendDiscover = 0x1,
11630 + Dhcp4SelectOffer,
11631 + Dhcp4SendRequest,
11634 + Dhcp4SendDecline,
11635 + Dhcp4BoundCompleted,
11636 + Dhcp4EnterRenewing,
11637 + Dhcp4EnterRebinding,
11638 + Dhcp4AddressLost,
11640 +} EFI_DHCP4_EVENT;
11643 + grub_efi_uint8_t OpCode;
11644 + grub_efi_uint8_t HwType;
11645 + grub_efi_uint8_t HwAddrLen;
11646 + grub_efi_uint8_t Hops;
11647 + grub_efi_uint32_t xid;
11648 + grub_efi_uint16_t Seconds;
11649 + grub_efi_uint16_t reserved;
11650 + EFI_IPv4_ADDRESS ClientAddr;
11651 + EFI_IPv4_ADDRESS YourAddr;
11652 + EFI_IPv4_ADDRESS ServerAddr;
11653 + EFI_IPv4_ADDRESS GatewayAddr;
11654 + grub_efi_uint8_t ClientHwAddr[16];
11655 + char ServerName[64];
11656 + char BootFileName[128];
11657 +} EFI_DHCP4_HEADER;
11660 + grub_efi_uint32_t Size;
11661 + grub_efi_uint32_t Length;
11663 + EFI_DHCP4_HEADER Header;
11664 + grub_efi_uint32_t Magik;
11665 + grub_efi_uint8_t option[];
11667 +} EFI_DHCP4_PACKET;
11670 + grub_efi_uint8_t OpCode;
11671 + grub_efi_uint8_t Length;
11672 + grub_efi_uint8_t Data[1];
11673 +} EFI_DHCP4_PACKET_OPTION;
11675 +typedef EFI_STATUS (*EFI_DHCP4_CALLBACK) (
11676 + EFI_DHCP4_PROTOCOL *This,
11678 + EFI_DHCP4_STATE CurrentState,
11679 + EFI_DHCP4_EVENT Dhcp4Event,
11680 + EFI_DHCP4_PACKET *Packet,
11681 + EFI_DHCP4_PACKET **NewPacket);
11684 + grub_efi_uint32_t DiscoverTryCount;
11685 + grub_efi_uint32_t *DiscoverTimeout;
11686 + grub_efi_uint32_t RequestTryCount;
11687 + grub_efi_uint32_t *RequestTimeout;
11688 + EFI_IPv4_ADDRESS ClientAddress;
11689 + EFI_DHCP4_CALLBACK Dhcp4Callback;
11690 + void *CallbackContext;
11691 + grub_efi_uint32_t OptionCount;
11692 + EFI_DHCP4_PACKET_OPTION **OptionList;
11693 +} EFI_DHCP4_CONFIG_DATA;
11696 + EFI_DHCP4_STATE State;
11697 + EFI_DHCP4_CONFIG_DATA ConfigData;
11698 + EFI_IPv4_ADDRESS ClientAddress;
11699 + EFI_MAC_ADDRESS ClientMacAddress;
11700 + EFI_IPv4_ADDRESS ServerAddress;
11701 + EFI_IPv4_ADDRESS RouterAddress;
11702 + EFI_IPv4_ADDRESS SubnetMask;
11703 + grub_efi_uint32_t LeaseTime;
11704 + EFI_DHCP4_PACKET *ReplyPacket;
11705 +} EFI_DHCP4_MODE_DATA;
11707 +#endif /* DHCP_H */
11708 diff --git a/efi/efichainloader.c b/efi/efichainloader.c
11709 new file mode 100644
11710 index 0000000..016636c
11712 +++ b/efi/efichainloader.c
11714 +/* efichainloader.c - boot another boot loader */
11716 + * GRUB -- GRand Unified Bootloader
11717 + * Copyright (C) 2002,2004,2006 Free Software Foundation, Inc.
11719 + * This program is free software; you can redistribute it and/or modify
11720 + * it under the terms of the GNU General Public License as published by
11721 + * the Free Software Foundation; either version 2 of the License, or
11722 + * (at your option) any later version.
11724 + * This program is distributed in the hope that it will be useful,
11725 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
11726 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11727 + * GNU General Public License for more details.
11729 + * You should have received a copy of the GNU General Public License
11730 + * along with this program; if not, write to the Free Software
11731 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
11734 +#include <grub/misc.h>
11735 +#include <grub/types.h>
11736 +#include <grub/efi/api.h>
11737 +#include <grub/efi/efi.h>
11738 +#include <grub/efi/misc.h>
11740 +#include <shared.h>
11742 +#define grub_file_size() filemax
11744 +static grub_efi_physical_address_t address;
11745 +static grub_efi_uintn_t pages;
11746 +static grub_efi_device_path_t *file_path;
11747 +static grub_efi_handle_t image_handle;
11750 +grub_chainloader_unload (void)
11752 + grub_efi_boot_services_t *b;
11754 + b = grub_efi_system_table->boot_services;
11755 + Call_Service_1 (b->unload_image, image_handle);
11756 + Call_Service_2 (b->free_pages, address, pages);
11757 + grub_free (file_path);
11763 +grub_chainloader_boot (void)
11765 + grub_efi_boot_services_t *b;
11766 + grub_efi_status_t status;
11767 + grub_efi_uintn_t exit_data_size = 0;
11768 + grub_efi_char16_t *exit_data = NULL;
11770 + b = grub_efi_system_table->boot_services;
11771 + status = Call_Service_3 (b->start_image, image_handle,
11772 + &exit_data_size, &exit_data);
11773 + if (status != GRUB_EFI_SUCCESS)
11779 + buf = grub_malloc (exit_data_size * 4 + 1);
11782 + *grub_utf16_to_utf8 ((grub_uint8_t *) buf,
11783 + exit_data, exit_data_size) = 0;
11785 + grub_printf (buf);
11789 + grub_printf ("unknown error\n");
11791 + errnum = ERR_UNRECOGNIZED;
11795 + Call_Service_1 (b->free_pool, exit_data);
11797 + grub_chainloader_unload ();
11803 +copy_file_path (grub_efi_file_path_device_path_t *fp,
11804 + const char *str, grub_efi_uint16_t len)
11806 + grub_efi_char16_t *p;
11807 + grub_efi_uint16_t size;
11809 + fp->header.type = GRUB_EFI_MEDIA_DEVICE_PATH_TYPE;
11810 + fp->header.subtype = GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE;
11811 + size = len * sizeof (grub_efi_char16_t) + sizeof (*fp);
11812 + fp->header.length[0] = (grub_efi_uint8_t) (size & 0xff);
11813 + fp->header.length[1] = (grub_efi_uint8_t) (size >> 8);
11814 + for (p = fp->path_name; len > 0; len--, p++, str++)
11816 + *p = (grub_efi_char16_t) (*str == '/' ? '\\' : *str);
11820 +static grub_efi_device_path_t *
11821 +make_file_path (const char *filename)
11825 + grub_size_t size;
11826 + grub_efi_device_path_t *d;
11828 + dir_start = grub_strchr (filename, ')');
11830 + dir_start = (char *) filename;
11834 + dir_end = grub_strrchr (dir_start, '/');
11837 + errnum = ERR_BAD_FILENAME;
11838 + grub_printf ("invalid EFI file path");
11843 + file_path = grub_malloc ((grub_strlen (dir_start) + 1)
11844 + * sizeof (grub_efi_char16_t)
11845 + + sizeof (grub_efi_file_path_device_path_t) * 2);
11849 + /* Fill the file path for the directory. */
11850 + d = (grub_efi_device_path_t *) file_path;
11852 + if (dir_end - dir_start)
11854 + copy_file_path ((grub_efi_file_path_device_path_t *) d,
11855 + dir_start, dir_end - dir_start);
11856 + d = GRUB_EFI_NEXT_DEVICE_PATH (d);
11857 + /* Fill the file path for the file. */
11858 + copy_file_path ((grub_efi_file_path_device_path_t *) d,
11859 + dir_end + 1, grub_strlen (dir_end + 1));
11863 + /* Fill the file path for the file. */
11864 + copy_file_path ((grub_efi_file_path_device_path_t *) d,
11865 + dir_end, grub_strlen (dir_end));
11868 + /* Fill the end of device path nodes. */
11869 + d = GRUB_EFI_NEXT_DEVICE_PATH (d);
11870 + d->type = GRUB_EFI_END_DEVICE_PATH_TYPE;
11871 + d->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE;
11872 + d->length[0] = sizeof (*d);
11873 + d->length[1] = 0;
11875 + return file_path;
11879 +grub_chainloader (char *filename)
11881 + grub_ssize_t size;
11882 + grub_efi_status_t status;
11883 + grub_efi_boot_services_t *b;
11884 + grub_efi_handle_t dev_handle = 0;
11885 + grub_efi_loaded_image_t *loaded_image;
11887 + /* Initialize some global variables. */
11888 + address = 0xffffffff;
11889 + image_handle = 0;
11891 + b = grub_efi_system_table->boot_services;
11893 + if (! grub_open (filename))
11896 + dev_handle = grub_efidisk_get_current_bdev_handle ();
11897 + if (! dev_handle)
11899 + errnum = ERR_UNRECOGNIZED;
11900 + grub_printf ("not a valid root device\n");
11904 + file_path = make_file_path (filename);
11908 + grub_printf ("file path: ");
11909 + grub_efi_print_device_path (file_path);
11911 + size = grub_file_size ();
11912 + pages = (((grub_efi_uintn_t) size + ((1 << 12) - 1)) >> 12);
11914 + status = Call_Service_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_ANY_PAGES,
11915 + GRUB_EFI_LOADER_CODE, pages, &address);
11916 + if (status != GRUB_EFI_SUCCESS)
11918 + errnum = ERR_UNRECOGNIZED;
11919 + grub_printf ("cannot allocate %u pages", pages);
11923 + if (grub_read ((void *) ((grub_addr_t) address), size) != size)
11925 + if (errnum == ERR_NONE)
11927 + errnum = ERR_UNRECOGNIZED;
11928 + grub_printf ("too small");
11933 + status = Call_Service_6 (b->load_image, 0, grub_efi_image_handle, file_path,
11934 + (void *) ((grub_addr_t) address), size,
11936 + if (status != GRUB_EFI_SUCCESS)
11938 + errnum = ERR_UNRECOGNIZED;
11939 + if (status == GRUB_EFI_OUT_OF_RESOURCES)
11940 + grub_printf ("out of resources");
11942 + grub_printf ("cannot load image");
11947 + /* LoadImage does not set a device handler when the image is
11948 + loaded from memory, so it is necessary to set it explicitly here.
11949 + This is a mess. */
11950 + loaded_image = grub_efi_get_loaded_image (image_handle);
11951 + if (! loaded_image)
11953 + errnum = ERR_UNRECOGNIZED;
11954 + grub_printf ("no loaded image available");
11957 + loaded_image->device_handle = dev_handle;
11960 + return KERNEL_TYPE_CHAINLOADER;
11966 + b->free_pages (address, pages);
11968 + return KERNEL_TYPE_NONE;
11971 +/* calls for direct boot-loader chaining */
11973 +chain_stage1 (unsigned long segment, unsigned long offset,
11974 + unsigned long part_table_addr)
11976 + grub_chainloader_boot ();
11979 diff --git a/efi/eficon.c b/efi/eficon.c
11980 new file mode 100644
11981 index 0000000..037f050
11986 + * GRUB -- GRand Unified Bootloader
11987 + * Copyright (C) 2006 Free Software Foundation, Inc.
11989 + * This program is free software; you can redistribute it and/or modify
11990 + * it under the terms of the GNU General Public License as published by
11991 + * the Free Software Foundation; either version 2 of the License, or
11992 + * (at your option) any later version.
11994 + * This program is distributed in the hope that it will be useful,
11995 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
11996 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11997 + * GNU General Public License for more details.
11999 + * You should have received a copy of the GNU General Public License
12000 + * along with this program; if not, write to the Free Software
12001 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
12004 +#include <grub/misc.h>
12005 +#include <grub/types.h>
12006 +#include <grub/efi/efi.h>
12007 +#include <grub/efi/api.h>
12008 +#include <grub/efi/misc.h>
12010 +#include <shared.h>
12014 +grub_console_standard_color = GRUB_EFI_TEXT_ATTR (GRUB_EFI_YELLOW,
12015 + GRUB_EFI_BACKGROUND_BLACK);
12017 +grub_console_normal_color = GRUB_EFI_TEXT_ATTR (GRUB_EFI_LIGHTGRAY,
12018 + GRUB_EFI_BACKGROUND_BLACK);
12020 +grub_console_highlight_color = GRUB_EFI_TEXT_ATTR (GRUB_EFI_BLACK,
12021 + GRUB_EFI_BACKGROUND_LIGHTGRAY);
12023 +static int read_key = -1;
12026 +console_putchar (int c)
12028 + grub_efi_char16_t str[2];
12029 + grub_efi_simple_text_output_interface_t *o;
12031 + o = grub_efi_system_table->con_out;
12067 + /* For now, do not try to use a surrogate pair. */
12071 + str[0] = (grub_efi_char16_t) (c & 0xffff);
12074 + /* Should this test be cached? */
12075 + if (c > 0x7f && Call_Service_2 (o->test_string, o, str) != GRUB_EFI_SUCCESS)
12078 + Call_Service_2 (o->output_string, o, str);
12082 +console_checkkey (void)
12084 + grub_efi_simple_input_interface_t *i;
12085 + grub_efi_input_key_t key;
12086 + grub_efi_status_t status;
12088 + if (read_key >= 0)
12091 + i = grub_efi_system_table->con_in;
12092 + status = Call_Service_2 (i->read_key_stroke ,i, &key);
12096 + case GRUB_EFI_SUCCESS:
12100 + xy = console_getxy ();
12101 + console_gotoxy (0, 0);
12102 + grub_printf ("scan_code=%x,unicode_char=%x ",
12103 + (unsigned) key.scan_code,
12104 + (unsigned) key.unicode_char);
12105 + console_gotoxy (xy >> 8, xy & 0xff);
12109 + case GRUB_EFI_NOT_READY:
12110 + grub_printf ("not ready ");
12114 + grub_printf ("device error ");
12119 + if (status == GRUB_EFI_SUCCESS)
12121 + switch (key.scan_code)
12124 + read_key = key.unicode_char;
12165 +console_getkey (void)
12167 + grub_efi_simple_input_interface_t *i;
12168 + grub_efi_boot_services_t *b;
12169 + grub_efi_uintn_t index;
12170 + grub_efi_status_t status;
12173 + if (read_key >= 0)
12180 + i = grub_efi_system_table->con_in;
12181 + b = grub_efi_system_table->boot_services;
12185 + status = Call_Service_3 (b->wait_for_event , 1, &(i->wait_for_key), &index);
12186 + if (status != GRUB_EFI_SUCCESS)
12189 + console_checkkey ();
12191 + while (read_key < 0);
12199 +console_keystatus (void)
12201 + /* Doesn't look like EFI can support this... */
12206 +console_getxy (void)
12208 + grub_efi_simple_text_output_interface_t *o;
12210 + o = grub_efi_system_table->con_out;
12211 + return ((o->mode->cursor_column << 8) | o->mode->cursor_row);
12215 +console_gotoxy (int x, int y)
12217 + grub_efi_simple_text_output_interface_t *o;
12219 + o = grub_efi_system_table->con_out;
12220 + Call_Service_3 (o->set_cursor_position , o, x, y);
12224 +console_cls (void)
12226 + grub_efi_simple_text_output_interface_t *o;
12227 + grub_efi_int32_t orig_attr;
12229 + o = grub_efi_system_table->con_out;
12230 + orig_attr = o->mode->attribute;
12231 + Call_Service_2 (o->set_attributes, o, GRUB_EFI_BACKGROUND_BLACK);
12232 + Call_Service_1 (o->clear_screen , o);
12233 + Call_Service_2 (o->set_attributes , o, orig_attr);
12237 +console_setcolorstate (color_state state)
12239 + grub_efi_simple_text_output_interface_t *o;
12241 + o = grub_efi_system_table->con_out;
12244 + case COLOR_STATE_STANDARD:
12245 + Call_Service_2 (o->set_attributes, o, grub_console_standard_color);
12247 + case COLOR_STATE_NORMAL:
12248 + Call_Service_2 (o->set_attributes, o, grub_console_normal_color);
12250 + case COLOR_STATE_HIGHLIGHT:
12251 + Call_Service_2 (o->set_attributes, o, grub_console_highlight_color);
12259 +console_setcolor (int normal_color, int highlight_color)
12261 + grub_console_normal_color = normal_color;
12262 + grub_console_highlight_color = highlight_color;
12266 +console_setcursor (int on)
12268 + grub_efi_simple_text_output_interface_t *o;
12270 + o = grub_efi_system_table->con_out;
12271 + Call_Service_2 (o->enable_cursor, o, on);
12276 +grub_console_init (void)
12278 + /* FIXME: it is necessary to consider the case where no console control
12279 + is present but the default is already in text mode. */
12280 + if (! grub_efi_set_text_mode (1))
12282 + grub_printf ("cannot set text mode");
12288 +grub_console_fini (void)
12291 diff --git a/efi/eficore.c b/efi/eficore.c
12292 new file mode 100644
12293 index 0000000..8abea7d
12295 +++ b/efi/eficore.c
12297 +/* eficore.c - generic EFI support */
12299 + * GRUB -- GRand Unified Bootloader
12300 + * Copyright (C) 2006 Free Software Foundation, Inc.
12302 + * This program is free software; you can redistribute it and/or modify
12303 + * it under the terms of the GNU General Public License as published by
12304 + * the Free Software Foundation; either version 2 of the License, or
12305 + * (at your option) any later version.
12307 + * This program is distributed in the hope that it will be useful,
12308 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
12309 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12310 + * GNU General Public License for more details.
12312 + * You should have received a copy of the GNU General Public License
12313 + * along with this program; if not, write to the Free Software
12314 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
12317 +#include <config.h>
12318 +#include <grub/misc.h>
12319 +#include <grub/efi/api.h>
12320 +#include <grub/efi/efi.h>
12321 +#include <grub/efi/eficall.h>
12322 +#include <grub/efi/console_control.h>
12323 +#include <grub/efi/time.h>
12325 +#include <shared.h>
12327 +/* The handle of GRUB itself. Filled in by the startup code. */
12328 +grub_efi_handle_t grub_efi_image_handle;
12330 +/* The pointer to a system table. Filled in by the startup code. */
12331 +grub_efi_system_table_t *grub_efi_system_table;
12333 +static grub_efi_guid_t console_control_guid = GRUB_EFI_CONSOLE_CONTROL_GUID;
12334 +static grub_efi_guid_t loaded_image_guid = GRUB_EFI_LOADED_IMAGE_GUID;
12335 +static grub_efi_guid_t device_path_guid = GRUB_EFI_DEVICE_PATH_GUID;
12337 +/* temporary, until we're using gnu-efi's include files --pjones */
12338 +extern int setjmp(grub_jmp_buf env);
12339 +int grub_setjmp(grub_jmp_buf env)
12341 + return setjmp(env);
12344 +extern void longjmp(grub_jmp_buf env, int val);
12345 +void grub_longjmp(grub_jmp_buf env, int val)
12347 + longjmp(env, val);
12351 +grub_efi_locate_device_path (grub_efi_guid_t *protocol,
12352 + grub_efi_device_path_t **dp,
12353 + grub_efi_handle_t *handle)
12355 + return Call_Service_3(
12356 + grub_efi_system_table->boot_services->locate_device_path,
12357 + protocol, dp, handle);
12361 +grub_efi_locate_handle_buffer (grub_efi_locate_search_type_t search_type,
12362 + grub_efi_guid_t *protocol,
12363 + void *search_key,
12364 + grub_efi_uintn_t *no_handles,
12365 + grub_efi_handle_t **buffer)
12367 + return Call_Service_5(
12368 + grub_efi_system_table->boot_services->locate_handle_buffer,
12369 + search_type, protocol, search_key, no_handles, buffer);
12373 +grub_efi_locate_protocol (grub_efi_guid_t *protocol, void *registration)
12376 + grub_efi_status_t status;
12378 + status = Call_Service_3 (grub_efi_system_table->boot_services->locate_protocol,
12382 + if (status != GRUB_EFI_SUCCESS)
12385 + return interface;
12388 +/* Return the array of handles which meet the requirement. If successful,
12389 + the number of handles is stored in NUM_HANDLES. The array is allocated
12390 + from the heap. */
12391 +grub_efi_handle_t *
12392 +grub_efi_locate_handle (grub_efi_locate_search_type_t search_type,
12393 + grub_efi_guid_t *protocol,
12394 + void *search_key,
12395 + grub_efi_uintn_t *num_handles)
12397 + grub_efi_boot_services_t *b;
12398 + grub_efi_status_t status;
12399 + grub_efi_handle_t *buffer;
12400 + grub_efi_uintn_t buffer_size = 8 * sizeof (grub_efi_handle_t);
12402 + buffer = grub_malloc (buffer_size);
12406 + b = grub_efi_system_table->boot_services;
12407 + status = Call_Service_5 (b->locate_handle, search_type, protocol,
12408 + search_key, &buffer_size, buffer);
12409 + if (status == GRUB_EFI_BUFFER_TOO_SMALL)
12411 + grub_free (buffer);
12412 + buffer = grub_malloc (buffer_size);
12416 + status = Call_Service_5 (b->locate_handle, search_type, protocol,
12417 + search_key, &buffer_size, buffer);
12420 + if (status != GRUB_EFI_SUCCESS)
12422 + grub_free (buffer);
12426 + *num_handles = buffer_size / sizeof (grub_efi_handle_t);
12431 +grub_efi_open_protocol (grub_efi_handle_t handle,
12432 + grub_efi_guid_t *protocol,
12433 + grub_efi_uint32_t attributes)
12435 + grub_efi_boot_services_t *b;
12436 + grub_efi_status_t status;
12439 + b = grub_efi_system_table->boot_services;
12440 + status = Call_Service_6 ( b->open_protocol,
12444 + grub_efi_image_handle,
12447 + if (status != GRUB_EFI_SUCCESS)
12450 + return interface;
12454 +grub_efi_set_text_mode (int on)
12456 + grub_efi_console_control_protocol_t *c;
12457 + grub_efi_screen_mode_t mode, new_mode;
12459 + c = grub_efi_locate_protocol (&console_control_guid, 0);
12461 + /* No console control protocol instance available, assume it is
12462 + already in text mode. */
12465 + if (Call_Service_4 (c->get_mode , c, &mode, 0, 0) != GRUB_EFI_SUCCESS)
12468 + new_mode = on ? GRUB_EFI_SCREEN_TEXT : GRUB_EFI_SCREEN_GRAPHICS;
12469 + if (mode != new_mode)
12470 + if (Call_Service_2 (c->set_mode , c, new_mode) != GRUB_EFI_SUCCESS)
12477 +grub_efi_stall (grub_efi_uintn_t microseconds)
12479 + Call_Service_1 (grub_efi_system_table->boot_services->stall , microseconds);
12482 +grub_efi_loaded_image_t *
12483 +grub_efi_get_loaded_image (grub_efi_handle_t image_handle)
12485 + return grub_efi_open_protocol (image_handle,
12486 + &loaded_image_guid,
12487 + GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
12493 + grub_efi_fini ();
12494 + Call_Service_4(grub_efi_system_table->boot_services->exit,
12495 + grub_efi_image_handle,
12496 + GRUB_EFI_SUCCESS,
12503 +grub_efi_exit_boot_services (grub_efi_uintn_t map_key)
12505 + grub_efi_boot_services_t *b;
12506 + grub_efi_status_t status;
12508 + b = grub_efi_system_table->boot_services;
12509 + status = Call_Service_2 (b->exit_boot_services ,
12510 + grub_efi_image_handle,
12512 + return status == GRUB_EFI_SUCCESS;
12516 +grub_get_rtc (void)
12518 + grub_efi_time_t time;
12519 + grub_efi_runtime_services_t *r;
12521 + r = grub_efi_system_table->runtime_services;
12522 + if (Call_Service_2(r->get_time , &time, 0) != GRUB_EFI_SUCCESS)
12523 + /* What is possible in this case? */
12526 + return (((time.minute * 60 + time.second) * 1000
12527 + + time.nanosecond / 1000000)
12528 + * GRUB_TICKS_PER_SECOND / 1000);
12531 +grub_efi_device_path_t *
12532 +grub_efi_get_device_path (grub_efi_handle_t handle)
12534 + return grub_efi_open_protocol (handle, &device_path_guid,
12535 + GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
12538 diff --git a/efi/efidisk.c b/efi/efidisk.c
12539 new file mode 100644
12540 index 0000000..6a505f3
12542 +++ b/efi/efidisk.c
12545 + * GRUB -- GRand Unified Bootloader
12546 + * Copyright (C) 2006 Free Software Foundation, Inc.
12548 + * GRUB is free software; you can redistribute it and/or modify
12549 + * it under the terms of the GNU General Public License as published by
12550 + * the Free Software Foundation; either version 2 of the License, or
12551 + * (at your option) any later version.
12553 + * This program is distributed in the hope that it will be useful,
12554 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
12555 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12556 + * GNU General Public License for more details.
12558 + * You should have received a copy of the GNU General Public License
12559 + * along with GRUB; if not, write to the Free Software
12560 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
12563 +#include <grub/types.h>
12564 +#include <grub/misc.h>
12565 +#include <grub/efi/api.h>
12566 +#include <grub/efi/efi.h>
12567 +#include <grub/efi/misc.h>
12569 +#include <shared.h>
12571 +struct grub_efidisk_data
12573 + grub_efi_handle_t handle;
12574 + grub_efi_device_path_t *device_path;
12575 + grub_efi_device_path_t *last_device_path;
12576 + grub_efi_block_io_t *block_io;
12577 + grub_efi_disk_io_t *disk_io;
12578 + struct grub_efidisk_data *next;
12582 +static grub_efi_guid_t disk_io_guid = GRUB_EFI_DISK_IO_GUID;
12583 +static grub_efi_guid_t block_io_guid = GRUB_EFI_BLOCK_IO_GUID;
12584 +static grub_efi_guid_t device_path_from_text_guid = GRUB_EFI_DEVICE_PATH_FROM_TEXT_GUID;
12586 +static struct grub_efidisk_data *fd_devices;
12587 +static struct grub_efidisk_data *hd_devices;
12588 +static struct grub_efidisk_data *cd_devices;
12590 +static int get_device_sector_bits(struct grub_efidisk_data *device);
12591 +static int get_device_sector_size(struct grub_efidisk_data *device);
12592 +static struct grub_efidisk_data *get_device_from_drive (int drive);
12594 +static struct grub_efidisk_data *
12595 +make_devices (void)
12597 + grub_efi_uintn_t num_handles;
12598 + grub_efi_handle_t *handles;
12599 + grub_efi_handle_t *handle;
12600 + struct grub_efidisk_data *devices = 0;
12602 + /* Find handles which support the disk io interface. */
12603 + handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL, &disk_io_guid,
12604 + 0, &num_handles);
12608 + /* Make a linked list of devices. */
12609 + for (handle = handles; num_handles--; handle++)
12611 + grub_efi_device_path_t *dp;
12612 + grub_efi_device_path_t *ldp;
12613 + struct grub_efidisk_data *d;
12614 + grub_efi_block_io_t *bio;
12615 + grub_efi_disk_io_t *dio;
12617 + dp = grub_efi_get_device_path (*handle);
12621 + ldp = find_last_device_path (dp);
12623 + /* This is empty. Why? */
12626 + bio = grub_efi_open_protocol (*handle, &block_io_guid,
12627 + GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
12628 + dio = grub_efi_open_protocol (*handle, &disk_io_guid,
12629 + GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
12630 + if (! bio || ! dio)
12631 + /* This should not happen... Why? */
12634 + d = grub_malloc (sizeof (*d));
12638 + grub_free (handles);
12642 + d->handle = *handle;
12643 + d->device_path = dp;
12644 + d->last_device_path = ldp;
12645 + d->block_io = bio;
12646 + d->disk_io = dio;
12647 + d->next = devices;
12651 + grub_free (handles);
12657 +iterate_child_devices (struct grub_efidisk_data *devices,
12658 + struct grub_efidisk_data *d,
12659 + int (*hook) (struct grub_efidisk_data *child))
12661 + struct grub_efidisk_data *p;
12663 + for (p = devices; p; p = p->next)
12665 + grub_efi_device_path_t *dp, *ldp;
12667 + dp = duplicate_device_path (p->device_path);
12671 + ldp = find_last_device_path (dp);
12672 + ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE;
12673 + ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE;
12674 + ldp->length[0] = sizeof (*ldp);
12675 + ldp->length[1] = 0;
12677 + if (compare_device_paths (dp, d->device_path) == 0)
12690 +/* Add a device into a list of devices in an ascending order. */
12692 +add_device (struct grub_efidisk_data **devices, struct grub_efidisk_data *d)
12694 + struct grub_efidisk_data **p;
12695 + struct grub_efidisk_data *n;
12697 + for (p = devices; *p; p = &((*p)->next))
12701 + ret = compare_device_paths (find_last_device_path ((*p)->device_path),
12702 + find_last_device_path (d->device_path));
12704 + ret = compare_device_paths ((*p)->device_path,
12708 + else if (ret > 0)
12712 + n = grub_malloc (sizeof (*n));
12716 + grub_memcpy (n, d, sizeof (*n));
12721 +/* Name the devices. */
12723 +name_devices (struct grub_efidisk_data *devices)
12725 + struct grub_efidisk_data *d;
12727 + /* Let's see what can be added more. */
12728 + for (d = devices; d; d = d->next)
12730 + grub_efi_device_path_t *dp;
12731 + grub_efi_block_io_media_t *m;
12733 + dp = d->last_device_path;
12737 + m = d->block_io->media;
12738 + if (GRUB_EFI_DEVICE_PATH_TYPE(dp) == GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE)
12740 + /* XXX FIXME this won't work if we see write-protected disks with
12742 + if (m->read_only && m->block_size > 0x200)
12744 + add_device (&cd_devices, d);
12747 + add_device (&hd_devices, d);
12750 + if (GRUB_EFI_DEVICE_PATH_TYPE(dp) == GRUB_EFI_ACPI_DEVICE_PATH_TYPE)
12752 + add_device (&fd_devices, d);
12758 +free_devices (struct grub_efidisk_data *devices)
12760 + struct grub_efidisk_data *p, *q;
12762 + for (p = devices; p; p = q)
12769 +/* Enumerate all disks to name devices. */
12771 +enumerate_disks (void)
12773 + struct grub_efidisk_data *devices;
12775 + devices = make_devices ();
12779 + name_devices (devices);
12780 + free_devices (devices);
12783 +static struct grub_efidisk_data *
12784 +get_device (struct grub_efidisk_data *devices, int num)
12786 + struct grub_efidisk_data *d;
12788 + for (d = devices; d && num; d = d->next, num--)
12798 +grub_efidisk_read (struct grub_efidisk_data *d, grub_disk_addr_t sector,
12799 + grub_size_t size, char *buf)
12801 + /* For now, use the disk io interface rather than the block io's. */
12802 + grub_efi_disk_io_t *dio;
12803 + grub_efi_block_io_t *bio;
12804 + grub_efi_status_t status;
12805 + grub_efi_uint64_t sector_size = get_device_sector_size(d);
12807 + dio = d->disk_io;
12808 + bio = d->block_io;
12810 + status = Call_Service_5 (dio->read,
12811 + dio, bio->media->media_id,
12812 + sector * sector_size,
12813 + size * sector_size,
12815 + if (status != GRUB_EFI_SUCCESS)
12822 +grub_efidisk_write (struct grub_efidisk_data *d, grub_disk_addr_t sector,
12823 + grub_size_t size, const char *buf)
12825 + /* For now, use the disk io interface rather than the block io's. */
12826 + grub_efi_disk_io_t *dio;
12827 + grub_efi_block_io_t *bio;
12828 + grub_efi_status_t status;
12829 + grub_efi_uint64_t sector_size = get_device_sector_size(d);
12831 + dio = d->disk_io;
12832 + bio = d->block_io;
12834 + grub_dprintf ("efidisk",
12835 + "writing 0x%x sectors at the sector 0x%x to ??\n",
12836 + (unsigned) size, (unsigned int) sector);
12838 + status = Call_Service_5 (dio->write ,
12839 + dio, bio->media->media_id,
12840 + sector * sector_size,
12841 + size * sector_size,
12843 + if (status != GRUB_EFI_SUCCESS)
12850 +grub_efidisk_init (void)
12852 + enumerate_disks ();
12856 +grub_efidisk_fini (void)
12858 + free_devices (fd_devices);
12859 + free_devices (hd_devices);
12860 + free_devices (cd_devices);
12864 +get_device_sector_size(struct grub_efidisk_data *device)
12866 + return device->block_io->media->block_size;
12870 +get_sector_size(int drive)
12872 + struct grub_efidisk_data *device = get_device_from_drive(drive);
12873 + return get_device_sector_size(device);
12877 + * ffz = Find First Zero in word. Undefined if no zero exists,
12878 + * so code should check against ~0UL first..
12880 +static __inline__ unsigned int
12881 +ffz (unsigned int word)
12883 + __asm__ ("bsfl %1,%0"
12888 +#define log2(n) ffz(~(n))
12891 +get_device_sector_bits(struct grub_efidisk_data *device)
12893 + int sector_size = get_device_sector_size(device);
12894 + return log2(sector_size);
12898 +get_sector_bits(int drive)
12900 + int sector_size = get_sector_size(drive);
12901 + return log2(sector_size);
12904 +static struct grub_efidisk_data *
12905 +get_device_from_drive (int drive)
12907 +#ifdef SUPPORT_NETBOOT
12908 + /* Not supported */
12909 + if (drive == NETWORK_DRIVE)
12912 + if (drive == GRUB_INVALID_DRIVE)
12914 + if (drive == cdrom_drive)
12915 + return get_device (cd_devices, 0);
12917 + if (drive & 0x80)
12918 + return get_device (hd_devices, drive - 0x80);
12919 + /* Floppy disk */
12921 + return get_device (fd_devices, drive);
12924 +/* Low-level disk I/O. Our stubbed version just returns a file
12925 + descriptor, not the actual geometry. */
12927 +get_diskinfo (int drive, struct geometry *geometry)
12929 + struct grub_efidisk_data *d;
12931 + d = get_device_from_drive (drive);
12934 + geometry->total_sectors = d->block_io->media->last_block+1;
12935 + geometry->sector_size = d->block_io->media->block_size;
12936 + geometry->flags = BIOSDISK_FLAG_LBA_EXTENSION;
12937 + geometry->sectors = 63;
12938 + if (geometry->total_sectors / 63 < 255)
12939 + geometry->heads = 1;
12941 + geometry->heads = 255;
12942 + geometry->cylinders = geometry->total_sectors / 63 / geometry->heads;
12947 +biosdisk (int subfunc, int drive, struct geometry *geometry,
12948 + int sector, int nsec, int segment)
12951 + struct grub_efidisk_data *d;
12954 + d = get_device_from_drive (drive);
12957 + buf = (char *) ((unsigned long) segment << 4);
12960 + case BIOSDISK_READ:
12961 + ret = grub_efidisk_read (d, sector, nsec, buf);
12963 + case BIOSDISK_WRITE:
12964 + ret = grub_efidisk_write (d, sector, nsec, buf);
12973 +/* Some utility functions to map GRUB devices with EFI devices. */
12975 +grub_efidisk_get_current_bdev_handle (void)
12977 + struct grub_efidisk_data *d;
12979 + d = get_device_from_drive (current_drive);
12983 + if (current_drive == GRUB_INVALID_DRIVE)
12986 + if (current_drive == cdrom_drive)
12987 + return d->handle;
12989 + if (! (current_drive & 0x80))
12990 + return d->handle;
12991 + /* If this is the whole disk, just return its own data. */
12992 + else if (current_partition == 0xFFFFFF)
12993 + return d->handle;
12994 + /* Otherwise, we must query the corresponding device to the firmware. */
12997 + struct grub_efidisk_data *devices;
12998 + grub_efi_handle_t handle = 0;
12999 + auto int find_partition (struct grub_efidisk_data *c);
13001 + int find_partition (struct grub_efidisk_data *c)
13003 + grub_efi_hard_drive_device_path_t hd;
13005 + grub_memcpy (&hd, c->last_device_path, sizeof (hd));
13007 + if ((GRUB_EFI_DEVICE_PATH_TYPE (c->last_device_path)
13008 + == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE)
13009 + && (GRUB_EFI_DEVICE_PATH_SUBTYPE (c->last_device_path)
13010 + == GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE)
13011 + && (part_start == hd.partition_start))
13013 + handle = c->handle;
13020 + devices = make_devices ();
13021 + iterate_child_devices (devices, d, find_partition);
13022 + free_devices (devices);
13032 +grub_get_drive_partition_from_bdev_handle (grub_efi_handle_t handle,
13033 + unsigned long *drive,
13034 + unsigned long *partition)
13036 + grub_efi_device_path_t *dp, *dp1;
13037 + struct grub_efidisk_data *d, *devices;
13039 + unsigned long part;
13040 + grub_efi_hard_drive_device_path_t hd;
13042 + int part_type, part_entry;
13043 + unsigned long partition_start, partition_len, part_offset, part_extoffset;
13044 + unsigned long gpt_offset;
13045 + int gpt_count, gpt_size;
13046 + auto int find_bdev (struct grub_efidisk_data *c);
13048 + int find_bdev (struct grub_efidisk_data *c)
13050 + if (! compare_device_paths (c->device_path, dp))
13052 + grub_memcpy (&hd, c->last_device_path, sizeof (hd));
13059 + dp = grub_efi_get_device_path (handle);
13066 + grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp1);
13067 + grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE(dp1);
13068 + grub_efi_uint16_t len = GRUB_EFI_DEVICE_PATH_LENGTH (dp);
13070 + if (type == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE &&
13071 + subtype == GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE)
13073 + dp1->type = GRUB_EFI_END_DEVICE_PATH_TYPE;
13074 + dp1->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE;
13075 + dp1->length[0] = 4;
13076 + dp1->length[1] = 0;
13079 + if (type == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE &&
13080 + subtype == GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE)
13082 + grub_efi_hard_drive_device_path_t temp_hd;
13083 + grub_memcpy (&temp_hd, dp1, len);
13084 + if (temp_hd.signature_type == 0 && temp_hd.mbr_type >= 0x10) {
13086 + * Apple Parttion Map CDs appear as hard drives with non-spec
13087 + * partition type fields. Fix them up.
13089 + dp1->type = GRUB_EFI_END_DEVICE_PATH_TYPE;
13090 + dp1->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE;
13091 + dp1->length[0] = 4;
13092 + dp1->length[1] = 0;
13096 + if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp1))
13099 + dp1 = GRUB_EFI_NEXT_DEVICE_PATH(dp1);
13103 + for (d = fd_devices; d; d = d->next, drv++)
13105 + if (! compare_device_paths (d->device_path, dp))
13107 + *partition = 0xFFFFFF;
13113 + drv = cdrom_drive;
13114 + if (cd_devices && ! compare_device_paths (cd_devices->device_path, dp))
13116 + *partition = 0xFFFFFF;
13122 + for (d = hd_devices; d; d = d->next, drv++)
13124 + if (! compare_device_paths (d->device_path, dp))
13126 + *partition = 0xFFFFFF;
13132 + devices = make_devices ();
13136 + for (d = hd_devices; d; d = d->next, drv++)
13138 + iterate_child_devices (devices, d, find_bdev);
13143 + free_devices (devices);
13148 + char buf[get_sector_size(drv)];
13150 + while (next_partition (drv, 0, &part, &part_type,
13151 + &partition_start, &partition_len,
13152 + &part_offset, &part_entry,
13153 + &part_extoffset, &gpt_offset, &gpt_count,
13157 + && partition_start == hd.partition_start)
13160 + *partition = part;
13169 +check_device (const char *device)
13171 + grub_efi_device_path_t *dp;
13173 + dp = device_path_from_utf8(device);
13182 +swap_devices (struct grub_efidisk_data *d0,
13183 + struct grub_efidisk_data *d1)
13185 + struct grub_efidisk_data tmp;
13190 + memcpy(&tmp, d1, sizeof(*d1));
13192 + memcpy(&d0->handle, &d1->handle, sizeof(d1->handle));
13193 + d0->device_path = d1->device_path;
13194 + d0->last_device_path = d1->last_device_path;
13195 + d0->block_io = d1->block_io;
13196 + d0->disk_io = d1->disk_io;
13198 + memcpy(d1->handle, tmp.handle, sizeof(tmp.handle));
13199 + d1->device_path = tmp.device_path;
13200 + d1->last_device_path = tmp.last_device_path;
13201 + d1->block_io = tmp.block_io;
13202 + d1->disk_io = tmp.disk_io;
13206 +compare_hd_device_paths(grub_efi_hard_drive_device_path_t *hd0,
13207 + grub_efi_hard_drive_device_path_t *hd1)
13209 + grub_efi_uint64_t x;
13212 + if ((x = hd1->partition_number - hd0->partition_number))
13215 + if ((x = hd1->partition_start - hd0->partition_start))
13219 + if ((x = hd1->partition_size - hd0->partition_size))
13222 + if ((x = hd1->signature_type - hd0->signature_type))
13225 + switch (hd0->signature_type)
13237 + x = grub_memcmp((char *)hd0->partition_signature,
13238 + (char *)hd1->partition_signature, sigsize);
13242 +static grub_efi_device_path_t *
13243 +get_parent_of_disk(grub_efi_device_path_t *hd)
13245 + grub_efi_uintn_t num_handles;
13246 + grub_efi_handle_t *handles;
13247 + grub_efi_handle_t *handle;
13248 + grub_efi_device_path_t *ret;
13250 + handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL,
13251 + &simple_file_system_guid,
13252 + 0, &num_handles);
13253 + for (handle = handles; num_handles--; handle++)
13255 + grub_efi_device_path_t *fsdp, *hddp;
13257 + fsdp = grub_efi_get_device_path (*handle);
13260 + hddp = find_last_device_path(fsdp);
13262 + if (compare_hd_device_paths((grub_efi_hard_drive_device_path_t *)hddp,
13263 + (grub_efi_hard_drive_device_path_t *)hd) == 0)
13265 + grub_efi_device_path_t *p;
13266 + ret = duplicate_device_path((grub_efi_device_path_t *)fsdp);
13269 + for (p = ret; ; p = GRUB_EFI_NEXT_DEVICE_PATH(p))
13271 + if (GRUB_EFI_END_ENTIRE_DEVICE_PATH(p))
13273 + if ((GRUB_EFI_DEVICE_PATH_TYPE(p) ==
13274 + GRUB_EFI_MEDIA_DEVICE_PATH_TYPE)
13275 + && (GRUB_EFI_DEVICE_PATH_SUBTYPE(p) ==
13276 + GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE))
13278 + p->type = GRUB_EFI_END_DEVICE_PATH_TYPE;
13279 + p->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE;
13280 + p->length[0] = 4;
13281 + p->length[1] = 0;
13292 +assign_device_name (int drive, const char *device)
13294 + grub_efi_device_path_t *dp0, *dp1;
13295 + struct grub_efidisk_data *devices;
13296 + struct grub_efidisk_data *d, *d0 = NULL, *d1 = NULL;
13299 + dp0 = device_path_from_utf8(device);
13303 + dp1 = get_parent_of_disk(dp0);
13308 + if (drive & 0x80)
13311 + devices = hd_devices;
13315 + devices = cd_devices;
13319 + for (d = devices; d; d = d->next)
13321 + if (!d->device_path)
13324 + if (++n == drive)
13328 + if (!(x = compare_device_paths(dp1, d->device_path)))
13333 + /* if they're the same node, that just means it's already at
13334 + * the right position. */
13337 + swap_devices(d0, d1);
13345 diff --git a/efi/efidp.c b/efi/efidp.c
13346 new file mode 100644
13347 index 0000000..d8ca03d
13352 + * GRUB -- GRand Unified Bootloader
13353 + * Copyright (C) 2010 Free Software Foundation, Inc.
13355 + * GRUB is free software; you can redistribute it and/or modify
13356 + * it under the terms of the GNU General Public License as published by
13357 + * the Free Software Foundation; either version 2 of the License, or
13358 + * (at your option) any later version.
13360 + * This program is distributed in the hope that it will be useful,
13361 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
13362 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13363 + * GNU General Public License for more details.
13365 + * You should have received a copy of the GNU General Public License
13366 + * along with GRUB; if not, write to the Free Software
13367 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
13370 +#include <grub/types.h>
13371 +#include <grub/misc.h>
13372 +#include <grub/efi/api.h>
13373 +#include <grub/efi/efi.h>
13374 +#include <grub/efi/misc.h>
13376 +#include <shared.h>
13378 +/* Duplicate a device path. */
13379 +grub_efi_device_path_t *
13380 +duplicate_device_path (const grub_efi_device_path_t *dp)
13382 + grub_efi_device_path_t *p;
13383 + grub_size_t total_size = 0;
13385 + for (p = (grub_efi_device_path_t *) dp;
13387 + p = GRUB_EFI_NEXT_DEVICE_PATH (p))
13389 + total_size += GRUB_EFI_DEVICE_PATH_LENGTH (p);
13390 + if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (p))
13394 + p = grub_malloc (total_size);
13398 + grub_memcpy (p, dp, total_size);
13402 +/* Return the device path node right before the end node. */
13403 +grub_efi_device_path_t *
13404 +find_last_device_path (const grub_efi_device_path_t *dp)
13406 + grub_efi_device_path_t *next, *p;
13408 + if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp))
13411 + for (p = (grub_efi_device_path_t *) dp, next = GRUB_EFI_NEXT_DEVICE_PATH (p);
13412 + ! GRUB_EFI_END_ENTIRE_DEVICE_PATH (next);
13413 + p = next, next = GRUB_EFI_NEXT_DEVICE_PATH (next))
13419 +/* Return the parent device path node. Must be freed */
13420 +grub_efi_device_path_t *
13421 +find_parent_device_path (const grub_efi_device_path_t *dp)
13423 + grub_efi_device_path_t *final, *dup;
13425 + dup = duplicate_device_path(dp);
13426 + final = find_last_device_path(dup);
13428 + final->type = GRUB_EFI_END_DEVICE_PATH_TYPE;
13429 + final->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE;
13434 +/* Compare device paths. */
13436 +compare_device_paths (const grub_efi_device_path_t *dp1,
13437 + const grub_efi_device_path_t *dp2)
13439 + if (! dp1 || ! dp2)
13440 + /* Return non-zero. */
13445 + grub_efi_uint8_t type1, type2;
13446 + grub_efi_uint8_t subtype1, subtype2;
13447 + grub_efi_uint16_t len1, len2;
13450 + type1 = GRUB_EFI_DEVICE_PATH_TYPE (dp1);
13451 + type2 = GRUB_EFI_DEVICE_PATH_TYPE (dp2);
13453 + if (type1 != type2)
13454 + return (int) type2 - (int) type1;
13456 + subtype1 = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp1);
13457 + subtype2 = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp2);
13459 + if (subtype1 != subtype2)
13460 + return (int) subtype1 - (int) subtype2;
13462 + len1 = GRUB_EFI_DEVICE_PATH_LENGTH (dp1);
13463 + len2 = GRUB_EFI_DEVICE_PATH_LENGTH (dp2);
13465 + if (len1 != len2)
13466 + return (int) len1 - (int) len2;
13468 + ret = grub_memcmp ((char *)dp1, (char *)dp2, len1);
13472 + if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp1))
13475 + dp1 = (grub_efi_device_path_t *) ((char *) dp1 + len1);
13476 + dp2 = (grub_efi_device_path_t *) ((char *) dp2 + len2);
13482 +/* Print the chain of Device Path nodes. This is mainly for debugging. */
13484 +grub_efi_print_device_path (grub_efi_device_path_t *dp)
13488 + grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp);
13489 + grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp);
13490 + grub_efi_uint16_t len = GRUB_EFI_DEVICE_PATH_LENGTH (dp);
13494 + case GRUB_EFI_END_DEVICE_PATH_TYPE:
13497 + case GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE:
13498 + grub_printf ("/EndEntire\n");
13499 + //grub_putchar ('\n');
13501 + case GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE:
13502 + grub_printf ("/EndThis\n");
13503 + //grub_putchar ('\n');
13506 + grub_printf ("/EndUnknown(%x)\n", (unsigned) subtype);
13511 + case GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE:
13514 + case GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE:
13516 + grub_efi_pci_device_path_t pci;
13517 + grub_memcpy (&pci, dp, len);
13518 + grub_printf ("/PCI(%x,%x)",
13519 + (unsigned) pci.function, (unsigned) pci.device);
13522 + case GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE:
13524 + grub_efi_pccard_device_path_t pccard;
13525 + grub_memcpy (&pccard, dp, len);
13526 + grub_printf ("/PCCARD(%x)",
13527 + (unsigned) pccard.function);
13530 + case GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE:
13532 + grub_efi_memory_mapped_device_path_t mmapped;
13533 + grub_memcpy (&mmapped, dp, len);
13534 + grub_printf ("/MMap(%x,%llx,%llx)",
13535 + (unsigned) mmapped.memory_type,
13536 + mmapped.start_address,
13537 + mmapped.end_address);
13540 + case GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE:
13542 + grub_efi_vendor_device_path_t vendor;
13543 + grub_memcpy (&vendor, dp, sizeof (vendor));
13544 + grub_printf ("/Vendor(%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x)",
13545 + (unsigned) vendor.vendor_guid.data1,
13546 + (unsigned) vendor.vendor_guid.data2,
13547 + (unsigned) vendor.vendor_guid.data3,
13548 + (unsigned) vendor.vendor_guid.data4[0],
13549 + (unsigned) vendor.vendor_guid.data4[1],
13550 + (unsigned) vendor.vendor_guid.data4[2],
13551 + (unsigned) vendor.vendor_guid.data4[3],
13552 + (unsigned) vendor.vendor_guid.data4[4],
13553 + (unsigned) vendor.vendor_guid.data4[5],
13554 + (unsigned) vendor.vendor_guid.data4[6],
13555 + (unsigned) vendor.vendor_guid.data4[7]);
13558 + case GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE:
13560 + grub_efi_controller_device_path_t controller;
13561 + grub_memcpy (&controller, dp, len);
13562 + grub_printf ("/Ctrl(%x)",
13563 + (unsigned) controller.controller_number);
13567 + grub_printf ("/UnknownHW(%x)", (unsigned) subtype);
13572 + case GRUB_EFI_ACPI_DEVICE_PATH_TYPE:
13575 + case GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE:
13577 + grub_efi_acpi_device_path_t acpi;
13578 + grub_memcpy (&acpi, dp, len);
13579 + grub_printf ("/ACPI(%x,%x)",
13580 + (unsigned) acpi.hid,
13581 + (unsigned) acpi.uid);
13584 + case GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE:
13586 + grub_efi_expanded_acpi_device_path_t eacpi;
13587 + grub_memcpy (&eacpi, dp, sizeof (eacpi));
13588 + grub_printf ("/ACPI(");
13590 + if (GRUB_EFI_EXPANDED_ACPI_HIDSTR (dp)[0] == '\0')
13591 + grub_printf ("%x,", (unsigned) eacpi.hid);
13593 + grub_printf ("%s,", GRUB_EFI_EXPANDED_ACPI_HIDSTR (dp));
13595 + if (GRUB_EFI_EXPANDED_ACPI_UIDSTR (dp)[0] == '\0')
13596 + grub_printf ("%x,", (unsigned) eacpi.uid);
13598 + grub_printf ("%s,", GRUB_EFI_EXPANDED_ACPI_UIDSTR (dp));
13600 + if (GRUB_EFI_EXPANDED_ACPI_CIDSTR (dp)[0] == '\0')
13601 + grub_printf ("%x)", (unsigned) eacpi.cid);
13603 + grub_printf ("%s)", GRUB_EFI_EXPANDED_ACPI_CIDSTR (dp));
13607 + grub_printf ("/UnknownACPI(%x)", (unsigned) subtype);
13612 + case GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE:
13615 + case GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE:
13617 + grub_efi_atapi_device_path_t atapi;
13618 + grub_memcpy (&atapi, dp, len);
13619 + grub_printf ("/ATAPI(%x,%x,%x)",
13620 + (unsigned) atapi.primary_secondary,
13621 + (unsigned) atapi.slave_master,
13622 + (unsigned) atapi.lun);
13625 + case GRUB_EFI_SCSI_DEVICE_PATH_SUBTYPE:
13627 + grub_efi_scsi_device_path_t scsi;
13628 + grub_memcpy (&scsi, dp, len);
13629 + grub_printf ("/SCSI(%x,%x)",
13630 + (unsigned) scsi.pun,
13631 + (unsigned) scsi.lun);
13634 + case GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE:
13636 + grub_efi_fibre_channel_device_path_t fc;
13637 + grub_memcpy (&fc, dp, len);
13638 + grub_printf ("/FibreChannel(%llx,%llx)",
13642 + case GRUB_EFI_1394_DEVICE_PATH_SUBTYPE:
13644 + grub_efi_1394_device_path_t firewire;
13645 + grub_memcpy (&firewire, dp, len);
13646 + grub_printf ("/1394(%llx)", firewire.guid);
13649 + case GRUB_EFI_USB_DEVICE_PATH_SUBTYPE:
13651 + grub_efi_usb_device_path_t usb;
13652 + grub_memcpy (&usb, dp, len);
13653 + grub_printf ("/USB(%x,%x)",
13654 + (unsigned) usb.parent_port_number,
13655 + (unsigned) usb.interface);
13658 + case GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE:
13660 + grub_efi_usb_class_device_path_t usb_class;
13661 + grub_memcpy (&usb_class, dp, len);
13662 + grub_printf ("/USBClass(%x,%x,%x,%x,%x)",
13663 + (unsigned) usb_class.vendor_id,
13664 + (unsigned) usb_class.product_id,
13665 + (unsigned) usb_class.device_class,
13666 + (unsigned) usb_class.device_subclass,
13667 + (unsigned) usb_class.device_protocol);
13670 + case GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE:
13672 + grub_efi_i2o_device_path_t i2o;
13673 + grub_memcpy (&i2o, dp, len);
13674 + grub_printf ("/I2O(%x)", (unsigned) i2o.tid);
13677 + case GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE:
13679 + grub_efi_mac_address_device_path_t mac;
13680 + grub_memcpy (&mac, dp, len);
13681 + grub_printf ("/MacAddr(%x:%x:%x:%x:%x:%x,%x)",
13682 + (unsigned) mac.mac_address[0],
13683 + (unsigned) mac.mac_address[1],
13684 + (unsigned) mac.mac_address[2],
13685 + (unsigned) mac.mac_address[3],
13686 + (unsigned) mac.mac_address[4],
13687 + (unsigned) mac.mac_address[5],
13688 + (unsigned) mac.if_type);
13691 + case GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE:
13693 + grub_efi_ipv4_device_path_t ipv4;
13694 + grub_memcpy (&ipv4, dp, len);
13695 + grub_printf ("/IPv4(%u.%u.%u.%u,%u.%u.%u.%u,%u,%u,%x,%x)",
13696 + (unsigned) ipv4.local_ip_address[0],
13697 + (unsigned) ipv4.local_ip_address[1],
13698 + (unsigned) ipv4.local_ip_address[2],
13699 + (unsigned) ipv4.local_ip_address[3],
13700 + (unsigned) ipv4.remote_ip_address[0],
13701 + (unsigned) ipv4.remote_ip_address[1],
13702 + (unsigned) ipv4.remote_ip_address[2],
13703 + (unsigned) ipv4.remote_ip_address[3],
13704 + (unsigned) ipv4.local_port,
13705 + (unsigned) ipv4.remote_port,
13706 + (unsigned) ipv4.protocol,
13707 + (unsigned) ipv4.static_ip_address);
13710 + case GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE:
13712 + grub_efi_ipv6_device_path_t ipv6;
13713 + grub_memcpy (&ipv6, dp, len);
13714 + grub_printf ("/IPv6(%x:%x:%x:%x:%x:%x:%x:%x,%x:%x:%x:%x:%x:%x:%x:%x,%u,%u,%x,%x)",
13715 + (unsigned) ipv6.local_ip_address[0],
13716 + (unsigned) ipv6.local_ip_address[1],
13717 + (unsigned) ipv6.local_ip_address[2],
13718 + (unsigned) ipv6.local_ip_address[3],
13719 + (unsigned) ipv6.local_ip_address[4],
13720 + (unsigned) ipv6.local_ip_address[5],
13721 + (unsigned) ipv6.local_ip_address[6],
13722 + (unsigned) ipv6.local_ip_address[7],
13723 + (unsigned) ipv6.remote_ip_address[0],
13724 + (unsigned) ipv6.remote_ip_address[1],
13725 + (unsigned) ipv6.remote_ip_address[2],
13726 + (unsigned) ipv6.remote_ip_address[3],
13727 + (unsigned) ipv6.remote_ip_address[4],
13728 + (unsigned) ipv6.remote_ip_address[5],
13729 + (unsigned) ipv6.remote_ip_address[6],
13730 + (unsigned) ipv6.remote_ip_address[7],
13731 + (unsigned) ipv6.local_port,
13732 + (unsigned) ipv6.remote_port,
13733 + (unsigned) ipv6.protocol,
13734 + (unsigned) ipv6.static_ip_address);
13737 + case GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE:
13739 + grub_efi_infiniband_device_path_t ib;
13740 + grub_memcpy (&ib, dp, len);
13741 + grub_printf ("/InfiniBand(%x,%llx,%llx,%llx)",
13742 + (unsigned) ib.port_gid[0], /* XXX */
13744 + ib.target_port_id,
13748 + case GRUB_EFI_UART_DEVICE_PATH_SUBTYPE:
13750 + grub_efi_uart_device_path_t uart;
13751 + grub_memcpy (&uart, dp, len);
13752 + grub_printf ("/UART(%llu,%u,%x,%x)",
13759 + case GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE:
13761 + grub_efi_vendor_messaging_device_path_t vendor;
13762 + grub_memcpy (&vendor, dp, sizeof (vendor));
13763 + grub_printf ("/Vendor(%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x)",
13764 + (unsigned) vendor.vendor_guid.data1,
13765 + (unsigned) vendor.vendor_guid.data2,
13766 + (unsigned) vendor.vendor_guid.data3,
13767 + (unsigned) vendor.vendor_guid.data4[0],
13768 + (unsigned) vendor.vendor_guid.data4[1],
13769 + (unsigned) vendor.vendor_guid.data4[2],
13770 + (unsigned) vendor.vendor_guid.data4[3],
13771 + (unsigned) vendor.vendor_guid.data4[4],
13772 + (unsigned) vendor.vendor_guid.data4[5],
13773 + (unsigned) vendor.vendor_guid.data4[6],
13774 + (unsigned) vendor.vendor_guid.data4[7]);
13778 + grub_printf ("/UnknownMessaging(%x)", (unsigned) subtype);
13783 + case GRUB_EFI_MEDIA_DEVICE_PATH_TYPE:
13786 + case GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE:
13788 + grub_efi_hard_drive_device_path_t hd;
13789 + grub_memcpy (&hd, dp, len);
13790 + grub_printf ("/HD(%u,%llx,%llx,%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x)",
13791 + hd.partition_number,
13792 + hd.partition_start,
13793 + hd.partition_size,
13794 + (unsigned) hd.partition_signature[3],
13795 + (unsigned) hd.partition_signature[2],
13796 + (unsigned) hd.partition_signature[1],
13797 + (unsigned) hd.partition_signature[0],
13798 + (unsigned) hd.partition_signature[5],
13799 + (unsigned) hd.partition_signature[4],
13800 + (unsigned) hd.partition_signature[7],
13801 + (unsigned) hd.partition_signature[6],
13802 + (unsigned) hd.partition_signature[9],
13803 + (unsigned) hd.partition_signature[8],
13804 + (unsigned) hd.partition_signature[10],
13805 + (unsigned) hd.partition_signature[11],
13806 + (unsigned) hd.partition_signature[12],
13807 + (unsigned) hd.partition_signature[13],
13808 + (unsigned) hd.partition_signature[14],
13809 + (unsigned) hd.partition_signature[15]);
13812 + case GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE:
13814 + grub_efi_cdrom_device_path_t cd;
13815 + grub_memcpy (&cd, dp, len);
13816 + grub_printf ("/CD(%u,%llx,%llx)",
13818 + cd.partition_start,
13819 + cd.partition_size);
13822 + case GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE:
13824 + grub_efi_vendor_media_device_path_t vendor;
13825 + grub_memcpy (&vendor, dp, sizeof (vendor));
13826 + grub_printf ("/Vendor(%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x)",
13827 + (unsigned) vendor.vendor_guid.data1,
13828 + (unsigned) vendor.vendor_guid.data2,
13829 + (unsigned) vendor.vendor_guid.data3,
13830 + (unsigned) vendor.vendor_guid.data4[0],
13831 + (unsigned) vendor.vendor_guid.data4[1],
13832 + (unsigned) vendor.vendor_guid.data4[2],
13833 + (unsigned) vendor.vendor_guid.data4[3],
13834 + (unsigned) vendor.vendor_guid.data4[4],
13835 + (unsigned) vendor.vendor_guid.data4[5],
13836 + (unsigned) vendor.vendor_guid.data4[6],
13837 + (unsigned) vendor.vendor_guid.data4[7]);
13840 + case GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE:
13842 + grub_efi_file_path_device_path_t *fp;
13843 + grub_uint8_t buf[(len - 4) * 2 + 1];
13844 + fp = (grub_efi_file_path_device_path_t *) dp;
13845 + *grub_utf16_to_utf8 (buf, fp->path_name,
13846 + (len - 4) / sizeof (grub_efi_char16_t))
13848 + grub_printf ("/File(%s)", buf);
13851 + case GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE:
13853 + grub_efi_protocol_device_path_t proto;
13854 + grub_memcpy (&proto, dp, sizeof (proto));
13855 + grub_printf ("/Protocol(%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x)",
13856 + (unsigned) proto.guid.data1,
13857 + (unsigned) proto.guid.data2,
13858 + (unsigned) proto.guid.data3,
13859 + (unsigned) proto.guid.data4[0],
13860 + (unsigned) proto.guid.data4[1],
13861 + (unsigned) proto.guid.data4[2],
13862 + (unsigned) proto.guid.data4[3],
13863 + (unsigned) proto.guid.data4[4],
13864 + (unsigned) proto.guid.data4[5],
13865 + (unsigned) proto.guid.data4[6],
13866 + (unsigned) proto.guid.data4[7]);
13870 + grub_printf ("/UnknownMedia(%x)", (unsigned) subtype);
13875 + case GRUB_EFI_BIOS_DEVICE_PATH_TYPE:
13878 + case GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE:
13880 + grub_efi_bios_device_path_t bios;
13881 + grub_memcpy (&bios, dp, sizeof (bios));
13882 + grub_printf ("/BIOS(%x,%x,%s)",
13883 + (unsigned) bios.device_type,
13884 + (unsigned) bios.status_flags,
13885 + (char *) (dp + 1));
13889 + grub_printf ("/UnknownBIOS(%x)", (unsigned) subtype);
13895 + grub_printf ("/UnknownType(%x,%x)\n",
13897 + (unsigned) subtype);
13902 + if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp))
13905 + dp = (grub_efi_device_path_t *) ((char *) dp + len);
13910 +dpname_matches(char *str, char *candidate)
13912 + grub_size_t clen = grub_strlen(candidate);
13913 + char scratch[clen + 2];
13916 + grub_strncpy(scratch, candidate, clen);
13917 + scratch[clen+1] = '\0';
13918 + if (scratch[clen-1] == '$')
13920 + scratch[--clen] = '\0';
13921 + rc = !grub_strncasecmp(str, scratch, clen);
13925 + grub_strncpy(scratch+clen, "(", 2);
13926 + clen = grub_strlen(scratch);
13927 + rc = !grub_strncasecmp(str, scratch, clen);
13932 +finish_param_parse(char *pos, char **end, char *tmp)
13934 + if (!pos || !end || !tmp)
13942 +get_next_param(char *pos, char **end, char *tmp)
13944 + char *comma = NULL;
13945 + char *openparen = NULL;
13946 + char *closeparen = NULL;
13948 + if (!pos || !end || !tmp)
13954 + openparen = grub_strchr(pos, '(');
13955 + if (openparen && *openparen)
13957 + pos = grub_strnchr(openparen + 1, ' ');
13958 + comma = grub_strchr(pos, ',');
13959 + closeparen = grub_strchr(pos, ')');
13961 + if (comma && *comma)
13967 + else if (closeparen && *closeparen)
13969 + *tmp = *closeparen;
13970 + *closeparen = '\0';
13971 + *end = closeparen;
13976 + comma = grub_strchr(pos, ',');
13977 + if (comma && *comma)
13979 + pos = grub_strnchr(comma + 1, ' ');
13980 + comma = grub_strchr(pos, ',');
13981 + closeparen = grub_strchr(pos, ')');
13983 + if (comma && *comma)
13989 + else if (closeparen && *closeparen)
13991 + *tmp = *closeparen;
13992 + *closeparen = '\0';
13993 + *end = closeparen;
13998 + closeparen = grub_strchr(pos, ')');
13999 + if (closeparen && *closeparen)
14000 + pos = grub_strnchr(closeparen + 1, ' ');
14005 +struct generic_device_path
14007 + grub_efi_uint8_t type;
14008 + grub_efi_uint8_t subtype;
14009 + grub_efi_uint16_t length;
14010 + } __attribute__((packed));
14012 +struct hd_media_device_path
14014 + grub_efi_uint8_t type;
14015 + grub_efi_uint8_t subtype;
14016 + grub_efi_uint16_t length;
14017 + grub_efi_uint32_t partition;
14018 + grub_efi_uint64_t startlba;
14019 + grub_efi_uint64_t size;
14020 + grub_efi_uint8_t signature[16];
14021 + grub_efi_uint8_t mbr_type;
14022 + grub_efi_uint8_t signature_type;
14023 + } __attribute__((packed));
14026 +parse_device_path_component(const char *orig_str, void *data)
14028 + int orig_str_len = strlen(orig_str) + 1;
14029 + char str[orig_str_len];
14034 + grub_strcpy(str, orig_str);
14035 + if (dpname_matches(str, "pci"))
14038 + else if (dpname_matches(str, "pccard"))
14041 + else if (dpname_matches(str, "mmap"))
14044 + else if (dpname_matches(str, "ctrl"))
14047 + else if (dpname_matches(str, "acpi"))
14050 + /* XXX what about _ADR? */
14051 + /* messaging device paths */
14052 + else if (dpname_matches(str, "atapi"))
14055 + else if (dpname_matches(str, "scsi"))
14058 + else if (dpname_matches(str, "fibrechannel"))
14061 + else if (dpname_matches(str, "1394"))
14064 + else if (dpname_matches(str, "usb"))
14067 + else if (dpname_matches(str, "sata"))
14070 + /* XXX what about usb-wwid */
14071 + /* XXX what about lun */
14072 + else if (dpname_matches(str, "usbclass"))
14075 + else if (dpname_matches(str, "i2o"))
14078 + else if (dpname_matches(str, "macaddr"))
14081 + else if (dpname_matches(str, "ipv4"))
14084 + else if (dpname_matches(str, "ipv6"))
14087 + /* XXX what about vlan */
14088 + else if (dpname_matches(str, "infiniband"))
14091 + else if (dpname_matches(str, "uart"))
14094 + else if (dpname_matches(str, "uartflowctrl"))
14097 + else if (dpname_matches(str, "sas"))
14100 + else if (dpname_matches(str, "iscsi"))
14103 + /* media device paths */
14104 + else if (dpname_matches(str, "hd"))
14106 + /* these look roughly like:
14107 + * HD(Partition,Type,Signature,Start, Size)
14109 + * - type may be optional. 1 or "MBR" means MBR. 2 or "GPT" means GPT.
14110 + * - start and size are optional
14111 + * - there can be random spaces
14113 + struct hd_media_device_path hddp;
14114 + unsigned long tmpul;
14115 + char *end = NULL, c;
14116 + char tmps[19] = "0x";
14121 + hddp.type = GRUB_EFI_MEDIA_DEVICE_PATH_TYPE;
14122 + hddp.subtype = GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE;
14123 + hddp.length = ret;
14125 + //pos += grub_strcspn(pos, '(');
14126 + pos = get_next_param(pos, &end, &c);
14130 + finish_param_parse(pos, &end, &c);
14133 + grub_strncpy(tmps+2, pos, 16);
14136 + safe_parse_maxulong(&tmpsp, &tmpul);
14137 + hddp.partition = tmpul;
14139 + pos = get_next_param(pos, &end, &c);
14142 + grub_strcpy(tmps+2, pos);
14144 + safe_parse_maxulong(&tmpsp, &tmpul);
14145 + hddp.startlba = tmpul;
14147 + pos = get_next_param(pos, &end, &c);
14150 + grub_strcpy(tmps+2, pos);
14152 + safe_parse_maxulong(&tmpsp, &tmpul);
14153 + hddp.size = tmpul;
14155 + pos = get_next_param(pos, &end, &c);
14158 + if (!grub_strcmp(pos, "None"))
14160 + hddp.signature_type = 0;
14161 + grub_memset(hddp.signature, '\0', sizeof(hddp.signature));
14163 + else if (grub_strnlen(pos, 36) == 8)
14165 + grub_efi_uint32_t tmpu32;
14166 + grub_strncpy(tmps+2, pos, 8);
14169 + safe_parse_maxulong(&tmpsp, &tmpul);
14171 + hddp.signature_type = 1;
14172 + grub_memcpy(hddp.signature, &tmpu32, sizeof(tmpu32));
14174 + else if (grub_strnlen(pos, 36) == 36)
14176 + grub_efi_uint32_t tmpu32;
14177 + grub_efi_uint16_t tmpu16;
14178 + grub_efi_uint8_t tmpu8;
14180 + grub_strncpy(tmps+2, pos, 8);
14183 + safe_parse_maxulong(&tmpsp, &tmpul);
14185 + grub_memcpy(hddp.signature, &tmpu32, sizeof(tmpu32));
14187 + grub_strncpy(tmps+2, pos+9, 4);
14190 + safe_parse_maxulong(&tmpsp, &tmpul);
14192 + grub_memcpy(hddp.signature + 4, &tmpu16, sizeof(tmpu16));
14194 + grub_strncpy(tmps+2, pos+14, 4);
14197 + safe_parse_maxulong(&tmpsp, &tmpul);
14199 + grub_memcpy(hddp.signature + 6, &tmpu16, sizeof(tmpu16));
14201 + /* these are displayed like a u16, but they're a u8. thanks. */
14202 + grub_strncpy(tmps+2, pos+19, 2);
14205 + safe_parse_maxulong(&tmpsp, &tmpul);
14207 + grub_memcpy(hddp.signature + 8, &tmpu8, sizeof(tmpu8));
14208 + grub_strncpy(tmps+2, pos+21, 2);
14211 + safe_parse_maxulong(&tmpsp, &tmpul);
14213 + grub_memcpy(hddp.signature + 9, &tmpu8, sizeof(tmpu8));
14215 + grub_strncpy(tmps+2, pos+24, 2);
14218 + safe_parse_maxulong(&tmpsp, &tmpul);
14220 + grub_memcpy(hddp.signature + 10, &tmpu8, sizeof(tmpu8));
14222 + grub_strncpy(tmps+2, pos+26, 2);
14225 + safe_parse_maxulong(&tmpsp, &tmpul);
14227 + grub_memcpy(hddp.signature + 11, &tmpu8, sizeof(tmpu8));
14229 + grub_strncpy(tmps+2, pos+28, 2);
14232 + safe_parse_maxulong(&tmpsp, &tmpul);
14234 + grub_memcpy(hddp.signature + 12, &tmpu8, sizeof(tmpu8));
14236 + grub_strncpy(tmps+2, pos+30, 2);
14239 + safe_parse_maxulong(&tmpsp, &tmpul);
14241 + grub_memcpy(hddp.signature + 13, &tmpu8, sizeof(tmpu8));
14243 + grub_strncpy(tmps+2, pos+32, 2);
14246 + safe_parse_maxulong(&tmpsp, &tmpul);
14248 + grub_memcpy(hddp.signature + 14, &tmpu8, sizeof(tmpu8));
14250 + grub_strncpy(tmps+2, pos+34, 2);
14253 + safe_parse_maxulong(&tmpsp, &tmpul);
14255 + grub_memcpy(hddp.signature + 15, &tmpu8, sizeof(tmpu8));
14257 + hddp.signature_type = 2;
14262 + hddp.mbr_type = hddp.signature_type;
14265 + grub_memcpy(data, &hddp, sizeof(hddp));
14267 + else if (dpname_matches(str, "cd"))
14270 + else if (dpname_matches(str, "file"))
14273 + else if (dpname_matches(str, "protocol"))
14276 + /* what about piwg firmware file? */
14277 + /* what about piwg firmware volume? */
14278 + /* what about relative offset media */
14279 + else if (dpname_matches(str, "bios"))
14282 + /* This is the end beautiful friend */
14283 + else if (dpname_matches(str, "EndEntire$"))
14285 + struct generic_device_path gdp = {
14286 + .type = GRUB_EFI_END_DEVICE_PATH_TYPE,
14287 + .subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE,
14292 + grub_memmove(data, &gdp, sizeof(gdp));
14294 + else if (dpname_matches(str, "EndThis$"))
14296 + struct generic_device_path gdp = {
14297 + .type = GRUB_EFI_END_DEVICE_PATH_TYPE,
14298 + .subtype = GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE,
14303 + grub_memmove(data, &gdp, sizeof(gdp));
14305 + else if (dpname_matches(str, "EndUnknown$"))
14307 + struct generic_device_path gdp = {
14308 + .type = GRUB_EFI_END_DEVICE_PATH_TYPE,
14309 + .subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE,
14314 + grub_memmove(data, &gdp, sizeof(gdp));
14316 + /* handle anything we didn't recognize */
14317 + else if (dpname_matches(str, "vendor"))
14319 + /* needs to handle:
14321 + * 2) messaging vendor
14322 + * 3) media vendor
14332 +grub_efi_device_path_t *
14333 +device_path_from_utf8 (const char *device)
14335 + grub_size_t device_len;
14336 + grub_efi_device_path_t *dp = NULL;
14338 + device_len = parse_device_path_component(device, dp);
14339 + device_len += parse_device_path_component("EndEntire", dp);
14340 + dp = grub_malloc(device_len);
14343 + device_len = parse_device_path_component(device, dp);
14344 + device_len += parse_device_path_component("EndEntire",
14345 + (void *)((unsigned long)dp + device_len));
14350 diff --git a/efi/efigraph.c b/efi/efigraph.c
14351 new file mode 100644
14352 index 0000000..6905e07
14354 +++ b/efi/efigraph.c
14356 +/* efigraph.c - EFI "graphics output" support for GRUB/EFI */
14358 + * GRUB -- GRand Unified Bootloader
14359 + * Copyright 2007 Red Hat, Inc.
14360 + * Copyright (C) 2007 Intel Corp.
14361 + * Copyright (C) 2001,2002 Red Hat, Inc.
14362 + * Portions copyright (C) 2000 Conectiva, Inc.
14364 + * This program is free software; you can redistribute it and/or modify
14365 + * it under the terms of the GNU General Public License as published by
14366 + * the Free Software Foundation; either version 2 of the License, or
14367 + * (at your option) any later version.
14369 + * This program is distributed in the hope that it will be useful,
14370 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
14371 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14372 + * GNU General Public License for more details.
14374 + * You should have received a copy of the GNU General Public License
14375 + * along with this program; if not, write to the Free Software
14376 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
14379 +#ifdef SUPPORT_GRAPHICS
14381 +#include <grub/misc.h>
14382 +#include <grub/types.h>
14383 +#include <grub/cpu/linux.h>
14384 +#include <grub/efi/api.h>
14385 +#include <grub/efi/efi.h>
14386 +#include <grub/efi/misc.h>
14389 +#include <shared.h>
14390 +#include <graphics.h>
14392 +#include "graphics.h"
14395 +#define dbgdelay(_f, _l) ({\
14396 + if (debug_graphics) { \
14398 + grub_efi_stall(1000); \
14399 + } while (console_getkey() < 0); \
14403 +#define dprintf(format, args...) ({ \
14404 + if (debug_graphics) { \
14405 + struct term_entry *_tt = current_term; \
14406 + current_term = term_table; \
14407 + grub_printf(format, ##args); \
14408 + current_term = _tt; \
14412 +struct grub_pixel_info
14415 + char depth_bytes;
14416 + unsigned char red_size;
14417 + unsigned char red_pos;
14418 + unsigned char green_size;
14419 + unsigned char green_pos;
14420 + unsigned char blue_size;
14421 + unsigned char blue_pos;
14422 + unsigned char reserved_size;
14423 + unsigned char reserved_pos;
14427 +typedef struct grub_pixel_info grub_pixel_info_t;
14430 +static grub_efi_guid_t graphics_output_guid = GRUB_EFI_GRAPHICS_OUTPUT_GUID;
14431 +static grub_efi_guid_t pci_io_guid = GRUB_EFI_PCI_IO_GUID;
14434 +#define MIN(x,y) ( ((x) < (y)) ? (x) : (y))
14437 +#define MAX(x,y) ( ((x) < (y)) ? (y) : (x))
14440 +#define pixel_equal(x,y) ((x).bgrr.red == (y).bgrr.red && \
14441 + (x).bgrr.green == (y).bgrr.green && \
14442 + (x).bgrr.blue == (y).bgrr.blue && \
14443 + (x).bgrr.reserved == (y).bgrr.reserved)
14445 +struct video_mode {
14446 + grub_efi_uint32_t number;
14447 + grub_efi_uintn_t size;
14448 + grub_efi_graphics_output_mode_information_t *info;
14451 +#define MAX_PALETTE 16
14453 + struct graphics_backend *backend;
14454 + grub_efi_graphics_output_t *output_intf;
14455 + struct video_mode **modes;
14457 + grub_efi_uint32_t text_mode;
14458 + grub_efi_uint32_t graphics_mode;
14459 + grub_pixel_info_t pixel_info;
14460 + enum { TEXT, GRAPHICS } current_mode;
14462 + position_t screen_size;
14463 + position_t screen_pos;
14465 + struct bltbuf *background;
14467 + grub_efi_graphics_output_pixel_t palette[MAX_PALETTE + 1];
14470 +#define RGB(r,g,b) { .bgrr.red = r, .bgrr.green = g, .bgrr.blue = b }
14472 +static grub_efi_graphics_output_pixel_t cga_colors[] = {
14473 + RGB(0x00,0x00,0x00), // 0 Black
14474 + RGB(0x7f,0x00,0x00), // 1 Dark Red
14475 + RGB(0x00,0x7f,0x00), // 2 Dark Green
14476 + RGB(0x7f,0x7f,0x00), // 3 Dark Yellow
14477 + RGB(0x00,0x00,0x7f), // 4 Dark Blue
14478 + RGB(0x7f,0x00,0x7f), // 5 Dark Magenta
14479 + RGB(0x00,0x7f,0x7f), // 6 Dark Cyan
14480 + RGB(0xc0,0xc0,0xc0), // 7 Light Grey
14481 + RGB(0x7f,0x7f,0x7f), // 8 Dark Grey
14482 + RGB(0xff,0x00,0x00), // 9 Red
14483 + RGB(0x00,0xff,0x00), // 10 Green
14484 + RGB(0xff,0xff,0x00), // 11 Yellow
14485 + RGB(0x00,0x00,0xff), // 12 Blue
14486 + RGB(0xff,0x00,0xff), // 13 Magenta
14487 + RGB(0x00,0xff,0xff), // 14 Cyan
14488 + RGB(0xff,0xff,0xff), // 15 White
14489 + RGB(0xff,0xff,0xff), // 16 Also white ;)
14492 +static const int n_cga_colors = sizeof (cga_colors) / sizeof (cga_colors[0]);
14495 +find_bits (unsigned long mask, unsigned char *first,
14496 + unsigned char* len)
14498 + unsigned char bit_pos = 0, bit_len = 0;
14503 + while (! (mask & 0x1)) {
14504 + mask = mask >> 1;
14507 + while (mask & 0x1) {
14508 + mask = mask >> 1;
14511 + *first = bit_pos;
14515 +static grub_efi_graphics_output_mode_information_t *
14516 +get_graphics_mode_info_for_mode(struct eg *eg, int mode)
14520 + for (i = 0; i < eg->max_mode; i++) {
14521 + if (eg->modes[i] == NULL)
14523 + if (eg->modes[i]->number == mode)
14524 + return eg->modes[i]->info;
14529 +static grub_efi_graphics_output_mode_information_t *
14530 +get_graphics_mode_info(struct eg *eg)
14532 + return get_graphics_mode_info_for_mode(eg, eg->graphics_mode);
14536 +print_mode_info(struct video_mode *mode)
14538 + grub_efi_graphics_output_mode_information_t *info = mode->info;
14539 + dprintf("mode %d (%dx%d, pitch %d, ",
14541 + info->horizontal_resolution,
14542 + info->vertical_resolution,
14543 + info->pixels_per_scan_line);
14544 + switch(info->pixel_format) {
14545 + case GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR:
14546 + dprintf("rgbr 8bpc");
14548 + case GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR:
14549 + dprintf("bgrr 8bpc");
14551 + case GRUB_EFI_PIXEL_BIT_MASK:
14552 + dprintf("bitmask color");
14554 + case GRUB_EFI_PIXEL_BLT_ONLY:
14555 + dprintf("blt only");
14559 + if (info->pixel_format == GRUB_EFI_PIXEL_BIT_MASK) {
14560 + dprintf("red: %08x green: %08x blue: %08x res: %08x\n",
14561 + info->pixel_information.red_mask,
14562 + info->pixel_information.green_mask,
14563 + info->pixel_information.blue_mask,
14564 + info->pixel_information.reserved_mask);
14569 +set_kernel_params(struct graphics_backend *backend,
14570 + struct linux_kernel_params *params)
14574 + if (!backend || !backend->priv)
14577 + eg = backend->priv;
14578 + grub_efi_graphics_output_t *gop_intf = NULL;
14579 + grub_efi_graphics_output_mode_t *gop_mode = NULL;
14580 + grub_efi_status_t efi_status = GRUB_EFI_SUCCESS;
14581 + grub_efi_graphics_output_mode_information_t *gop_info = NULL;
14582 + grub_efi_uintn_t size;
14584 + gop_intf = grub_efi_locate_protocol (&graphics_output_guid, NULL);
14585 + if (gop_intf == NULL)
14588 + gop_mode = gop_intf->mode;
14590 + efi_status = Call_Service_4 (gop_intf->query_mode,
14591 + gop_intf, gop_mode->mode, &size, &gop_info);
14594 + if (efi_status == GRUB_EFI_SUCCESS) {
14595 + /* No VBE on EFI. */
14596 + params->lfb_width = gop_info->horizontal_resolution;
14597 + params->lfb_height = gop_info->vertical_resolution;
14598 + params->lfb_base = gop_mode->frame_buffer_base;
14599 + params->lfb_size = gop_mode->frame_buffer_size;
14600 + params->lfb_pages = 1;
14601 + params->vesapm_segment = 0;
14602 + params->vesapm_offset = 0;
14603 + params->vesa_attrib = 0;
14604 + if (gop_info->pixel_format == GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR) {
14605 + params->lfb_depth = 32;
14606 + params->red_mask_size = 8;
14607 + params->red_field_pos = 0;
14608 + params->green_mask_size = 8;
14609 + params->green_field_pos = 8;
14610 + params->blue_mask_size = 8;
14611 + params->blue_field_pos = 16;
14612 + params->reserved_mask_size = 8;
14613 + params->reserved_field_pos = 24;
14614 + params->lfb_line_len = gop_info->pixels_per_scan_line * 4;
14615 + } else if (gop_info->pixel_format ==
14616 + GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR) {
14617 + params->lfb_depth = 32;
14618 + params->red_mask_size = 8;
14619 + params->red_field_pos = 16;
14620 + params->green_mask_size = 8;
14621 + params->green_field_pos = 8;
14622 + params->blue_mask_size = 8;
14623 + params->blue_field_pos = 0;
14624 + params->reserved_mask_size = 8;
14625 + params->reserved_field_pos = 24;
14626 + params->lfb_line_len = gop_info->pixels_per_scan_line * 4;
14627 + } else if (gop_info->pixel_format == GRUB_EFI_PIXEL_BIT_MASK) {
14628 + find_bits (gop_info->pixel_information.red_mask,
14629 + ¶ms->red_field_pos, ¶ms->red_mask_size);
14630 + find_bits (gop_info->pixel_information.green_mask,
14631 + ¶ms->green_field_pos, ¶ms->green_mask_size);
14632 + find_bits (gop_info->pixel_information.blue_mask,
14633 + ¶ms->blue_field_pos, ¶ms->blue_mask_size);
14634 + find_bits (gop_info->pixel_information.reserved_mask,
14635 + ¶ms->reserved_field_pos, ¶ms->reserved_mask_size);
14636 + params->lfb_depth = params->red_mask_size
14637 + + params->green_mask_size
14638 + + params->blue_mask_size
14639 + + params->reserved_mask_size;
14640 + params->lfb_line_len =
14641 + (gop_info->pixels_per_scan_line * params->lfb_depth) / 8;
14643 + params->lfb_depth = 4;
14644 + params->red_mask_size = 0;
14645 + params->red_field_pos = 0;
14646 + params->green_mask_size = 0;
14647 + params->green_field_pos = 0;
14648 + params->blue_mask_size = 0;
14649 + params->blue_field_pos = 0;
14650 + params->reserved_mask_size = 0;
14651 + params->reserved_field_pos = 0;
14652 + params->lfb_line_len = params->lfb_width / 2;
14655 + params->video_cursor_x = 0;
14656 + params->video_cursor_y = 0;
14657 + params->video_page = 0;
14658 + params->video_mode = 0;
14659 + params->video_width = 0;
14660 + params->video_ega_bx = 0;
14661 + params->video_height = 0;
14662 + params->have_vga = 0x70;
14663 + params->font_size = 0;
14665 + params->video_cursor_x = grub_efi_system_table->con_out->mode->cursor_column;
14666 + params->video_cursor_y = grub_efi_system_table->con_out->mode->cursor_row;
14667 + params->video_page = 0; /* ??? */
14668 + params->video_mode = grub_efi_system_table->con_out->mode->mode;
14669 + params->video_width = (grub_console_getwh () >> 8);
14670 + params->video_ega_bx = 0;
14671 + params->video_height = (grub_console_getwh () & 0xff);
14672 + params->have_vga = VIDEO_TYPE_EFI;
14673 + params->font_size = 16; /* XXX */
14679 +pixel_to_rgb(grub_efi_graphics_output_pixel_t *pixel,
14680 + int *red, int *green, int *blue)
14682 + *red = pixel->bgrr.red;
14683 + *green = pixel->bgrr.green;
14684 + *blue = pixel->bgrr.blue;
14688 +rgb_to_pixel(int red, int green, int blue,
14689 + grub_efi_graphics_output_pixel_t *pixel)
14691 + pixel->bgrr.red = red;
14692 + pixel->bgrr.green = green;
14693 + pixel->bgrr.blue = blue;
14697 +position_to_phys(struct eg *eg, position_t *virt, position_t *phys)
14699 + phys->x = virt->x + eg->screen_pos.x;
14700 + phys->y = virt->y + eg->screen_pos.y;
14704 +abs_paddr(struct eg *eg, position_t *virt)
14707 + position_to_phys(eg, virt, &phys);
14708 + return phys.x + phys.y * eg->screen_size.x;
14712 + grub_efi_uintn_t width;
14713 + grub_efi_uintn_t height;
14714 + grub_efi_graphics_output_pixel_t pixbuf[];
14717 +static struct bltbuf *alloc_bltbuf(grub_efi_uintn_t width,
14718 + grub_efi_uintn_t height)
14720 + struct bltbuf *buf = NULL;
14721 + grub_efi_uintn_t pixbuf_size = width * height *
14722 + sizeof (grub_efi_graphics_output_pixel_t);
14724 + if (!(buf = grub_malloc(sizeof(buf->width) + sizeof(buf->height) +
14728 + buf->width = width;
14729 + buf->height = height;
14730 + grub_memset(buf->pixbuf, '\0', pixbuf_size);
14736 +hw_blt_pos_to_screen_pos(struct eg *eg, struct bltbuf *bltbuf,
14737 + position_t *bltpos, position_t *bltsz, position_t *pos)
14741 + position_to_phys(eg, pos, &phys);
14743 + Call_Service_10(eg->output_intf->blt, eg->output_intf, (void *)bltbuf->pixbuf,
14744 + GRUB_EFI_BLT_BUFFER_TO_VIDEO,
14745 + bltpos->x, bltpos->y,
14747 + bltsz->x, bltsz->y,
14752 +blt_pos_to_screen_pos(struct eg *eg, struct bltbuf *bltbuf,
14753 + position_t *bltpos, position_t *bltsz, position_t *pos)
14755 + grub_efi_graphics_output_mode_information_t *info = get_graphics_mode_info(eg);
14756 + grub_efi_graphics_output_pixel_t *pixel;
14758 + const int pxlstride = info->pixels_per_scan_line;
14759 + const int bytestride = pxlstride * sizeof (*pixel);
14761 + position_to_phys(eg, pos, &phys);
14763 + if (info->pixel_format == GRUB_EFI_PIXEL_BLT_ONLY || 1) {
14764 + hw_blt_pos_to_screen_pos(eg, bltbuf, bltpos, bltsz, pos);
14766 + } else if (info->pixel_format == GRUB_EFI_PIXEL_BIT_MASK) {
14768 + grub_pixel_info_t *pinfo = &eg->pixel_info;
14769 + const int maxpixels =
14770 + MIN(info->horizontal_resolution - pos->x, bltsz->x);
14772 + for (y = bltpos->y; y < bltpos->y + bltsz->y; y++, phys.y++) {
14773 + char raw_pixels[maxpixels * pinfo->depth_bytes];
14774 + char *fb = (char *)(unsigned long)eg->output_intf->mode->frame_buffer_base;
14777 + pixel = (void *)&bltbuf->pixbuf[y * bltbuf->width + bltpos->x];
14778 + fb += phys.y * pinfo->line_length + phys.x * pinfo->depth_bytes;
14780 + for (x = 0; x < maxpixels; x++) {
14781 + char depth_bytes = pinfo->depth_bytes;
14782 + char *raw_pixel = raw_pixels + x * depth_bytes;
14784 + int red, green, blue, color;
14788 + red = pixel[x].bgrr.red & 0x3f;
14789 + green = pixel[x].bgrr.green & 0x3f;
14790 + blue = pixel[x].bgrr.blue & 0x3f;
14791 + red = red * ((1 << pinfo->red_size) - 1) / 0x3f;
14792 + green = green * ((1 << pinfo->green_size) - 1) / 0x3f;
14793 + blue = blue * ((1 << pinfo->blue_size) - 1) / 0x3f;
14795 + red = pixel[x].bgrr.red;
14796 + green = pixel[x].bgrr.green;
14797 + blue = pixel[x].bgrr.blue;
14799 + red >>= 8 - pinfo->red_size;
14800 + green >>= 8 - pinfo->green_size;
14801 + blue >>= 8 - pinfo->blue_size;
14804 + color = (red << pinfo->red_pos) |
14805 + (green << pinfo->green_pos) |
14806 + (blue << pinfo->blue_pos);
14807 + colorp = (void *)&color;
14808 + while (depth_bytes--)
14809 + *raw_pixel++ = *colorp++;
14811 + memmove(fb, raw_pixels, maxpixels * pinfo->depth_bytes);
14816 + grub_pixel_info_t *pinfo = &eg->pixel_info;
14817 + const int maxpixels =
14818 + MIN(info->horizontal_resolution - pos->x, bltsz->x);
14820 + //char *line = &fb[phys.y * bytestride + phys.x * sizeof(*pixel)];
14821 + for (y = bltpos->y; y < bltpos->y + bltsz->y; y++, phys.y++) {
14822 + char raw_pixels[maxpixels * sizeof(*pixel)];
14823 + char *fb = (char *)(unsigned long)eg->output_intf->mode->frame_buffer_base;
14826 + pixel = (void *)&bltbuf->pixbuf[y * bltbuf->width + bltpos->x];
14827 + fb += phys.y * pinfo->line_length + phys.x * pinfo->depth_bytes;
14829 + if (info->pixel_format == GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR) {
14830 + memmove(raw_pixels, pixel, maxpixels * sizeof (*pixel));
14832 + } else if (info->pixel_format==GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR) {
14833 + grub_efi_graphics_output_pixel_t shadow[maxpixels];
14834 + for (x = 0; x < maxpixels; x++) {
14835 + shadow[x].rgbr.red = pixel[x].bgrr.red;
14836 + shadow[x].rgbr.green = pixel[x].bgrr.green;
14837 + shadow[x].rgbr.blue = pixel[x].bgrr.blue;
14840 + memmove(raw_pixels, shadow, maxpixels * sizeof (*pixel));
14841 + } else if (info->pixel_format == GRUB_EFI_PIXEL_BIT_MASK) {
14842 + for (x = 0; x < maxpixels; x++) {
14843 + char depth_bytes = pinfo->depth_bytes;
14844 + char *raw_pixel = raw_pixels + x * depth_bytes;
14846 + int red, green, blue, color;
14850 + red = pixel[x].bgrr.red & 0x3f;
14851 + green = pixel[x].bgrr.green & 0x3f;
14852 + blue = pixel[x].bgrr.blue & 0x3f;
14853 + red = red * ((1 << pinfo->red_size) - 1) / 0x3f;
14854 + green = green * ((1 << pinfo->green_size) - 1) / 0x3f;
14855 + blue = blue * ((1 << pinfo->blue_size) - 1) / 0x3f;
14857 + red = pixel[x].bgrr.red;
14858 + green = pixel[x].bgrr.green;
14859 + blue = pixel[x].bgrr.blue;
14861 + red >>= 8 - pinfo->red_size;
14862 + green >>= 8 - pinfo->green_size;
14863 + blue >>= 8 - pinfo->blue_size;
14866 + color = (red << pinfo->red_pos) |
14867 + (green << pinfo->green_pos) |
14868 + (blue << pinfo->blue_pos);
14869 + colorp = (void *)&color;
14870 + while (depth_bytes--)
14871 + *raw_pixel++ = *colorp++;
14874 + memmove(fb, raw_pixels, maxpixels * pinfo->depth_bytes);
14880 +blt_to_screen(struct eg *eg, struct bltbuf *bltbuf)
14883 + position_t addr = {0, 0};
14885 + position_to_phys(eg, &addr, &addr);
14887 + Call_Service_10(eg->output_intf->blt, eg->output_intf, bltbuf->pixbuf,
14888 + GRUB_EFI_BLT_BUFFER_TO_VIDEO,
14891 + bltbuf->width, bltbuf->height,
14894 + const int pxlstride = eg->output_intf->mode->info->pixels_per_scan_line;
14895 + position_t bltsz, bltpos = { 0, 0 }, pos = { 0, 0 };
14896 + bltsz.x = MIN(bltbuf->width, pxlstride);
14897 + bltsz.y = MIN(bltbuf->height, eg->output_intf->mode->info->vertical_resolution);
14899 + blt_pos_to_screen_pos(eg, bltbuf, &bltpos, &bltsz, &pos);
14904 +blt_to_screen_pos(struct eg *eg, struct bltbuf *bltbuf, position_t *pos)
14906 + position_t bltpos = {0, 0};
14907 + position_t bltsz = { bltbuf->width, bltbuf->height };
14908 + blt_pos_to_screen_pos(eg, bltbuf, &bltpos, &bltsz, pos);
14912 +save_video_mode(struct eg *eg, struct video_mode *mode)
14914 + grub_efi_status_t status;
14918 + status = Call_Service_4(eg->output_intf->query_mode, eg->output_intf,
14919 + mode->number, &mode->size, &mode->info);
14920 + return status == GRUB_EFI_SUCCESS;
14924 +get_screen_size(struct graphics_backend *backend, position_t *size)
14926 + struct eg *eg = backend->priv;
14927 + grub_efi_graphics_output_mode_information_t *info;
14929 + info = get_graphics_mode_info(eg);
14931 + size->x = info->horizontal_resolution;
14932 + size->y = info->vertical_resolution;
14936 +bltbuf_set_pixel(struct bltbuf *bltbuf, position_t *pos,
14937 + grub_efi_graphics_output_pixel_t *pixel)
14939 + if (pos->x < 0 || pos->x >= bltbuf->width)
14941 + if (pos->x < 0 || pos->y >= bltbuf->height)
14943 + grub_memmove(&bltbuf->pixbuf[pos->x + pos->y * bltbuf->width], pixel,
14948 +bltbuf_get_pixel(struct bltbuf *bltbuf, position_t *pos,
14949 + grub_efi_graphics_output_pixel_t *pixel)
14951 + if (bltbuf && pos->x < bltbuf->width && pos->y < bltbuf->height) {
14952 + grub_memmove(pixel, &bltbuf->pixbuf[pos->x + pos->y * bltbuf->width],
14955 + pixel->bgrr.red = 0x00;
14956 + pixel->bgrr.green = 0x00;
14957 + pixel->bgrr.blue = 0x00;
14962 +bltbuf_set_pixel_rgb(struct bltbuf *bltbuf, position_t *pos,
14963 + int red, int green, int blue)
14965 + grub_efi_graphics_output_pixel_t pixel;
14966 + rgb_to_pixel(red, green, blue, &pixel);
14967 + bltbuf_set_pixel(bltbuf, pos, &pixel);
14971 +bltbuf_set_pixel_idx(struct eg *eg, struct bltbuf *bltbuf,
14972 + position_t *pos, int idx)
14974 + bltbuf_set_pixel(bltbuf, pos, &eg->palette[idx]);
14978 +bltbuf_get_pixel_idx(struct bltbuf *bltbuf, position_t *pos, int *idx)
14980 + grub_efi_graphics_output_pixel_t pixel;
14982 + rgb_to_pixel(0, 0, 0, &pixel);
14983 + bltbuf_get_pixel(bltbuf, pos, &pixel);
14984 + for (*idx = 0; *idx < 16; (*idx)++) {
14985 + if (pixel_equal(cga_colors[*idx], pixel))
14990 +static struct bltbuf *
14991 +xpm_to_bltbuf(struct xpm *xpm)
14993 + struct bltbuf *bltbuf = NULL;
14996 + if (!(bltbuf = alloc_bltbuf(xpm->width, xpm->height)))
14999 + for (pos.y = 0; pos.y < xpm->height; pos.y++) {
15000 + for (pos.x = 0; pos.x < xpm->width; pos.x++) {
15002 + unsigned char idx;
15004 + idx = xpm_get_pixel_idx(xpm, pos.x, pos.y);
15005 + xpm_get_idx(xpm, idx, &xpl);
15007 + bltbuf_set_pixel_rgb(bltbuf, &pos, xpl.red, xpl.green, xpl.blue);
15015 +cursor(struct graphics_backend *backend, int set)
15019 + unsigned short *text;
15020 + position_t fpos, screensz;
15023 + eg = backend->priv;
15025 + if (set && !graphics_get_scroll())
15028 + text = graphics_get_text_buf();
15029 + graphics_get_font_position(&fpos);
15030 + graphics_get_screen_rowscols(&screensz);
15032 + offset = fpos.y * screensz.x + fpos.x;
15035 + text[offset] |= 0x0200;
15037 + graphics_clbl(fpos.x, fpos.y, 1, 1, 1);
15040 + text[offset] &= 0xfdff;
15043 +static void blank(struct graphics_backend *backend);
15046 +reset_screen_geometry(struct graphics_backend *backend)
15048 + struct eg *eg = backend->priv;
15049 + struct xpm *xpm = graphics_get_splash_xpm();
15050 + grub_efi_graphics_output_mode_information_t *info;
15051 + position_t screensz;
15053 + info = get_graphics_mode_info(eg);
15056 + eg->screen_pos.x =
15057 + (info->horizontal_resolution - xpm->width) / 2;
15058 + eg->screen_pos.y =
15059 + (info->vertical_resolution - xpm->height) / 2;
15061 + eg->screen_pos.x = 0;
15062 + eg->screen_pos.y = 0;
15066 + graphics_get_screen_rowscols(&screensz);
15067 + graphics_clbl(0, 0, screensz.x, screensz.y, 0);
15068 + graphics_clbl(0, 0, screensz.x, screensz.y, 1);
15072 +setxy(struct graphics_backend *backend, position_t *pos)
15078 + graphics_set_font_position(&fpos);
15082 +eg_getxy(struct graphics_backend *backend, position_t *pos)
15084 + graphics_get_font_position(pos);
15088 +draw_pixel(struct graphics_backend *backend, position_t *pos, pixel_t *pixel)
15090 + struct bltbuf *bltbuf = NULL;
15091 + grub_efi_graphics_output_pixel_t *eup = (grub_efi_graphics_output_pixel_t *)pixel;
15093 + bltbuf = alloc_bltbuf(1,1);
15097 + grub_memmove(&bltbuf->pixbuf[0], eup, sizeof (*eup));
15099 + blt_to_screen_pos(backend->priv, bltbuf, pos);
15101 + grub_free(bltbuf);
15105 +get_pixel_idx(struct graphics_backend *backend, int idx)
15107 + static grub_efi_graphics_output_pixel_t pixel;
15108 + struct eg *eg = backend->priv;
15109 + if (idx < 0 || idx > MAX_PALETTE)
15111 + pixel.bgrr.red = eg->palette[idx].bgrr.red;
15112 + pixel.bgrr.green = eg->palette[idx].bgrr.green;
15113 + pixel.bgrr.blue = eg->palette[idx].bgrr.blue;
15114 + return (pixel_t *)&pixel;
15118 +get_pixel_rgb(struct graphics_backend *backend, int red, int green, int blue)
15120 + static grub_efi_graphics_output_pixel_t pixel;
15121 + rgb_to_pixel(red, green, blue, &pixel);
15126 +set_palette(struct graphics_backend *backend, int idx,
15127 + int red, int green, int blue)
15129 + grub_efi_graphics_output_pixel_t pixel;
15130 + struct eg *eg = backend->priv;
15132 + if (idx > MAX_PALETTE)
15134 + rgb_to_pixel(red, green, blue, &pixel);
15135 + grub_memmove(&eg->palette[idx], &pixel, sizeof pixel);
15139 +blank(struct graphics_backend *backend)
15141 + struct eg *eg = backend->priv;
15142 + struct bltbuf *bltbuf;
15143 + position_t pos = {0, 0};
15144 + grub_efi_graphics_output_mode_information_t *info;
15145 + grub_efi_uintn_t x, y, i, j;
15146 + unsigned char r = 0 ,g = 0;
15148 + info = get_graphics_mode_info(eg);
15149 + x = info->horizontal_resolution;
15150 + y = info->vertical_resolution;
15152 + if (x == 0 || y == 0)
15155 + bltbuf = alloc_bltbuf(x, y);
15156 + for (j = 0; j < y; j++) {
15157 + if (debug_graphics && j % 16 == 0) {
15158 + g = g == 0 ? 7 : 0;
15159 + r = g == 0 ? 7 : 0;
15161 + for (i = 0; i < x; i++) {
15162 + if (debug_graphics && i % 16 == 0) {
15163 + g = g == 0 ? 7 : 0;
15164 + r = g == 0 ? 7 : 0;
15168 + bltbuf_set_pixel_rgb(bltbuf, &pos, r * 16, g * 16, 0x0);
15172 + blt_to_screen(eg, bltbuf);
15174 + grub_free(bltbuf);
15179 +draw_white_box(struct graphics_backend *backend)
15181 + struct eg *eg = backend->priv;
15182 + struct bltbuf *bltbuf;
15183 + position_t pos = {0, 0}, bltpos = {0, 0}, bltsz = {100,100};
15185 + bltbuf = alloc_bltbuf(bltsz.x, bltsz.y);
15186 + for (pos.y = 0; pos.y < bltsz.y; pos.y++) {
15187 + for (pos.x = 0; pos.x < bltsz.x; pos.x++) {
15188 + bltbuf_set_pixel_rgb(bltbuf, &pos, 0xff, 0xff, 0xff);
15192 + blt_pos_to_screen_pos(eg, bltbuf, &bltpos, &bltsz, &pos);
15195 + Call_Service_10(eg->output_intf->blt, eg->output_intf, bltbuf->pixbuf,
15196 + GRUB_EFI_BLT_BUFFER_TO_VIDEO, 0, 0, 100, 100, x, y, 0);
15199 + grub_free(bltbuf);
15203 +bltbuf_cp_bl(struct bltbuf *d, position_t dpos,
15204 + struct bltbuf *s, position_t spos)
15206 + grub_efi_graphics_output_pixel_t *dp, *sp;
15208 + const int xavail = MAX(0, s ? s->width - spos.x : 0);
15209 + const int xtotal = MAX(0, d->width - dpos.x);
15210 + const int xcp = MAX(0, MIN(xtotal, xavail));
15211 + const int xcl = MAX(0, xtotal - xcp);
15213 + const int yavail = MAX(0, s ? s->height - spos.y : 0);
15214 + const int ytotal = MAX(0, d->height - dpos.y);
15215 + const int ycp = MAX(0, MIN(ytotal, yavail));
15216 + const int ycl = MAX(0, ytotal - ycp);
15220 + for (y = 0; y < ytotal; y++) {
15221 + dp = &d->pixbuf[(dpos.y + y) * d->width + dpos.x];
15223 + if (y < yavail) {
15224 + sp = &s->pixbuf[(spos.y + y) * s->width + spos.x];
15225 + memmove(dp, sp, xcp * sizeof (*dp));
15226 + dp = &d->pixbuf[(dpos.y + y) * d->width + dpos.x + xcp];
15227 + memset(dp, '\0', xcl * sizeof (*dp));
15229 + memset(dp, '\0', xtotal * sizeof (*dp));
15234 +/* copy a region the size of bltbuf from the background into bltbuf,
15235 + * starting at offset bgpos
15238 +bltbuf_draw_bg(struct graphics_backend *backend, struct bltbuf *bltbuf,
15239 + position_t bgpos)
15241 + struct eg *eg = backend->priv;
15242 + position_t blpos = { 0, 0 };
15244 + bltbuf_cp_bl(bltbuf, blpos, eg->background, bgpos);
15248 +dbg_dump_palette(struct graphics_backend *backend)
15252 + if (!backend || !backend->priv)
15254 + eg = backend->priv;
15255 + if (!eg->palette)
15260 +is_shadow_pixel(position_t screensz, position_t textpos, position_t bitpos,
15261 + position_t fontsz)
15263 + unsigned short *text = graphics_get_text_buf();
15264 + const unsigned char *glyph;
15265 + position_t glyphpos = { textpos.x, textpos.y };
15266 + position_t glyphbit = { bitpos.x, bitpos.y };
15267 + unsigned short ch;
15269 + if (glyphbit.x == 0) {
15270 + glyphbit.x = fontsz.x;
15273 + if (glyphbit.y == 0) {
15274 + glyphbit.y = fontsz.y;
15280 + if (glyphpos.x < 0 || glyphpos.y < 0)
15283 + ch = text[glyphpos.y * screensz.x + glyphpos.x] & 0xff;
15284 + glyph = font8x16 + (ch << 4);
15285 + return glyph[glyphbit.y] & (1 << ((fontsz.x-1) - glyphbit.x));
15289 +bltbuf_draw_character(struct graphics_backend *backend,
15290 + struct bltbuf *bltbuf, /* the bltbuf to draw into */
15291 + position_t target, /* the position in the bltbuf to draw to */
15292 + position_t fontsz, /* the size of the font, in pixels */
15293 + position_t charpos, /* the position of the character in the text
15295 + position_t screensz, /* the size of the screen in characters */
15296 + unsigned short ch /* the character to draw, plus flags */
15299 + struct eg *eg = backend->priv;
15300 + position_t blpos;
15301 + position_t glyphpos;
15303 + blpos.y = target.y;
15304 + for (glyphpos.y = 0; glyphpos.y < fontsz.y; glyphpos.y++, blpos.y++) {
15305 + blpos.x = target.x;
15306 + for (glyphpos.x = 0; glyphpos.x < fontsz.x; glyphpos.x++, blpos.x++) {
15307 + int invert = (ch & 0x0100) != 0;
15308 + int set = (ch & 0x0200) != 0;
15309 + const unsigned char *glyph = font8x16 + ((ch & 0xff) << 4);
15310 + int bit = glyph[glyphpos.y] & (1 << ((fontsz.x-1) - glyphpos.x));
15315 + idx = bit ? 0 : 15;
15320 + if (is_shadow_pixel(screensz, charpos, glyphpos, fontsz) ||
15322 + idx = invert ? 15 : 0;
15325 + idx = bit ? 0 : 15;
15329 + bltbuf_set_pixel_idx(eg, bltbuf, &blpos, idx);
15335 +bltbuf_draw_text(struct graphics_backend *backend,
15336 + struct bltbuf *bltbuf, /* the buffer to draw into */
15337 + position_t screensz, /* the size of the screen in characters */
15338 + position_t fontsz, /* the size of the font in pixels */
15339 + position_t txtpos, /* the position of the text on the screen
15340 + (in characters) */
15341 + position_t txtsz /* the size of the block to fill in
15342 + (in characters) */
15345 + struct eg *eg = backend->priv;
15346 + unsigned short *text = graphics_get_text_buf();
15347 + position_t charpos;
15349 + for (charpos.y = txtpos.y; charpos.y < txtpos.y + txtsz.y; charpos.y++) {
15350 + for (charpos.x = txtpos.x; charpos.x < txtpos.x + txtsz.x; charpos.x++){
15351 + int offset = charpos.y * screensz.x + charpos.x;
15352 + position_t blpos = { (charpos.x-txtpos.x)*fontsz.x,
15353 + (charpos.y-txtpos.y)*fontsz.y };
15355 + bltbuf_draw_character(backend, bltbuf, blpos, fontsz, charpos,
15356 + screensz, text[offset]);
15362 +clbl(struct graphics_backend *backend, int col, int row, int width, int height,
15365 + struct eg *eg = backend->priv;
15368 + struct bltbuf *bltbuf;
15369 + position_t fontsz, blpos, blsz, screensz;
15370 + unsigned short *text;
15372 +// blank(backend);
15374 + xpm = graphics_get_splash_xpm();
15375 + if (xpm && !eg->background)
15376 + eg->background = xpm_to_bltbuf(xpm);
15378 + graphics_get_screen_rowscols(&screensz);
15379 + width = MIN(width, screensz.x - col);
15380 + height = MIN(height, screensz.y - row);
15381 + graphics_get_font_size(&fontsz);
15383 + blsz.x = width * fontsz.x;
15384 + blsz.y = height * fontsz.y;
15386 + bltbuf = alloc_bltbuf(blsz.x, blsz.y);
15390 + blsz.x = col * fontsz.x;
15391 + blsz.y = row * fontsz.y;
15393 + text = graphics_get_text_buf();
15394 + bltbuf_draw_bg(backend, bltbuf, blsz);
15402 + bltbuf_draw_text(backend, bltbuf, screensz, fontsz, blpos, blsz);
15405 + blpos.x = col * fontsz.x;
15406 + blpos.y = row * fontsz.y;
15408 + blt_to_screen_pos(eg, bltbuf, &blpos);
15412 +setup_cga_palette(struct eg *eg)
15414 + rgb_to_pixel(0x00,0x00,0x00, &eg->palette[0]); // 0 Black
15415 + rgb_to_pixel(0x7f,0x00,0x00, &eg->palette[1]); // 1 Dark Red
15416 + rgb_to_pixel(0x00,0x7f,0x00, &eg->palette[2]); // 2 Dark Green
15417 + rgb_to_pixel(0x7f,0x7f,0x00, &eg->palette[3]); // 3 Dark Yellow
15418 + rgb_to_pixel(0x00,0x00,0x7f, &eg->palette[4]); // 4 Dark Blue
15419 + rgb_to_pixel(0x7f,0x00,0x7f, &eg->palette[5]); // 5 Dark Magenta
15420 + rgb_to_pixel(0x00,0x7f,0x7f, &eg->palette[6]); // 6 Dark Cyan
15421 + rgb_to_pixel(0xc0,0xc0,0xc0, &eg->palette[7]); // 7 Light Grey
15422 + rgb_to_pixel(0x7f,0x7f,0x7f, &eg->palette[8]); // 8 Dark Grey
15423 + rgb_to_pixel(0xff,0x00,0x00, &eg->palette[9]); // 9 Red
15424 + rgb_to_pixel(0x00,0xff,0x00, &eg->palette[10]); // 10 Green
15425 + rgb_to_pixel(0xff,0xff,0x00, &eg->palette[11]); // 11 Yellow
15426 + rgb_to_pixel(0x00,0x00,0xff, &eg->palette[12]); // 12 Blue
15427 + rgb_to_pixel(0xff,0x00,0xff, &eg->palette[13]); // 13 Magenta
15428 + rgb_to_pixel(0x00,0xff,0xff, &eg->palette[14]); // 14 Cyan
15429 + rgb_to_pixel(0xff,0xff,0xff, &eg->palette[15]); // 15 White
15430 + rgb_to_pixel(0xff,0xff,0xff, &eg->palette[16]); // 16 Also white ;)
15433 +static grub_efi_status_t
15434 +set_video_mode(struct eg *eg, int mode)
15436 + grub_efi_status_t efi_status;
15437 + efi_status = Call_Service_2(eg->output_intf->set_mode, eg->output_intf, mode);
15438 + return efi_status;
15441 +static void disable(struct graphics_backend *backend)
15448 + eg = backend->priv;
15449 + if (!eg || eg->current_mode != GRAPHICS)
15455 + set_video_mode(eg, eg->text_mode);
15456 + grub_efi_set_text_mode(1);
15458 + eg->current_mode = TEXT;
15462 +fill_pixel_info (grub_pixel_info_t *pixel_info,
15463 + grub_efi_graphics_output_mode_information_t *mode_info)
15465 + if (mode_info->pixel_format == GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR)
15467 + pixel_info->depth_bits = 32;
15468 + pixel_info->depth_bytes = 4;
15469 + pixel_info->red_size = 8;
15470 + pixel_info->red_pos = 0;
15471 + pixel_info->green_size = 8;
15472 + pixel_info->green_pos = 8;
15473 + pixel_info->blue_size = 8;
15474 + pixel_info->blue_pos = 16;
15475 + pixel_info->reserved_size = 8;
15476 + pixel_info->reserved_pos = 24;
15477 + pixel_info->line_length = mode_info->pixels_per_scan_line * 4;
15479 + else if (mode_info->pixel_format == GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR)
15481 + pixel_info->depth_bits = 32;
15482 + pixel_info->depth_bytes = 4;
15483 + pixel_info->red_size = 8;
15484 + pixel_info->red_pos = 16;
15485 + pixel_info->green_size = 8;
15486 + pixel_info->green_pos = 8;
15487 + pixel_info->blue_size = 8;
15488 + pixel_info->blue_pos = 0;
15489 + pixel_info->reserved_size = 8;
15490 + pixel_info->reserved_pos = 24;
15491 + pixel_info->line_length = mode_info->pixels_per_scan_line * 4;
15493 + else if (mode_info->pixel_format == GRUB_EFI_PIXEL_BIT_MASK)
15495 + find_bits (mode_info->pixel_information.red_mask,
15496 + &pixel_info->red_pos, &pixel_info->red_size);
15497 + find_bits (mode_info->pixel_information.green_mask,
15498 + &pixel_info->green_pos, &pixel_info->green_size);
15499 + find_bits (mode_info->pixel_information.blue_mask,
15500 + &pixel_info->blue_pos, &pixel_info->blue_size);
15501 + find_bits (mode_info->pixel_information.reserved_mask,
15502 + &pixel_info->reserved_pos, &pixel_info->reserved_size);
15503 + pixel_info->depth_bits = pixel_info->red_size + pixel_info->green_size +
15504 + pixel_info->blue_size + pixel_info->reserved_size;
15505 + pixel_info->depth_bytes = (pixel_info->depth_bits + 7) / 8;
15506 + pixel_info->line_length = mode_info->pixels_per_scan_line *
15507 + pixel_info->depth_bytes;
15515 + * 0 = prefer neither
15519 +modecmp_helper(struct eg *eg, struct video_mode *amode, struct video_mode *bmode)
15521 + grub_efi_graphics_output_mode_information_t *a = amode->info;
15522 + grub_efi_graphics_output_mode_information_t *b = bmode->info;
15524 + if (a != NULL && b == NULL)
15526 + if (a == NULL && b == NULL)
15528 + if (a == NULL && b != NULL)
15532 + if (amode->number == eg->graphics_mode && bmode->number != eg->graphics_mode)
15534 + if (amode->number == eg->graphics_mode && bmode->number == eg->graphics_mode)
15536 + if (amode->number != eg->graphics_mode && bmode->number == eg->graphics_mode)
15541 + /* kernel doesn't deal with blt only modes, so prefer against them. */
15542 + if (a->pixel_format != GRUB_EFI_PIXEL_BLT_ONLY &&
15543 + b->pixel_format == GRUB_EFI_PIXEL_BLT_ONLY)
15545 + if (b->pixel_format != GRUB_EFI_PIXEL_BLT_ONLY &&
15546 + a->pixel_format == GRUB_EFI_PIXEL_BLT_ONLY)
15549 + /* XXX PJFIX there's something wrong with what we're passing to the
15550 + * kernel for stride in the bgrr/rgbr modes, and I haven't figured out
15551 + * just what yet, so for now, prefer bitmask modes.
15553 + if (a->pixel_format == GRUB_EFI_PIXEL_BIT_MASK &&
15554 + b->pixel_format != GRUB_EFI_PIXEL_BIT_MASK)
15556 + if (a->pixel_format != GRUB_EFI_PIXEL_BIT_MASK &&
15557 + b->pixel_format == GRUB_EFI_PIXEL_BIT_MASK)
15560 + if (a->pixel_format == GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR &&
15561 + b->pixel_format != GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR)
15563 + if (a->pixel_format != GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR &&
15564 + b->pixel_format == GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR)
15567 + if (a->pixel_format == GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR &&
15568 + b->pixel_format != GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR)
15570 + if (a->pixel_format != GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR &&
15571 + b->pixel_format == GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR)
15574 + if (a->horizontal_resolution > b->horizontal_resolution &&
15575 + a->vertical_resolution > b->vertical_resolution)
15577 + if (a->horizontal_resolution < b->horizontal_resolution &&
15578 + a->vertical_resolution < b->vertical_resolution)
15584 +modecmp(struct eg *eg, struct video_mode *amode, struct video_mode *bmode)
15588 + grub_efi_graphics_output_mode_information_t *a = amode->info;
15589 + grub_efi_graphics_output_mode_information_t *b = bmode->info;
15591 + rc = modecmp_helper(eg, amode, bmode);
15593 + grub_printf("comparing nodes:\n");
15594 + print_mode_info(amode);
15595 + print_mode_info(bmode);
15597 + grub_printf("result: a > b\n");
15599 + grub_printf("result: a < b\n");
15601 + grub_printf("result: a == b\n");
15603 + //dbgdelay(__FILE__, __LINE__);
15609 +modeswap(struct video_mode *amode, struct video_mode *bmode)
15611 + struct video_mode tmp;
15613 + memcpy(&tmp, amode, sizeof (tmp));
15614 + memcpy(amode, bmode, sizeof (tmp));
15615 + memcpy(bmode, &tmp, sizeof(tmp));
15619 +sort_modes(struct eg *eg, int p, int r)
15621 + struct video_mode **modes = eg->modes;
15624 + for (i = 0; i < eg->max_mode; i++) {
15625 + for (j = i + 1; j < eg->max_mode; j++) {
15626 + if (modecmp(eg, modes[j], modes[i]) < 0)
15627 + modeswap(modes[j], modes[i]);
15633 +try_enable(struct graphics_backend *backend)
15635 + struct eg *eg = backend->priv;
15636 + grub_efi_status_t efi_status = GRUB_EFI_UNSUPPORTED;
15639 + if (eg->text_mode == 0xffffffff) {
15640 + grub_efi_set_text_mode(1);
15641 + eg->text_mode = eg->output_intf->mode->mode;
15644 + if (eg->graphics_mode == 0xffffffff) {
15645 + grub_efi_graphics_output_mode_information_t *info;
15647 + if (!graphics_alloc_text_buf())
15650 + grub_efi_set_text_mode(0);
15651 + eg->graphics_mode = eg->output_intf->mode->mode;
15652 + grub_efi_set_text_mode(1);
15654 + dprintf("graphics mode is %d\n", eg->graphics_mode);
15655 + /* this is okay here because we haven't sorted yet.*/
15656 + print_mode_info(eg->modes[eg->graphics_mode]);
15657 + dprintf("text mode is %d\n", eg->text_mode);
15658 + print_mode_info(eg->modes[eg->text_mode]);
15661 + sort_modes(eg, 0, eg->max_mode-1);
15664 + for (i = eg->max_mode - 1; i >= 0; i--)
15665 + print_mode_info(eg->modes[i]);
15666 + dbgdelay(__FILE__, __LINE__);
15669 + efi_status = GRUB_EFI_UNSUPPORTED;
15671 + for (i = eg->max_mode - 1; i >= 0; i--) {
15672 + if (!eg->modes[i])
15675 + info = eg->modes[i]->info;
15678 + if (info->pixel_format != GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR &&
15679 + info->pixel_format != GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR &&
15680 + info->pixel_format != GRUB_EFI_PIXEL_BIT_MASK) {
15685 + grub_efi_set_text_mode(0);
15686 + efi_status = set_video_mode(eg, eg->modes[i]->number);
15687 + if (efi_status == GRUB_EFI_SUCCESS) {
15689 + grub_efi_set_text_mode(1);
15690 + dprintf("switched to mode %d successfully\n",
15691 + eg->modes[i]->number);
15692 + dbgdelay(__FILE__,__LINE__);
15693 + grub_efi_set_text_mode(0);
15695 + eg->graphics_mode = eg->modes[i]->number;
15696 + fill_pixel_info(&eg->pixel_info, info);
15700 + set_video_mode(eg, eg->text_mode);
15701 + grub_efi_set_text_mode(1);
15702 + dprintf("return code was %d\n", efi_status);
15706 + if (efi_status != GRUB_EFI_SUCCESS) {
15708 + grub_efi_set_text_mode(1);
15709 + set_video_mode(eg, eg->text_mode);
15716 + eg->current_mode = GRAPHICS;
15721 +enable(struct graphics_backend *backend)
15723 + struct eg *eg = backend->priv;
15727 + if (eg->current_mode == GRAPHICS) {
15731 + grub_efi_status_t efi_status;
15732 + grub_efi_handle_t *handle, *handles;
15733 + grub_efi_uintn_t num_handles;
15734 + grub_efi_pci_io_t *pci_proto;
15736 + if (!(eg = grub_malloc(sizeof (*eg))))
15739 + grub_memset(eg, '\0', sizeof (*eg));
15741 + eg->backend = backend;
15742 + eg->current_mode = TEXT;
15744 + handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL,
15745 + &graphics_output_guid,
15746 + NULL, &num_handles);
15748 + if (!num_handles || !handles)
15751 + for (handle = handles; num_handles--; handle++)
15753 + pci_proto = grub_efi_open_protocol (*handle, &pci_io_guid,
15754 + GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
15759 + eg->output_intf = grub_efi_open_protocol (*handle,
15760 + &graphics_output_guid, GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
15762 + if (eg->output_intf)
15764 + grub_efi_setup_gfx_pci(*handle);
15769 + grub_free(handles);
15771 + if (!eg->output_intf)
15772 + eg->output_intf = grub_efi_locate_protocol(&graphics_output_guid, NULL);
15774 + if (!eg->output_intf)
15777 + eg->text_mode = eg->graphics_mode = 0xffffffff;
15779 + eg->max_mode = eg->output_intf->mode->max_mode;
15780 + eg->modes = grub_malloc(eg->max_mode * sizeof (void *));
15783 + memset(eg->modes, '\0', eg->max_mode * sizeof (void *));
15785 + for (i = 0; i < eg->max_mode; i++) {
15786 + eg->modes[i] = grub_malloc(sizeof *(eg->modes[0]));
15787 + if (!eg->modes[i])
15789 + memset(eg->modes[i], '\0', sizeof *(eg->modes[0]));
15790 + eg->modes[i]->number = i;
15792 + efi_status = Call_Service_4(eg->output_intf->query_mode,
15793 + eg->output_intf, i, &eg->modes[i]->size,
15794 + &eg->modes[i]->info);
15795 + if (efi_status == GRUB_EFI_NOT_STARTED) {
15796 + /* The firmware didn't turn on GRAPHICS_OUTPUT_PROTOCOL, so
15797 + * try to do so ourselves. Thanks, Intel. */
15798 + set_video_mode(eg, eg->output_intf->mode->mode);
15799 + efi_status = Call_Service_4(eg->output_intf->query_mode,
15800 + eg->output_intf, i, &eg->modes[i]->size,
15801 + &eg->modes[i]->info);
15803 + if (efi_status != GRUB_EFI_SUCCESS) {
15804 + grub_free(eg->modes[i]);
15805 + eg->modes[i] = NULL;
15806 + //eg->max_mode = i;
15811 + backend->priv = eg;
15812 + setup_cga_palette(eg);
15813 + for (i = 0; i < n_cga_colors; i++) {
15814 + eg->palette[i].bgrr.red = cga_colors[i].bgrr.red;
15815 + eg->palette[i].bgrr.green = cga_colors[i].bgrr.green;
15816 + eg->palette[i].bgrr.blue = cga_colors[i].bgrr.blue;
15820 + if (try_enable(backend)) {
15821 + reset_screen_geometry(backend);
15826 + backend->priv = NULL;
15828 + for (i = 0; i < eg->max_mode; i++) {
15829 + if (eg->modes[i])
15830 + grub_free(eg->modes[i]);
15832 + grub_free(eg->modes);
15838 +struct graphics_backend eg_backend = {
15840 + .enable = enable,
15841 + .disable = disable,
15842 + .set_kernel_params = set_kernel_params,
15844 + .set_palette = set_palette,
15845 + .get_pixel_idx = get_pixel_idx,
15846 + .get_pixel_rgb = get_pixel_rgb,
15847 + .draw_pixel = draw_pixel,
15848 + .reset_screen_geometry = reset_screen_geometry,
15849 + .get_screen_size = get_screen_size,
15850 + .getxy = eg_getxy,
15853 + .cursor = cursor,
15856 +#endif /* SUPPORT_GRAPHICS */
15857 diff --git a/efi/efimain.c b/efi/efimain.c
15858 new file mode 100644
15859 index 0000000..e1a1e66
15861 +++ b/efi/efimain.c
15864 + * GRUB -- GRand Unified Bootloader
15865 + * Copyright (C) 2007 Intel Corp.
15867 + * This program is free software; you can redistribute it and/or modify
15868 + * it under the terms of the GNU General Public License as published by
15869 + * the Free Software Foundation; either version 2 of the License, or
15870 + * (at your option) any later version.
15872 + * This program is distributed in the hope that it will be useful,
15873 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
15874 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15875 + * GNU General Public License for more details.
15877 + * You should have received a copy of the GNU General Public License
15878 + * along with this program; if not, write to the Free Software
15879 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
15880 + * MA 02110-1301, USA.
15883 +#include <grub/efi/efi.h>
15884 +#include <grub/efi/api.h>
15885 +#include <grub/efi/misc.h>
15886 +#include <grub/misc.h>
15888 +#include <shared.h>
15889 +#include <efistubs.h>
15893 +#define GRUB_SCRATCH_MEM_PAGES (GRUB_SCRATCH_MEM_SIZE >> 12)
15895 +/* Emulation requirements. */
15896 +void *grub_scratch_mem = NULL;
15898 +#define LOW_STACK_SIZE 0x100000
15899 +#define LOW_STACK_PAGES (LOW_STACK_SIZE >> 12)
15900 +static void *low_stack, *real_stack;
15902 +extern int grub_test_pxe(grub_efi_loaded_image_t *loaded_image);
15907 + grub_efi_loaded_image_t *loaded_image;
15908 + char *path_name = NULL;
15910 + loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle);
15912 + path_name = grub_efi_pxe_get_config_path(loaded_image);
15915 + network_ready = 1;
15917 + grub_set_config_file (path_name);
15918 + grub_free (path_name);
15920 + grub_get_drive_partition_from_bdev_handle (loaded_image->device_handle,
15922 + &install_partition);
15923 + path_name = grub_efi_file_path_to_path_name (loaded_image->file_path);
15927 + grub_set_config_file (path_name);
15928 + grub_free (path_name);
15931 + grub_load_saved_default (loaded_image->device_handle);
15934 + init_bios_info ();
15935 + while (console_getkey() < 0)
15936 + grub_efi_stall(1000);
15940 +efi_main (grub_efi_handle_t image_handle, grub_efi_system_table_t *sys_tab)
15942 + grub_efi_image_handle = image_handle;
15943 + grub_efi_system_table = sys_tab;
15944 + grub_efi_init ();
15946 + grub_scratch_mem = grub_efi_allocate_pages (0, GRUB_SCRATCH_MEM_PAGES);
15947 + if (! grub_scratch_mem)
15949 + grub_printf ("Failed to allocate scratch mem!\n");
15950 + return GRUB_EFI_OUT_OF_RESOURCES;
15953 + /* If current stack reside in memory region > 2G, switch stack to a
15954 + memory region < 2G */
15955 + if ((unsigned long)&image_handle >= 0x80000000UL)
15957 + low_stack = grub_efi_allocate_pages (0, LOW_STACK_PAGES);
15960 + grub_printf("Failed to allocate low memory stack!\n");
15961 + return GRUB_EFI_OUT_OF_RESOURCES;
15965 + asm volatile ("movq %%rsp, %0\n\tmovq %1, %%rsp\n"
15966 + : "=&r" (real_stack) : "r" (low_stack+LOW_STACK_SIZE));
15968 + asm volatile ("movl %%esp, %0\n\tmovl %1, %%esp\n"
15969 + : "=&r" (real_stack) : "r" (low_stack+LOW_STACK_SIZE));
15975 + if (real_stack) {
15977 + asm volatile ("movq %0, %%rsp\n" : : "r" (real_stack));
15979 + asm volatile ("movl %0, %%esp\n" : : "r" (real_stack));
15982 + grub_efi_free_pages ((grub_efi_physical_address_t)(unsigned long) low_stack,
15983 + LOW_STACK_PAGES);
15986 + grub_efi_free_pages ((grub_efi_physical_address_t)(unsigned long)grub_scratch_mem,
15987 + GRUB_SCRATCH_MEM_PAGES);
15988 + grub_efi_fini ();
15990 + return GRUB_EFI_SUCCESS;
15992 diff --git a/efi/efimisc.c b/efi/efimisc.c
15993 new file mode 100644
15994 index 0000000..480ba25
15996 +++ b/efi/efimisc.c
15999 + * GRUB -- GRand Unified Bootloader
16000 + * Copyright (C) 2006 Free Software Foundation, Inc.
16002 + * This program is free software; you can redistribute it and/or modify
16003 + * it under the terms of the GNU General Public License as published by
16004 + * the Free Software Foundation; either version 2 of the License, or
16005 + * (at your option) any later version.
16007 + * This program is distributed in the hope that it will be useful,
16008 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
16009 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16010 + * GNU General Public License for more details.
16012 + * You should have received a copy of the GNU General Public License
16013 + * along with this program; if not, write to the Free Software
16014 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
16015 + * MA 02110-1301, USA.
16018 +#include <config.h>
16019 +#include <grub/efi/efi.h>
16020 +#include <grub/efi/time.h>
16021 +#include <grub/efi/misc.h>
16022 +#include <grub/misc.h>
16024 +#include <shared.h>
16026 +unsigned long install_partition = 0x20000;
16027 +unsigned long boot_drive = 0x80;
16028 +int saved_entryno = 0;
16029 +char version_string[] = VERSION;
16030 +char config_file[128] = "/boot/grub/menu.lst";
16031 +unsigned short io_map[IO_MAP_SIZE];
16032 +struct apm_info apm_bios_info;
16033 +/* The key map. */
16034 +unsigned short bios_key_map[KEY_MAP_SIZE + 1];
16035 +unsigned short ascii_key_map[KEY_MAP_SIZE + 1];
16038 +grub_efi_init (void)
16040 + /* First of all, initialize the console so that GRUB can display
16042 + grub_console_init ();
16043 + /* Initialize the memory management system. */
16044 + grub_efi_mm_init ();
16045 + grub_efidisk_init ();
16049 +grub_efi_fini (void)
16051 + grub_efidisk_fini ();
16052 + grub_efi_mm_fini ();
16053 + grub_console_fini ();
16057 +grub_malloc (grub_size_t size)
16059 + return grub_efi_allocate_pool (size);
16063 +grub_free (void *p)
16065 + grub_efi_free_pool (p);
16069 +grub_stpcpy (char *dest, const char *src)
16072 + const char *s = src;
16076 + while (*s++ != '\0');
16082 +grub_fatal (const char *fmt, ...)
16086 + va_start (ap, fmt);
16087 + grub_vsprintf (NULL, fmt, ap);
16094 +grub_real_dprintf (const char *file, const int line, const char *condition,
16095 + const char *fmt, ...)
16102 + grub_printf ("%s:%d: ", file, line);
16103 + va_start (args, fmt);
16104 + grub_vsprintf (0, fmt, args);
16109 +grub_utf8_char_len(grub_uint8_t ch)
16111 + return ((0xe5000000 >> ((ch >> 3) & 0x1e)) & 3) + 1;
16114 +#define UTF8_SHIFT_AND_MASK(unicode, byte) (unicode)<<=6; (unicode) |= (0x3f & (byte))
16116 +/* convert utf8 to utf32 */
16118 +grub_utf8_to_utf32(const grub_uint8_t *src, grub_size_t length)
16120 + grub_uint32_t unicode;
16127 + unicode = src[0] & 0x1f;
16128 + UTF8_SHIFT_AND_MASK(unicode, src[1]);
16131 + unicode = src[0] & 0x0f;
16132 + UTF8_SHIFT_AND_MASK(unicode, src[1]);
16133 + UTF8_SHIFT_AND_MASK(unicode, src[2]);
16136 + unicode = src[0] & 0x07;
16137 + UTF8_SHIFT_AND_MASK(unicode, src[1]);
16138 + UTF8_SHIFT_AND_MASK(unicode, src[2]);
16139 + UTF8_SHIFT_AND_MASK(unicode, src[3]);
16146 +/* convert utf8 to utf16 */
16148 +grub_utf8_to_utf16(const grub_uint8_t *src, grub_size_t srclen,
16149 + grub_uint16_t *dst, grub_size_t dstlen)
16151 + const grub_uint8_t *end = src + srclen;
16152 + grub_efi_char16_t *dstend = dst + dstlen;
16154 + while (src < end && dst < dstend)
16156 + grub_size_t len = grub_utf8_char_len(*src);
16157 + /* get the utf32 codepoint */
16158 + grub_uint32_t codepoint = grub_utf8_to_utf32(src, len);
16160 + /* convert that codepoint to utf16 codepoints */
16161 + if (codepoint <= 0xffff)
16163 + /* it's a single utf16 character */
16164 + *dst++ = (grub_efi_char16_t) codepoint;
16168 + /* it's multiple utf16 characters, with surrogate pairs */
16169 + codepoint = codepoint - 0x10000;
16170 + *dst++ = (grub_efi_char16_t) ((codepoint >> 10) + 0xd800);
16171 + *dst++ = (grub_efi_char16_t) ((codepoint & 0x3ff) + 0xdc00);
16177 + if (dst < dstend)
16181 +/* Convert UTF-16 to UTF-8. */
16183 +grub_utf16_to_utf8 (grub_uint8_t *dest, grub_uint16_t *src,
16184 + grub_size_t size)
16186 + grub_uint32_t code_high = 0;
16190 + grub_uint32_t code = *src++;
16194 + if (code >= 0xDC00 && code <= 0xDFFF)
16196 + /* Surrogate pair. */
16197 + code = ((code_high - 0xD800) << 12) + (code - 0xDC00) + 0x10000;
16199 + *dest++ = (code >> 18) | 0xF0;
16200 + *dest++ = ((code >> 12) & 0x3F) | 0x80;
16201 + *dest++ = ((code >> 6) & 0x3F) | 0x80;
16202 + *dest++ = (code & 0x3F) | 0x80;
16214 + if (code <= 0x007F)
16216 + else if (code <= 0x07FF)
16218 + *dest++ = (code >> 6) | 0xC0;
16219 + *dest++ = (code & 0x3F) | 0x80;
16221 + else if (code >= 0xD800 && code <= 0xDBFF)
16223 + code_high = code;
16226 + else if (code >= 0xDC00 && code <= 0xDFFF)
16233 + *dest++ = (code >> 16) | 0xE0;
16234 + *dest++ = ((code >> 12) & 0x3F) | 0x80;
16235 + *dest++ = (code & 0x3F) | 0x80;
16243 +/* low-level timing info */
16247 + return grub_get_rtc() / GRUB_TICKS_PER_SECOND;
16251 +grub_reboot (void)
16253 + grub_efi_runtime_services_t *r;
16255 + r = grub_efi_system_table->runtime_services;
16256 + Call_Service_4 (r->reset_system, GRUB_EFI_RESET_COLD,
16257 + GRUB_EFI_SUCCESS, 0, NULL);
16262 +grub_halt (int no_apm)
16264 + grub_efi_runtime_services_t *r;
16266 + r = grub_efi_system_table->runtime_services;
16267 + Call_Service_4 (r->reset_system, GRUB_EFI_RESET_SHUTDOWN,
16268 + GRUB_EFI_SUCCESS, 0, NULL);
16278 +/* booting a multiboot executable */
16280 +multi_boot (int start, int mb_info)
16285 +/* sets it to linear or wired A20 operation */
16287 +gateA20 (int linear)
16291 +/* Set up the int15 handler. */
16293 +set_int15_handler (void)
16297 +/* Restore the original int15 handler. */
16299 +unset_int15_handler (void)
16303 +/* Copy MAP to the drive map and set up the int13 handler. */
16305 +set_int13_handler (unsigned short *map)
16309 +/* Get the ROM configuration table. */
16311 +get_rom_config_table (void)
16316 +/* Get APM BIOS information. */
16318 +get_apm_info (void)
16320 + /* Nothing to do in the simulator. */
16324 +stop_floppy (void)
16330 +grub_strndup (const char *s, int n)
16332 + int l = grub_strnlen(s, n);
16333 + char *new = grub_malloc(l + 1);
16339 + return grub_strncpy(new, s, l);
16343 +safe_parse_maxulong (char **str_ptr, unsigned long *myulong_ptr)
16345 + char *ptr = *str_ptr;
16346 + unsigned long myulong = 0;
16347 + unsigned int mult = 10, found = 0;
16350 + * Is this a hex number?
16352 + if (*ptr == '0' && tolower (*(ptr + 1)) == 'x')
16360 + /* A bit tricky. This below makes use of the equivalence:
16361 + (A >= B && A <= C) <=> ((A - B) <= (C - B))
16362 + when C > B and A is unsigned. */
16363 + unsigned int digit;
16365 + digit = tolower (*ptr) - '0';
16368 + digit -= 'a' - '0';
16369 + if (mult == 10 || digit > 5)
16375 + if (myulong > ((~0UL - digit) / mult))
16377 + errnum = ERR_NUMBER_OVERFLOW;
16380 + myulong = (myulong * mult) + digit;
16386 + errnum = ERR_NUMBER_PARSING;
16391 + *myulong_ptr = myulong;
16399 + return grub_get_rtc ();
16403 +fix_path_name (char *path_name)
16419 + if (*p1 == '/' && *(p2+1) == '\\')
16435 + return path_name;
16439 +grub_efi_file_path_to_path_name (grub_efi_device_path_t *file_path)
16442 + grub_efi_uint32_t str_len = 16;
16443 + grub_efi_uint32_t str_pos = 0;
16445 + str = grub_malloc (str_len);
16452 + grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (file_path);
16453 + grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (file_path);
16454 + grub_efi_uint16_t len = GRUB_EFI_DEVICE_PATH_LENGTH (file_path);
16458 + case GRUB_EFI_MEDIA_DEVICE_PATH_TYPE:
16461 + case GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE:
16463 + grub_efi_file_path_device_path_t *fp;
16464 + grub_uint8_t buf[(len - 4) * 2 + 2];
16465 + grub_uint32_t path_name_len;
16468 + fp = (grub_efi_file_path_device_path_t *) file_path;
16469 + *grub_utf16_to_utf8 (buf, fp->path_name,
16470 + (len - 4) / sizeof (grub_efi_char16_t))
16472 + path_name_len = strlen ((char *)buf) + 1;
16473 + if ((str_len - str_pos) <= path_name_len)
16477 + while ((str_len - str_pos) <= path_name_len);
16478 + tmp_str = grub_malloc (str_len);
16479 + if (tmp_str == NULL)
16481 + grub_memmove (tmp_str, str, str_pos);
16485 + str[str_pos] = '\\';
16486 + strcpy (str + str_pos + 1, (char *)buf);
16487 + str_pos += path_name_len;
16498 + if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (file_path))
16501 + file_path = (grub_efi_device_path_t *) ((char *) file_path + len);
16503 + return fix_path_name (str);
16510 +#define DEFAULT_SAVED_DEFAULT_FILE_NAME "grub.default"
16511 +#define DEFAULT_CONFIG_FILE_NAME "grub.conf"
16513 +static char saved_default_file[128] = "/boot/grub/grub.default";
16516 +grub_set_config_file (char *path_name)
16519 + grub_uint32_t path_name_len;
16521 + path_name_len = strlen (path_name);
16522 + if (path_name_len > 4
16523 + && path_name[path_name_len - 4] == '.'
16524 + && grub_tolower (path_name[path_name_len - 3]) == 'e'
16525 + && grub_tolower (path_name[path_name_len - 2]) == 'f'
16526 + && grub_tolower (path_name[path_name_len - 1]) == 'i')
16528 + /* Bigger than buffer of config_file */
16529 + if (path_name_len + 1 > 127)
16531 + grub_memmove (config_file, path_name, path_name_len - 4);
16532 + grub_strcpy (config_file + path_name_len - 4, ".conf");
16533 + /* Bigger than buffer of default file */
16534 + if (path_name_len + 4 > 127)
16536 + grub_memmove (saved_default_file, path_name, path_name_len - 4);
16537 + grub_strcpy (saved_default_file + path_name_len - 4, ".default");
16540 + dir_end = grub_strrchr (path_name, '/');
16543 + grub_strcpy (config_file, DEFAULT_CONFIG_FILE_NAME);
16544 + grub_strcpy (saved_default_file, DEFAULT_SAVED_DEFAULT_FILE_NAME);
16547 + if (strlen(dir_end) == 1) {
16548 + path_name_len = dir_end + 1 - path_name;
16549 + if (path_name_len + sizeof (DEFAULT_CONFIG_FILE_NAME) > 128)
16551 + grub_memmove (config_file, path_name, path_name_len);
16552 + grub_strcpy (config_file + path_name_len, DEFAULT_CONFIG_FILE_NAME);
16554 + grub_memmove (config_file, path_name, path_name_len+1);
16556 + if (path_name_len + sizeof (DEFAULT_SAVED_DEFAULT_FILE_NAME) > 128)
16558 + path_name_len = dir_end + 1 - path_name;
16559 + grub_memmove (saved_default_file, path_name, path_name_len);
16560 + grub_strcpy (saved_default_file + path_name_len,
16561 + DEFAULT_SAVED_DEFAULT_FILE_NAME);
16564 +grub_efi_guid_t simple_file_system_guid = GRUB_EFI_SIMPLE_FILE_SYSTEM_GUID;
16566 +static grub_efi_file_t *
16567 +simple_open_file(grub_efi_handle_t dev_handle,
16571 + grub_efi_simple_file_system_t *file_system;
16572 + grub_efi_file_t *root;
16573 + grub_efi_file_t *file = NULL;
16574 + grub_efi_status_t status;
16575 + grub_efi_char16_t *file_name_w = NULL;
16576 + grub_efi_char16_t *chp_w;
16577 + grub_efi_uint64_t open_mode;
16579 + file_system = grub_efi_open_protocol (dev_handle,
16580 + &simple_file_system_guid,
16581 + GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
16582 + if (! file_system)
16584 + status = Call_Service_2 (file_system->open_volume, file_system, &root);
16585 + if (status != GRUB_EFI_SUCCESS)
16587 + file_name_w = grub_malloc (2 * strlen(file_name) + 2);
16588 + if (! file_name_w)
16590 + for (chp_w = file_name_w; *file_name; chp_w++, file_name++)
16591 + if (*file_name == '/')
16594 + *chp_w = *file_name;
16596 + open_mode = for_write ? GRUB_EFI_FILE_MODE_READ | GRUB_EFI_FILE_MODE_WRITE \
16597 + | GRUB_EFI_FILE_MODE_CREATE : GRUB_EFI_FILE_MODE_READ;
16598 + status = Call_Service_5 (root->open, root, &file, file_name_w,
16602 + grub_free (file_name_w);
16603 + Call_Service_1 (root->close, root);
16608 +grub_load_saved_default (grub_efi_handle_t dev_handle)
16610 + grub_efi_file_t *file;
16613 + grub_efi_status_t status;
16615 + grub_efi_uintn_t buf_size = sizeof(buf);
16617 + file = simple_open_file (dev_handle, saved_default_file, 0);
16620 + status = Call_Service_3 (file->read, file, &buf_size, buf);
16621 + if (status != GRUB_EFI_SUCCESS)
16623 + if (buf_size >= sizeof(buf))
16624 + buf_size = sizeof(buf) - 1;
16625 + buf[buf_size] = '\0';
16626 + if (safe_parse_maxint (&ptr, &val))
16627 + saved_entryno = val;
16629 + Call_Service_1 (file->close, file);
16633 +grub_save_saved_default (int new_default)
16635 + grub_efi_loaded_image_t *loaded_image;
16636 + grub_efi_file_t *file;
16638 + grub_efi_status_t status;
16639 + grub_efi_uintn_t buf_size;
16642 + loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle);
16643 + file = simple_open_file (loaded_image->device_handle,
16644 + saved_default_file, 1);
16647 + errnum = ERR_FILE_NOT_FOUND;
16650 + sprintf (buf, "%d", new_default);
16651 + buf_size = strlen (buf);
16652 + status = Call_Service_3 (file->write, file, &buf_size, buf);
16653 + if (status != GRUB_EFI_SUCCESS)
16655 + errnum = ERR_WRITE;
16660 + Call_Service_1 (file->close, file);
16663 diff --git a/efi/efimm.c b/efi/efimm.c
16664 new file mode 100644
16665 index 0000000..836188d
16670 + * GRUB -- GRand Unified Bootloader
16671 + * Copyright (C) 2006 Free Software Foundation, Inc.
16673 + * This program is free software; you can redistribute it and/or modify
16674 + * it under the terms of the GNU General Public License as published by
16675 + * the Free Software Foundation; either version 2 of the License, or
16676 + * (at your option) any later version.
16678 + * This program is distributed in the hope that it will be useful,
16679 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
16680 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16681 + * GNU General Public License for more details.
16683 + * You should have received a copy of the GNU General Public License
16684 + * along with this program; if not, write to the Free Software
16685 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
16686 + * MA 02110-1301, USA.
16689 +#include <config.h>
16690 +#include <grub/misc.h>
16691 +#include <grub/efi/api.h>
16692 +#include <grub/efi/efi.h>
16693 +#include <grub/efi/misc.h>
16695 +#include <shared.h>
16697 +#define NEXT_MEMORY_DESCRIPTOR(desc, size) \
16698 + ((grub_efi_memory_descriptor_t *) ((char *) (desc) + (size)))
16700 +#define BYTES_TO_PAGES(bytes) ((bytes) >> 12)
16701 +#define PAGES_TO_BYTES(pages) ((pages) << 12)
16703 +/* Global variables used to store memory map, its size, and the number of
16704 + * pages allocated for the buffer. */
16706 +grub_efi_uintn_t mmap_size;
16707 +grub_efi_uintn_t mmap_pages;
16709 +/* Maintain the list of allocated pages. */
16710 +struct allocated_page
16712 + grub_efi_physical_address_t addr;
16713 + grub_efi_uint64_t num_pages;
16716 +#define ALLOCATED_PAGES_SIZE 0x1000
16717 +#define MAX_ALLOCATED_PAGES \
16718 + (ALLOCATED_PAGES_SIZE / sizeof (struct allocated_page))
16720 +static struct allocated_page *allocated_pages = 0;
16722 +/* The minimum and maximum heap size for GRUB itself. */
16723 +#define MIN_HEAP_SIZE 0x100000
16724 +#define MAX_HEAP_SIZE (16 * 0x100000)
16728 +grub_efi_allocate_pool (grub_efi_uintn_t size)
16730 + grub_efi_status_t status;
16732 + grub_efi_boot_services_t *b;
16734 + b = grub_efi_system_table->boot_services;
16735 + status = Call_Service_3(b->allocate_pool, GRUB_EFI_LOADER_DATA, size, &p);
16736 + if (status != GRUB_EFI_SUCCESS)
16743 +grub_efi_free_pool (void *buffer)
16745 + grub_efi_boot_services_t *b;
16747 + b = grub_efi_system_table->boot_services;
16748 + Call_Service_1(b->free_pool, buffer);
16752 +grub_efi_allocate_anypages(grub_efi_uintn_t pages)
16754 + grub_efi_boot_services_t *b;
16755 + grub_efi_status_t status;
16756 + grub_efi_physical_address_t address;
16758 + b = grub_efi_system_table->boot_services;
16759 + status = Call_Service_4 (b->allocate_pages,
16760 + GRUB_EFI_ALLOCATE_ANY_PAGES,
16761 + GRUB_EFI_LOADER_DATA,
16764 + if (status != GRUB_EFI_SUCCESS)
16767 + if (allocated_pages)
16771 + for (i = 0; i < MAX_ALLOCATED_PAGES; i++)
16772 + if (allocated_pages[i].addr == 0)
16774 + allocated_pages[i].addr = address;
16775 + allocated_pages[i].num_pages = pages;
16779 + if (i == MAX_ALLOCATED_PAGES)
16781 + grub_printf ("too many page allocations");
16786 + return (void *) ((grub_addr_t) address);
16790 +/* Allocate pages. Return the pointer to the first of allocated pages. */
16792 +grub_efi_allocate_pages_real (grub_efi_physical_address_t address,
16793 + grub_efi_uintn_t pages,
16794 + grub_efi_memory_type_t memtype)
16796 + grub_efi_allocate_type_t type;
16797 + grub_efi_status_t status;
16798 + grub_efi_boot_services_t *b;
16800 + /* Limit the memory access to less than 2GB to avoid 64bit
16801 + * compatible problem of grub */
16802 + if (address > 0x7fffffff)
16805 + if (address == 0)
16807 + type = GRUB_EFI_ALLOCATE_MAX_ADDRESS;
16808 + address = 0x7fffffff;
16811 + type = GRUB_EFI_ALLOCATE_ADDRESS;
16813 + b = grub_efi_system_table->boot_services;
16814 + status = Call_Service_4 (b->allocate_pages, type,
16815 + memtype, pages, &address);
16817 + if (status != GRUB_EFI_SUCCESS)
16819 + /* EFI_NOT_FOUND means the region was unavailable, which means we can
16820 + probably just use it. This is only for hacks to start with */
16821 + if (memtype == GRUB_EFI_RUNTIME_SERVICES_DATA &&
16822 + status == GRUB_EFI_NOT_FOUND)
16823 + return (void *) ((grub_addr_t) address);
16828 + if (address == 0)
16830 + /* Uggh, the address 0 was allocated... This is too annoying,
16831 + so reallocate another one. */
16832 + address = 0x7fffffff;
16833 + status = Call_Service_4 (b->allocate_pages,
16834 + type, GRUB_EFI_LOADER_DATA, pages, &address);
16835 + grub_efi_free_pages (0, pages);
16836 + if (status != GRUB_EFI_SUCCESS)
16840 + /* We don't want to free anything we've allocated for runtime */
16841 + if (allocated_pages && memtype != GRUB_EFI_RUNTIME_SERVICES_DATA)
16845 + for (i = 0; i < MAX_ALLOCATED_PAGES; i++)
16846 + if (allocated_pages[i].addr == 0)
16848 + allocated_pages[i].addr = address;
16849 + allocated_pages[i].num_pages = pages;
16853 + if (i == MAX_ALLOCATED_PAGES)
16855 + grub_printf ("too many page allocations");
16860 + return (void *) ((grub_addr_t) address);
16864 +grub_efi_allocate_pages (grub_efi_physical_address_t address,
16865 + grub_efi_uintn_t pages)
16868 + return grub_efi_allocate_pages_real(address, pages, GRUB_EFI_LOADER_DATA);
16872 +grub_efi_allocate_runtime_pages (grub_efi_physical_address_t address,
16873 + grub_efi_uintn_t pages)
16876 + return grub_efi_allocate_pages_real(address, pages,
16877 + GRUB_EFI_RUNTIME_SERVICES_DATA);
16879 +/* Free pages starting from ADDRESS. */
16881 +grub_efi_free_pages (grub_efi_physical_address_t address,
16882 + grub_efi_uintn_t pages)
16884 + grub_efi_boot_services_t *b;
16886 + if (allocated_pages
16887 + && ((grub_efi_physical_address_t) ((grub_addr_t) allocated_pages)
16892 + for (i = 0; i < MAX_ALLOCATED_PAGES; i++)
16893 + if (allocated_pages[i].addr == address)
16895 + allocated_pages[i].addr = 0;
16900 + b = grub_efi_system_table->boot_services;
16901 + Call_Service_2 (b->free_pages ,address, pages);
16904 +/* Get the memory map as defined in the EFI spec. Return 1 if successful,
16905 + return 0 if partial, or return -1 if an error occurs.
16907 + This function will allocate memory for (global) mmap_buf if there isn't
16908 + already a buffer allocated, and will free & reallocate if it needs to
16912 +grub_efi_get_memory_map (grub_efi_uintn_t *map_key,
16913 + grub_efi_uintn_t *descriptor_size,
16914 + grub_efi_uint32_t *descriptor_version)
16916 + grub_efi_status_t status;
16917 + grub_efi_boot_services_t *b;
16918 + grub_efi_uintn_t key;
16919 + grub_efi_uint32_t version;
16920 + grub_efi_uintn_t tmp_mmap_size;
16922 + /* Allow some parameters to be missing. */
16925 + if (! descriptor_version)
16926 + descriptor_version = &version;
16930 + b = grub_efi_system_table->boot_services;
16931 + tmp_mmap_size = PAGES_TO_BYTES(mmap_pages);
16932 + status = Call_Service_5 (b->get_memory_map,
16933 + &tmp_mmap_size, mmap_buf, map_key,
16934 + descriptor_size, descriptor_version);
16935 + if (status == GRUB_EFI_SUCCESS)
16937 + mmap_size = tmp_mmap_size;
16940 + else if (status != GRUB_EFI_BUFFER_TOO_SMALL)
16943 + /* we need a larger buffer */
16945 + grub_efi_free_pages ((grub_addr_t) mmap_buf, mmap_pages);
16947 + /* get 1 more page than we need, just in case */
16948 + mmap_pages = BYTES_TO_PAGES(tmp_mmap_size + 4095) + 1;
16949 + mmap_buf = grub_efi_allocate_pages (0, mmap_pages);
16953 + grub_printf ("cannot allocate memory for memory map");
16959 +#define MMAR_DESC_LENGTH 20
16962 + * Add a memory region to the kernel e820 map.
16964 + * Convert EFI memory map to E820 map for the operating system
16965 + * This code is based on a Linux kernel patch submitted by Edgar Hucek
16968 +add_memory_region (struct e820_entry *e820_map,
16969 + int *e820_nr_map,
16970 + unsigned long long start,
16971 + unsigned long long size,
16972 + unsigned int type)
16974 + int x = *e820_nr_map;
16975 + static unsigned long long estart = 0ULL;
16976 + static unsigned long esize = 0L;
16977 + static unsigned int etype = -1;
16978 + static int merge = 0;
16980 + /* merge adjacent regions of same type */
16981 + if ((x > 0) && e820_map[x-1].addr + e820_map[x-1].size == start
16982 + && e820_map[x-1].type == type)
16984 + e820_map[x-1].size += size;
16985 + estart = e820_map[x-1].addr;
16986 + esize = e820_map[x-1].size;
16987 + etype = e820_map[x-1].type;
16992 + /* fill up to E820_MAX */
16993 + if ( x < E820_MAX )
16995 + e820_map[x].addr = start;
16996 + e820_map[x].size = size;
16997 + e820_map[x].type = type;
16998 + (*e820_nr_map)++;
17003 + /* different type means another region didn't fit */
17004 + /* or same type, but there's a hole */
17005 + if (etype != type || (estart + esize) != start)
17014 + /* same type and no hole, merge it */
17021 + * Make a e820 memory map
17024 +e820_map_from_efi_map (struct e820_entry *e820_map,
17025 + int *e820_nr_map,
17026 + grub_efi_memory_descriptor_t *memory_map,
17027 + grub_efi_uintn_t desc_size,
17028 + grub_efi_uintn_t memory_map_size)
17030 + grub_efi_memory_descriptor_t *desc;
17031 + unsigned long long start = 0;
17032 + unsigned long long end = 0;
17033 + unsigned long long size = 0;
17034 + grub_efi_memory_descriptor_t *memory_map_end;
17036 + memory_map_end = NEXT_MEMORY_DESCRIPTOR (memory_map, memory_map_size);
17037 + *e820_nr_map = 0;
17038 + for (desc = memory_map;
17039 + desc < memory_map_end;
17040 + desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size))
17042 + switch (desc->type)
17044 + case GRUB_EFI_ACPI_RECLAIM_MEMORY:
17045 + add_memory_region (e820_map, e820_nr_map,
17046 + desc->physical_start, desc->num_pages << 12,
17049 + case GRUB_EFI_RUNTIME_SERVICES_CODE:
17050 + case GRUB_EFI_RUNTIME_SERVICES_DATA:
17051 + case GRUB_EFI_RESERVED_MEMORY_TYPE:
17052 + case GRUB_EFI_MEMORY_MAPPED_IO:
17053 + case GRUB_EFI_MEMORY_MAPPED_IO_PORT_SPACE:
17054 + case GRUB_EFI_UNUSABLE_MEMORY:
17055 + case GRUB_EFI_PAL_CODE:
17056 + add_memory_region (e820_map, e820_nr_map,
17057 + desc->physical_start, desc->num_pages << 12,
17060 + case GRUB_EFI_LOADER_CODE:
17061 + case GRUB_EFI_LOADER_DATA:
17062 + case GRUB_EFI_BOOT_SERVICES_CODE:
17063 + case GRUB_EFI_BOOT_SERVICES_DATA:
17064 + case GRUB_EFI_CONVENTIONAL_MEMORY:
17065 + start = desc->physical_start;
17066 + size = desc->num_pages << 12;
17067 + end = start + size;
17068 + if (start < 0x100000ULL && end > 0xA0000ULL)
17070 + if (start < 0xA0000ULL)
17071 + add_memory_region (e820_map, e820_nr_map,
17072 + start, 0xA0000ULL-start,
17074 + if (end <= 0x100000ULL)
17076 + start = 0x100000ULL;
17077 + size = end - start;
17079 + add_memory_region (e820_map, e820_nr_map,
17080 + start, size, E820_RAM);
17082 + case GRUB_EFI_ACPI_MEMORY_NVS:
17083 + add_memory_region (e820_map, e820_nr_map,
17084 + desc->physical_start, desc->num_pages << 12,
17092 +update_e820_map (struct e820_entry *e820_map,
17093 + int *e820_nr_map)
17095 + grub_efi_uintn_t desc_size;
17097 + if (grub_efi_get_memory_map (0, &desc_size, 0) < 0)
17099 + grub_printf ("cannot get memory map");
17103 + e820_map_from_efi_map (e820_map, e820_nr_map,
17104 + mmap_buf, desc_size, mmap_size);
17107 +/* Simulated memory sizes. */
17108 +#define EXTENDED_MEMSIZE (3 * 1024 * 1024) /* 3MB */
17109 +#define CONVENTIONAL_MEMSIZE (640 * 1024) /* 640kB */
17112 +get_code_end (void)
17114 + /* Just return a little area for simulation. */
17115 + return BOOTSEC_LOCATION + (60 * 1024);
17118 +/* memory probe routines */
17120 +get_memsize (int type)
17123 + return CONVENTIONAL_MEMSIZE >> 10;
17125 + return EXTENDED_MEMSIZE >> 10;
17128 +/* get_eisamemsize() : return packed EISA memory map, lower 16 bits is
17129 + * memory between 1M and 16M in 1K parts, upper 16 bits is
17130 + * memory above 16M in 64K parts. If error, return -1.
17133 +get_eisamemsize (void)
17135 + return (EXTENDED_MEMSIZE >> 10);
17138 +static int grub_e820_nr_map;
17139 +static struct e820_entry grub_e820_map[E820_MAX];
17141 +/* Fetch the next entry in the memory map and return the continuation
17142 + value. DESC is a pointer to the descriptor buffer, and CONT is the
17143 + previous continuation value (0 to get the first entry in the
17146 +get_mmap_entry (struct mmar_desc *desc, int cont)
17148 + if (cont < 0 || cont >= grub_e820_nr_map)
17150 + /* Should not happen. */
17151 + desc->desc_len = 0;
17155 + struct e820_entry *entry;
17156 + /* Copy the entry. */
17157 + desc->desc_len = MMAR_DESC_LENGTH;
17158 + entry = &grub_e820_map[cont++];
17159 + desc->addr = entry->addr;
17160 + desc->length = entry->size;
17161 + desc->type = entry->type;
17163 + /* If the next entry exists, return the index. */
17164 + if (cont < grub_e820_nr_map)
17172 +grub_efi_mm_init (void)
17174 + /* First of all, allocate pages to maintain allocations. */
17176 + = grub_efi_allocate_pages (0, BYTES_TO_PAGES (ALLOCATED_PAGES_SIZE));
17177 + if (! allocated_pages)
17179 + grub_printf ("cannot allocate memory");
17183 + grub_memset (allocated_pages, 0, ALLOCATED_PAGES_SIZE);
17185 + update_e820_map (grub_e820_map, &grub_e820_nr_map);
17189 +grub_efi_mm_fini (void)
17191 + if (allocated_pages)
17195 + for (i = 0; i < MAX_ALLOCATED_PAGES; i++)
17197 + struct allocated_page *p;
17199 + p = allocated_pages + i;
17200 + if (p->addr != 0)
17201 + grub_efi_free_pages ((grub_addr_t) p->addr, p->num_pages);
17204 + grub_efi_free_pages ((grub_addr_t) allocated_pages,
17205 + BYTES_TO_PAGES (ALLOCATED_PAGES_SIZE));
17208 diff --git a/efi/efinic.c b/efi/efinic.c
17209 new file mode 100644
17210 index 0000000..e69de29
17211 diff --git a/efi/efiserial.c b/efi/efiserial.c
17212 new file mode 100644
17213 index 0000000..32898a9
17215 +++ b/efi/efiserial.c
17218 + * GRUB -- GRand Unified Bootloader
17219 + * Copyright (C) 2007 Intel Corp.
17221 + * GRUB is free software; you can redistribute it and/or modify
17222 + * it under the terms of the GNU General Public License as published by
17223 + * the Free Software Foundation; either version 2 of the License, or
17224 + * (at your option) any later version.
17226 + * This program is distributed in the hope that it will be useful,
17227 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
17228 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17229 + * GNU General Public License for more details.
17231 + * You should have received a copy of the GNU General Public License
17232 + * along with GRUB; if not, write to the Free Software
17233 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17236 +#ifdef SUPPORT_SERIAL
17238 +#include <grub/types.h>
17239 +#include <grub/misc.h>
17240 +#include <grub/efi/api.h>
17241 +#include <grub/efi/efi.h>
17242 +#include <grub/efi/misc.h>
17244 +#include <shared.h>
17245 +#include <serial.h>
17248 +struct grub_efiserial_data
17250 + grub_efi_handle_t handle;
17251 + grub_efi_serial_io_t *serial_io;
17252 + struct grub_efiserial_data *next;
17256 +static grub_efi_guid_t serial_io_guid = GRUB_EFI_SERIAL_IO_GUID;
17258 +static grub_efi_serial_io_t *serial_device = NULL;
17260 +static struct grub_efiserial_data *
17261 +make_devices (void)
17263 + grub_efi_uintn_t num_handles;
17264 + grub_efi_handle_t *handles;
17265 + grub_efi_handle_t *handle;
17266 + struct grub_efiserial_data *devices = 0;
17268 + /* Find handles which support the serial io interface. */
17269 + handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL, &serial_io_guid,
17270 + 0, &num_handles);
17274 + /* Make a linked list of devices. */
17275 + for (handle = handles; num_handles--; handle++)
17277 + struct grub_efiserial_data *s;
17278 + grub_efi_serial_io_t *sio;
17280 + sio = grub_efi_open_protocol (*handle, &serial_io_guid,
17281 + GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
17283 + /* This should not happen... Why? */
17286 + s = grub_malloc (sizeof (*s));
17290 + grub_free (handles);
17294 + s->handle = *handle;
17295 + s->serial_io = sio;
17296 + s->next = devices;
17300 + grub_free (handles);
17306 +free_devices (struct grub_efiserial_data *devices)
17308 + struct grub_efiserial_data *p, *q;
17310 + for (p = devices; p; p = q)
17317 +static struct grub_efiserial_data *
17318 +get_device (struct grub_efiserial_data *devices, int num)
17320 + struct grub_efiserial_data *s;
17322 + for (s = devices; s && num; s = s->next, num--)
17331 +/* Fetch a key from a serial device. */
17333 +serial_hw_fetch (void)
17335 + grub_efi_status_t status;
17337 + grub_efi_uintn_t buf_siz = sizeof (buf);
17338 + grub_efi_uint32_t control;
17340 + if (! serial_device)
17343 + status = Call_Service_2 (serial_device->get_control_bits, serial_device, &control);
17344 + if (status != GRUB_EFI_SUCCESS)
17346 + if (control & GRUB_EFI_SERIAL_INPUT_BUFFER_EMPTY)
17348 + status = Call_Service_3 (serial_device->read, serial_device, &buf_siz, buf);
17349 + if (status != GRUB_EFI_SUCCESS)
17355 +/* Put a character to a serial device. */
17357 +serial_hw_put (int c)
17359 + grub_efi_status_t status;
17361 + grub_efi_uintn_t buf_size = sizeof (ch);
17363 + if (! serial_device)
17366 + status = Call_Service_3 (serial_device->write, serial_device, &buf_size, &ch);
17370 +serial_hw_delay (void)
17374 +/* Get the port number of the unit UNIT, the port number is same as
17375 + serial port unit number in EFI. */
17377 +serial_hw_get_port (int unit)
17382 +static inline grub_efi_uint8_t
17383 +efi_data_bits_from_8250_LCR (int word_len)
17385 + switch (word_len & 0x3)
17400 +static inline grub_efi_stop_bits_t
17401 +efi_stop_bits_from_8250_LCR (int stop_bit_len)
17403 + switch (stop_bit_len & 0x4)
17406 + return GRUB_EFI_ONE_STOP_BIT;
17408 + return GRUB_EFI_TWO_STOP_BITS;
17410 + return GRUB_EFI_DEFAULT_STOP_BITS;
17414 +static inline grub_efi_parity_t
17415 +efi_parity_from_8250_LCR (int parity_8250)
17417 + if (! (parity_8250 & 0x8))
17418 + return GRUB_EFI_NO_PARITY;
17420 + switch (parity_8250 & 0x30)
17423 + return GRUB_EFI_ODD_PARITY;
17425 + return GRUB_EFI_EVEN_PARITY;
17427 + return GRUB_EFI_MARK_PARITY;
17429 + return GRUB_EFI_SPACE_PARITY;
17431 + return GRUB_EFI_DEFAULT_PARITY;
17435 +/* Initialize a serial device. In EFI, PORT is used to assign
17436 + serial port unit number. */
17438 +serial_hw_init (unsigned short port, unsigned int speed,
17439 + int word_len, int parity, int stop_bit_len)
17441 + grub_efi_serial_io_t *sio;
17442 + struct grub_efiserial_data *devices, *s;
17443 + grub_efi_parity_t efi_parity;
17444 + grub_efi_stop_bits_t efi_stop_bits;
17445 + grub_efi_uint8_t efi_data_bits;
17446 + grub_efi_status_t status;
17449 + devices = make_devices ();
17450 + s = get_device (devices, port);
17453 + sio = s->serial_io;
17454 + free_devices (devices);
17456 + efi_data_bits = efi_data_bits_from_8250_LCR (word_len);
17457 + efi_parity = efi_parity_from_8250_LCR (parity);
17458 + efi_stop_bits = efi_stop_bits_from_8250_LCR (stop_bit_len);
17460 + status = Call_Service_1 (sio->reset, sio);
17461 + if (status != GRUB_EFI_SUCCESS)
17464 + status = Call_Service_7 (sio->set_attributes, sio, speed, 0, 0,
17465 + efi_parity, efi_data_bits, efi_stop_bits);
17466 + if (status != GRUB_EFI_SUCCESS)
17469 + serial_device = sio;
17470 + /* Get rid of TERM_NEED_INIT from the serial terminal. */
17471 + for (i = 0; term_table[i].name; i++)
17472 + if (grub_strcmp (term_table[i].name, "serial") == 0)
17474 + term_table[i].flags &= ~TERM_NEED_INIT;
17481 +#endif /* SUPPORT_SERIAL */
17482 diff --git a/efi/efitftp.c b/efi/efitftp.c
17483 new file mode 100644
17484 index 0000000..ba6918f
17486 +++ b/efi/efitftp.c
17488 +#include <grub/efi/efi.h>
17489 +#include <grub/efi/api.h>
17490 +#include <grub/efi/misc.h>
17491 +#include <grub/misc.h>
17493 +#include <shared.h>
17494 +#include <filesys.h>
17497 +struct tftp_info tftp_info = {
17498 + .LoadedImage = NULL,
17500 + .ServerIp = NULL,
17505 + * CLIENT MAC ADDR: 00 15 17 4C E6 74
17506 + * CLIENT IP: 10.16.52.158 MASK: 255.255.255.0 DHCP IP: 10.16.52.16
17507 + * GATEWAY IP: 10.16.52.254
17509 + * TSize.Running LoadFile()
17512 + * got to grub_efi_pxe_get_config_path
17513 + * SiAddr: 10.16.52.16
17514 + * BootpHwAddr: 00:15:17:4c:e6:74:00:00:00:00:00:00:00:00:00:00
17516 + * BootpBootFile: X86PC/UNDI/pxelinux/bootx64.efi
17519 +static grub_efi_status_t tftp_get_file_size_defective_buffer_fallback(
17521 + grub_efi_uintn_t *Size)
17523 + EFI_PXE_BASE_CODE_TFTP_OPCODE OpCode = EFI_PXE_BASE_CODE_TFTP_READ_FILE;
17524 + char *Buffer = NULL;
17525 + grub_efi_boolean_t Overwrite = 0;
17526 + grub_efi_boolean_t DontUseBuffer = 0;
17527 + grub_efi_uint64_t BufferSize = 4096;
17528 + grub_efi_uintn_t BlockSize = 512;
17529 + grub_efi_status_t rc = GRUB_EFI_BUFFER_TOO_SMALL;
17530 + char *FullPath = NULL;
17532 + while (rc == GRUB_EFI_BUFFER_TOO_SMALL) {
17536 + grub_free(Buffer);
17540 + NewBuffer = grub_malloc(BufferSize);
17542 + return GRUB_EFI_OUT_OF_RESOURCES;
17543 + Buffer = NewBuffer;
17545 + if (tftp_info.BasePath) {
17546 + int PathSize = 0;
17547 + PathSize = strlen(tftp_info.BasePath) + 2 +
17548 + strlen(Filename);
17549 + FullPath = grub_malloc(PathSize);
17550 + grub_sprintf(FullPath, "%s/%s", tftp_info.BasePath,
17553 + FullPath = grub_malloc(strlen(Filename));
17554 + strcpy(FullPath, Filename);
17557 + rc = Call_Service_10(tftp_info.Pxe->Mtftp, tftp_info.Pxe,
17558 + OpCode, Buffer, Overwrite, &BufferSize, &BlockSize,
17559 + tftp_info.ServerIp, FullPath, NULL, DontUseBuffer);
17560 + if (rc == GRUB_EFI_SUCCESS || rc == GRUB_EFI_BUFFER_TOO_SMALL)
17561 + *Size = BufferSize;
17563 + grub_free(FullPath);
17564 + grub_free(Buffer);
17568 +grub_efi_status_t tftp_get_file_size(
17570 + grub_efi_uintn_t *Size)
17572 + EFI_PXE_BASE_CODE_TFTP_OPCODE OpCode = EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE;
17573 + char Buffer[8192];
17574 + grub_efi_boolean_t Overwrite = 0;
17575 + grub_efi_boolean_t DontUseBuffer = 0;
17576 + grub_efi_uint64_t BufferSize = 8192;
17577 + grub_efi_uintn_t BlockSize = 512;
17578 + grub_efi_status_t rc;
17579 + char *FullPath = NULL;
17581 + if (tftp_info.BasePath) {
17582 + int PathSize = 0;
17583 + PathSize = strlen(tftp_info.BasePath) + 2 + strlen(Filename);
17584 + FullPath = grub_malloc(PathSize);
17585 + grub_sprintf(FullPath, "%s/%s", tftp_info.BasePath, Filename);
17587 + FullPath = grub_malloc(strlen(Filename));
17588 + strcpy(FullPath, Filename);
17591 + rc = Call_Service_10(tftp_info.Pxe->Mtftp, tftp_info.Pxe, OpCode,
17592 + Buffer, Overwrite, &BufferSize, &BlockSize, tftp_info.ServerIp,
17593 + FullPath, NULL, DontUseBuffer);
17594 + if (rc == GRUB_EFI_BUFFER_TOO_SMALL)
17595 + rc = tftp_get_file_size_defective_buffer_fallback(Filename, Size);
17596 + if (rc == GRUB_EFI_SUCCESS)
17597 + *Size = BufferSize;
17598 + grub_free(FullPath);
17602 +static grub_efi_status_t tftp_read_file(
17605 + grub_efi_uint64_t BufferSize)
17607 + EFI_PXE_BASE_CODE_TFTP_OPCODE OpCode = EFI_PXE_BASE_CODE_TFTP_READ_FILE;
17608 + grub_efi_boolean_t Overwrite = 0;
17609 + grub_efi_boolean_t DontUseBuffer = 0;
17610 + grub_efi_uintn_t BlockSize = 512;
17611 + grub_efi_status_t rc;
17612 + char *FullPath = NULL;
17614 + if (tftp_info.BasePath) {
17615 + int PathSize = 0;
17616 + PathSize = strlen(tftp_info.BasePath) + 2 + strlen(Filename);
17617 + FullPath = grub_malloc(PathSize);
17618 + grub_sprintf(FullPath, "%s/%s", tftp_info.BasePath, Filename);
17620 + FullPath = grub_malloc(strlen(Filename));
17621 + strcpy(FullPath, Filename);
17624 + rc = Call_Service_10(tftp_info.Pxe->Mtftp, tftp_info.Pxe, OpCode,
17625 + Buffer, Overwrite, &BufferSize, &BlockSize, tftp_info.ServerIp,
17626 + FullPath, NULL, DontUseBuffer);
17627 + grub_free(FullPath);
17632 +efi_tftp_mount (void)
17634 + if (current_drive != NETWORK_DRIVE) {
17641 +efi_tftp_read (char *addr, int size)
17645 + if (tftp_info.LastPath == NULL) {
17646 + grub_printf(" = 0 (no path known)\n");
17649 + if (tftp_info.Buffer == NULL) {
17650 + grub_printf(" = 0 (no file open)\n");
17653 + if (filemax == -1) {
17654 + grub_printf(" = 0 (file not found)\n");
17657 + if (filepos == 0) {
17658 + rc = tftp_read_file(tftp_info.LastPath, tftp_info.Buffer,
17662 + grub_memmove(addr, tftp_info.Buffer+filepos, size);
17669 +efi_tftp_dir (char *dirname)
17673 + grub_efi_uintn_t size;
17677 + ch = nul_terminate(dirname);
17678 + len = strlen(dirname);
17680 + name = grub_malloc(len + 1);
17681 + grub_memmove(name, dirname, len);
17682 + name[len] = '\0';
17683 + dirname[len] = ch;
17686 + if (print_possibilities)
17692 + rc = tftp_get_file_size(name, &size);
17693 + if (rc == GRUB_EFI_SUCCESS) {
17694 + tftp_info.LastPath = grub_malloc(strlen(name) + 1);
17695 + sprintf(tftp_info.LastPath, "%s", name);
17699 + tftp_info.Buffer = grub_malloc(filemax);
17707 +efi_tftp_close (void)
17711 + grub_free(tftp_info.LastPath);
17712 + tftp_info.LastPath = NULL;
17713 + grub_free(tftp_info.Buffer);
17714 + tftp_info.Buffer = NULL;
17716 diff --git a/efi/efiuga.c b/efi/efiuga.c
17717 new file mode 100644
17718 index 0000000..b27500b
17722 +/* efiuga.c - "univeral graphics adapter" support for GRUB/EFI */
17724 + * GRUB -- GRand Unified Bootloader
17725 + * Copyright 2007 Red Hat, Inc.
17726 + * Copyright (C) 2007 Intel Corp.
17727 + * Copyright (C) 2001,2002 Red Hat, Inc.
17728 + * Portions copyright (C) 2000 Conectiva, Inc.
17730 + * This program is free software; you can redistribute it and/or modify
17731 + * it under the terms of the GNU General Public License as published by
17732 + * the Free Software Foundation; either version 2 of the License, or
17733 + * (at your option) any later version.
17735 + * This program is distributed in the hope that it will be useful,
17736 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
17737 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17738 + * GNU General Public License for more details.
17740 + * You should have received a copy of the GNU General Public License
17741 + * along with this program; if not, write to the Free Software
17742 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17745 +#ifdef SUPPORT_GRAPHICS
17747 +#include <grub/misc.h>
17748 +#include <grub/types.h>
17749 +#include <grub/cpu/linux.h>
17750 +#include <grub/efi/api.h>
17751 +#include <grub/efi/efi.h>
17752 +#include <grub/misc.h>
17755 +#include <shared.h>
17756 +#include <graphics.h>
17758 +#include "graphics.h"
17761 +static grub_efi_guid_t draw_guid = GRUB_EFI_UGA_DRAW_GUID;
17762 +static grub_efi_guid_t pci_io_guid = GRUB_EFI_PCI_IO_GUID;
17766 +#include "ugadebug.h"
17770 +#define MIN(x,y) ( ((x) < (y)) ? (x) : (y))
17773 +#define MAX(x,y) ( ((x) < (y)) ? (y) : (x))
17776 +#define pixel_equal(x,y) ((x).red == (y).red && \
17777 + (x).green == (y).green && \
17778 + (x).blue == (y).blue)
17780 +struct video_mode {
17781 + grub_efi_uint32_t horizontal_resolution;
17782 + grub_efi_uint32_t vertical_resolution;
17783 + grub_efi_uint32_t color_depth;
17784 + grub_efi_uint32_t refresh_rate;
17788 +xpnd_6_to_8(grub_efi_uga_pixel_t *pixel)
17790 + if (!((pixel->red | pixel->green | pixel->blue) & 0xc0)) {
17791 + pixel->red <<= 2;
17792 + pixel->red |= ((pixel->red & 0xc0) >> 6);
17793 + pixel->red &= 0xff;
17794 + pixel->green <<= 2;
17795 + pixel->green |= ((pixel->green & 0xc0) >> 6);
17796 + pixel->green &= 0xff;
17797 + pixel->blue <<= 2;
17798 + pixel->blue |= ((pixel->blue & 0xc0) >> 6);
17799 + pixel->blue &= 0xff;
17805 +#define MAX_PALETTE 16
17807 + grub_efi_uga_draw_t *draw_intf;
17808 + struct video_mode graphics_mode;
17809 + struct video_mode text_mode;
17810 + enum { TEXT, GRAPHICS } current_mode;
17812 + position_t screen_size;
17813 + position_t screen_pos;
17815 + struct bltbuf *background;
17817 + grub_efi_uga_pixel_t palette[MAX_PALETTE + 1];
17820 +#define RGB(r,g,b) { .red = r, .green = g, .blue = b }
17822 +static grub_efi_uga_pixel_t cga_colors[] = {
17823 + RGB(0x00,0x00,0x00), // 0 Black
17824 + RGB(0x7f,0x00,0x00), // 1 Dark Red
17825 + RGB(0x00,0x7f,0x00), // 2 Dark Green
17826 + RGB(0x7f,0x7f,0x00), // 3 Dark Yellow
17827 + RGB(0x00,0x00,0x7f), // 4 Dark Blue
17828 + RGB(0x7f,0x00,0x7f), // 5 Dark Magenta
17829 + RGB(0x00,0x7f,0x7f), // 6 Dark Cyan
17830 + RGB(0xc0,0xc0,0xc0), // 7 Light Grey
17831 + RGB(0x7f,0x7f,0x7f), // 8 Dark Grey
17832 + RGB(0xff,0x00,0x00), // 9 Red
17833 + RGB(0x00,0xff,0x00), // 10 Green
17834 + RGB(0xff,0xff,0x00), // 11 Yellow
17835 + RGB(0x00,0x00,0xff), // 12 Blue
17836 + RGB(0xff,0x00,0xff), // 13 Magenta
17837 + RGB(0x00,0xff,0xff), // 14 Cyan
17838 + RGB(0xff,0xff,0xff), // 15 White
17839 + RGB(0xff,0xff,0xff), // 16 Also white ;)
17842 +static const int n_cga_colors = sizeof (cga_colors) / sizeof (cga_colors[0]);
17845 +set_kernel_params(struct graphics_backend *backend,
17846 + struct linux_kernel_params *params)
17850 + if (!backend || !backend->priv)
17853 + uga = backend->priv;
17855 + params->lfb_width = uga->graphics_mode.horizontal_resolution;
17856 + params->lfb_height = uga->graphics_mode.vertical_resolution;
17857 + params->lfb_depth = 32;
17858 + params->red_mask_size = 8;
17859 + params->red_field_pos = 16;
17860 + params->green_mask_size = 8;
17861 + params->green_field_pos = 8;
17862 + params->blue_mask_size = 8;
17863 + params->blue_field_pos = 0;
17864 + params->reserved_mask_size = 8;
17865 + params->reserved_field_pos = 24;
17866 + params->have_vga = VIDEO_TYPE_EFI;
17870 +pixel_to_rgb(grub_efi_uga_pixel_t *pixel, int *red, int *green, int *blue)
17872 + *red = pixel->red;
17873 + *green = pixel->green;
17874 + *blue = pixel->blue;
17878 +rgb_to_pixel(int red, int green, int blue, grub_efi_uga_pixel_t *pixel)
17880 + pixel->red = red;
17881 + pixel->green = green;
17882 + pixel->blue = blue;
17886 +position_to_phys(struct uga *uga, position_t *virt, position_t *phys)
17888 + phys->x = virt->x + uga->screen_pos.x;
17889 + phys->y = virt->y + uga->screen_pos.y;
17893 +abs_paddr(struct uga *uga, position_t *virt)
17896 + position_to_phys(uga, virt, &phys);
17897 + return phys.x + phys.y * uga->screen_size.x;
17901 + grub_efi_uintn_t width;
17902 + grub_efi_uintn_t height;
17903 + grub_efi_uga_pixel_t pixbuf[];
17906 +static struct bltbuf *alloc_bltbuf(grub_efi_uintn_t width,
17907 + grub_efi_uintn_t height)
17909 + struct bltbuf *buf = NULL;
17910 + grub_efi_uintn_t pixbuf_size = width * height *
17911 + sizeof (grub_efi_uga_pixel_t);
17913 + if (!(buf = grub_malloc(sizeof(buf->width) + sizeof(buf->height) +
17917 + buf->width = width;
17918 + buf->height = height;
17919 + grub_memset(buf->pixbuf, '\0', pixbuf_size);
17924 +blt_to_screen(struct uga *uga, struct bltbuf *bltbuf)
17926 + position_t addr = {0, 0};
17928 + position_to_phys(uga, &addr, &addr);
17930 + Call_Service_10(uga->draw_intf->blt, uga->draw_intf, bltbuf->pixbuf,
17931 + EfiUgaBltBufferToVideo,
17934 + bltbuf->width, bltbuf->height,
17939 +blt_pos_to_screen_pos(struct uga *uga, struct bltbuf *bltbuf,
17940 + position_t *bltpos, position_t *bltsz, position_t *pos)
17944 + position_to_phys(uga, pos, &phys);
17946 + Call_Service_10(uga->draw_intf->blt, uga->draw_intf, bltbuf->pixbuf,
17947 + EfiUgaBltBufferToVideo,
17948 + bltpos->x, bltpos->y,
17950 + bltsz->x, bltsz->y,
17955 +blt_to_screen_pos(struct uga *uga, struct bltbuf *bltbuf, position_t *pos)
17957 + position_t bltpos = {0, 0};
17958 + position_t bltsz = { bltbuf->width, bltbuf->height };
17959 + blt_pos_to_screen_pos(uga, bltbuf, &bltpos, &bltsz, pos);
17963 +blt_from_screen_pos(struct uga *uga, struct bltbuf **retbuf,
17964 + position_t *pos, position_t *size)
17966 + struct bltbuf *bltbuf = NULL;
17973 + grub_free(*retbuf);
17975 + bltbuf = alloc_bltbuf(size->x, size->y);
17979 + position_to_phys(uga, pos, &phys);
17981 + Call_Service_10(uga->draw_intf->blt, uga->draw_intf, bltbuf->pixbuf,
17982 + EfiUgaVideoToBltBuffer,
17985 + size->x, size->y, 0);
17986 + *retbuf = bltbuf;
17991 +save_video_mode(struct uga *uga, struct video_mode *mode)
17993 + grub_efi_status_t status;
17995 + status = Call_Service_5(uga->draw_intf->get_mode, uga->draw_intf,
17996 + &mode->horizontal_resolution, &mode->vertical_resolution,
17997 + &mode->color_depth, &mode->refresh_rate);
17998 + return status == GRUB_EFI_SUCCESS;
18001 +static grub_efi_status_t
18002 +set_video_mode(struct uga *uga, struct video_mode *mode)
18004 + grub_efi_status_t status;
18006 + status = Call_Service_5(uga->draw_intf->set_mode, uga->draw_intf,
18007 + mode->horizontal_resolution,
18008 + mode->vertical_resolution,
18009 + mode->color_depth,
18010 + mode->refresh_rate);
18015 +cmp_video_modes(struct video_mode *vm0, struct video_mode *vm1)
18017 + if (vm0->horizontal_resolution == vm1->horizontal_resolution &&
18018 + vm0->vertical_resolution == vm1->vertical_resolution)
18020 + if (vm0->horizontal_resolution >= vm1->horizontal_resolution &&
18021 + vm0->vertical_resolution >= vm1->vertical_resolution)
18027 +blt_from_screen(struct uga *uga, struct bltbuf **retbuf)
18029 + struct bltbuf *bltbuf = NULL;
18030 + position_t pos = {0 ,0};
18031 + position_t size = {
18032 + .x = uga->graphics_mode.horizontal_resolution,
18033 + .y = uga->graphics_mode.vertical_resolution
18036 + return blt_from_screen_pos(uga, retbuf, &pos, &size);
18040 +bltbuf_set_pixel(struct bltbuf *bltbuf, position_t *pos,
18041 + grub_efi_uga_pixel_t *pixel)
18043 + if (pos->x < 0 || pos->x >= bltbuf->width)
18045 + if (pos->x < 0 || pos->y >= bltbuf->height)
18047 + grub_memmove(&bltbuf->pixbuf[pos->x + pos->y * bltbuf->width], pixel,
18052 +bltbuf_get_pixel(struct bltbuf *bltbuf, position_t *pos,
18053 + grub_efi_uga_pixel_t *pixel)
18055 + if (bltbuf && pos->x < bltbuf->width && pos->y < bltbuf->height) {
18056 + grub_memmove(pixel, &bltbuf->pixbuf[pos->x + pos->y * bltbuf->width],
18059 + pixel->red = 0x00;
18060 + pixel->green = 0x00;
18061 + pixel->blue = 0x00;
18066 +bltbuf_set_pixel_rgb(struct bltbuf *bltbuf, position_t *pos,
18067 + int red, int green, int blue)
18069 + grub_efi_uga_pixel_t pixel;
18070 + rgb_to_pixel(red, green, blue, &pixel);
18071 + bltbuf_set_pixel(bltbuf, pos, &pixel);
18075 +bltbuf_set_pixel_idx(struct uga *uga, struct bltbuf *bltbuf,
18076 + position_t *pos, int idx)
18078 + bltbuf_set_pixel(bltbuf, pos, &uga->palette[idx]);
18082 +bltbuf_get_pixel_idx(struct bltbuf *bltbuf, position_t *pos, int *idx)
18084 + grub_efi_uga_pixel_t pixel;
18086 + rgb_to_pixel(0, 0, 0, &pixel);
18087 + bltbuf_get_pixel(bltbuf, pos, &pixel);
18088 + for (*idx = 0; *idx < 16; (*idx)++) {
18089 + if (pixel_equal(cga_colors[*idx], pixel))
18094 +static struct bltbuf *
18095 +xpm_to_bltbuf(struct xpm *xpm)
18097 + struct bltbuf *bltbuf = NULL;
18100 + if (!(bltbuf = alloc_bltbuf(xpm->width, xpm->height)))
18103 + for (pos.y = 0; pos.y < xpm->height; pos.y++) {
18104 + for (pos.x = 0; pos.x < xpm->width; pos.x++) {
18106 + unsigned char idx;
18108 + idx = xpm_get_pixel_idx(xpm, pos.x, pos.y);
18109 + xpm_get_idx(xpm, idx, &xpl);
18111 + bltbuf_set_pixel_rgb(bltbuf, &pos, xpl.red, xpl.green, xpl.blue);
18119 +cursor(struct graphics_backend *backend, int set)
18123 + unsigned short *text;
18124 + position_t fpos, screensz;
18127 + uga = backend->priv;
18129 + if (set && !graphics_get_scroll())
18132 + text = graphics_get_text_buf();
18133 + graphics_get_font_position(&fpos);
18134 + graphics_get_screen_rowscols(&screensz);
18136 + offset = fpos.y * screensz.x + fpos.x;
18139 + text[offset] |= 0x200;
18141 + graphics_clbl(fpos.x, fpos.y, 1, 1, 1);
18144 + text[offset] &= 0xfdff;
18147 +static void blank(struct graphics_backend *backend);
18150 +reset_screen_geometry(struct graphics_backend *backend)
18152 + struct uga *uga = backend->priv;
18153 + struct xpm *xpm = graphics_get_splash_xpm();
18154 + position_t screensz = { .x = 640, .y = 480 };
18157 + screensz.x = xpm->width;
18158 + screensz.y = xpm->height;
18161 + uga->screen_pos.x =
18162 + (uga->graphics_mode.horizontal_resolution - screensz.x) / 2;
18163 + uga->screen_pos.y =
18164 + (uga->graphics_mode.vertical_resolution - screensz.y) / 2;
18167 + graphics_get_screen_rowscols(&screensz);
18168 + graphics_clbl(0, 0, screensz.x, screensz.y, 0);
18169 + graphics_clbl(0, 0, screensz.x, screensz.y, 1);
18173 +get_screen_size(struct graphics_backend *backend, position_t *size)
18175 + struct uga *uga = backend->priv;
18176 + size->x = uga->graphics_mode.horizontal_resolution;
18177 + size->y = uga->graphics_mode.vertical_resolution;
18181 +setxy(struct graphics_backend *backend, position_t *pos)
18187 + graphics_set_font_position(&fpos);
18191 +uga_getxy(struct graphics_backend *backend, position_t *pos)
18193 + graphics_get_font_position(pos);
18197 +draw_pixel(struct graphics_backend *backend, position_t *pos, pixel_t *pixel)
18199 + struct bltbuf *bltbuf = NULL;
18200 + grub_efi_uga_pixel_t *eup = (grub_efi_uga_pixel_t *)pixel;
18202 + bltbuf = alloc_bltbuf(1,1);
18206 + grub_memmove(&bltbuf->pixbuf[0], eup, sizeof (*eup));
18208 + blt_to_screen_pos(backend->priv, bltbuf, pos);
18210 + grub_free(bltbuf);
18214 +get_pixel_idx(struct graphics_backend *backend, int idx)
18216 + static grub_efi_uga_pixel_t pixel;
18217 + struct uga *uga = backend->priv;
18218 + if (idx < 0 || idx > MAX_PALETTE)
18220 + pixel.red = uga->palette[idx].red;
18221 + pixel.green = uga->palette[idx].green;
18222 + pixel.blue = uga->palette[idx].blue;
18223 + return (pixel_t *)&pixel;
18227 +get_pixel_rgb(struct graphics_backend *backend, int red, int green, int blue)
18229 + static grub_efi_uga_pixel_t pixel;
18230 + rgb_to_pixel(red, green, blue, &pixel);
18235 +set_palette(struct graphics_backend *backend, int idx,
18236 + int red, int green, int blue)
18238 + grub_efi_uga_pixel_t pixel;
18239 + struct uga *uga = backend->priv;
18241 + if (idx > MAX_PALETTE)
18243 + rgb_to_pixel(red, green, blue, &pixel);
18244 + grub_memmove(&uga->palette[idx], &pixel, sizeof pixel);
18248 +blank(struct graphics_backend *backend)
18250 + struct uga *uga = backend->priv;
18251 + struct bltbuf *bltbuf;
18252 + position_t pos = {0, 0};
18253 + grub_efi_uintn_t x, y, i, j;
18254 + unsigned char r = 0 ,g = 0;
18256 + x = uga->graphics_mode.horizontal_resolution;
18257 + y = uga->graphics_mode.vertical_resolution;
18259 + if (x == 0 || y == 0)
18262 + bltbuf = alloc_bltbuf(x, y);
18263 + for (j = 0; j < y; j++) {
18264 + if (debug_graphics && j % 16 == 0) {
18265 + g = g == 0 ? 7 : 0;
18266 + r = g == 0 ? 7 : 0;
18268 + for (i = 0; i < x; i++) {
18269 + if (debug_graphics && i % 16 == 0) {
18270 + g = g == 0 ? 7 : 0;
18271 + r = g == 0 ? 7 : 0;
18275 + bltbuf_set_pixel_rgb(bltbuf, &pos, r * 16, g * 16, 0x0);
18279 + Call_Service_10(uga->draw_intf->blt, uga->draw_intf, bltbuf->pixbuf,
18280 + EfiUgaBltBufferToVideo, 0, 0, 0, 0, x, y, 0);
18282 + grub_free(bltbuf);
18286 +bltbuf_cp_bl(struct bltbuf *d, position_t dpos,
18287 + struct bltbuf *s, position_t spos)
18289 + grub_efi_uga_pixel_t *dp, *sp;
18291 + const int xavail = MAX(0, s ? s->width - spos.x : 0);
18292 + const int xtotal = MAX(0, d->width - dpos.x);
18293 + const int xcp = MAX(0, MIN(xtotal, xavail));
18294 + const int xcl = MAX(0, xtotal - xcp);
18296 + const int yavail = MAX(0, s ? s->height - spos.y : 0);
18297 + const int ytotal = MAX(0, d->height - dpos.y);
18298 + const int ycp = MAX(0, MIN(ytotal, yavail));
18299 + const int ycl = MAX(0, ytotal - ycp);
18303 + for (y = 0; y < ytotal; y++) {
18304 + dp = &d->pixbuf[(dpos.y + y) * d->width + dpos.x];
18306 + if (y < yavail) {
18307 + sp = &s->pixbuf[(spos.y + y) * s->width + spos.x];
18308 + memmove(dp, sp, xcp * sizeof (*dp));
18309 + dp = &d->pixbuf[(dpos.y + y) * d->width + dpos.x + xcp];
18310 + memset(dp, '\0', xcl * sizeof (*dp));
18312 + memset(dp, '\0', xtotal * sizeof (*dp));
18317 +/* copy a region the size of bltbuf from the background into bltbuf,
18318 + * starting at offset bgpos
18321 +bltbuf_draw_bg(struct graphics_backend *backend, struct bltbuf *bltbuf,
18322 + position_t bgpos)
18324 + struct uga *uga = backend->priv;
18325 + position_t blpos = { 0, 0 };
18327 + bltbuf_cp_bl(bltbuf, blpos, uga->background, bgpos);
18331 +dbg_dump_palette(struct graphics_backend *backend)
18335 + if (!backend || !backend->priv)
18337 + uga = backend->priv;
18338 + if (!uga->palette)
18343 +is_shadow_pixel(position_t screensz, position_t textpos, position_t bitpos,
18344 + position_t fontsz)
18346 + unsigned short *text = graphics_get_text_buf();
18347 + const unsigned char *glyph;
18348 + position_t glyphpos = { textpos.x, textpos.y };
18349 + position_t glyphbit = { bitpos.x, bitpos.y };
18350 + unsigned short ch;
18352 + if (glyphbit.x == 0) {
18353 + glyphbit.x = fontsz.x;
18356 + if (glyphbit.y == 0) {
18357 + glyphbit.y = fontsz.y;
18363 + if (glyphpos.x < 0 || glyphpos.y < 0)
18366 + ch = text[glyphpos.y * screensz.x + glyphpos.x] & 0xff;
18367 + glyph = font8x16 + (ch << 4);
18368 + return glyph[glyphbit.y] & (1 << ((fontsz.x-1) - glyphbit.x));
18372 +bltbuf_draw_character(struct graphics_backend *backend,
18373 + struct bltbuf *bltbuf, /* the bltbuf to draw into */
18374 + position_t target, /* the position in the bltbuf to draw to */
18375 + position_t fontsz, /* the size of the font, in pixels */
18376 + position_t charpos, /* the position of the character in the text
18378 + position_t screensz, /* the size of the screen in characters */
18379 + unsigned short ch /* the character to draw, plus flags */
18382 + struct uga *uga = backend->priv;
18383 + position_t blpos;
18384 + position_t glyphpos;
18386 + blpos.y = target.y;
18387 + for (glyphpos.y = 0; glyphpos.y < fontsz.y; glyphpos.y++, blpos.y++) {
18388 + blpos.x = target.x;
18389 + for (glyphpos.x = 0; glyphpos.x < fontsz.x; glyphpos.x++, blpos.x++) {
18390 + int invert = (ch & 0x0100) != 0;
18391 + int set = (ch & 0x0200) != 0;
18392 + const unsigned char *glyph = font8x16 + ((ch & 0xff) << 4);
18393 + int bit = glyph[glyphpos.y] & (1 << ((fontsz.x-1) - glyphpos.x));
18398 + idx = bit ? 0 : 15;
18403 + if (is_shadow_pixel(screensz, charpos, glyphpos, fontsz) ||
18404 + !uga->background)
18405 + idx = invert ? 15 : 0;
18408 + idx = bit ? 0 : 15;
18412 + bltbuf_set_pixel_idx(uga, bltbuf, &blpos, idx);
18418 +bltbuf_draw_text(struct graphics_backend *backend,
18419 + struct bltbuf *bltbuf, /* the buffer to draw into */
18420 + position_t screensz, /* the size of the screen in characters */
18421 + position_t fontsz, /* the size of the font in pixels */
18422 + position_t txtpos, /* the position of the text on the screen
18423 + (in characters) */
18424 + position_t txtsz /* the size of the block to fill in
18425 + (in characters) */
18428 + struct uga *uga = backend->priv;
18429 + unsigned short *text = graphics_get_text_buf();
18430 + position_t charpos;
18432 + for (charpos.y = txtpos.y; charpos.y < txtpos.y + txtsz.y; charpos.y++) {
18433 + for (charpos.x = txtpos.x; charpos.x < txtpos.x + txtsz.x; charpos.x++){
18434 + int offset = charpos.y * screensz.x + charpos.x;
18435 + position_t blpos = { (charpos.x-txtpos.x)*fontsz.x,
18436 + (charpos.y-txtpos.y)*fontsz.y };
18438 + bltbuf_draw_character(backend, bltbuf, blpos, fontsz, charpos,
18439 + screensz, text[offset]);
18445 +clbl(struct graphics_backend *backend, int col, int row, int width, int height,
18448 + struct uga *uga = backend->priv;
18451 + struct bltbuf *bltbuf;
18452 + position_t fontsz, blpos, blsz, screensz;
18453 + unsigned short *text;
18455 +// blank(backend);
18457 + xpm = graphics_get_splash_xpm();
18458 + if (xpm && !uga->background)
18459 + uga->background = xpm_to_bltbuf(xpm);
18461 + graphics_get_screen_rowscols(&screensz);
18462 + width = MIN(width, screensz.x - col);
18463 + height = MIN(height, screensz.y - row);
18464 + graphics_get_font_size(&fontsz);
18466 + blsz.x = width * fontsz.x;
18467 + blsz.y = height * fontsz.y;
18469 + bltbuf = alloc_bltbuf(blsz.x, blsz.y);
18473 + blsz.x = col * fontsz.x;
18474 + blsz.y = row * fontsz.y;
18476 + text = graphics_get_text_buf();
18477 + bltbuf_draw_bg(backend, bltbuf, blsz);
18485 + bltbuf_draw_text(backend, bltbuf, screensz, fontsz, blpos, blsz);
18488 + blpos.x = col * fontsz.x;
18489 + blpos.y = row * fontsz.y;
18491 + blt_to_screen_pos(uga, bltbuf, &blpos);
18495 +setup_cga_palette(void)
18498 + * Nov 27 15:53:19 <pjones> ping?
18499 + * Nov 27 15:54:13 <ajax> pong?
18500 + * Nov 27 15:54:16 <pjones> say I've got a color channel in 6 bits, and it's
18501 + * stored in an 8-bit value. let's call it white.
18502 + * now let's say I've got hardware with 8 bits per
18503 + * channel that I'm blitting to. What's the right
18504 + * way to expand 0x3f to 0xff?
18505 + * Nov 27 15:55:17 <pjones> (my naive idea, which I haven't tried yet, is
18506 + * "x <<= 2; if (x) x |= 3;")
18507 + * Nov 27 15:55:35 <ajax> no.
18508 + * Nov 27 15:55:43 <pjones> yeah, figured I'd ask instead of doing that.
18509 + * Nov 27 15:56:15 <ajax> x <<= 2; x |= ((x & 0xc0) >> 6);
18512 + for (i = 0; i < n_cga_colors; i++) {
18513 + grub_efi_uga_pixel_t *pixel = &cga_colors[i];
18515 + if ((pixel->red | pixel->green | pixel->blue) & 0xc0)
18517 + pixel->red <<= 2;
18518 + pixel->red |= ((pixel->red & 0xc0) >> 6);
18519 + pixel->red &= 0xff;
18520 + pixel->green <<= 2;
18521 + pixel->green |= ((pixel->green & 0xc0) >> 6);
18522 + pixel->green &= 0xff;
18523 + pixel->blue <<= 2;
18524 + pixel->blue |= ((pixel->blue & 0xc0) >> 6);
18525 + pixel->blue &= 0xff;
18530 +try_enable(struct graphics_backend *backend)
18532 + struct uga *uga = backend->priv;
18533 + struct video_mode modes[] = {
18534 + { 1440, 900, 32, 60 },
18535 + { 640, 480, 32, 60 },
18536 + { 800, 600, 32, 60 },
18537 + { 640, 480, 16, 60 },
18538 + { 800, 600, 16, 60 },
18539 + { 640, 480, 8, 60 },
18540 + { 800, 600, 8, 60 }
18542 + struct video_mode mode;
18543 + position_t font_size;
18546 + if (uga->text_mode.horizontal_resolution == 0) {
18547 + grub_efi_set_text_mode(1);
18548 + save_video_mode(uga, &uga->text_mode);
18551 + if (uga->graphics_mode.horizontal_resolution == 0) {
18552 + grub_efi_set_text_mode(0);
18553 + save_video_mode(uga, &uga->graphics_mode);
18555 + if (cmp_video_modes(&uga->graphics_mode, &modes[0]) >= 0) {
18556 + uga->current_mode = GRAPHICS;
18557 + graphics_alloc_text_buf();
18560 + for (i = 0; i < sizeof (modes) / sizeof (modes[0]); i++) {
18561 + set_video_mode(uga, &modes[i]);
18562 + save_video_mode(uga, &mode);
18563 + if (!cmp_video_modes(&modes[i], &mode)) {
18564 + grub_memmove(&uga->graphics_mode, &mode, sizeof (mode));
18565 + uga->current_mode = GRAPHICS;
18566 + graphics_alloc_text_buf();
18570 + set_video_mode(uga, &uga->graphics_mode);
18571 + save_video_mode(uga, &mode);
18572 + if (!cmp_video_modes(&uga->graphics_mode, &mode)) {
18573 + uga->current_mode = GRAPHICS;
18574 + graphics_alloc_text_buf();
18577 + grub_efi_set_text_mode(1);
18580 + set_video_mode(uga, &uga->graphics_mode);
18582 + uga->current_mode = GRAPHICS;
18587 +enable(struct graphics_backend *backend)
18589 + struct uga *uga = backend->priv;
18590 + grub_efi_handle_t *handle, *handles;
18591 + grub_efi_uintn_t num_handles;
18592 + grub_efi_pci_io_t *pci_proto;
18596 + if (uga->current_mode == GRAPHICS) {
18600 + if (!(uga = grub_malloc(sizeof (*uga)))) {
18603 + grub_memset(uga, '\0', sizeof (*uga));
18605 + uga->current_mode = TEXT;
18607 + handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL,
18608 + &draw_guid, NULL, &num_handles);
18610 + if (!num_handles || !handles)
18616 + for (handle = handles; num_handles--; handle++)
18618 + pci_proto = grub_efi_open_protocol (*handle, &pci_io_guid,
18619 + GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
18624 + uga->draw_intf = grub_efi_open_protocol (*handle, &draw_guid,
18625 + GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
18627 + if (uga->draw_intf)
18629 + grub_efi_setup_gfx_pci(*handle);
18634 + grub_free(handles);
18636 + if (!uga->draw_intf)
18637 + uga->draw_intf = grub_efi_locate_protocol(&draw_guid, NULL);
18639 + if (!uga->draw_intf) {
18643 + grub_memset(&uga->graphics_mode, '\0', sizeof (uga->graphics_mode));
18644 + grub_memset(&uga->text_mode, '\0', sizeof (uga->text_mode));
18645 + backend->priv = uga;
18647 + setup_cga_palette();
18648 + for (i = 0; i < n_cga_colors; i++) {
18649 + uga->palette[i].red = cga_colors[i].red;
18650 + uga->palette[i].green = cga_colors[i].green;
18651 + uga->palette[i].blue = cga_colors[i].blue;
18655 + if (try_enable(backend)) {
18656 + reset_screen_geometry(backend);
18660 + backend->priv = NULL;
18665 +static void disable(struct graphics_backend *backend)
18672 + uga = backend->priv;
18673 + if (!uga || uga->current_mode != GRAPHICS)
18679 + set_video_mode(uga, &uga->text_mode);
18680 + grub_efi_set_text_mode(1);
18682 + uga->current_mode = TEXT;
18685 +struct graphics_backend uga_backend = {
18687 + .enable = enable,
18688 + .disable = disable,
18689 + .set_kernel_params = set_kernel_params,
18691 + .set_palette = set_palette,
18692 + .get_pixel_idx = get_pixel_idx,
18693 + .get_pixel_rgb = get_pixel_rgb,
18694 + .draw_pixel = draw_pixel,
18695 + .reset_screen_geometry = reset_screen_geometry,
18696 + .get_screen_size = get_screen_size,
18697 + .getxy = uga_getxy,
18700 + .cursor = cursor,
18703 +#endif /* SUPPORT_GRAPHICS */
18704 diff --git a/efi/font_8x16.c b/efi/font_8x16.c
18705 new file mode 100644
18706 index 0000000..94829ec
18708 +++ b/efi/font_8x16.c
18710 +/* font_8x16.c - 8x16 font for GRUB/EFI */
18712 + * GRUB -- GRand Unified Bootloader
18713 + * Copied from Linux kernel drivers/video/console/font_8x16.c,
18714 + * which is generated by cpi2fnt.
18716 + * This program is free software; you can redistribute it and/or modify
18717 + * it under the terms of the GNU General Public License as published by
18718 + * the Free Software Foundation; either version 2 of the License, or
18719 + * (at your option) any later version.
18721 + * This program is distributed in the hope that it will be useful,
18722 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
18723 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18724 + * GNU General Public License for more details.
18726 + * You should have received a copy of the GNU General Public License
18727 + * along with this program; if not, write to the Free Software
18728 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18731 +#ifdef SUPPORT_GRAPHICS
18733 +#define FONTDATAMAX 4096
18735 +const unsigned char font8x16[FONTDATAMAX] = {
18737 + /* 0 0x00 '^@' */
18738 + 0x00, /* 00000000 */
18739 + 0x00, /* 00000000 */
18740 + 0x00, /* 00000000 */
18741 + 0x00, /* 00000000 */
18742 + 0x00, /* 00000000 */
18743 + 0x00, /* 00000000 */
18744 + 0x00, /* 00000000 */
18745 + 0x00, /* 00000000 */
18746 + 0x00, /* 00000000 */
18747 + 0x00, /* 00000000 */
18748 + 0x00, /* 00000000 */
18749 + 0x00, /* 00000000 */
18750 + 0x00, /* 00000000 */
18751 + 0x00, /* 00000000 */
18752 + 0x00, /* 00000000 */
18753 + 0x00, /* 00000000 */
18755 + /* 1 0x01 '^A' */
18756 + 0x00, /* 00000000 */
18757 + 0x00, /* 00000000 */
18758 + 0x7e, /* 01111110 */
18759 + 0x81, /* 10000001 */
18760 + 0xa5, /* 10100101 */
18761 + 0x81, /* 10000001 */
18762 + 0x81, /* 10000001 */
18763 + 0xbd, /* 10111101 */
18764 + 0x99, /* 10011001 */
18765 + 0x81, /* 10000001 */
18766 + 0x81, /* 10000001 */
18767 + 0x7e, /* 01111110 */
18768 + 0x00, /* 00000000 */
18769 + 0x00, /* 00000000 */
18770 + 0x00, /* 00000000 */
18771 + 0x00, /* 00000000 */
18773 + /* 2 0x02 '^B' */
18774 + 0x00, /* 00000000 */
18775 + 0x00, /* 00000000 */
18776 + 0x7e, /* 01111110 */
18777 + 0xff, /* 11111111 */
18778 + 0xdb, /* 11011011 */
18779 + 0xff, /* 11111111 */
18780 + 0xff, /* 11111111 */
18781 + 0xc3, /* 11000011 */
18782 + 0xe7, /* 11100111 */
18783 + 0xff, /* 11111111 */
18784 + 0xff, /* 11111111 */
18785 + 0x7e, /* 01111110 */
18786 + 0x00, /* 00000000 */
18787 + 0x00, /* 00000000 */
18788 + 0x00, /* 00000000 */
18789 + 0x00, /* 00000000 */
18791 + /* 3 0x03 '^C' */
18792 + 0x00, /* 00000000 */
18793 + 0x00, /* 00000000 */
18794 + 0x00, /* 00000000 */
18795 + 0x00, /* 00000000 */
18796 + 0x6c, /* 01101100 */
18797 + 0xfe, /* 11111110 */
18798 + 0xfe, /* 11111110 */
18799 + 0xfe, /* 11111110 */
18800 + 0xfe, /* 11111110 */
18801 + 0x7c, /* 01111100 */
18802 + 0x38, /* 00111000 */
18803 + 0x10, /* 00010000 */
18804 + 0x00, /* 00000000 */
18805 + 0x00, /* 00000000 */
18806 + 0x00, /* 00000000 */
18807 + 0x00, /* 00000000 */
18809 + /* 4 0x04 '^D' */
18810 + 0x00, /* 00000000 */
18811 + 0x00, /* 00000000 */
18812 + 0x00, /* 00000000 */
18813 + 0x00, /* 00000000 */
18814 + 0x10, /* 00010000 */
18815 + 0x38, /* 00111000 */
18816 + 0x7c, /* 01111100 */
18817 + 0xfe, /* 11111110 */
18818 + 0x7c, /* 01111100 */
18819 + 0x38, /* 00111000 */
18820 + 0x10, /* 00010000 */
18821 + 0x00, /* 00000000 */
18822 + 0x00, /* 00000000 */
18823 + 0x00, /* 00000000 */
18824 + 0x00, /* 00000000 */
18825 + 0x00, /* 00000000 */
18827 + /* 5 0x05 '^E' */
18828 + 0x00, /* 00000000 */
18829 + 0x00, /* 00000000 */
18830 + 0x00, /* 00000000 */
18831 + 0x18, /* 00011000 */
18832 + 0x3c, /* 00111100 */
18833 + 0x3c, /* 00111100 */
18834 + 0xe7, /* 11100111 */
18835 + 0xe7, /* 11100111 */
18836 + 0xe7, /* 11100111 */
18837 + 0x18, /* 00011000 */
18838 + 0x18, /* 00011000 */
18839 + 0x3c, /* 00111100 */
18840 + 0x00, /* 00000000 */
18841 + 0x00, /* 00000000 */
18842 + 0x00, /* 00000000 */
18843 + 0x00, /* 00000000 */
18845 + /* 6 0x06 '^F' */
18846 + 0x00, /* 00000000 */
18847 + 0x00, /* 00000000 */
18848 + 0x00, /* 00000000 */
18849 + 0x18, /* 00011000 */
18850 + 0x3c, /* 00111100 */
18851 + 0x7e, /* 01111110 */
18852 + 0xff, /* 11111111 */
18853 + 0xff, /* 11111111 */
18854 + 0x7e, /* 01111110 */
18855 + 0x18, /* 00011000 */
18856 + 0x18, /* 00011000 */
18857 + 0x3c, /* 00111100 */
18858 + 0x00, /* 00000000 */
18859 + 0x00, /* 00000000 */
18860 + 0x00, /* 00000000 */
18861 + 0x00, /* 00000000 */
18863 + /* 7 0x07 '^G' */
18864 + 0x00, /* 00000000 */
18865 + 0x00, /* 00000000 */
18866 + 0x00, /* 00000000 */
18867 + 0x00, /* 00000000 */
18868 + 0x00, /* 00000000 */
18869 + 0x00, /* 00000000 */
18870 + 0x18, /* 00011000 */
18871 + 0x3c, /* 00111100 */
18872 + 0x3c, /* 00111100 */
18873 + 0x18, /* 00011000 */
18874 + 0x00, /* 00000000 */
18875 + 0x00, /* 00000000 */
18876 + 0x00, /* 00000000 */
18877 + 0x00, /* 00000000 */
18878 + 0x00, /* 00000000 */
18879 + 0x00, /* 00000000 */
18881 + /* 8 0x08 '^H' */
18882 + 0xff, /* 11111111 */
18883 + 0xff, /* 11111111 */
18884 + 0xff, /* 11111111 */
18885 + 0xff, /* 11111111 */
18886 + 0xff, /* 11111111 */
18887 + 0xff, /* 11111111 */
18888 + 0xe7, /* 11100111 */
18889 + 0xc3, /* 11000011 */
18890 + 0xc3, /* 11000011 */
18891 + 0xe7, /* 11100111 */
18892 + 0xff, /* 11111111 */
18893 + 0xff, /* 11111111 */
18894 + 0xff, /* 11111111 */
18895 + 0xff, /* 11111111 */
18896 + 0xff, /* 11111111 */
18897 + 0xff, /* 11111111 */
18899 + /* 9 0x09 '^I' */
18900 + 0x00, /* 00000000 */
18901 + 0x00, /* 00000000 */
18902 + 0x00, /* 00000000 */
18903 + 0x00, /* 00000000 */
18904 + 0x00, /* 00000000 */
18905 + 0x3c, /* 00111100 */
18906 + 0x66, /* 01100110 */
18907 + 0x42, /* 01000010 */
18908 + 0x42, /* 01000010 */
18909 + 0x66, /* 01100110 */
18910 + 0x3c, /* 00111100 */
18911 + 0x00, /* 00000000 */
18912 + 0x00, /* 00000000 */
18913 + 0x00, /* 00000000 */
18914 + 0x00, /* 00000000 */
18915 + 0x00, /* 00000000 */
18917 + /* 10 0x0a '^J' */
18918 + 0xff, /* 11111111 */
18919 + 0xff, /* 11111111 */
18920 + 0xff, /* 11111111 */
18921 + 0xff, /* 11111111 */
18922 + 0xff, /* 11111111 */
18923 + 0xc3, /* 11000011 */
18924 + 0x99, /* 10011001 */
18925 + 0xbd, /* 10111101 */
18926 + 0xbd, /* 10111101 */
18927 + 0x99, /* 10011001 */
18928 + 0xc3, /* 11000011 */
18929 + 0xff, /* 11111111 */
18930 + 0xff, /* 11111111 */
18931 + 0xff, /* 11111111 */
18932 + 0xff, /* 11111111 */
18933 + 0xff, /* 11111111 */
18935 + /* 11 0x0b '^K' */
18936 + 0x00, /* 00000000 */
18937 + 0x00, /* 00000000 */
18938 + 0x1e, /* 00011110 */
18939 + 0x0e, /* 00001110 */
18940 + 0x1a, /* 00011010 */
18941 + 0x32, /* 00110010 */
18942 + 0x78, /* 01111000 */
18943 + 0xcc, /* 11001100 */
18944 + 0xcc, /* 11001100 */
18945 + 0xcc, /* 11001100 */
18946 + 0xcc, /* 11001100 */
18947 + 0x78, /* 01111000 */
18948 + 0x00, /* 00000000 */
18949 + 0x00, /* 00000000 */
18950 + 0x00, /* 00000000 */
18951 + 0x00, /* 00000000 */
18953 + /* 12 0x0c '^L' */
18954 + 0x00, /* 00000000 */
18955 + 0x00, /* 00000000 */
18956 + 0x3c, /* 00111100 */
18957 + 0x66, /* 01100110 */
18958 + 0x66, /* 01100110 */
18959 + 0x66, /* 01100110 */
18960 + 0x66, /* 01100110 */
18961 + 0x3c, /* 00111100 */
18962 + 0x18, /* 00011000 */
18963 + 0x7e, /* 01111110 */
18964 + 0x18, /* 00011000 */
18965 + 0x18, /* 00011000 */
18966 + 0x00, /* 00000000 */
18967 + 0x00, /* 00000000 */
18968 + 0x00, /* 00000000 */
18969 + 0x00, /* 00000000 */
18971 + /* 13 0x0d '^M' */
18972 + 0x00, /* 00000000 */
18973 + 0x00, /* 00000000 */
18974 + 0x3f, /* 00111111 */
18975 + 0x33, /* 00110011 */
18976 + 0x3f, /* 00111111 */
18977 + 0x30, /* 00110000 */
18978 + 0x30, /* 00110000 */
18979 + 0x30, /* 00110000 */
18980 + 0x30, /* 00110000 */
18981 + 0x70, /* 01110000 */
18982 + 0xf0, /* 11110000 */
18983 + 0xe0, /* 11100000 */
18984 + 0x00, /* 00000000 */
18985 + 0x00, /* 00000000 */
18986 + 0x00, /* 00000000 */
18987 + 0x00, /* 00000000 */
18989 + /* 14 0x0e '^N' */
18990 + 0x00, /* 00000000 */
18991 + 0x00, /* 00000000 */
18992 + 0x7f, /* 01111111 */
18993 + 0x63, /* 01100011 */
18994 + 0x7f, /* 01111111 */
18995 + 0x63, /* 01100011 */
18996 + 0x63, /* 01100011 */
18997 + 0x63, /* 01100011 */
18998 + 0x63, /* 01100011 */
18999 + 0x67, /* 01100111 */
19000 + 0xe7, /* 11100111 */
19001 + 0xe6, /* 11100110 */
19002 + 0xc0, /* 11000000 */
19003 + 0x00, /* 00000000 */
19004 + 0x00, /* 00000000 */
19005 + 0x00, /* 00000000 */
19007 + /* 15 0x0f '^O' */
19008 + 0x00, /* 00000000 */
19009 + 0x00, /* 00000000 */
19010 + 0x00, /* 00000000 */
19011 + 0x18, /* 00011000 */
19012 + 0x18, /* 00011000 */
19013 + 0xdb, /* 11011011 */
19014 + 0x3c, /* 00111100 */
19015 + 0xe7, /* 11100111 */
19016 + 0x3c, /* 00111100 */
19017 + 0xdb, /* 11011011 */
19018 + 0x18, /* 00011000 */
19019 + 0x18, /* 00011000 */
19020 + 0x00, /* 00000000 */
19021 + 0x00, /* 00000000 */
19022 + 0x00, /* 00000000 */
19023 + 0x00, /* 00000000 */
19025 + /* 16 0x10 '^P' */
19026 + 0x00, /* 00000000 */
19027 + 0x80, /* 10000000 */
19028 + 0xc0, /* 11000000 */
19029 + 0xe0, /* 11100000 */
19030 + 0xf0, /* 11110000 */
19031 + 0xf8, /* 11111000 */
19032 + 0xfe, /* 11111110 */
19033 + 0xf8, /* 11111000 */
19034 + 0xf0, /* 11110000 */
19035 + 0xe0, /* 11100000 */
19036 + 0xc0, /* 11000000 */
19037 + 0x80, /* 10000000 */
19038 + 0x00, /* 00000000 */
19039 + 0x00, /* 00000000 */
19040 + 0x00, /* 00000000 */
19041 + 0x00, /* 00000000 */
19043 + /* 17 0x11 '^Q' */
19044 + 0x00, /* 00000000 */
19045 + 0x02, /* 00000010 */
19046 + 0x06, /* 00000110 */
19047 + 0x0e, /* 00001110 */
19048 + 0x1e, /* 00011110 */
19049 + 0x3e, /* 00111110 */
19050 + 0xfe, /* 11111110 */
19051 + 0x3e, /* 00111110 */
19052 + 0x1e, /* 00011110 */
19053 + 0x0e, /* 00001110 */
19054 + 0x06, /* 00000110 */
19055 + 0x02, /* 00000010 */
19056 + 0x00, /* 00000000 */
19057 + 0x00, /* 00000000 */
19058 + 0x00, /* 00000000 */
19059 + 0x00, /* 00000000 */
19061 + /* 18 0x12 '^R' */
19062 + 0x00, /* 00000000 */
19063 + 0x00, /* 00000000 */
19064 + 0x18, /* 00011000 */
19065 + 0x3c, /* 00111100 */
19066 + 0x7e, /* 01111110 */
19067 + 0x18, /* 00011000 */
19068 + 0x18, /* 00011000 */
19069 + 0x18, /* 00011000 */
19070 + 0x7e, /* 01111110 */
19071 + 0x3c, /* 00111100 */
19072 + 0x18, /* 00011000 */
19073 + 0x00, /* 00000000 */
19074 + 0x00, /* 00000000 */
19075 + 0x00, /* 00000000 */
19076 + 0x00, /* 00000000 */
19077 + 0x00, /* 00000000 */
19079 + /* 19 0x13 '^S' */
19080 + 0x00, /* 00000000 */
19081 + 0x00, /* 00000000 */
19082 + 0x66, /* 01100110 */
19083 + 0x66, /* 01100110 */
19084 + 0x66, /* 01100110 */
19085 + 0x66, /* 01100110 */
19086 + 0x66, /* 01100110 */
19087 + 0x66, /* 01100110 */
19088 + 0x66, /* 01100110 */
19089 + 0x00, /* 00000000 */
19090 + 0x66, /* 01100110 */
19091 + 0x66, /* 01100110 */
19092 + 0x00, /* 00000000 */
19093 + 0x00, /* 00000000 */
19094 + 0x00, /* 00000000 */
19095 + 0x00, /* 00000000 */
19097 + /* 20 0x14 '^T' */
19098 + 0x00, /* 00000000 */
19099 + 0x00, /* 00000000 */
19100 + 0x7f, /* 01111111 */
19101 + 0xdb, /* 11011011 */
19102 + 0xdb, /* 11011011 */
19103 + 0xdb, /* 11011011 */
19104 + 0x7b, /* 01111011 */
19105 + 0x1b, /* 00011011 */
19106 + 0x1b, /* 00011011 */
19107 + 0x1b, /* 00011011 */
19108 + 0x1b, /* 00011011 */
19109 + 0x1b, /* 00011011 */
19110 + 0x00, /* 00000000 */
19111 + 0x00, /* 00000000 */
19112 + 0x00, /* 00000000 */
19113 + 0x00, /* 00000000 */
19115 + /* 21 0x15 '^U' */
19116 + 0x00, /* 00000000 */
19117 + 0x7c, /* 01111100 */
19118 + 0xc6, /* 11000110 */
19119 + 0x60, /* 01100000 */
19120 + 0x38, /* 00111000 */
19121 + 0x6c, /* 01101100 */
19122 + 0xc6, /* 11000110 */
19123 + 0xc6, /* 11000110 */
19124 + 0x6c, /* 01101100 */
19125 + 0x38, /* 00111000 */
19126 + 0x0c, /* 00001100 */
19127 + 0xc6, /* 11000110 */
19128 + 0x7c, /* 01111100 */
19129 + 0x00, /* 00000000 */
19130 + 0x00, /* 00000000 */
19131 + 0x00, /* 00000000 */
19133 + /* 22 0x16 '^V' */
19134 + 0x00, /* 00000000 */
19135 + 0x00, /* 00000000 */
19136 + 0x00, /* 00000000 */
19137 + 0x00, /* 00000000 */
19138 + 0x00, /* 00000000 */
19139 + 0x00, /* 00000000 */
19140 + 0x00, /* 00000000 */
19141 + 0x00, /* 00000000 */
19142 + 0xfe, /* 11111110 */
19143 + 0xfe, /* 11111110 */
19144 + 0xfe, /* 11111110 */
19145 + 0xfe, /* 11111110 */
19146 + 0x00, /* 00000000 */
19147 + 0x00, /* 00000000 */
19148 + 0x00, /* 00000000 */
19149 + 0x00, /* 00000000 */
19151 + /* 23 0x17 '^W' */
19152 + 0x00, /* 00000000 */
19153 + 0x00, /* 00000000 */
19154 + 0x18, /* 00011000 */
19155 + 0x3c, /* 00111100 */
19156 + 0x7e, /* 01111110 */
19157 + 0x18, /* 00011000 */
19158 + 0x18, /* 00011000 */
19159 + 0x18, /* 00011000 */
19160 + 0x7e, /* 01111110 */
19161 + 0x3c, /* 00111100 */
19162 + 0x18, /* 00011000 */
19163 + 0x7e, /* 01111110 */
19164 + 0x00, /* 00000000 */
19165 + 0x00, /* 00000000 */
19166 + 0x00, /* 00000000 */
19167 + 0x00, /* 00000000 */
19169 + /* 24 0x18 '^X' */
19170 + 0x00, /* 00000000 */
19171 + 0x00, /* 00000000 */
19172 + 0x18, /* 00011000 */
19173 + 0x3c, /* 00111100 */
19174 + 0x7e, /* 01111110 */
19175 + 0x18, /* 00011000 */
19176 + 0x18, /* 00011000 */
19177 + 0x18, /* 00011000 */
19178 + 0x18, /* 00011000 */
19179 + 0x18, /* 00011000 */
19180 + 0x18, /* 00011000 */
19181 + 0x18, /* 00011000 */
19182 + 0x00, /* 00000000 */
19183 + 0x00, /* 00000000 */
19184 + 0x00, /* 00000000 */
19185 + 0x00, /* 00000000 */
19187 + /* 25 0x19 '^Y' */
19188 + 0x00, /* 00000000 */
19189 + 0x00, /* 00000000 */
19190 + 0x18, /* 00011000 */
19191 + 0x18, /* 00011000 */
19192 + 0x18, /* 00011000 */
19193 + 0x18, /* 00011000 */
19194 + 0x18, /* 00011000 */
19195 + 0x18, /* 00011000 */
19196 + 0x18, /* 00011000 */
19197 + 0x7e, /* 01111110 */
19198 + 0x3c, /* 00111100 */
19199 + 0x18, /* 00011000 */
19200 + 0x00, /* 00000000 */
19201 + 0x00, /* 00000000 */
19202 + 0x00, /* 00000000 */
19203 + 0x00, /* 00000000 */
19205 + /* 26 0x1a '^Z' */
19206 + 0x00, /* 00000000 */
19207 + 0x00, /* 00000000 */
19208 + 0x00, /* 00000000 */
19209 + 0x00, /* 00000000 */
19210 + 0x00, /* 00000000 */
19211 + 0x18, /* 00011000 */
19212 + 0x0c, /* 00001100 */
19213 + 0xfe, /* 11111110 */
19214 + 0x0c, /* 00001100 */
19215 + 0x18, /* 00011000 */
19216 + 0x00, /* 00000000 */
19217 + 0x00, /* 00000000 */
19218 + 0x00, /* 00000000 */
19219 + 0x00, /* 00000000 */
19220 + 0x00, /* 00000000 */
19221 + 0x00, /* 00000000 */
19223 + /* 27 0x1b '^[' */
19224 + 0x00, /* 00000000 */
19225 + 0x00, /* 00000000 */
19226 + 0x00, /* 00000000 */
19227 + 0x00, /* 00000000 */
19228 + 0x00, /* 00000000 */
19229 + 0x30, /* 00110000 */
19230 + 0x60, /* 01100000 */
19231 + 0xfe, /* 11111110 */
19232 + 0x60, /* 01100000 */
19233 + 0x30, /* 00110000 */
19234 + 0x00, /* 00000000 */
19235 + 0x00, /* 00000000 */
19236 + 0x00, /* 00000000 */
19237 + 0x00, /* 00000000 */
19238 + 0x00, /* 00000000 */
19239 + 0x00, /* 00000000 */
19241 + /* 28 0x1c '^\' */
19242 + 0x00, /* 00000000 */
19243 + 0x00, /* 00000000 */
19244 + 0x00, /* 00000000 */
19245 + 0x00, /* 00000000 */
19246 + 0x00, /* 00000000 */
19247 + 0x00, /* 00000000 */
19248 + 0xc0, /* 11000000 */
19249 + 0xc0, /* 11000000 */
19250 + 0xc0, /* 11000000 */
19251 + 0xfe, /* 11111110 */
19252 + 0x00, /* 00000000 */
19253 + 0x00, /* 00000000 */
19254 + 0x00, /* 00000000 */
19255 + 0x00, /* 00000000 */
19256 + 0x00, /* 00000000 */
19257 + 0x00, /* 00000000 */
19259 + /* 29 0x1d '^]' */
19260 + 0x00, /* 00000000 */
19261 + 0x00, /* 00000000 */
19262 + 0x00, /* 00000000 */
19263 + 0x00, /* 00000000 */
19264 + 0x00, /* 00000000 */
19265 + 0x28, /* 00101000 */
19266 + 0x6c, /* 01101100 */
19267 + 0xfe, /* 11111110 */
19268 + 0x6c, /* 01101100 */
19269 + 0x28, /* 00101000 */
19270 + 0x00, /* 00000000 */
19271 + 0x00, /* 00000000 */
19272 + 0x00, /* 00000000 */
19273 + 0x00, /* 00000000 */
19274 + 0x00, /* 00000000 */
19275 + 0x00, /* 00000000 */
19277 + /* 30 0x1e '^^' */
19278 + 0x00, /* 00000000 */
19279 + 0x00, /* 00000000 */
19280 + 0x00, /* 00000000 */
19281 + 0x00, /* 00000000 */
19282 + 0x10, /* 00010000 */
19283 + 0x38, /* 00111000 */
19284 + 0x38, /* 00111000 */
19285 + 0x7c, /* 01111100 */
19286 + 0x7c, /* 01111100 */
19287 + 0xfe, /* 11111110 */
19288 + 0xfe, /* 11111110 */
19289 + 0x00, /* 00000000 */
19290 + 0x00, /* 00000000 */
19291 + 0x00, /* 00000000 */
19292 + 0x00, /* 00000000 */
19293 + 0x00, /* 00000000 */
19295 + /* 31 0x1f '^_' */
19296 + 0x00, /* 00000000 */
19297 + 0x00, /* 00000000 */
19298 + 0x00, /* 00000000 */
19299 + 0x00, /* 00000000 */
19300 + 0xfe, /* 11111110 */
19301 + 0xfe, /* 11111110 */
19302 + 0x7c, /* 01111100 */
19303 + 0x7c, /* 01111100 */
19304 + 0x38, /* 00111000 */
19305 + 0x38, /* 00111000 */
19306 + 0x10, /* 00010000 */
19307 + 0x00, /* 00000000 */
19308 + 0x00, /* 00000000 */
19309 + 0x00, /* 00000000 */
19310 + 0x00, /* 00000000 */
19311 + 0x00, /* 00000000 */
19313 + /* 32 0x20 ' ' */
19314 + 0x00, /* 00000000 */
19315 + 0x00, /* 00000000 */
19316 + 0x00, /* 00000000 */
19317 + 0x00, /* 00000000 */
19318 + 0x00, /* 00000000 */
19319 + 0x00, /* 00000000 */
19320 + 0x00, /* 00000000 */
19321 + 0x00, /* 00000000 */
19322 + 0x00, /* 00000000 */
19323 + 0x00, /* 00000000 */
19324 + 0x00, /* 00000000 */
19325 + 0x00, /* 00000000 */
19326 + 0x00, /* 00000000 */
19327 + 0x00, /* 00000000 */
19328 + 0x00, /* 00000000 */
19329 + 0x00, /* 00000000 */
19331 + /* 33 0x21 '!' */
19332 + 0x00, /* 00000000 */
19333 + 0x00, /* 00000000 */
19334 + 0x18, /* 00011000 */
19335 + 0x3c, /* 00111100 */
19336 + 0x3c, /* 00111100 */
19337 + 0x3c, /* 00111100 */
19338 + 0x18, /* 00011000 */
19339 + 0x18, /* 00011000 */
19340 + 0x18, /* 00011000 */
19341 + 0x00, /* 00000000 */
19342 + 0x18, /* 00011000 */
19343 + 0x18, /* 00011000 */
19344 + 0x00, /* 00000000 */
19345 + 0x00, /* 00000000 */
19346 + 0x00, /* 00000000 */
19347 + 0x00, /* 00000000 */
19349 + /* 34 0x22 '"' */
19350 + 0x00, /* 00000000 */
19351 + 0x66, /* 01100110 */
19352 + 0x66, /* 01100110 */
19353 + 0x66, /* 01100110 */
19354 + 0x24, /* 00100100 */
19355 + 0x00, /* 00000000 */
19356 + 0x00, /* 00000000 */
19357 + 0x00, /* 00000000 */
19358 + 0x00, /* 00000000 */
19359 + 0x00, /* 00000000 */
19360 + 0x00, /* 00000000 */
19361 + 0x00, /* 00000000 */
19362 + 0x00, /* 00000000 */
19363 + 0x00, /* 00000000 */
19364 + 0x00, /* 00000000 */
19365 + 0x00, /* 00000000 */
19367 + /* 35 0x23 '#' */
19368 + 0x00, /* 00000000 */
19369 + 0x00, /* 00000000 */
19370 + 0x00, /* 00000000 */
19371 + 0x6c, /* 01101100 */
19372 + 0x6c, /* 01101100 */
19373 + 0xfe, /* 11111110 */
19374 + 0x6c, /* 01101100 */
19375 + 0x6c, /* 01101100 */
19376 + 0x6c, /* 01101100 */
19377 + 0xfe, /* 11111110 */
19378 + 0x6c, /* 01101100 */
19379 + 0x6c, /* 01101100 */
19380 + 0x00, /* 00000000 */
19381 + 0x00, /* 00000000 */
19382 + 0x00, /* 00000000 */
19383 + 0x00, /* 00000000 */
19385 + /* 36 0x24 '$' */
19386 + 0x18, /* 00011000 */
19387 + 0x18, /* 00011000 */
19388 + 0x7c, /* 01111100 */
19389 + 0xc6, /* 11000110 */
19390 + 0xc2, /* 11000010 */
19391 + 0xc0, /* 11000000 */
19392 + 0x7c, /* 01111100 */
19393 + 0x06, /* 00000110 */
19394 + 0x06, /* 00000110 */
19395 + 0x86, /* 10000110 */
19396 + 0xc6, /* 11000110 */
19397 + 0x7c, /* 01111100 */
19398 + 0x18, /* 00011000 */
19399 + 0x18, /* 00011000 */
19400 + 0x00, /* 00000000 */
19401 + 0x00, /* 00000000 */
19403 + /* 37 0x25 '%' */
19404 + 0x00, /* 00000000 */
19405 + 0x00, /* 00000000 */
19406 + 0x00, /* 00000000 */
19407 + 0x00, /* 00000000 */
19408 + 0xc2, /* 11000010 */
19409 + 0xc6, /* 11000110 */
19410 + 0x0c, /* 00001100 */
19411 + 0x18, /* 00011000 */
19412 + 0x30, /* 00110000 */
19413 + 0x60, /* 01100000 */
19414 + 0xc6, /* 11000110 */
19415 + 0x86, /* 10000110 */
19416 + 0x00, /* 00000000 */
19417 + 0x00, /* 00000000 */
19418 + 0x00, /* 00000000 */
19419 + 0x00, /* 00000000 */
19421 + /* 38 0x26 '&' */
19422 + 0x00, /* 00000000 */
19423 + 0x00, /* 00000000 */
19424 + 0x38, /* 00111000 */
19425 + 0x6c, /* 01101100 */
19426 + 0x6c, /* 01101100 */
19427 + 0x38, /* 00111000 */
19428 + 0x76, /* 01110110 */
19429 + 0xdc, /* 11011100 */
19430 + 0xcc, /* 11001100 */
19431 + 0xcc, /* 11001100 */
19432 + 0xcc, /* 11001100 */
19433 + 0x76, /* 01110110 */
19434 + 0x00, /* 00000000 */
19435 + 0x00, /* 00000000 */
19436 + 0x00, /* 00000000 */
19437 + 0x00, /* 00000000 */
19439 + /* 39 0x27 ''' */
19440 + 0x00, /* 00000000 */
19441 + 0x30, /* 00110000 */
19442 + 0x30, /* 00110000 */
19443 + 0x30, /* 00110000 */
19444 + 0x60, /* 01100000 */
19445 + 0x00, /* 00000000 */
19446 + 0x00, /* 00000000 */
19447 + 0x00, /* 00000000 */
19448 + 0x00, /* 00000000 */
19449 + 0x00, /* 00000000 */
19450 + 0x00, /* 00000000 */
19451 + 0x00, /* 00000000 */
19452 + 0x00, /* 00000000 */
19453 + 0x00, /* 00000000 */
19454 + 0x00, /* 00000000 */
19455 + 0x00, /* 00000000 */
19457 + /* 40 0x28 '(' */
19458 + 0x00, /* 00000000 */
19459 + 0x00, /* 00000000 */
19460 + 0x0c, /* 00001100 */
19461 + 0x18, /* 00011000 */
19462 + 0x30, /* 00110000 */
19463 + 0x30, /* 00110000 */
19464 + 0x30, /* 00110000 */
19465 + 0x30, /* 00110000 */
19466 + 0x30, /* 00110000 */
19467 + 0x30, /* 00110000 */
19468 + 0x18, /* 00011000 */
19469 + 0x0c, /* 00001100 */
19470 + 0x00, /* 00000000 */
19471 + 0x00, /* 00000000 */
19472 + 0x00, /* 00000000 */
19473 + 0x00, /* 00000000 */
19475 + /* 41 0x29 ')' */
19476 + 0x00, /* 00000000 */
19477 + 0x00, /* 00000000 */
19478 + 0x30, /* 00110000 */
19479 + 0x18, /* 00011000 */
19480 + 0x0c, /* 00001100 */
19481 + 0x0c, /* 00001100 */
19482 + 0x0c, /* 00001100 */
19483 + 0x0c, /* 00001100 */
19484 + 0x0c, /* 00001100 */
19485 + 0x0c, /* 00001100 */
19486 + 0x18, /* 00011000 */
19487 + 0x30, /* 00110000 */
19488 + 0x00, /* 00000000 */
19489 + 0x00, /* 00000000 */
19490 + 0x00, /* 00000000 */
19491 + 0x00, /* 00000000 */
19493 + /* 42 0x2a '*' */
19494 + 0x00, /* 00000000 */
19495 + 0x00, /* 00000000 */
19496 + 0x00, /* 00000000 */
19497 + 0x00, /* 00000000 */
19498 + 0x00, /* 00000000 */
19499 + 0x66, /* 01100110 */
19500 + 0x3c, /* 00111100 */
19501 + 0xff, /* 11111111 */
19502 + 0x3c, /* 00111100 */
19503 + 0x66, /* 01100110 */
19504 + 0x00, /* 00000000 */
19505 + 0x00, /* 00000000 */
19506 + 0x00, /* 00000000 */
19507 + 0x00, /* 00000000 */
19508 + 0x00, /* 00000000 */
19509 + 0x00, /* 00000000 */
19511 + /* 43 0x2b '+' */
19512 + 0x00, /* 00000000 */
19513 + 0x00, /* 00000000 */
19514 + 0x00, /* 00000000 */
19515 + 0x00, /* 00000000 */
19516 + 0x00, /* 00000000 */
19517 + 0x18, /* 00011000 */
19518 + 0x18, /* 00011000 */
19519 + 0x7e, /* 01111110 */
19520 + 0x18, /* 00011000 */
19521 + 0x18, /* 00011000 */
19522 + 0x00, /* 00000000 */
19523 + 0x00, /* 00000000 */
19524 + 0x00, /* 00000000 */
19525 + 0x00, /* 00000000 */
19526 + 0x00, /* 00000000 */
19527 + 0x00, /* 00000000 */
19529 + /* 44 0x2c ',' */
19530 + 0x00, /* 00000000 */
19531 + 0x00, /* 00000000 */
19532 + 0x00, /* 00000000 */
19533 + 0x00, /* 00000000 */
19534 + 0x00, /* 00000000 */
19535 + 0x00, /* 00000000 */
19536 + 0x00, /* 00000000 */
19537 + 0x00, /* 00000000 */
19538 + 0x00, /* 00000000 */
19539 + 0x18, /* 00011000 */
19540 + 0x18, /* 00011000 */
19541 + 0x18, /* 00011000 */
19542 + 0x30, /* 00110000 */
19543 + 0x00, /* 00000000 */
19544 + 0x00, /* 00000000 */
19545 + 0x00, /* 00000000 */
19547 + /* 45 0x2d '-' */
19548 + 0x00, /* 00000000 */
19549 + 0x00, /* 00000000 */
19550 + 0x00, /* 00000000 */
19551 + 0x00, /* 00000000 */
19552 + 0x00, /* 00000000 */
19553 + 0x00, /* 00000000 */
19554 + 0x00, /* 00000000 */
19555 + 0xfe, /* 11111110 */
19556 + 0x00, /* 00000000 */
19557 + 0x00, /* 00000000 */
19558 + 0x00, /* 00000000 */
19559 + 0x00, /* 00000000 */
19560 + 0x00, /* 00000000 */
19561 + 0x00, /* 00000000 */
19562 + 0x00, /* 00000000 */
19563 + 0x00, /* 00000000 */
19565 + /* 46 0x2e '.' */
19566 + 0x00, /* 00000000 */
19567 + 0x00, /* 00000000 */
19568 + 0x00, /* 00000000 */
19569 + 0x00, /* 00000000 */
19570 + 0x00, /* 00000000 */
19571 + 0x00, /* 00000000 */
19572 + 0x00, /* 00000000 */
19573 + 0x00, /* 00000000 */
19574 + 0x00, /* 00000000 */
19575 + 0x00, /* 00000000 */
19576 + 0x18, /* 00011000 */
19577 + 0x18, /* 00011000 */
19578 + 0x00, /* 00000000 */
19579 + 0x00, /* 00000000 */
19580 + 0x00, /* 00000000 */
19581 + 0x00, /* 00000000 */
19583 + /* 47 0x2f '/' */
19584 + 0x00, /* 00000000 */
19585 + 0x00, /* 00000000 */
19586 + 0x00, /* 00000000 */
19587 + 0x00, /* 00000000 */
19588 + 0x02, /* 00000010 */
19589 + 0x06, /* 00000110 */
19590 + 0x0c, /* 00001100 */
19591 + 0x18, /* 00011000 */
19592 + 0x30, /* 00110000 */
19593 + 0x60, /* 01100000 */
19594 + 0xc0, /* 11000000 */
19595 + 0x80, /* 10000000 */
19596 + 0x00, /* 00000000 */
19597 + 0x00, /* 00000000 */
19598 + 0x00, /* 00000000 */
19599 + 0x00, /* 00000000 */
19601 + /* 48 0x30 '0' */
19602 + 0x00, /* 00000000 */
19603 + 0x00, /* 00000000 */
19604 + 0x38, /* 00111000 */
19605 + 0x6c, /* 01101100 */
19606 + 0xc6, /* 11000110 */
19607 + 0xc6, /* 11000110 */
19608 + 0xd6, /* 11010110 */
19609 + 0xd6, /* 11010110 */
19610 + 0xc6, /* 11000110 */
19611 + 0xc6, /* 11000110 */
19612 + 0x6c, /* 01101100 */
19613 + 0x38, /* 00111000 */
19614 + 0x00, /* 00000000 */
19615 + 0x00, /* 00000000 */
19616 + 0x00, /* 00000000 */
19617 + 0x00, /* 00000000 */
19619 + /* 49 0x31 '1' */
19620 + 0x00, /* 00000000 */
19621 + 0x00, /* 00000000 */
19622 + 0x18, /* 00011000 */
19623 + 0x38, /* 00111000 */
19624 + 0x78, /* 01111000 */
19625 + 0x18, /* 00011000 */
19626 + 0x18, /* 00011000 */
19627 + 0x18, /* 00011000 */
19628 + 0x18, /* 00011000 */
19629 + 0x18, /* 00011000 */
19630 + 0x18, /* 00011000 */
19631 + 0x7e, /* 01111110 */
19632 + 0x00, /* 00000000 */
19633 + 0x00, /* 00000000 */
19634 + 0x00, /* 00000000 */
19635 + 0x00, /* 00000000 */
19637 + /* 50 0x32 '2' */
19638 + 0x00, /* 00000000 */
19639 + 0x00, /* 00000000 */
19640 + 0x7c, /* 01111100 */
19641 + 0xc6, /* 11000110 */
19642 + 0x06, /* 00000110 */
19643 + 0x0c, /* 00001100 */
19644 + 0x18, /* 00011000 */
19645 + 0x30, /* 00110000 */
19646 + 0x60, /* 01100000 */
19647 + 0xc0, /* 11000000 */
19648 + 0xc6, /* 11000110 */
19649 + 0xfe, /* 11111110 */
19650 + 0x00, /* 00000000 */
19651 + 0x00, /* 00000000 */
19652 + 0x00, /* 00000000 */
19653 + 0x00, /* 00000000 */
19655 + /* 51 0x33 '3' */
19656 + 0x00, /* 00000000 */
19657 + 0x00, /* 00000000 */
19658 + 0x7c, /* 01111100 */
19659 + 0xc6, /* 11000110 */
19660 + 0x06, /* 00000110 */
19661 + 0x06, /* 00000110 */
19662 + 0x3c, /* 00111100 */
19663 + 0x06, /* 00000110 */
19664 + 0x06, /* 00000110 */
19665 + 0x06, /* 00000110 */
19666 + 0xc6, /* 11000110 */
19667 + 0x7c, /* 01111100 */
19668 + 0x00, /* 00000000 */
19669 + 0x00, /* 00000000 */
19670 + 0x00, /* 00000000 */
19671 + 0x00, /* 00000000 */
19673 + /* 52 0x34 '4' */
19674 + 0x00, /* 00000000 */
19675 + 0x00, /* 00000000 */
19676 + 0x0c, /* 00001100 */
19677 + 0x1c, /* 00011100 */
19678 + 0x3c, /* 00111100 */
19679 + 0x6c, /* 01101100 */
19680 + 0xcc, /* 11001100 */
19681 + 0xfe, /* 11111110 */
19682 + 0x0c, /* 00001100 */
19683 + 0x0c, /* 00001100 */
19684 + 0x0c, /* 00001100 */
19685 + 0x1e, /* 00011110 */
19686 + 0x00, /* 00000000 */
19687 + 0x00, /* 00000000 */
19688 + 0x00, /* 00000000 */
19689 + 0x00, /* 00000000 */
19691 + /* 53 0x35 '5' */
19692 + 0x00, /* 00000000 */
19693 + 0x00, /* 00000000 */
19694 + 0xfe, /* 11111110 */
19695 + 0xc0, /* 11000000 */
19696 + 0xc0, /* 11000000 */
19697 + 0xc0, /* 11000000 */
19698 + 0xfc, /* 11111100 */
19699 + 0x06, /* 00000110 */
19700 + 0x06, /* 00000110 */
19701 + 0x06, /* 00000110 */
19702 + 0xc6, /* 11000110 */
19703 + 0x7c, /* 01111100 */
19704 + 0x00, /* 00000000 */
19705 + 0x00, /* 00000000 */
19706 + 0x00, /* 00000000 */
19707 + 0x00, /* 00000000 */
19709 + /* 54 0x36 '6' */
19710 + 0x00, /* 00000000 */
19711 + 0x00, /* 00000000 */
19712 + 0x38, /* 00111000 */
19713 + 0x60, /* 01100000 */
19714 + 0xc0, /* 11000000 */
19715 + 0xc0, /* 11000000 */
19716 + 0xfc, /* 11111100 */
19717 + 0xc6, /* 11000110 */
19718 + 0xc6, /* 11000110 */
19719 + 0xc6, /* 11000110 */
19720 + 0xc6, /* 11000110 */
19721 + 0x7c, /* 01111100 */
19722 + 0x00, /* 00000000 */
19723 + 0x00, /* 00000000 */
19724 + 0x00, /* 00000000 */
19725 + 0x00, /* 00000000 */
19727 + /* 55 0x37 '7' */
19728 + 0x00, /* 00000000 */
19729 + 0x00, /* 00000000 */
19730 + 0xfe, /* 11111110 */
19731 + 0xc6, /* 11000110 */
19732 + 0x06, /* 00000110 */
19733 + 0x06, /* 00000110 */
19734 + 0x0c, /* 00001100 */
19735 + 0x18, /* 00011000 */
19736 + 0x30, /* 00110000 */
19737 + 0x30, /* 00110000 */
19738 + 0x30, /* 00110000 */
19739 + 0x30, /* 00110000 */
19740 + 0x00, /* 00000000 */
19741 + 0x00, /* 00000000 */
19742 + 0x00, /* 00000000 */
19743 + 0x00, /* 00000000 */
19745 + /* 56 0x38 '8' */
19746 + 0x00, /* 00000000 */
19747 + 0x00, /* 00000000 */
19748 + 0x7c, /* 01111100 */
19749 + 0xc6, /* 11000110 */
19750 + 0xc6, /* 11000110 */
19751 + 0xc6, /* 11000110 */
19752 + 0x7c, /* 01111100 */
19753 + 0xc6, /* 11000110 */
19754 + 0xc6, /* 11000110 */
19755 + 0xc6, /* 11000110 */
19756 + 0xc6, /* 11000110 */
19757 + 0x7c, /* 01111100 */
19758 + 0x00, /* 00000000 */
19759 + 0x00, /* 00000000 */
19760 + 0x00, /* 00000000 */
19761 + 0x00, /* 00000000 */
19763 + /* 57 0x39 '9' */
19764 + 0x00, /* 00000000 */
19765 + 0x00, /* 00000000 */
19766 + 0x7c, /* 01111100 */
19767 + 0xc6, /* 11000110 */
19768 + 0xc6, /* 11000110 */
19769 + 0xc6, /* 11000110 */
19770 + 0x7e, /* 01111110 */
19771 + 0x06, /* 00000110 */
19772 + 0x06, /* 00000110 */
19773 + 0x06, /* 00000110 */
19774 + 0x0c, /* 00001100 */
19775 + 0x78, /* 01111000 */
19776 + 0x00, /* 00000000 */
19777 + 0x00, /* 00000000 */
19778 + 0x00, /* 00000000 */
19779 + 0x00, /* 00000000 */
19781 + /* 58 0x3a ':' */
19782 + 0x00, /* 00000000 */
19783 + 0x00, /* 00000000 */
19784 + 0x00, /* 00000000 */
19785 + 0x00, /* 00000000 */
19786 + 0x18, /* 00011000 */
19787 + 0x18, /* 00011000 */
19788 + 0x00, /* 00000000 */
19789 + 0x00, /* 00000000 */
19790 + 0x00, /* 00000000 */
19791 + 0x18, /* 00011000 */
19792 + 0x18, /* 00011000 */
19793 + 0x00, /* 00000000 */
19794 + 0x00, /* 00000000 */
19795 + 0x00, /* 00000000 */
19796 + 0x00, /* 00000000 */
19797 + 0x00, /* 00000000 */
19799 + /* 59 0x3b ';' */
19800 + 0x00, /* 00000000 */
19801 + 0x00, /* 00000000 */
19802 + 0x00, /* 00000000 */
19803 + 0x00, /* 00000000 */
19804 + 0x18, /* 00011000 */
19805 + 0x18, /* 00011000 */
19806 + 0x00, /* 00000000 */
19807 + 0x00, /* 00000000 */
19808 + 0x00, /* 00000000 */
19809 + 0x18, /* 00011000 */
19810 + 0x18, /* 00011000 */
19811 + 0x30, /* 00110000 */
19812 + 0x00, /* 00000000 */
19813 + 0x00, /* 00000000 */
19814 + 0x00, /* 00000000 */
19815 + 0x00, /* 00000000 */
19817 + /* 60 0x3c '<' */
19818 + 0x00, /* 00000000 */
19819 + 0x00, /* 00000000 */
19820 + 0x00, /* 00000000 */
19821 + 0x06, /* 00000110 */
19822 + 0x0c, /* 00001100 */
19823 + 0x18, /* 00011000 */
19824 + 0x30, /* 00110000 */
19825 + 0x60, /* 01100000 */
19826 + 0x30, /* 00110000 */
19827 + 0x18, /* 00011000 */
19828 + 0x0c, /* 00001100 */
19829 + 0x06, /* 00000110 */
19830 + 0x00, /* 00000000 */
19831 + 0x00, /* 00000000 */
19832 + 0x00, /* 00000000 */
19833 + 0x00, /* 00000000 */
19835 + /* 61 0x3d '=' */
19836 + 0x00, /* 00000000 */
19837 + 0x00, /* 00000000 */
19838 + 0x00, /* 00000000 */
19839 + 0x00, /* 00000000 */
19840 + 0x00, /* 00000000 */
19841 + 0x7e, /* 01111110 */
19842 + 0x00, /* 00000000 */
19843 + 0x00, /* 00000000 */
19844 + 0x7e, /* 01111110 */
19845 + 0x00, /* 00000000 */
19846 + 0x00, /* 00000000 */
19847 + 0x00, /* 00000000 */
19848 + 0x00, /* 00000000 */
19849 + 0x00, /* 00000000 */
19850 + 0x00, /* 00000000 */
19851 + 0x00, /* 00000000 */
19853 + /* 62 0x3e '>' */
19854 + 0x00, /* 00000000 */
19855 + 0x00, /* 00000000 */
19856 + 0x00, /* 00000000 */
19857 + 0x60, /* 01100000 */
19858 + 0x30, /* 00110000 */
19859 + 0x18, /* 00011000 */
19860 + 0x0c, /* 00001100 */
19861 + 0x06, /* 00000110 */
19862 + 0x0c, /* 00001100 */
19863 + 0x18, /* 00011000 */
19864 + 0x30, /* 00110000 */
19865 + 0x60, /* 01100000 */
19866 + 0x00, /* 00000000 */
19867 + 0x00, /* 00000000 */
19868 + 0x00, /* 00000000 */
19869 + 0x00, /* 00000000 */
19871 + /* 63 0x3f '?' */
19872 + 0x00, /* 00000000 */
19873 + 0x00, /* 00000000 */
19874 + 0x7c, /* 01111100 */
19875 + 0xc6, /* 11000110 */
19876 + 0xc6, /* 11000110 */
19877 + 0x0c, /* 00001100 */
19878 + 0x18, /* 00011000 */
19879 + 0x18, /* 00011000 */
19880 + 0x18, /* 00011000 */
19881 + 0x00, /* 00000000 */
19882 + 0x18, /* 00011000 */
19883 + 0x18, /* 00011000 */
19884 + 0x00, /* 00000000 */
19885 + 0x00, /* 00000000 */
19886 + 0x00, /* 00000000 */
19887 + 0x00, /* 00000000 */
19889 + /* 64 0x40 '@' */
19890 + 0x00, /* 00000000 */
19891 + 0x00, /* 00000000 */
19892 + 0x00, /* 00000000 */
19893 + 0x7c, /* 01111100 */
19894 + 0xc6, /* 11000110 */
19895 + 0xc6, /* 11000110 */
19896 + 0xde, /* 11011110 */
19897 + 0xde, /* 11011110 */
19898 + 0xde, /* 11011110 */
19899 + 0xdc, /* 11011100 */
19900 + 0xc0, /* 11000000 */
19901 + 0x7c, /* 01111100 */
19902 + 0x00, /* 00000000 */
19903 + 0x00, /* 00000000 */
19904 + 0x00, /* 00000000 */
19905 + 0x00, /* 00000000 */
19907 + /* 65 0x41 'A' */
19908 + 0x00, /* 00000000 */
19909 + 0x00, /* 00000000 */
19910 + 0x10, /* 00010000 */
19911 + 0x38, /* 00111000 */
19912 + 0x6c, /* 01101100 */
19913 + 0xc6, /* 11000110 */
19914 + 0xc6, /* 11000110 */
19915 + 0xfe, /* 11111110 */
19916 + 0xc6, /* 11000110 */
19917 + 0xc6, /* 11000110 */
19918 + 0xc6, /* 11000110 */
19919 + 0xc6, /* 11000110 */
19920 + 0x00, /* 00000000 */
19921 + 0x00, /* 00000000 */
19922 + 0x00, /* 00000000 */
19923 + 0x00, /* 00000000 */
19925 + /* 66 0x42 'B' */
19926 + 0x00, /* 00000000 */
19927 + 0x00, /* 00000000 */
19928 + 0xfc, /* 11111100 */
19929 + 0x66, /* 01100110 */
19930 + 0x66, /* 01100110 */
19931 + 0x66, /* 01100110 */
19932 + 0x7c, /* 01111100 */
19933 + 0x66, /* 01100110 */
19934 + 0x66, /* 01100110 */
19935 + 0x66, /* 01100110 */
19936 + 0x66, /* 01100110 */
19937 + 0xfc, /* 11111100 */
19938 + 0x00, /* 00000000 */
19939 + 0x00, /* 00000000 */
19940 + 0x00, /* 00000000 */
19941 + 0x00, /* 00000000 */
19943 + /* 67 0x43 'C' */
19944 + 0x00, /* 00000000 */
19945 + 0x00, /* 00000000 */
19946 + 0x3c, /* 00111100 */
19947 + 0x66, /* 01100110 */
19948 + 0xc2, /* 11000010 */
19949 + 0xc0, /* 11000000 */
19950 + 0xc0, /* 11000000 */
19951 + 0xc0, /* 11000000 */
19952 + 0xc0, /* 11000000 */
19953 + 0xc2, /* 11000010 */
19954 + 0x66, /* 01100110 */
19955 + 0x3c, /* 00111100 */
19956 + 0x00, /* 00000000 */
19957 + 0x00, /* 00000000 */
19958 + 0x00, /* 00000000 */
19959 + 0x00, /* 00000000 */
19961 + /* 68 0x44 'D' */
19962 + 0x00, /* 00000000 */
19963 + 0x00, /* 00000000 */
19964 + 0xf8, /* 11111000 */
19965 + 0x6c, /* 01101100 */
19966 + 0x66, /* 01100110 */
19967 + 0x66, /* 01100110 */
19968 + 0x66, /* 01100110 */
19969 + 0x66, /* 01100110 */
19970 + 0x66, /* 01100110 */
19971 + 0x66, /* 01100110 */
19972 + 0x6c, /* 01101100 */
19973 + 0xf8, /* 11111000 */
19974 + 0x00, /* 00000000 */
19975 + 0x00, /* 00000000 */
19976 + 0x00, /* 00000000 */
19977 + 0x00, /* 00000000 */
19979 + /* 69 0x45 'E' */
19980 + 0x00, /* 00000000 */
19981 + 0x00, /* 00000000 */
19982 + 0xfe, /* 11111110 */
19983 + 0x66, /* 01100110 */
19984 + 0x62, /* 01100010 */
19985 + 0x68, /* 01101000 */
19986 + 0x78, /* 01111000 */
19987 + 0x68, /* 01101000 */
19988 + 0x60, /* 01100000 */
19989 + 0x62, /* 01100010 */
19990 + 0x66, /* 01100110 */
19991 + 0xfe, /* 11111110 */
19992 + 0x00, /* 00000000 */
19993 + 0x00, /* 00000000 */
19994 + 0x00, /* 00000000 */
19995 + 0x00, /* 00000000 */
19997 + /* 70 0x46 'F' */
19998 + 0x00, /* 00000000 */
19999 + 0x00, /* 00000000 */
20000 + 0xfe, /* 11111110 */
20001 + 0x66, /* 01100110 */
20002 + 0x62, /* 01100010 */
20003 + 0x68, /* 01101000 */
20004 + 0x78, /* 01111000 */
20005 + 0x68, /* 01101000 */
20006 + 0x60, /* 01100000 */
20007 + 0x60, /* 01100000 */
20008 + 0x60, /* 01100000 */
20009 + 0xf0, /* 11110000 */
20010 + 0x00, /* 00000000 */
20011 + 0x00, /* 00000000 */
20012 + 0x00, /* 00000000 */
20013 + 0x00, /* 00000000 */
20015 + /* 71 0x47 'G' */
20016 + 0x00, /* 00000000 */
20017 + 0x00, /* 00000000 */
20018 + 0x3c, /* 00111100 */
20019 + 0x66, /* 01100110 */
20020 + 0xc2, /* 11000010 */
20021 + 0xc0, /* 11000000 */
20022 + 0xc0, /* 11000000 */
20023 + 0xde, /* 11011110 */
20024 + 0xc6, /* 11000110 */
20025 + 0xc6, /* 11000110 */
20026 + 0x66, /* 01100110 */
20027 + 0x3a, /* 00111010 */
20028 + 0x00, /* 00000000 */
20029 + 0x00, /* 00000000 */
20030 + 0x00, /* 00000000 */
20031 + 0x00, /* 00000000 */
20033 + /* 72 0x48 'H' */
20034 + 0x00, /* 00000000 */
20035 + 0x00, /* 00000000 */
20036 + 0xc6, /* 11000110 */
20037 + 0xc6, /* 11000110 */
20038 + 0xc6, /* 11000110 */
20039 + 0xc6, /* 11000110 */
20040 + 0xfe, /* 11111110 */
20041 + 0xc6, /* 11000110 */
20042 + 0xc6, /* 11000110 */
20043 + 0xc6, /* 11000110 */
20044 + 0xc6, /* 11000110 */
20045 + 0xc6, /* 11000110 */
20046 + 0x00, /* 00000000 */
20047 + 0x00, /* 00000000 */
20048 + 0x00, /* 00000000 */
20049 + 0x00, /* 00000000 */
20051 + /* 73 0x49 'I' */
20052 + 0x00, /* 00000000 */
20053 + 0x00, /* 00000000 */
20054 + 0x3c, /* 00111100 */
20055 + 0x18, /* 00011000 */
20056 + 0x18, /* 00011000 */
20057 + 0x18, /* 00011000 */
20058 + 0x18, /* 00011000 */
20059 + 0x18, /* 00011000 */
20060 + 0x18, /* 00011000 */
20061 + 0x18, /* 00011000 */
20062 + 0x18, /* 00011000 */
20063 + 0x3c, /* 00111100 */
20064 + 0x00, /* 00000000 */
20065 + 0x00, /* 00000000 */
20066 + 0x00, /* 00000000 */
20067 + 0x00, /* 00000000 */
20069 + /* 74 0x4a 'J' */
20070 + 0x00, /* 00000000 */
20071 + 0x00, /* 00000000 */
20072 + 0x1e, /* 00011110 */
20073 + 0x0c, /* 00001100 */
20074 + 0x0c, /* 00001100 */
20075 + 0x0c, /* 00001100 */
20076 + 0x0c, /* 00001100 */
20077 + 0x0c, /* 00001100 */
20078 + 0xcc, /* 11001100 */
20079 + 0xcc, /* 11001100 */
20080 + 0xcc, /* 11001100 */
20081 + 0x78, /* 01111000 */
20082 + 0x00, /* 00000000 */
20083 + 0x00, /* 00000000 */
20084 + 0x00, /* 00000000 */
20085 + 0x00, /* 00000000 */
20087 + /* 75 0x4b 'K' */
20088 + 0x00, /* 00000000 */
20089 + 0x00, /* 00000000 */
20090 + 0xe6, /* 11100110 */
20091 + 0x66, /* 01100110 */
20092 + 0x66, /* 01100110 */
20093 + 0x6c, /* 01101100 */
20094 + 0x78, /* 01111000 */
20095 + 0x78, /* 01111000 */
20096 + 0x6c, /* 01101100 */
20097 + 0x66, /* 01100110 */
20098 + 0x66, /* 01100110 */
20099 + 0xe6, /* 11100110 */
20100 + 0x00, /* 00000000 */
20101 + 0x00, /* 00000000 */
20102 + 0x00, /* 00000000 */
20103 + 0x00, /* 00000000 */
20105 + /* 76 0x4c 'L' */
20106 + 0x00, /* 00000000 */
20107 + 0x00, /* 00000000 */
20108 + 0xf0, /* 11110000 */
20109 + 0x60, /* 01100000 */
20110 + 0x60, /* 01100000 */
20111 + 0x60, /* 01100000 */
20112 + 0x60, /* 01100000 */
20113 + 0x60, /* 01100000 */
20114 + 0x60, /* 01100000 */
20115 + 0x62, /* 01100010 */
20116 + 0x66, /* 01100110 */
20117 + 0xfe, /* 11111110 */
20118 + 0x00, /* 00000000 */
20119 + 0x00, /* 00000000 */
20120 + 0x00, /* 00000000 */
20121 + 0x00, /* 00000000 */
20123 + /* 77 0x4d 'M' */
20124 + 0x00, /* 00000000 */
20125 + 0x00, /* 00000000 */
20126 + 0xc6, /* 11000110 */
20127 + 0xee, /* 11101110 */
20128 + 0xfe, /* 11111110 */
20129 + 0xfe, /* 11111110 */
20130 + 0xd6, /* 11010110 */
20131 + 0xc6, /* 11000110 */
20132 + 0xc6, /* 11000110 */
20133 + 0xc6, /* 11000110 */
20134 + 0xc6, /* 11000110 */
20135 + 0xc6, /* 11000110 */
20136 + 0x00, /* 00000000 */
20137 + 0x00, /* 00000000 */
20138 + 0x00, /* 00000000 */
20139 + 0x00, /* 00000000 */
20141 + /* 78 0x4e 'N' */
20142 + 0x00, /* 00000000 */
20143 + 0x00, /* 00000000 */
20144 + 0xc6, /* 11000110 */
20145 + 0xe6, /* 11100110 */
20146 + 0xf6, /* 11110110 */
20147 + 0xfe, /* 11111110 */
20148 + 0xde, /* 11011110 */
20149 + 0xce, /* 11001110 */
20150 + 0xc6, /* 11000110 */
20151 + 0xc6, /* 11000110 */
20152 + 0xc6, /* 11000110 */
20153 + 0xc6, /* 11000110 */
20154 + 0x00, /* 00000000 */
20155 + 0x00, /* 00000000 */
20156 + 0x00, /* 00000000 */
20157 + 0x00, /* 00000000 */
20159 + /* 79 0x4f 'O' */
20160 + 0x00, /* 00000000 */
20161 + 0x00, /* 00000000 */
20162 + 0x7c, /* 01111100 */
20163 + 0xc6, /* 11000110 */
20164 + 0xc6, /* 11000110 */
20165 + 0xc6, /* 11000110 */
20166 + 0xc6, /* 11000110 */
20167 + 0xc6, /* 11000110 */
20168 + 0xc6, /* 11000110 */
20169 + 0xc6, /* 11000110 */
20170 + 0xc6, /* 11000110 */
20171 + 0x7c, /* 01111100 */
20172 + 0x00, /* 00000000 */
20173 + 0x00, /* 00000000 */
20174 + 0x00, /* 00000000 */
20175 + 0x00, /* 00000000 */
20177 + /* 80 0x50 'P' */
20178 + 0x00, /* 00000000 */
20179 + 0x00, /* 00000000 */
20180 + 0xfc, /* 11111100 */
20181 + 0x66, /* 01100110 */
20182 + 0x66, /* 01100110 */
20183 + 0x66, /* 01100110 */
20184 + 0x7c, /* 01111100 */
20185 + 0x60, /* 01100000 */
20186 + 0x60, /* 01100000 */
20187 + 0x60, /* 01100000 */
20188 + 0x60, /* 01100000 */
20189 + 0xf0, /* 11110000 */
20190 + 0x00, /* 00000000 */
20191 + 0x00, /* 00000000 */
20192 + 0x00, /* 00000000 */
20193 + 0x00, /* 00000000 */
20195 + /* 81 0x51 'Q' */
20196 + 0x00, /* 00000000 */
20197 + 0x00, /* 00000000 */
20198 + 0x7c, /* 01111100 */
20199 + 0xc6, /* 11000110 */
20200 + 0xc6, /* 11000110 */
20201 + 0xc6, /* 11000110 */
20202 + 0xc6, /* 11000110 */
20203 + 0xc6, /* 11000110 */
20204 + 0xc6, /* 11000110 */
20205 + 0xd6, /* 11010110 */
20206 + 0xde, /* 11011110 */
20207 + 0x7c, /* 01111100 */
20208 + 0x0c, /* 00001100 */
20209 + 0x0e, /* 00001110 */
20210 + 0x00, /* 00000000 */
20211 + 0x00, /* 00000000 */
20213 + /* 82 0x52 'R' */
20214 + 0x00, /* 00000000 */
20215 + 0x00, /* 00000000 */
20216 + 0xfc, /* 11111100 */
20217 + 0x66, /* 01100110 */
20218 + 0x66, /* 01100110 */
20219 + 0x66, /* 01100110 */
20220 + 0x7c, /* 01111100 */
20221 + 0x6c, /* 01101100 */
20222 + 0x66, /* 01100110 */
20223 + 0x66, /* 01100110 */
20224 + 0x66, /* 01100110 */
20225 + 0xe6, /* 11100110 */
20226 + 0x00, /* 00000000 */
20227 + 0x00, /* 00000000 */
20228 + 0x00, /* 00000000 */
20229 + 0x00, /* 00000000 */
20231 + /* 83 0x53 'S' */
20232 + 0x00, /* 00000000 */
20233 + 0x00, /* 00000000 */
20234 + 0x7c, /* 01111100 */
20235 + 0xc6, /* 11000110 */
20236 + 0xc6, /* 11000110 */
20237 + 0x60, /* 01100000 */
20238 + 0x38, /* 00111000 */
20239 + 0x0c, /* 00001100 */
20240 + 0x06, /* 00000110 */
20241 + 0xc6, /* 11000110 */
20242 + 0xc6, /* 11000110 */
20243 + 0x7c, /* 01111100 */
20244 + 0x00, /* 00000000 */
20245 + 0x00, /* 00000000 */
20246 + 0x00, /* 00000000 */
20247 + 0x00, /* 00000000 */
20249 + /* 84 0x54 'T' */
20250 + 0x00, /* 00000000 */
20251 + 0x00, /* 00000000 */
20252 + 0x7e, /* 01111110 */
20253 + 0x7e, /* 01111110 */
20254 + 0x5a, /* 01011010 */
20255 + 0x18, /* 00011000 */
20256 + 0x18, /* 00011000 */
20257 + 0x18, /* 00011000 */
20258 + 0x18, /* 00011000 */
20259 + 0x18, /* 00011000 */
20260 + 0x18, /* 00011000 */
20261 + 0x3c, /* 00111100 */
20262 + 0x00, /* 00000000 */
20263 + 0x00, /* 00000000 */
20264 + 0x00, /* 00000000 */
20265 + 0x00, /* 00000000 */
20267 + /* 85 0x55 'U' */
20268 + 0x00, /* 00000000 */
20269 + 0x00, /* 00000000 */
20270 + 0xc6, /* 11000110 */
20271 + 0xc6, /* 11000110 */
20272 + 0xc6, /* 11000110 */
20273 + 0xc6, /* 11000110 */
20274 + 0xc6, /* 11000110 */
20275 + 0xc6, /* 11000110 */
20276 + 0xc6, /* 11000110 */
20277 + 0xc6, /* 11000110 */
20278 + 0xc6, /* 11000110 */
20279 + 0x7c, /* 01111100 */
20280 + 0x00, /* 00000000 */
20281 + 0x00, /* 00000000 */
20282 + 0x00, /* 00000000 */
20283 + 0x00, /* 00000000 */
20285 + /* 86 0x56 'V' */
20286 + 0x00, /* 00000000 */
20287 + 0x00, /* 00000000 */
20288 + 0xc6, /* 11000110 */
20289 + 0xc6, /* 11000110 */
20290 + 0xc6, /* 11000110 */
20291 + 0xc6, /* 11000110 */
20292 + 0xc6, /* 11000110 */
20293 + 0xc6, /* 11000110 */
20294 + 0xc6, /* 11000110 */
20295 + 0x6c, /* 01101100 */
20296 + 0x38, /* 00111000 */
20297 + 0x10, /* 00010000 */
20298 + 0x00, /* 00000000 */
20299 + 0x00, /* 00000000 */
20300 + 0x00, /* 00000000 */
20301 + 0x00, /* 00000000 */
20303 + /* 87 0x57 'W' */
20304 + 0x00, /* 00000000 */
20305 + 0x00, /* 00000000 */
20306 + 0xc6, /* 11000110 */
20307 + 0xc6, /* 11000110 */
20308 + 0xc6, /* 11000110 */
20309 + 0xc6, /* 11000110 */
20310 + 0xd6, /* 11010110 */
20311 + 0xd6, /* 11010110 */
20312 + 0xd6, /* 11010110 */
20313 + 0xfe, /* 11111110 */
20314 + 0xee, /* 11101110 */
20315 + 0x6c, /* 01101100 */
20316 + 0x00, /* 00000000 */
20317 + 0x00, /* 00000000 */
20318 + 0x00, /* 00000000 */
20319 + 0x00, /* 00000000 */
20321 + /* 88 0x58 'X' */
20322 + 0x00, /* 00000000 */
20323 + 0x00, /* 00000000 */
20324 + 0xc6, /* 11000110 */
20325 + 0xc6, /* 11000110 */
20326 + 0x6c, /* 01101100 */
20327 + 0x7c, /* 01111100 */
20328 + 0x38, /* 00111000 */
20329 + 0x38, /* 00111000 */
20330 + 0x7c, /* 01111100 */
20331 + 0x6c, /* 01101100 */
20332 + 0xc6, /* 11000110 */
20333 + 0xc6, /* 11000110 */
20334 + 0x00, /* 00000000 */
20335 + 0x00, /* 00000000 */
20336 + 0x00, /* 00000000 */
20337 + 0x00, /* 00000000 */
20339 + /* 89 0x59 'Y' */
20340 + 0x00, /* 00000000 */
20341 + 0x00, /* 00000000 */
20342 + 0x66, /* 01100110 */
20343 + 0x66, /* 01100110 */
20344 + 0x66, /* 01100110 */
20345 + 0x66, /* 01100110 */
20346 + 0x3c, /* 00111100 */
20347 + 0x18, /* 00011000 */
20348 + 0x18, /* 00011000 */
20349 + 0x18, /* 00011000 */
20350 + 0x18, /* 00011000 */
20351 + 0x3c, /* 00111100 */
20352 + 0x00, /* 00000000 */
20353 + 0x00, /* 00000000 */
20354 + 0x00, /* 00000000 */
20355 + 0x00, /* 00000000 */
20357 + /* 90 0x5a 'Z' */
20358 + 0x00, /* 00000000 */
20359 + 0x00, /* 00000000 */
20360 + 0xfe, /* 11111110 */
20361 + 0xc6, /* 11000110 */
20362 + 0x86, /* 10000110 */
20363 + 0x0c, /* 00001100 */
20364 + 0x18, /* 00011000 */
20365 + 0x30, /* 00110000 */
20366 + 0x60, /* 01100000 */
20367 + 0xc2, /* 11000010 */
20368 + 0xc6, /* 11000110 */
20369 + 0xfe, /* 11111110 */
20370 + 0x00, /* 00000000 */
20371 + 0x00, /* 00000000 */
20372 + 0x00, /* 00000000 */
20373 + 0x00, /* 00000000 */
20375 + /* 91 0x5b '[' */
20376 + 0x00, /* 00000000 */
20377 + 0x00, /* 00000000 */
20378 + 0x3c, /* 00111100 */
20379 + 0x30, /* 00110000 */
20380 + 0x30, /* 00110000 */
20381 + 0x30, /* 00110000 */
20382 + 0x30, /* 00110000 */
20383 + 0x30, /* 00110000 */
20384 + 0x30, /* 00110000 */
20385 + 0x30, /* 00110000 */
20386 + 0x30, /* 00110000 */
20387 + 0x3c, /* 00111100 */
20388 + 0x00, /* 00000000 */
20389 + 0x00, /* 00000000 */
20390 + 0x00, /* 00000000 */
20391 + 0x00, /* 00000000 */
20393 + /* 92 0x5c '\' */
20394 + 0x00, /* 00000000 */
20395 + 0x00, /* 00000000 */
20396 + 0x00, /* 00000000 */
20397 + 0x80, /* 10000000 */
20398 + 0xc0, /* 11000000 */
20399 + 0xe0, /* 11100000 */
20400 + 0x70, /* 01110000 */
20401 + 0x38, /* 00111000 */
20402 + 0x1c, /* 00011100 */
20403 + 0x0e, /* 00001110 */
20404 + 0x06, /* 00000110 */
20405 + 0x02, /* 00000010 */
20406 + 0x00, /* 00000000 */
20407 + 0x00, /* 00000000 */
20408 + 0x00, /* 00000000 */
20409 + 0x00, /* 00000000 */
20411 + /* 93 0x5d ']' */
20412 + 0x00, /* 00000000 */
20413 + 0x00, /* 00000000 */
20414 + 0x3c, /* 00111100 */
20415 + 0x0c, /* 00001100 */
20416 + 0x0c, /* 00001100 */
20417 + 0x0c, /* 00001100 */
20418 + 0x0c, /* 00001100 */
20419 + 0x0c, /* 00001100 */
20420 + 0x0c, /* 00001100 */
20421 + 0x0c, /* 00001100 */
20422 + 0x0c, /* 00001100 */
20423 + 0x3c, /* 00111100 */
20424 + 0x00, /* 00000000 */
20425 + 0x00, /* 00000000 */
20426 + 0x00, /* 00000000 */
20427 + 0x00, /* 00000000 */
20429 + /* 94 0x5e '^' */
20430 + 0x10, /* 00010000 */
20431 + 0x38, /* 00111000 */
20432 + 0x6c, /* 01101100 */
20433 + 0xc6, /* 11000110 */
20434 + 0x00, /* 00000000 */
20435 + 0x00, /* 00000000 */
20436 + 0x00, /* 00000000 */
20437 + 0x00, /* 00000000 */
20438 + 0x00, /* 00000000 */
20439 + 0x00, /* 00000000 */
20440 + 0x00, /* 00000000 */
20441 + 0x00, /* 00000000 */
20442 + 0x00, /* 00000000 */
20443 + 0x00, /* 00000000 */
20444 + 0x00, /* 00000000 */
20445 + 0x00, /* 00000000 */
20447 + /* 95 0x5f '_' */
20448 + 0x00, /* 00000000 */
20449 + 0x00, /* 00000000 */
20450 + 0x00, /* 00000000 */
20451 + 0x00, /* 00000000 */
20452 + 0x00, /* 00000000 */
20453 + 0x00, /* 00000000 */
20454 + 0x00, /* 00000000 */
20455 + 0x00, /* 00000000 */
20456 + 0x00, /* 00000000 */
20457 + 0x00, /* 00000000 */
20458 + 0x00, /* 00000000 */
20459 + 0x00, /* 00000000 */
20460 + 0x00, /* 00000000 */
20461 + 0xff, /* 11111111 */
20462 + 0x00, /* 00000000 */
20463 + 0x00, /* 00000000 */
20465 + /* 96 0x60 '`' */
20466 + 0x00, /* 00000000 */
20467 + 0x30, /* 00110000 */
20468 + 0x18, /* 00011000 */
20469 + 0x0c, /* 00001100 */
20470 + 0x00, /* 00000000 */
20471 + 0x00, /* 00000000 */
20472 + 0x00, /* 00000000 */
20473 + 0x00, /* 00000000 */
20474 + 0x00, /* 00000000 */
20475 + 0x00, /* 00000000 */
20476 + 0x00, /* 00000000 */
20477 + 0x00, /* 00000000 */
20478 + 0x00, /* 00000000 */
20479 + 0x00, /* 00000000 */
20480 + 0x00, /* 00000000 */
20481 + 0x00, /* 00000000 */
20483 + /* 97 0x61 'a' */
20484 + 0x00, /* 00000000 */
20485 + 0x00, /* 00000000 */
20486 + 0x00, /* 00000000 */
20487 + 0x00, /* 00000000 */
20488 + 0x00, /* 00000000 */
20489 + 0x78, /* 01111000 */
20490 + 0x0c, /* 00001100 */
20491 + 0x7c, /* 01111100 */
20492 + 0xcc, /* 11001100 */
20493 + 0xcc, /* 11001100 */
20494 + 0xcc, /* 11001100 */
20495 + 0x76, /* 01110110 */
20496 + 0x00, /* 00000000 */
20497 + 0x00, /* 00000000 */
20498 + 0x00, /* 00000000 */
20499 + 0x00, /* 00000000 */
20501 + /* 98 0x62 'b' */
20502 + 0x00, /* 00000000 */
20503 + 0x00, /* 00000000 */
20504 + 0xe0, /* 11100000 */
20505 + 0x60, /* 01100000 */
20506 + 0x60, /* 01100000 */
20507 + 0x78, /* 01111000 */
20508 + 0x6c, /* 01101100 */
20509 + 0x66, /* 01100110 */
20510 + 0x66, /* 01100110 */
20511 + 0x66, /* 01100110 */
20512 + 0x66, /* 01100110 */
20513 + 0x7c, /* 01111100 */
20514 + 0x00, /* 00000000 */
20515 + 0x00, /* 00000000 */
20516 + 0x00, /* 00000000 */
20517 + 0x00, /* 00000000 */
20519 + /* 99 0x63 'c' */
20520 + 0x00, /* 00000000 */
20521 + 0x00, /* 00000000 */
20522 + 0x00, /* 00000000 */
20523 + 0x00, /* 00000000 */
20524 + 0x00, /* 00000000 */
20525 + 0x7c, /* 01111100 */
20526 + 0xc6, /* 11000110 */
20527 + 0xc0, /* 11000000 */
20528 + 0xc0, /* 11000000 */
20529 + 0xc0, /* 11000000 */
20530 + 0xc6, /* 11000110 */
20531 + 0x7c, /* 01111100 */
20532 + 0x00, /* 00000000 */
20533 + 0x00, /* 00000000 */
20534 + 0x00, /* 00000000 */
20535 + 0x00, /* 00000000 */
20537 + /* 100 0x64 'd' */
20538 + 0x00, /* 00000000 */
20539 + 0x00, /* 00000000 */
20540 + 0x1c, /* 00011100 */
20541 + 0x0c, /* 00001100 */
20542 + 0x0c, /* 00001100 */
20543 + 0x3c, /* 00111100 */
20544 + 0x6c, /* 01101100 */
20545 + 0xcc, /* 11001100 */
20546 + 0xcc, /* 11001100 */
20547 + 0xcc, /* 11001100 */
20548 + 0xcc, /* 11001100 */
20549 + 0x76, /* 01110110 */
20550 + 0x00, /* 00000000 */
20551 + 0x00, /* 00000000 */
20552 + 0x00, /* 00000000 */
20553 + 0x00, /* 00000000 */
20555 + /* 101 0x65 'e' */
20556 + 0x00, /* 00000000 */
20557 + 0x00, /* 00000000 */
20558 + 0x00, /* 00000000 */
20559 + 0x00, /* 00000000 */
20560 + 0x00, /* 00000000 */
20561 + 0x7c, /* 01111100 */
20562 + 0xc6, /* 11000110 */
20563 + 0xfe, /* 11111110 */
20564 + 0xc0, /* 11000000 */
20565 + 0xc0, /* 11000000 */
20566 + 0xc6, /* 11000110 */
20567 + 0x7c, /* 01111100 */
20568 + 0x00, /* 00000000 */
20569 + 0x00, /* 00000000 */
20570 + 0x00, /* 00000000 */
20571 + 0x00, /* 00000000 */
20573 + /* 102 0x66 'f' */
20574 + 0x00, /* 00000000 */
20575 + 0x00, /* 00000000 */
20576 + 0x1c, /* 00011100 */
20577 + 0x36, /* 00110110 */
20578 + 0x32, /* 00110010 */
20579 + 0x30, /* 00110000 */
20580 + 0x78, /* 01111000 */
20581 + 0x30, /* 00110000 */
20582 + 0x30, /* 00110000 */
20583 + 0x30, /* 00110000 */
20584 + 0x30, /* 00110000 */
20585 + 0x78, /* 01111000 */
20586 + 0x00, /* 00000000 */
20587 + 0x00, /* 00000000 */
20588 + 0x00, /* 00000000 */
20589 + 0x00, /* 00000000 */
20591 + /* 103 0x67 'g' */
20592 + 0x00, /* 00000000 */
20593 + 0x00, /* 00000000 */
20594 + 0x00, /* 00000000 */
20595 + 0x00, /* 00000000 */
20596 + 0x00, /* 00000000 */
20597 + 0x76, /* 01110110 */
20598 + 0xcc, /* 11001100 */
20599 + 0xcc, /* 11001100 */
20600 + 0xcc, /* 11001100 */
20601 + 0xcc, /* 11001100 */
20602 + 0xcc, /* 11001100 */
20603 + 0x7c, /* 01111100 */
20604 + 0x0c, /* 00001100 */
20605 + 0xcc, /* 11001100 */
20606 + 0x78, /* 01111000 */
20607 + 0x00, /* 00000000 */
20609 + /* 104 0x68 'h' */
20610 + 0x00, /* 00000000 */
20611 + 0x00, /* 00000000 */
20612 + 0xe0, /* 11100000 */
20613 + 0x60, /* 01100000 */
20614 + 0x60, /* 01100000 */
20615 + 0x6c, /* 01101100 */
20616 + 0x76, /* 01110110 */
20617 + 0x66, /* 01100110 */
20618 + 0x66, /* 01100110 */
20619 + 0x66, /* 01100110 */
20620 + 0x66, /* 01100110 */
20621 + 0xe6, /* 11100110 */
20622 + 0x00, /* 00000000 */
20623 + 0x00, /* 00000000 */
20624 + 0x00, /* 00000000 */
20625 + 0x00, /* 00000000 */
20627 + /* 105 0x69 'i' */
20628 + 0x00, /* 00000000 */
20629 + 0x00, /* 00000000 */
20630 + 0x18, /* 00011000 */
20631 + 0x18, /* 00011000 */
20632 + 0x00, /* 00000000 */
20633 + 0x38, /* 00111000 */
20634 + 0x18, /* 00011000 */
20635 + 0x18, /* 00011000 */
20636 + 0x18, /* 00011000 */
20637 + 0x18, /* 00011000 */
20638 + 0x18, /* 00011000 */
20639 + 0x3c, /* 00111100 */
20640 + 0x00, /* 00000000 */
20641 + 0x00, /* 00000000 */
20642 + 0x00, /* 00000000 */
20643 + 0x00, /* 00000000 */
20645 + /* 106 0x6a 'j' */
20646 + 0x00, /* 00000000 */
20647 + 0x00, /* 00000000 */
20648 + 0x06, /* 00000110 */
20649 + 0x06, /* 00000110 */
20650 + 0x00, /* 00000000 */
20651 + 0x0e, /* 00001110 */
20652 + 0x06, /* 00000110 */
20653 + 0x06, /* 00000110 */
20654 + 0x06, /* 00000110 */
20655 + 0x06, /* 00000110 */
20656 + 0x06, /* 00000110 */
20657 + 0x06, /* 00000110 */
20658 + 0x66, /* 01100110 */
20659 + 0x66, /* 01100110 */
20660 + 0x3c, /* 00111100 */
20661 + 0x00, /* 00000000 */
20663 + /* 107 0x6b 'k' */
20664 + 0x00, /* 00000000 */
20665 + 0x00, /* 00000000 */
20666 + 0xe0, /* 11100000 */
20667 + 0x60, /* 01100000 */
20668 + 0x60, /* 01100000 */
20669 + 0x66, /* 01100110 */
20670 + 0x6c, /* 01101100 */
20671 + 0x78, /* 01111000 */
20672 + 0x78, /* 01111000 */
20673 + 0x6c, /* 01101100 */
20674 + 0x66, /* 01100110 */
20675 + 0xe6, /* 11100110 */
20676 + 0x00, /* 00000000 */
20677 + 0x00, /* 00000000 */
20678 + 0x00, /* 00000000 */
20679 + 0x00, /* 00000000 */
20681 + /* 108 0x6c 'l' */
20682 + 0x00, /* 00000000 */
20683 + 0x00, /* 00000000 */
20684 + 0x38, /* 00111000 */
20685 + 0x18, /* 00011000 */
20686 + 0x18, /* 00011000 */
20687 + 0x18, /* 00011000 */
20688 + 0x18, /* 00011000 */
20689 + 0x18, /* 00011000 */
20690 + 0x18, /* 00011000 */
20691 + 0x18, /* 00011000 */
20692 + 0x18, /* 00011000 */
20693 + 0x3c, /* 00111100 */
20694 + 0x00, /* 00000000 */
20695 + 0x00, /* 00000000 */
20696 + 0x00, /* 00000000 */
20697 + 0x00, /* 00000000 */
20699 + /* 109 0x6d 'm' */
20700 + 0x00, /* 00000000 */
20701 + 0x00, /* 00000000 */
20702 + 0x00, /* 00000000 */
20703 + 0x00, /* 00000000 */
20704 + 0x00, /* 00000000 */
20705 + 0xec, /* 11101100 */
20706 + 0xfe, /* 11111110 */
20707 + 0xd6, /* 11010110 */
20708 + 0xd6, /* 11010110 */
20709 + 0xd6, /* 11010110 */
20710 + 0xd6, /* 11010110 */
20711 + 0xc6, /* 11000110 */
20712 + 0x00, /* 00000000 */
20713 + 0x00, /* 00000000 */
20714 + 0x00, /* 00000000 */
20715 + 0x00, /* 00000000 */
20717 + /* 110 0x6e 'n' */
20718 + 0x00, /* 00000000 */
20719 + 0x00, /* 00000000 */
20720 + 0x00, /* 00000000 */
20721 + 0x00, /* 00000000 */
20722 + 0x00, /* 00000000 */
20723 + 0xdc, /* 11011100 */
20724 + 0x66, /* 01100110 */
20725 + 0x66, /* 01100110 */
20726 + 0x66, /* 01100110 */
20727 + 0x66, /* 01100110 */
20728 + 0x66, /* 01100110 */
20729 + 0x66, /* 01100110 */
20730 + 0x00, /* 00000000 */
20731 + 0x00, /* 00000000 */
20732 + 0x00, /* 00000000 */
20733 + 0x00, /* 00000000 */
20735 + /* 111 0x6f 'o' */
20736 + 0x00, /* 00000000 */
20737 + 0x00, /* 00000000 */
20738 + 0x00, /* 00000000 */
20739 + 0x00, /* 00000000 */
20740 + 0x00, /* 00000000 */
20741 + 0x7c, /* 01111100 */
20742 + 0xc6, /* 11000110 */
20743 + 0xc6, /* 11000110 */
20744 + 0xc6, /* 11000110 */
20745 + 0xc6, /* 11000110 */
20746 + 0xc6, /* 11000110 */
20747 + 0x7c, /* 01111100 */
20748 + 0x00, /* 00000000 */
20749 + 0x00, /* 00000000 */
20750 + 0x00, /* 00000000 */
20751 + 0x00, /* 00000000 */
20753 + /* 112 0x70 'p' */
20754 + 0x00, /* 00000000 */
20755 + 0x00, /* 00000000 */
20756 + 0x00, /* 00000000 */
20757 + 0x00, /* 00000000 */
20758 + 0x00, /* 00000000 */
20759 + 0xdc, /* 11011100 */
20760 + 0x66, /* 01100110 */
20761 + 0x66, /* 01100110 */
20762 + 0x66, /* 01100110 */
20763 + 0x66, /* 01100110 */
20764 + 0x66, /* 01100110 */
20765 + 0x7c, /* 01111100 */
20766 + 0x60, /* 01100000 */
20767 + 0x60, /* 01100000 */
20768 + 0xf0, /* 11110000 */
20769 + 0x00, /* 00000000 */
20771 + /* 113 0x71 'q' */
20772 + 0x00, /* 00000000 */
20773 + 0x00, /* 00000000 */
20774 + 0x00, /* 00000000 */
20775 + 0x00, /* 00000000 */
20776 + 0x00, /* 00000000 */
20777 + 0x76, /* 01110110 */
20778 + 0xcc, /* 11001100 */
20779 + 0xcc, /* 11001100 */
20780 + 0xcc, /* 11001100 */
20781 + 0xcc, /* 11001100 */
20782 + 0xcc, /* 11001100 */
20783 + 0x7c, /* 01111100 */
20784 + 0x0c, /* 00001100 */
20785 + 0x0c, /* 00001100 */
20786 + 0x1e, /* 00011110 */
20787 + 0x00, /* 00000000 */
20789 + /* 114 0x72 'r' */
20790 + 0x00, /* 00000000 */
20791 + 0x00, /* 00000000 */
20792 + 0x00, /* 00000000 */
20793 + 0x00, /* 00000000 */
20794 + 0x00, /* 00000000 */
20795 + 0xdc, /* 11011100 */
20796 + 0x76, /* 01110110 */
20797 + 0x66, /* 01100110 */
20798 + 0x60, /* 01100000 */
20799 + 0x60, /* 01100000 */
20800 + 0x60, /* 01100000 */
20801 + 0xf0, /* 11110000 */
20802 + 0x00, /* 00000000 */
20803 + 0x00, /* 00000000 */
20804 + 0x00, /* 00000000 */
20805 + 0x00, /* 00000000 */
20807 + /* 115 0x73 's' */
20808 + 0x00, /* 00000000 */
20809 + 0x00, /* 00000000 */
20810 + 0x00, /* 00000000 */
20811 + 0x00, /* 00000000 */
20812 + 0x00, /* 00000000 */
20813 + 0x7c, /* 01111100 */
20814 + 0xc6, /* 11000110 */
20815 + 0x60, /* 01100000 */
20816 + 0x38, /* 00111000 */
20817 + 0x0c, /* 00001100 */
20818 + 0xc6, /* 11000110 */
20819 + 0x7c, /* 01111100 */
20820 + 0x00, /* 00000000 */
20821 + 0x00, /* 00000000 */
20822 + 0x00, /* 00000000 */
20823 + 0x00, /* 00000000 */
20825 + /* 116 0x74 't' */
20826 + 0x00, /* 00000000 */
20827 + 0x00, /* 00000000 */
20828 + 0x10, /* 00010000 */
20829 + 0x30, /* 00110000 */
20830 + 0x30, /* 00110000 */
20831 + 0xfc, /* 11111100 */
20832 + 0x30, /* 00110000 */
20833 + 0x30, /* 00110000 */
20834 + 0x30, /* 00110000 */
20835 + 0x30, /* 00110000 */
20836 + 0x36, /* 00110110 */
20837 + 0x1c, /* 00011100 */
20838 + 0x00, /* 00000000 */
20839 + 0x00, /* 00000000 */
20840 + 0x00, /* 00000000 */
20841 + 0x00, /* 00000000 */
20843 + /* 117 0x75 'u' */
20844 + 0x00, /* 00000000 */
20845 + 0x00, /* 00000000 */
20846 + 0x00, /* 00000000 */
20847 + 0x00, /* 00000000 */
20848 + 0x00, /* 00000000 */
20849 + 0xcc, /* 11001100 */
20850 + 0xcc, /* 11001100 */
20851 + 0xcc, /* 11001100 */
20852 + 0xcc, /* 11001100 */
20853 + 0xcc, /* 11001100 */
20854 + 0xcc, /* 11001100 */
20855 + 0x76, /* 01110110 */
20856 + 0x00, /* 00000000 */
20857 + 0x00, /* 00000000 */
20858 + 0x00, /* 00000000 */
20859 + 0x00, /* 00000000 */
20861 + /* 118 0x76 'v' */
20862 + 0x00, /* 00000000 */
20863 + 0x00, /* 00000000 */
20864 + 0x00, /* 00000000 */
20865 + 0x00, /* 00000000 */
20866 + 0x00, /* 00000000 */
20867 + 0xc6, /* 11000110 */
20868 + 0xc6, /* 11000110 */
20869 + 0xc6, /* 11000110 */
20870 + 0xc6, /* 11000110 */
20871 + 0xc6, /* 11000110 */
20872 + 0x6c, /* 01101100 */
20873 + 0x38, /* 00111000 */
20874 + 0x00, /* 00000000 */
20875 + 0x00, /* 00000000 */
20876 + 0x00, /* 00000000 */
20877 + 0x00, /* 00000000 */
20879 + /* 119 0x77 'w' */
20880 + 0x00, /* 00000000 */
20881 + 0x00, /* 00000000 */
20882 + 0x00, /* 00000000 */
20883 + 0x00, /* 00000000 */
20884 + 0x00, /* 00000000 */
20885 + 0xc6, /* 11000110 */
20886 + 0xc6, /* 11000110 */
20887 + 0xd6, /* 11010110 */
20888 + 0xd6, /* 11010110 */
20889 + 0xd6, /* 11010110 */
20890 + 0xfe, /* 11111110 */
20891 + 0x6c, /* 01101100 */
20892 + 0x00, /* 00000000 */
20893 + 0x00, /* 00000000 */
20894 + 0x00, /* 00000000 */
20895 + 0x00, /* 00000000 */
20897 + /* 120 0x78 'x' */
20898 + 0x00, /* 00000000 */
20899 + 0x00, /* 00000000 */
20900 + 0x00, /* 00000000 */
20901 + 0x00, /* 00000000 */
20902 + 0x00, /* 00000000 */
20903 + 0xc6, /* 11000110 */
20904 + 0x6c, /* 01101100 */
20905 + 0x38, /* 00111000 */
20906 + 0x38, /* 00111000 */
20907 + 0x38, /* 00111000 */
20908 + 0x6c, /* 01101100 */
20909 + 0xc6, /* 11000110 */
20910 + 0x00, /* 00000000 */
20911 + 0x00, /* 00000000 */
20912 + 0x00, /* 00000000 */
20913 + 0x00, /* 00000000 */
20915 + /* 121 0x79 'y' */
20916 + 0x00, /* 00000000 */
20917 + 0x00, /* 00000000 */
20918 + 0x00, /* 00000000 */
20919 + 0x00, /* 00000000 */
20920 + 0x00, /* 00000000 */
20921 + 0xc6, /* 11000110 */
20922 + 0xc6, /* 11000110 */
20923 + 0xc6, /* 11000110 */
20924 + 0xc6, /* 11000110 */
20925 + 0xc6, /* 11000110 */
20926 + 0xc6, /* 11000110 */
20927 + 0x7e, /* 01111110 */
20928 + 0x06, /* 00000110 */
20929 + 0x0c, /* 00001100 */
20930 + 0xf8, /* 11111000 */
20931 + 0x00, /* 00000000 */
20933 + /* 122 0x7a 'z' */
20934 + 0x00, /* 00000000 */
20935 + 0x00, /* 00000000 */
20936 + 0x00, /* 00000000 */
20937 + 0x00, /* 00000000 */
20938 + 0x00, /* 00000000 */
20939 + 0xfe, /* 11111110 */
20940 + 0xcc, /* 11001100 */
20941 + 0x18, /* 00011000 */
20942 + 0x30, /* 00110000 */
20943 + 0x60, /* 01100000 */
20944 + 0xc6, /* 11000110 */
20945 + 0xfe, /* 11111110 */
20946 + 0x00, /* 00000000 */
20947 + 0x00, /* 00000000 */
20948 + 0x00, /* 00000000 */
20949 + 0x00, /* 00000000 */
20951 + /* 123 0x7b '{' */
20952 + 0x00, /* 00000000 */
20953 + 0x00, /* 00000000 */
20954 + 0x0e, /* 00001110 */
20955 + 0x18, /* 00011000 */
20956 + 0x18, /* 00011000 */
20957 + 0x18, /* 00011000 */
20958 + 0x70, /* 01110000 */
20959 + 0x18, /* 00011000 */
20960 + 0x18, /* 00011000 */
20961 + 0x18, /* 00011000 */
20962 + 0x18, /* 00011000 */
20963 + 0x0e, /* 00001110 */
20964 + 0x00, /* 00000000 */
20965 + 0x00, /* 00000000 */
20966 + 0x00, /* 00000000 */
20967 + 0x00, /* 00000000 */
20969 + /* 124 0x7c '|' */
20970 + 0x00, /* 00000000 */
20971 + 0x00, /* 00000000 */
20972 + 0x18, /* 00011000 */
20973 + 0x18, /* 00011000 */
20974 + 0x18, /* 00011000 */
20975 + 0x18, /* 00011000 */
20976 + 0x18, /* 00011000 */
20977 + 0x18, /* 00011000 */
20978 + 0x18, /* 00011000 */
20979 + 0x18, /* 00011000 */
20980 + 0x18, /* 00011000 */
20981 + 0x18, /* 00011000 */
20982 + 0x00, /* 00000000 */
20983 + 0x00, /* 00000000 */
20984 + 0x00, /* 00000000 */
20985 + 0x00, /* 00000000 */
20987 + /* 125 0x7d '}' */
20988 + 0x00, /* 00000000 */
20989 + 0x00, /* 00000000 */
20990 + 0x70, /* 01110000 */
20991 + 0x18, /* 00011000 */
20992 + 0x18, /* 00011000 */
20993 + 0x18, /* 00011000 */
20994 + 0x0e, /* 00001110 */
20995 + 0x18, /* 00011000 */
20996 + 0x18, /* 00011000 */
20997 + 0x18, /* 00011000 */
20998 + 0x18, /* 00011000 */
20999 + 0x70, /* 01110000 */
21000 + 0x00, /* 00000000 */
21001 + 0x00, /* 00000000 */
21002 + 0x00, /* 00000000 */
21003 + 0x00, /* 00000000 */
21005 + /* 126 0x7e '~' */
21006 + 0x00, /* 00000000 */
21007 + 0x76, /* 01110110 */
21008 + 0xdc, /* 11011100 */
21009 + 0x00, /* 00000000 */
21010 + 0x00, /* 00000000 */
21011 + 0x00, /* 00000000 */
21012 + 0x00, /* 00000000 */
21013 + 0x00, /* 00000000 */
21014 + 0x00, /* 00000000 */
21015 + 0x00, /* 00000000 */
21016 + 0x00, /* 00000000 */
21017 + 0x00, /* 00000000 */
21018 + 0x00, /* 00000000 */
21019 + 0x00, /* 00000000 */
21020 + 0x00, /* 00000000 */
21021 + 0x00, /* 00000000 */
21023 + /* 127 0x7f '
\7f' */
21024 + 0x00, /* 00000000 */
21025 + 0x00, /* 00000000 */
21026 + 0x00, /* 00000000 */
21027 + 0x00, /* 00000000 */
21028 + 0x10, /* 00010000 */
21029 + 0x38, /* 00111000 */
21030 + 0x6c, /* 01101100 */
21031 + 0xc6, /* 11000110 */
21032 + 0xc6, /* 11000110 */
21033 + 0xc6, /* 11000110 */
21034 + 0xfe, /* 11111110 */
21035 + 0x00, /* 00000000 */
21036 + 0x00, /* 00000000 */
21037 + 0x00, /* 00000000 */
21038 + 0x00, /* 00000000 */
21039 + 0x00, /* 00000000 */
21041 + /* 128 0x80 '
\80' */
21042 + 0x00, /* 00000000 */
21043 + 0x00, /* 00000000 */
21044 + 0x3c, /* 00111100 */
21045 + 0x66, /* 01100110 */
21046 + 0xc2, /* 11000010 */
21047 + 0xc0, /* 11000000 */
21048 + 0xc0, /* 11000000 */
21049 + 0xc0, /* 11000000 */
21050 + 0xc0, /* 11000000 */
21051 + 0xc2, /* 11000010 */
21052 + 0x66, /* 01100110 */
21053 + 0x3c, /* 00111100 */
21054 + 0x18, /* 00011000 */
21055 + 0x70, /* 01110000 */
21056 + 0x00, /* 00000000 */
21057 + 0x00, /* 00000000 */
21059 + /* 129 0x81 '
\81' */
21060 + 0x00, /* 00000000 */
21061 + 0x00, /* 00000000 */
21062 + 0xcc, /* 11001100 */
21063 + 0x00, /* 00000000 */
21064 + 0x00, /* 00000000 */
21065 + 0xcc, /* 11001100 */
21066 + 0xcc, /* 11001100 */
21067 + 0xcc, /* 11001100 */
21068 + 0xcc, /* 11001100 */
21069 + 0xcc, /* 11001100 */
21070 + 0xcc, /* 11001100 */
21071 + 0x76, /* 01110110 */
21072 + 0x00, /* 00000000 */
21073 + 0x00, /* 00000000 */
21074 + 0x00, /* 00000000 */
21075 + 0x00, /* 00000000 */
21077 + /* 130 0x82 '
\82' */
21078 + 0x00, /* 00000000 */
21079 + 0x0c, /* 00001100 */
21080 + 0x18, /* 00011000 */
21081 + 0x30, /* 00110000 */
21082 + 0x00, /* 00000000 */
21083 + 0x7c, /* 01111100 */
21084 + 0xc6, /* 11000110 */
21085 + 0xfe, /* 11111110 */
21086 + 0xc0, /* 11000000 */
21087 + 0xc0, /* 11000000 */
21088 + 0xc6, /* 11000110 */
21089 + 0x7c, /* 01111100 */
21090 + 0x00, /* 00000000 */
21091 + 0x00, /* 00000000 */
21092 + 0x00, /* 00000000 */
21093 + 0x00, /* 00000000 */
21095 + /* 131 0x83 '
\83' */
21096 + 0x00, /* 00000000 */
21097 + 0x10, /* 00010000 */
21098 + 0x38, /* 00111000 */
21099 + 0x6c, /* 01101100 */
21100 + 0x00, /* 00000000 */
21101 + 0x78, /* 01111000 */
21102 + 0x0c, /* 00001100 */
21103 + 0x7c, /* 01111100 */
21104 + 0xcc, /* 11001100 */
21105 + 0xcc, /* 11001100 */
21106 + 0xcc, /* 11001100 */
21107 + 0x76, /* 01110110 */
21108 + 0x00, /* 00000000 */
21109 + 0x00, /* 00000000 */
21110 + 0x00, /* 00000000 */
21111 + 0x00, /* 00000000 */
21113 + /* 132 0x84 '
\84' */
21114 + 0x00, /* 00000000 */
21115 + 0x00, /* 00000000 */
21116 + 0xcc, /* 11001100 */
21117 + 0x00, /* 00000000 */
21118 + 0x00, /* 00000000 */
21119 + 0x78, /* 01111000 */
21120 + 0x0c, /* 00001100 */
21121 + 0x7c, /* 01111100 */
21122 + 0xcc, /* 11001100 */
21123 + 0xcc, /* 11001100 */
21124 + 0xcc, /* 11001100 */
21125 + 0x76, /* 01110110 */
21126 + 0x00, /* 00000000 */
21127 + 0x00, /* 00000000 */
21128 + 0x00, /* 00000000 */
21129 + 0x00, /* 00000000 */
21131 + /* 133 0x85 '
\85' */
21132 + 0x00, /* 00000000 */
21133 + 0x60, /* 01100000 */
21134 + 0x30, /* 00110000 */
21135 + 0x18, /* 00011000 */
21136 + 0x00, /* 00000000 */
21137 + 0x78, /* 01111000 */
21138 + 0x0c, /* 00001100 */
21139 + 0x7c, /* 01111100 */
21140 + 0xcc, /* 11001100 */
21141 + 0xcc, /* 11001100 */
21142 + 0xcc, /* 11001100 */
21143 + 0x76, /* 01110110 */
21144 + 0x00, /* 00000000 */
21145 + 0x00, /* 00000000 */
21146 + 0x00, /* 00000000 */
21147 + 0x00, /* 00000000 */
21149 + /* 134 0x86 '
\86' */
21150 + 0x00, /* 00000000 */
21151 + 0x38, /* 00111000 */
21152 + 0x6c, /* 01101100 */
21153 + 0x38, /* 00111000 */
21154 + 0x00, /* 00000000 */
21155 + 0x78, /* 01111000 */
21156 + 0x0c, /* 00001100 */
21157 + 0x7c, /* 01111100 */
21158 + 0xcc, /* 11001100 */
21159 + 0xcc, /* 11001100 */
21160 + 0xcc, /* 11001100 */
21161 + 0x76, /* 01110110 */
21162 + 0x00, /* 00000000 */
21163 + 0x00, /* 00000000 */
21164 + 0x00, /* 00000000 */
21165 + 0x00, /* 00000000 */
21167 + /* 135 0x87 '
\87' */
21168 + 0x00, /* 00000000 */
21169 + 0x00, /* 00000000 */
21170 + 0x00, /* 00000000 */
21171 + 0x00, /* 00000000 */
21172 + 0x00, /* 00000000 */
21173 + 0x7c, /* 01111100 */
21174 + 0xc6, /* 11000110 */
21175 + 0xc0, /* 11000000 */
21176 + 0xc0, /* 11000000 */
21177 + 0xc0, /* 11000000 */
21178 + 0xc6, /* 11000110 */
21179 + 0x7c, /* 01111100 */
21180 + 0x18, /* 00011000 */
21181 + 0x70, /* 01110000 */
21182 + 0x00, /* 00000000 */
21183 + 0x00, /* 00000000 */
21185 + /* 136 0x88 '
\88' */
21186 + 0x00, /* 00000000 */
21187 + 0x10, /* 00010000 */
21188 + 0x38, /* 00111000 */
21189 + 0x6c, /* 01101100 */
21190 + 0x00, /* 00000000 */
21191 + 0x7c, /* 01111100 */
21192 + 0xc6, /* 11000110 */
21193 + 0xfe, /* 11111110 */
21194 + 0xc0, /* 11000000 */
21195 + 0xc0, /* 11000000 */
21196 + 0xc6, /* 11000110 */
21197 + 0x7c, /* 01111100 */
21198 + 0x00, /* 00000000 */
21199 + 0x00, /* 00000000 */
21200 + 0x00, /* 00000000 */
21201 + 0x00, /* 00000000 */
21203 + /* 137 0x89 '
\89' */
21204 + 0x00, /* 00000000 */
21205 + 0x00, /* 00000000 */
21206 + 0xc6, /* 11000110 */
21207 + 0x00, /* 00000000 */
21208 + 0x00, /* 00000000 */
21209 + 0x7c, /* 01111100 */
21210 + 0xc6, /* 11000110 */
21211 + 0xfe, /* 11111110 */
21212 + 0xc0, /* 11000000 */
21213 + 0xc0, /* 11000000 */
21214 + 0xc6, /* 11000110 */
21215 + 0x7c, /* 01111100 */
21216 + 0x00, /* 00000000 */
21217 + 0x00, /* 00000000 */
21218 + 0x00, /* 00000000 */
21219 + 0x00, /* 00000000 */
21221 + /* 138 0x8a '
\8a' */
21222 + 0x00, /* 00000000 */
21223 + 0x60, /* 01100000 */
21224 + 0x30, /* 00110000 */
21225 + 0x18, /* 00011000 */
21226 + 0x00, /* 00000000 */
21227 + 0x7c, /* 01111100 */
21228 + 0xc6, /* 11000110 */
21229 + 0xfe, /* 11111110 */
21230 + 0xc0, /* 11000000 */
21231 + 0xc0, /* 11000000 */
21232 + 0xc6, /* 11000110 */
21233 + 0x7c, /* 01111100 */
21234 + 0x00, /* 00000000 */
21235 + 0x00, /* 00000000 */
21236 + 0x00, /* 00000000 */
21237 + 0x00, /* 00000000 */
21239 + /* 139 0x8b '
\8b' */
21240 + 0x00, /* 00000000 */
21241 + 0x00, /* 00000000 */
21242 + 0x66, /* 01100110 */
21243 + 0x00, /* 00000000 */
21244 + 0x00, /* 00000000 */
21245 + 0x38, /* 00111000 */
21246 + 0x18, /* 00011000 */
21247 + 0x18, /* 00011000 */
21248 + 0x18, /* 00011000 */
21249 + 0x18, /* 00011000 */
21250 + 0x18, /* 00011000 */
21251 + 0x3c, /* 00111100 */
21252 + 0x00, /* 00000000 */
21253 + 0x00, /* 00000000 */
21254 + 0x00, /* 00000000 */
21255 + 0x00, /* 00000000 */
21257 + /* 140 0x8c '
\8c' */
21258 + 0x00, /* 00000000 */
21259 + 0x18, /* 00011000 */
21260 + 0x3c, /* 00111100 */
21261 + 0x66, /* 01100110 */
21262 + 0x00, /* 00000000 */
21263 + 0x38, /* 00111000 */
21264 + 0x18, /* 00011000 */
21265 + 0x18, /* 00011000 */
21266 + 0x18, /* 00011000 */
21267 + 0x18, /* 00011000 */
21268 + 0x18, /* 00011000 */
21269 + 0x3c, /* 00111100 */
21270 + 0x00, /* 00000000 */
21271 + 0x00, /* 00000000 */
21272 + 0x00, /* 00000000 */
21273 + 0x00, /* 00000000 */
21275 + /* 141 0x8d '
\8d' */
21276 + 0x00, /* 00000000 */
21277 + 0x60, /* 01100000 */
21278 + 0x30, /* 00110000 */
21279 + 0x18, /* 00011000 */
21280 + 0x00, /* 00000000 */
21281 + 0x38, /* 00111000 */
21282 + 0x18, /* 00011000 */
21283 + 0x18, /* 00011000 */
21284 + 0x18, /* 00011000 */
21285 + 0x18, /* 00011000 */
21286 + 0x18, /* 00011000 */
21287 + 0x3c, /* 00111100 */
21288 + 0x00, /* 00000000 */
21289 + 0x00, /* 00000000 */
21290 + 0x00, /* 00000000 */
21291 + 0x00, /* 00000000 */
21293 + /* 142 0x8e '
\8e' */
21294 + 0x00, /* 00000000 */
21295 + 0xc6, /* 11000110 */
21296 + 0x00, /* 00000000 */
21297 + 0x10, /* 00010000 */
21298 + 0x38, /* 00111000 */
21299 + 0x6c, /* 01101100 */
21300 + 0xc6, /* 11000110 */
21301 + 0xc6, /* 11000110 */
21302 + 0xfe, /* 11111110 */
21303 + 0xc6, /* 11000110 */
21304 + 0xc6, /* 11000110 */
21305 + 0xc6, /* 11000110 */
21306 + 0x00, /* 00000000 */
21307 + 0x00, /* 00000000 */
21308 + 0x00, /* 00000000 */
21309 + 0x00, /* 00000000 */
21311 + /* 143 0x8f '
\8f' */
21312 + 0x38, /* 00111000 */
21313 + 0x6c, /* 01101100 */
21314 + 0x38, /* 00111000 */
21315 + 0x10, /* 00010000 */
21316 + 0x38, /* 00111000 */
21317 + 0x6c, /* 01101100 */
21318 + 0xc6, /* 11000110 */
21319 + 0xfe, /* 11111110 */
21320 + 0xc6, /* 11000110 */
21321 + 0xc6, /* 11000110 */
21322 + 0xc6, /* 11000110 */
21323 + 0xc6, /* 11000110 */
21324 + 0x00, /* 00000000 */
21325 + 0x00, /* 00000000 */
21326 + 0x00, /* 00000000 */
21327 + 0x00, /* 00000000 */
21329 + /* 144 0x90 '
\90' */
21330 + 0x0c, /* 00001100 */
21331 + 0x18, /* 00011000 */
21332 + 0x00, /* 00000000 */
21333 + 0xfe, /* 11111110 */
21334 + 0x66, /* 01100110 */
21335 + 0x62, /* 01100010 */
21336 + 0x68, /* 01101000 */
21337 + 0x78, /* 01111000 */
21338 + 0x68, /* 01101000 */
21339 + 0x62, /* 01100010 */
21340 + 0x66, /* 01100110 */
21341 + 0xfe, /* 11111110 */
21342 + 0x00, /* 00000000 */
21343 + 0x00, /* 00000000 */
21344 + 0x00, /* 00000000 */
21345 + 0x00, /* 00000000 */
21347 + /* 145 0x91 '
\91' */
21348 + 0x00, /* 00000000 */
21349 + 0x00, /* 00000000 */
21350 + 0x00, /* 00000000 */
21351 + 0x00, /* 00000000 */
21352 + 0x00, /* 00000000 */
21353 + 0xec, /* 11101100 */
21354 + 0x36, /* 00110110 */
21355 + 0x36, /* 00110110 */
21356 + 0x7e, /* 01111110 */
21357 + 0xd8, /* 11011000 */
21358 + 0xd8, /* 11011000 */
21359 + 0x6e, /* 01101110 */
21360 + 0x00, /* 00000000 */
21361 + 0x00, /* 00000000 */
21362 + 0x00, /* 00000000 */
21363 + 0x00, /* 00000000 */
21365 + /* 146 0x92 '
\92' */
21366 + 0x00, /* 00000000 */
21367 + 0x00, /* 00000000 */
21368 + 0x3e, /* 00111110 */
21369 + 0x6c, /* 01101100 */
21370 + 0xcc, /* 11001100 */
21371 + 0xcc, /* 11001100 */
21372 + 0xfe, /* 11111110 */
21373 + 0xcc, /* 11001100 */
21374 + 0xcc, /* 11001100 */
21375 + 0xcc, /* 11001100 */
21376 + 0xcc, /* 11001100 */
21377 + 0xce, /* 11001110 */
21378 + 0x00, /* 00000000 */
21379 + 0x00, /* 00000000 */
21380 + 0x00, /* 00000000 */
21381 + 0x00, /* 00000000 */
21383 + /* 147 0x93 '
\93' */
21384 + 0x00, /* 00000000 */
21385 + 0x10, /* 00010000 */
21386 + 0x38, /* 00111000 */
21387 + 0x6c, /* 01101100 */
21388 + 0x00, /* 00000000 */
21389 + 0x7c, /* 01111100 */
21390 + 0xc6, /* 11000110 */
21391 + 0xc6, /* 11000110 */
21392 + 0xc6, /* 11000110 */
21393 + 0xc6, /* 11000110 */
21394 + 0xc6, /* 11000110 */
21395 + 0x7c, /* 01111100 */
21396 + 0x00, /* 00000000 */
21397 + 0x00, /* 00000000 */
21398 + 0x00, /* 00000000 */
21399 + 0x00, /* 00000000 */
21401 + /* 148 0x94 '
\94' */
21402 + 0x00, /* 00000000 */
21403 + 0x00, /* 00000000 */
21404 + 0xc6, /* 11000110 */
21405 + 0x00, /* 00000000 */
21406 + 0x00, /* 00000000 */
21407 + 0x7c, /* 01111100 */
21408 + 0xc6, /* 11000110 */
21409 + 0xc6, /* 11000110 */
21410 + 0xc6, /* 11000110 */
21411 + 0xc6, /* 11000110 */
21412 + 0xc6, /* 11000110 */
21413 + 0x7c, /* 01111100 */
21414 + 0x00, /* 00000000 */
21415 + 0x00, /* 00000000 */
21416 + 0x00, /* 00000000 */
21417 + 0x00, /* 00000000 */
21419 + /* 149 0x95 '
\95' */
21420 + 0x00, /* 00000000 */
21421 + 0x60, /* 01100000 */
21422 + 0x30, /* 00110000 */
21423 + 0x18, /* 00011000 */
21424 + 0x00, /* 00000000 */
21425 + 0x7c, /* 01111100 */
21426 + 0xc6, /* 11000110 */
21427 + 0xc6, /* 11000110 */
21428 + 0xc6, /* 11000110 */
21429 + 0xc6, /* 11000110 */
21430 + 0xc6, /* 11000110 */
21431 + 0x7c, /* 01111100 */
21432 + 0x00, /* 00000000 */
21433 + 0x00, /* 00000000 */
21434 + 0x00, /* 00000000 */
21435 + 0x00, /* 00000000 */
21437 + /* 150 0x96 '
\96' */
21438 + 0x00, /* 00000000 */
21439 + 0x30, /* 00110000 */
21440 + 0x78, /* 01111000 */
21441 + 0xcc, /* 11001100 */
21442 + 0x00, /* 00000000 */
21443 + 0xcc, /* 11001100 */
21444 + 0xcc, /* 11001100 */
21445 + 0xcc, /* 11001100 */
21446 + 0xcc, /* 11001100 */
21447 + 0xcc, /* 11001100 */
21448 + 0xcc, /* 11001100 */
21449 + 0x76, /* 01110110 */
21450 + 0x00, /* 00000000 */
21451 + 0x00, /* 00000000 */
21452 + 0x00, /* 00000000 */
21453 + 0x00, /* 00000000 */
21455 + /* 151 0x97 '
\97' */
21456 + 0x00, /* 00000000 */
21457 + 0x60, /* 01100000 */
21458 + 0x30, /* 00110000 */
21459 + 0x18, /* 00011000 */
21460 + 0x00, /* 00000000 */
21461 + 0xcc, /* 11001100 */
21462 + 0xcc, /* 11001100 */
21463 + 0xcc, /* 11001100 */
21464 + 0xcc, /* 11001100 */
21465 + 0xcc, /* 11001100 */
21466 + 0xcc, /* 11001100 */
21467 + 0x76, /* 01110110 */
21468 + 0x00, /* 00000000 */
21469 + 0x00, /* 00000000 */
21470 + 0x00, /* 00000000 */
21471 + 0x00, /* 00000000 */
21473 + /* 152 0x98 '
\98' */
21474 + 0x00, /* 00000000 */
21475 + 0x00, /* 00000000 */
21476 + 0xc6, /* 11000110 */
21477 + 0x00, /* 00000000 */
21478 + 0x00, /* 00000000 */
21479 + 0xc6, /* 11000110 */
21480 + 0xc6, /* 11000110 */
21481 + 0xc6, /* 11000110 */
21482 + 0xc6, /* 11000110 */
21483 + 0xc6, /* 11000110 */
21484 + 0xc6, /* 11000110 */
21485 + 0x7e, /* 01111110 */
21486 + 0x06, /* 00000110 */
21487 + 0x0c, /* 00001100 */
21488 + 0x78, /* 01111000 */
21489 + 0x00, /* 00000000 */
21491 + /* 153 0x99 '
\99' */
21492 + 0x00, /* 00000000 */
21493 + 0xc6, /* 11000110 */
21494 + 0x00, /* 00000000 */
21495 + 0x7c, /* 01111100 */
21496 + 0xc6, /* 11000110 */
21497 + 0xc6, /* 11000110 */
21498 + 0xc6, /* 11000110 */
21499 + 0xc6, /* 11000110 */
21500 + 0xc6, /* 11000110 */
21501 + 0xc6, /* 11000110 */
21502 + 0xc6, /* 11000110 */
21503 + 0x7c, /* 01111100 */
21504 + 0x00, /* 00000000 */
21505 + 0x00, /* 00000000 */
21506 + 0x00, /* 00000000 */
21507 + 0x00, /* 00000000 */
21509 + /* 154 0x9a '
\9a' */
21510 + 0x00, /* 00000000 */
21511 + 0xc6, /* 11000110 */
21512 + 0x00, /* 00000000 */
21513 + 0xc6, /* 11000110 */
21514 + 0xc6, /* 11000110 */
21515 + 0xc6, /* 11000110 */
21516 + 0xc6, /* 11000110 */
21517 + 0xc6, /* 11000110 */
21518 + 0xc6, /* 11000110 */
21519 + 0xc6, /* 11000110 */
21520 + 0xc6, /* 11000110 */
21521 + 0x7c, /* 01111100 */
21522 + 0x00, /* 00000000 */
21523 + 0x00, /* 00000000 */
21524 + 0x00, /* 00000000 */
21525 + 0x00, /* 00000000 */
21527 + /* 155 0x9b '
\9b' */
21528 + 0x00, /* 00000000 */
21529 + 0x18, /* 00011000 */
21530 + 0x18, /* 00011000 */
21531 + 0x7c, /* 01111100 */
21532 + 0xc6, /* 11000110 */
21533 + 0xc0, /* 11000000 */
21534 + 0xc0, /* 11000000 */
21535 + 0xc0, /* 11000000 */
21536 + 0xc6, /* 11000110 */
21537 + 0x7c, /* 01111100 */
21538 + 0x18, /* 00011000 */
21539 + 0x18, /* 00011000 */
21540 + 0x00, /* 00000000 */
21541 + 0x00, /* 00000000 */
21542 + 0x00, /* 00000000 */
21543 + 0x00, /* 00000000 */
21545 + /* 156 0x9c '
\9c' */
21546 + 0x00, /* 00000000 */
21547 + 0x38, /* 00111000 */
21548 + 0x6c, /* 01101100 */
21549 + 0x64, /* 01100100 */
21550 + 0x60, /* 01100000 */
21551 + 0xf0, /* 11110000 */
21552 + 0x60, /* 01100000 */
21553 + 0x60, /* 01100000 */
21554 + 0x60, /* 01100000 */
21555 + 0x60, /* 01100000 */
21556 + 0xe6, /* 11100110 */
21557 + 0xfc, /* 11111100 */
21558 + 0x00, /* 00000000 */
21559 + 0x00, /* 00000000 */
21560 + 0x00, /* 00000000 */
21561 + 0x00, /* 00000000 */
21563 + /* 157 0x9d '
\9d' */
21564 + 0x00, /* 00000000 */
21565 + 0x00, /* 00000000 */
21566 + 0x66, /* 01100110 */
21567 + 0x66, /* 01100110 */
21568 + 0x3c, /* 00111100 */
21569 + 0x18, /* 00011000 */
21570 + 0x7e, /* 01111110 */
21571 + 0x18, /* 00011000 */
21572 + 0x7e, /* 01111110 */
21573 + 0x18, /* 00011000 */
21574 + 0x18, /* 00011000 */
21575 + 0x18, /* 00011000 */
21576 + 0x00, /* 00000000 */
21577 + 0x00, /* 00000000 */
21578 + 0x00, /* 00000000 */
21579 + 0x00, /* 00000000 */
21581 + /* 158 0x9e '
\9e' */
21582 + 0x00, /* 00000000 */
21583 + 0xf8, /* 11111000 */
21584 + 0xcc, /* 11001100 */
21585 + 0xcc, /* 11001100 */
21586 + 0xf8, /* 11111000 */
21587 + 0xc4, /* 11000100 */
21588 + 0xcc, /* 11001100 */
21589 + 0xde, /* 11011110 */
21590 + 0xcc, /* 11001100 */
21591 + 0xcc, /* 11001100 */
21592 + 0xcc, /* 11001100 */
21593 + 0xc6, /* 11000110 */
21594 + 0x00, /* 00000000 */
21595 + 0x00, /* 00000000 */
21596 + 0x00, /* 00000000 */
21597 + 0x00, /* 00000000 */
21599 + /* 159 0x9f '
\9f' */
21600 + 0x00, /* 00000000 */
21601 + 0x0e, /* 00001110 */
21602 + 0x1b, /* 00011011 */
21603 + 0x18, /* 00011000 */
21604 + 0x18, /* 00011000 */
21605 + 0x18, /* 00011000 */
21606 + 0x7e, /* 01111110 */
21607 + 0x18, /* 00011000 */
21608 + 0x18, /* 00011000 */
21609 + 0x18, /* 00011000 */
21610 + 0xd8, /* 11011000 */
21611 + 0x70, /* 01110000 */
21612 + 0x00, /* 00000000 */
21613 + 0x00, /* 00000000 */
21614 + 0x00, /* 00000000 */
21615 + 0x00, /* 00000000 */
21617 + /* 160 0xa0 ' ' */
21618 + 0x00, /* 00000000 */
21619 + 0x18, /* 00011000 */
21620 + 0x30, /* 00110000 */
21621 + 0x60, /* 01100000 */
21622 + 0x00, /* 00000000 */
21623 + 0x78, /* 01111000 */
21624 + 0x0c, /* 00001100 */
21625 + 0x7c, /* 01111100 */
21626 + 0xcc, /* 11001100 */
21627 + 0xcc, /* 11001100 */
21628 + 0xcc, /* 11001100 */
21629 + 0x76, /* 01110110 */
21630 + 0x00, /* 00000000 */
21631 + 0x00, /* 00000000 */
21632 + 0x00, /* 00000000 */
21633 + 0x00, /* 00000000 */
21635 + /* 161 0xa1 '¡' */
21636 + 0x00, /* 00000000 */
21637 + 0x0c, /* 00001100 */
21638 + 0x18, /* 00011000 */
21639 + 0x30, /* 00110000 */
21640 + 0x00, /* 00000000 */
21641 + 0x38, /* 00111000 */
21642 + 0x18, /* 00011000 */
21643 + 0x18, /* 00011000 */
21644 + 0x18, /* 00011000 */
21645 + 0x18, /* 00011000 */
21646 + 0x18, /* 00011000 */
21647 + 0x3c, /* 00111100 */
21648 + 0x00, /* 00000000 */
21649 + 0x00, /* 00000000 */
21650 + 0x00, /* 00000000 */
21651 + 0x00, /* 00000000 */
21653 + /* 162 0xa2 '¢' */
21654 + 0x00, /* 00000000 */
21655 + 0x18, /* 00011000 */
21656 + 0x30, /* 00110000 */
21657 + 0x60, /* 01100000 */
21658 + 0x00, /* 00000000 */
21659 + 0x7c, /* 01111100 */
21660 + 0xc6, /* 11000110 */
21661 + 0xc6, /* 11000110 */
21662 + 0xc6, /* 11000110 */
21663 + 0xc6, /* 11000110 */
21664 + 0xc6, /* 11000110 */
21665 + 0x7c, /* 01111100 */
21666 + 0x00, /* 00000000 */
21667 + 0x00, /* 00000000 */
21668 + 0x00, /* 00000000 */
21669 + 0x00, /* 00000000 */
21671 + /* 163 0xa3 '£' */
21672 + 0x00, /* 00000000 */
21673 + 0x18, /* 00011000 */
21674 + 0x30, /* 00110000 */
21675 + 0x60, /* 01100000 */
21676 + 0x00, /* 00000000 */
21677 + 0xcc, /* 11001100 */
21678 + 0xcc, /* 11001100 */
21679 + 0xcc, /* 11001100 */
21680 + 0xcc, /* 11001100 */
21681 + 0xcc, /* 11001100 */
21682 + 0xcc, /* 11001100 */
21683 + 0x76, /* 01110110 */
21684 + 0x00, /* 00000000 */
21685 + 0x00, /* 00000000 */
21686 + 0x00, /* 00000000 */
21687 + 0x00, /* 00000000 */
21689 + /* 164 0xa4 '¤' */
21690 + 0x00, /* 00000000 */
21691 + 0x00, /* 00000000 */
21692 + 0x76, /* 01110110 */
21693 + 0xdc, /* 11011100 */
21694 + 0x00, /* 00000000 */
21695 + 0xdc, /* 11011100 */
21696 + 0x66, /* 01100110 */
21697 + 0x66, /* 01100110 */
21698 + 0x66, /* 01100110 */
21699 + 0x66, /* 01100110 */
21700 + 0x66, /* 01100110 */
21701 + 0x66, /* 01100110 */
21702 + 0x00, /* 00000000 */
21703 + 0x00, /* 00000000 */
21704 + 0x00, /* 00000000 */
21705 + 0x00, /* 00000000 */
21707 + /* 165 0xa5 '¥' */
21708 + 0x76, /* 01110110 */
21709 + 0xdc, /* 11011100 */
21710 + 0x00, /* 00000000 */
21711 + 0xc6, /* 11000110 */
21712 + 0xe6, /* 11100110 */
21713 + 0xf6, /* 11110110 */
21714 + 0xfe, /* 11111110 */
21715 + 0xde, /* 11011110 */
21716 + 0xce, /* 11001110 */
21717 + 0xc6, /* 11000110 */
21718 + 0xc6, /* 11000110 */
21719 + 0xc6, /* 11000110 */
21720 + 0x00, /* 00000000 */
21721 + 0x00, /* 00000000 */
21722 + 0x00, /* 00000000 */
21723 + 0x00, /* 00000000 */
21725 + /* 166 0xa6 '¦' */
21726 + 0x00, /* 00000000 */
21727 + 0x00, /* 00000000 */
21728 + 0x3c, /* 00111100 */
21729 + 0x6c, /* 01101100 */
21730 + 0x6c, /* 01101100 */
21731 + 0x3e, /* 00111110 */
21732 + 0x00, /* 00000000 */
21733 + 0x7e, /* 01111110 */
21734 + 0x00, /* 00000000 */
21735 + 0x00, /* 00000000 */
21736 + 0x00, /* 00000000 */
21737 + 0x00, /* 00000000 */
21738 + 0x00, /* 00000000 */
21739 + 0x00, /* 00000000 */
21740 + 0x00, /* 00000000 */
21741 + 0x00, /* 00000000 */
21743 + /* 167 0xa7 '§' */
21744 + 0x00, /* 00000000 */
21745 + 0x00, /* 00000000 */
21746 + 0x38, /* 00111000 */
21747 + 0x6c, /* 01101100 */
21748 + 0x6c, /* 01101100 */
21749 + 0x38, /* 00111000 */
21750 + 0x00, /* 00000000 */
21751 + 0x7c, /* 01111100 */
21752 + 0x00, /* 00000000 */
21753 + 0x00, /* 00000000 */
21754 + 0x00, /* 00000000 */
21755 + 0x00, /* 00000000 */
21756 + 0x00, /* 00000000 */
21757 + 0x00, /* 00000000 */
21758 + 0x00, /* 00000000 */
21759 + 0x00, /* 00000000 */
21761 + /* 168 0xa8 '¨' */
21762 + 0x00, /* 00000000 */
21763 + 0x00, /* 00000000 */
21764 + 0x30, /* 00110000 */
21765 + 0x30, /* 00110000 */
21766 + 0x00, /* 00000000 */
21767 + 0x30, /* 00110000 */
21768 + 0x30, /* 00110000 */
21769 + 0x60, /* 01100000 */
21770 + 0xc0, /* 11000000 */
21771 + 0xc6, /* 11000110 */
21772 + 0xc6, /* 11000110 */
21773 + 0x7c, /* 01111100 */
21774 + 0x00, /* 00000000 */
21775 + 0x00, /* 00000000 */
21776 + 0x00, /* 00000000 */
21777 + 0x00, /* 00000000 */
21779 + /* 169 0xa9 '©' */
21780 + 0x00, /* 00000000 */
21781 + 0x00, /* 00000000 */
21782 + 0x00, /* 00000000 */
21783 + 0x00, /* 00000000 */
21784 + 0x00, /* 00000000 */
21785 + 0x00, /* 00000000 */
21786 + 0xfe, /* 11111110 */
21787 + 0xc0, /* 11000000 */
21788 + 0xc0, /* 11000000 */
21789 + 0xc0, /* 11000000 */
21790 + 0xc0, /* 11000000 */
21791 + 0x00, /* 00000000 */
21792 + 0x00, /* 00000000 */
21793 + 0x00, /* 00000000 */
21794 + 0x00, /* 00000000 */
21795 + 0x00, /* 00000000 */
21797 + /* 170 0xaa 'ª' */
21798 + 0x00, /* 00000000 */
21799 + 0x00, /* 00000000 */
21800 + 0x00, /* 00000000 */
21801 + 0x00, /* 00000000 */
21802 + 0x00, /* 00000000 */
21803 + 0x00, /* 00000000 */
21804 + 0xfe, /* 11111110 */
21805 + 0x06, /* 00000110 */
21806 + 0x06, /* 00000110 */
21807 + 0x06, /* 00000110 */
21808 + 0x06, /* 00000110 */
21809 + 0x00, /* 00000000 */
21810 + 0x00, /* 00000000 */
21811 + 0x00, /* 00000000 */
21812 + 0x00, /* 00000000 */
21813 + 0x00, /* 00000000 */
21815 + /* 171 0xab '«' */
21816 + 0x00, /* 00000000 */
21817 + 0x60, /* 01100000 */
21818 + 0xe0, /* 11100000 */
21819 + 0x62, /* 01100010 */
21820 + 0x66, /* 01100110 */
21821 + 0x6c, /* 01101100 */
21822 + 0x18, /* 00011000 */
21823 + 0x30, /* 00110000 */
21824 + 0x60, /* 01100000 */
21825 + 0xdc, /* 11011100 */
21826 + 0x86, /* 10000110 */
21827 + 0x0c, /* 00001100 */
21828 + 0x18, /* 00011000 */
21829 + 0x3e, /* 00111110 */
21830 + 0x00, /* 00000000 */
21831 + 0x00, /* 00000000 */
21833 + /* 172 0xac '¬' */
21834 + 0x00, /* 00000000 */
21835 + 0x60, /* 01100000 */
21836 + 0xe0, /* 11100000 */
21837 + 0x62, /* 01100010 */
21838 + 0x66, /* 01100110 */
21839 + 0x6c, /* 01101100 */
21840 + 0x18, /* 00011000 */
21841 + 0x30, /* 00110000 */
21842 + 0x66, /* 01100110 */
21843 + 0xce, /* 11001110 */
21844 + 0x9a, /* 10011010 */
21845 + 0x3f, /* 00111111 */
21846 + 0x06, /* 00000110 */
21847 + 0x06, /* 00000110 */
21848 + 0x00, /* 00000000 */
21849 + 0x00, /* 00000000 */
21851 + /* 173 0xad '' */
21852 + 0x00, /* 00000000 */
21853 + 0x00, /* 00000000 */
21854 + 0x18, /* 00011000 */
21855 + 0x18, /* 00011000 */
21856 + 0x00, /* 00000000 */
21857 + 0x18, /* 00011000 */
21858 + 0x18, /* 00011000 */
21859 + 0x18, /* 00011000 */
21860 + 0x3c, /* 00111100 */
21861 + 0x3c, /* 00111100 */
21862 + 0x3c, /* 00111100 */
21863 + 0x18, /* 00011000 */
21864 + 0x00, /* 00000000 */
21865 + 0x00, /* 00000000 */
21866 + 0x00, /* 00000000 */
21867 + 0x00, /* 00000000 */
21869 + /* 174 0xae '®' */
21870 + 0x00, /* 00000000 */
21871 + 0x00, /* 00000000 */
21872 + 0x00, /* 00000000 */
21873 + 0x00, /* 00000000 */
21874 + 0x00, /* 00000000 */
21875 + 0x36, /* 00110110 */
21876 + 0x6c, /* 01101100 */
21877 + 0xd8, /* 11011000 */
21878 + 0x6c, /* 01101100 */
21879 + 0x36, /* 00110110 */
21880 + 0x00, /* 00000000 */
21881 + 0x00, /* 00000000 */
21882 + 0x00, /* 00000000 */
21883 + 0x00, /* 00000000 */
21884 + 0x00, /* 00000000 */
21885 + 0x00, /* 00000000 */
21887 + /* 175 0xaf '¯' */
21888 + 0x00, /* 00000000 */
21889 + 0x00, /* 00000000 */
21890 + 0x00, /* 00000000 */
21891 + 0x00, /* 00000000 */
21892 + 0x00, /* 00000000 */
21893 + 0xd8, /* 11011000 */
21894 + 0x6c, /* 01101100 */
21895 + 0x36, /* 00110110 */
21896 + 0x6c, /* 01101100 */
21897 + 0xd8, /* 11011000 */
21898 + 0x00, /* 00000000 */
21899 + 0x00, /* 00000000 */
21900 + 0x00, /* 00000000 */
21901 + 0x00, /* 00000000 */
21902 + 0x00, /* 00000000 */
21903 + 0x00, /* 00000000 */
21905 + /* 176 0xb0 '°' */
21906 + 0x11, /* 00010001 */
21907 + 0x44, /* 01000100 */
21908 + 0x11, /* 00010001 */
21909 + 0x44, /* 01000100 */
21910 + 0x11, /* 00010001 */
21911 + 0x44, /* 01000100 */
21912 + 0x11, /* 00010001 */
21913 + 0x44, /* 01000100 */
21914 + 0x11, /* 00010001 */
21915 + 0x44, /* 01000100 */
21916 + 0x11, /* 00010001 */
21917 + 0x44, /* 01000100 */
21918 + 0x11, /* 00010001 */
21919 + 0x44, /* 01000100 */
21920 + 0x11, /* 00010001 */
21921 + 0x44, /* 01000100 */
21923 + /* 177 0xb1 '±' */
21924 + 0x55, /* 01010101 */
21925 + 0xaa, /* 10101010 */
21926 + 0x55, /* 01010101 */
21927 + 0xaa, /* 10101010 */
21928 + 0x55, /* 01010101 */
21929 + 0xaa, /* 10101010 */
21930 + 0x55, /* 01010101 */
21931 + 0xaa, /* 10101010 */
21932 + 0x55, /* 01010101 */
21933 + 0xaa, /* 10101010 */
21934 + 0x55, /* 01010101 */
21935 + 0xaa, /* 10101010 */
21936 + 0x55, /* 01010101 */
21937 + 0xaa, /* 10101010 */
21938 + 0x55, /* 01010101 */
21939 + 0xaa, /* 10101010 */
21941 + /* 178 0xb2 '²' */
21942 + 0xdd, /* 11011101 */
21943 + 0x77, /* 01110111 */
21944 + 0xdd, /* 11011101 */
21945 + 0x77, /* 01110111 */
21946 + 0xdd, /* 11011101 */
21947 + 0x77, /* 01110111 */
21948 + 0xdd, /* 11011101 */
21949 + 0x77, /* 01110111 */
21950 + 0xdd, /* 11011101 */
21951 + 0x77, /* 01110111 */
21952 + 0xdd, /* 11011101 */
21953 + 0x77, /* 01110111 */
21954 + 0xdd, /* 11011101 */
21955 + 0x77, /* 01110111 */
21956 + 0xdd, /* 11011101 */
21957 + 0x77, /* 01110111 */
21959 + /* 179 0xb3 '³' */
21960 + 0x18, /* 00011000 */
21961 + 0x18, /* 00011000 */
21962 + 0x18, /* 00011000 */
21963 + 0x18, /* 00011000 */
21964 + 0x18, /* 00011000 */
21965 + 0x18, /* 00011000 */
21966 + 0x18, /* 00011000 */
21967 + 0x18, /* 00011000 */
21968 + 0x18, /* 00011000 */
21969 + 0x18, /* 00011000 */
21970 + 0x18, /* 00011000 */
21971 + 0x18, /* 00011000 */
21972 + 0x18, /* 00011000 */
21973 + 0x18, /* 00011000 */
21974 + 0x18, /* 00011000 */
21975 + 0x18, /* 00011000 */
21977 + /* 180 0xb4 '´' */
21978 + 0x18, /* 00011000 */
21979 + 0x18, /* 00011000 */
21980 + 0x18, /* 00011000 */
21981 + 0x18, /* 00011000 */
21982 + 0x18, /* 00011000 */
21983 + 0x18, /* 00011000 */
21984 + 0x18, /* 00011000 */
21985 + 0xf8, /* 11111000 */
21986 + 0x18, /* 00011000 */
21987 + 0x18, /* 00011000 */
21988 + 0x18, /* 00011000 */
21989 + 0x18, /* 00011000 */
21990 + 0x18, /* 00011000 */
21991 + 0x18, /* 00011000 */
21992 + 0x18, /* 00011000 */
21993 + 0x18, /* 00011000 */
21995 + /* 181 0xb5 'µ' */
21996 + 0x18, /* 00011000 */
21997 + 0x18, /* 00011000 */
21998 + 0x18, /* 00011000 */
21999 + 0x18, /* 00011000 */
22000 + 0x18, /* 00011000 */
22001 + 0xf8, /* 11111000 */
22002 + 0x18, /* 00011000 */
22003 + 0xf8, /* 11111000 */
22004 + 0x18, /* 00011000 */
22005 + 0x18, /* 00011000 */
22006 + 0x18, /* 00011000 */
22007 + 0x18, /* 00011000 */
22008 + 0x18, /* 00011000 */
22009 + 0x18, /* 00011000 */
22010 + 0x18, /* 00011000 */
22011 + 0x18, /* 00011000 */
22013 + /* 182 0xb6 '¶' */
22014 + 0x36, /* 00110110 */
22015 + 0x36, /* 00110110 */
22016 + 0x36, /* 00110110 */
22017 + 0x36, /* 00110110 */
22018 + 0x36, /* 00110110 */
22019 + 0x36, /* 00110110 */
22020 + 0x36, /* 00110110 */
22021 + 0xf6, /* 11110110 */
22022 + 0x36, /* 00110110 */
22023 + 0x36, /* 00110110 */
22024 + 0x36, /* 00110110 */
22025 + 0x36, /* 00110110 */
22026 + 0x36, /* 00110110 */
22027 + 0x36, /* 00110110 */
22028 + 0x36, /* 00110110 */
22029 + 0x36, /* 00110110 */
22031 + /* 183 0xb7 '·' */
22032 + 0x00, /* 00000000 */
22033 + 0x00, /* 00000000 */
22034 + 0x00, /* 00000000 */
22035 + 0x00, /* 00000000 */
22036 + 0x00, /* 00000000 */
22037 + 0x00, /* 00000000 */
22038 + 0x00, /* 00000000 */
22039 + 0xfe, /* 11111110 */
22040 + 0x36, /* 00110110 */
22041 + 0x36, /* 00110110 */
22042 + 0x36, /* 00110110 */
22043 + 0x36, /* 00110110 */
22044 + 0x36, /* 00110110 */
22045 + 0x36, /* 00110110 */
22046 + 0x36, /* 00110110 */
22047 + 0x36, /* 00110110 */
22049 + /* 184 0xb8 '¸' */
22050 + 0x00, /* 00000000 */
22051 + 0x00, /* 00000000 */
22052 + 0x00, /* 00000000 */
22053 + 0x00, /* 00000000 */
22054 + 0x00, /* 00000000 */
22055 + 0xf8, /* 11111000 */
22056 + 0x18, /* 00011000 */
22057 + 0xf8, /* 11111000 */
22058 + 0x18, /* 00011000 */
22059 + 0x18, /* 00011000 */
22060 + 0x18, /* 00011000 */
22061 + 0x18, /* 00011000 */
22062 + 0x18, /* 00011000 */
22063 + 0x18, /* 00011000 */
22064 + 0x18, /* 00011000 */
22065 + 0x18, /* 00011000 */
22067 + /* 185 0xb9 '¹' */
22068 + 0x36, /* 00110110 */
22069 + 0x36, /* 00110110 */
22070 + 0x36, /* 00110110 */
22071 + 0x36, /* 00110110 */
22072 + 0x36, /* 00110110 */
22073 + 0xf6, /* 11110110 */
22074 + 0x06, /* 00000110 */
22075 + 0xf6, /* 11110110 */
22076 + 0x36, /* 00110110 */
22077 + 0x36, /* 00110110 */
22078 + 0x36, /* 00110110 */
22079 + 0x36, /* 00110110 */
22080 + 0x36, /* 00110110 */
22081 + 0x36, /* 00110110 */
22082 + 0x36, /* 00110110 */
22083 + 0x36, /* 00110110 */
22085 + /* 186 0xba 'º' */
22086 + 0x36, /* 00110110 */
22087 + 0x36, /* 00110110 */
22088 + 0x36, /* 00110110 */
22089 + 0x36, /* 00110110 */
22090 + 0x36, /* 00110110 */
22091 + 0x36, /* 00110110 */
22092 + 0x36, /* 00110110 */
22093 + 0x36, /* 00110110 */
22094 + 0x36, /* 00110110 */
22095 + 0x36, /* 00110110 */
22096 + 0x36, /* 00110110 */
22097 + 0x36, /* 00110110 */
22098 + 0x36, /* 00110110 */
22099 + 0x36, /* 00110110 */
22100 + 0x36, /* 00110110 */
22101 + 0x36, /* 00110110 */
22103 + /* 187 0xbb '»' */
22104 + 0x00, /* 00000000 */
22105 + 0x00, /* 00000000 */
22106 + 0x00, /* 00000000 */
22107 + 0x00, /* 00000000 */
22108 + 0x00, /* 00000000 */
22109 + 0xfe, /* 11111110 */
22110 + 0x06, /* 00000110 */
22111 + 0xf6, /* 11110110 */
22112 + 0x36, /* 00110110 */
22113 + 0x36, /* 00110110 */
22114 + 0x36, /* 00110110 */
22115 + 0x36, /* 00110110 */
22116 + 0x36, /* 00110110 */
22117 + 0x36, /* 00110110 */
22118 + 0x36, /* 00110110 */
22119 + 0x36, /* 00110110 */
22121 + /* 188 0xbc '¼' */
22122 + 0x36, /* 00110110 */
22123 + 0x36, /* 00110110 */
22124 + 0x36, /* 00110110 */
22125 + 0x36, /* 00110110 */
22126 + 0x36, /* 00110110 */
22127 + 0xf6, /* 11110110 */
22128 + 0x06, /* 00000110 */
22129 + 0xfe, /* 11111110 */
22130 + 0x00, /* 00000000 */
22131 + 0x00, /* 00000000 */
22132 + 0x00, /* 00000000 */
22133 + 0x00, /* 00000000 */
22134 + 0x00, /* 00000000 */
22135 + 0x00, /* 00000000 */
22136 + 0x00, /* 00000000 */
22137 + 0x00, /* 00000000 */
22139 + /* 189 0xbd '½' */
22140 + 0x36, /* 00110110 */
22141 + 0x36, /* 00110110 */
22142 + 0x36, /* 00110110 */
22143 + 0x36, /* 00110110 */
22144 + 0x36, /* 00110110 */
22145 + 0x36, /* 00110110 */
22146 + 0x36, /* 00110110 */
22147 + 0xfe, /* 11111110 */
22148 + 0x00, /* 00000000 */
22149 + 0x00, /* 00000000 */
22150 + 0x00, /* 00000000 */
22151 + 0x00, /* 00000000 */
22152 + 0x00, /* 00000000 */
22153 + 0x00, /* 00000000 */
22154 + 0x00, /* 00000000 */
22155 + 0x00, /* 00000000 */
22157 + /* 190 0xbe '¾' */
22158 + 0x18, /* 00011000 */
22159 + 0x18, /* 00011000 */
22160 + 0x18, /* 00011000 */
22161 + 0x18, /* 00011000 */
22162 + 0x18, /* 00011000 */
22163 + 0xf8, /* 11111000 */
22164 + 0x18, /* 00011000 */
22165 + 0xf8, /* 11111000 */
22166 + 0x00, /* 00000000 */
22167 + 0x00, /* 00000000 */
22168 + 0x00, /* 00000000 */
22169 + 0x00, /* 00000000 */
22170 + 0x00, /* 00000000 */
22171 + 0x00, /* 00000000 */
22172 + 0x00, /* 00000000 */
22173 + 0x00, /* 00000000 */
22175 + /* 191 0xbf '¿' */
22176 + 0x00, /* 00000000 */
22177 + 0x00, /* 00000000 */
22178 + 0x00, /* 00000000 */
22179 + 0x00, /* 00000000 */
22180 + 0x00, /* 00000000 */
22181 + 0x00, /* 00000000 */
22182 + 0x00, /* 00000000 */
22183 + 0xf8, /* 11111000 */
22184 + 0x18, /* 00011000 */
22185 + 0x18, /* 00011000 */
22186 + 0x18, /* 00011000 */
22187 + 0x18, /* 00011000 */
22188 + 0x18, /* 00011000 */
22189 + 0x18, /* 00011000 */
22190 + 0x18, /* 00011000 */
22191 + 0x18, /* 00011000 */
22193 + /* 192 0xc0 'À' */
22194 + 0x18, /* 00011000 */
22195 + 0x18, /* 00011000 */
22196 + 0x18, /* 00011000 */
22197 + 0x18, /* 00011000 */
22198 + 0x18, /* 00011000 */
22199 + 0x18, /* 00011000 */
22200 + 0x18, /* 00011000 */
22201 + 0x1f, /* 00011111 */
22202 + 0x00, /* 00000000 */
22203 + 0x00, /* 00000000 */
22204 + 0x00, /* 00000000 */
22205 + 0x00, /* 00000000 */
22206 + 0x00, /* 00000000 */
22207 + 0x00, /* 00000000 */
22208 + 0x00, /* 00000000 */
22209 + 0x00, /* 00000000 */
22211 + /* 193 0xc1 'Á' */
22212 + 0x18, /* 00011000 */
22213 + 0x18, /* 00011000 */
22214 + 0x18, /* 00011000 */
22215 + 0x18, /* 00011000 */
22216 + 0x18, /* 00011000 */
22217 + 0x18, /* 00011000 */
22218 + 0x18, /* 00011000 */
22219 + 0xff, /* 11111111 */
22220 + 0x00, /* 00000000 */
22221 + 0x00, /* 00000000 */
22222 + 0x00, /* 00000000 */
22223 + 0x00, /* 00000000 */
22224 + 0x00, /* 00000000 */
22225 + 0x00, /* 00000000 */
22226 + 0x00, /* 00000000 */
22227 + 0x00, /* 00000000 */
22229 + /* 194 0xc2 'Â' */
22230 + 0x00, /* 00000000 */
22231 + 0x00, /* 00000000 */
22232 + 0x00, /* 00000000 */
22233 + 0x00, /* 00000000 */
22234 + 0x00, /* 00000000 */
22235 + 0x00, /* 00000000 */
22236 + 0x00, /* 00000000 */
22237 + 0xff, /* 11111111 */
22238 + 0x18, /* 00011000 */
22239 + 0x18, /* 00011000 */
22240 + 0x18, /* 00011000 */
22241 + 0x18, /* 00011000 */
22242 + 0x18, /* 00011000 */
22243 + 0x18, /* 00011000 */
22244 + 0x18, /* 00011000 */
22245 + 0x18, /* 00011000 */
22247 + /* 195 0xc3 'Ã' */
22248 + 0x18, /* 00011000 */
22249 + 0x18, /* 00011000 */
22250 + 0x18, /* 00011000 */
22251 + 0x18, /* 00011000 */
22252 + 0x18, /* 00011000 */
22253 + 0x18, /* 00011000 */
22254 + 0x18, /* 00011000 */
22255 + 0x1f, /* 00011111 */
22256 + 0x18, /* 00011000 */
22257 + 0x18, /* 00011000 */
22258 + 0x18, /* 00011000 */
22259 + 0x18, /* 00011000 */
22260 + 0x18, /* 00011000 */
22261 + 0x18, /* 00011000 */
22262 + 0x18, /* 00011000 */
22263 + 0x18, /* 00011000 */
22265 + /* 196 0xc4 'Ä' */
22266 + 0x00, /* 00000000 */
22267 + 0x00, /* 00000000 */
22268 + 0x00, /* 00000000 */
22269 + 0x00, /* 00000000 */
22270 + 0x00, /* 00000000 */
22271 + 0x00, /* 00000000 */
22272 + 0x00, /* 00000000 */
22273 + 0xff, /* 11111111 */
22274 + 0x00, /* 00000000 */
22275 + 0x00, /* 00000000 */
22276 + 0x00, /* 00000000 */
22277 + 0x00, /* 00000000 */
22278 + 0x00, /* 00000000 */
22279 + 0x00, /* 00000000 */
22280 + 0x00, /* 00000000 */
22281 + 0x00, /* 00000000 */
22283 + /* 197 0xc5 'Å' */
22284 + 0x18, /* 00011000 */
22285 + 0x18, /* 00011000 */
22286 + 0x18, /* 00011000 */
22287 + 0x18, /* 00011000 */
22288 + 0x18, /* 00011000 */
22289 + 0x18, /* 00011000 */
22290 + 0x18, /* 00011000 */
22291 + 0xff, /* 11111111 */
22292 + 0x18, /* 00011000 */
22293 + 0x18, /* 00011000 */
22294 + 0x18, /* 00011000 */
22295 + 0x18, /* 00011000 */
22296 + 0x18, /* 00011000 */
22297 + 0x18, /* 00011000 */
22298 + 0x18, /* 00011000 */
22299 + 0x18, /* 00011000 */
22301 + /* 198 0xc6 'Æ' */
22302 + 0x18, /* 00011000 */
22303 + 0x18, /* 00011000 */
22304 + 0x18, /* 00011000 */
22305 + 0x18, /* 00011000 */
22306 + 0x18, /* 00011000 */
22307 + 0x1f, /* 00011111 */
22308 + 0x18, /* 00011000 */
22309 + 0x1f, /* 00011111 */
22310 + 0x18, /* 00011000 */
22311 + 0x18, /* 00011000 */
22312 + 0x18, /* 00011000 */
22313 + 0x18, /* 00011000 */
22314 + 0x18, /* 00011000 */
22315 + 0x18, /* 00011000 */
22316 + 0x18, /* 00011000 */
22317 + 0x18, /* 00011000 */
22319 + /* 199 0xc7 'Ç' */
22320 + 0x36, /* 00110110 */
22321 + 0x36, /* 00110110 */
22322 + 0x36, /* 00110110 */
22323 + 0x36, /* 00110110 */
22324 + 0x36, /* 00110110 */
22325 + 0x36, /* 00110110 */
22326 + 0x36, /* 00110110 */
22327 + 0x37, /* 00110111 */
22328 + 0x36, /* 00110110 */
22329 + 0x36, /* 00110110 */
22330 + 0x36, /* 00110110 */
22331 + 0x36, /* 00110110 */
22332 + 0x36, /* 00110110 */
22333 + 0x36, /* 00110110 */
22334 + 0x36, /* 00110110 */
22335 + 0x36, /* 00110110 */
22337 + /* 200 0xc8 'È' */
22338 + 0x36, /* 00110110 */
22339 + 0x36, /* 00110110 */
22340 + 0x36, /* 00110110 */
22341 + 0x36, /* 00110110 */
22342 + 0x36, /* 00110110 */
22343 + 0x37, /* 00110111 */
22344 + 0x30, /* 00110000 */
22345 + 0x3f, /* 00111111 */
22346 + 0x00, /* 00000000 */
22347 + 0x00, /* 00000000 */
22348 + 0x00, /* 00000000 */
22349 + 0x00, /* 00000000 */
22350 + 0x00, /* 00000000 */
22351 + 0x00, /* 00000000 */
22352 + 0x00, /* 00000000 */
22353 + 0x00, /* 00000000 */
22355 + /* 201 0xc9 'É' */
22356 + 0x00, /* 00000000 */
22357 + 0x00, /* 00000000 */
22358 + 0x00, /* 00000000 */
22359 + 0x00, /* 00000000 */
22360 + 0x00, /* 00000000 */
22361 + 0x3f, /* 00111111 */
22362 + 0x30, /* 00110000 */
22363 + 0x37, /* 00110111 */
22364 + 0x36, /* 00110110 */
22365 + 0x36, /* 00110110 */
22366 + 0x36, /* 00110110 */
22367 + 0x36, /* 00110110 */
22368 + 0x36, /* 00110110 */
22369 + 0x36, /* 00110110 */
22370 + 0x36, /* 00110110 */
22371 + 0x36, /* 00110110 */
22373 + /* 202 0xca 'Ê' */
22374 + 0x36, /* 00110110 */
22375 + 0x36, /* 00110110 */
22376 + 0x36, /* 00110110 */
22377 + 0x36, /* 00110110 */
22378 + 0x36, /* 00110110 */
22379 + 0xf7, /* 11110111 */
22380 + 0x00, /* 00000000 */
22381 + 0xff, /* 11111111 */
22382 + 0x00, /* 00000000 */
22383 + 0x00, /* 00000000 */
22384 + 0x00, /* 00000000 */
22385 + 0x00, /* 00000000 */
22386 + 0x00, /* 00000000 */
22387 + 0x00, /* 00000000 */
22388 + 0x00, /* 00000000 */
22389 + 0x00, /* 00000000 */
22391 + /* 203 0xcb 'Ë' */
22392 + 0x00, /* 00000000 */
22393 + 0x00, /* 00000000 */
22394 + 0x00, /* 00000000 */
22395 + 0x00, /* 00000000 */
22396 + 0x00, /* 00000000 */
22397 + 0xff, /* 11111111 */
22398 + 0x00, /* 00000000 */
22399 + 0xf7, /* 11110111 */
22400 + 0x36, /* 00110110 */
22401 + 0x36, /* 00110110 */
22402 + 0x36, /* 00110110 */
22403 + 0x36, /* 00110110 */
22404 + 0x36, /* 00110110 */
22405 + 0x36, /* 00110110 */
22406 + 0x36, /* 00110110 */
22407 + 0x36, /* 00110110 */
22409 + /* 204 0xcc 'Ì' */
22410 + 0x36, /* 00110110 */
22411 + 0x36, /* 00110110 */
22412 + 0x36, /* 00110110 */
22413 + 0x36, /* 00110110 */
22414 + 0x36, /* 00110110 */
22415 + 0x37, /* 00110111 */
22416 + 0x30, /* 00110000 */
22417 + 0x37, /* 00110111 */
22418 + 0x36, /* 00110110 */
22419 + 0x36, /* 00110110 */
22420 + 0x36, /* 00110110 */
22421 + 0x36, /* 00110110 */
22422 + 0x36, /* 00110110 */
22423 + 0x36, /* 00110110 */
22424 + 0x36, /* 00110110 */
22425 + 0x36, /* 00110110 */
22427 + /* 205 0xcd 'Í' */
22428 + 0x00, /* 00000000 */
22429 + 0x00, /* 00000000 */
22430 + 0x00, /* 00000000 */
22431 + 0x00, /* 00000000 */
22432 + 0x00, /* 00000000 */
22433 + 0xff, /* 11111111 */
22434 + 0x00, /* 00000000 */
22435 + 0xff, /* 11111111 */
22436 + 0x00, /* 00000000 */
22437 + 0x00, /* 00000000 */
22438 + 0x00, /* 00000000 */
22439 + 0x00, /* 00000000 */
22440 + 0x00, /* 00000000 */
22441 + 0x00, /* 00000000 */
22442 + 0x00, /* 00000000 */
22443 + 0x00, /* 00000000 */
22445 + /* 206 0xce 'Î' */
22446 + 0x36, /* 00110110 */
22447 + 0x36, /* 00110110 */
22448 + 0x36, /* 00110110 */
22449 + 0x36, /* 00110110 */
22450 + 0x36, /* 00110110 */
22451 + 0xf7, /* 11110111 */
22452 + 0x00, /* 00000000 */
22453 + 0xf7, /* 11110111 */
22454 + 0x36, /* 00110110 */
22455 + 0x36, /* 00110110 */
22456 + 0x36, /* 00110110 */
22457 + 0x36, /* 00110110 */
22458 + 0x36, /* 00110110 */
22459 + 0x36, /* 00110110 */
22460 + 0x36, /* 00110110 */
22461 + 0x36, /* 00110110 */
22463 + /* 207 0xcf 'Ï' */
22464 + 0x18, /* 00011000 */
22465 + 0x18, /* 00011000 */
22466 + 0x18, /* 00011000 */
22467 + 0x18, /* 00011000 */
22468 + 0x18, /* 00011000 */
22469 + 0xff, /* 11111111 */
22470 + 0x00, /* 00000000 */
22471 + 0xff, /* 11111111 */
22472 + 0x00, /* 00000000 */
22473 + 0x00, /* 00000000 */
22474 + 0x00, /* 00000000 */
22475 + 0x00, /* 00000000 */
22476 + 0x00, /* 00000000 */
22477 + 0x00, /* 00000000 */
22478 + 0x00, /* 00000000 */
22479 + 0x00, /* 00000000 */
22481 + /* 208 0xd0 'Ð' */
22482 + 0x36, /* 00110110 */
22483 + 0x36, /* 00110110 */
22484 + 0x36, /* 00110110 */
22485 + 0x36, /* 00110110 */
22486 + 0x36, /* 00110110 */
22487 + 0x36, /* 00110110 */
22488 + 0x36, /* 00110110 */
22489 + 0xff, /* 11111111 */
22490 + 0x00, /* 00000000 */
22491 + 0x00, /* 00000000 */
22492 + 0x00, /* 00000000 */
22493 + 0x00, /* 00000000 */
22494 + 0x00, /* 00000000 */
22495 + 0x00, /* 00000000 */
22496 + 0x00, /* 00000000 */
22497 + 0x00, /* 00000000 */
22499 + /* 209 0xd1 'Ñ' */
22500 + 0x00, /* 00000000 */
22501 + 0x00, /* 00000000 */
22502 + 0x00, /* 00000000 */
22503 + 0x00, /* 00000000 */
22504 + 0x00, /* 00000000 */
22505 + 0xff, /* 11111111 */
22506 + 0x00, /* 00000000 */
22507 + 0xff, /* 11111111 */
22508 + 0x18, /* 00011000 */
22509 + 0x18, /* 00011000 */
22510 + 0x18, /* 00011000 */
22511 + 0x18, /* 00011000 */
22512 + 0x18, /* 00011000 */
22513 + 0x18, /* 00011000 */
22514 + 0x18, /* 00011000 */
22515 + 0x18, /* 00011000 */
22517 + /* 210 0xd2 'Ò' */
22518 + 0x00, /* 00000000 */
22519 + 0x00, /* 00000000 */
22520 + 0x00, /* 00000000 */
22521 + 0x00, /* 00000000 */
22522 + 0x00, /* 00000000 */
22523 + 0x00, /* 00000000 */
22524 + 0x00, /* 00000000 */
22525 + 0xff, /* 11111111 */
22526 + 0x36, /* 00110110 */
22527 + 0x36, /* 00110110 */
22528 + 0x36, /* 00110110 */
22529 + 0x36, /* 00110110 */
22530 + 0x36, /* 00110110 */
22531 + 0x36, /* 00110110 */
22532 + 0x36, /* 00110110 */
22533 + 0x36, /* 00110110 */
22535 + /* 211 0xd3 'Ó' */
22536 + 0x36, /* 00110110 */
22537 + 0x36, /* 00110110 */
22538 + 0x36, /* 00110110 */
22539 + 0x36, /* 00110110 */
22540 + 0x36, /* 00110110 */
22541 + 0x36, /* 00110110 */
22542 + 0x36, /* 00110110 */
22543 + 0x3f, /* 00111111 */
22544 + 0x00, /* 00000000 */
22545 + 0x00, /* 00000000 */
22546 + 0x00, /* 00000000 */
22547 + 0x00, /* 00000000 */
22548 + 0x00, /* 00000000 */
22549 + 0x00, /* 00000000 */
22550 + 0x00, /* 00000000 */
22551 + 0x00, /* 00000000 */
22553 + /* 212 0xd4 'Ô' */
22554 + 0x18, /* 00011000 */
22555 + 0x18, /* 00011000 */
22556 + 0x18, /* 00011000 */
22557 + 0x18, /* 00011000 */
22558 + 0x18, /* 00011000 */
22559 + 0x1f, /* 00011111 */
22560 + 0x18, /* 00011000 */
22561 + 0x1f, /* 00011111 */
22562 + 0x00, /* 00000000 */
22563 + 0x00, /* 00000000 */
22564 + 0x00, /* 00000000 */
22565 + 0x00, /* 00000000 */
22566 + 0x00, /* 00000000 */
22567 + 0x00, /* 00000000 */
22568 + 0x00, /* 00000000 */
22569 + 0x00, /* 00000000 */
22571 + /* 213 0xd5 'Õ' */
22572 + 0x00, /* 00000000 */
22573 + 0x00, /* 00000000 */
22574 + 0x00, /* 00000000 */
22575 + 0x00, /* 00000000 */
22576 + 0x00, /* 00000000 */
22577 + 0x1f, /* 00011111 */
22578 + 0x18, /* 00011000 */
22579 + 0x1f, /* 00011111 */
22580 + 0x18, /* 00011000 */
22581 + 0x18, /* 00011000 */
22582 + 0x18, /* 00011000 */
22583 + 0x18, /* 00011000 */
22584 + 0x18, /* 00011000 */
22585 + 0x18, /* 00011000 */
22586 + 0x18, /* 00011000 */
22587 + 0x18, /* 00011000 */
22589 + /* 214 0xd6 'Ö' */
22590 + 0x00, /* 00000000 */
22591 + 0x00, /* 00000000 */
22592 + 0x00, /* 00000000 */
22593 + 0x00, /* 00000000 */
22594 + 0x00, /* 00000000 */
22595 + 0x00, /* 00000000 */
22596 + 0x00, /* 00000000 */
22597 + 0x3f, /* 00111111 */
22598 + 0x36, /* 00110110 */
22599 + 0x36, /* 00110110 */
22600 + 0x36, /* 00110110 */
22601 + 0x36, /* 00110110 */
22602 + 0x36, /* 00110110 */
22603 + 0x36, /* 00110110 */
22604 + 0x36, /* 00110110 */
22605 + 0x36, /* 00110110 */
22607 + /* 215 0xd7 '×' */
22608 + 0x36, /* 00110110 */
22609 + 0x36, /* 00110110 */
22610 + 0x36, /* 00110110 */
22611 + 0x36, /* 00110110 */
22612 + 0x36, /* 00110110 */
22613 + 0x36, /* 00110110 */
22614 + 0x36, /* 00110110 */
22615 + 0xff, /* 11111111 */
22616 + 0x36, /* 00110110 */
22617 + 0x36, /* 00110110 */
22618 + 0x36, /* 00110110 */
22619 + 0x36, /* 00110110 */
22620 + 0x36, /* 00110110 */
22621 + 0x36, /* 00110110 */
22622 + 0x36, /* 00110110 */
22623 + 0x36, /* 00110110 */
22625 + /* 216 0xd8 'Ø' */
22626 + 0x18, /* 00011000 */
22627 + 0x18, /* 00011000 */
22628 + 0x18, /* 00011000 */
22629 + 0x18, /* 00011000 */
22630 + 0x18, /* 00011000 */
22631 + 0xff, /* 11111111 */
22632 + 0x18, /* 00011000 */
22633 + 0xff, /* 11111111 */
22634 + 0x18, /* 00011000 */
22635 + 0x18, /* 00011000 */
22636 + 0x18, /* 00011000 */
22637 + 0x18, /* 00011000 */
22638 + 0x18, /* 00011000 */
22639 + 0x18, /* 00011000 */
22640 + 0x18, /* 00011000 */
22641 + 0x18, /* 00011000 */
22643 + /* 217 0xd9 'Ù' */
22644 + 0x18, /* 00011000 */
22645 + 0x18, /* 00011000 */
22646 + 0x18, /* 00011000 */
22647 + 0x18, /* 00011000 */
22648 + 0x18, /* 00011000 */
22649 + 0x18, /* 00011000 */
22650 + 0x18, /* 00011000 */
22651 + 0xf8, /* 11111000 */
22652 + 0x00, /* 00000000 */
22653 + 0x00, /* 00000000 */
22654 + 0x00, /* 00000000 */
22655 + 0x00, /* 00000000 */
22656 + 0x00, /* 00000000 */
22657 + 0x00, /* 00000000 */
22658 + 0x00, /* 00000000 */
22659 + 0x00, /* 00000000 */
22661 + /* 218 0xda 'Ú' */
22662 + 0x00, /* 00000000 */
22663 + 0x00, /* 00000000 */
22664 + 0x00, /* 00000000 */
22665 + 0x00, /* 00000000 */
22666 + 0x00, /* 00000000 */
22667 + 0x00, /* 00000000 */
22668 + 0x00, /* 00000000 */
22669 + 0x1f, /* 00011111 */
22670 + 0x18, /* 00011000 */
22671 + 0x18, /* 00011000 */
22672 + 0x18, /* 00011000 */
22673 + 0x18, /* 00011000 */
22674 + 0x18, /* 00011000 */
22675 + 0x18, /* 00011000 */
22676 + 0x18, /* 00011000 */
22677 + 0x18, /* 00011000 */
22679 + /* 219 0xdb 'Û' */
22680 + 0xff, /* 11111111 */
22681 + 0xff, /* 11111111 */
22682 + 0xff, /* 11111111 */
22683 + 0xff, /* 11111111 */
22684 + 0xff, /* 11111111 */
22685 + 0xff, /* 11111111 */
22686 + 0xff, /* 11111111 */
22687 + 0xff, /* 11111111 */
22688 + 0xff, /* 11111111 */
22689 + 0xff, /* 11111111 */
22690 + 0xff, /* 11111111 */
22691 + 0xff, /* 11111111 */
22692 + 0xff, /* 11111111 */
22693 + 0xff, /* 11111111 */
22694 + 0xff, /* 11111111 */
22695 + 0xff, /* 11111111 */
22697 + /* 220 0xdc 'Ü' */
22698 + 0x00, /* 00000000 */
22699 + 0x00, /* 00000000 */
22700 + 0x00, /* 00000000 */
22701 + 0x00, /* 00000000 */
22702 + 0x00, /* 00000000 */
22703 + 0x00, /* 00000000 */
22704 + 0x00, /* 00000000 */
22705 + 0xff, /* 11111111 */
22706 + 0xff, /* 11111111 */
22707 + 0xff, /* 11111111 */
22708 + 0xff, /* 11111111 */
22709 + 0xff, /* 11111111 */
22710 + 0xff, /* 11111111 */
22711 + 0xff, /* 11111111 */
22712 + 0xff, /* 11111111 */
22713 + 0xff, /* 11111111 */
22715 + /* 221 0xdd 'Ý' */
22716 + 0xf0, /* 11110000 */
22717 + 0xf0, /* 11110000 */
22718 + 0xf0, /* 11110000 */
22719 + 0xf0, /* 11110000 */
22720 + 0xf0, /* 11110000 */
22721 + 0xf0, /* 11110000 */
22722 + 0xf0, /* 11110000 */
22723 + 0xf0, /* 11110000 */
22724 + 0xf0, /* 11110000 */
22725 + 0xf0, /* 11110000 */
22726 + 0xf0, /* 11110000 */
22727 + 0xf0, /* 11110000 */
22728 + 0xf0, /* 11110000 */
22729 + 0xf0, /* 11110000 */
22730 + 0xf0, /* 11110000 */
22731 + 0xf0, /* 11110000 */
22733 + /* 222 0xde 'Þ' */
22734 + 0x0f, /* 00001111 */
22735 + 0x0f, /* 00001111 */
22736 + 0x0f, /* 00001111 */
22737 + 0x0f, /* 00001111 */
22738 + 0x0f, /* 00001111 */
22739 + 0x0f, /* 00001111 */
22740 + 0x0f, /* 00001111 */
22741 + 0x0f, /* 00001111 */
22742 + 0x0f, /* 00001111 */
22743 + 0x0f, /* 00001111 */
22744 + 0x0f, /* 00001111 */
22745 + 0x0f, /* 00001111 */
22746 + 0x0f, /* 00001111 */
22747 + 0x0f, /* 00001111 */
22748 + 0x0f, /* 00001111 */
22749 + 0x0f, /* 00001111 */
22751 + /* 223 0xdf 'ß' */
22752 + 0xff, /* 11111111 */
22753 + 0xff, /* 11111111 */
22754 + 0xff, /* 11111111 */
22755 + 0xff, /* 11111111 */
22756 + 0xff, /* 11111111 */
22757 + 0xff, /* 11111111 */
22758 + 0xff, /* 11111111 */
22759 + 0x00, /* 00000000 */
22760 + 0x00, /* 00000000 */
22761 + 0x00, /* 00000000 */
22762 + 0x00, /* 00000000 */
22763 + 0x00, /* 00000000 */
22764 + 0x00, /* 00000000 */
22765 + 0x00, /* 00000000 */
22766 + 0x00, /* 00000000 */
22767 + 0x00, /* 00000000 */
22769 + /* 224 0xe0 'à' */
22770 + 0x00, /* 00000000 */
22771 + 0x00, /* 00000000 */
22772 + 0x00, /* 00000000 */
22773 + 0x00, /* 00000000 */
22774 + 0x00, /* 00000000 */
22775 + 0x76, /* 01110110 */
22776 + 0xdc, /* 11011100 */
22777 + 0xd8, /* 11011000 */
22778 + 0xd8, /* 11011000 */
22779 + 0xd8, /* 11011000 */
22780 + 0xdc, /* 11011100 */
22781 + 0x76, /* 01110110 */
22782 + 0x00, /* 00000000 */
22783 + 0x00, /* 00000000 */
22784 + 0x00, /* 00000000 */
22785 + 0x00, /* 00000000 */
22787 + /* 225 0xe1 'á' */
22788 + 0x00, /* 00000000 */
22789 + 0x00, /* 00000000 */
22790 + 0x78, /* 01111000 */
22791 + 0xcc, /* 11001100 */
22792 + 0xcc, /* 11001100 */
22793 + 0xcc, /* 11001100 */
22794 + 0xd8, /* 11011000 */
22795 + 0xcc, /* 11001100 */
22796 + 0xc6, /* 11000110 */
22797 + 0xc6, /* 11000110 */
22798 + 0xc6, /* 11000110 */
22799 + 0xcc, /* 11001100 */
22800 + 0x00, /* 00000000 */
22801 + 0x00, /* 00000000 */
22802 + 0x00, /* 00000000 */
22803 + 0x00, /* 00000000 */
22805 + /* 226 0xe2 'â' */
22806 + 0x00, /* 00000000 */
22807 + 0x00, /* 00000000 */
22808 + 0xfe, /* 11111110 */
22809 + 0xc6, /* 11000110 */
22810 + 0xc6, /* 11000110 */
22811 + 0xc0, /* 11000000 */
22812 + 0xc0, /* 11000000 */
22813 + 0xc0, /* 11000000 */
22814 + 0xc0, /* 11000000 */
22815 + 0xc0, /* 11000000 */
22816 + 0xc0, /* 11000000 */
22817 + 0xc0, /* 11000000 */
22818 + 0x00, /* 00000000 */
22819 + 0x00, /* 00000000 */
22820 + 0x00, /* 00000000 */
22821 + 0x00, /* 00000000 */
22823 + /* 227 0xe3 'ã' */
22824 + 0x00, /* 00000000 */
22825 + 0x00, /* 00000000 */
22826 + 0x00, /* 00000000 */
22827 + 0x00, /* 00000000 */
22828 + 0x00, /* 00000000 */
22829 + 0xfe, /* 11111110 */
22830 + 0x6c, /* 01101100 */
22831 + 0x6c, /* 01101100 */
22832 + 0x6c, /* 01101100 */
22833 + 0x6c, /* 01101100 */
22834 + 0x6c, /* 01101100 */
22835 + 0x6c, /* 01101100 */
22836 + 0x00, /* 00000000 */
22837 + 0x00, /* 00000000 */
22838 + 0x00, /* 00000000 */
22839 + 0x00, /* 00000000 */
22841 + /* 228 0xe4 'ä' */
22842 + 0x00, /* 00000000 */
22843 + 0x00, /* 00000000 */
22844 + 0xfe, /* 11111110 */
22845 + 0xc6, /* 11000110 */
22846 + 0x60, /* 01100000 */
22847 + 0x30, /* 00110000 */
22848 + 0x18, /* 00011000 */
22849 + 0x18, /* 00011000 */
22850 + 0x30, /* 00110000 */
22851 + 0x60, /* 01100000 */
22852 + 0xc6, /* 11000110 */
22853 + 0xfe, /* 11111110 */
22854 + 0x00, /* 00000000 */
22855 + 0x00, /* 00000000 */
22856 + 0x00, /* 00000000 */
22857 + 0x00, /* 00000000 */
22859 + /* 229 0xe5 'å' */
22860 + 0x00, /* 00000000 */
22861 + 0x00, /* 00000000 */
22862 + 0x00, /* 00000000 */
22863 + 0x00, /* 00000000 */
22864 + 0x00, /* 00000000 */
22865 + 0x7e, /* 01111110 */
22866 + 0xd8, /* 11011000 */
22867 + 0xd8, /* 11011000 */
22868 + 0xd8, /* 11011000 */
22869 + 0xd8, /* 11011000 */
22870 + 0xd8, /* 11011000 */
22871 + 0x70, /* 01110000 */
22872 + 0x00, /* 00000000 */
22873 + 0x00, /* 00000000 */
22874 + 0x00, /* 00000000 */
22875 + 0x00, /* 00000000 */
22877 + /* 230 0xe6 'æ' */
22878 + 0x00, /* 00000000 */
22879 + 0x00, /* 00000000 */
22880 + 0x00, /* 00000000 */
22881 + 0x00, /* 00000000 */
22882 + 0x00, /* 00000000 */
22883 + 0x66, /* 01100110 */
22884 + 0x66, /* 01100110 */
22885 + 0x66, /* 01100110 */
22886 + 0x66, /* 01100110 */
22887 + 0x66, /* 01100110 */
22888 + 0x66, /* 01100110 */
22889 + 0x7c, /* 01111100 */
22890 + 0x60, /* 01100000 */
22891 + 0x60, /* 01100000 */
22892 + 0xc0, /* 11000000 */
22893 + 0x00, /* 00000000 */
22895 + /* 231 0xe7 'ç' */
22896 + 0x00, /* 00000000 */
22897 + 0x00, /* 00000000 */
22898 + 0x00, /* 00000000 */
22899 + 0x00, /* 00000000 */
22900 + 0x76, /* 01110110 */
22901 + 0xdc, /* 11011100 */
22902 + 0x18, /* 00011000 */
22903 + 0x18, /* 00011000 */
22904 + 0x18, /* 00011000 */
22905 + 0x18, /* 00011000 */
22906 + 0x18, /* 00011000 */
22907 + 0x18, /* 00011000 */
22908 + 0x00, /* 00000000 */
22909 + 0x00, /* 00000000 */
22910 + 0x00, /* 00000000 */
22911 + 0x00, /* 00000000 */
22913 + /* 232 0xe8 'è' */
22914 + 0x00, /* 00000000 */
22915 + 0x00, /* 00000000 */
22916 + 0x7e, /* 01111110 */
22917 + 0x18, /* 00011000 */
22918 + 0x3c, /* 00111100 */
22919 + 0x66, /* 01100110 */
22920 + 0x66, /* 01100110 */
22921 + 0x66, /* 01100110 */
22922 + 0x66, /* 01100110 */
22923 + 0x3c, /* 00111100 */
22924 + 0x18, /* 00011000 */
22925 + 0x7e, /* 01111110 */
22926 + 0x00, /* 00000000 */
22927 + 0x00, /* 00000000 */
22928 + 0x00, /* 00000000 */
22929 + 0x00, /* 00000000 */
22931 + /* 233 0xe9 'é' */
22932 + 0x00, /* 00000000 */
22933 + 0x00, /* 00000000 */
22934 + 0x38, /* 00111000 */
22935 + 0x6c, /* 01101100 */
22936 + 0xc6, /* 11000110 */
22937 + 0xc6, /* 11000110 */
22938 + 0xfe, /* 11111110 */
22939 + 0xc6, /* 11000110 */
22940 + 0xc6, /* 11000110 */
22941 + 0xc6, /* 11000110 */
22942 + 0x6c, /* 01101100 */
22943 + 0x38, /* 00111000 */
22944 + 0x00, /* 00000000 */
22945 + 0x00, /* 00000000 */
22946 + 0x00, /* 00000000 */
22947 + 0x00, /* 00000000 */
22949 + /* 234 0xea 'ê' */
22950 + 0x00, /* 00000000 */
22951 + 0x00, /* 00000000 */
22952 + 0x38, /* 00111000 */
22953 + 0x6c, /* 01101100 */
22954 + 0xc6, /* 11000110 */
22955 + 0xc6, /* 11000110 */
22956 + 0xc6, /* 11000110 */
22957 + 0x6c, /* 01101100 */
22958 + 0x6c, /* 01101100 */
22959 + 0x6c, /* 01101100 */
22960 + 0x6c, /* 01101100 */
22961 + 0xee, /* 11101110 */
22962 + 0x00, /* 00000000 */
22963 + 0x00, /* 00000000 */
22964 + 0x00, /* 00000000 */
22965 + 0x00, /* 00000000 */
22967 + /* 235 0xeb 'ë' */
22968 + 0x00, /* 00000000 */
22969 + 0x00, /* 00000000 */
22970 + 0x1e, /* 00011110 */
22971 + 0x30, /* 00110000 */
22972 + 0x18, /* 00011000 */
22973 + 0x0c, /* 00001100 */
22974 + 0x3e, /* 00111110 */
22975 + 0x66, /* 01100110 */
22976 + 0x66, /* 01100110 */
22977 + 0x66, /* 01100110 */
22978 + 0x66, /* 01100110 */
22979 + 0x3c, /* 00111100 */
22980 + 0x00, /* 00000000 */
22981 + 0x00, /* 00000000 */
22982 + 0x00, /* 00000000 */
22983 + 0x00, /* 00000000 */
22985 + /* 236 0xec 'ì' */
22986 + 0x00, /* 00000000 */
22987 + 0x00, /* 00000000 */
22988 + 0x00, /* 00000000 */
22989 + 0x00, /* 00000000 */
22990 + 0x00, /* 00000000 */
22991 + 0x7e, /* 01111110 */
22992 + 0xdb, /* 11011011 */
22993 + 0xdb, /* 11011011 */
22994 + 0xdb, /* 11011011 */
22995 + 0x7e, /* 01111110 */
22996 + 0x00, /* 00000000 */
22997 + 0x00, /* 00000000 */
22998 + 0x00, /* 00000000 */
22999 + 0x00, /* 00000000 */
23000 + 0x00, /* 00000000 */
23001 + 0x00, /* 00000000 */
23003 + /* 237 0xed 'í' */
23004 + 0x00, /* 00000000 */
23005 + 0x00, /* 00000000 */
23006 + 0x00, /* 00000000 */
23007 + 0x03, /* 00000011 */
23008 + 0x06, /* 00000110 */
23009 + 0x7e, /* 01111110 */
23010 + 0xdb, /* 11011011 */
23011 + 0xdb, /* 11011011 */
23012 + 0xf3, /* 11110011 */
23013 + 0x7e, /* 01111110 */
23014 + 0x60, /* 01100000 */
23015 + 0xc0, /* 11000000 */
23016 + 0x00, /* 00000000 */
23017 + 0x00, /* 00000000 */
23018 + 0x00, /* 00000000 */
23019 + 0x00, /* 00000000 */
23021 + /* 238 0xee 'î' */
23022 + 0x00, /* 00000000 */
23023 + 0x00, /* 00000000 */
23024 + 0x1c, /* 00011100 */
23025 + 0x30, /* 00110000 */
23026 + 0x60, /* 01100000 */
23027 + 0x60, /* 01100000 */
23028 + 0x7c, /* 01111100 */
23029 + 0x60, /* 01100000 */
23030 + 0x60, /* 01100000 */
23031 + 0x60, /* 01100000 */
23032 + 0x30, /* 00110000 */
23033 + 0x1c, /* 00011100 */
23034 + 0x00, /* 00000000 */
23035 + 0x00, /* 00000000 */
23036 + 0x00, /* 00000000 */
23037 + 0x00, /* 00000000 */
23039 + /* 239 0xef 'ï' */
23040 + 0x00, /* 00000000 */
23041 + 0x00, /* 00000000 */
23042 + 0x00, /* 00000000 */
23043 + 0x7c, /* 01111100 */
23044 + 0xc6, /* 11000110 */
23045 + 0xc6, /* 11000110 */
23046 + 0xc6, /* 11000110 */
23047 + 0xc6, /* 11000110 */
23048 + 0xc6, /* 11000110 */
23049 + 0xc6, /* 11000110 */
23050 + 0xc6, /* 11000110 */
23051 + 0xc6, /* 11000110 */
23052 + 0x00, /* 00000000 */
23053 + 0x00, /* 00000000 */
23054 + 0x00, /* 00000000 */
23055 + 0x00, /* 00000000 */
23057 + /* 240 0xf0 'ð' */
23058 + 0x00, /* 00000000 */
23059 + 0x00, /* 00000000 */
23060 + 0x00, /* 00000000 */
23061 + 0x00, /* 00000000 */
23062 + 0xfe, /* 11111110 */
23063 + 0x00, /* 00000000 */
23064 + 0x00, /* 00000000 */
23065 + 0xfe, /* 11111110 */
23066 + 0x00, /* 00000000 */
23067 + 0x00, /* 00000000 */
23068 + 0xfe, /* 11111110 */
23069 + 0x00, /* 00000000 */
23070 + 0x00, /* 00000000 */
23071 + 0x00, /* 00000000 */
23072 + 0x00, /* 00000000 */
23073 + 0x00, /* 00000000 */
23075 + /* 241 0xf1 'ñ' */
23076 + 0x00, /* 00000000 */
23077 + 0x00, /* 00000000 */
23078 + 0x00, /* 00000000 */
23079 + 0x00, /* 00000000 */
23080 + 0x18, /* 00011000 */
23081 + 0x18, /* 00011000 */
23082 + 0x7e, /* 01111110 */
23083 + 0x18, /* 00011000 */
23084 + 0x18, /* 00011000 */
23085 + 0x00, /* 00000000 */
23086 + 0x00, /* 00000000 */
23087 + 0x7e, /* 01111110 */
23088 + 0x00, /* 00000000 */
23089 + 0x00, /* 00000000 */
23090 + 0x00, /* 00000000 */
23091 + 0x00, /* 00000000 */
23093 + /* 242 0xf2 'ò' */
23094 + 0x00, /* 00000000 */
23095 + 0x00, /* 00000000 */
23096 + 0x00, /* 00000000 */
23097 + 0x30, /* 00110000 */
23098 + 0x18, /* 00011000 */
23099 + 0x0c, /* 00001100 */
23100 + 0x06, /* 00000110 */
23101 + 0x0c, /* 00001100 */
23102 + 0x18, /* 00011000 */
23103 + 0x30, /* 00110000 */
23104 + 0x00, /* 00000000 */
23105 + 0x7e, /* 01111110 */
23106 + 0x00, /* 00000000 */
23107 + 0x00, /* 00000000 */
23108 + 0x00, /* 00000000 */
23109 + 0x00, /* 00000000 */
23111 + /* 243 0xf3 'ó' */
23112 + 0x00, /* 00000000 */
23113 + 0x00, /* 00000000 */
23114 + 0x00, /* 00000000 */
23115 + 0x0c, /* 00001100 */
23116 + 0x18, /* 00011000 */
23117 + 0x30, /* 00110000 */
23118 + 0x60, /* 01100000 */
23119 + 0x30, /* 00110000 */
23120 + 0x18, /* 00011000 */
23121 + 0x0c, /* 00001100 */
23122 + 0x00, /* 00000000 */
23123 + 0x7e, /* 01111110 */
23124 + 0x00, /* 00000000 */
23125 + 0x00, /* 00000000 */
23126 + 0x00, /* 00000000 */
23127 + 0x00, /* 00000000 */
23129 + /* 244 0xf4 'ô' */
23130 + 0x00, /* 00000000 */
23131 + 0x00, /* 00000000 */
23132 + 0x0e, /* 00001110 */
23133 + 0x1b, /* 00011011 */
23134 + 0x1b, /* 00011011 */
23135 + 0x18, /* 00011000 */
23136 + 0x18, /* 00011000 */
23137 + 0x18, /* 00011000 */
23138 + 0x18, /* 00011000 */
23139 + 0x18, /* 00011000 */
23140 + 0x18, /* 00011000 */
23141 + 0x18, /* 00011000 */
23142 + 0x18, /* 00011000 */
23143 + 0x18, /* 00011000 */
23144 + 0x18, /* 00011000 */
23145 + 0x18, /* 00011000 */
23147 + /* 245 0xf5 'õ' */
23148 + 0x18, /* 00011000 */
23149 + 0x18, /* 00011000 */
23150 + 0x18, /* 00011000 */
23151 + 0x18, /* 00011000 */
23152 + 0x18, /* 00011000 */
23153 + 0x18, /* 00011000 */
23154 + 0x18, /* 00011000 */
23155 + 0x18, /* 00011000 */
23156 + 0x18, /* 00011000 */
23157 + 0xd8, /* 11011000 */
23158 + 0xd8, /* 11011000 */
23159 + 0xd8, /* 11011000 */
23160 + 0x70, /* 01110000 */
23161 + 0x00, /* 00000000 */
23162 + 0x00, /* 00000000 */
23163 + 0x00, /* 00000000 */
23165 + /* 246 0xf6 'ö' */
23166 + 0x00, /* 00000000 */
23167 + 0x00, /* 00000000 */
23168 + 0x00, /* 00000000 */
23169 + 0x00, /* 00000000 */
23170 + 0x00, /* 00000000 */
23171 + 0x18, /* 00011000 */
23172 + 0x00, /* 00000000 */
23173 + 0x7e, /* 01111110 */
23174 + 0x00, /* 00000000 */
23175 + 0x18, /* 00011000 */
23176 + 0x00, /* 00000000 */
23177 + 0x00, /* 00000000 */
23178 + 0x00, /* 00000000 */
23179 + 0x00, /* 00000000 */
23180 + 0x00, /* 00000000 */
23181 + 0x00, /* 00000000 */
23183 + /* 247 0xf7 '÷' */
23184 + 0x00, /* 00000000 */
23185 + 0x00, /* 00000000 */
23186 + 0x00, /* 00000000 */
23187 + 0x00, /* 00000000 */
23188 + 0x00, /* 00000000 */
23189 + 0x76, /* 01110110 */
23190 + 0xdc, /* 11011100 */
23191 + 0x00, /* 00000000 */
23192 + 0x76, /* 01110110 */
23193 + 0xdc, /* 11011100 */
23194 + 0x00, /* 00000000 */
23195 + 0x00, /* 00000000 */
23196 + 0x00, /* 00000000 */
23197 + 0x00, /* 00000000 */
23198 + 0x00, /* 00000000 */
23199 + 0x00, /* 00000000 */
23201 + /* 248 0xf8 'ø' */
23202 + 0x00, /* 00000000 */
23203 + 0x38, /* 00111000 */
23204 + 0x6c, /* 01101100 */
23205 + 0x6c, /* 01101100 */
23206 + 0x38, /* 00111000 */
23207 + 0x00, /* 00000000 */
23208 + 0x00, /* 00000000 */
23209 + 0x00, /* 00000000 */
23210 + 0x00, /* 00000000 */
23211 + 0x00, /* 00000000 */
23212 + 0x00, /* 00000000 */
23213 + 0x00, /* 00000000 */
23214 + 0x00, /* 00000000 */
23215 + 0x00, /* 00000000 */
23216 + 0x00, /* 00000000 */
23217 + 0x00, /* 00000000 */
23219 + /* 249 0xf9 'ù' */
23220 + 0x00, /* 00000000 */
23221 + 0x00, /* 00000000 */
23222 + 0x00, /* 00000000 */
23223 + 0x00, /* 00000000 */
23224 + 0x00, /* 00000000 */
23225 + 0x00, /* 00000000 */
23226 + 0x00, /* 00000000 */
23227 + 0x18, /* 00011000 */
23228 + 0x18, /* 00011000 */
23229 + 0x00, /* 00000000 */
23230 + 0x00, /* 00000000 */
23231 + 0x00, /* 00000000 */
23232 + 0x00, /* 00000000 */
23233 + 0x00, /* 00000000 */
23234 + 0x00, /* 00000000 */
23235 + 0x00, /* 00000000 */
23237 + /* 250 0xfa 'ú' */
23238 + 0x00, /* 00000000 */
23239 + 0x00, /* 00000000 */
23240 + 0x00, /* 00000000 */
23241 + 0x00, /* 00000000 */
23242 + 0x00, /* 00000000 */
23243 + 0x00, /* 00000000 */
23244 + 0x00, /* 00000000 */
23245 + 0x18, /* 00011000 */
23246 + 0x00, /* 00000000 */
23247 + 0x00, /* 00000000 */
23248 + 0x00, /* 00000000 */
23249 + 0x00, /* 00000000 */
23250 + 0x00, /* 00000000 */
23251 + 0x00, /* 00000000 */
23252 + 0x00, /* 00000000 */
23253 + 0x00, /* 00000000 */
23255 + /* 251 0xfb 'û' */
23256 + 0x00, /* 00000000 */
23257 + 0x0f, /* 00001111 */
23258 + 0x0c, /* 00001100 */
23259 + 0x0c, /* 00001100 */
23260 + 0x0c, /* 00001100 */
23261 + 0x0c, /* 00001100 */
23262 + 0x0c, /* 00001100 */
23263 + 0xec, /* 11101100 */
23264 + 0x6c, /* 01101100 */
23265 + 0x6c, /* 01101100 */
23266 + 0x3c, /* 00111100 */
23267 + 0x1c, /* 00011100 */
23268 + 0x00, /* 00000000 */
23269 + 0x00, /* 00000000 */
23270 + 0x00, /* 00000000 */
23271 + 0x00, /* 00000000 */
23273 + /* 252 0xfc 'ü' */
23274 + 0x00, /* 00000000 */
23275 + 0x6c, /* 01101100 */
23276 + 0x36, /* 00110110 */
23277 + 0x36, /* 00110110 */
23278 + 0x36, /* 00110110 */
23279 + 0x36, /* 00110110 */
23280 + 0x36, /* 00110110 */
23281 + 0x00, /* 00000000 */
23282 + 0x00, /* 00000000 */
23283 + 0x00, /* 00000000 */
23284 + 0x00, /* 00000000 */
23285 + 0x00, /* 00000000 */
23286 + 0x00, /* 00000000 */
23287 + 0x00, /* 00000000 */
23288 + 0x00, /* 00000000 */
23289 + 0x00, /* 00000000 */
23291 + /* 253 0xfd 'ý' */
23292 + 0x00, /* 00000000 */
23293 + 0x3c, /* 00111100 */
23294 + 0x66, /* 01100110 */
23295 + 0x0c, /* 00001100 */
23296 + 0x18, /* 00011000 */
23297 + 0x32, /* 00110010 */
23298 + 0x7e, /* 01111110 */
23299 + 0x00, /* 00000000 */
23300 + 0x00, /* 00000000 */
23301 + 0x00, /* 00000000 */
23302 + 0x00, /* 00000000 */
23303 + 0x00, /* 00000000 */
23304 + 0x00, /* 00000000 */
23305 + 0x00, /* 00000000 */
23306 + 0x00, /* 00000000 */
23307 + 0x00, /* 00000000 */
23309 + /* 254 0xfe 'þ' */
23310 + 0x00, /* 00000000 */
23311 + 0x00, /* 00000000 */
23312 + 0x00, /* 00000000 */
23313 + 0x00, /* 00000000 */
23314 + 0x7e, /* 01111110 */
23315 + 0x7e, /* 01111110 */
23316 + 0x7e, /* 01111110 */
23317 + 0x7e, /* 01111110 */
23318 + 0x7e, /* 01111110 */
23319 + 0x7e, /* 01111110 */
23320 + 0x7e, /* 01111110 */
23321 + 0x00, /* 00000000 */
23322 + 0x00, /* 00000000 */
23323 + 0x00, /* 00000000 */
23324 + 0x00, /* 00000000 */
23325 + 0x00, /* 00000000 */
23327 + /* 255 0xff 'ÿ' */
23328 + 0x00, /* 00000000 */
23329 + 0x00, /* 00000000 */
23330 + 0x00, /* 00000000 */
23331 + 0x00, /* 00000000 */
23332 + 0x00, /* 00000000 */
23333 + 0x00, /* 00000000 */
23334 + 0x00, /* 00000000 */
23335 + 0x00, /* 00000000 */
23336 + 0x00, /* 00000000 */
23337 + 0x00, /* 00000000 */
23338 + 0x00, /* 00000000 */
23339 + 0x00, /* 00000000 */
23340 + 0x00, /* 00000000 */
23341 + 0x00, /* 00000000 */
23342 + 0x00, /* 00000000 */
23343 + 0x00, /* 00000000 */
23348 diff --git a/efi/graphics.c b/efi/graphics.c
23349 new file mode 100644
23350 index 0000000..eb98d8a
23352 +++ b/efi/graphics.c
23354 +#ifdef SUPPORT_GRAPHICS
23356 +#include <grub/misc.h>
23357 +#include <grub/types.h>
23358 +#include <grub/cpu/linux.h>
23359 +#include <grub/efi/api.h>
23360 +#include <grub/efi/efi.h>
23361 +#include <grub/efi/misc.h>
23364 +#include <shared.h>
23365 +#include <graphics.h>
23367 +#include "graphics.h"
23370 +#include "ugadebug.h"
23373 +int foreground = 0x00ffffff, background = 0;
23374 +int graphics_inited = 0;
23376 +/* Convert a character which is a hex digit to the appropriate integer */
23380 + if (v >= 'A' && v <= 'F')
23381 + return (v - 'A' + 10);
23382 + if (v >= 'a' && v <= 'f')
23383 + return (v - 'a' + 10);
23384 + return (v - '0');
23388 +grub_console_getwh (void)
23390 + grub_efi_simple_text_output_interface_t *o;
23391 + grub_efi_uintn_t columns, rows;
23393 + o = grub_efi_system_table->con_out;
23394 + if (Call_Service_4 (o->query_mode , o, o->mode->mode, &columns, &rows)
23395 + != GRUB_EFI_SUCCESS)
23397 + /* Why does this fail? */
23402 + return ((columns << 8) | rows);
23405 +extern struct graphics_backend uga_backend;
23406 +extern struct graphics_backend eg_backend;
23408 +static struct graphics_backend *backends[] = {
23413 +static struct graphics_backend *backend;
23420 + int standard_color;
23421 + int normal_color;
23422 + int highlight_color;
23423 + int current_color;
23424 + color_state color_state;
23426 + char splashpath[64];
23427 + struct xpm *splashimage;
23429 + unsigned short *text;
23432 +static grub_efi_guid_t device_path_guid = GRUB_EFI_DEVICE_PATH_GUID;
23433 +static grub_efi_guid_t pci_io_guid = GRUB_EFI_PCI_IO_GUID;
23434 +static grub_efi_guid_t pci_root_io_guid = GRUB_EFI_PCI_ROOT_IO_GUID;
23437 +grub_efi_configure_pci(grub_efi_handle_t handle)
23439 + grub_efi_device_path_t *path, *parent;
23440 + grub_efi_handle_t parent_handle;
23441 + grub_efi_pci_io_t *pci_proto;
23442 + grub_efi_pci_root_io_t *pci_root_proto;
23443 + grub_efi_status_t status;
23445 + path = grub_efi_get_device_path(handle);
23446 + parent = find_parent_device_path(path);
23451 + status = grub_efi_locate_device_path (&device_path_guid, &parent,
23453 + if (status != GRUB_EFI_SUCCESS)
23456 + pci_proto = grub_efi_open_protocol (parent_handle, &pci_io_guid,
23457 + GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
23459 + pci_root_proto = grub_efi_open_protocol (parent_handle, &pci_root_io_guid,
23460 + GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
23463 + if (pci_proto || pci_root_proto)
23467 + Call_Service_4 (pci_proto->attributes, pci_proto,
23468 + grub_efi_pci_io_attribute_operation_enable,
23469 + GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_MEMORY |
23470 + GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_IO |
23471 + GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_PALETTE_IO, NULL);
23473 + grub_efi_configure_pci (parent_handle);
23477 + grub_uint8_t value = 0x33;
23478 + grub_uint16_t vendor;
23480 + Call_Service_5 (pci_root_proto->pci.read, pci_root_proto,
23481 + grub_efi_pci_io_width_uint16, 0x00, 1, &vendor);
23483 + if (vendor == 0x8086) {
23484 + Call_Service_5 (pci_root_proto->pci.write, pci_root_proto,
23485 + grub_efi_pci_io_width_uint8, 0x91, 1, &value);
23486 + Call_Service_5 (pci_root_proto->pci.write, pci_root_proto,
23487 + grub_efi_pci_io_width_uint8, 0x92, 1, &value);
23491 + grub_free(parent);
23495 +grub_efi_setup_gfx_pci(grub_efi_handle_t handle)
23497 + grub_efi_uint64_t romsize;
23498 + grub_efi_uint16_t *header;
23500 + grub_efi_pci_io_t *pci_proto;
23502 + pci_proto = grub_efi_open_protocol (handle, &pci_io_guid,
23503 + GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
23508 + romsize = pci_proto->rom_size;
23510 + if (!romsize || romsize > 65536 || !pci_proto->rom_image)
23513 + /* Copy the ROM */
23514 + vrom = grub_efi_allocate_runtime_pages(0xc0000, 16);
23521 + if (*header == 0xaa55)
23524 + grub_efi_configure_pci(handle);
23526 + grub_memcpy(vrom, pci_proto->rom_image, romsize);
23530 +graphics_set_kernel_params(struct linux_kernel_params *params)
23532 + params->video_cursor_x = grub_efi_system_table->con_out->mode->cursor_column;
23533 + params->video_cursor_y = grub_efi_system_table->con_out->mode->cursor_row;
23534 + params->video_page = 0; /* ??? */
23535 + params->video_mode = grub_efi_system_table->con_out->mode->mode;
23536 + params->video_width = (grub_console_getwh () >> 8);
23537 + params->video_ega_bx = 0;
23538 + params->video_height = (grub_console_getwh () & 0xff);
23539 + params->have_vga = 0;
23540 + params->font_size = 16; /* XXX */
23543 + params->lfb_width = 0;
23544 + params->lfb_height = 0;
23545 + params->lfb_depth = 0;
23546 + params->lfb_base = 0;
23547 + params->lfb_size = 0;
23548 + params->lfb_line_len = 0;
23549 + params->red_mask_size = 0;
23550 + params->red_field_pos = 0;
23551 + params->green_mask_size = 0;
23552 + params->green_field_pos = 0;
23553 + params->blue_mask_size = 0;
23554 + params->blue_field_pos = 0;
23555 + params->reserved_mask_size = 0;
23556 + params->reserved_field_pos = 0;
23557 + params->vesapm_segment = 0;
23558 + params->vesapm_offset = 0;
23559 + params->lfb_pages = 0;
23560 + params->vesa_attrib = 0;
23562 + if (backend && backend->set_kernel_params)
23563 + backend->set_kernel_params(backend, params);
23567 +graphics_alloc_text_buf(void)
23570 + struct graphics *graphics = backend->graphics;
23571 + position_t screen_size;
23573 + if (graphics->text) {
23574 + grub_free(graphics->text);
23575 + graphics->text = NULL;
23577 + graphics_get_screen_rowscols(&screen_size);
23578 + graphics->text = grub_malloc(screen_size.x
23580 + * sizeof (graphics->text[0]));
23581 + if (graphics->text) {
23583 + for (y = 0; y < screen_size.y; y++)
23584 + for (x = 0; x < screen_size.x; x++)
23585 + graphics->text[y * screen_size.x + x] = ' ';
23593 +graphics_get_text_buf(void)
23595 + return backend ? backend->graphics->text : NULL;
23600 +graphics_get_screen_rowscols(position_t *size)
23603 + if (backend && backend->get_screen_size) {
23604 + backend->get_screen_size(backend, size);
23620 +graphics_get_scroll(void)
23622 + return backend ? backend->graphics->scroll : 1;
23626 +graphics_set_palette(int idx, int red, int green, int blue)
23628 + if (backend && backend->set_palette) {
23629 + backend->set_palette(backend, idx, red, green, blue);
23630 + backend->set_palette(backend, 0, 0x00, 0x00, 0x00);
23631 + backend->set_palette(backend, 15, 0xff, 0xff, 0xff);
23632 + backend->set_palette(backend, 16, 0x00, 0x00, 0x00);
23636 +static char splashpath[64] = "";
23639 +graphics_set_splash_helper(void)
23642 + struct xpm *xpm = NULL;
23644 + if (backend->graphics->splashimage)
23645 + xpm_free(backend->graphics->splashimage);
23647 + if (splashpath[0])
23648 + xpm = xpm_open(splashpath);
23651 + backend->graphics->splashimage = xpm;
23652 + grub_strcpy(backend->graphics->splashpath, splashpath);
23654 + backend->graphics->splashimage = NULL;
23655 + backend->graphics->splashpath[0] = '\0';
23657 + backend->reset_screen_geometry(backend);
23662 +graphics_set_splash(char *s)
23664 + if (s && s[0] != '\0')
23665 + grub_strcpy(splashpath, s);
23667 + splashpath[0] = '\0';
23668 + graphics_set_splash_helper();
23672 +graphics_get_splash(void)
23675 + return backend->graphics->splashpath;
23676 + if (splashpath[0] != '\0')
23677 + return splashpath;
23682 +graphics_get_splash_xpm(void)
23685 + return backend->graphics->splashimage;
23690 +graphics_putchar(int ch)
23692 + struct graphics *graphics;
23693 + position_t screensz;
23696 + void *old_term = current_term;
23701 + graphics = backend->graphics;
23702 + graphics_get_screen_rowscols(&screensz);
23706 + graphics_cursor(0);
23708 + if (ch == '\n') {
23709 + if (graphics->fonty + 1 < screensz.y) {
23710 + graphics_setxy(graphics->fontx, graphics->fonty + 1);
23712 + graphics_scroll();
23713 + graphics_cursor(1);
23715 + } else if (ch == '\r') {
23716 + graphics_setxy(0, graphics->fonty);
23717 + graphics_cursor(1);
23721 + graphics_cursor(0);
23723 + offset = graphics->fontx + graphics->fonty * screensz.x;
23724 + graphics->text[offset] = ch;
23725 + graphics->text[offset] &= 0x00ff;
23726 + if (graphics->current_color & 0xf0)
23727 + graphics->text[offset] |= 0x100;
23729 + graphics_cursor(0);
23731 + if ((graphics->fontx + 1) >= screensz.x) {
23732 + graphics_setxy(0, graphics->fonty);
23733 + if (graphics->fonty + 1 < screensz.y)
23734 + graphics_setxy(0, graphics->fonty + 1);
23736 + graphics_scroll();
23738 + graphics_setxy(graphics->fontx + 1, graphics->fonty);
23741 + graphics_cursor(1);
23745 +graphics_set_font_position(position_t *pos)
23748 + backend->graphics->fontx = pos->x;
23749 + backend->graphics->fonty = pos->y;
23754 +graphics_get_font_position(position_t *pos)
23757 + pos->x = backend->graphics->fontx;
23758 + pos->y = backend->graphics->fonty;
23766 +graphics_get_font_size(position_t *size)
23773 +graphics_setxy(int x, int y)
23778 + if (backend->setxy) {
23779 + position_t pos = {x, y};
23780 + backend->setxy(backend, &pos);
23786 +graphics_getxy(void)
23790 + if (backend->getxy) {
23792 + backend->getxy(backend, &pos);
23793 + ret = ((pos.x & 0xff) << 8) | (pos.y & 0xff);
23795 + ret = ((backend->graphics->fontx & 0xff) << 8) | (backend->graphics->fonty & 0xff);
23802 +graphics_scroll (void)
23804 + struct graphics *graphics;
23805 + position_t screensz;
23807 + unsigned short *text;
23813 + graphics = backend->graphics;
23815 + /* we don't want to scroll recursively... that would be bad */
23816 + if (!graphics->scroll)
23818 + graphics->scroll = 0;
23819 + graphics_get_screen_rowscols(&screensz);
23821 + text = graphics_get_text_buf();
23822 + linesz = screensz.x * sizeof (text[0]);
23823 + for (i = 1; i < screensz.y; i++) {
23824 + unsigned short *prev = &text[(i-1) * screensz.x];
23825 + unsigned short *this = prev + screensz.x;
23827 + memmove(prev, this, linesz);
23829 + this += screensz.x;
23831 + graphics_setxy(0, screensz.y - 1);
23832 + for (i = 0; i < screensz.x; i++) {
23833 + graphics_putchar(' ');
23834 + //text[(screensz.y-1) + i] = ' ';
23837 + graphics_clbl(0, 0, screensz.x, screensz.y, 1);
23838 + graphics_setxy(0, screensz.y - 1);
23839 + graphics->scroll = 1;
23843 +graphics_cursor(int set)
23845 + if (backend && backend->cursor)
23846 + backend->cursor(backend, set);
23850 +graphics_gotoxy(int x, int y)
23852 + position_t pos = {x,y};
23854 + if (backend->gotoxy) {
23855 + backend->gotoxy(backend, &pos);
23857 + graphics_cursor(0);
23858 + graphics_setxy(x, y);
23859 + graphics_cursor(1);
23865 +graphics_cls(void)
23867 + int x = 0, y = 0, xy;
23868 + unsigned short *text;
23869 + position_t screensz;
23871 + graphics_get_screen_rowscols(&screensz);
23872 + text = graphics_get_text_buf();
23873 + for (y = 0; y < screensz.y; y++)
23874 + for (x = 0; x < screensz.x; x++)
23875 + text[x + y * screensz.x] = ' ';
23878 + //int xy = graphics_getxy();
23880 + graphics_clbl(0, 0, screensz.x, screensz.y, 0);
23881 + //graphics_gotoxy(xy & 0xf0 >> 8, xy & 0xf);
23882 + graphics_gotoxy(0, 0);
23887 +graphics_clbl(int col, int row, int width, int height, int draw_text)
23890 + int x = 0, y = 0, xy;
23891 + unsigned short *text;
23892 + position_t screensz;
23894 + graphics_get_screen_rowscols(&screensz);
23897 + xy = graphics_getxy();
23899 + if (backend->clbl) {
23900 + backend->clbl(backend, col, row, width, height, draw_text);
23902 + for (y = 0; y < screensz.y; y++) {
23903 + for (x = 0; x < screensz.x; x++) {
23904 + graphics_setxy(x, y);
23905 + graphics_cursor(0);
23910 + graphics_gotoxy(xy >> 8, xy & 0xf);
23916 +graphics_setcolorstate (color_state state)
23918 + struct graphics *graphics;
23922 + graphics = backend->graphics;
23925 + case COLOR_STATE_STANDARD:
23926 + graphics->current_color = graphics->standard_color;
23928 + case COLOR_STATE_NORMAL:
23929 + graphics->current_color = graphics->normal_color;
23931 + case COLOR_STATE_HIGHLIGHT:
23932 + graphics->current_color = graphics->highlight_color;
23935 + graphics->current_color = graphics->standard_color;
23939 + graphics->color_state = state;
23943 +graphics_setcolor (int normal_color, int highlight_color)
23945 + backend->graphics->normal_color = normal_color;
23946 + backend->graphics->highlight_color = highlight_color;
23948 + graphics_setcolorstate (backend->graphics->color_state);
23952 +graphics_setcursor(int on)
23954 + /* FIXME: we don't have a cursor in graphics */
23959 +graphics_init(void)
23961 + struct graphics *graphics;
23964 + if (graphics_inited)
23968 + if (backend->enable(backend)) {
23969 + graphics_inited = 1;
23970 + graphics_set_splash_helper();
23976 + graphics = grub_malloc(sizeof (*graphics));
23980 + grub_memset(graphics, '\0', sizeof (*graphics));
23982 + graphics->scroll = 1;
23983 + graphics->fontx = 0;
23984 + graphics->fonty = 0;
23986 + graphics->standard_color = A_NORMAL;
23987 + graphics->normal_color = A_NORMAL;
23988 + graphics->highlight_color = A_REVERSE;
23989 + graphics->current_color = A_NORMAL;
23990 + graphics->color_state = COLOR_STATE_STANDARD;
23992 + grub_memset(graphics->splashpath, '\0', sizeof (graphics->splashpath));
23994 + for(i = 0; backends[i] != NULL; i++) {
23995 + backend = backends[i];
23996 + backend->graphics = graphics;
23997 + if (backend->enable(backend)) {
23998 + graphics_inited = 1;
23999 + graphics_set_splash_helper();
24002 + backend->graphics = NULL;
24004 + current_term = term_table;
24005 + grub_free(graphics->text);
24006 + grub_free(graphics);
24011 +graphics_end(void)
24013 + if (backend && graphics_inited) {
24014 + graphics_inited = 0;
24015 + backend->disable(backend);
24019 +#endif /* SUPPORT_GRAPHICS */
24020 diff --git a/efi/graphics.h b/efi/graphics.h
24021 new file mode 100644
24022 index 0000000..ecf9e0e
24024 +++ b/efi/graphics.h
24026 +#ifndef GRUB_EFI_GRAPHICS_H
24027 +#define GRUB_EFI_GRAPHICS_H
24029 +#ifdef SUPPORT_GRAPHICS
24034 +#define VIDEO_TYPE_EFI 0x70
24036 +typedef void pixel_t;
24043 +typedef struct position position_t;
24045 +extern void grub_efi_setup_gfx_pci (grub_efi_handle_t handle);
24047 +extern grub_uint16_t grub_console_getwh (void);
24048 +extern void graphics_set_kernel_params(struct linux_kernel_params *params);
24049 +extern void graphics_set_font_position(position_t *pos);
24050 +extern void graphics_get_font_position(position_t *pos);
24051 +extern void graphics_get_font_size(position_t *size);
24052 +extern int graphics_get_screen_rowscols(position_t *size);
24053 +extern int graphics_alloc_text_buf(void);
24054 +extern unsigned short *graphics_get_text_buf(void);
24056 +extern int graphics_get_scroll(void);
24058 +extern char *graphics_get_splash(void);
24059 +extern void graphics_setxy(int x, int y);
24060 +extern void graphics_cls(void);
24061 +extern void graphics_clbl(int x, int y, int width, int height, int draw_text);
24062 +extern void graphics_setcolorstate (color_state state);
24063 +extern void graphics_setcolor (int normal_color, int highlight_color);
24064 +extern int graphics_setcursor(int on);
24065 +extern int graphics_init(void);
24066 +extern void graphics_end(void);
24067 +extern struct xpm *graphics_get_splash_xpm(void);
24068 +extern void graphics_cursor(int set);
24069 +extern void graphics_scroll(void);
24071 +struct graphics_backend {
24073 + struct graphics *graphics;
24076 + int (*enable)(struct graphics_backend *backend);
24077 + void (*disable)(struct graphics_backend *backend);
24079 + void (*set_kernel_params)(struct graphics_backend *backend,
24080 + struct linux_kernel_params *params);
24082 + void (*clbl)(struct graphics_backend *backend, int col, int row,
24083 + int width, int height,
24086 + void (*set_palette)(struct graphics_backend *backend,
24087 + int idx, int red, int green, int blue);
24088 + pixel_t *(*get_pixel_idx)(struct graphics_backend *backend, int idx);
24089 + pixel_t *(*get_pixel_rgb)(struct graphics_backend *backend,
24090 + int red, int green, int blue);
24091 + void (*draw_pixel)(struct graphics_backend *backend,
24092 + position_t *pos, pixel_t *pixel);
24094 + void (*reset_screen_geometry)(struct graphics_backend *backend);
24095 + void (*get_screen_size)(struct graphics_backend *backend, position_t *size);
24096 + void (*getxy)(struct graphics_backend *backend, position_t *pos);
24097 + void (*setxy)(struct graphics_backend *backend, position_t *pos);
24098 + void (*gotoxy)(struct graphics_backend *backend, position_t *pos);
24099 + void (*cursor)(struct graphics_backend *backend, int set);
24100 +// void (*putchar)(struct graphics_backend *backend, int ch);
24103 +extern const unsigned char font8x16[];
24105 +#endif /* SUPPORT_GRAPHCIS */
24106 +#endif /* GRUB_EFI_GRAPHICS_H */
24107 diff --git a/efi/grub/.gitignore b/efi/grub/.gitignore
24108 new file mode 100644
24109 index 0000000..40a991e
24111 +++ b/efi/grub/.gitignore
24114 diff --git a/efi/grub/efi/api.h b/efi/grub/efi/api.h
24115 new file mode 100644
24116 index 0000000..81a0b3f
24118 +++ b/efi/grub/efi/api.h
24120 +/* efi.h - declare EFI types and functions */
24122 + * GRUB -- GRand Unified Bootloader
24123 + * Copyright (C) 2006 Free Software Foundation, Inc.
24125 + * This program is free software; you can redistribute it and/or modify
24126 + * it under the terms of the GNU General Public License as published by
24127 + * the Free Software Foundation; either version 2 of the License, or
24128 + * (at your option) any later version.
24130 + * This program is distributed in the hope that it will be useful,
24131 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
24132 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24133 + * GNU General Public License for more details.
24135 + * You should have received a copy of the GNU General Public License
24136 + * along with this program; if not, write to the Free Software
24137 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24140 +#ifndef GRUB_EFI_API_HEADER
24141 +#define GRUB_EFI_API_HEADER 1
24143 +#include <grub/types.h>
24144 +#include <grub/efi/eficall.h>
24146 +/* For consistency and safety, we name the EFI-defined types differently.
24147 + All names are transformed into lower case, _t appended, and
24148 + grub_efi_ prepended. */
24151 +#define GRUB_EFI_EVT_TIMER 0x80000000
24152 +#define GRUB_EFI_EVT_RUNTIME 0x40000000
24153 +#define GRUB_EFI_EVT_RUNTIME_CONTEXT 0x20000000
24154 +#define GRUB_EFI_EVT_NOTIFY_WAIT 0x00000100
24155 +#define GRUB_EFI_EVT_NOTIFY_SIGNAL 0x00000200
24156 +#define GRUB_EFI_EVT_SIGNAL_EXIT_BOOT_SERVICES 0x00000201
24157 +#define GRUB_EFI_EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE 0x60000202
24159 +#define GRUB_EFI_TPL_APPLICATION 4
24160 +#define GRUB_EFI_TPL_CALLBACK 8
24161 +#define GRUB_EFI_TPL_NOTIFY 16
24162 +#define GRUB_EFI_TPL_HIGH_LEVEL 31
24164 +#define GRUB_EFI_MEMORY_UC 0x0000000000000001
24165 +#define GRUB_EFI_MEMORY_WC 0x0000000000000002
24166 +#define GRUB_EFI_MEMORY_WT 0x0000000000000004
24167 +#define GRUB_EFI_MEMORY_WB 0x0000000000000008
24168 +#define GRUB_EFI_MEMORY_UCE 0x0000000000000010
24169 +#define GRUB_EFI_MEMORY_WP 0x0000000000001000
24170 +#define GRUB_EFI_MEMORY_RP 0x0000000000002000
24171 +#define GRUB_EFI_MEMORY_XP 0x0000000000004000
24172 +#define GRUB_EFI_MEMORY_RUNTIME 0x8000000000000000
24174 +#define GRUB_EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL 0x00000001
24175 +#define GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL 0x00000002
24176 +#define GRUB_EFI_OPEN_PROTOCOL_TEST_PROTOCOL 0x00000004
24177 +#define GRUB_EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER 0x00000008
24178 +#define GRUB_EFI_OPEN_PROTOCOL_BY_DRIVER 0x00000010
24179 +#define GRUB_EFI_OPEN_PROTOCOL_BY_EXCLUSIVE 0x00000020
24181 +#define GRUB_EFI_VARIABLE_NON_VOLATILE 0x0000000000000001
24182 +#define GRUB_EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002
24183 +#define GRUB_EFI_VARIABLE_RUNTIME_ACCESS 0x0000000000000004
24185 +#define GRUB_EFI_TIME_ADJUST_DAYLIGHT 0x01
24186 +#define GRUB_EFI_TIME_IN_DAYLIGHT 0x02
24188 +#define GRUB_EFI_UNSPECIFIED_TIMEZONE 0x07FF
24190 +#define GRUB_EFI_OPTIONAL_PTR 0x00000001
24192 +#define GRUB_EFI_PCI_IO_GUID \
24193 + { 0x4cf5b200, 0x68b8, 0x4ca5, \
24194 + { 0x9e, 0xec, 0xb2, 0x3e, 0x3f, 0x50, 0x02, 0x9a } \
24197 +#define GRUB_EFI_PCI_ROOT_IO_GUID \
24198 + { 0x2F707EBB, 0x4A1A, 0x11d4, \
24199 + { 0x9A, 0x38, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D } \
24202 +#define GRUB_EFI_LOADED_IMAGE_GUID \
24203 + { 0x5b1b31a1, 0x9562, 0x11d2, \
24204 + { 0x8e, 0x3f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
24207 +#define GRUB_EFI_DISK_IO_GUID \
24208 + { 0xce345171, 0xba0b, 0x11d2, \
24209 + { 0x8e, 0x4f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
24212 +#define GRUB_EFI_BLOCK_IO_GUID \
24213 + { 0x964e5b21, 0x6459, 0x11d2, \
24214 + { 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
24217 +#define GRUB_EFI_DEVICE_PATH_GUID \
24218 + { 0x09576e91, 0x6d3f, 0x11d2, \
24219 + { 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
24222 +#define GRUB_EFI_DEVICE_PATH_FROM_TEXT_GUID \
24223 + { 0x05c99a21, 0xc70f, 0x4ad2, \
24224 + { 0x8a, 0x5f, 0x35, 0xdf, 0x33, 0x43, 0xf5, 0x1e } \
24227 +#define GRUB_EFI_GRAPHICS_OUTPUT_GUID \
24228 + { 0x9042a9de, 0x23dc, 0x4a38, \
24229 + { 0x96, 0xfb, 0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a } \
24232 +#define GRUB_EFI_UGA_DRAW_GUID \
24233 + { 0x982c298b, 0xf4fa, 0x41cb, \
24234 + { 0xb8, 0x38, 0x77, 0xaa, 0x68, 0x8f, 0xb8, 0x39 } \
24237 +#define GRUB_EFI_UGA_IO_GUID \
24238 + { 0x61a4d49e, 0x6f68, 0x4f1b, \
24239 + { 0xb9, 0x22, 0xa8, 0x6e, 0xed, 0xb, 0x7, 0xa2 } \
24242 +#define GRUB_EFI_SIMPLE_FILE_SYSTEM_GUID \
24243 + { 0x964e5b22, 0x6459, 0x11d2, \
24244 + { 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
24247 +#define GRUB_EFI_SERIAL_IO_GUID \
24248 + { 0xbb25cf6f, 0xf1d4, 0x11d2, \
24249 + { 0x9a, 0x0c, 0x00, 0x90, 0x27, 0x3F, 0xc1, 0xfd } \
24252 +/* Enumerations. */
24253 +enum grub_efi_timer_delay
24255 + GRUB_EFI_TIMER_CANCEL,
24256 + GRUB_EFI_TIMER_PERIODIC,
24257 + GRUB_EFI_TIMER_RELATIVE
24259 +typedef enum grub_efi_timer_delay grub_efi_timer_delay_t;
24261 +enum grub_efi_allocate_type
24263 + GRUB_EFI_ALLOCATE_ANY_PAGES,
24264 + GRUB_EFI_ALLOCATE_MAX_ADDRESS,
24265 + GRUB_EFI_ALLOCATE_ADDRESS,
24266 + GRUB_EFI_MAX_ALLOCATION_TYPE
24268 +typedef enum grub_efi_allocate_type grub_efi_allocate_type_t;
24270 +enum grub_efi_memory_type
24272 + GRUB_EFI_RESERVED_MEMORY_TYPE,
24273 + GRUB_EFI_LOADER_CODE,
24274 + GRUB_EFI_LOADER_DATA,
24275 + GRUB_EFI_BOOT_SERVICES_CODE,
24276 + GRUB_EFI_BOOT_SERVICES_DATA,
24277 + GRUB_EFI_RUNTIME_SERVICES_CODE,
24278 + GRUB_EFI_RUNTIME_SERVICES_DATA,
24279 + GRUB_EFI_CONVENTIONAL_MEMORY,
24280 + GRUB_EFI_UNUSABLE_MEMORY,
24281 + GRUB_EFI_ACPI_RECLAIM_MEMORY,
24282 + GRUB_EFI_ACPI_MEMORY_NVS,
24283 + GRUB_EFI_MEMORY_MAPPED_IO,
24284 + GRUB_EFI_MEMORY_MAPPED_IO_PORT_SPACE,
24285 + GRUB_EFI_PAL_CODE,
24286 + GRUB_EFI_MAX_MEMORY_TYPE
24288 +typedef enum grub_efi_memory_type grub_efi_memory_type_t;
24290 +enum grub_efi_interface_type
24292 + GRUB_EFI_NATIVE_INTERFACE
24294 +typedef enum grub_efi_interface_type grub_efi_interface_type_t;
24296 +enum grub_efi_locate_search_type
24298 + GRUB_EFI_ALL_HANDLES,
24299 + GRUB_EFI_BY_REGISTER_NOTIFY,
24300 + GRUB_EFI_BY_PROTOCOL
24302 +typedef enum grub_efi_locate_search_type grub_efi_locate_search_type_t;
24304 +enum grub_efi_reset_type
24306 + GRUB_EFI_RESET_COLD,
24307 + GRUB_EFI_RESET_WARM,
24308 + GRUB_EFI_RESET_SHUTDOWN
24310 +typedef enum grub_efi_reset_type grub_efi_reset_type_t;
24313 +typedef char grub_efi_boolean_t;
24314 +typedef long grub_efi_intn_t;
24315 +typedef unsigned long grub_efi_uintn_t;
24316 +typedef grub_int8_t grub_efi_int8_t;
24317 +typedef grub_uint8_t grub_efi_uint8_t;
24318 +typedef grub_int16_t grub_efi_int16_t;
24319 +typedef grub_uint16_t grub_efi_uint16_t;
24320 +typedef grub_int32_t grub_efi_int32_t;
24321 +typedef grub_uint32_t grub_efi_uint32_t;
24322 +typedef grub_int64_t grub_efi_int64_t;
24323 +typedef grub_uint64_t grub_efi_uint64_t;
24324 +typedef grub_uint8_t grub_efi_char8_t;
24325 +typedef grub_uint16_t grub_efi_char16_t;
24327 +typedef grub_efi_intn_t grub_efi_status_t;
24329 +#define GRUB_EFI_ERROR_CODE(value) \
24330 + ((1L << (sizeof (grub_efi_status_t) * 8 - 1)) | (value))
24332 +#define GRUB_EFI_WARNING_CODE(value) (value)
24334 +#define GRUB_EFI_SUCCESS 0
24336 +#define GRUB_EFI_LOAD_ERROR GRUB_EFI_ERROR_CODE (1)
24337 +#define GRUB_EFI_INVALID_PARAMETER GRUB_EFI_ERROR_CODE (2)
24338 +#define GRUB_EFI_UNSUPPORTED GRUB_EFI_ERROR_CODE (3)
24339 +#define GRUB_EFI_BAD_BUFFER_SIZE GRUB_EFI_ERROR_CODE (4)
24340 +#define GRUB_EFI_BUFFER_TOO_SMALL GRUB_EFI_ERROR_CODE (5)
24341 +#define GRUB_EFI_NOT_READY GRUB_EFI_ERROR_CODE (6)
24342 +#define GRUB_EFI_DEVICE_ERROR GRUB_EFI_ERROR_CODE (7)
24343 +#define GRUB_EFI_WRITE_PROTECTED GRUB_EFI_ERROR_CODE (8)
24344 +#define GRUB_EFI_OUT_OF_RESOURCES GRUB_EFI_ERROR_CODE (9)
24345 +#define GRUB_EFI_VOLUME_CORRUPTED GRUB_EFI_ERROR_CODE (10)
24346 +#define GRUB_EFI_VOLUME_FULL GRUB_EFI_ERROR_CODE (11)
24347 +#define GRUB_EFI_NO_MEDIA GRUB_EFI_ERROR_CODE (12)
24348 +#define GRUB_EFI_MEDIA_CHANGED GRUB_EFI_ERROR_CODE (13)
24349 +#define GRUB_EFI_NOT_FOUND GRUB_EFI_ERROR_CODE (14)
24350 +#define GRUB_EFI_ACCESS_DENIED GRUB_EFI_ERROR_CODE (15)
24351 +#define GRUB_EFI_NO_RESPONSE GRUB_EFI_ERROR_CODE (16)
24352 +#define GRUB_EFI_NO_MAPPING GRUB_EFI_ERROR_CODE (17)
24353 +#define GRUB_EFI_TIMEOUT GRUB_EFI_ERROR_CODE (18)
24354 +#define GRUB_EFI_NOT_STARTED GRUB_EFI_ERROR_CODE (19)
24355 +#define GRUB_EFI_ALREADY_STARTED GRUB_EFI_ERROR_CODE (20)
24356 +#define GRUB_EFI_ABORTED GRUB_EFI_ERROR_CODE (21)
24357 +#define GRUB_EFI_ICMP_ERROR GRUB_EFI_ERROR_CODE (22)
24358 +#define GRUB_EFI_TFTP_ERROR GRUB_EFI_ERROR_CODE (23)
24359 +#define GRUB_EFI_PROTOCOL_ERROR GRUB_EFI_ERROR_CODE (24)
24360 +#define GRUB_EFI_INCOMPATIBLE_VERSION GRUB_EFI_ERROR_CODE (25)
24361 +#define GRUB_EFI_SECURITY_VIOLATION GRUB_EFI_ERROR_CODE (26)
24362 +#define GRUB_EFI_CRC_ERROR GRUB_EFI_ERROR_CODE (27)
24364 +#define GRUB_EFI_WARN_UNKNOWN_GLYPH GRUB_EFI_WARNING_CODE (1)
24365 +#define GRUB_EFI_WARN_DELETE_FAILURE GRUB_EFI_WARNING_CODE (2)
24366 +#define GRUB_EFI_WARN_WRITE_FAILURE GRUB_EFI_WARNING_CODE (3)
24367 +#define GRUB_EFI_WARN_BUFFER_TOO_SMALL GRUB_EFI_WARNING_CODE (4)
24369 +typedef void *grub_efi_handle_t;
24370 +typedef void *grub_efi_event_t;
24371 +typedef grub_efi_uint64_t grub_efi_lba_t;
24372 +typedef grub_efi_uintn_t grub_efi_tpl_t;
24373 +typedef grub_uint8_t grub_efi_mac_address_t[32];
24374 +typedef grub_uint8_t grub_efi_ipv4_address_t[4];
24375 +typedef grub_uint16_t grub_efi_ipv6_address_t[8];
24376 +typedef grub_uint8_t grub_efi_ip_address_t[8] __attribute__ ((aligned (4)));
24377 +typedef grub_efi_uint64_t grub_efi_physical_address_t;
24378 +typedef grub_efi_uint64_t grub_efi_virtual_address_t;
24380 +struct grub_efi_guid
24382 + grub_uint32_t data1;
24383 + grub_uint16_t data2;
24384 + grub_uint16_t data3;
24385 + grub_uint8_t data4[8];
24386 +} __attribute__ ((aligned (8)));
24387 +typedef struct grub_efi_guid grub_efi_guid_t;
24389 +/* XXX although the spec does not specify the padding, this actually
24390 + must have the padding! */
24391 +struct grub_efi_memory_descriptor
24393 + grub_efi_uint32_t type;
24394 + grub_efi_uint32_t padding;
24395 + grub_efi_physical_address_t physical_start;
24396 + grub_efi_virtual_address_t virtual_start;
24397 + grub_efi_uint64_t num_pages;
24398 + grub_efi_uint64_t attribute;
24400 +typedef struct grub_efi_memory_descriptor grub_efi_memory_descriptor_t;
24402 +/* Device Path definitions. */
24403 +struct grub_efi_device_path
24405 + grub_efi_uint8_t type;
24406 + grub_efi_uint8_t subtype;
24407 + grub_efi_uint8_t length[2];
24409 +typedef struct grub_efi_device_path grub_efi_device_path_t;
24410 +/* XXX EFI does not define EFI_DEVICE_PATH_PROTOCOL but uses it.
24411 + It seems to be identical to EFI_DEVICE_PATH. */
24412 +typedef struct grub_efi_device_path grub_efi_device_path_protocol_t;
24414 +#define GRUB_EFI_DEVICE_PATH_TYPE(dp) ((dp)->type & 0x7f)
24415 +#define GRUB_EFI_DEVICE_PATH_SUBTYPE(dp) ((dp)->subtype)
24416 +#define GRUB_EFI_DEVICE_PATH_LENGTH(dp) \
24417 + ((dp)->length[0] | ((grub_efi_uint16_t) ((dp)->length[1]) << 8))
24419 +/* The End of Device Path nodes. */
24420 +#define GRUB_EFI_END_DEVICE_PATH_TYPE (0xff & 0x7f)
24422 +#define GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE 0xff
24423 +#define GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE 0x01
24425 +#define GRUB_EFI_END_ENTIRE_DEVICE_PATH(dp) \
24426 + (GRUB_EFI_DEVICE_PATH_TYPE (dp) == GRUB_EFI_END_DEVICE_PATH_TYPE \
24427 + && (GRUB_EFI_DEVICE_PATH_SUBTYPE (dp) \
24428 + == GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE))
24430 +#define GRUB_EFI_NEXT_DEVICE_PATH(dp) \
24431 + ((grub_efi_device_path_t *) ((char *) (dp) \
24432 + + GRUB_EFI_DEVICE_PATH_LENGTH (dp)))
24434 +/* Hardware Device Path. */
24435 +#define GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE 1
24437 +#define GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE 1
24439 +struct grub_efi_pci_device_path
24441 + grub_efi_device_path_t header;
24442 + grub_efi_uint8_t function;
24443 + grub_efi_uint8_t device;
24445 +typedef struct grub_efi_pci_device_path grub_efi_pci_device_path_t;
24447 +#define GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE 2
24449 +struct grub_efi_pccard_device_path
24451 + grub_efi_device_path_t header;
24452 + grub_efi_uint8_t function;
24454 +typedef struct grub_efi_pccard_device_path grub_efi_pccard_device_path_t;
24456 +#define GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE 3
24458 +struct grub_efi_memory_mapped_device_path
24460 + grub_efi_device_path_t header;
24461 + grub_efi_memory_type_t memory_type;
24462 + grub_efi_physical_address_t start_address;
24463 + grub_efi_physical_address_t end_address;
24465 +typedef struct grub_efi_memory_mapped_device_path
24466 + grub_efi_memory_mapped_device_path_t;
24468 +#define GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE 4
24470 +struct grub_efi_vendor_device_path
24472 + grub_efi_device_path_t header;
24473 + grub_efi_guid_t vendor_guid;
24474 + grub_efi_uint8_t vendor_defined_data[0];
24476 +typedef struct grub_efi_vendor_device_path grub_efi_vendor_device_path_t;
24478 +#define GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE 5
24480 +struct grub_efi_controller_device_path
24482 + grub_efi_device_path_t header;
24483 + grub_efi_uint32_t controller_number;
24485 +typedef struct grub_efi_controller_device_path
24486 + grub_efi_controller_device_path_t;
24488 +/* ACPI Device Path. */
24489 +#define GRUB_EFI_ACPI_DEVICE_PATH_TYPE 2
24491 +#define GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE 1
24493 +struct grub_efi_acpi_device_path
24495 + grub_efi_device_path_t header;
24496 + grub_efi_uint32_t hid;
24497 + grub_efi_uint32_t uid;
24499 +typedef struct grub_efi_acpi_device_path grub_efi_acpi_device_path_t;
24501 +#define GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE 2
24503 +struct grub_efi_expanded_acpi_device_path
24505 + grub_efi_device_path_t header;
24506 + grub_efi_uint32_t hid;
24507 + grub_efi_uint32_t uid;
24508 + grub_efi_uint32_t cid;
24511 +typedef struct grub_efi_expanded_acpi_device_path
24512 + grub_efi_expanded_acpi_device_path_t;
24514 +#define GRUB_EFI_EXPANDED_ACPI_HIDSTR(dp) \
24515 + (((grub_efi_expanded_acpi_device_path_t *) dp)->hidstr)
24516 +#define GRUB_EFI_EXPANDED_ACPI_UIDSTR(dp) \
24517 + (GRUB_EFI_EXPANDED_ACPI_HIDSTR(dp) \
24518 + + grub_strlen (GRUB_EFI_EXPANDED_ACPI_HIDSTR(dp)) + 1)
24519 +#define GRUB_EFI_EXPANDED_ACPI_CIDSTR(dp) \
24520 + (GRUB_EFI_EXPANDED_ACPI_UIDSTR(dp) \
24521 + + grub_strlen (GRUB_EFI_EXPANDED_ACPI_UIDSTR(dp)) + 1)
24523 +/* Messaging Device Path. */
24524 +#define GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE 3
24526 +#define GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE 1
24528 +struct grub_efi_atapi_device_path
24530 + grub_efi_device_path_t header;
24531 + grub_efi_uint8_t primary_secondary;
24532 + grub_efi_uint8_t slave_master;
24533 + grub_efi_uint16_t lun;
24535 +typedef struct grub_efi_atapi_device_path grub_efi_atapi_device_path_t;
24537 +#define GRUB_EFI_SCSI_DEVICE_PATH_SUBTYPE 2
24539 +struct grub_efi_scsi_device_path
24541 + grub_efi_device_path_t header;
24542 + grub_efi_uint16_t pun;
24543 + grub_efi_uint16_t lun;
24545 +typedef struct grub_efi_scsi_device_path grub_efi_scsi_device_path_t;
24547 +#define GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE 3
24549 +struct grub_efi_fibre_channel_device_path
24551 + grub_efi_device_path_t header;
24552 + grub_efi_uint32_t reserved;
24553 + grub_efi_uint64_t wwn;
24554 + grub_efi_uint64_t lun;
24556 +typedef struct grub_efi_fibre_channel_device_path
24557 + grub_efi_fibre_channel_device_path_t;
24559 +#define GRUB_EFI_1394_DEVICE_PATH_SUBTYPE 4
24561 +struct grub_efi_1394_device_path
24563 + grub_efi_device_path_t header;
24564 + grub_efi_uint32_t reserved;
24565 + grub_efi_uint64_t guid;
24567 +typedef struct grub_efi_1394_device_path grub_efi_1394_device_path_t;
24569 +#define GRUB_EFI_USB_DEVICE_PATH_SUBTYPE 5
24571 +struct grub_efi_usb_device_path
24573 + grub_efi_device_path_t header;
24574 + grub_efi_uint8_t parent_port_number;
24575 + grub_efi_uint8_t interface;
24577 +typedef struct grub_efi_usb_device_path grub_efi_usb_device_path_t;
24579 +#define GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE 15
24581 +struct grub_efi_usb_class_device_path
24583 + grub_efi_device_path_t header;
24584 + grub_efi_uint16_t vendor_id;
24585 + grub_efi_uint16_t product_id;
24586 + grub_efi_uint8_t device_class;
24587 + grub_efi_uint8_t device_subclass;
24588 + grub_efi_uint8_t device_protocol;
24590 +typedef struct grub_efi_usb_class_device_path
24591 + grub_efi_usb_class_device_path_t;
24593 +#define GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE 6
24595 +struct grub_efi_i2o_device_path
24597 + grub_efi_device_path_t header;
24598 + grub_efi_uint32_t tid;
24600 +typedef struct grub_efi_i2o_device_path grub_efi_i2o_device_path_t;
24602 +#define GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE 11
24604 +struct grub_efi_mac_address_device_path
24606 + grub_efi_device_path_t header;
24607 + grub_efi_mac_address_t mac_address;
24608 + grub_efi_uint8_t if_type;
24610 +typedef struct grub_efi_mac_address_device_path
24611 + grub_efi_mac_address_device_path_t;
24613 +#define GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE 12
24615 +struct grub_efi_ipv4_device_path
24617 + grub_efi_device_path_t header;
24618 + grub_efi_ipv4_address_t local_ip_address;
24619 + grub_efi_ipv4_address_t remote_ip_address;
24620 + grub_efi_uint16_t local_port;
24621 + grub_efi_uint16_t remote_port;
24622 + grub_efi_uint16_t protocol;
24623 + grub_efi_uint8_t static_ip_address;
24625 +typedef struct grub_efi_ipv4_device_path grub_efi_ipv4_device_path_t;
24627 +#define GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE 13
24629 +struct grub_efi_ipv6_device_path
24631 + grub_efi_device_path_t header;
24632 + grub_efi_ipv6_address_t local_ip_address;
24633 + grub_efi_ipv6_address_t remote_ip_address;
24634 + grub_efi_uint16_t local_port;
24635 + grub_efi_uint16_t remote_port;
24636 + grub_efi_uint16_t protocol;
24637 + grub_efi_uint8_t static_ip_address;
24639 +typedef struct grub_efi_ipv6_device_path grub_efi_ipv6_device_path_t;
24641 +#define GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE 9
24643 +struct grub_efi_infiniband_device_path
24645 + grub_efi_device_path_t header;
24646 + grub_efi_uint32_t resource_flags;
24647 + grub_efi_uint8_t port_gid[16];
24648 + grub_efi_uint64_t remote_id;
24649 + grub_efi_uint64_t target_port_id;
24650 + grub_efi_uint64_t device_id;
24652 +typedef struct grub_efi_infiniband_device_path
24653 + grub_efi_infiniband_device_path_t;
24655 +#define GRUB_EFI_UART_DEVICE_PATH_SUBTYPE 14
24657 +struct grub_efi_uart_device_path
24659 + grub_efi_device_path_t header;
24660 + grub_efi_uint32_t reserved;
24661 + grub_efi_uint64_t baud_rate;
24662 + grub_efi_uint8_t data_bits;
24663 + grub_efi_uint8_t parity;
24664 + grub_efi_uint8_t stop_bits;
24666 +typedef struct grub_efi_uart_device_path grub_efi_uart_device_path_t;
24668 +#define GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE 10
24670 +struct grub_efi_vendor_messaging_device_path
24672 + grub_efi_device_path_t header;
24673 + grub_efi_guid_t vendor_guid;
24674 + grub_efi_uint8_t vendor_defined_data[0];
24676 +typedef struct grub_efi_vendor_messaging_device_path
24677 + grub_efi_vendor_messaging_device_path_t;
24679 +/* Media Device Path. */
24680 +#define GRUB_EFI_MEDIA_DEVICE_PATH_TYPE 4
24682 +#define GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE 1
24684 +struct grub_efi_hard_drive_device_path
24686 + grub_efi_device_path_t header;
24687 + grub_efi_uint32_t partition_number;
24688 + grub_efi_lba_t partition_start;
24689 + grub_efi_lba_t partition_size;
24690 + grub_efi_uint8_t partition_signature[16];
24691 + grub_efi_uint8_t mbr_type;
24692 + grub_efi_uint8_t signature_type;
24694 +typedef struct grub_efi_hard_drive_device_path
24695 + grub_efi_hard_drive_device_path_t;
24697 +#define GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE 2
24699 +struct grub_efi_cdrom_device_path
24701 + grub_efi_device_path_t header;
24702 + grub_efi_uint32_t boot_entry;
24703 + grub_efi_lba_t partition_start;
24704 + grub_efi_lba_t partition_size;
24706 +typedef struct grub_efi_cdrom_device_path grub_efi_cdrom_device_path_t;
24708 +#define GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE 3
24710 +struct grub_efi_vendor_media_device_path
24712 + grub_efi_device_path_t header;
24713 + grub_efi_guid_t vendor_guid;
24714 + grub_efi_uint8_t vendor_defined_data[0];
24716 +typedef struct grub_efi_vendor_media_device_path
24717 + grub_efi_vendor_media_device_path_t;
24719 +#define GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE 4
24721 +struct grub_efi_file_path_device_path
24723 + grub_efi_device_path_t header;
24724 + grub_efi_char16_t path_name[0];
24726 +typedef struct grub_efi_file_path_device_path
24727 + grub_efi_file_path_device_path_t;
24729 +#define GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE 5
24731 +struct grub_efi_protocol_device_path
24733 + grub_efi_device_path_t header;
24734 + grub_efi_guid_t guid;
24736 +typedef struct grub_efi_protocol_device_path grub_efi_protocol_device_path_t;
24738 +/* BIOS Boot Specification Device Path. */
24739 +#define GRUB_EFI_BIOS_DEVICE_PATH_TYPE 5
24741 +#define GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE 1
24743 +struct grub_efi_bios_device_path
24745 + grub_efi_device_path_t header;
24746 + grub_efi_uint16_t device_type;
24747 + grub_efi_uint16_t status_flags;
24748 + char description[0];
24750 +typedef struct grub_efi_bios_device_path grub_efi_bios_device_path_t;
24752 +struct grub_efi_device_path_from_text
24754 + grub_efi_device_path_t * (*convert_text_to_device_node) (const grub_efi_char16_t *text_device_node);
24755 + grub_efi_device_path_t * (*convert_text_to_device_path) (const grub_efi_char16_t *text_device_path);
24757 +typedef struct grub_efi_device_path_from_text grub_efi_device_path_from_text_t;
24759 +struct grub_efi_open_protocol_information_entry
24761 + grub_efi_handle_t agent_handle;
24762 + grub_efi_handle_t controller_handle;
24763 + grub_efi_uint32_t attributes;
24764 + grub_efi_uint32_t open_count;
24766 +typedef struct grub_efi_open_protocol_information_entry
24767 + grub_efi_open_protocol_information_entry_t;
24769 +struct grub_efi_time
24771 + grub_efi_uint16_t year;
24772 + grub_efi_uint8_t month;
24773 + grub_efi_uint8_t day;
24774 + grub_efi_uint8_t hour;
24775 + grub_efi_uint8_t minute;
24776 + grub_efi_uint8_t second;
24777 + grub_efi_uint8_t pad1;
24778 + grub_efi_uint32_t nanosecond;
24779 + grub_efi_int16_t time_zone;
24780 + grub_efi_uint8_t daylight;
24781 + grub_efi_uint8_t pad2;
24783 +typedef struct grub_efi_time grub_efi_time_t;
24785 +struct grub_efi_time_capabilities
24787 + grub_efi_uint32_t resolution;
24788 + grub_efi_uint32_t accuracy;
24789 + grub_efi_boolean_t sets_to_zero;
24791 +typedef struct grub_efi_time_capabilities grub_efi_time_capabilities_t;
24793 +struct grub_efi_input_key
24795 + grub_efi_uint16_t scan_code;
24796 + grub_efi_char16_t unicode_char;
24798 +typedef struct grub_efi_input_key grub_efi_input_key_t;
24800 +struct grub_efi_simple_text_output_mode
24802 + grub_efi_int32_t max_mode;
24803 + grub_efi_int32_t mode;
24804 + grub_efi_int32_t attribute;
24805 + grub_efi_int32_t cursor_column;
24806 + grub_efi_int32_t cursor_row;
24807 + grub_efi_boolean_t cursor_visible;
24809 +typedef struct grub_efi_simple_text_output_mode
24810 + grub_efi_simple_text_output_mode_t;
24813 +struct grub_efi_table_header
24815 + grub_efi_uint64_t signature;
24816 + grub_efi_uint32_t revision;
24817 + grub_efi_uint32_t header_size;
24818 + grub_efi_uint32_t crc32;
24819 + grub_efi_uint32_t reserved;
24821 +typedef struct grub_efi_table_header grub_efi_table_header_t;
24823 +struct grub_efi_boot_services
24825 + grub_efi_table_header_t hdr;
24827 + grub_efi_tpl_t (*raise_tpl) (grub_efi_tpl_t new_tpl);
24829 + void (*restore_tpl) (grub_efi_tpl_t old_tpl);
24831 + grub_efi_status_t
24832 + (*allocate_pages) (grub_efi_allocate_type_t type,
24833 + grub_efi_memory_type_t memory_type,
24834 + grub_efi_uintn_t pages,
24835 + grub_efi_physical_address_t * memory);
24837 + grub_efi_status_t
24838 + (*free_pages) (grub_efi_physical_address_t memory,
24839 + grub_efi_uintn_t pages);
24841 + grub_efi_status_t
24842 + (*get_memory_map) (grub_efi_uintn_t * memory_map_size,
24843 + grub_efi_memory_descriptor_t * memory_map,
24844 + grub_efi_uintn_t * map_key,
24845 + grub_efi_uintn_t * descriptor_size,
24846 + grub_efi_uint32_t * descriptor_version);
24848 + grub_efi_status_t
24849 + (*allocate_pool) (grub_efi_memory_type_t pool_type,
24850 + grub_efi_uintn_t size, void **buffer);
24852 + grub_efi_status_t (*free_pool) (void *buffer);
24854 + grub_efi_status_t
24855 + (*create_event) (grub_efi_uint32_t type,
24856 + grub_efi_tpl_t notify_tpl,
24857 + void (*notify_function) (grub_efi_event_t event,
24859 + void *notify_context, grub_efi_event_t * event);
24861 + grub_efi_status_t
24862 + (*set_timer) (grub_efi_event_t event,
24863 + grub_efi_timer_delay_t type,
24864 + grub_efi_uint64_t trigger_time);
24866 + grub_efi_status_t
24867 + (*wait_for_event) (grub_efi_uintn_t num_events,
24868 + grub_efi_event_t * event, grub_efi_uintn_t * index);
24870 + grub_efi_status_t (*signal_event) (grub_efi_event_t event);
24872 + grub_efi_status_t (*close_event) (grub_efi_event_t event);
24874 + grub_efi_status_t (*check_event) (grub_efi_event_t event);
24876 + grub_efi_status_t
24877 + (*install_protocol_interface) (grub_efi_handle_t * handle,
24878 + grub_efi_guid_t * protocol,
24879 + grub_efi_interface_type_t interface_type,
24880 + void *interface);
24882 + grub_efi_status_t
24883 + (*reinstall_protocol_interface) (grub_efi_handle_t handle,
24884 + grub_efi_guid_t * protocol,
24885 + void *old_interface, void *new_inteface);
24887 + grub_efi_status_t
24888 + (*uninstall_protocol_interface) (grub_efi_handle_t handle,
24889 + grub_efi_guid_t * protocol,
24890 + void *interface);
24892 + grub_efi_status_t
24893 + (*handle_protocol) (grub_efi_handle_t handle,
24894 + grub_efi_guid_t * protocol, void **interface);
24898 + grub_efi_status_t
24899 + (*register_protocol_notify) (grub_efi_guid_t * protocol,
24900 + grub_efi_event_t event, void **registration);
24902 + grub_efi_status_t
24903 + (*locate_handle) (grub_efi_locate_search_type_t search_type,
24904 + grub_efi_guid_t * protocol,
24905 + void *search_key,
24906 + grub_efi_uintn_t * buffer_size,
24907 + grub_efi_handle_t * buffer);
24909 + grub_efi_status_t
24910 + (*locate_device_path) (grub_efi_guid_t * protocol,
24911 + grub_efi_device_path_t ** device_path,
24912 + grub_efi_handle_t * device);
24914 + grub_efi_status_t
24915 + (*install_configuration_table) (grub_efi_guid_t * guid, void *table);
24917 + grub_efi_status_t
24918 + (*load_image) (grub_efi_boolean_t boot_policy,
24919 + grub_efi_handle_t parent_image_handle,
24920 + grub_efi_device_path_t * file_path,
24921 + void *source_buffer,
24922 + grub_efi_uintn_t source_size,
24923 + grub_efi_handle_t * image_handle);
24925 + grub_efi_status_t
24926 + (*start_image) (grub_efi_handle_t image_handle,
24927 + grub_efi_uintn_t * exit_data_size,
24928 + grub_efi_char16_t ** exit_data);
24930 + grub_efi_status_t
24931 + (*exit) (grub_efi_handle_t image_handle,
24932 + grub_efi_status_t exit_status,
24933 + grub_efi_uintn_t exit_data_size,
24934 + grub_efi_char16_t * exit_data) __attribute__ ((noreturn));
24936 + grub_efi_status_t (*unload_image) (grub_efi_handle_t image_handle);
24938 + grub_efi_status_t
24939 + (*exit_boot_services) (grub_efi_handle_t image_handle,
24940 + grub_efi_uintn_t map_key);
24942 + grub_efi_status_t (*get_next_monotonic_count) (grub_efi_uint64_t * count);
24944 + grub_efi_status_t (*stall) (grub_efi_uintn_t microseconds);
24946 + grub_efi_status_t
24947 + (*set_watchdog_timer) (grub_efi_uintn_t timeout,
24948 + grub_efi_uint64_t watchdog_code,
24949 + grub_efi_uintn_t data_size,
24950 + grub_efi_char16_t * watchdog_data);
24952 + grub_efi_status_t
24953 + (*connect_controller) (grub_efi_handle_t controller_handle,
24954 + grub_efi_handle_t * driver_image_handle,
24955 + grub_efi_device_path_protocol_t *
24956 + remaining_device_path,
24957 + grub_efi_boolean_t recursive);
24959 + grub_efi_status_t
24960 + (*disconnect_controller) (grub_efi_handle_t controller_handle,
24961 + grub_efi_handle_t driver_image_handle,
24962 + grub_efi_handle_t child_handle);
24964 + grub_efi_status_t
24965 + (*open_protocol) (grub_efi_handle_t handle,
24966 + grub_efi_guid_t * protocol,
24967 + void **interface,
24968 + grub_efi_handle_t agent_handle,
24969 + grub_efi_handle_t controller_handle,
24970 + grub_efi_uint32_t attributes);
24972 + grub_efi_status_t
24973 + (*close_protocol) (grub_efi_handle_t handle,
24974 + grub_efi_guid_t * protocol,
24975 + grub_efi_handle_t agent_handle,
24976 + grub_efi_handle_t controller_handle);
24978 + grub_efi_status_t
24979 + (*open_protocol_information) (grub_efi_handle_t handle,
24980 + grub_efi_guid_t * protocol,
24981 + grub_efi_open_protocol_information_entry_t
24983 + grub_efi_uintn_t * entry_count);
24985 + grub_efi_status_t
24986 + (*protocols_per_handle) (grub_efi_handle_t handle,
24987 + grub_efi_guid_t *** protocol_buffer,
24988 + grub_efi_uintn_t * protocol_buffer_count);
24990 + grub_efi_status_t
24991 + (*locate_handle_buffer) (grub_efi_locate_search_type_t search_type,
24992 + grub_efi_guid_t * protocol,
24993 + void *search_key,
24994 + grub_efi_uintn_t * no_handles,
24995 + grub_efi_handle_t ** buffer);
24997 + grub_efi_status_t
24998 + (*locate_protocol) (grub_efi_guid_t * protocol,
24999 + void *registration, void **interface);
25001 + grub_efi_status_t
25002 + (*install_multiple_protocol_interfaces) (grub_efi_handle_t * handle, ...);
25004 + grub_efi_status_t
25005 + (*uninstall_multiple_protocol_interfaces) (grub_efi_handle_t handle, ...);
25007 + grub_efi_status_t
25008 + (*calculate_crc32) (void *data,
25009 + grub_efi_uintn_t data_size,
25010 + grub_efi_uint32_t * crc32);
25012 + void (*copy_mem) (void *destination, void *source, grub_efi_uintn_t length);
25015 + (*set_mem) (void *buffer, grub_efi_uintn_t size, grub_efi_uint8_t value);
25017 +typedef struct grub_efi_boot_services grub_efi_boot_services_t;
25019 +struct grub_efi_runtime_services
25021 + grub_efi_table_header_t hdr;
25023 + grub_efi_status_t
25024 + (*get_time) (grub_efi_time_t * time,
25025 + grub_efi_time_capabilities_t * capabilities);
25027 + grub_efi_status_t (*set_time) (grub_efi_time_t * time);
25029 + grub_efi_status_t
25030 + (*get_wakeup_time) (grub_efi_boolean_t * enabled,
25031 + grub_efi_boolean_t * pending, grub_efi_time_t * time);
25033 + grub_efi_status_t
25034 + (*set_wakeup_time) (grub_efi_boolean_t enabled, grub_efi_time_t * time);
25036 + grub_efi_status_t
25037 + (*set_virtual_address_map) (grub_efi_uintn_t memory_map_size,
25038 + grub_efi_uintn_t descriptor_size,
25039 + grub_efi_uint32_t descriptor_version,
25040 + grub_efi_memory_descriptor_t * virtual_map);
25042 + grub_efi_status_t
25043 + (*convert_pointer) (grub_efi_uintn_t debug_disposition, void **address);
25045 + grub_efi_status_t
25046 + (*get_variable) (grub_efi_char16_t * variable_name,
25047 + grub_efi_guid_t * vendor_guid,
25048 + grub_efi_uint32_t * attributes,
25049 + grub_efi_uintn_t * data_size, void *data);
25051 + grub_efi_status_t
25052 + (*get_next_variable_name) (grub_efi_uintn_t * variable_name_size,
25053 + grub_efi_char16_t * variable_name,
25054 + grub_efi_guid_t * vendor_guid);
25056 + grub_efi_status_t
25057 + (*set_variable) (grub_efi_char16_t * variable_name,
25058 + grub_efi_guid_t * vendor_guid,
25059 + grub_efi_uint32_t attributes,
25060 + grub_efi_uintn_t data_size, void *data);
25062 + grub_efi_status_t
25063 + (*get_next_high_monotonic_count) (grub_efi_uint32_t * high_count);
25066 + (*reset_system) (grub_efi_reset_type_t reset_type,
25067 + grub_efi_status_t reset_status,
25068 + grub_efi_uintn_t data_size,
25069 + grub_efi_char16_t * reset_data);
25071 +typedef struct grub_efi_runtime_services grub_efi_runtime_services_t;
25073 +struct grub_efi_configuration_table
25075 + grub_efi_guid_t vendor_guid;
25076 + void *vendor_table;
25078 +typedef struct grub_efi_configuration_table grub_efi_configuration_table_t;
25080 +struct grub_efi_simple_input_interface
25082 + grub_efi_status_t
25083 + (*reset) (struct grub_efi_simple_input_interface * this,
25084 + grub_efi_boolean_t extended_verification);
25086 + grub_efi_status_t
25087 + (*read_key_stroke) (struct grub_efi_simple_input_interface * this,
25088 + grub_efi_input_key_t * key);
25090 + grub_efi_event_t wait_for_key;
25092 +typedef struct grub_efi_simple_input_interface
25093 + grub_efi_simple_input_interface_t;
25095 +struct grub_efi_simple_text_output_interface
25097 + grub_efi_status_t
25098 + (*reset) (struct grub_efi_simple_text_output_interface * this,
25099 + grub_efi_boolean_t extended_verification);
25101 + grub_efi_status_t
25102 + (*output_string) (struct grub_efi_simple_text_output_interface * this,
25103 + grub_efi_char16_t * string);
25105 + grub_efi_status_t
25106 + (*test_string) (struct grub_efi_simple_text_output_interface * this,
25107 + grub_efi_char16_t * string);
25109 + grub_efi_status_t
25110 + (*query_mode) (struct grub_efi_simple_text_output_interface * this,
25111 + grub_efi_uintn_t mode_number,
25112 + grub_efi_uintn_t * columns, grub_efi_uintn_t * rows);
25114 + grub_efi_status_t
25115 + (*set_mode) (struct grub_efi_simple_text_output_interface * this,
25116 + grub_efi_uintn_t mode_number);
25118 + grub_efi_status_t
25119 + (*set_attributes) (struct grub_efi_simple_text_output_interface * this,
25120 + grub_efi_uintn_t attribute);
25122 + grub_efi_status_t
25123 + (*clear_screen) (struct grub_efi_simple_text_output_interface * this);
25125 + grub_efi_status_t
25126 + (*set_cursor_position) (struct grub_efi_simple_text_output_interface *
25127 + this, grub_efi_uintn_t column,
25128 + grub_efi_uintn_t row);
25130 + grub_efi_status_t
25131 + (*enable_cursor) (struct grub_efi_simple_text_output_interface * this,
25132 + grub_efi_boolean_t visible);
25134 + grub_efi_simple_text_output_mode_t *mode;
25136 +typedef struct grub_efi_simple_text_output_interface
25137 + grub_efi_simple_text_output_interface_t;
25139 +#define GRUB_EFI_BLACK 0x00
25140 +#define GRUB_EFI_BLUE 0x01
25141 +#define GRUB_EFI_GREEN 0x02
25142 +#define GRUB_EFI_CYAN 0x03
25143 +#define GRUB_EFI_RED 0x04
25144 +#define GRUB_EFI_MAGENTA 0x05
25145 +#define GRUB_EFI_BROWN 0x06
25146 +#define GRUB_EFI_LIGHTGRAY 0x07
25147 +#define GRUB_EFI_BRIGHT 0x08
25148 +#define GRUB_EFI_DARKGRAY 0x08
25149 +#define GRUB_EFI_LIGHTBLUE 0x09
25150 +#define GRUB_EFI_LIGHTGREEN 0x0A
25151 +#define GRUB_EFI_LIGHTCYAN 0x0B
25152 +#define GRUB_EFI_LIGHTRED 0x0C
25153 +#define GRUB_EFI_LIGHTMAGENTA 0x0D
25154 +#define GRUB_EFI_YELLOW 0x0E
25155 +#define GRUB_EFI_WHITE 0x0F
25157 +#define GRUB_EFI_BACKGROUND_BLACK 0x00
25158 +#define GRUB_EFI_BACKGROUND_BLUE 0x10
25159 +#define GRUB_EFI_BACKGROUND_GREEN 0x20
25160 +#define GRUB_EFI_BACKGROUND_CYAN 0x30
25161 +#define GRUB_EFI_BACKGROUND_RED 0x40
25162 +#define GRUB_EFI_BACKGROUND_MAGENTA 0x50
25163 +#define GRUB_EFI_BACKGROUND_BROWN 0x60
25164 +#define GRUB_EFI_BACKGROUND_LIGHTGRAY 0x70
25166 +#define GRUB_EFI_TEXT_ATTR(fg, bg) ((fg) | ((bg)))
25168 +struct grub_efi_system_table
25170 + grub_efi_table_header_t hdr;
25171 + grub_efi_char16_t *firmware_vendor;
25172 + grub_efi_uint32_t firmware_revision;
25173 + grub_efi_handle_t console_in_handler;
25174 + grub_efi_simple_input_interface_t *con_in;
25175 + grub_efi_handle_t console_out_handler;
25176 + grub_efi_simple_text_output_interface_t *con_out;
25177 + grub_efi_handle_t standard_error_handle;
25178 + grub_efi_simple_text_output_interface_t *std_err;
25179 + grub_efi_runtime_services_t *runtime_services;
25180 + grub_efi_boot_services_t *boot_services;
25181 + grub_efi_uintn_t num_table_entries;
25182 + grub_efi_configuration_table_t *configuration_table;
25184 +typedef struct grub_efi_system_table grub_efi_system_table_t;
25186 +struct grub_efi_loaded_image
25188 + grub_efi_uint32_t revision;
25189 + grub_efi_handle_t parent_handle;
25190 + grub_efi_system_table_t *system_table;
25192 + grub_efi_handle_t device_handle;
25193 + grub_efi_device_path_t *file_path;
25196 + grub_efi_uint32_t load_options_size;
25197 + void *load_options;
25199 + void *image_base;
25200 + grub_efi_uint64_t image_size;
25201 + grub_efi_memory_type_t image_code_type;
25202 + grub_efi_memory_type_t image_data_type;
25204 + grub_efi_status_t (*unload) (grub_efi_handle_t image_handle);
25206 +typedef struct grub_efi_loaded_image grub_efi_loaded_image_t;
25208 +struct grub_efi_disk_io
25210 + grub_efi_uint64_t revision;
25211 + grub_efi_status_t (*read) (struct grub_efi_disk_io * this,
25212 + grub_efi_uint32_t media_id,
25213 + grub_efi_uint64_t offset,
25214 + grub_efi_uintn_t buffer_size, void *buffer);
25215 + grub_efi_status_t (*write) (struct grub_efi_disk_io * this,
25216 + grub_efi_uint32_t media_id,
25217 + grub_efi_uint64_t offset,
25218 + grub_efi_uintn_t buffer_size, void *buffer);
25220 +typedef struct grub_efi_disk_io grub_efi_disk_io_t;
25222 +struct grub_efi_block_io_media
25224 + grub_efi_uint32_t media_id;
25225 + grub_efi_boolean_t removable_media;
25226 + grub_efi_boolean_t media_present;
25227 + grub_efi_boolean_t logical_partition;
25228 + grub_efi_boolean_t read_only;
25229 + grub_efi_boolean_t write_caching;
25230 + grub_efi_uint8_t pad[3];
25231 + grub_efi_uint32_t block_size;
25232 + grub_efi_uint32_t io_align;
25233 + grub_efi_uint8_t pad2[4];
25234 + grub_efi_lba_t last_block;
25236 +typedef struct grub_efi_block_io_media grub_efi_block_io_media_t;
25238 +struct grub_efi_block_io
25240 + grub_efi_uint64_t revision;
25241 + grub_efi_block_io_media_t *media;
25242 + grub_efi_status_t (*reset) (struct grub_efi_block_io * this,
25243 + grub_efi_boolean_t extended_verification);
25244 + grub_efi_status_t (*read_blocks) (struct grub_efi_block_io * this,
25245 + grub_efi_uint32_t media_id,
25246 + grub_efi_lba_t lba,
25247 + grub_efi_uintn_t buffer_size,
25249 + grub_efi_status_t (*write_blocks) (struct grub_efi_block_io * this,
25250 + grub_efi_uint32_t media_id,
25251 + grub_efi_lba_t lba,
25252 + grub_efi_uintn_t buffer_size,
25254 + grub_efi_status_t (*flush_blocks) (struct grub_efi_block_io * this);
25256 +typedef struct grub_efi_block_io grub_efi_block_io_t;
25258 +struct grub_efi_pixel_bitmask
25260 + grub_efi_uint32_t red_mask;
25261 + grub_efi_uint32_t green_mask;
25262 + grub_efi_uint32_t blue_mask;
25263 + grub_efi_uint32_t reserved_mask;
25265 +typedef struct grub_efi_pixel_bitmask grub_efi_pixel_bitmask_t;
25267 +enum grub_efi_graphics_pixel_format
25269 + GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR,
25270 + GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR,
25271 + GRUB_EFI_PIXEL_BIT_MASK,
25272 + GRUB_EFI_PIXEL_BLT_ONLY,
25274 +typedef enum grub_efi_graphics_pixel_format grub_efi_graphics_pixel_format_t;
25276 +struct grub_efi_graphics_output_mode_information
25278 + grub_efi_uint32_t version;
25279 + grub_efi_uint32_t horizontal_resolution;
25280 + grub_efi_uint32_t vertical_resolution;
25281 + grub_efi_graphics_pixel_format_t pixel_format;
25282 + grub_efi_pixel_bitmask_t pixel_information;
25283 + grub_efi_uint32_t pixels_per_scan_line;
25285 +typedef struct grub_efi_graphics_output_mode_information
25286 + grub_efi_graphics_output_mode_information_t;
25288 +struct grub_efi_graphics_output_bgrr_pixel
25290 + grub_efi_uint8_t blue;
25291 + grub_efi_uint8_t green;
25292 + grub_efi_uint8_t red;
25293 + grub_efi_uint8_t reserved;
25295 +typedef struct grub_efi_graphics_output_bgrr_pixel
25296 + grub_efi_graphics_output_bgrr_pixel_t;
25297 +typedef struct grub_efi_graphics_output_bgrr_pixel
25298 + grub_efi_graphics_output_blt_pixel_t;
25299 +typedef struct grub_efi_graphics_output_bgrr_pixel
25300 + grub_efi_uga_pixel_t;
25302 +struct grub_efi_graphics_output_rgbr_pixel
25304 + grub_efi_uint8_t red;
25305 + grub_efi_uint8_t green;
25306 + grub_efi_uint8_t blue;
25307 + grub_efi_uint8_t reserved;
25309 +typedef struct grub_efi_graphics_output_rgbr_pixel
25310 + grub_efi_graphics_output_rgbr_pixel_t;
25312 +union grub_efi_graphics_output_pixel
25314 + grub_efi_graphics_output_rgbr_pixel_t rgbr;
25315 + grub_efi_graphics_output_bgrr_pixel_t bgrr;
25316 + grub_efi_uint32_t raw;
25318 +typedef union grub_efi_graphics_output_pixel
25319 + grub_efi_graphics_output_pixel_t;
25321 +enum grub_efi_graphics_output_blt_operation
25323 + GRUB_EFI_BLT_VIDEO_FILL,
25324 + GRUB_EFI_BLT_VIDEO_TO_BLT_BUFFER,
25325 + GRUB_EFI_BLT_BUFFER_TO_VIDEO,
25326 + GRUB_EFI_BLT_VIDEO_TO_VIDEO,
25328 +typedef enum grub_efi_graphics_output_blt_operation
25329 + grub_efi_graphics_output_blt_operation_t;
25331 +struct grub_efi_graphics_output_mode
25333 + grub_efi_uint32_t max_mode;
25334 + grub_efi_uint32_t mode;
25335 + grub_efi_graphics_output_mode_information_t *info;
25336 + grub_efi_uintn_t size_of_info;
25337 + grub_efi_physical_address_t frame_buffer_base;
25338 + grub_efi_uintn_t frame_buffer_size;
25340 +typedef struct grub_efi_graphics_output_mode grub_efi_graphics_output_mode_t;
25342 +struct grub_efi_graphics_output
25344 + grub_efi_status_t (*query_mode) (struct grub_efi_graphics_output * this,
25345 + grub_efi_uint32_t mode_number,
25346 + grub_efi_uintn_t * size_of_info,
25347 + grub_efi_graphics_output_mode_information_t
25349 + grub_efi_status_t (*set_mode) (struct grub_efi_graphics_output * this,
25350 + grub_efi_uint32_t mode_number);
25352 + grub_efi_status_t (*blt) (struct grub_efi_graphics_output * this,
25353 + grub_efi_graphics_output_blt_pixel_t * blt_buffer,
25354 + grub_efi_graphics_output_blt_operation_t
25355 + blt_operation, grub_efi_uintn_t src_x,
25356 + grub_efi_uintn_t src_y, grub_efi_uintn_t dest_x,
25357 + grub_efi_uintn_t dest_y, grub_efi_uintn_t width,
25358 + grub_efi_uintn_t height, grub_efi_uintn_t delta);
25359 + grub_efi_graphics_output_mode_t *mode;
25361 +typedef struct grub_efi_graphics_output grub_efi_graphics_output_t;
25365 + EfiUgaVideoToBltBuffer,
25366 + EfiUgaBltBufferToVideo,
25367 + EfiUgaVideoToVideo,
25369 +} grub_efi_uga_blt_operation_t;
25372 + grub_efi_pci_io_width_uint8,
25373 + grub_efi_pci_io_width_uint16,
25374 + grub_efi_pci_io_width_uint32,
25375 + grub_efi_pci_io_width_uint64,
25376 + grub_efi_pci_io_width_fifo_uint8,
25377 + grub_efi_pci_io_width_fifo_uint16,
25378 + grub_efi_pci_io_width_fifo_uint32,
25379 + grub_efi_pci_io_width_fifo_uint64,
25380 + grub_efi_pci_io_width_fill_uint8,
25381 + grub_efi_pci_io_width_fill_uint16,
25382 + grub_efi_pci_io_width_fill_uint32,
25383 + grub_efi_pci_io_width_fill_uint64,
25384 + grub_efi_pci_io_width_maximum
25385 +} grub_efi_pci_io_width;
25387 +struct grub_efi_pci_io;
25391 + grub_efi_status_t(*read) (struct grub_efi_pci_io *this,
25392 + grub_efi_pci_io_width width,
25393 + grub_efi_uint8_t bar_index,
25394 + grub_efi_uint64_t offset,
25395 + grub_efi_uintn_t count,
25397 + grub_efi_status_t(*write) (struct grub_efi_pci_io *this,
25398 + grub_efi_pci_io_width width,
25399 + grub_efi_uint8_t bar_index,
25400 + grub_efi_uint64_t offset,
25401 + grub_efi_uintn_t count,
25403 +} grub_efi_pci_io_access_t;
25407 + grub_efi_status_t( *read) (struct grub_efi_pci_io *this,
25408 + grub_efi_pci_io_width width,
25409 + grub_efi_uint32_t offset,
25410 + grub_efi_uintn_t count,
25412 + grub_efi_status_t( *write) (struct grub_efi_pci_io *this,
25413 + grub_efi_pci_io_width width,
25414 + grub_efi_uint32_t offset,
25415 + grub_efi_uintn_t count,
25417 +} grub_efi_pci_io_config_access_t;
25420 + grub_efi_pci_io_operation_bus_masterread,
25421 + grub_efi_pci_io_operation_bus_masterwrite,
25422 + grub_efi_pci_io_operation_bus_master_common_buffer,
25423 + grub_efi_pci_io_operation_maximum
25424 +} grub_efi_pci_io_operation_t;
25426 +#define GRUB_EFI_PCI_IO_ATTRIBUTE_ISA_IO 0x0002
25427 +#define GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_PALETTE_IO 0x0004
25428 +#define GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_MEMORY 0x0008
25429 +#define GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_IO 0x0010
25430 +#define GRUB_EFI_PCI_IO_ATTRIBUTE_IDE_PRIMARY_IO 0x0020
25431 +#define GRUB_EFI_PCI_IO_ATTRIBUTE_IDE_SECONDARY_IO 0x0040
25432 +#define GRUB_EFI_PCI_IO_ATTRIBUTE_MEMORY_WRITE_COMBINE 0x0080
25433 +#define GRUB_EFI_PCI_IO_ATTRIBUTE_IO 0x0100
25434 +#define GRUB_EFI_PCI_IO_ATTRIBUTE_MEMORY 0x0200
25435 +#define GRUB_EFI_PCI_IO_ATTRIBUTE_BUS_MASTER 0x0400
25436 +#define GRUB_EFI_PCI_IO_ATTRIBUTE_MEMORY_CACHED 0x0800
25437 +#define GRUB_EFI_PCI_IO_ATTRIBUTE_MEMORY_DISABLE 0x1000
25438 +#define GRUB_EFI_PCI_IO_ATTRIBUTE_EMBEDDED_DEVICE 0x2000
25439 +#define GRUB_EFI_PCI_IO_ATTRIBUTE_EMBEDDED_ROM 0x4000
25440 +#define GRUB_EFI_PCI_IO_ATTRIBUTE_DUAL_ADDRESS_CYCLE 0x8000
25441 +#define GRUB_EFI_PCI_IO_ATTRIBUTE_ISA_IO_16 0x10000
25442 +#define GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_PALETTE_IO_16 0x20000
25443 +#define GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_IO_16 0x40000
25446 + grub_efi_pci_io_attribute_operation_get,
25447 + grub_efi_pci_io_attribute_operation_set,
25448 + grub_efi_pci_io_attribute_operation_enable,
25449 + grub_efi_pci_io_attribute_operation_disable,
25450 + grub_efi_pci_io_attribute_operation_supported,
25451 + grub_efi_pci_io_attribute_operation_maximum
25452 +} grub_efi_pci_io_attribute_operation_t;
25454 +struct grub_efi_pci_io {
25455 + grub_efi_status_t (*poll_mem) (struct grub_efi_pci_io *this,
25456 + grub_efi_pci_io_width width,
25457 + grub_efi_uint8_t bar_ndex,
25458 + grub_efi_uint64_t offset,
25459 + grub_efi_uint64_t mask,
25460 + grub_efi_uint64_t value,
25461 + grub_efi_uint64_t delay,
25462 + grub_efi_uint64_t *result);
25463 + grub_efi_status_t (*poll_io) (struct grub_efi_pci_io *this,
25464 + grub_efi_pci_io_width Width,
25465 + grub_efi_uint8_t bar_index,
25466 + grub_efi_uint64_t offset,
25467 + grub_efi_uint64_t mask,
25468 + grub_efi_uint64_t value,
25469 + grub_efi_uint64_t delay,
25470 + grub_efi_uint64_t *result);
25471 + grub_efi_pci_io_access_t mem;
25472 + grub_efi_pci_io_access_t io;
25473 + grub_efi_pci_io_config_access_t pci;
25474 + grub_efi_status_t (*copy_mem) (struct grub_efi_pci_io *this,
25475 + grub_efi_pci_io_width width,
25476 + grub_efi_uint8_t dest_bar_index,
25477 + grub_efi_uint64_t dest_offset,
25478 + grub_efi_uint8_t src_bar_index,
25479 + grub_efi_uint64_t src_offset,
25480 + grub_efi_uintn_t count);
25481 + grub_efi_status_t (*map) ( struct grub_efi_pci_io *this,
25482 + grub_efi_pci_io_operation_t operation,
25483 + void *host_address,
25484 + grub_efi_uintn_t *number_of_bytes,
25485 + grub_efi_uint64_t *device_address,
25487 + grub_efi_status_t (*unmap) (struct grub_efi_pci_io *this,
25489 + grub_efi_status_t (*allocate_buffer) (struct grub_efi_pci_io *this,
25490 + grub_efi_allocate_type_t type,
25491 + grub_efi_memory_type_t memory_type,
25492 + grub_efi_uintn_t pages,
25493 + void **host_address,
25494 + grub_efi_uint64_t attributes);
25495 + grub_efi_status_t (*free_buffer) (struct grub_efi_pci_io *this,
25496 + grub_efi_allocate_type_t type,
25497 + grub_efi_memory_type_t memory_type,
25498 + grub_efi_uintn_t pages,
25499 + void **host_address,
25500 + grub_efi_uint64_t attributes);
25501 + grub_efi_status_t (*flush) (struct grub_efi_pci_io *this);
25502 + grub_efi_status_t (*get_location) (struct grub_efi_pci_io *this,
25503 + grub_efi_uintn_t *segment_number,
25504 + grub_efi_uintn_t *bus_number,
25505 + grub_efi_uintn_t *device_number,
25506 + grub_efi_uintn_t *function_number);
25507 + grub_efi_status_t (*attributes) (struct grub_efi_pci_io *this,
25508 + grub_efi_pci_io_attribute_operation_t operation,
25509 + grub_efi_uint64_t attributes,
25510 + grub_efi_uint64_t *result);
25511 + grub_efi_status_t (*get_bar_attributes) (struct grub_efi_pci_io *this,
25512 + grub_efi_uint8_t bar_index,
25513 + grub_efi_uint64_t *supports,
25514 + void **resources);
25515 + grub_efi_status_t (*set_bar_attributes) (struct grub_efi_pci_io *this,
25516 + grub_efi_uint64_t attributes,
25517 + grub_efi_uint8_t bar_index,
25518 + grub_efi_uint64_t *offset,
25519 + grub_efi_uint64_t *length);
25520 + grub_efi_uint64_t rom_size;
25523 +typedef struct grub_efi_pci_io grub_efi_pci_io_t;
25525 +struct grub_efi_pci_root_io;
25529 + grub_efi_status_t(*read) (struct grub_efi_pci_root_io *this,
25530 + grub_efi_pci_io_width width,
25531 + grub_efi_uint64_t address,
25532 + grub_efi_uintn_t count,
25534 + grub_efi_status_t(*write) (struct grub_efi_pci_root_io *this,
25535 + grub_efi_pci_io_width width,
25536 + grub_efi_uint64_t address,
25537 + grub_efi_uintn_t count,
25539 +} grub_efi_pci_root_io_access_t;
25542 + grub_efi_pci_root_io_operation_bus_master_read,
25543 + grub_efi_pci_root_io_operation_bus_master_write,
25544 + grub_efi_pci_root_io_operation_bus_master_common_buffer,
25545 + grub_efi_pci_root_io_operation_bus_master_read_64,
25546 + grub_efi_pci_root_io_operation_bus_master_write_64,
25547 + grub_efi_pci_root_io_operation_bus_master_common_buffer_64,
25548 + grub_efi_pci_root_io_operation_maximum
25549 +} grub_efi_pci_root_io_operation_t;
25551 +struct grub_efi_pci_root_io {
25552 + grub_efi_handle_t parent;
25553 + grub_efi_status_t (*poll_mem) (struct grub_efi_pci_root_io *this,
25554 + grub_efi_pci_io_width width,
25555 + grub_efi_uint64_t address,
25556 + grub_efi_uint64_t mask,
25557 + grub_efi_uint64_t value,
25558 + grub_efi_uint64_t delay,
25559 + grub_efi_uint64_t *result);
25560 + grub_efi_status_t (*poll_io) (struct grub_efi_pci_root_io *this,
25561 + grub_efi_pci_io_width Width,
25562 + grub_efi_uint64_t address,
25563 + grub_efi_uint64_t mask,
25564 + grub_efi_uint64_t value,
25565 + grub_efi_uint64_t delay,
25566 + grub_efi_uint64_t *result);
25567 + grub_efi_pci_root_io_access_t mem;
25568 + grub_efi_pci_root_io_access_t io;
25569 + grub_efi_pci_root_io_access_t pci;
25570 + grub_efi_status_t (*copy_mem) (struct grub_efi_pci_root_io *this,
25571 + grub_efi_pci_io_width width,
25572 + grub_efi_uint64_t dest_offset,
25573 + grub_efi_uint64_t src_offset,
25574 + grub_efi_uintn_t count);
25575 + grub_efi_status_t (*map) ( struct grub_efi_pci_root_io *this,
25576 + grub_efi_pci_root_io_operation_t operation,
25577 + void *host_address,
25578 + grub_efi_uintn_t *number_of_bytes,
25579 + grub_efi_uint64_t *device_address,
25581 + grub_efi_status_t (*unmap) (struct grub_efi_pci_root_io *this,
25583 + grub_efi_status_t (*allocate_buffer) (struct grub_efi_pci_root_io *this,
25584 + grub_efi_allocate_type_t type,
25585 + grub_efi_memory_type_t memory_type,
25586 + grub_efi_uintn_t pages,
25587 + void **host_address,
25588 + grub_efi_uint64_t attributes);
25589 + grub_efi_status_t (*free_buffer) (struct grub_efi_pci_root_io *this,
25590 + grub_efi_uintn_t pages,
25591 + void **host_address);
25592 + grub_efi_status_t (*flush) (struct grub_efi_pci_root_io *this);
25593 + grub_efi_status_t (*get_attributes) (struct grub_efi_pci_root_io *this,
25594 + grub_efi_uint64_t *supports,
25595 + void **resources);
25596 + grub_efi_status_t (*set_attributes) (struct grub_efi_pci_root_io *this,
25597 + grub_efi_uint64_t attributes,
25598 + grub_efi_uint64_t *offset,
25599 + grub_efi_uint64_t *length);
25600 + grub_efi_status_t (*configuration) (struct grub_efi_pci_root_io *this,
25601 + void **resources);
25604 +typedef struct grub_efi_pci_root_io grub_efi_pci_root_io_t;
25606 +struct grub_efi_uga_draw
25608 + grub_efi_status_t (*get_mode) (struct grub_efi_uga_draw * this,
25609 + grub_efi_uint32_t *horizontal_resolution,
25610 + grub_efi_uint32_t *vertical_resolution,
25611 + grub_efi_uint32_t *color_depth,
25612 + grub_efi_uint32_t *refresh_rate);
25613 + grub_efi_status_t (*set_mode) (struct grub_efi_uga_draw * this,
25614 + grub_efi_uint32_t horizontal_resolution,
25615 + grub_efi_uint32_t vertical_resolution,
25616 + grub_efi_uint32_t color_depth,
25617 + grub_efi_uint32_t refresh_rate);
25618 + grub_efi_status_t (*blt) (struct grub_efi_uga_draw * this,
25619 + grub_efi_uga_pixel_t *blt_buffer,
25620 + grub_efi_uga_blt_operation_t blt_operation,
25621 + grub_efi_uintn_t source_x,
25622 + grub_efi_uintn_t source_y,
25623 + grub_efi_uintn_t destination_x,
25624 + grub_efi_uintn_t destination_y,
25625 + grub_efi_uintn_t width,
25626 + grub_efi_uintn_t height,
25627 + grub_efi_uintn_t delta);
25629 +typedef struct grub_efi_uga_draw grub_efi_uga_draw_t;
25631 +typedef grub_uint32_t grub_uga_status_t;
25634 + UgaDtParentBus = 1,
25635 + UgaDtGraphicsController,
25636 + UgaDtOutputController,
25639 +} grub_uga_device_type_t;
25641 +typedef grub_efi_uint32_t grub_uga_device_id_t;
25643 +struct grub_uga_device_data {
25644 + grub_uga_device_type_t device_type;
25645 + grub_uga_device_id_t device_id;
25646 + grub_efi_uint32_t device_context_size;
25647 + grub_efi_uint32_t shared_context_size;
25649 +typedef struct grub_uga_device_data grub_uga_device_data_t;
25651 +struct grub_uga_device {
25652 + void *device_context;
25653 + void *shared_context;
25654 + void *runtime_context;
25655 + struct grub_uga_device *parent_device;
25656 + void *bus_io_services;
25657 + void *stdio_services;
25658 + grub_uga_device_data_t device_data;
25660 +typedef struct grub_uga_device grub_uga_device_t;
25663 + UgaIoGetVersion = 1,
25664 + UgaIoGetChildDevice,
25665 + UgaIoStartDevice,
25667 + UgaIoFlushDevice,
25668 + UgaIoResetDevice,
25669 + UgaIoGetDeviceState,
25670 + UgaIoSetDeviceState,
25671 + UgaIoSetPowerState,
25672 + UgaIoGetMemoryConfiguration,
25673 + UgaIoSetVideoMode,
25674 + UgaIoCopyRectangle,
25675 + UgaIoGetEdidSegment,
25676 + UgaIoDeviceChannelOpen,
25677 + UgaIoDeviceChannelClose,
25678 + UgaIoDeviceChannelRead,
25679 + UgaIoDeviceChannelWrite,
25680 + UgaIoGetPersistentDataSize,
25681 + UgaIoGetPersistentData,
25682 + UgaIoSetPersistentData,
25683 + UgaIoGetDevicePropertySize,
25684 + UgaIoGetDeviceProperty,
25685 + UgaIoBtPrivateInterface
25686 +} grub_uga_io_request_code_t;
25688 +struct grub_uga_io_request {
25689 + grub_uga_io_request_code_t io_request_code;
25691 + grub_efi_uint64_t in_buffer_size;
25692 + grub_efi_uint64_t bytes_returned;
25694 +typedef struct grub_uga_io_request grub_uga_io_request_t;
25696 +struct grub_efi_uga_io
25698 + grub_efi_status_t (*create_device) (struct grub_efi_uga_io * this,
25699 + grub_uga_device_t *parent_device,
25700 + grub_uga_device_data_t *device_data,
25701 + void *runtime_context,
25702 + grub_uga_device_t **device);
25703 + grub_efi_status_t (*delete_device) (struct grub_efi_uga_io * this,
25704 + grub_uga_device_t *device);
25705 + grub_uga_status_t (*dispatch_service) (grub_uga_device_t *device,
25706 + grub_uga_io_request_t *io_request);
25708 +typedef struct grub_efi_uga_io grub_efi_uga_io_t;
25710 +/* XXX PJFIX add uga driver handoff stuff */
25712 +// File Open Modes
25713 +#define GRUB_EFI_FILE_MODE_READ 0x0000000000000001ULL
25714 +#define GRUB_EFI_FILE_MODE_WRITE 0x0000000000000002ULL
25715 +#define GRUB_EFI_FILE_MODE_CREATE 0x8000000000000000ULL
25717 +// File Attributes
25718 +#define GRUB_EFI_FILE_READ_ONLY 0x0000000000000001ULL
25719 +#define GRUB_EFI_FILE_HIDDEN 0x0000000000000002ULL
25720 +#define GRUB_EFI_FILE_SYSTEM 0x0000000000000004ULL
25721 +#define GRUB_EFI_FILE_RESERVED 0x0000000000000008ULL
25722 +#define GRUB_EFI_FILE_DIRECTORY 0x0000000000000010ULL
25723 +#define GRUB_EFI_FILE_ARCHIVE 0x0000000000000020ULL
25724 +#define GRUB_EFI_FILE_VALID_ATTR 0x0000000000000037ULL
25726 +struct grub_efi_file
25728 + grub_efi_uint64_t revision;
25729 + grub_efi_status_t (*open) (struct grub_efi_file * this,
25730 + struct grub_efi_file ** new_handle,
25731 + grub_efi_char16_t * file_name,
25732 + grub_efi_uint64_t open_mode,
25733 + grub_efi_uint64_t attributes);
25734 + grub_efi_status_t (*close) (struct grub_efi_file * this);
25735 + grub_efi_status_t (*delete) (struct grub_efi_file * this);
25736 + grub_efi_status_t (*read) (struct grub_efi_file * this,
25737 + grub_efi_uintn_t * buffer_size,
25739 + grub_efi_status_t (*write) (struct grub_efi_file * this,
25740 + grub_efi_uintn_t * buffer_size,
25742 + grub_efi_status_t (*get_position) (struct grub_efi_file * this,
25743 + grub_efi_uint64_t * position);
25744 + grub_efi_status_t (*set_position) (struct grub_efi_file * this,
25745 + grub_efi_uint64_t position);
25746 + grub_efi_status_t (*get_info) (struct grub_efi_file * this,
25747 + grub_efi_guid_t * information_type,
25748 + grub_efi_uintn_t * buffer_size,
25750 + grub_efi_status_t (*set_info) (struct grub_efi_file * this,
25751 + grub_efi_guid_t * information_type,
25752 + grub_efi_uintn_t buffer_size,
25754 + grub_efi_status_t (*flush) (struct grub_efi_file * this);
25756 +typedef struct grub_efi_file grub_efi_file_t;
25758 +struct grub_efi_simple_file_system
25760 + grub_efi_uint64_t revision;
25761 + grub_efi_status_t (*open_volume) (struct grub_efi_simple_file_system * this,
25762 + grub_efi_file_t ** root);
25764 +typedef struct grub_efi_simple_file_system grub_efi_simple_file_system_t;
25766 +struct grub_efi_serial_io_mode
25768 + grub_efi_uint32_t control_mask;
25769 + grub_efi_uint32_t timeout;
25770 + grub_efi_uint64_t baud_rate;
25771 + grub_efi_uint32_t receive_fifo_depth;
25772 + grub_efi_uint32_t data_bits;
25773 + grub_efi_uint32_t parity;
25774 + grub_efi_uint32_t stop_bits;
25776 +typedef struct grub_efi_serial_io_mode grub_efi_serial_io_mode_t;
25778 +enum grub_efi_parity
25780 + GRUB_EFI_DEFAULT_PARITY,
25781 + GRUB_EFI_NO_PARITY,
25782 + GRUB_EFI_EVEN_PARITY,
25783 + GRUB_EFI_ODD_PARITY,
25784 + GRUB_EFI_MARK_PARITY,
25785 + GRUB_EFI_SPACE_PARITY
25787 +typedef enum grub_efi_parity grub_efi_parity_t;
25789 +enum grub_efi_stop_bits
25791 + GRUB_EFI_DEFAULT_STOP_BITS,
25792 + GRUB_EFI_ONE_STOP_BIT,
25793 + GRUB_EFI_ONE_FIVE_STOP_BITS,
25794 + GRUB_EFI_TWO_STOP_BITS
25796 +typedef enum grub_efi_stop_bits grub_efi_stop_bits_t;
25798 +#define GRUB_EFI_SERIAL_CLEAR_TO_SEND 0x0010
25799 +#define GRUB_EFI_SERIAL_DATA_SET_READY 0x0020
25800 +#define GRUB_EFI_SERIAL_RING_INDICATE 0x0040
25801 +#define GRUB_EFI_SERIAL_CARRIER_DETECT 0x0080
25802 +#define GRUB_EFI_SERIAL_REQUEST_TO_SEND 0x0002
25803 +#define GRUB_EFI_SERIAL_DATA_TERMINAL_READY 0x0001
25804 +#define GRUB_EFI_SERIAL_INPUT_BUFFER_EMPTY 0x0100
25805 +#define GRUB_EFI_SERIAL_OUTPUT_BUFFER_EMPTY 0x0200
25806 +#define GRUB_EFI_SERIAL_HARDWARE_LOOPBACK_ENABLE 0x1000
25807 +#define GRUB_EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE 0x2000
25808 +#define GRUB_EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE 0x4000
25810 +struct grub_efi_serial_io
25812 + grub_efi_uint32_t revision;
25813 + grub_efi_status_t (*reset) (struct grub_efi_serial_io * this);
25814 + grub_efi_status_t (*set_attributes) (struct grub_efi_serial_io * this,
25815 + grub_efi_uint64_t baud_rate,
25816 + grub_efi_uint32_t receive_fifo_depth,
25817 + grub_efi_uint32_t timeout,
25818 + grub_efi_parity_t parity,
25819 + grub_efi_uint8_t data_bits,
25820 + grub_efi_stop_bits_t stop_bits);
25821 + grub_efi_status_t (*set_control_bits) (struct grub_efi_serial_io * this,
25822 + grub_efi_uint32_t control);
25823 + grub_efi_status_t (*get_control_bits) (struct grub_efi_serial_io * this,
25824 + grub_efi_uint32_t * control);
25825 + grub_efi_status_t (*write) (struct grub_efi_serial_io * this,
25826 + grub_efi_uintn_t * buffer_size,
25828 + grub_efi_status_t (*read) (struct grub_efi_serial_io * this,
25829 + grub_efi_uintn_t * buffer_size,
25831 + grub_efi_serial_io_mode_t *mode;
25833 +typedef struct grub_efi_serial_io grub_efi_serial_io_t;
25835 +#endif /* ! GRUB_EFI_API_HEADER */
25836 diff --git a/efi/grub/efi/console_control.h b/efi/grub/efi/console_control.h
25837 new file mode 100644
25838 index 0000000..ffc4305
25840 +++ b/efi/grub/efi/console_control.h
25842 +/* console_control.h - definitions of the console control protocol */
25844 + * GRUB -- GRand Unified Bootloader
25845 + * Copyright (C) 2006 Free Software Foundation, Inc.
25847 + * This program is free software; you can redistribute it and/or modify
25848 + * it under the terms of the GNU General Public License as published by
25849 + * the Free Software Foundation; either version 2 of the License, or
25850 + * (at your option) any later version.
25852 + * This program is distributed in the hope that it will be useful,
25853 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
25854 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25855 + * GNU General Public License for more details.
25857 + * You should have received a copy of the GNU General Public License
25858 + * along with this program; if not, write to the Free Software
25859 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25862 +/* The console control protocol is not a part of the EFI spec,
25863 + but defined in Intel's Sample Implementation. */
25865 +#ifndef GRUB_EFI_CONSOLE_CONTROL_HEADER
25866 +#define GRUB_EFI_CONSOLE_CONTROL_HEADER 1
25868 +#define GRUB_EFI_CONSOLE_CONTROL_GUID \
25869 + { 0xf42f7782, 0x12e, 0x4c12, \
25870 + { 0x99, 0x56, 0x49, 0xf9, 0x43, 0x4, 0xf7, 0x21 } \
25873 +enum grub_efi_screen_mode
25875 + GRUB_EFI_SCREEN_TEXT,
25876 + GRUB_EFI_SCREEN_GRAPHICS,
25877 + GRUB_EFI_SCREEN_TEXT_MAX_VALUE
25879 +typedef enum grub_efi_screen_mode grub_efi_screen_mode_t;
25881 +struct grub_efi_console_control_protocol
25883 + grub_efi_status_t
25884 + (*get_mode) (struct grub_efi_console_control_protocol * this,
25885 + grub_efi_screen_mode_t * mode,
25886 + grub_efi_boolean_t * uga_exists,
25887 + grub_efi_boolean_t * std_in_locked);
25889 + grub_efi_status_t
25890 + (*set_mode) (struct grub_efi_console_control_protocol * this,
25891 + grub_efi_screen_mode_t mode);
25893 + grub_efi_status_t
25894 + (*lock_std_in) (struct grub_efi_console_control_protocol * this,
25895 + grub_efi_char16_t * password);
25897 +typedef struct grub_efi_console_control_protocol
25898 + grub_efi_console_control_protocol_t;
25900 +#endif /* ! GRUB_EFI_CONSOLE_CONTROL_HEADER */
25901 diff --git a/efi/grub/efi/efi.h b/efi/grub/efi/efi.h
25902 new file mode 100644
25903 index 0000000..301f9d9
25905 +++ b/efi/grub/efi/efi.h
25907 +/* efi.h - declare variables and functions for EFI support */
25909 + * GRUB -- GRand Unified Bootloader
25910 + * Copyright (C) 2006 Free Software Foundation, Inc.
25912 + * This program is free software; you can redistribute it and/or modify
25913 + * it under the terms of the GNU General Public License as published by
25914 + * the Free Software Foundation; either version 2 of the License, or
25915 + * (at your option) any later version.
25917 + * This program is distributed in the hope that it will be useful,
25918 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
25919 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25920 + * GNU General Public License for more details.
25922 + * You should have received a copy of the GNU General Public License
25923 + * along with this program; if not, write to the Free Software
25924 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25927 +#ifndef GRUB_EFI_EFI_HEADER
25928 +#define GRUB_EFI_EFI_HEADER 1
25930 +#include <grub/types.h>
25931 +#include <grub/efi/api.h>
25935 +grub_efi_locate_device_path (grub_efi_guid_t *protocol,
25936 + grub_efi_device_path_t **dp,
25937 + grub_efi_handle_t *handle);
25939 +grub_efi_locate_handle_buffer (grub_efi_locate_search_type_t search_type,
25940 + grub_efi_guid_t *protocol,
25941 + void *search_key,
25942 + grub_efi_uintn_t *no_handles,
25943 + grub_efi_handle_t **buffer);
25944 +void *grub_efi_locate_protocol (grub_efi_guid_t * protocol,
25945 + void *registration);
25946 +grub_efi_handle_t *grub_efi_locate_handle (grub_efi_locate_search_type_t
25948 + grub_efi_guid_t * protocol,
25949 + void *search_key,
25950 + grub_efi_uintn_t * num_handles);
25951 +void *grub_efi_open_protocol (grub_efi_handle_t handle,
25952 + grub_efi_guid_t * protocol,
25953 + grub_efi_uint32_t attributes);
25954 +int grub_efi_set_text_mode (int on);
25955 +void grub_efi_stall (grub_efi_uintn_t microseconds);
25956 +void *grub_efi_allocate_pool (grub_efi_uintn_t size);
25957 +void grub_efi_free_pool (void *buffer);
25958 +void *grub_efi_allocate_anypages (grub_efi_uintn_t pages);
25959 +void *grub_efi_allocate_pages (grub_efi_physical_address_t address,
25960 + grub_efi_uintn_t pages);
25961 +void *grub_efi_allocate_runtime_pages (grub_efi_physical_address_t address,
25962 + grub_efi_uintn_t pages);
25964 +grub_efi_free_pages (grub_efi_physical_address_t address,
25965 + grub_efi_uintn_t pages);
25967 +grub_efi_get_memory_map (grub_efi_uintn_t * map_key,
25968 + grub_efi_uintn_t * descriptor_size,
25969 + grub_efi_uint32_t * descriptor_version);
25970 +grub_efi_loaded_image_t *grub_efi_get_loaded_image (grub_efi_handle_t
25972 +void grub_efi_print_device_path (grub_efi_device_path_t * dp);
25973 +char *grub_efi_get_filename (grub_efi_device_path_t * dp);
25974 +grub_efi_device_path_t *grub_efi_get_device_path (grub_efi_handle_t handle);
25975 +int grub_efi_exit_boot_services (grub_efi_uintn_t map_key);
25977 +void grub_efi_mm_init (void);
25978 +void grub_efi_mm_fini (void);
25979 +void grub_efi_init (void);
25980 +void grub_efi_fini (void);
25981 +void grub_efi_set_prefix (void);
25984 +extern void *mmap_buf;
25985 +extern grub_efi_uintn_t mmap_size;
25986 +extern grub_efi_uintn_t mmap_pages;
25988 +extern grub_efi_system_table_t *grub_efi_system_table;
25989 +extern grub_efi_handle_t grub_efi_image_handle;
25991 +#endif /* ! GRUB_EFI_EFI_HEADER */
25992 diff --git a/efi/grub/efi/eficall.h b/efi/grub/efi/eficall.h
25993 new file mode 100644
25994 index 0000000..2e79e04
25996 +++ b/efi/grub/efi/eficall.h
25999 + * GRUB -- GRand Unified Bootloader
26000 + * Copyright (C) 2006 Free Software Foundation, Inc.
26002 + * This program is free software; you can redistribute it and/or modify
26003 + * it under the terms of the GNU General Public License as published by
26004 + * the Free Software Foundation; either version 2 of the License, or
26005 + * (at your option) any later version.
26007 + * This program is distributed in the hope that it will be useful,
26008 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
26009 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26010 + * GNU General Public License for more details.
26012 + * You should have received a copy of the GNU General Public License
26013 + * along with this program; if not, write to the Free Software
26014 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26017 +#ifndef _EFI_CALL_INCLUDE_
26018 +#define _EFI_CALL_INCLUDE_ 1
26020 +#include <grub/types.h>
26022 +#ifndef __x86_64__
26023 +#ifdef EFI_FUNCTION_WRAPPER
26024 +#undef EFI_FUNCTION_WRAPPER
26028 +#ifdef EFI_FUNCTION_WRAPPER
26029 +typedef long EFI_STATUS;
26031 +EFI_STATUS x64_call0 (unsigned long func);
26032 +EFI_STATUS x64_call1 (unsigned long func, unsigned long a);
26033 +EFI_STATUS x64_call2 (unsigned long func, unsigned long a, unsigned long b);
26034 +EFI_STATUS x64_call3 (unsigned long func, unsigned long a,
26035 + unsigned long b, unsigned long c);
26036 +EFI_STATUS x64_call4 (unsigned long func, unsigned long a,
26037 + unsigned long b, unsigned long c, unsigned long d);
26038 +EFI_STATUS x64_call5 (unsigned long func, unsigned long a,
26039 + unsigned long b, unsigned long c,
26040 + unsigned long d, unsigned long e);
26041 +EFI_STATUS x64_call6 (unsigned long func, unsigned long a,
26042 + unsigned long b, unsigned long c,
26043 + unsigned long d, unsigned long e, unsigned long f);
26044 +EFI_STATUS x64_call7 (unsigned long func, unsigned long a,
26045 + unsigned long b, unsigned long c,
26046 + unsigned long d, unsigned long e,
26047 + unsigned long f, unsigned long g);
26048 +EFI_STATUS x64_call8 (unsigned long func, unsigned long a,
26049 + unsigned long b, unsigned long c,
26050 + unsigned long d, unsigned long e,
26051 + unsigned long f, unsigned long g,
26052 + unsigned long h);
26053 +EFI_STATUS x64_call9 (unsigned long func, unsigned long a,
26054 + unsigned long b, unsigned long c,
26055 + unsigned long d, unsigned long e,
26056 + unsigned long f, unsigned long g,
26057 + unsigned long h, unsigned long i);
26058 +EFI_STATUS x64_call10(unsigned long func, unsigned long a,
26059 + unsigned long b, unsigned long c,
26060 + unsigned long d, unsigned long e,
26061 + unsigned long f, unsigned long g,
26062 + unsigned long h, unsigned long i,
26063 + unsigned long j);
26065 +#define Call_Service(func) x64_call0((unsigned long)func)
26067 +#define Call_Service_1(func,a) x64_call1((unsigned long)func, \
26068 + (unsigned long)a)
26070 +#define Call_Service_2(func,a,b) x64_call2((unsigned long)func, \
26071 + (unsigned long)a, \
26072 + (unsigned long)b)
26074 +#define Call_Service_3(func,a,b,c) x64_call3((unsigned long)func, \
26075 + (unsigned long)a, \
26076 + (unsigned long)b, \
26077 + (unsigned long)c)
26079 +#define Call_Service_4(func,a,b,c,d) x64_call4((unsigned long)func, \
26080 + (unsigned long)a, \
26081 + (unsigned long)b, \
26082 + (unsigned long)c, \
26083 + (unsigned long)d)
26085 +#define Call_Service_5(func,a,b,c,d,e) x64_call5((unsigned long)func, \
26086 + (unsigned long)a, \
26087 + (unsigned long)b, \
26088 + (unsigned long)c, \
26089 + (unsigned long)d, \
26090 + (unsigned long)e)
26092 +#define Call_Service_6(func,a,b,c,d,e,f) x64_call6((unsigned long)func, \
26093 + (unsigned long)a, \
26094 + (unsigned long)b, \
26095 + (unsigned long)c, \
26096 + (unsigned long)d, \
26097 + (unsigned long)e, \
26098 + (unsigned long)f)
26100 +#define Call_Service_7(func,a,b,c,d,e,f,g) x64_call7((unsigned long)func, \
26101 + (unsigned long)a, \
26102 + (unsigned long)b, \
26103 + (unsigned long)c, \
26104 + (unsigned long)d, \
26105 + (unsigned long)e, \
26106 + (unsigned long)f, \
26107 + (unsigned long)g)
26109 +#define Call_Service_8(func,a,b,c,d,e,f,g,h) x64_call8((unsigned long)func, \
26110 + (unsigned long)a, \
26111 + (unsigned long)b, \
26112 + (unsigned long)c, \
26113 + (unsigned long)d, \
26114 + (unsigned long)e, \
26115 + (unsigned long)f, \
26116 + (unsigned long)g, \
26117 + (unsigned long)h)
26119 +#define Call_Service_9(func,a,b,c,d,e,f,g,h,i) x64_call9((unsigned long)func, \
26120 + (unsigned long)a, \
26121 + (unsigned long)b, \
26122 + (unsigned long)c, \
26123 + (unsigned long)d, \
26124 + (unsigned long)e, \
26125 + (unsigned long)f, \
26126 + (unsigned long)g, \
26127 + (unsigned long)h, \
26128 + (unsigned long)i)
26130 +#define Call_Service_10(func,a,b,c,d,e,f,g,h,i,j) \
26131 + x64_call10((unsigned long)func, \
26132 + (unsigned long)a, \
26133 + (unsigned long)b, \
26134 + (unsigned long)c, \
26135 + (unsigned long)d, \
26136 + (unsigned long)e, \
26137 + (unsigned long)f, \
26138 + (unsigned long)g, \
26139 + (unsigned long)h, \
26140 + (unsigned long)i, \
26141 + (unsigned long)j)
26145 +typedef long EFI_STATUS;
26146 +#define Call_Service(func) func()
26147 +#define Call_Service_1(func,a) func(a)
26148 +#define Call_Service_2(func,a,b) func(a,b)
26149 +#define Call_Service_3(func,a,b,c) func(a,b,c)
26150 +#define Call_Service_4(func,a,b,c,d) func(a,b,c,d)
26151 +#define Call_Service_5(func,a,b,c,d,e) func(a,b,c,d,e)
26152 +#define Call_Service_6(func,a,b,c,d,e,f) func(a,b,c,d,e,f)
26153 +#define Call_Service_7(func,a,b,c,d,e,f,g) func(a,b,c,d,e,f,g)
26154 +#define Call_Service_8(func,a,b,c,d,e,f,g,h) func(a,b,c,d,e,f,g,h)
26155 +#define Call_Service_9(func,a,b,c,d,e,f,g,h,i) func(a,b,c,d,e,f,g,h,i)
26156 +#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)
26160 diff --git a/efi/grub/efi/misc.h b/efi/grub/efi/misc.h
26161 new file mode 100644
26162 index 0000000..e06a2fb
26164 +++ b/efi/grub/efi/misc.h
26166 +/* misc.h - prototypes for misc EFI functions */
26168 + * GRUB -- GRand Unified Bootloader
26169 + * Copyright (C) 2002,2003,2005,2006 Free Software Foundation, Inc.
26171 + * GRUB is free software; you can redistribute it and/or modify
26172 + * it under the terms of the GNU General Public License as published by
26173 + * the Free Software Foundation; either version 2 of the License, or
26174 + * (at your option) any later version.
26176 + * This program is distributed in the hope that it will be useful,
26177 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
26178 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26179 + * GNU General Public License for more details.
26181 + * You should have received a copy of the GNU General Public License
26182 + * along with GRUB; if not, write to the Free Software
26183 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26186 +#ifndef GRUB_EFI_MISC_HEADER
26187 +#define GRUB_EFI_MISC_HEADER 1
26189 +struct e820_entry;
26190 +void e820_map_from_efi_map (struct e820_entry *e820_map,
26191 + int *e820_nr_map,
26192 + grub_efi_memory_descriptor_t *memory_map,
26193 + grub_efi_uintn_t desc_size,
26194 + grub_efi_uintn_t memory_map_size);
26196 +/* Initialize the console system. */
26197 +void grub_console_init (void);
26198 +/* Finish the console system. */
26199 +void grub_console_fini (void);
26201 +void grub_efidisk_init (void);
26202 +void grub_efidisk_fini (void);
26203 +grub_efi_handle_t grub_efidisk_get_current_bdev_handle (void);
26204 +int grub_get_drive_partition_from_bdev_handle (grub_efi_handle_t handle,
26205 + unsigned long *drive,
26206 + unsigned long *partition);
26208 +char *grub_efi_file_path_to_path_name (grub_efi_device_path_t *file_path);
26209 +void grub_load_saved_default (grub_efi_handle_t dev_handle);
26211 +grub_efi_device_path_t *
26212 +find_last_device_path (const grub_efi_device_path_t *dp);
26213 +grub_efi_device_path_t *
26214 +find_parent_device_path (const grub_efi_device_path_t *dp);
26215 +grub_efi_device_path_t *
26216 +duplicate_device_path (const grub_efi_device_path_t *dp);
26218 +compare_device_paths (const grub_efi_device_path_t *dp1,
26219 + const grub_efi_device_path_t *dp2);
26220 +grub_efi_device_path_t *
26221 +device_path_from_utf8 (const char *device);
26223 +extern grub_efi_guid_t simple_file_system_guid;
26225 +#endif /* ! GRUB_EFI_MISC_HEADER */
26226 diff --git a/efi/grub/efi/net.h b/efi/grub/efi/net.h
26227 new file mode 100644
26228 index 0000000..e69de29
26229 diff --git a/efi/grub/efi/time.h b/efi/grub/efi/time.h
26230 new file mode 100644
26231 index 0000000..55bfe68
26233 +++ b/efi/grub/efi/time.h
26236 + * GRUB -- GRand Unified Bootloader
26237 + * Copyright (C) 2006 Free Software Foundation, Inc.
26239 + * This program is free software; you can redistribute it and/or modify
26240 + * it under the terms of the GNU General Public License as published by
26241 + * the Free Software Foundation; either version 2 of the License, or
26242 + * (at your option) any later version.
26244 + * This program is distributed in the hope that it will be useful,
26245 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
26246 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26247 + * GNU General Public License for more details.
26249 + * You should have received a copy of the GNU General Public License
26250 + * along with this program; if not, write to the Free Software
26251 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
26252 + * MA 02110-1301, USA.
26255 +#ifndef GRUB_EFI_TIME_HEADER
26256 +#define GRUB_EFI_TIME_HEADER 1
26258 +#include <grub/symbol.h>
26260 +#define GRUB_TICKS_PER_SECOND 18
26262 +/* Return the real time in ticks. */
26263 +grub_uint32_t grub_get_rtc (void);
26265 +#endif /* ! GRUB_EFI_TIME_HEADER */
26266 diff --git a/efi/grub/i386/linux.h b/efi/grub/i386/linux.h
26267 new file mode 100644
26268 index 0000000..1545a7a
26270 +++ b/efi/grub/i386/linux.h
26273 + * GRUB -- GRand Unified Bootloader
26274 + * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc.
26276 + * This program is free software; you can redistribute it and/or modify
26277 + * it under the terms of the GNU General Public License as published by
26278 + * the Free Software Foundation; either version 2 of the License, or
26279 + * (at your option) any later version.
26281 + * This program is distributed in the hope that it will be useful,
26282 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
26283 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26284 + * GNU General Public License for more details.
26286 + * You should have received a copy of the GNU General Public License
26287 + * along with this program; if not, write to the Free Software
26288 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26291 +#ifndef GRUB_LINUX_MACHINE_HEADER
26292 +#define GRUB_LINUX_MACHINE_HEADER 1
26294 +#define GRUB_LINUX_MAGIC_SIGNATURE 0x53726448 /* "HdrS" */
26295 +#define GRUB_LINUX_DEFAULT_SETUP_SECTS 4
26296 +#define GRUB_LINUX_FLAG_CAN_USE_HEAP 0x80
26297 +#define GRUB_LINUX_INITRD_MAX_ADDRESS 0x37FFFFFF
26298 +#define GRUB_LINUX_MAX_SETUP_SECTS 64
26299 +#define GRUB_LINUX_BOOT_LOADER_TYPE 0x72
26300 +#define GRUB_LINUX_HEAP_END_OFFSET (0x9000 - 0x200)
26302 +#define GRUB_LINUX_BZIMAGE_ADDR 0x100000
26303 +#define GRUB_LINUX_ZIMAGE_ADDR 0x10000
26304 +#define GRUB_LINUX_OLD_REAL_MODE_ADDR 0x90000
26305 +#define GRUB_LINUX_SETUP_STACK 0x9000
26307 +#define GRUB_LINUX_FLAG_BIG_KERNEL 0x1
26309 +/* Linux's video mode selection support. Actually I hate it! */
26310 +#define GRUB_LINUX_VID_MODE_NORMAL 0xFFFF
26311 +#define GRUB_LINUX_VID_MODE_EXTENDED 0xFFFE
26312 +#define GRUB_LINUX_VID_MODE_ASK 0xFFFD
26314 +#define GRUB_LINUX_CL_OFFSET 0x9000
26315 +#define GRUB_LINUX_CL_END_OFFSET 0x90FF
26316 +#define GRUB_LINUX_SETUP_MOVE_SIZE 0x9100
26317 +#define GRUB_LINUX_CL_MAGIC 0xA33F
26320 +#define GRUB_LINUX_EFI_SIGNATURE_X64 \
26321 + ('4' << 24 | '6' << 16 | 'L' << 8 | 'E')
26323 +#define GRUB_LINUX_EFI_SIGNATURE_X64 \
26324 + ('L' << 24 | 'I' << 16 | 'F' << 8 | 'E')
26329 +/* For the Linux/i386 boot protocol version 2.07. */
26330 +struct grub_linux_kernel_header
26332 + grub_uint8_t setup_sects; /* The size of the setup in sectors */
26333 + grub_uint16_t root_flags; /* If the root is mounted readonly */
26334 + grub_uint32_t syssize; /* obsolete */
26335 + grub_uint16_t ram_size; /* obsolete */
26336 + grub_uint16_t vid_mode; /* Video mode control */
26337 + grub_uint16_t root_dev; /* Default root device number */
26338 + grub_uint16_t boot_flag; /* 0xAA55 magic number */
26339 + grub_uint8_t jump_ins; /* Jump instruction */
26340 + grub_uint8_t jump_off; /* Jump offset */
26341 + grub_uint32_t header; /* Magic signature "HdrS" */
26342 + grub_uint16_t version; /* Boot protocol version supported */
26343 + grub_uint32_t realmode_swtch; /* Boot loader hook */
26344 + grub_uint16_t start_sys; /* The load-low segment (obsolete) */
26345 + grub_uint16_t kernel_version; /* Points to kernel version string */
26346 + grub_uint8_t type_of_loader; /* Boot loader identifier */
26347 + grub_uint8_t loadflags; /* Boot protocol option flags */
26348 + grub_uint16_t setup_move_size;/* Move to high memory size */
26349 + grub_uint32_t code32_start; /* Boot loader hook */
26350 + grub_uint32_t ramdisk_image; /* initrd load address */
26351 + grub_uint32_t ramdisk_size; /* initrd size */
26352 + grub_uint32_t bootsect_kludge;/* obsolete */
26353 + grub_uint16_t heap_end_ptr; /* Free memory after setup end */
26354 + grub_uint16_t pad1; /* Unused */
26355 + grub_uint32_t cmd_line_ptr; /* Points to the kernel command line */
26356 + grub_uint32_t initrd_addr_max;/* Highest address for initrd */
26357 + grub_uint32_t kernel_alignment;
26358 + grub_uint8_t relocatable_kernel;
26359 + grub_uint8_t pad2[3];
26360 + grub_uint32_t hardware_subarch;
26361 + grub_uint64_t hardware_subarch_data;
26362 +} __attribute__ ((packed));
26364 +/* Boot parameters for Linux based on 2.6.12. This is used by the setup
26365 + sectors of Linux, and must be simulated by GRUB on EFI, because
26366 + the setup sectors depend on BIOS. */
26367 +struct linux_kernel_params
26369 + grub_uint8_t video_cursor_x; /* 0 */
26370 + grub_uint8_t video_cursor_y;
26372 + grub_uint16_t ext_mem; /* 2 */
26374 + grub_uint16_t video_page; /* 4 */
26375 + grub_uint8_t video_mode; /* 6 */
26376 + grub_uint8_t video_width; /* 7 */
26378 + grub_uint8_t padding1[0xa - 0x8];
26380 + grub_uint16_t video_ega_bx; /* a */
26382 + grub_uint8_t padding2[0xe - 0xc];
26384 + grub_uint8_t video_height; /* e */
26385 + grub_uint8_t have_vga; /* f */
26386 + grub_uint16_t font_size; /* 10 */
26388 + grub_uint16_t lfb_width; /* 12 */
26389 + grub_uint16_t lfb_height; /* 14 */
26390 + grub_uint16_t lfb_depth; /* 16 */
26391 + grub_uint32_t lfb_base; /* 18 */
26392 + grub_uint32_t lfb_size; /* 1c */
26394 + grub_uint16_t cl_magic; /* 20 */
26395 + grub_uint16_t cl_offset;
26397 + grub_uint16_t lfb_line_len; /* 24 */
26398 + grub_uint8_t red_mask_size; /* 26 */
26399 + grub_uint8_t red_field_pos;
26400 + grub_uint8_t green_mask_size;
26401 + grub_uint8_t green_field_pos;
26402 + grub_uint8_t blue_mask_size;
26403 + grub_uint8_t blue_field_pos;
26404 + grub_uint8_t reserved_mask_size;
26405 + grub_uint8_t reserved_field_pos;
26406 + grub_uint16_t vesapm_segment; /* 2e */
26407 + grub_uint16_t vesapm_offset; /* 30 */
26408 + grub_uint16_t lfb_pages; /* 32 */
26409 + grub_uint16_t vesa_attrib; /* 34 */
26411 + grub_uint8_t padding3[0x40 - 0x36];
26413 + grub_uint16_t apm_version; /* 40 */
26414 + grub_uint16_t apm_code_segment; /* 42 */
26415 + grub_uint32_t apm_entry; /* 44 */
26416 + grub_uint16_t apm_16bit_code_segment; /* 48 */
26417 + grub_uint16_t apm_data_segment; /* 4a */
26418 + grub_uint16_t apm_flags; /* 4c */
26419 + grub_uint32_t apm_code_len; /* 4e */
26420 + grub_uint16_t apm_data_len; /* 52 */
26422 + grub_uint8_t padding4[0x60 - 0x54];
26424 + grub_uint32_t ist_signature; /* 60 */
26425 + grub_uint32_t ist_command; /* 64 */
26426 + grub_uint32_t ist_event; /* 68 */
26427 + grub_uint32_t ist_perf_level; /* 6c */
26429 + grub_uint8_t padding5[0x80 - 0x70];
26431 + grub_uint8_t hd0_drive_info[0x10]; /* 80 */
26432 + grub_uint8_t hd1_drive_info[0x10]; /* 90 */
26433 + grub_uint16_t rom_config_len; /* a0 */
26435 + grub_uint8_t padding6[0x1b8 - 0xa2];
26439 + grub_uint32_t padding7_1; /* 0x1b8 */
26440 + grub_uint32_t padding7_2; /* 0x1bc */
26442 + grub_uint32_t efi_signature; /* 1c0 */
26443 + grub_uint32_t efi_system_table; /* 1c4 */
26444 + grub_uint32_t efi_mem_desc_size; /* 1c8 */
26445 + grub_uint32_t efi_mem_desc_version; /* 1cc */
26446 + grub_uint32_t efi_mmap; /* 1d0 */
26447 + grub_uint32_t efi_mmap_size; /* 1d4 */
26448 + grub_uint32_t efi_system_table_hi; /* 1d8 */
26449 + grub_uint32_t efi_mmap_hi; /* 1dc */
26452 + grub_uint32_t efi_system_table; /* 1b8 */
26454 + grub_uint32_t padding7_1; /* 0x1bc */
26456 + grub_uint32_t efi_signature; /* 1c0 */
26457 + grub_uint32_t efi_mem_desc_size; /* 1c4 */
26458 + grub_uint32_t efi_mem_desc_version; /* 1c8 */
26459 + grub_uint32_t efi_mmap_size; /* 1cc */
26460 + grub_uint32_t efi_mmap; /* 1d0 */
26462 + grub_uint8_t padding7_2[0x1e0 - 0x1d4]; /* 1d4 */
26465 + grub_uint32_t padding7_1; /* 0x1b8 */
26466 + grub_uint32_t padding7_2; /* 0x1bc */
26467 + grub_uint32_t padding7_3; /* 0x1c0 */
26468 + grub_uint32_t efi_system_table; /* 0x1c4 */
26469 + grub_uint32_t efi_mem_desc_size; /* 0x1c8 */
26470 + grub_uint32_t efi_mem_desc_version; /* 0x1cc */
26471 + grub_uint32_t efi_mmap; /* 0x1d0 */
26472 + grub_uint32_t efi_mmap_size; /* 0x1d4 */
26473 + grub_uint8_t padding7_4[0x1e0 - 0x1d8]; /* 0x1d8 */
26477 + grub_uint32_t alt_mem; /* 1e0 */
26479 + grub_uint8_t padding8[0x1e8 - 0x1e4]; /* 1e4 */
26481 + grub_uint8_t e820_nr_map; /* 1e8 */
26482 + grub_uint8_t eddbuf_entries; /* 1e9 */
26483 + grub_uint8_t edd_mbr_sig_buf_entries; /* 1ea */
26485 + grub_uint8_t padding9[0x1f1 - 0x1eb];
26487 + struct grub_linux_kernel_header hdr; /* 0x1f1 */
26489 + grub_uint8_t padding10[0x2d0-0x1f1-sizeof(struct grub_linux_kernel_header)];
26491 + grub_uint8_t e820_map[2560]; /* 0x2d0 */
26493 + grub_uint8_t padding11[0x1000 - 0xcd0];
26494 +} __attribute__ ((packed));
26495 +#endif /* ! ASM_FILE */
26497 +#endif /* ! GRUB_LINUX_MACHINE_HEADER */
26498 diff --git a/efi/grub/i386/types.h b/efi/grub/i386/types.h
26499 new file mode 100644
26500 index 0000000..ec4174e
26502 +++ b/efi/grub/i386/types.h
26505 + * GRUB -- GRand Unified Bootloader
26506 + * Copyright (C) 2002,2006 Free Software Foundation, Inc.
26508 + * GRUB is free software; you can redistribute it and/or modify
26509 + * it under the terms of the GNU General Public License as published by
26510 + * the Free Software Foundation; either version 2 of the License, or
26511 + * (at your option) any later version.
26513 + * This program is distributed in the hope that it will be useful,
26514 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
26515 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26516 + * GNU General Public License for more details.
26518 + * You should have received a copy of the GNU General Public License
26519 + * along with GRUB; if not, write to the Free Software
26520 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26523 +#ifndef GRUB_TYPES_CPU_HEADER
26524 +#define GRUB_TYPES_CPU_HEADER 1
26526 +/* The size of void *. */
26527 +#define GRUB_TARGET_SIZEOF_VOID_P 4
26529 +/* The size of long. */
26530 +#define GRUB_TARGET_SIZEOF_LONG 4
26532 +/* x64_64 is little-endian. */
26533 +#undef GRUB_TARGET_WORDS_BIGENDIAN
26535 +#endif /* ! GRUB_TYPES_CPU_HEADER */
26536 diff --git a/efi/grub/misc.h b/efi/grub/misc.h
26537 new file mode 100644
26538 index 0000000..5ef2226
26540 +++ b/efi/grub/misc.h
26542 +/* misc.h - prototypes for misc functions */
26544 + * GRUB -- GRand Unified Bootloader
26545 + * Copyright (C) 2002,2003,2005,2006 Free Software Foundation, Inc.
26547 + * GRUB is free software; you can redistribute it and/or modify
26548 + * it under the terms of the GNU General Public License as published by
26549 + * the Free Software Foundation; either version 2 of the License, or
26550 + * (at your option) any later version.
26552 + * This program is distributed in the hope that it will be useful,
26553 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
26554 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26555 + * GNU General Public License for more details.
26557 + * You should have received a copy of the GNU General Public License
26558 + * along with GRUB; if not, write to the Free Software
26559 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26562 +#ifndef GRUB_MISC_HEADER
26563 +#define GRUB_MISC_HEADER 1
26565 +#include <stdarg.h>
26566 +#include <grub/types.h>
26568 +#define grub_dprintf(condition, fmt, args...) \
26569 + grub_real_dprintf(__FILE__, __LINE__, condition, fmt, ## args)
26571 +char *grub_stpcpy (char *dest, const char *src);
26572 +void grub_real_dprintf (const char *file,
26574 + const char *condition,
26575 + const char *fmt, ...)
26576 + __attribute__ ((format (printf, 4, 5)));
26577 +void grub_exit (void) __attribute__ ((noreturn));
26578 +void grub_abort (void) __attribute__ ((noreturn));
26579 +void grub_fatal (const char *fmt, ...) __attribute__ ((noreturn));
26580 +grub_size_t grub_utf8_char_len(grub_uint8_t ch);
26581 +grub_uint32_t grub_utf8_to_utf32(const grub_uint8_t *src, grub_size_t length);
26582 +void grub_utf8_to_utf16(const grub_uint8_t *src, grub_size_t srclen,
26583 + grub_uint16_t *dst, grub_size_t dstlen);
26584 +grub_uint8_t *grub_utf16_to_utf8 (grub_uint8_t * dest,
26585 + grub_uint16_t * src, grub_size_t size);
26587 +void *grub_malloc (grub_size_t size);
26588 +void grub_free (void *ptr);
26590 +char *grub_strndup (const char *s, int n);
26591 +#define strndup grub_strndup
26593 +int safe_parse_maxulong (char **str_ptr, unsigned long *myulong_ptr);
26595 +#define E820_RAM 1
26596 +#define E820_RESERVED 2
26597 +#define E820_ACPI 3
26598 +#define E820_NVS 4
26599 +#define E820_EXEC_CODE 5
26600 +#define E820_MAX 128
26604 + grub_uint64_t addr; /* start of memory segment */
26605 + grub_uint64_t size; /* size of memory segment */
26606 + grub_uint32_t type; /* type of memory segment */
26607 +} __attribute__ ((packed));
26609 +int grub_load_linux (char *kernel, char *arg);
26610 +int grub_load_initrd (char *initrd);
26612 +#endif /* ! GRUB_MISC_HEADER */
26613 diff --git a/efi/grub/symbol.h b/efi/grub/symbol.h
26614 new file mode 100644
26615 index 0000000..5204c54
26617 +++ b/efi/grub/symbol.h
26620 + * GRUB -- GRand Unified Bootloader
26621 + * Copyright (C) 1999,2000,2001,2002,2006 Free Software Foundation, Inc.
26623 + * GRUB is free software; you can redistribute it and/or modify
26624 + * it under the terms of the GNU General Public License as published by
26625 + * the Free Software Foundation; either version 2 of the License, or
26626 + * (at your option) any later version.
26628 + * This program is distributed in the hope that it will be useful,
26629 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
26630 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26631 + * GNU General Public License for more details.
26633 + * You should have received a copy of the GNU General Public License
26634 + * along with GRUB; if not, write to the Free Software
26635 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26638 +#ifndef GRUB_SYMBOL_HEADER
26639 +#define GRUB_SYMBOL_HEADER 1
26641 +#include <config.h>
26643 +/* Add an underscore to a C symbol in assembler code if needed. */
26644 +#ifdef HAVE_ASM_USCORE
26645 +# define EXT_C(sym) _ ## sym
26647 +# define EXT_C(sym) sym
26650 +#define FUNCTION(x) .globl EXT_C(x) ; .type EXT_C(x), "function" ; EXT_C(x):
26652 +#endif /* ! GRUB_SYMBOL_HEADER */
26653 diff --git a/efi/grub/types.h b/efi/grub/types.h
26654 new file mode 100644
26655 index 0000000..173adb4
26657 +++ b/efi/grub/types.h
26660 + * GRUB -- GRand Unified Bootloader
26661 + * Copyright (C) 2002,2005,2006 Free Software Foundation, Inc.
26663 + * This program is free software; you can redistribute it and/or modify
26664 + * it under the terms of the GNU General Public License as published by
26665 + * the Free Software Foundation; either version 2 of the License, or
26666 + * (at your option) any later version.
26668 + * This program is distributed in the hope that it will be useful,
26669 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
26670 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26671 + * GNU General Public License for more details.
26673 + * You should have received a copy of the GNU General Public License
26674 + * along with this program; if not, write to the Free Software
26675 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26678 +#ifndef GRUB_TYPES_HEADER
26679 +#define GRUB_TYPES_HEADER 1
26681 +#include <config.h>
26682 +#include <grub/cpu/types.h>
26684 +#define UNUSED __attribute__ ((unused))
26687 +# define GRUB_CPU_SIZEOF_VOID_P SIZEOF_VOID_P
26688 +# define GRUB_CPU_SIZEOF_LONG SIZEOF_LONG
26689 +# ifdef WORDS_BIGENDIAN
26690 +# define GRUB_CPU_WORDS_BIGENDIAN 1
26692 +# undef GRUB_CPU_WORDS_BIGENDIAN
26694 +#else /* ! GRUB_UTIL */
26695 +# define GRUB_CPU_SIZEOF_VOID_P GRUB_TARGET_SIZEOF_VOID_P
26696 +# define GRUB_CPU_SIZEOF_LONG GRUB_TARGET_SIZEOF_LONG
26697 +# ifdef GRUB_TARGET_WORDS_BIGENDIAN
26698 +# define GRUB_CPU_WORDS_BIGENDIAN 1
26700 +# undef GRUB_CPU_WORDS_BIGENDIAN
26702 +#endif /* ! GRUB_UTIL */
26704 +#if GRUB_CPU_SIZEOF_VOID_P != GRUB_CPU_SIZEOF_LONG
26705 +# error "This architecture is not supported because sizeof(void *) != sizeof(long)"
26708 +#if GRUB_CPU_SIZEOF_VOID_P != 4 && GRUB_CPU_SIZEOF_VOID_P != 8
26709 +# error "This architecture is not supported because sizeof(void *) != 4 and sizeof(void *) != 8"
26712 +/* Define various wide integers. */
26713 +typedef signed char grub_int8_t;
26714 +typedef short grub_int16_t;
26715 +typedef int grub_int32_t;
26716 +#if GRUB_CPU_SIZEOF_VOID_P == 8
26717 +typedef long grub_int64_t;
26719 +typedef long long grub_int64_t;
26722 +typedef unsigned char grub_uint8_t;
26723 +typedef unsigned short grub_uint16_t;
26724 +typedef unsigned grub_uint32_t;
26725 +#if GRUB_CPU_SIZEOF_VOID_P == 8
26726 +typedef unsigned long grub_uint64_t;
26728 +typedef unsigned long long grub_uint64_t;
26732 +#if GRUB_TARGET_SIZEOF_VOID_P == 8
26733 +typedef grub_uint64_t grub_target_addr_t;
26734 +typedef grub_uint64_t grub_target_off_t;
26735 +typedef grub_uint64_t grub_target_size_t;
26736 +typedef grub_int64_t grub_target_ssize_t;
26738 +typedef grub_uint32_t grub_target_addr_t;
26739 +typedef grub_uint32_t grub_target_off_t;
26740 +typedef grub_uint32_t grub_target_size_t;
26741 +typedef grub_int32_t grub_target_ssize_t;
26744 +typedef unsigned long grub_addr_t;
26745 +#if GRUB_CPU_SIZEOF_VOID_P == 8
26746 +typedef grub_uint64_t grub_size_t;
26747 +typedef grub_int64_t grub_ssize_t;
26749 +typedef grub_uint32_t grub_size_t;
26750 +typedef grub_int32_t grub_ssize_t;
26753 +/* The type for representing a file offset. */
26754 +typedef grub_uint64_t grub_off_t;
26756 +/* The type for representing a disk block address. */
26757 +typedef grub_uint64_t grub_disk_addr_t;
26759 +/* Byte-orders. */
26760 +#define grub_swap_bytes16(x) \
26762 + grub_uint16_t _x = (x); \
26763 + (grub_uint16_t) ((_x << 8) | (_x >> 8)); \
26766 +#define grub_swap_bytes32(x) \
26768 + grub_uint32_t _x = (x); \
26769 + (grub_uint32_t) ((_x << 24) \
26770 + | ((_x & (grub_uint32_t) 0xFF00UL) << 8) \
26771 + | ((_x & (grub_uint32_t) 0xFF0000UL) >> 8) \
26775 +#define grub_swap_bytes64(x) \
26777 + grub_uint64_t _x = (x); \
26778 + (grub_uint64_t) ((_x << 56) \
26779 + | ((_x & (grub_uint64_t) 0xFF00ULL) << 40) \
26780 + | ((_x & (grub_uint64_t) 0xFF0000ULL) << 24) \
26781 + | ((_x & (grub_uint64_t) 0xFF000000ULL) << 8) \
26782 + | ((_x & (grub_uint64_t) 0xFF00000000ULL) >> 8) \
26783 + | ((_x & (grub_uint64_t) 0xFF0000000000ULL) >> 24) \
26784 + | ((_x & (grub_uint64_t) 0xFF000000000000ULL) >> 40) \
26788 +#ifdef GRUB_CPU_WORDS_BIGENDIAN
26789 +# define grub_cpu_to_le16(x) grub_swap_bytes16(x)
26790 +# define grub_cpu_to_le32(x) grub_swap_bytes32(x)
26791 +# define grub_cpu_to_le64(x) grub_swap_bytes64(x)
26792 +# define grub_le_to_cpu16(x) grub_swap_bytes16(x)
26793 +# define grub_le_to_cpu32(x) grub_swap_bytes32(x)
26794 +# define grub_le_to_cpu64(x) grub_swap_bytes64(x)
26795 +# define grub_cpu_to_be16(x) ((grub_uint16_t) (x))
26796 +# define grub_cpu_to_be32(x) ((grub_uint32_t) (x))
26797 +# define grub_cpu_to_be64(x) ((grub_uint64_t) (x))
26798 +# define grub_be_to_cpu16(x) ((grub_uint16_t) (x))
26799 +# define grub_be_to_cpu32(x) ((grub_uint32_t) (x))
26800 +# define grub_be_to_cpu64(x) ((grub_uint64_t) (x))
26801 +#else /* ! WORDS_BIGENDIAN */
26802 +# define grub_cpu_to_le16(x) ((grub_uint16_t) (x))
26803 +# define grub_cpu_to_le32(x) ((grub_uint32_t) (x))
26804 +# define grub_cpu_to_le64(x) ((grub_uint64_t) (x))
26805 +# define grub_le_to_cpu16(x) ((grub_uint16_t) (x))
26806 +# define grub_le_to_cpu32(x) ((grub_uint32_t) (x))
26807 +# define grub_le_to_cpu64(x) ((grub_uint64_t) (x))
26808 +# define grub_cpu_to_be16(x) grub_swap_bytes16(x)
26809 +# define grub_cpu_to_be32(x) grub_swap_bytes32(x)
26810 +# define grub_cpu_to_be64(x) grub_swap_bytes64(x)
26811 +# define grub_be_to_cpu16(x) grub_swap_bytes16(x)
26812 +# define grub_be_to_cpu32(x) grub_swap_bytes32(x)
26813 +# define grub_be_to_cpu64(x) grub_swap_bytes64(x)
26814 +#endif /* ! WORDS_BIGENDIAN */
26816 +#endif /* ! GRUB_TYPES_HEADER */
26817 diff --git a/efi/grub/x86_64/linux.h b/efi/grub/x86_64/linux.h
26818 new file mode 100644
26819 index 0000000..4e81ca6
26821 +++ b/efi/grub/x86_64/linux.h
26824 + * GRUB -- GRand Unified Bootloader
26825 + * Copyright (C) 1999,2000,2001,2002,2003,2004 Free Software Foundation, Inc.
26827 + * This program is free software; you can redistribute it and/or modify
26828 + * it under the terms of the GNU General Public License as published by
26829 + * the Free Software Foundation; either version 2 of the License, or
26830 + * (at your option) any later version.
26832 + * This program is distributed in the hope that it will be useful,
26833 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
26834 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26835 + * GNU General Public License for more details.
26837 + * You should have received a copy of the GNU General Public License
26838 + * along with this program; if not, write to the Free Software
26839 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26842 +#ifndef GRUB_LINUX_MACHINE_HEADER
26843 +#define GRUB_LINUX_MACHINE_HEADER 1
26845 +#define GRUB_LINUX_MAGIC_SIGNATURE 0x53726448 /* "HdrS" */
26846 +#define GRUB_LINUX_DEFAULT_SETUP_SECTS 4
26847 +#define GRUB_LINUX_FLAG_CAN_USE_HEAP 0x80
26848 +#define GRUB_LINUX_INITRD_MAX_ADDRESS 0x37FFFFFF
26849 +#define GRUB_LINUX_MAX_SETUP_SECTS 64
26850 +#define GRUB_LINUX_BOOT_LOADER_TYPE 0x72
26851 +#define GRUB_LINUX_HEAP_END_OFFSET (0x9000 - 0x200)
26853 +#define GRUB_LINUX_BZIMAGE_ADDR 0x100000
26854 +#define GRUB_LINUX_ZIMAGE_ADDR 0x10000
26855 +#define GRUB_LINUX_OLD_REAL_MODE_ADDR 0x90000
26856 +#define GRUB_LINUX_SETUP_STACK 0x9000
26858 +#define GRUB_LINUX_FLAG_BIG_KERNEL 0x1
26860 +/* Linux's video mode selection support. Actually I hate it! */
26861 +#define GRUB_LINUX_VID_MODE_NORMAL 0xFFFF
26862 +#define GRUB_LINUX_VID_MODE_EXTENDED 0xFFFE
26863 +#define GRUB_LINUX_VID_MODE_ASK 0xFFFD
26865 +#define GRUB_LINUX_CL_OFFSET 0x9000
26866 +#define GRUB_LINUX_CL_END_OFFSET 0x90FF
26867 +#define GRUB_LINUX_SETUP_MOVE_SIZE 0x9100
26868 +#define GRUB_LINUX_CL_MAGIC 0xA33F
26871 +#define GRUB_LINUX_EFI_SIGNATURE_X64 \
26872 + ('4' << 24 | '6' << 16 | 'L' << 8 | 'E')
26874 +#define GRUB_LINUX_EFI_SIGNATURE_X64 \
26875 + ('L' << 24 | 'I' << 16 | 'F' << 8 | 'E')
26880 +/* For the Linux/i386 boot protocol version 2.07. */
26881 +struct grub_linux_kernel_header
26883 + grub_uint8_t setup_sects; /* The size of the setup in sectors */
26884 + grub_uint16_t root_flags; /* If the root is mounted readonly */
26885 + grub_uint32_t syssize; /* obsolete */
26886 + grub_uint16_t ram_size; /* obsolete */
26887 + grub_uint16_t vid_mode; /* Video mode control */
26888 + grub_uint16_t root_dev; /* Default root device number */
26889 + grub_uint16_t boot_flag; /* 0xAA55 magic number */
26890 + grub_uint8_t jump_ins; /* Jump instruction */
26891 + grub_uint8_t jump_off; /* Jump offset */
26892 + grub_uint32_t header; /* Magic signature "HdrS" */
26893 + grub_uint16_t version; /* Boot protocol version supported */
26894 + grub_uint32_t realmode_swtch; /* Boot loader hook */
26895 + grub_uint16_t start_sys; /* The load-low segment (obsolete) */
26896 + grub_uint16_t kernel_version; /* Points to kernel version string */
26897 + grub_uint8_t type_of_loader; /* Boot loader identifier */
26898 + grub_uint8_t loadflags; /* Boot protocol option flags */
26899 + grub_uint16_t setup_move_size;/* Move to high memory size */
26900 + grub_uint32_t code32_start; /* Boot loader hook */
26901 + grub_uint32_t ramdisk_image; /* initrd load address */
26902 + grub_uint32_t ramdisk_size; /* initrd size */
26903 + grub_uint32_t bootsect_kludge;/* obsolete */
26904 + grub_uint16_t heap_end_ptr; /* Free memory after setup end */
26905 + grub_uint16_t pad1; /* Unused */
26906 + grub_uint32_t cmd_line_ptr; /* Points to the kernel command line */
26907 + grub_uint32_t initrd_addr_max;/* Highest address for initrd */
26908 + grub_uint32_t kernel_alignment;
26909 + grub_uint8_t relocatable_kernel;
26910 + grub_uint8_t min_alignment;
26911 + grub_uint8_t pad2[2];
26912 + grub_uint32_t cmdline_size;
26913 + grub_uint32_t hardware_subarch;
26914 + grub_uint64_t hardware_subarch_data;
26915 + grub_uint32_t payload_offset;
26916 + grub_uint32_t payload_length;
26917 + grub_uint64_t setup_data;
26918 + grub_uint64_t pref_address;
26919 + grub_uint32_t init_size;
26920 +} __attribute__ ((packed));
26922 +/* Boot parameters for Linux based on 2.6.12. This is used by the setup
26923 + sectors of Linux, and must be simulated by GRUB on EFI, because
26924 + the setup sectors depend on BIOS. */
26925 +struct linux_kernel_params
26927 + grub_uint8_t video_cursor_x; /* 0 */
26928 + grub_uint8_t video_cursor_y;
26930 + grub_uint16_t ext_mem; /* 2 */
26932 + grub_uint16_t video_page; /* 4 */
26933 + grub_uint8_t video_mode; /* 6 */
26934 + grub_uint8_t video_width; /* 7 */
26936 + grub_uint8_t padding1[0xa - 0x8];
26938 + grub_uint16_t video_ega_bx; /* a */
26940 + grub_uint8_t padding2[0xe - 0xc];
26942 + grub_uint8_t video_height; /* e */
26943 + grub_uint8_t have_vga; /* f */
26944 + grub_uint16_t font_size; /* 10 */
26946 + grub_uint16_t lfb_width; /* 12 */
26947 + grub_uint16_t lfb_height; /* 14 */
26948 + grub_uint16_t lfb_depth; /* 16 */
26949 + grub_uint32_t lfb_base; /* 18 */
26950 + grub_uint32_t lfb_size; /* 1c */
26952 + grub_uint16_t cl_magic; /* 20 */
26953 + grub_uint16_t cl_offset;
26955 + grub_uint16_t lfb_line_len; /* 24 */
26956 + grub_uint8_t red_mask_size; /* 26 */
26957 + grub_uint8_t red_field_pos;
26958 + grub_uint8_t green_mask_size;
26959 + grub_uint8_t green_field_pos;
26960 + grub_uint8_t blue_mask_size;
26961 + grub_uint8_t blue_field_pos;
26962 + grub_uint8_t reserved_mask_size;
26963 + grub_uint8_t reserved_field_pos;
26964 + grub_uint16_t vesapm_segment; /* 2e */
26965 + grub_uint16_t vesapm_offset; /* 30 */
26966 + grub_uint16_t lfb_pages; /* 32 */
26967 + grub_uint16_t vesa_attrib; /* 34 */
26968 + grub_uint32_t capabilities; /* 36 */
26970 + grub_uint8_t padding3[0x40 - 0x3a];
26972 + grub_uint16_t apm_version; /* 40 */
26973 + grub_uint16_t apm_code_segment; /* 42 */
26974 + grub_uint32_t apm_entry; /* 44 */
26975 + grub_uint16_t apm_16bit_code_segment; /* 48 */
26976 + grub_uint16_t apm_data_segment; /* 4a */
26977 + grub_uint16_t apm_flags; /* 4c */
26978 + grub_uint32_t apm_code_len; /* 4e */
26979 + grub_uint16_t apm_data_len; /* 52 */
26981 + grub_uint8_t padding4[0x60 - 0x54];
26983 + grub_uint32_t ist_signature; /* 60 */
26984 + grub_uint32_t ist_command; /* 64 */
26985 + grub_uint32_t ist_event; /* 68 */
26986 + grub_uint32_t ist_perf_level; /* 6c */
26988 + grub_uint8_t padding5[0x80 - 0x70];
26990 + grub_uint8_t hd0_drive_info[0x10]; /* 80 */
26991 + grub_uint8_t hd1_drive_info[0x10]; /* 90 */
26992 + grub_uint16_t rom_config_len; /* a0 */
26994 + grub_uint8_t padding6[0x1b8 - 0xa2];
26998 + grub_uint32_t padding7_1; /* 0x1b8 */
26999 + grub_uint32_t padding7_2; /* 0x1bc */
27001 + grub_uint32_t efi_signature; /* 1c0 */
27002 + grub_uint32_t efi_system_table; /* 1c4 */
27003 + grub_uint32_t efi_mem_desc_size; /* 1c8 */
27004 + grub_uint32_t efi_mem_desc_version; /* 1cc */
27005 + grub_uint32_t efi_mmap; /* 1d0 */
27006 + grub_uint32_t efi_mmap_size; /* 1d4 */
27007 + grub_uint32_t efi_system_table_hi; /* 1d8 */
27008 + grub_uint32_t efi_mmap_hi; /* 1dc */
27011 + grub_uint32_t efi_system_table; /* 1b8 */
27013 + grub_uint32_t padding7_1; /* 0x1bc */
27015 + grub_uint32_t efi_signature; /* 1c0 */
27016 + grub_uint32_t efi_mem_desc_size; /* 1c4 */
27017 + grub_uint32_t efi_mem_desc_version; /* 1c8 */
27018 + grub_uint32_t efi_mmap_size; /* 1cc */
27019 + grub_uint32_t efi_mmap; /* 1d0 */
27021 + grub_uint8_t padding7_2[0x1e0 - 0x1d4]; /* 1d4 */
27024 + grub_uint32_t padding7_1; /* 0x1b8 */
27025 + grub_uint32_t padding7_2; /* 0x1bc */
27026 + grub_uint32_t padding7_3; /* 0x1c0 */
27027 + grub_uint32_t efi_system_table; /* 0x1c4 */
27028 + grub_uint32_t efi_mem_desc_size; /* 0x1c8 */
27029 + grub_uint32_t efi_mem_desc_version; /* 0x1cc */
27030 + grub_uint32_t efi_mmap; /* 0x1d0 */
27031 + grub_uint32_t efi_mmap_size; /* 0x1d4 */
27032 + grub_uint8_t padding7_4[0x1e0 - 0x1d8]; /* 0x1d8 */
27036 + grub_uint32_t alt_mem; /* 1e0 */
27038 + grub_uint8_t padding8[0x1e8 - 0x1e4]; /* 1e4 */
27040 + grub_uint8_t e820_nr_map; /* 1e8 */
27041 + grub_uint8_t eddbuf_entries; /* 1e9 */
27042 + grub_uint8_t edd_mbr_sig_buf_entries; /* 1ea */
27044 + grub_uint8_t padding9[0x1f1 - 0x1eb];
27046 + struct grub_linux_kernel_header hdr; /* 0x1f1 */
27048 + grub_uint8_t padding10[0x2d0-0x1f1-sizeof(struct grub_linux_kernel_header)];
27050 + grub_uint8_t e820_map[2560]; /* 0x2d0 */
27052 + grub_uint8_t padding11[0x1000 - 0xcd0];
27053 +} __attribute__ ((packed));
27054 +#endif /* ! ASM_FILE */
27056 +#endif /* ! GRUB_LINUX_MACHINE_HEADER */
27057 diff --git a/efi/grub/x86_64/types.h b/efi/grub/x86_64/types.h
27058 new file mode 100644
27059 index 0000000..0c077f6
27061 +++ b/efi/grub/x86_64/types.h
27064 + * GRUB -- GRand Unified Bootloader
27065 + * Copyright (C) 2002,2006 Free Software Foundation, Inc.
27067 + * GRUB is free software; you can redistribute it and/or modify
27068 + * it under the terms of the GNU General Public License as published by
27069 + * the Free Software Foundation; either version 2 of the License, or
27070 + * (at your option) any later version.
27072 + * This program is distributed in the hope that it will be useful,
27073 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
27074 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27075 + * GNU General Public License for more details.
27077 + * You should have received a copy of the GNU General Public License
27078 + * along with GRUB; if not, write to the Free Software
27079 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
27082 +#ifndef GRUB_TYPES_CPU_HEADER
27083 +#define GRUB_TYPES_CPU_HEADER 1
27085 +/* The size of void *. */
27086 +#define GRUB_TARGET_SIZEOF_VOID_P 8
27088 +/* The size of long. */
27089 +#define GRUB_TARGET_SIZEOF_LONG 8
27091 +/* x64_64 is little-endian. */
27092 +#undef GRUB_TARGET_WORDS_BIGENDIAN
27094 +#endif /* ! GRUB_TYPES_CPU_HEADER */
27095 diff --git a/efi/ia32/callwrap.S b/efi/ia32/callwrap.S
27096 new file mode 100644
27097 index 0000000..50d737f
27099 +++ b/efi/ia32/callwrap.S
27101 +/* This file is a stub for ia32 building */
27102 diff --git a/efi/ia32/callwrap.c b/efi/ia32/callwrap.c
27103 new file mode 100644
27104 index 0000000..56df899
27106 +++ b/efi/ia32/callwrap.c
27109 +#define ENTRY(name) \
27110 + ".globl " #name ";" \
27117 + "movl %esp,%ebp \n"
27118 + "subl $8, %esp \n"
27119 + "call *8(%ebp) \n"
27127 + "movl %esp,%ebp \n"
27128 + "subl $20, %esp \n"
27129 + "pushl 12(%ebp) \n"
27130 + "call *8(%ebp) \n"
27138 + "movl %esp,%ebp \n"
27139 + "subl $16, %esp \n"
27140 + "pushl 16(%ebp) \n"
27141 + "pushl 12(%ebp) \n"
27142 + "call *8(%ebp) \n"
27150 + "movl %esp,%ebp \n"
27151 + "subl $12, %esp \n"
27152 + "pushl 20(%ebp) \n"
27153 + "pushl 16(%ebp) \n"
27154 + "pushl 12(%ebp) \n"
27155 + "call *8(%ebp) \n"
27163 + "movl %esp,%ebp \n"
27164 + "subl $8, %esp \n"
27165 + "pushl 24(%ebp) \n"
27166 + "pushl 20(%ebp) \n"
27167 + "pushl 16(%ebp) \n"
27168 + "pushl 12(%ebp) \n"
27169 + "call *8(%ebp) \n"
27177 + "movl %esp,%ebp \n"
27178 + "subl $20, %esp \n"
27179 + "pushl 28(%ebp) \n"
27180 + "pushl 24(%ebp) \n"
27181 + "pushl 20(%ebp) \n"
27182 + "pushl 16(%ebp) \n"
27183 + "pushl 12(%ebp) \n"
27184 + "call *8(%ebp) \n"
27190 +ENTRY(i386_64_call5)
27192 + "movl %esp,%ebp \n"
27193 + "subl $12, %esp \n"
27194 + "pushl 36(%ebp) \n"
27195 + "pushl 32(%ebp) \n"
27196 + "pushl 28(%ebp) \n"
27197 + "pushl 24(%ebp) \n"
27198 + "pushl 20(%ebp) \n"
27199 + "pushl 16(%ebp) \n"
27200 + "pushl 12(%ebp) \n"
27201 + "call *8(%ebp) \n"
27210 + "movl %esp,%ebp \n"
27211 + "subl $16, %esp \n"
27212 + "pushl 32(%ebp) \n"
27213 + "pushl 28(%ebp) \n"
27214 + "pushl 24(%ebp) \n"
27215 + "pushl 20(%ebp) \n"
27216 + "pushl 16(%ebp) \n"
27217 + "pushl 12(%ebp) \n"
27218 + "call *8(%ebp) \n"
27226 + "movl %esp,%ebp \n"
27227 + "subl $12, %esp \n"
27228 + "pushl 36(%ebp) \n"
27229 + "pushl 32(%ebp) \n"
27230 + "pushl 28(%ebp) \n"
27231 + "pushl 24(%ebp) \n"
27232 + "pushl 20(%ebp) \n"
27233 + "pushl 16(%ebp) \n"
27234 + "pushl 12(%ebp) \n"
27235 + "call *8(%ebp) \n"
27239 diff --git a/efi/ia32/loader/bin_to_h.c b/efi/ia32/loader/bin_to_h.c
27240 new file mode 100644
27241 index 0000000..4cff104
27243 +++ b/efi/ia32/loader/bin_to_h.c
27245 +#include <stdio.h>
27246 +#include <stdlib.h>
27254 + printf ("unsigned char switch_image[] = {\n");
27256 + while ((c = getchar ()) != EOF)
27258 + printf("0x%02x,%s",
27260 + (++n & 0x07) ? " " : "\n");
27269 + "int switch_size = sizeof switch_image;\n");
27274 diff --git a/efi/ia32/loader/linux.c b/efi/ia32/loader/linux.c
27275 new file mode 100644
27276 index 0000000..d795d28
27278 +++ b/efi/ia32/loader/linux.c
27281 + * GRUB -- GRand Unified Bootloader
27282 + * Copyright (C) 2006 Free Software Foundation, Inc.
27284 + * This program is free software; you can redistribute it and/or modify
27285 + * it under the terms of the GNU General Public License as published by
27286 + * the Free Software Foundation; either version 2 of the License, or
27287 + * (at your option) any later version.
27289 + * This program is distributed in the hope that it will be useful,
27290 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
27291 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27292 + * GNU General Public License for more details.
27294 + * You should have received a copy of the GNU General Public License
27295 + * along with this program; if not, write to the Free Software
27296 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
27299 +#include <grub/misc.h>
27300 +#include <grub/types.h>
27301 +#include <grub/cpu/linux.h>
27302 +#include <grub/efi/api.h>
27303 +#include <grub/efi/efi.h>
27304 +#include <grub/efi/misc.h>
27306 +#include "switch.h"
27308 +#include <shared.h>
27310 +#include "graphics.h"
27312 +#define grub_file_size() filemax
27314 +#define NEXT_MEMORY_DESCRIPTOR(desc, size) \
27315 + ((grub_efi_memory_descriptor_t *) ((char *) (desc) + (size)))
27317 +#define PTR_HI(x) ((grub_uint32_t) ((unsigned long long)((unsigned long)(x)) >> 32))
27319 +#ifndef SECTOR_SIZE
27320 +#define SECTOR_SIZE 0x200
27321 +#endif /* defined(SECTOR_SIZE) */
27322 +#ifndef SECTOR_BITS
27323 +#define SECTOR_BITS 9
27324 +#endif /* defined(SECTOR_BITS) */
27326 +static unsigned long linux_mem_size;
27327 +static int loaded;
27328 +static void *real_mode_mem;
27329 +static void *prot_mode_mem;
27330 +static void *initrd_mem;
27331 +static grub_efi_uintn_t real_mode_pages;
27332 +static grub_efi_uintn_t prot_mode_pages;
27333 +static grub_efi_uintn_t initrd_pages;
27334 +static grub_efi_guid_t graphics_output_guid = GRUB_EFI_GRAPHICS_OUTPUT_GUID;
27336 +static inline grub_size_t
27337 +page_align (grub_size_t size)
27339 + return (size + (1 << 12) - 1) & (~((1 << 12) - 1));
27345 + if (real_mode_mem)
27347 + grub_efi_free_pages ((grub_addr_t) real_mode_mem, real_mode_pages);
27348 + real_mode_mem = 0;
27351 + if (prot_mode_mem)
27353 + grub_efi_free_pages ((grub_addr_t) prot_mode_mem, prot_mode_pages);
27354 + prot_mode_mem = 0;
27359 + grub_efi_free_pages ((grub_addr_t) initrd_mem, initrd_pages);
27365 + grub_efi_free_pages ((grub_addr_t) mmap_buf, mmap_pages);
27370 +/* Allocate pages for the real mode code and the protected mode code
27371 + for linux as well as a memory map buffer. */
27373 +allocate_pages (grub_size_t real_size, grub_size_t prot_size)
27375 + grub_efi_uintn_t desc_size;
27376 + grub_efi_memory_descriptor_t *mmap_end;
27377 + grub_efi_memory_descriptor_t *desc;
27378 + grub_efi_physical_address_t addr;
27380 + /* Make sure that each size is aligned to a page boundary. */
27381 + real_size = page_align (real_size + SECTOR_SIZE);
27382 + prot_size = page_align (prot_size);
27384 + grub_dprintf ("linux", "real_size = %x, prot_size = %x, mmap_size = %x\n",
27385 + (unsigned int) real_size, (unsigned int) prot_size,
27386 + (unsigned int) mmap_size);
27388 + /* Calculate the number of pages; Combine the real mode code with
27389 + the memory map buffer for simplicity. */
27390 + real_mode_pages = (real_size >> 12);
27391 + prot_mode_pages = (prot_size >> 12);
27393 + /* Initialize the memory pointers with NULL for convenience. */
27394 + real_mode_mem = 0;
27395 + prot_mode_mem = 0;
27397 + if (grub_efi_get_memory_map (0, &desc_size, 0) <= 0)
27398 + grub_fatal ("cannot get memory map");
27401 + mmap_end = NEXT_MEMORY_DESCRIPTOR (mmap_buf, mmap_size);
27402 + /* First, find free pages for the real mode code
27403 + and the memory map buffer. */
27404 + for (desc = mmap_buf;
27406 + desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size))
27408 + if (desc->type == GRUB_EFI_CONVENTIONAL_MEMORY
27409 + && desc->num_pages >= real_mode_pages)
27411 + grub_efi_physical_address_t physical_end;
27413 + physical_end = desc->physical_start + (desc->num_pages << 12);
27415 + grub_dprintf ("linux", "physical_start = %x, physical_end = %x\n",
27416 + (unsigned) desc->physical_start,
27417 + (unsigned) physical_end);
27418 + addr = physical_end - real_size;
27419 + if (addr < 0x10000)
27422 + grub_dprintf ("linux", "trying to allocate %u pages at %x\n",
27423 + (unsigned) real_mode_pages, (unsigned) addr);
27424 + real_mode_mem = grub_efi_allocate_pages (addr, real_mode_pages);
27425 + if (! real_mode_mem)
27426 + grub_fatal ("cannot allocate pages");
27428 + desc->num_pages -= real_mode_pages;
27433 + if (! real_mode_mem)
27435 + grub_printf ("cannot allocate real mode pages");
27436 + errnum = ERR_WONT_FIT;
27440 + /* Next, find free pages for the protected mode code. */
27441 + /* XXX what happens if anything is using this address? */
27442 + prot_mode_mem = grub_efi_allocate_pages (0x100000, prot_mode_pages);
27443 + if (! prot_mode_mem)
27444 + grub_fatal("Cannot allocate pages for VMLINUZ");
27453 +/* do some funky stuff, then boot linux */
27457 + grub_printf ("zImage is not supported under EFI.\n");
27461 +#ifndef __x86_64__
27463 + unsigned short limit;
27464 + unsigned int base;
27465 +} __attribute__ ((packed))
27466 + gdt_addr = { 0x800, 0x94000 },
27467 + idt_addr = { 0, 0 };
27469 +unsigned short init_gdt[] = {
27470 + /* gdt[0]: dummy */
27473 + /* gdt[1]: unused */
27476 + /* gdt[2]: code */
27477 + 0xFFFF, /* 4Gb - (0x100000*0x1000 = 4Gb) */
27478 + 0x0000, /* base address=0 */
27479 + 0x9A00, /* code read/exec */
27480 + 0x00CF, /* granularity=4096, 386 (+5th nibble of limit) */
27482 + /* gdt[3]: data */
27483 + 0xFFFF, /* 4Gb - (0x100000*0x1000 = 4Gb) */
27484 + 0x0000, /* base address=0 */
27485 + 0x9200, /* data read/write */
27486 + 0x00CF, /* granularity=4096, 386 (+5th nibble of limit) */
27491 +big_linux_boot (void)
27493 + struct linux_kernel_params *params;
27494 + struct grub_linux_kernel_header *lh;
27495 + grub_efi_uintn_t map_key;
27496 + grub_efi_uintn_t desc_size;
27497 + grub_efi_uint32_t desc_version;
27501 + params = real_mode_mem;
27503 + graphics_set_kernel_params (params);
27505 + if (grub_efi_get_memory_map (&map_key, &desc_size, &desc_version) <= 0)
27506 + grub_fatal ("cannot get memory map");
27508 + /* Pass e820 memmap. */
27509 + e820_map_from_efi_map ((struct e820_entry *) params->e820_map, &e820_nr_map,
27510 + mmap_buf, desc_size, mmap_size);
27511 + params->e820_nr_map = e820_nr_map;
27513 + grub_dprintf(__func__,"got to ExitBootServices...\n");
27514 + if (! grub_efi_exit_boot_services (map_key))
27515 + grub_fatal ("cannot exit boot services");
27516 + /* Note that no boot services are available from here. */
27518 + lh = ¶ms->hdr;
27519 + /* Pass EFI parameters. */
27520 + if (grub_le_to_cpu16 (lh->version) >= 0x0206) {
27521 + params->version_0206.efi_mem_desc_size = desc_size;
27522 + params->version_0206.efi_mem_desc_version = desc_version;
27523 + params->version_0206.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf;
27524 + params->version_0206.efi_mmap_size = mmap_size;
27525 + } else if (grub_le_to_cpu16 (lh->version) >= 0x0204) {
27526 + params->version_0204.efi_mem_desc_size = desc_size;
27527 + params->version_0204.efi_mem_desc_version = desc_version;
27528 + params->version_0204.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf;
27529 + params->version_0204.efi_mmap_size = mmap_size;
27530 + } else /* dunno */ {
27531 + params->dunno.efi_mem_desc_size = desc_size;
27532 + params->dunno.efi_mem_desc_version = desc_version;
27533 + params->dunno.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf;
27534 + params->dunno.efi_mmap_size = mmap_size;
27535 + params->dunno.efi_mmap_hi = PTR_HI(mmap_buf);
27539 + /* copy our real mode transition code to 0x700 */
27540 + memcpy ((void *) 0x700, switch_image, switch_size);
27541 + asm volatile ( "mov $0x700, %%rdi" : :);
27543 + /* Pass parameters. */
27544 + asm volatile ("mov %0, %%rsi" : : "m" (real_mode_mem));
27545 + asm volatile ("movl %0, %%ebx" : : "m" (params->hdr.code32_start));
27547 + /* Enter Linux, switch from 64-bit long mode
27548 + * to 32-bit protect mode, this code end address
27549 + * must not exceed 0x1000, because linux kernel bootstrap
27550 + * code will flush this area
27552 + asm volatile ( "jmp *%%rdi" : :);
27555 + asm volatile ( "cli" : : );
27557 + grub_memset((void *)gdt_addr.base, gdt_addr.limit, 0);
27558 + grub_memcpy((void *)gdt_addr.base, init_gdt, sizeof (init_gdt));
27561 + /* copy our real mode transition code to 0x7C00 */
27562 + memcpy ((void *) 0x7C00, switch_image, switch_size);
27563 + asm volatile ( "mov $0x7C00, %%ebx" : : );
27564 + asm volatile ( "jmp *%%ebx" : : );
27567 + /* load descriptor table pointers */
27568 + // asm volatile ( "lidt %0" : : "m" (idt_addr) );
27569 + asm volatile ( "lgdt %0" : : "m" (gdt_addr) );
27572 + * ebx := 0 (%%TBD - do not know why, yet)
27573 + * ecx := kernel entry point
27574 + * esi := address of boot sector and setup data
27577 + asm volatile ( "movl %0, %%esi" : : "m" (real_mode_mem) );
27578 + asm volatile ( "movl %0, %%ecx" : : "m" (params->hdr.code32_start) );
27579 + asm volatile ( "xorl %%ebx, %%ebx" : : );
27582 + * Jump to kernel entry point.
27585 + asm volatile ( "jmp *%%ecx" : : );
27589 + /* Never reach here. */
27594 +grub_load_linux (char *kernel, char *arg)
27596 + struct grub_linux_kernel_header *lh;
27597 + struct linux_kernel_params *params;
27598 + static struct linux_kernel_params params_buf;
27599 + grub_uint8_t setup_sects;
27600 + grub_size_t real_size, prot_size;
27601 + grub_ssize_t len;
27604 + if (kernel == NULL)
27606 + errnum = ERR_BAD_FILENAME;
27607 + grub_printf ("no kernel specified");
27611 + if (! grub_open (kernel))
27614 + if (grub_read ((char *) ¶ms_buf, sizeof (params_buf))
27615 + != sizeof (params_buf))
27617 + errnum = ERR_EXEC_FORMAT;
27619 + grub_printf ("cannot read the linux header");
27623 + lh = ¶ms_buf.hdr;
27625 + if (lh->boot_flag != grub_cpu_to_le16 (0xaa55))
27627 + errnum = ERR_EXEC_FORMAT;
27629 + grub_printf ("invalid magic number: %x", lh->boot_flag);
27633 + /* EFI support is quite new, so reject old versions. */
27634 + if (lh->header != grub_cpu_to_le32 (GRUB_LINUX_MAGIC_SIGNATURE)
27635 + || grub_le_to_cpu16 (lh->version) < 0x0203)
27638 + errnum = ERR_EXEC_FORMAT;
27639 + grub_printf ("too old version");
27643 + /* I'm not sure how to support zImage on EFI. */
27644 + if (! (lh->loadflags & GRUB_LINUX_FLAG_BIG_KERNEL))
27646 + errnum = ERR_EXEC_FORMAT;
27647 + grub_printf ("zImage is not supported");
27651 + setup_sects = lh->setup_sects;
27653 + real_size = 0x1000 + grub_strlen(arg);
27654 + prot_size = grub_file_size () - (setup_sects << SECTOR_BITS) - SECTOR_SIZE;
27656 + if (! allocate_pages (real_size, prot_size))
27659 + /* XXX Linux assumes that only elilo can boot Linux on EFI!!! */
27660 + lh->type_of_loader = 0x50;
27662 + lh->cmd_line_ptr = (grub_uint32_t) (unsigned long) real_mode_mem + 0x1000;
27664 + lh->heap_end_ptr = LINUX_HEAP_END_OFFSET;
27665 + lh->loadflags |= LINUX_FLAG_CAN_USE_HEAP;
27667 + lh->ramdisk_image = 0;
27668 + lh->ramdisk_size = 0;
27670 + grub_memset(real_mode_mem, 0, real_size);
27672 + params = (struct linux_kernel_params *) real_mode_mem;
27674 + grub_memmove(¶ms->hdr, lh, 0x202 + lh->jump_off - 0x1f1);
27676 + params->cl_magic = GRUB_LINUX_CL_MAGIC;
27677 + params->cl_offset = 0x1000;
27679 + /* These are not needed to be precise, because Linux uses these values
27680 + only to raise an error when the decompression code cannot find good
27682 + params->ext_mem = ((32 * 0x100000) >> 10);
27683 + params->alt_mem = ((32 * 0x100000) >> 10);
27685 + /* No APM on EFI. */
27686 + params->apm_version = 0;
27687 + params->apm_code_segment = 0;
27688 + params->apm_entry = 0;
27689 + params->apm_16bit_code_segment = 0;
27690 + params->apm_data_segment = 0;
27691 + params->apm_flags = 0;
27692 + params->apm_code_len = 0;
27693 + params->apm_data_len = 0;
27695 + /* XXX is there any way to use SpeedStep on EFI? */
27696 + params->ist_signature = 0;
27697 + params->ist_command = 0;
27698 + params->ist_event = 0;
27699 + params->ist_perf_level = 0;
27701 + /* Let the kernel probe the information. */
27702 + grub_memset (params->hd0_drive_info, 0, sizeof (params->hd0_drive_info));
27703 + grub_memset (params->hd1_drive_info, 0, sizeof (params->hd1_drive_info));
27705 + /* No MCA on EFI. */
27706 + params->rom_config_len = 0;
27708 + if (grub_le_to_cpu16 (lh->version) >= 0x0206) {
27709 + grub_memcpy(¶ms->version_0204.efi_signature, "EL32", 4);
27710 + params->version_0206.efi_system_table = \
27711 + (grub_uint32_t) (unsigned long) grub_efi_system_table;
27712 + } else if (grub_le_to_cpu16 (lh->version) >= 0x0204) {
27713 + grub_memcpy(¶ms->version_0204.efi_signature, "EFIL", 4);
27714 + params->version_0204.efi_system_table = \
27715 + (grub_uint32_t) (unsigned long) grub_efi_system_table;
27716 + } else /* dunno */ {
27717 + params->dunno.efi_signature = GRUB_LINUX_EFI_SIGNATURE_X64;
27718 + params->dunno.efi_system_table = \
27719 + (grub_uint32_t) (unsigned long) grub_efi_system_table;
27720 + params->dunno.efi_system_table_hi = PTR_HI(grub_efi_system_table);
27722 + /* The other EFI parameters are filled when booting. */
27725 + params->eddbuf_entries = 0;
27726 + params->edd_mbr_sig_buf_entries = 0;
27728 + /* XXX there is no way to know if the kernel really supports EFI. */
27729 + grub_printf ("[Linux-EFI, setup=0x%x, size=0x%x]\n", (unsigned int)real_size,
27730 + (unsigned int)prot_size);
27732 + /* Check the mem= option to limit memory used for initrd. */
27736 + mem = grub_strstr (arg, "mem=");
27739 + char *value = mem + 4;
27741 + safe_parse_maxulong (&value, &linux_mem_size);
27744 + case ERR_NUMBER_OVERFLOW:
27745 + /* If an overflow occurs, use the maximum address for
27746 + initrd instead. This is good, because MAXINT is
27747 + greater than LINUX_INITRD_MAX_ADDRESS. */
27748 + linux_mem_size = LINUX_INITRD_MAX_ADDRESS;
27749 + errnum = ERR_NONE;
27756 + switch (grub_tolower (*value))
27768 + /* Check an overflow. */
27769 + if (linux_mem_size > (~0UL >> shift))
27770 + linux_mem_size = 0;
27772 + linux_mem_size <<= shift;
27777 + linux_mem_size = 0;
27778 + errnum = ERR_NONE;
27783 + linux_mem_size = 0;
27786 + dest = grub_stpcpy ((char *) real_mode_mem + 0x1000, skip_to(0, arg));
27788 + grub_seek ((setup_sects << SECTOR_BITS) + SECTOR_SIZE);
27790 + if (grub_read ((char *) GRUB_LINUX_BZIMAGE_ADDR, len) != len)
27791 + grub_printf ("Couldn't read file");
27793 + if (errnum == ERR_NONE)
27804 + if (errnum != ERR_NONE)
27808 + return errnum ? KERNEL_TYPE_NONE : KERNEL_TYPE_BIG_LINUX;
27812 +grub_load_initrd (char *initrd)
27814 + grub_ssize_t size;
27815 + grub_addr_t addr_min, addr_max;
27816 + grub_addr_t addr;
27817 + grub_efi_uintn_t map_key;
27818 + grub_efi_memory_descriptor_t *mmap_end;
27819 + grub_efi_memory_descriptor_t *desc;
27820 + grub_efi_memory_descriptor_t tdesc;
27821 + grub_efi_uintn_t desc_size;
27822 + grub_efi_uint32_t desc_version;
27823 + struct linux_kernel_params *params;
27825 + if (initrd == NULL)
27827 + errnum = ERR_BAD_FILENAME;
27828 + grub_printf ("No module specified");
27834 + errnum = ERR_UNRECOGNIZED;
27835 + grub_printf ("You need to load the kernel first.");
27839 + if (! grub_open (initrd))
27842 + size = grub_file_size ();
27843 + initrd_pages = (page_align (size) >> 12);
27845 + params = (struct linux_kernel_params *) real_mode_mem;
27846 + grub_dprintf(__func__, "initrd_pages: %lu\n", initrd_pages);
27848 + addr_max = grub_cpu_to_le32 (params->hdr.initrd_addr_max);
27849 + if (linux_mem_size != 0 && linux_mem_size < addr_max)
27850 + addr_max = linux_mem_size;
27851 + addr_max &= ~((1 << 12)-1);
27853 + /* Linux 2.3.xx has a bug in the memory range check, so avoid
27855 + Linux 2.2.xx has a bug in the memory range check, which is
27856 + worse than that of Linux 2.3.xx, so avoid the last 64kb. */
27857 + //addr_max -= 0x10000;
27859 + /* Usually, the compression ratio is about 50%. */
27860 + addr_min = (grub_addr_t) prot_mode_mem + ((prot_mode_pages * 3) << 12);
27861 + grub_dprintf(__func__, "prot_mode_mem=%p prot_mode_pages=%lu\n", prot_mode_mem, prot_mode_pages);
27863 + /* Find the highest address to put the initrd. */
27864 + if (grub_efi_get_memory_map (&map_key, &desc_size, &desc_version) <= 0)
27865 + grub_fatal ("cannot get memory map");
27867 + mmap_end = NEXT_MEMORY_DESCRIPTOR (mmap_buf, mmap_size);
27869 + for (desc = mmap_buf;
27871 + desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size))
27873 + if (desc->type != GRUB_EFI_CONVENTIONAL_MEMORY)
27875 + memcpy(&tdesc, desc, sizeof (tdesc));
27876 + if (tdesc.physical_start < addr_min
27877 + && tdesc.num_pages > ((addr_min - tdesc.physical_start) >> 12))
27879 + tdesc.num_pages -= ((addr_min - tdesc.physical_start) >> 12);
27880 + tdesc.physical_start = addr_min;
27883 + 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);
27884 + if (tdesc.physical_start >= addr_min
27885 + && tdesc.physical_start + page_align (size) <= addr_max
27886 + && tdesc.num_pages >= initrd_pages)
27888 + grub_efi_physical_address_t physical_end;
27890 + physical_end = tdesc.physical_start + (tdesc.num_pages << 12);
27891 + if (physical_end > addr_max)
27892 + physical_end = addr_max;
27894 + if (physical_end <= 0x7fffffffUL && physical_end > addr)
27895 + addr = physical_end - page_align (size);
27901 + errnum = ERR_UNRECOGNIZED;
27902 + grub_printf ("no free pages available");
27906 + initrd_mem = grub_efi_allocate_pages (addr, initrd_pages);
27907 + if (! initrd_mem)
27908 + grub_fatal ("cannot allocate pages: %x@%x", (unsigned)initrd_pages,
27911 + if (grub_read (initrd_mem, size) != size)
27913 + grub_printf ("Couldn't read file");
27917 + grub_printf (" [Initrd, addr=0x%x, size=0x%x]\n", (unsigned int) addr,
27918 + (unsigned int) size);
27920 + params->hdr.ramdisk_image = addr;
27921 + params->hdr.ramdisk_size = size;
27928 diff --git a/efi/ia32/loader/switch.S b/efi/ia32/loader/switch.S
27929 new file mode 100644
27930 index 0000000..14142e9
27932 +++ b/efi/ia32/loader/switch.S
27935 +# Switch from protected mode to real mode and jump to setup.S
27936 +# image located at %cx:0.
27938 +# This module must be placed into physical memory at 0:7C00h.
27939 +# EFI has some real mode thunking code at 2000:0h.
27941 +# Processor and non-maskable interrupts should be disabled
27942 +# before control is passed to this module.
27951 + # Load identity mapped GDT & real mode IDT.
27952 + # Add 7C00h to the addresses since this is linked to start
27953 + # at 0h and it is being placed at 7C00h.
27956 + lgdt %cs:gdt_48 + 0x7C00
27957 + lidt %cs:idt_48 + 0x7C00
27960 + # Turn off PG bit in CR0 and set CR3 to zero.
27964 + andl $0x7FFFFFFF, %eax
27972 + # Now we add 7B00h because we need to force the segment
27973 + # address and selector to be the same.
27977 + .long pm_reload + 0x7B00
27985 + # Reload DS, ES, FS, GS & SS.
27996 + # Switch to real mode. Clear PE bit in CR0.
28000 + andl $0xFFFFFFFE, %eax
28008 + .word rm_reload + 0x7C00
28014 + # Reload SS & SP.
28019 + movw $0x7BFE, %sp
28022 + # Start running setup.S
28030 + # GDT & IDT stuff for switching into real mode.
28033 +gdt: .word 0, 0, 0, 0 # unused (00h)
28034 + .word 0, 0, 0, 0 # dummy (08h)
28035 + .word 0xFFFF, 0x100 # code (10h)
28037 + .word 0xFFFF, 0x180 # data (18h)
28040 +gdt_48: .word 0x08 * 0x400
28041 + .long gdt + 0x7C00
28043 +idt_48: .word 0x400
28047 + # Be careful not to exceed 1F0h or the the bootsect.S
28048 + # parameters will be lost!
28052 diff --git a/efi/ia32/loader/switch.h b/efi/ia32/loader/switch.h
28053 new file mode 100644
28054 index 0000000..4e18dde
28056 +++ b/efi/ia32/loader/switch.h
28058 +unsigned char switch_image[] = {
28059 +0x2e, 0x0f, 0x01, 0x15, 0x6f, 0x7c, 0x00, 0x00,
28060 +0x2e, 0x0f, 0x01, 0x1d, 0x75, 0x7c, 0x00, 0x00,
28061 +0x0f, 0x20, 0xc0, 0x25, 0xff, 0xff, 0xff, 0x7f,
28062 +0x0f, 0x22, 0xc0, 0x31, 0xc0, 0x0f, 0x22, 0xd8,
28063 +0xea, 0x27, 0x7b, 0x00, 0x00, 0x10, 0x00, 0xb8,
28064 +0x18, 0x00, 0x8e, 0xd8, 0x8e, 0xc0, 0x8e, 0xe0,
28065 +0x8e, 0xe8, 0x8e, 0xd0, 0x0f, 0x20, 0xc0, 0x66,
28066 +0x83, 0xe0, 0xfe, 0x0f, 0x22, 0xc0, 0xea, 0x43,
28067 +0x7c, 0x00, 0x00, 0x31, 0xc0, 0x8e, 0xd0, 0xbc,
28068 +0xfe, 0x7b, 0xea, 0x00, 0x00, 0x20, 0x90, 0x00,
28069 +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
28070 +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
28071 +0xff, 0x00, 0x01, 0x00, 0x9a, 0x00, 0x00, 0xff,
28072 +0xff, 0x80, 0x01, 0x00, 0x92, 0x00, 0x00, 0x00,
28073 +0x20, 0x4f, 0x7c, 0x00, 0x00, 0x00, 0x04, 0x00,
28076 +int switch_size = sizeof switch_image;
28077 diff --git a/efi/ia32/reloc.c b/efi/ia32/reloc.c
28078 new file mode 100644
28079 index 0000000..72db0f6
28081 +++ b/efi/ia32/reloc.c
28083 +/* reloc_x86_64.c - position independent x86_64 ELF shared object relocator
28084 + Copyright (C) 1999 Hewlett-Packard Co.
28085 + Contributed by David Mosberger <davidm@hpl.hp.com>.
28086 + Copyright (C) 2005 Intel Co.
28087 + Contributed by Fenghua Yu <fenghua.yu@intel.com>.
28089 + This file is part of GNU-EFI, the GNU EFI development environment.
28091 + GNU EFI is free software; you can redistribute it and/or modify
28092 + it under the terms of the GNU General Public License as published by
28093 + the Free Software Foundation; either version 2, or (at your option)
28094 + any later version.
28096 + GNU EFI is distributed in the hope that it will be useful,
28097 + but WITHOUT ANY WARRANTY; without even the implied warranty of
28098 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
28099 + GNU General Public License for more details.
28101 + You should have received a copy of the GNU General Public License
28102 + along with GNU EFI; see the file COPYING. If not, write to the Free
28103 + Software Foundation, 59 Temple Place - Suite 330, Boston, MA
28104 + 02111-1307, USA. */
28106 +#include <grub/efi/efi.h>
28107 +#include <grub/efi/api.h>
28110 +grub_efi_status_t _relocate (long ldbase, ElfW(Dyn) *dyn,
28111 + grub_efi_handle_t image_handle,
28112 + grub_efi_system_table_t *sys_tab)
28114 + //extern EFI_STATUS efi_main (EFI_HANDLE, EFI_SYSTEM_TABLE *);
28115 + long relsz = 0, relent = 0;
28116 + ElfW(Rel) *rel = 0;
28117 + unsigned long *addr;
28120 + for (i = 0; dyn[i].d_tag != DT_NULL; ++i) {
28121 + switch (dyn[i].d_tag) {
28123 + rel = (ElfW(Rel)*) ((long) dyn[i].d_un.d_ptr + ldbase);
28127 + relsz = dyn[i].d_un.d_val;
28131 + relent = dyn[i].d_un.d_val;
28139 + if (!rel || relent == 0){
28140 + return GRUB_EFI_LOAD_ERROR;
28142 + while (relsz > 0) {
28143 + /* apply the relocs */
28144 + switch (ELF64_R_TYPE (rel->r_info)) {
28148 + case R_386_RELATIVE:
28149 + addr = (unsigned long *) (ldbase + rel->r_offset);
28156 + rel = (ElfW(Rel)*) ((char *) rel + relent);
28159 + return GRUB_EFI_SUCCESS;
28162 diff --git a/efi/ia32/setjmp.S b/efi/ia32/setjmp.S
28163 new file mode 100644
28164 index 0000000..38c33af
28166 +++ b/efi/ia32/setjmp.S
28169 + * GRUB -- GRand Unified Bootloader
28170 + * Copyright (C) 2000 Free Software Foundation, Inc.
28172 + * This program is free software; you can redistribute it and/or modify
28173 + * it under the terms of the GNU General Public License as published by
28174 + * the Free Software Foundation; either version 2 of the License, or
28175 + * (at your option) any later version.
28177 + * This program is distributed in the hope that it will be useful,
28178 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
28179 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
28180 + * GNU General Public License for more details.
28182 + * You should have received a copy of the GNU General Public License
28183 + * along with this program; if not, write to the Free Software
28184 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
28187 +/* This is stolen from libc/x86/setjmp.S in the OSKit */
28189 + * Mach Operating System
28190 + * Copyright (c) 1991,1990,1989 Carnegie Mellon University
28191 + * All Rights Reserved.
28193 + * Permission to use, copy, modify and distribute this software and its
28194 + * documentation is hereby granted, provided that both the copyright
28195 + * notice and this permission notice appear in all copies of the
28196 + * software, derivative works or modified versions, and any portions
28197 + * thereof, and that both notices appear in supporting documentation.
28199 + * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
28200 + * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
28201 + * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
28203 + * Carnegie Mellon requests users of this software to return to
28205 + * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
28206 + * School of Computer Science
28207 + * Carnegie Mellon University
28208 + * Pittsburgh PA 15213-3890
28210 + * any improvements or extensions that they make and grant Carnegie Mellon
28211 + * the rights to redistribute these changes.
28214 + * C library -- _setjmp, _longjmp
28217 + * will generate a "return(v)" from
28218 + * the last call to
28220 + * by restoring registers from the stack,
28221 + * The previous signal state is NOT restored.
28224 +#include <grub/symbol.h>
28230 +FUNCTION(grub_setjmp)
28231 + movl 4(%esp), %ecx /* fetch buffer */
28232 + movl %ebx, 0(%ecx)
28233 + movl %esi, 4(%ecx)
28234 + movl %edi, 8(%ecx)
28235 + movl %ebp, 12(%ecx) /* save frame pointer of caller */
28237 + movl %esp, 16(%ecx) /* save stack pointer of caller */
28238 + movl %edx, 20(%ecx) /* save pc of caller */
28242 +FUNCTION(grub_longjmp)
28243 + movl 8(%esp), %eax /* return(v) */
28244 + movl 4(%esp), %ecx /* fetch buffer */
28245 + movl 0(%ecx), %ebx
28246 + movl 4(%ecx), %esi
28247 + movl 8(%ecx), %edi
28248 + movl 12(%ecx), %ebp
28249 + movl 16(%ecx), %esp
28253 +0: jmp *20(%ecx) /* done, return.... */
28254 diff --git a/efi/pxe.c b/efi/pxe.c
28255 new file mode 100644
28256 index 0000000..59f0d0d
28261 +#include <grub/efi/efi.h>
28262 +#include <grub/efi/api.h>
28263 +#include <grub/efi/misc.h>
28264 +#include <grub/misc.h>
28266 +#include <shared.h>
28267 +#include <stddef.h>
28272 +/* Search path is:
28274 + * X86PC/UNDI/pxelinux/pxelinux.cfg/1902dcf5-7190-d811-bbd6-6ef21c690030
28275 + * X86PC/UNDI/pxelinux/pxelinux.cfg/01-00-30-6e-f2-1c-69
28276 + * X86PC/UNDI/pxelinux/pxelinux.cfg/0A103437
28277 + * X86PC/UNDI/pxelinux/pxelinux.cfg/0A10343
28278 + * X86PC/UNDI/pxelinux/pxelinux.cfg/0A1034
28279 + * X86PC/UNDI/pxelinux/pxelinux.cfg/0A103
28280 + * X86PC/UNDI/pxelinux/pxelinux.cfg/0A10
28281 + * X86PC/UNDI/pxelinux/pxelinux.cfg/0A1
28282 + * X86PC/UNDI/pxelinux/pxelinux.cfg/0A
28283 + * X86PC/UNDI/pxelinux/pxelinux.cfg/0
28284 + * X86PC/UNDI/pxelinux/pxelinux.cfg/default
28286 + * The paths we get from uefi are like:
28287 + * .BootBootFile: X86PC/UNDI/pxelinux/bootx64.efi
28288 + * .BootCiAddr: 0.0.0.0
28289 + * .BootYiAddr: 10.16.52.158
28290 + * .BootSiAddr: 10.16.52.16
28295 + EFI_DHCP4_PACKET_OPTION *current_option;
28296 +} dhcp_option_parser;
28298 +static void dhcp_option_parser_reset(dhcp_option_parser *parser,
28299 + EFI_PXE_BASE_CODE_PACKET *packet)
28303 + addr = (char *)packet;
28304 + addr += offsetof(EFI_PXE_BASE_CODE_DHCPV4_PACKET, DhcpOptions);
28305 + parser->current_option = (void *)addr;
28306 + parser->options = (void *)addr;
28309 +static int dhcp_option_parser_next(dhcp_option_parser *parser,
28310 + EFI_DHCP4_PACKET_OPTION **option)
28312 + char *current_option;
28313 + if (parser->current_option->OpCode == 255) {
28317 + current_option = (char *)parser->current_option;
28318 + current_option += 2 + parser->current_option->Length;
28319 + parser->current_option = (EFI_DHCP4_PACKET_OPTION *)current_option;
28321 + *option = parser->current_option;
28325 +#define DHCPMAGIK "\x63\x82\x53\x63"
28327 +static int get_dhcp_client_id(EFI_PXE_BASE_CODE_PACKET *packet, uuid_t *uuid)
28329 + dhcp_option_parser parser;
28330 + EFI_DHCP4_PACKET_OPTION *option;
28332 + dhcp_option_parser_reset(&parser, packet);
28334 + if (memcmp((char *)&packet->Dhcpv4.DhcpMagik, DHCPMAGIK, 4))
28337 + while (dhcp_option_parser_next(&parser, &option)) {
28339 + char data[option->Length];
28341 + if (option->OpCode != 97)
28344 + if (option->Length != 17)
28347 + memcpy(data, option->Data, option->Length);
28348 + if (data[0] != 0)
28351 + /* 97[17]: 009cfe245ed0c8bd45a79f54ea5fbd3d97
28352 + * ^^^^^^^^^^^^ uint8_t[]
28355 + * ^^^^ BE uint16_t
28356 + * ^^^^ BE uint16_t
28357 + * ^^^^^^^^ BE uint32_t
28358 + * ^^ "type". 0 means UUID.
28360 + memcpy(uuid, data+1, 16);
28361 + uuid->time_low = htonl(uuid->time_low);
28362 + uuid->time_mid = htons(uuid->time_mid);
28363 + uuid->time_hi_ver = htons(uuid->time_hi_ver);
28371 +static void grub_dump_dhcp_options(EFI_PXE_BASE_CODE_PACKET *packet)
28373 + dhcp_option_parser parser;
28374 + EFI_DHCP4_PACKET_OPTION *option;
28375 + char hex[] = "0123456789abcdef";
28379 + dhcp_option_parser_reset(&parser, packet);
28381 + if (memcmp((char *)&packet->Dhcpv4.DhcpMagik, DHCPMAGIK, 4))
28384 + /* 54[4]: a0014301
28385 + * 51[4]: 00004506
28388 + * 6[8]: a001ff20a001ff30
28389 + * 15[48]: 96e6374716c6c6e226f637e2275646861647e236f6d60226f637e2275646861647e236f6d602275646861647e236f6d6
28390 + * 28[4]: a00143ff
28391 + * 40[10]: 275646861647e236f6d6
28392 + * 41[8]: a001ff20a001ff30
28393 + * 58[4]: 0000a203
28394 + * 59[4]: 0000944d
28395 + * this is the one we want:
28396 + * 97[17]: 009cfe245ed0c8bd45a79f54ea5fbd3d97
28397 + * ^^^^^^^^^^^^ in order
28400 + * ^^^^ out of order
28401 + * ^^^^ out of order
28402 + * ^^^^^^^^ out of order
28403 + * ^^ "type". 0 means UUID.
28406 + while (dhcp_option_parser_next(&parser, &option)) {
28407 + char data[option->Length + 1];
28409 + memcpy(data, option->Data, option->Length);
28410 + data[option->Length] = '\0';
28412 + grub_printf("%d[%d]: ", option->OpCode, option->Length);
28413 + for (i = 0; i < option->Length; i++) {
28414 + grub_printf("%c%c", hex[data[i] & 0xf],
28415 + hex[(data[i] & 0xf0) >> 4]);
28422 +void grub_print_dhcp_info(grub_efi_loaded_image_t *loaded_image)
28424 + EFI_PXE_BASE_CODE *pxe = NULL;
28425 + EFI_PXE_BASE_CODE_PACKET *packet;
28427 + grub_printf("got to %s\n", __func__);
28429 + pxe = grub_efi_locate_protocol(&PxeBaseCodeProtocol, NULL);
28433 + printf("DhcpDiscover options:\n");
28434 + packet = (EFI_PXE_BASE_CODE_PACKET *)&pxe->Mode->DhcpDiscover.Dhcpv4;
28435 + grub_dump_dhcp_options(packet);
28437 + printf("DhcpAck options:\n");
28438 + packet = (EFI_PXE_BASE_CODE_PACKET *)&pxe->Mode->DhcpAck.Dhcpv4;
28439 + grub_dump_dhcp_options(packet);
28441 + printf("PxeDiscover options:\n");
28442 + packet = (EFI_PXE_BASE_CODE_PACKET *)&pxe->Mode->PxeDiscover.Dhcpv4;
28443 + grub_dump_dhcp_options(packet);
28445 + printf("PxeReply options:\n");
28446 + packet = (EFI_PXE_BASE_CODE_PACKET *)&pxe->Mode->PxeReply.Dhcpv4;
28447 + grub_dump_dhcp_options(packet);
28450 + printf("pxe->Mode->DhcpAck.Dhcpv4: \n");
28451 + printf("\t.BootSrvName: %s\n", pxe->Mode->DhcpAck.Dhcpv4.BootpSrvName);
28452 + printf("\t.BootBootFile: %s\n", pxe->Mode->DhcpAck.Dhcpv4.BootpBootFile);
28453 + printf("\t.BootCiAddr: %d.%d.%d.%d\n",
28454 + pxe->Mode->DhcpAck.Dhcpv4.BootpCiAddr[0],
28455 + pxe->Mode->DhcpAck.Dhcpv4.BootpCiAddr[1],
28456 + pxe->Mode->DhcpAck.Dhcpv4.BootpCiAddr[2],
28457 + pxe->Mode->DhcpAck.Dhcpv4.BootpCiAddr[3]);
28458 + printf("\t.BootYiAddr: %d.%d.%d.%d\n",
28459 + pxe->Mode->DhcpAck.Dhcpv4.BootpYiAddr[0],
28460 + pxe->Mode->DhcpAck.Dhcpv4.BootpYiAddr[1],
28461 + pxe->Mode->DhcpAck.Dhcpv4.BootpYiAddr[2],
28462 + pxe->Mode->DhcpAck.Dhcpv4.BootpYiAddr[3]);
28463 + printf("\t.BootSiAddr: %d.%d.%d.%d\n",
28464 + pxe->Mode->DhcpAck.Dhcpv4.BootpSiAddr[0],
28465 + pxe->Mode->DhcpAck.Dhcpv4.BootpSiAddr[1],
28466 + pxe->Mode->DhcpAck.Dhcpv4.BootpSiAddr[2],
28467 + pxe->Mode->DhcpAck.Dhcpv4.BootpSiAddr[3]);
28468 + printf("\t.BootGiAddr: %d.%d.%d.%d\n",
28469 + pxe->Mode->DhcpAck.Dhcpv4.BootpGiAddr[0],
28470 + pxe->Mode->DhcpAck.Dhcpv4.BootpGiAddr[1],
28471 + pxe->Mode->DhcpAck.Dhcpv4.BootpGiAddr[2],
28472 + pxe->Mode->DhcpAck.Dhcpv4.BootpGiAddr[3]);
28481 +static void icmp_print_error(EFI_PXE_BASE_CODE *pxe)
28483 + EFI_PXE_BASE_CODE_ICMP_ERROR *err = &pxe->Mode->IcmpError;
28485 + //char hex[] = "0123456789abcdef";
28487 + printf("icmp error\n");
28488 + printf("type: %d code: %d\n", err->Type, err->Code);
28489 + printf("data: \n");
28490 + for(i = 0; i < 464; i+=16) {
28492 + for (x = i; x < i+4; x++)
28493 + printf("%02x ", err->Data[x]);
28495 + for (x = i+4; x < i+8; x++)
28496 + printf("%02x ", err->Data[x]);
28499 + for (x = i+8; x < i+12; x++)
28500 + printf("%02x ", err->Data[x]);
28502 + for (x = i+12; x < i+16; x++)
28503 + printf("%02x ", err->Data[x]);
28508 +static int grub_efi_pxe_check_for_file(
28509 + EFI_PXE_BASE_CODE *pxe,
28510 + EFI_IP_ADDRESS *ServerIp,
28511 + char *BootpBootFile,
28512 + char *configname,
28513 + char **returnpath)
28515 + size_t bplen = strlen(BootpBootFile);
28516 + char *Filename = grub_malloc(24 + bplen + 40);
28517 + char *lastslash = Filename + bplen;
28518 + grub_efi_uintn_t size;
28521 + char Buffer[8192];
28523 + memcpy(Filename, BootpBootFile, bplen);
28525 + for (i = 0; i < bplen; i++) {
28526 + if (Filename[i] == '/')
28527 + lastslash = Filename + i;
28529 + if (*lastslash) {
28530 + *lastslash++ = '/';
28531 + *lastslash = '\0';
28534 + sprintf(lastslash, configname);
28536 + printf("tftp://%d.%d.%d.%d/%s\n",
28537 + ServerIp->v4.Addr[0], ServerIp->v4.Addr[1],
28538 + ServerIp->v4.Addr[2], ServerIp->v4.Addr[3],
28541 + rc = tftp_get_file_size(Filename, &size);
28542 + if (rc == GRUB_EFI_ICMP_ERROR)
28543 + icmp_print_error(pxe);
28545 + if (rc == GRUB_EFI_SUCCESS) {
28546 + *returnpath = Filename;
28549 + grub_free(Filename);
28553 +static void get_pxe_server(EFI_PXE_BASE_CODE *pxe, EFI_IP_ADDRESS **Address)
28555 + EFI_IP_ADDRESS *tmp = grub_malloc(sizeof *tmp);
28557 + memset(tmp, '\0', sizeof (*tmp));
28558 + memcpy(&tmp->Addr[0], pxe->Mode->DhcpAck.Dhcpv4.BootpSiAddr, 4);
28563 +static char *get_pxe_file_dir(EFI_PXE_BASE_CODE *pxe)
28565 + char *FileDir = NULL;
28566 + char *DirEnd = NULL;
28567 + char *BootpBootFile;
28570 + BootpBootFile = pxe->Mode->DhcpAck.Dhcpv4.BootpBootFile;
28571 + bplen = strlen(BootpBootFile);
28572 + FileDir = grub_malloc(bplen + 1);
28573 + memcpy(FileDir, BootpBootFile, bplen);
28574 + FileDir[bplen] = '\0';
28576 + DirEnd = grub_strrchr(FileDir, '/');
28578 + DirEnd = FileDir;
28585 +static void set_pxe_info(grub_efi_loaded_image_t *LoadedImage,
28586 + EFI_PXE_BASE_CODE *pxe)
28588 + tftp_info.LoadedImage = LoadedImage;
28589 + tftp_info.Pxe = pxe;
28590 + get_pxe_server(pxe, &tftp_info.ServerIp);
28591 + tftp_info.BasePath = get_pxe_file_dir(pxe);
28594 +char *grub_efi_pxe_get_config_path(grub_efi_loaded_image_t *LoadedImage)
28596 + EFI_PXE_BASE_CODE *pxe = NULL;
28597 + EFI_IP_ADDRESS ServerIp;
28598 + char *FileName = NULL;
28599 + EFI_PXE_BASE_CODE_DHCPV4_PACKET *packet;
28601 + grub_efi_uintn_t FileSize = 0;
28602 + grub_efi_status_t rc = GRUB_EFI_SUCCESS;
28603 + char *ConfigPath = NULL;
28604 + char hex[] = "0123456789ABCDEF";
28608 + grub_efi_handle_t *handle, *handles;
28609 + grub_efi_uintn_t num_handles;
28611 + handles = grub_efi_locate_handle(GRUB_EFI_BY_PROTOCOL,
28612 + &PxeBaseCodeProtocol,
28613 + NULL, &num_handles);
28618 + for (handle = handles; num_handles--; handle++) {
28619 + pxe = grub_efi_open_protocol(*handle, &PxeBaseCodeProtocol,
28620 + GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
28621 + if (!pxe || !pxe->Mode)
28623 + if (pxe->Mode->Started && pxe->Mode->DhcpAckReceived)
28626 + grub_free(handles);
28631 + set_pxe_info(LoadedImage, pxe);
28633 + FileName = grub_malloc(strlen("1902dcf5-7190-d811-bbd6-6ef21c690030"));
28635 + packet = &pxe->Mode->DhcpDiscover.Dhcpv4;
28637 + if (get_dhcp_client_id((EFI_PXE_BASE_CODE_PACKET *)packet, &uuid)) {
28639 + uuid.time_mid = 0x0011;
28640 + sprintf(FileName,
28641 + "%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X",
28642 + uuid.time_low, uuid.time_mid, uuid.time_hi_ver,
28643 + uuid.clock_seq_hi, uuid.clock_seq_low,
28644 + uuid.node[0], uuid.node[1], uuid.node[2],
28645 + uuid.node[3], uuid.node[4], uuid.node[5]);
28647 + rc = tftp_get_file_size(FileName, &FileSize);
28648 + if (rc == GRUB_EFI_SUCCESS) {
28649 + char *ReturnFile = grub_malloc(strlen("(nd)/") +
28650 + strlen(FileName) + 1);
28651 + sprintf(ReturnFile, "(nd)/%s", FileName);
28652 + grub_free(FileName);
28653 + //sprintf(tftp_info.LastPath, FileName);
28654 + return ReturnFile;
28658 + packet = &pxe->Mode->DhcpAck.Dhcpv4;
28660 + if (!memcmp(packet->BootpHwAddr + 6, "\x00\x00\x00\x00\x00"
28661 + "\x00\x00\x00\x00\x00", 10) &&
28662 + memcmp(packet->BootpHwAddr, "\x00\x00\x00\x00\x00\x00",
28665 + sprintf(mac, "01-%c%c-%c%c-%c%c-%c%c-%c%c-%c%c",
28666 + hex[(packet->BootpHwAddr[0] & 0xf0) >> 4],
28667 + hex[packet->BootpHwAddr[0] & 0xf],
28668 + hex[(packet->BootpHwAddr[1] & 0xf0) >> 4],
28669 + hex[packet->BootpHwAddr[1] & 0xf],
28670 + hex[(packet->BootpHwAddr[2] & 0xf0) >> 4],
28671 + hex[packet->BootpHwAddr[2] & 0xf],
28672 + hex[(packet->BootpHwAddr[3] & 0xf0) >> 4],
28673 + hex[packet->BootpHwAddr[3] & 0xf],
28674 + hex[(packet->BootpHwAddr[4] & 0xf0) >> 4],
28675 + hex[packet->BootpHwAddr[4] & 0xf],
28676 + hex[(packet->BootpHwAddr[5] & 0xf0) >> 4],
28677 + hex[packet->BootpHwAddr[5] & 0xf]);
28679 + rc = tftp_get_file_size(mac, &FileSize);
28680 + if (rc == GRUB_EFI_SUCCESS) {
28681 + char *ReturnFile = grub_malloc(strlen("(nd)/") +
28682 + strlen(mac) + 1);
28683 + sprintf(ReturnFile, "(nd)/%s", mac);
28684 + return ReturnFile;
28689 + sprintf(hexip, "%c%c%c%c%c%c%c%c",
28690 + hex[(packet->BootpYiAddr[0] & 0xf0) >> 4],
28691 + hex[packet->BootpYiAddr[0] & 0xf],
28692 + hex[(packet->BootpYiAddr[1] & 0xf0) >> 4],
28693 + hex[packet->BootpYiAddr[1] & 0xf],
28694 + hex[(packet->BootpYiAddr[2] & 0xf0) >> 4],
28695 + hex[packet->BootpYiAddr[2] & 0xf],
28696 + hex[(packet->BootpYiAddr[3] & 0xf0) >> 4],
28697 + hex[packet->BootpYiAddr[3] & 0xf]);
28699 + for (hexiplen = strlen(hexip); hexiplen > 0; hexiplen--)
28701 + hexip[hexiplen] = '\0';
28702 + rc = tftp_get_file_size(hexip, &FileSize);
28703 + if (rc == GRUB_EFI_SUCCESS) {
28704 + char *ReturnFile = grub_malloc(strlen("(nd)/") +
28705 + strlen(hexip) + 1);
28706 + sprintf(ReturnFile, "(nd)/%s", hexip);
28707 + return ReturnFile;
28711 + rc = tftp_get_file_size("efidefault", &FileSize);
28712 + if (rc == GRUB_EFI_SUCCESS) {
28713 + char *ReturnFile = grub_malloc(strlen("(nd)/efidefault")+1);
28714 + sprintf(ReturnFile, "(nd)/efidefault");
28715 + return ReturnFile;
28720 diff --git a/efi/pxe.h b/efi/pxe.h
28721 new file mode 100644
28722 index 0000000..0a68007
28729 +#include "byteswap.h"
28731 +extern char *grub_efi_pxe_get_config_path(grub_efi_loaded_image_t *LoadedImage);
28732 +extern void grub_print_dhcp_info(grub_efi_loaded_image_t *loaded_image);
28733 +extern char *grub_efi_pxe_path_to_path_name(void);
28736 +#define EFI_PXE_BASE_CODE_PROTOCOL \
28737 + { 0x03c4e603, 0xac28, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
28738 +static grub_efi_guid_t PxeBaseCodeProtocol = EFI_PXE_BASE_CODE_PROTOCOL;
28740 +struct _EFI_PXE_BASE_CODE;
28743 + EFI_PXE_BASE_CODE_TFTP_FIRST,
28744 + EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE,
28745 + EFI_PXE_BASE_CODE_TFTP_READ_FILE,
28746 + EFI_PXE_BASE_CODE_TFTP_WRITE_FILE,
28747 + EFI_PXE_BASE_CODE_TFTP_READ_DIRECTORY,
28748 + EFI_PXE_BASE_CODE_MTFTP_GET_FILE_SIZE,
28749 + EFI_PXE_BASE_CODE_MTFTP_READ_FILE,
28750 + EFI_PXE_BASE_CODE_MTFTP_READ_DIRECTORY,
28751 + EFI_PXE_BASE_CODE_MTFTP_LAST
28752 +} EFI_PXE_BASE_CODE_TFTP_OPCODE;
28755 + grub_efi_uint8_t Addr[4];
28756 +} EFI_IPv4_ADDRESS;
28759 + grub_efi_uint8_t Addr[16];
28760 +} EFI_IPv6_ADDRESS;
28763 + grub_efi_uint8_t Addr[32];
28764 +} EFI_MAC_ADDRESS;
28767 + grub_efi_uint32_t Addr[4];
28768 + EFI_IPv4_ADDRESS v4;
28769 + EFI_IPv6_ADDRESS v6;
28772 +typedef grub_efi_uint16_t EFI_PXE_BASE_CODE_UDP_PORT;
28775 + EFI_IP_ADDRESS MCastIp;
28776 + EFI_PXE_BASE_CODE_UDP_PORT CPort;
28777 + EFI_PXE_BASE_CODE_UDP_PORT SPort;
28778 + grub_efi_uint16_t ListenTimeout;
28779 + grub_efi_uint16_t TransmitTimeout;
28780 +} EFI_PXE_BASE_CODE_MTFTP_INFO;
28782 +typedef EFI_STATUS (*EFI_PXE_BASE_CODE_MTFTP)(
28783 + struct _EFI_PXE_BASE_CODE *This,
28784 + EFI_PXE_BASE_CODE_TFTP_OPCODE Operation,
28786 + grub_efi_boolean_t Overwrite,
28787 + grub_efi_uint64_t *BufferSize,
28788 + grub_efi_uintn_t *BlockSize,
28789 + EFI_IP_ADDRESS *ServerIp,
28790 + grub_efi_uint8_t *Filename,
28791 + EFI_PXE_BASE_CODE_MTFTP_INFO *Info,
28792 + grub_efi_boolean_t DontUseBuffer);
28795 + grub_efi_uint8_t BootpOpcode;
28796 + grub_efi_uint8_t BootpHwType;
28797 + grub_efi_uint8_t BootpHwAddrLen;
28798 + grub_efi_uint8_t BootpGateHops;
28799 + grub_efi_uint32_t BootpIdent;
28800 + grub_efi_uint16_t BootpSeconds;
28801 + grub_efi_uint16_t BootpFlags;
28802 + grub_efi_uint8_t BootpCiAddr[4];
28803 + grub_efi_uint8_t BootpYiAddr[4];
28804 + grub_efi_uint8_t BootpSiAddr[4];
28805 + grub_efi_uint8_t BootpGiAddr[4];
28806 + grub_efi_uint8_t BootpHwAddr[16];
28807 + grub_efi_uint8_t BootpSrvName[64];
28808 + grub_efi_uint8_t BootpBootFile[128];
28809 + grub_efi_uint32_t DhcpMagik;
28810 + grub_efi_uint8_t DhcpOptions[56];
28811 +} EFI_PXE_BASE_CODE_DHCPV4_PACKET;
28813 +// TBD in EFI v1.1
28814 +//typedef struct {
28815 +// grub_efi_uint8_t reserved;
28816 +//} EFI_PXE_BASE_CODE_DHCPV6_PACKET;
28819 + grub_efi_uint8_t Raw[1472];
28820 + EFI_PXE_BASE_CODE_DHCPV4_PACKET Dhcpv4;
28821 +// EFI_PXE_BASE_CODE_DHCPV6_PACKET Dhcpv6;
28822 +} EFI_PXE_BASE_CODE_PACKET;
28825 + grub_efi_uint8_t Type;
28826 + grub_efi_uint8_t Code;
28827 + grub_efi_uint16_t Checksum;
28829 + grub_efi_uint32_t reserved;
28830 + grub_efi_uint32_t Mtu;
28831 + grub_efi_uint32_t Pointer;
28833 + grub_efi_uint16_t Identifier;
28834 + grub_efi_uint16_t Sequence;
28837 + grub_efi_uint8_t Data[494];
28838 +} EFI_PXE_BASE_CODE_ICMP_ERROR;
28841 + grub_efi_uint8_t ErrorCode;
28842 + grub_efi_char8_t ErrorString[127];
28843 +} EFI_PXE_BASE_CODE_TFTP_ERROR;
28846 +#define EFI_PXE_BASE_CODE_MAX_IPCNT 8
28848 + grub_efi_uint8_t Filters;
28849 + grub_efi_uint8_t IpCnt;
28850 + grub_efi_uint16_t reserved;
28851 + EFI_IP_ADDRESS IpList[EFI_PXE_BASE_CODE_MAX_IPCNT];
28852 +} EFI_PXE_BASE_CODE_IP_FILTER;
28854 +#define EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP 0x0001
28855 +#define EFI_PXE_BASE_CODE_IP_FILTER_BROADCAST 0x0002
28856 +#define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS 0x0004
28857 +#define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS_MULTICAST 0x0008
28860 + EFI_IP_ADDRESS IpAddr;
28861 + EFI_MAC_ADDRESS MacAddr;
28862 +} EFI_PXE_BASE_CODE_ARP_ENTRY;
28865 + EFI_IP_ADDRESS IpAddr;
28866 + EFI_IP_ADDRESS SubnetMask;
28867 + EFI_IP_ADDRESS GwAddr;
28868 +} EFI_PXE_BASE_CODE_ROUTE_ENTRY;
28870 +#define EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES 8
28871 +#define EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES 8
28874 + grub_efi_boolean_t Started;
28875 + grub_efi_boolean_t Ipv6Available;
28876 + grub_efi_boolean_t Ipv6Supported;
28877 + grub_efi_boolean_t UsingIpv6;
28878 + grub_efi_boolean_t BisSupported;
28879 + grub_efi_boolean_t BisDetected;
28880 + grub_efi_boolean_t AutoArp;
28881 + grub_efi_boolean_t SendGUID;
28882 + grub_efi_boolean_t DhcpDiscoverValid;
28883 + grub_efi_boolean_t DhcpAckReceived;
28884 + grub_efi_boolean_t ProxyOfferReceived;
28885 + grub_efi_boolean_t PxeDiscoverValid;
28886 + grub_efi_boolean_t PxeReplyReceived;
28887 + grub_efi_boolean_t PxeBisReplyReceived;
28888 + grub_efi_boolean_t IcmpErrorReceived;
28889 + grub_efi_boolean_t TftpErrorReceived;
28890 + grub_efi_boolean_t MakeCallbacks;
28891 + grub_efi_uint8_t TTL;
28892 + grub_efi_uint8_t ToS;
28893 + EFI_IP_ADDRESS StationIp;
28894 + EFI_IP_ADDRESS SubnetMask;
28895 + EFI_PXE_BASE_CODE_PACKET DhcpDiscover;
28896 + EFI_PXE_BASE_CODE_PACKET DhcpAck;
28897 + EFI_PXE_BASE_CODE_PACKET ProxyOffer;
28898 + EFI_PXE_BASE_CODE_PACKET PxeDiscover;
28899 + EFI_PXE_BASE_CODE_PACKET PxeReply;
28900 + EFI_PXE_BASE_CODE_PACKET PxeBisReply;
28901 + EFI_PXE_BASE_CODE_IP_FILTER IpFilter;
28902 + grub_efi_uint32_t ArpCacheEntries;
28903 + EFI_PXE_BASE_CODE_ARP_ENTRY ArpCache[EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES];
28904 + grub_efi_uint32_t RouteTableEntries;
28905 + EFI_PXE_BASE_CODE_ROUTE_ENTRY RouteTable[EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES];
28906 + EFI_PXE_BASE_CODE_ICMP_ERROR IcmpError;
28907 + EFI_PXE_BASE_CODE_TFTP_ERROR TftpError;
28908 +} EFI_PXE_BASE_CODE_MODE;
28910 +typedef EFI_STATUS (*EFI_PXE_BASE_CODE_START)();
28911 +typedef EFI_STATUS (*EFI_PXE_BASE_CODE_STOP)();
28912 +typedef EFI_STATUS (*EFI_PXE_BASE_CODE_DHCP)();
28913 +typedef EFI_STATUS (*EFI_PXE_BASE_CODE_DISCOVER)();
28914 +typedef EFI_STATUS (*EFI_PXE_BASE_CODE_UDP_WRITE)();
28915 +typedef EFI_STATUS (*EFI_PXE_BASE_CODE_UDP_READ)();
28916 +typedef EFI_STATUS (*EFI_PXE_BASE_CODE_SET_IP_FILTER)();
28917 +typedef EFI_STATUS (*EFI_PXE_BASE_CODE_ARP)();
28918 +typedef EFI_STATUS (*EFI_PXE_BASE_CODE_SET_PARAMETERS)();
28919 +typedef EFI_STATUS (*EFI_PXE_BASE_CODE_SET_STATION_IP)();
28920 +typedef EFI_STATUS (*EFI_PXE_BASE_CODE_SET_PACKETS)();
28922 +typedef struct _EFI_PXE_BASE_CODE{
28923 + grub_efi_uint64_t Revision;
28924 + EFI_PXE_BASE_CODE_START Start;
28925 + EFI_PXE_BASE_CODE_STOP Stop;
28926 + EFI_PXE_BASE_CODE_DHCP Dhcp;
28927 + EFI_PXE_BASE_CODE_DISCOVER Discover;
28928 + EFI_PXE_BASE_CODE_MTFTP Mtftp;
28929 + EFI_PXE_BASE_CODE_UDP_WRITE UdpWrite;
28930 + EFI_PXE_BASE_CODE_UDP_READ UdpRead;
28931 + EFI_PXE_BASE_CODE_SET_IP_FILTER SetIpFilter;
28932 + EFI_PXE_BASE_CODE_ARP Arp;
28933 + EFI_PXE_BASE_CODE_SET_PARAMETERS SetParameters;
28934 + EFI_PXE_BASE_CODE_SET_STATION_IP SetStationIp;
28935 + EFI_PXE_BASE_CODE_SET_PACKETS SetPackets;
28936 + EFI_PXE_BASE_CODE_MODE *Mode;
28937 +} EFI_PXE_BASE_CODE;
28940 + grub_efi_uint32_t time_low;
28941 + grub_efi_uint16_t time_mid;
28942 + grub_efi_uint16_t time_hi_ver;
28943 + grub_efi_uint8_t clock_seq_hi;
28944 + grub_efi_uint8_t clock_seq_low;
28945 + grub_efi_uint8_t node[6];
28948 +struct tftp_info {
28949 + grub_efi_loaded_image_t *LoadedImage;
28950 + EFI_PXE_BASE_CODE *Pxe;
28951 + EFI_IP_ADDRESS *ServerIp;
28957 +extern struct tftp_info tftp_info;
28958 +extern grub_efi_status_t tftp_get_file_size(
28960 + grub_efi_uintn_t *Size);
28962 +#endif /* PXE_H */
28963 diff --git a/efi/ugadebug.h b/efi/ugadebug.h
28964 new file mode 100644
28965 index 0000000..f461c8b
28967 +++ b/efi/ugadebug.h
28969 +#ifndef UGA_DEBUG_H
28970 +#define UGA_DEBUG_H
28972 +extern void dc(char *file, int line);
28973 +extern void gm(char *file, int line, char *fmt, ...);
28977 +extern const unsigned char font8x16[];
28979 +extern grub_efi_guid_t draw_guid;
28981 +static void *tmp_term;
28983 +#define SCREEN_WIDTH 80
28985 +#define LINE_SIZE_X ( 8 * 100 )
28986 +#define LINE_START_X(x) (1280 + (x))
28987 +#define LINE_END_X(x) (LINE_START_X(0) + LINE_SIZE_X - 1)
28989 +#define POS_X(x) (LINE_START_X(x) + (8 * (x)))
28991 +#define LINE_SIZE_Y 16
28992 +#define LINE_START_Y(y) ((y) * LINE_SIZE_Y)
28993 +#define LINE_END_Y(y) ( (((y)+1) * LINE_SIZE_Y ) - 1)
28995 +#define POS_Y(y) LINE_START_Y(y)
28997 +#define FIRST_LINE 0
28998 +#define LAST_LINE 75
29000 +#define format_ascii(buf, val, is_hex, is_cap) ({ \
29001 + int _n = sizeof ((buf)) - 2; \
29002 + typeof(val) _nval = (val); \
29003 + int _negative = 0; \
29004 + int _mult = is_hex ? 16 : 10; \
29005 + char _a = is_cap ? 'A' : 'a'; \
29006 + grub_memset((buf), '\0', sizeof ((buf))); \
29007 + if (!(_nval > 0LL)) \
29009 + if (_nval == 0LL) \
29012 + _nval = (_nval ^ -1); \
29014 + int _dig = _nval % _mult; \
29015 + (buf)[_n--] = ((_dig > 9) ? _dig + _a - 10 : '0'+_dig); \
29016 + } while (_nval /= _mult); \
29018 + (buf)[_n--] = '-'; \
29021 + while (_n < sizeof ((buf))) \
29022 + (buf)[_mult++] = (buf)[_n++]; \
29023 + if (_negative && _mult > 1) \
29024 + ((buf)[_mult-2])++; \
29027 +static grub_efi_uga_draw_t *debug_draw_intf;
29028 +static void debug_putchar(int i, int j, int ch)
29030 + grub_efi_uga_pixel_t pixbuf[8 * 16];
29031 + grub_efi_uga_pixel_t black = { .red = 0x00, .green = 0x00, .blue = 0x00 },
29032 + white = { .red = 0xff, .green = 0xff, .blue = 0xff };
29033 + const unsigned char *pat;
29036 + if (!debug_draw_intf)
29037 + debug_draw_intf = grub_efi_locate_protocol(&draw_guid, NULL);
29038 + if (!debug_draw_intf)
29041 + pat = font8x16 + (ch << 4);
29043 + for (y = 0; y < 16; y++) {
29044 + for (x = 0; x < 8; x++) {
29045 + int bit = pat[y] & (1 << (7 - x));
29047 + grub_memmove(&pixbuf[x + y * 8], bit ? &white : &black,
29048 + sizeof (pixbuf[0]));
29052 + Call_Service_10(debug_draw_intf->blt, debug_draw_intf, pixbuf,
29053 + EfiUgaBltBufferToVideo,
29055 + POS_X(i), POS_Y(j),
29061 +static void dputs(const char *s)
29063 + static int row = -1;
29079 + if (*s == '\n') {
29083 + debug_putchar(col, row, *s);
29085 + } while (*(++s));
29090 +static int dbg_row = 0;
29091 +static int dbg_col = 0;
29093 +static void dbg_scroll(int new_dbg_col)
29095 + grub_efi_uga_pixel_t black[1] ={{.red = 0x00, .green = 0x00, .blue = 0x00}};
29097 + if (dbg_row == LAST_LINE) {
29098 + dbg_col = new_dbg_col;
29099 + Call_Service_10(debug_draw_intf->blt, debug_draw_intf, NULL,
29100 + EfiUgaVideoToVideo,
29101 + 640, LINE_START_Y(1),
29102 + 640, LINE_START_Y(0),
29103 + LINE_SIZE_X, LINE_END_Y(LAST_LINE)+1,
29105 + Call_Service_10(debug_draw_intf->blt, debug_draw_intf, black,
29108 + 640, LINE_START_Y(LAST_LINE),
29109 + LINE_END_X(SCREEN_WIDTH)+1, LINE_END_Y(LAST_LINE)+1,
29113 + dbg_col = new_dbg_col;
29115 +// grub_efi_stall(1000000);
29118 +static void dc_backend(char *file, int line)
29120 + char linebuf[9] = " ";
29123 + linebuf[8] = '\0';
29125 + format_ascii(linebuf, line, 0, 0);
29126 + for (dbg_col=0, pos=0; linebuf[pos]; dbg_col++, pos++)
29127 + debug_putchar(dbg_col, dbg_row, linebuf[pos]);
29129 + for (dbg_col=5, pos=0; file[pos]; dbg_col++, pos++) {
29130 + if (dbg_col > 15)
29133 + debug_putchar(dbg_col, dbg_row, file[pos]);
29137 +void dc(char *file, int line)
29139 + dc_backend(file, line);
29144 +gm(char *file, int line, char *fmt, ...)
29147 + char buf[1024]="";
29150 + va_start(ap, fmt);
29151 + grub_vsprintf(buf, fmt, ap);
29154 + dc_backend(file, line);
29155 + for (dbg_col=16, pos=0; buf[pos]; dbg_col++, pos++) {
29156 + if (buf[pos] == '\n')
29158 + if (dbg_col > SCREEN_WIDTH-1)
29160 + debug_putchar(dbg_col, dbg_row, buf[pos]);
29165 +#define dm() ({ tmp_term = current_term; current_term = term_table; grub_dprintf(__func__, "got here\n"); current_term = tmp_term; })
29169 +#endif /* UGA_DEBUG_H */
29170 diff --git a/efi/x86_64/callwrap.S b/efi/x86_64/callwrap.S
29171 new file mode 100644
29172 index 0000000..f574ad0
29174 +++ b/efi/x86_64/callwrap.S
29177 + * Function calling ABI conversion from Linux to EFI for x86_64
29179 + * Copyright (C) 2007 Intel Corp
29180 + * Bibo Mao <bibo.mao@intel.com>
29181 + * Huang Ying <ying.huang@intel.com>
29185 + * EFI calling conventions are documented at:
29186 + * http://msdn.microsoft.com/en-us/library/ms235286%28v=vs.80%29.aspx
29187 + * ELF calling conventions are documented at:
29188 + * http://www.x86-64.org/documentation/abi.pdf
29190 + * Basically here are the conversion rules:
29191 + * a) our function pointer is in %rdi
29192 + * b) ELF gives us 8-byte aligned %rsp, so we need to pad out to 16-byte
29194 + * c) inside each call thunker, we can only adjust the stack by
29195 + * multiples of 16 bytes. "offset" below refers to however much
29196 + * we allocate inside a thunker.
29197 + * d) rsi through r8 (elf) aka rcx through r9 (ms) require stack space
29198 + * on the MS side even though it's not getting used at all.
29199 + * e) arguments are as follows: (elf -> ms)
29200 + * 1) rdi -> rcx (32 saved)
29201 + * 2) rsi -> rdx (32 saved)
29202 + * 3) rdx -> r8 ( 32 saved)
29203 + * 4) rcx -> r9 (32 saved)
29204 + * 5) r8 -> 32(%rsp) (48 saved)
29205 + * 6) r9 -> 40(%rsp) (48 saved)
29206 + * 7) pad+offset+0(%rsp) -> 48(%rsp) (64 saved)
29207 + * 8) pad+offset+8(%rsp) -> 56(%rsp) (64 saved)
29208 + * 9) pad+offset+16(%rsp) -> 64(%rsp) (80 saved)
29209 + * 10) pad+offset+24(%rsp) -> 72(%rsp) (80 saved)
29210 + * 11) pad+offset+32(%rsp) -> 80(%rsp) (96 saved)
29211 + * 12) pad+offset+40(%rsp) -> 88(%rsp) (96 saved)
29212 + * f) because the first argument we recieve in a thunker is actually the
29213 + * function to be called, arguments are offset as such:
29214 + * 0) rdi -> caller
29215 + * 1) rsi -> rcx (32 saved)
29216 + * 2) rdx -> rdx (32 saved)
29217 + * 3) rcx -> r8 (32 saved)
29218 + * 4) r8 -> r9 (32 saved)
29219 + * 5) r9 -> 32(%rsp) (48 saved)
29220 + * 6) pad+offset+0(%rsp) -> 40(%rsp) (48 saved)
29221 + * 7) pad+offset+8(%rsp) -> 48(%rsp) (64 saved)
29222 + * 8) pad+offset+16(%rsp) -> 56(%rsp) (64 saved)
29223 + * 9) pad+offset+24(%rsp) -> 64(%rsp) (80 saved)
29224 + * 10) pad+offset+32(%rsp) -> 72(%rsp) (80 saved)
29225 + * 11) pad+offset+40(%rsp) -> 80(%rsp) (96 saved)
29226 + * 12) pad+offset+48(%rsp) -> 88(%rsp) (96 saved)
29227 + * e) arguments need to be moved in opposite order to avoid clobbering
29228 + * f) pad_stack leaves the amount of padding it added in %r11 for functions
29230 + * g) efi -> elf calls don't need to pad the stack, because the 16-byte
29231 + * alignment is also always 8-byte aligned.
29234 +#define ENTRY(name) \
29238 +#define out(val) \
29240 + mov val, %rax ; \
29241 + out %al, $128 ; \
29244 +#define pad_stack \
29245 + subq $8, %rsp ; /* must be a multiple of 16 - sizeof(%rip) */ \
29246 + /* stash some handy integers */ \
29247 + mov $0x8, %rax ; \
29248 + mov $0x10, %r10 ; \
29249 + /* see if we need padding */ \
29250 + and %rsp, %rax ; \
29251 + /* store the pad amount in %r11 */ \
29252 + cmovnz %rax, %r11 ; \
29253 + cmovz %r10, %r11 ; \
29254 + /* insert the padding */ \
29255 + subq %r11, %rsp ; \
29256 + /* add the $8 we saved above in %r11 */ \
29257 + addq $8, %r11 ; \
29258 + /* store the pad amount */ \
29259 + mov %r11, (%rsp) ; \
29260 + /* compensate for %rip being stored on the stack by call */ \
29263 +#define unpad_stack \
29264 + /* fetch the pad amount we saved (%r11 has been clobbered) */ \
29265 + mov (%rsp), %r11 ; \
29266 + /* remove the padding */ \
29289 + /* mov %rdx, %rdx */
29300 + /* mov %rdx, %rdx */
29312 + /* mov %rdx, %rdx */
29322 + mov %r9, 32(%rsp)
29325 + /* mov %rdx, %rdx */
29338 + mov %rax, 40(%rsp)
29339 + mov %r9, 32(%rsp)
29342 + /* mov %rdx, %rdx */
29356 + mov %rax, 48(%rsp)
29359 + mov %rax, 40(%rsp)
29360 + mov %r9, 32(%rsp)
29363 + /* mov %rdx, %rdx */
29377 + mov %rax, 56(%rsp)
29380 + mov %rax, 48(%rsp)
29383 + mov %rax, 40(%rsp)
29384 + mov %r9, 32(%rsp)
29387 + /* mov %rdx, %rdx */
29401 + mov %rax, 64(%rsp)
29404 + mov %rax, 56(%rsp)
29407 + mov %rax, 48(%rsp)
29410 + mov %rax, 40(%rsp)
29411 + mov %r9, 32(%rsp)
29414 + /* mov %rdx, %rdx */
29428 + mov %rax, 72(%rsp)
29431 + mov %rax, 64(%rsp)
29434 + mov %rax, 56(%rsp)
29437 + mov %rax, 48(%rsp)
29440 + mov %rax, 40(%rsp)
29441 + mov %r9, 32(%rsp)
29444 + /* mov %rdx, %rdx */
29450 diff --git a/efi/x86_64/crt0-efi.S b/efi/x86_64/crt0-efi.S
29451 new file mode 100644
29452 index 0000000..8667694
29454 +++ b/efi/x86_64/crt0-efi.S
29456 +/* crt0-efi-x86_64.S - x86_64 EFI startup code.
29457 + Copyright (C) 1999 Hewlett-Packard Co.
29458 + Contributed by David Mosberger <davidm@hpl.hp.com>.
29459 + Copyright (C) 2005 Intel Co.
29460 + Contributed by Fenghua Yu <fenghua.yu@intel.com>.
29462 + This file is part of GNU-EFI, the GNU EFI development environment.
29464 + GNU EFI is free software; you can redistribute it and/or modify
29465 + it under the terms of the GNU General Public License as published by
29466 + the Free Software Foundation; either version 2, or (at your option)
29467 + any later version.
29469 + GNU EFI is distributed in the hope that it will be useful,
29470 + but WITHOUT ANY WARRANTY; without even the implied warranty of
29471 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29472 + GNU General Public License for more details.
29474 + You should have received a copy of the GNU General Public License
29475 + along with GNU EFI; see the file COPYING. If not, write to the Free
29476 + Software Foundation, 59 Temple Place - Suite 330, Boston, MA
29477 + 02111-1307, USA. */
29489 + lea ImageBase(%rip), %rdi
29490 + lea _DYNAMIC(%rip), %rsi
29507 + // hand-craft a dummy .reloc section so EFI knows it's a relocatable executable:
29512 +#define IMAGE_REL_ABSOLUTE 0
29513 + .section .reloc, "a"
29515 + .long dummy-label1 // Page RVA
29516 + .long 10 // Block Size (2*4+2)
29517 + .word (IMAGE_REL_ABSOLUTE<<12) + 0 // reloc for dummy
29519 diff --git a/efi/x86_64/elf_efi.lds b/efi/x86_64/elf_efi.lds
29520 new file mode 100644
29521 index 0000000..18a9ab9
29523 +++ b/efi/x86_64/elf_efi.lds
29525 +OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
29526 +OUTPUT_ARCH(i386:x86-64)
29532 + .hash : { *(.hash) } /* this MUST come first! */
29555 + /* the EFI loader doesn't seem to like a .bss section, so we stick
29556 + it all into .data: */
29565 + .dynamic : { *(.dynamic) }
29574 + .dynsym : { *(.dynsym) }
29576 + .dynstr : { *(.dynstr) }
29583 diff --git a/efi/x86_64/loader/Makefile b/efi/x86_64/loader/Makefile
29584 new file mode 100644
29585 index 0000000..0d8b888
29587 +++ b/efi/x86_64/loader/Makefile
29592 +bin_to_h: bin_to_h.c
29593 + $(CC) $(CFLAGS) -o $@ $<
29595 +switch.h : switch.bin bin_to_h
29596 + ./bin_to_h < $< > $@
29598 +switch.bin : switch
29599 + objcopy -O binary $< $@
29602 + ld.bfd -Ttext-segment=0x688 --init _start -o $@ $<
29604 +switch.o : switch.S
29605 + as -march=generic64 -defsym _start=0 -o $@ $<
29608 + @rm -vf switch.o switch switch.bin switch.h bin_to_h
29609 diff --git a/efi/x86_64/loader/bin_to_h.c b/efi/x86_64/loader/bin_to_h.c
29610 new file mode 100644
29611 index 0000000..4cff104
29613 +++ b/efi/x86_64/loader/bin_to_h.c
29615 +#include <stdio.h>
29616 +#include <stdlib.h>
29624 + printf ("unsigned char switch_image[] = {\n");
29626 + while ((c = getchar ()) != EOF)
29628 + printf("0x%02x,%s",
29630 + (++n & 0x07) ? " " : "\n");
29639 + "int switch_size = sizeof switch_image;\n");
29644 diff --git a/efi/x86_64/loader/linux.c b/efi/x86_64/loader/linux.c
29645 new file mode 100644
29646 index 0000000..49a668e
29648 +++ b/efi/x86_64/loader/linux.c
29651 + * GRUB -- GRand Unified Bootloader
29652 + * Copyright (C) 2006 Free Software Foundation, Inc.
29654 + * This program is free software; you can redistribute it and/or modify
29655 + * it under the terms of the GNU General Public License as published by
29656 + * the Free Software Foundation; either version 2 of the License, or
29657 + * (at your option) any later version.
29659 + * This program is distributed in the hope that it will be useful,
29660 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
29661 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29662 + * GNU General Public License for more details.
29664 + * You should have received a copy of the GNU General Public License
29665 + * along with this program; if not, write to the Free Software
29666 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
29669 +#include <grub/misc.h>
29670 +#include <grub/types.h>
29671 +#include <grub/cpu/linux.h>
29672 +#include <grub/efi/api.h>
29673 +#include <grub/efi/efi.h>
29674 +#include <grub/efi/misc.h>
29676 +#include "switch.h"
29678 +#include <shared.h>
29680 +#include "graphics.h"
29682 +#define grub_file_size() filemax
29684 +#define NEXT_MEMORY_DESCRIPTOR(desc, size) \
29685 + ((grub_efi_memory_descriptor_t *) ((char *) (desc) + (size)))
29687 +#define PTR_HI(x) ((grub_uint32_t) ((unsigned long long)((unsigned long)(x)) >> 32))
29689 +#ifndef SECTOR_SIZE
29690 +#define SECTOR_SIZE 0x200
29691 +#endif /* defined(SECTOR_SIZE) */
29692 +#ifndef SECTOR_BITS
29693 +#define SECTOR_BITS 9
29694 +#endif /* defined(SECTOR_BITS) */
29696 +static unsigned long linux_mem_size;
29697 +static int loaded;
29698 +static void *real_mode_mem;
29699 +static void *prot_mode_mem;
29700 +static grub_size_t prot_kernel_size;
29701 +static void *initrd_mem;
29702 +static grub_efi_uintn_t real_mode_pages;
29703 +static grub_efi_uintn_t prot_mode_pages;
29704 +static grub_efi_uintn_t initrd_pages;
29705 +static grub_efi_guid_t graphics_output_guid = GRUB_EFI_GRAPHICS_OUTPUT_GUID;
29707 +static inline grub_size_t
29708 +page_align (grub_size_t size)
29710 + return (size + (1 << 12) - 1) & (~((1 << 12) - 1));
29716 + if (real_mode_mem)
29718 + grub_efi_free_pages ((grub_addr_t) real_mode_mem, real_mode_pages);
29719 + real_mode_mem = 0;
29724 + grub_efi_free_pages ((grub_addr_t) initrd_mem, initrd_pages);
29730 + grub_efi_free_pages ((grub_addr_t) mmap_buf, mmap_pages);
29735 +/* Allocate pages for the real mode code and the protected mode code
29736 + for linux as well as a memory map buffer. */
29738 +allocate_pages (grub_size_t real_size, grub_size_t prot_size)
29740 + grub_efi_uintn_t desc_size;
29741 + grub_efi_memory_descriptor_t *mmap_end;
29742 + grub_efi_memory_descriptor_t *desc;
29743 + grub_efi_physical_address_t addr;
29745 + /* Make sure that each size is aligned to a page boundary. */
29746 + real_size = page_align (real_size + SECTOR_SIZE);
29747 + prot_size = page_align (prot_size);
29749 + grub_dprintf ("linux", "real_size = %x, prot_size = %x, mmap_size = %x\n",
29750 + (unsigned int) real_size, (unsigned int) prot_size,
29751 + (unsigned int) mmap_size);
29753 + /* Calculate the number of pages; Combine the real mode code with
29754 + the memory map buffer for simplicity. */
29755 + real_mode_pages = (real_size >> 12);
29756 + prot_mode_pages = (prot_size >> 12);
29758 + /* Initialize the memory pointers with NULL for convenience. */
29759 + real_mode_mem = 0;
29760 + prot_mode_mem = 0;
29762 + if (grub_efi_get_memory_map (0, &desc_size, 0) <= 0)
29763 + grub_fatal ("cannot get memory map");
29766 + mmap_end = NEXT_MEMORY_DESCRIPTOR (mmap_buf, mmap_size);
29767 + /* First, find free pages for the real mode code
29768 + and the memory map buffer. */
29769 + for (desc = mmap_buf;
29771 + desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size))
29773 + if (desc->type == GRUB_EFI_CONVENTIONAL_MEMORY
29774 + && desc->num_pages >= real_mode_pages)
29776 + grub_efi_physical_address_t physical_end;
29778 + physical_end = desc->physical_start + (desc->num_pages << 12);
29780 + grub_dprintf ("linux", "physical_start = %x, physical_end = %x\n",
29781 + (unsigned) desc->physical_start,
29782 + (unsigned) physical_end);
29783 + addr = physical_end - real_size;
29784 + if (addr < 0x100000)
29787 + /* the kernel wants this address to be under 1 gig.*/
29788 + if (desc->physical_start > 0x40000000 - real_size)
29791 + if (addr > 0x40000000 - real_size)
29792 + addr = 0x40000000 - real_size;
29794 + grub_dprintf ("linux", "trying to allocate %u pages at %x\n",
29795 + (unsigned) real_mode_pages, (unsigned) addr);
29796 + real_mode_mem = grub_efi_allocate_pages (addr, real_mode_pages);
29797 + if (! real_mode_mem)
29798 + grub_fatal ("cannot allocate pages");
29800 + desc->num_pages -= real_mode_pages;
29805 + if (! real_mode_mem)
29807 + grub_printf ("cannot allocate real mode pages");
29808 + errnum = ERR_WONT_FIT;
29812 + grub_printf("Trying to allocate %u pages for VMLINUZ\n",
29813 + (unsigned) prot_mode_pages);
29814 + prot_mode_mem = grub_efi_allocate_anypages(prot_mode_pages);
29816 + if (!prot_mode_mem)
29817 + grub_fatal("Cannot allocate pages for VMLINUZ");
29818 + grub_printf("Got pages at %p\n", prot_mode_mem);
29827 +/* do some funky stuff, then boot linux */
29831 + grub_printf ("zImage is not supported under EFI.\n");
29836 +grub_efi_disable_network (void)
29838 + grub_efi_guid_t pci_io_guid = GRUB_EFI_PCI_IO_GUID;
29839 + grub_efi_pci_io_t *pci_proto;
29840 + grub_efi_uintn_t num_handles;
29841 + grub_efi_handle_t *handle, *handles;
29843 + handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL,
29845 + NULL, &num_handles);
29846 + if (!handles || !num_handles)
29849 + for (handle = handles; num_handles--; handle++)
29851 + grub_efi_uint8_t class, pos, id, pm = 0;
29852 + grub_efi_uint16_t pm_state, vendor;
29855 + pci_proto = grub_efi_open_protocol (*handle, &pci_io_guid,
29856 + GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
29861 + Call_Service_5 (pci_proto->pci.read, pci_proto,
29862 + grub_efi_pci_io_width_uint8, 0x0b, 1, &class);
29864 + /* Not a network device */
29865 + if (class != 0x02)
29868 + Call_Service_5 (pci_proto->pci.read, pci_proto,
29869 + grub_efi_pci_io_width_uint16, 0x00, 1, &vendor);
29871 + /* Not a Broadcom */
29872 + if (vendor != 0x14e4)
29875 + Call_Service_5 (pci_proto->pci.read, pci_proto,
29876 + grub_efi_pci_io_width_uint16, 0x2c, 1, &vendor);
29878 + /* Not an Apple */
29879 + if (vendor != 0x106b)
29884 + /* Find the power management registers */
29887 + Call_Service_5 (pci_proto->pci.read, pci_proto,
29888 + grub_efi_pci_io_width_uint8, pos, 1, &pos);
29895 + Call_Service_5 (pci_proto->pci.read, pci_proto,
29896 + grub_efi_pci_io_width_uint8, pos, 1, &id);
29912 + Call_Service_5 (pci_proto->pci.read, pci_proto,
29913 + grub_efi_pci_io_width_uint16, pm + 4, 1, &pm_state);
29915 + pm_state &= ~0x03;
29916 + pm_state |= 0x03;
29920 + Call_Service_5 (pci_proto->pci.write, pci_proto,
29921 + grub_efi_pci_io_width_uint16, pm + 4, 1, &pm_state);
29923 + Call_Service_5 (pci_proto->pci.read, pci_proto,
29924 + grub_efi_pci_io_width_uint16, pm + 4, 1,
29931 +big_linux_boot (void)
29933 + struct linux_kernel_params *params;
29934 + struct grub_linux_kernel_header *lh;
29935 + grub_efi_uintn_t map_key;
29936 + grub_efi_uintn_t desc_size;
29937 + grub_efi_uint32_t desc_version;
29940 + params = real_mode_mem;
29942 + graphics_set_kernel_params (params);
29944 + if (grub_efi_get_memory_map (&map_key, &desc_size, &desc_version) <= 0)
29945 + grub_fatal ("cannot get memory map");
29947 + /* Pass e820 memmap. */
29948 + e820_map_from_efi_map ((struct e820_entry *) params->e820_map, &e820_nr_map,
29949 + mmap_buf, desc_size, mmap_size);
29950 + params->e820_nr_map = e820_nr_map;
29952 + grub_efi_disable_network();
29954 + if (! grub_efi_exit_boot_services (map_key))
29955 + grub_fatal ("cannot exit boot services");
29957 + /* Note that no boot services are available from here. */
29959 + /* copy vmlinuz image to hdr.code32_start */
29960 + memcpy ((char *)(unsigned long)(params->hdr.code32_start), (char *)prot_mode_mem,
29961 + prot_kernel_size);
29962 + /* copy switch image */
29963 + memcpy ((void *) 0x700, switch_image, switch_size);
29965 + lh = ¶ms->hdr;
29966 + /* Pass EFI parameters. */
29967 + if (grub_le_to_cpu16 (lh->version) >= 0x0206) {
29968 + params->version_0206.efi_mem_desc_size = desc_size;
29969 + params->version_0206.efi_mem_desc_version = desc_version;
29970 + params->version_0206.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf;
29971 + params->version_0206.efi_mmap_size = mmap_size;
29972 + } else if (grub_le_to_cpu16 (lh->version) >= 0x0204) {
29973 + params->version_0204.efi_mem_desc_size = desc_size;
29974 + params->version_0204.efi_mem_desc_version = desc_version;
29975 + params->version_0204.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf;
29976 + params->version_0204.efi_mmap_size = mmap_size;
29977 + } else /* dunno */ {
29978 + params->dunno.efi_mem_desc_size = desc_size;
29979 + params->dunno.efi_mem_desc_version = desc_version;
29980 + params->dunno.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf;
29981 + params->dunno.efi_mmap_size = mmap_size;
29982 + params->dunno.efi_mmap_hi = PTR_HI(mmap_buf);
29986 + /* Pass parameters. */
29987 + asm volatile ("mov %0, %%rsi" : : "m" (real_mode_mem));
29988 + asm volatile ("movl %0, %%ebx" : : "m" (params->hdr.code32_start));
29990 + /* Enter Linux, switch from 64-bit long mode
29991 + * to 32-bit protect mode, this code end address
29992 + * must not exceed 0x1000, because linux kernel bootstrap
29993 + * code will flush this area
29995 + asm volatile ( "mov $0x700, %%rdi" : :);
29996 + asm volatile ( "jmp *%%rdi" : :);
29998 + /* Pass parameters. */
29999 + asm volatile ("mov %0, %%esi" : : "m" (real_mode_mem));
30000 + asm volatile ("movl %0, %%ebx" : : "m" (params->hdr.code32_start));
30002 + /* Enter Linux, switch from 64-bit long mode
30003 + * to 32-bit protect mode, this code end address
30004 + * must not exceed 0x1000, because linux kernel bootstrap
30005 + * code will flush this area
30007 + asm volatile ( "mov $0x700, %%edi" : :);
30008 + asm volatile ( "jmp *%%edi" : :);
30011 + /* Never reach here. */
30016 +grub_load_linux (char *kernel, char *arg)
30018 + struct grub_linux_kernel_header *lh;
30019 + struct linux_kernel_params *params;
30020 + static struct linux_kernel_params params_buf;
30021 + grub_uint8_t setup_sects;
30022 + grub_size_t real_size, prot_size;
30023 + grub_uint64_t kernel_base, kernel_length, kernel_pages;
30024 + grub_ssize_t len;
30026 + int align, min_alignment;
30027 + int relocatable = 0;
30029 + if (kernel == NULL)
30031 + errnum = ERR_BAD_FILENAME;
30032 + grub_printf ("no kernel specified");
30036 + if (! grub_open (kernel))
30039 + if (grub_read ((char *) ¶ms_buf, sizeof (params_buf))
30040 + != sizeof (params_buf))
30042 + errnum = ERR_EXEC_FORMAT;
30043 + grub_printf ("cannot read the linux header");
30047 + lh = ¶ms_buf.hdr;
30049 + if (lh->boot_flag != grub_cpu_to_le16 (0xaa55))
30051 + errnum = ERR_EXEC_FORMAT;
30052 + grub_printf ("invalid magic number: %x", lh->boot_flag);
30056 + /* EFI support is quite new, so reject old versions. */
30057 + if (lh->header != grub_cpu_to_le32 (GRUB_LINUX_MAGIC_SIGNATURE)
30058 + || grub_le_to_cpu16 (lh->version) < 0x0203)
30060 + errnum = ERR_EXEC_FORMAT;
30061 + grub_printf ("too old version");
30065 + /* I'm not sure how to support zImage on EFI. */
30066 + if (! (lh->loadflags & GRUB_LINUX_FLAG_BIG_KERNEL))
30068 + errnum = ERR_EXEC_FORMAT;
30069 + grub_printf ("zImage is not supported");
30073 + setup_sects = lh->setup_sects;
30075 + real_size = 0x1000 + grub_strlen(arg);
30076 + prot_size = grub_file_size () - (setup_sects << SECTOR_BITS) - SECTOR_SIZE;
30077 + prot_kernel_size = prot_size;
30079 + if (! allocate_pages (real_size, prot_size))
30082 + /* XXX Linux assumes that only elilo can boot Linux on EFI!!! */
30083 + lh->type_of_loader = 0x50;
30085 + lh->cmd_line_ptr = (grub_uint32_t) (unsigned long) real_mode_mem + 0x1000;
30086 + lh->ramdisk_image = 0;
30087 + lh->ramdisk_size = 0;
30089 + grub_memset(real_mode_mem, 0, real_size);
30091 + params = (struct linux_kernel_params *) real_mode_mem;
30093 + grub_memmove(¶ms->hdr, lh, 0x202 + lh->jump_off - 0x1f1);
30095 + params->cl_magic = GRUB_LINUX_CL_MAGIC;
30096 + params->cl_offset = 0x1000;
30098 + /* These are not needed to be precise, because Linux uses these values
30099 + only to raise an error when the decompression code cannot find good
30101 + params->ext_mem = ((32 * 0x100000) >> 10);
30102 + params->alt_mem = ((32 * 0x100000) >> 10);
30104 + /* No APM on EFI. */
30105 + params->apm_version = 0;
30106 + params->apm_code_segment = 0;
30107 + params->apm_entry = 0;
30108 + params->apm_16bit_code_segment = 0;
30109 + params->apm_data_segment = 0;
30110 + params->apm_flags = 0;
30111 + params->apm_code_len = 0;
30112 + params->apm_data_len = 0;
30114 + /* XXX is there any way to use SpeedStep on EFI? */
30115 + params->ist_signature = 0;
30116 + params->ist_command = 0;
30117 + params->ist_event = 0;
30118 + params->ist_perf_level = 0;
30120 + /* Let the kernel probe the information. */
30121 + grub_memset (params->hd0_drive_info, 0, sizeof (params->hd0_drive_info));
30122 + grub_memset (params->hd1_drive_info, 0, sizeof (params->hd1_drive_info));
30124 + /* No MCA on EFI. */
30125 + params->rom_config_len = 0;
30127 + if (grub_le_to_cpu16 (lh->version) >= 0x0206) {
30128 + grub_memcpy(¶ms->version_0204.efi_signature, "EL64", 4);
30129 + params->version_0206.efi_system_table = \
30130 + (grub_uint32_t) (unsigned long) grub_efi_system_table;
30131 + } else if (grub_le_to_cpu16 (lh->version) >= 0x0204) {
30132 + grub_memcpy(¶ms->version_0204.efi_signature, "EFIL", 4);
30133 + params->version_0204.efi_system_table = \
30134 + (grub_uint32_t) (unsigned long) grub_efi_system_table;
30135 + } else /* dunno */ {
30136 + params->dunno.efi_signature = GRUB_LINUX_EFI_SIGNATURE_X64;
30137 + params->dunno.efi_system_table = \
30138 + (grub_uint32_t) (unsigned long) grub_efi_system_table;
30139 + params->dunno.efi_system_table_hi = PTR_HI(grub_efi_system_table);
30141 + /* The other EFI parameters are filled when booting. */
30144 + params->eddbuf_entries = 0;
30145 + params->edd_mbr_sig_buf_entries = 0;
30147 + /* XXX there is no way to know if the kernel really supports EFI. */
30148 + grub_printf ("[Linux-EFI, setup=0x%x, size=0x%x]\n", (unsigned int)real_size,
30149 + (unsigned int)prot_size);
30151 + /* Check the mem= option to limit memory used for initrd. */
30155 + mem = grub_strstr (arg, "mem=");
30158 + char *value = mem + 4;
30160 + safe_parse_maxulong (&value, &linux_mem_size);
30163 + case ERR_NUMBER_OVERFLOW:
30164 + /* If an overflow occurs, use the maximum address for
30165 + initrd instead. This is good, because MAXINT is
30166 + greater than LINUX_INITRD_MAX_ADDRESS. */
30167 + linux_mem_size = LINUX_INITRD_MAX_ADDRESS;
30168 + errnum = ERR_NONE;
30175 + switch (grub_tolower (*value))
30187 + /* Check an overflow. */
30188 + if (linux_mem_size > (~0UL >> shift))
30189 + linux_mem_size = 0;
30191 + linux_mem_size <<= shift;
30196 + linux_mem_size = 0;
30197 + errnum = ERR_NONE;
30202 + linux_mem_size = 0;
30205 + dest = grub_stpcpy ((char *) real_mode_mem + 0x1000, skip_to(0, arg));
30207 + grub_seek ((setup_sects << SECTOR_BITS) + SECTOR_SIZE);
30209 + if (grub_read ((char *)prot_mode_mem, len) != len)
30210 + grub_printf ("Couldn't read file");
30212 + if (lh->version >= 0x205) {
30213 + for (align = lh->min_alignment; align < 32; align++) {
30214 + if (lh->kernel_alignment & (1 << align)) {
30218 + relocatable = lh->relocatable_kernel;
30221 + if (lh->version >= 0x20a) {
30222 + kernel_base = lh->pref_address;
30223 + kernel_length = lh->init_size;
30224 + min_alignment = lh->min_alignment;
30226 + kernel_base = lh->code32_start;
30227 + kernel_length = prot_kernel_size;
30228 + min_alignment = 0;
30231 + kernel_pages = (kernel_length + 4095) >> 12;
30233 + /* Attempt to allocate address space for the kernel */
30234 + kernel_base = (grub_uint64_t)grub_efi_allocate_pages(kernel_base, kernel_pages);
30236 + if (!kernel_base && relocatable) {
30237 + grub_efi_memory_descriptor_t *desc;
30238 + grub_efi_memory_descriptor_t tdesc;
30239 + grub_efi_uintn_t desc_size;
30241 + if (grub_efi_get_memory_map (0, &desc_size, 0) <= 0)
30242 + grub_fatal ("cannot get memory map");
30244 + while (align >= min_alignment) {
30245 + for (desc = mmap_buf;
30246 + desc < NEXT_MEMORY_DESCRIPTOR (mmap_buf, mmap_size);
30247 + desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size))
30249 + grub_uint64_t addr;
30250 + grub_uint64_t alignval = (1 << align) - 1;
30252 + if (desc->type != GRUB_EFI_CONVENTIONAL_MEMORY)
30255 + memcpy(&tdesc, desc, sizeof(tdesc));
30257 + addr = (tdesc.physical_start + alignval) & ~(alignval);
30259 + if ((addr + kernel_length) >
30260 + (tdesc.physical_start + (tdesc.num_pages << 12)))
30263 + kernel_base = (grub_uint64_t)grub_efi_allocate_pages(addr, kernel_pages);
30265 + if (kernel_base) {
30266 + lh->kernel_alignment = 1 << align;
30276 + if (!kernel_base) {
30277 + grub_printf("Failed to allocate kernel memory");
30278 + errnum = ERR_UNRECOGNIZED;
30282 + lh->code32_start = kernel_base;
30284 + if (errnum == ERR_NONE)
30295 + if (errnum != ERR_NONE)
30299 + return errnum ? KERNEL_TYPE_NONE : KERNEL_TYPE_BIG_LINUX;
30303 +grub_load_initrd (char *initrd)
30305 + grub_ssize_t size;
30306 + grub_addr_t addr_min, addr_max;
30307 + grub_addr_t addr;
30308 + grub_efi_memory_descriptor_t *desc;
30309 + grub_efi_memory_descriptor_t tdesc;
30310 + grub_efi_uintn_t desc_size;
30311 + struct linux_kernel_params *params;
30313 + if (initrd == NULL)
30315 + errnum = ERR_BAD_FILENAME;
30316 + grub_printf ("No module specified");
30322 + errnum = ERR_UNRECOGNIZED;
30323 + grub_printf ("You need to load the kernel first.");
30327 + if (! grub_open (initrd))
30330 + size = grub_file_size ();
30331 + initrd_pages = (page_align (size) >> 12);
30333 + params = (struct linux_kernel_params *) real_mode_mem;
30334 + grub_dprintf(__func__, "initrd_pages: %lu\n", initrd_pages);
30336 + addr_max = grub_cpu_to_le32 (params->hdr.initrd_addr_max);
30337 + if (linux_mem_size != 0 && linux_mem_size < addr_max)
30338 + addr_max = linux_mem_size;
30339 + addr_max &= ~((1 << 12)-1);
30341 + /* Usually, the compression ratio is about 50%. */
30344 + /* Find the highest address to put the initrd. */
30345 + grub_dprintf(__func__, "addr_min: 0x%lx addr_max: 0x%lx mmap_size: %lu\n", addr_min, addr_max, mmap_size);
30346 + if (grub_efi_get_memory_map (0, &desc_size, 0) <= 0)
30347 + grub_fatal ("cannot get memory map");
30350 + for (desc = mmap_buf;
30351 + desc < NEXT_MEMORY_DESCRIPTOR (mmap_buf, mmap_size);
30352 + desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size))
30354 + if (desc->type != GRUB_EFI_CONVENTIONAL_MEMORY)
30356 + memcpy(&tdesc, desc, sizeof (tdesc));
30357 + if (tdesc.physical_start < addr_min
30358 + && tdesc.num_pages > ((addr_min - tdesc.physical_start) >> 12))
30360 + tdesc.num_pages -= ((addr_min - tdesc.physical_start) >> 12);
30361 + tdesc.physical_start = addr_min;
30364 + 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);
30365 + if (tdesc.physical_start >= addr_min
30366 + && tdesc.physical_start + page_align (size) <= addr_max
30367 + && tdesc.num_pages >= initrd_pages)
30369 + grub_efi_physical_address_t physical_end;
30371 + physical_end = tdesc.physical_start + (tdesc.num_pages << 12);
30372 + if (physical_end > addr_max)
30373 + physical_end = addr_max;
30375 + if (physical_end <= 0x7fffffffUL && physical_end > addr)
30376 + addr = physical_end - page_align (size);
30382 + errnum = ERR_UNRECOGNIZED;
30383 + grub_printf ("no free pages available");
30387 + initrd_mem = grub_efi_allocate_pages (addr, initrd_pages);
30388 + if (! initrd_mem)
30389 + grub_fatal ("cannot allocate pages: %x@%x", (unsigned)initrd_pages,
30392 + if (grub_read (initrd_mem, size) != size)
30394 + grub_printf ("Couldn't read file");
30398 + grub_printf (" [Initrd, addr=0x%x, size=0x%x]\n", (unsigned int) addr,
30399 + (unsigned int) size);
30401 + params->hdr.ramdisk_image = addr;
30402 + params->hdr.ramdisk_size = size;
30403 + params->hdr.root_dev = 0x0100; /* XXX */
30410 diff --git a/efi/x86_64/loader/switch.S b/efi/x86_64/loader/switch.S
30411 new file mode 100644
30412 index 0000000..d0d8dca
30414 +++ b/efi/x86_64/loader/switch.S
30417 +# Switch from protected mode to real mode and jump to setup.S
30418 +# image located at %cx:0.
30420 +# This module must be placed into physical memory at 0:7C00h.
30421 +# EFI has some real mode thunking code at 2000:0h.
30423 +# Processor and non-maskable interrupts should be disabled
30424 +# before control is passed to this module.
30427 +#define __KERNEL_CS 0x38
30428 +#define MSR_EFER 0xc0000080
30429 +#define _EFER_LME 8 /* Long mode enable */
30436 + # Load identity mapped GDT & real mode IDT.
30437 + # Add 7C00h to the addresses since this is linked to start
30438 + # at 0h and it is being placed at 7C00h.
30441 + # fixme here EFI bios cs segment is 0x38
30442 + # switch to IA32e compatible mode
30443 + # esi point to kernel parameter
30444 + # ebx point to kernel entry point
30452 + /* switch to IA32e compatible mode */
30456 + # Turn off PG bit in CR0 and set CR3 to zero.
30459 + andl $0x7FFFFFFF, %eax
30462 + /* Setup EFER (Extended Feature Enable Register) */
30465 + movl $0xc0000080, %ecx
30467 + /* Enable Long Mode */
30468 + andl $0xFFFFFEFF, %eax
30469 + /* Make changes effective */
30472 + /* Disable PAE */
30479 +//jmp to kernel entry
30486 +gdt_64: .word 0x08 * 9 -1
30493 + # GDT & IDT stuff for switching into 32 bit protected mode.
30497 + .quad 0x0000000000000000 /* NULL descriptor 0*/
30498 + .quad 0x0 /* unused 0x08 */
30499 + .quad 0x00cf9a000000ffff /* __KERNEL_CS 0x10 */
30500 + .quad 0x00cf92000000ffff /* __KERNEL_DS 0x18 */
30501 + .quad 0x00cf92000000ffff
30502 + .quad 0x00cf92000000ffff
30503 + .quad 0x00cf92000000ffff
30504 + .quad 0x00cf9a000000ffff /* __KERNEL32_CS 0x38*/
30505 + .quad 0 /* unused */
30508 diff --git a/efi/x86_64/loader/switch.h b/efi/x86_64/loader/switch.h
30509 new file mode 100644
30510 index 0000000..b5dc39a
30512 +++ b/efi/x86_64/loader/switch.h
30514 +unsigned char switch_image[] = {
30515 +0xfa, 0xfc, 0x0f, 0x01, 0x14, 0x25, 0x48, 0x07,
30516 +0x00, 0x00, 0x0f, 0x01, 0x1c, 0x25, 0x58, 0x07,
30517 +0x00, 0x00, 0xff, 0x2c, 0x25, 0x40, 0x07, 0x00,
30518 +0x00, 0x0f, 0x20, 0xc0, 0x25, 0xff, 0xff, 0xff,
30519 +0x7f, 0x0f, 0x22, 0xc0, 0x90, 0x90, 0xb9, 0x80,
30520 +0x00, 0x00, 0xc0, 0x0f, 0x32, 0x25, 0xff, 0xfe,
30521 +0xff, 0xff, 0x0f, 0x30, 0x31, 0xc0, 0x0f, 0x22,
30522 +0xe0, 0xeb, 0x00, 0xff, 0xe3, 0x8d, 0x76, 0x00,
30523 +0x19, 0x07, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
30524 +0x47, 0x00, 0x68, 0x07, 0x00, 0x00, 0x00, 0x00,
30525 +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
30526 +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
30527 +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
30528 +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
30529 +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
30530 +0xff, 0xff, 0x00, 0x00, 0x00, 0x9a, 0xcf, 0x00,
30531 +0xff, 0xff, 0x00, 0x00, 0x00, 0x92, 0xcf, 0x00,
30532 +0xff, 0xff, 0x00, 0x00, 0x00, 0x92, 0xcf, 0x00,
30533 +0xff, 0xff, 0x00, 0x00, 0x00, 0x92, 0xcf, 0x00,
30534 +0xff, 0xff, 0x00, 0x00, 0x00, 0x92, 0xcf, 0x00,
30535 +0xff, 0xff, 0x00, 0x00, 0x00, 0x9a, 0xcf, 0x00,
30536 +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
30538 +int switch_size = sizeof switch_image;
30539 diff --git a/efi/x86_64/reloc.c b/efi/x86_64/reloc.c
30540 new file mode 100644
30541 index 0000000..b53eb63
30543 +++ b/efi/x86_64/reloc.c
30545 +/* reloc_x86_64.c - position independent x86_64 ELF shared object relocator
30546 + Copyright (C) 1999 Hewlett-Packard Co.
30547 + Contributed by David Mosberger <davidm@hpl.hp.com>.
30548 + Copyright (C) 2005 Intel Co.
30549 + Contributed by Fenghua Yu <fenghua.yu@intel.com>.
30551 + This file is part of GNU-EFI, the GNU EFI development environment.
30553 + GNU EFI is free software; you can redistribute it and/or modify
30554 + it under the terms of the GNU General Public License as published by
30555 + the Free Software Foundation; either version 2, or (at your option)
30556 + any later version.
30558 + GNU EFI is distributed in the hope that it will be useful,
30559 + but WITHOUT ANY WARRANTY; without even the implied warranty of
30560 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30561 + GNU General Public License for more details.
30563 + You should have received a copy of the GNU General Public License
30564 + along with GNU EFI; see the file COPYING. If not, write to the Free
30565 + Software Foundation, 59 Temple Place - Suite 330, Boston, MA
30566 + 02111-1307, USA. */
30568 +#include <grub/efi/efi.h>
30569 +#include <grub/efi/api.h>
30572 +grub_efi_status_t _relocate (long ldbase, ElfW(Dyn) *dyn,
30573 + grub_efi_handle_t image_handle,
30574 + grub_efi_system_table_t *sys_tab)
30576 + //extern EFI_STATUS efi_main (EFI_HANDLE, EFI_SYSTEM_TABLE *);
30577 + long relsz = 0, relent = 0;
30578 + ElfW(Rel) *rel = 0;
30579 + unsigned long *addr;
30582 + for (i = 0; dyn[i].d_tag != DT_NULL; ++i) {
30583 + switch (dyn[i].d_tag) {
30585 + rel = (ElfW(Rel)*) ((long) dyn[i].d_un.d_ptr + ldbase);
30589 + relsz = dyn[i].d_un.d_val;
30593 + relent = dyn[i].d_un.d_val;
30601 + if (!rel || relent == 0){
30602 + return GRUB_EFI_LOAD_ERROR;
30604 + while (relsz > 0) {
30605 + /* apply the relocs */
30606 + switch (ELF64_R_TYPE (rel->r_info)) {
30607 + case R_X86_64_NONE:
30610 + case R_X86_64_RELATIVE:
30611 + addr = (unsigned long *) (ldbase + rel->r_offset);
30618 + rel = (ElfW(Rel)*) ((char *) rel + relent);
30621 + return GRUB_EFI_SUCCESS;
30624 diff --git a/efi/x86_64/setjmp.S b/efi/x86_64/setjmp.S
30625 new file mode 100644
30626 index 0000000..e042a14
30628 +++ b/efi/x86_64/setjmp.S
30631 + * GRUB -- GRand Unified Bootloader
30632 + * Copyright (C) 2003 Free Software Foundation, Inc.
30634 + * This program is free software; you can redistribute it and/or modify
30635 + * it under the terms of the GNU General Public License as published by
30636 + * the Free Software Foundation; either version 2 of the License, or
30637 + * (at your option) any later version.
30639 + * This program is distributed in the hope that it will be useful,
30640 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
30641 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30642 + * GNU General Public License for more details.
30644 + * You should have received a copy of the GNU General Public License
30645 + * along with this program; if not, write to the Free Software
30646 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
30649 +#include <grub/symbol.h>
30656 + * int grub_setjmp (grub_jmp_buf env)
30658 +FUNCTION(grub_setjmp)
30659 + pop %rsi /* Return address, and adjust the stack */
30661 + movq %rbx, 0(%rdi) /* RBX */
30662 + movq %rsp, 8(%rdi) /* RSP */
30664 + movq %rbp, 16(%rdi) /* RBP */
30665 + movq %r12, 24(%rdi) /* R12 */
30666 + movq %r13, 32(%rdi) /* R13 */
30667 + movq %r14, 40(%rdi) /* R14 */
30668 + movq %r15, 48(%rdi) /* R15 */
30669 + movq %rsi, 56(%rdi) /* RSI */
30673 + * int grub_longjmp (grub_jmp_buf env, int val)
30675 +FUNCTION(grub_longjmp)
30677 + movq (%rdi), %rbx
30678 + movq 8(%rdi), %rsp
30679 + movq 16(%rdi), %rbp
30680 + movq 24(%rdi), %r12
30681 + movq 32(%rdi), %r13
30682 + movq 40(%rdi), %r14
30683 + movq 48(%rdi), %r15
30686 diff --git a/efi/xpm.c b/efi/xpm.c
30687 new file mode 100644
30688 index 0000000..085a10c
30693 +#if defined(SUPPORT_GRAPHICS) || defined(PLATFORM_EFI) || 1
30695 +#include <grub/efi/api.h>
30696 +#include <grub/efi/efi.h>
30697 +#include <grub/misc.h>
30702 +xpm_get_pixel_idx(struct xpm *xpm, int x, int y)
30704 + if (x < 0 || x >= xpm->width)
30706 + if (y < 0 || y >= xpm->width)
30708 + return xpm->image[x + (y * xpm->width)];
30712 +xpm_set_pixel_idx(struct xpm *xpm, int x, int y, unsigned char idx)
30714 + xpm->image[y * xpm->width + x] = idx;
30718 +xpm_get_idx(struct xpm *xpm, unsigned char idx, xpm_pixel_t *pixel)
30720 + xpm_pixel_t *xpl;
30723 + if (idx >= xpm->colors) {
30724 + pixel->red = pixel->green = pixel->blue = 0;
30727 + xpl = &xpm->palette[idx];
30728 + memcpy(pixel, xpl, sizeof (*pixel));
30729 +// pixel->red = xpl->red;
30730 +// pixel->green = xpl->green;
30731 +// pixel->blue = xpl->blue;
30735 +xpm_get_pixel(struct xpm *xpm, int x, int y, xpm_pixel_t *pixel)
30737 + unsigned char idx;
30738 + idx = xpm_get_pixel_idx(xpm, x, y);
30739 + xpm_get_idx(xpm, idx, pixel);
30746 + if (v >= 'A' && v <= 'F')
30747 + return (v - 'A' + 10);
30748 + if (v >= 'a' && v <= 'f')
30749 + return (v - 'a' + 10);
30750 + return (v - '0');
30754 +xpm_open(char *path)
30756 + char c, prev, target[]="/* XPM */\n", base;
30759 + unsigned int i, idx, len, x, y;
30760 + unsigned char pal[XPM_MAX_COLORS];
30763 + xpm = grub_malloc(sizeof (*xpm));
30767 + if (!grub_open(path)) {
30769 + grub_printf("grub_open(\"%s\") failed\n", path);
30773 + grub_memset(xpm, '\0', sizeof (*xpm));
30778 + if (grub_read(&c, 1) != 1) {
30779 + grub_printf("grub_read() failed\n");
30784 + if ((pos == 0 && prev == '\n') || pos > 0) {
30785 + if (c == target[pos])
30791 + } while (target[pos]);
30794 + while (grub_read(&c, 1)) {
30798 + while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
30802 + xpm->width = c - '0';
30803 + while (grub_read(&c, 1)) {
30804 + if (c >= '0' && c <= '9')
30805 + xpm->width = xpm->width * 10 + c - '0';
30809 + if (xpm->width > XPM_MAX_WIDTH) {
30810 + grub_printf("xpm->width (%d) was greater than XPM_MAX_WIDTH (%d)\n",
30811 + xpm->width, XPM_MAX_WIDTH);
30816 + while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
30819 + xpm->height = c - '0';
30820 + while (grub_read(&c, 1)) {
30821 + if (c >= '0' && c <= '9')
30822 + xpm->height = xpm->height * 10 + c - '0';
30826 + if (xpm->height > XPM_MAX_HEIGHT) {
30827 + grub_printf("xpm->height (%d) was greater than XPM_MAX_HEIGHT (%d)\n",
30828 + xpm->height, XPM_MAX_HEIGHT);
30834 + while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
30837 + xpm->colors = c - '0';
30838 + while (grub_read(&c, 1)) {
30839 + if (c >= '0' && c <= '9')
30840 + xpm->colors = xpm->colors * 10 + c - '0';
30846 + while (grub_read(&c, 1) && c != '"')
30850 + for (i = 0, idx = 1; i < xpm->colors; i++) {
30853 + while (grub_read(&c, 1) && c != '"')
30855 + grub_read(&c, 1); /* char */
30857 + grub_read(buf, 4); /* \t c # */
30859 + while (grub_read(&c, 1) && c != '"') {
30860 + if (len < sizeof(buf))
30864 + if (len == 6 && idx < xpm->colors) {
30865 + unsigned char r, g, b;
30867 + r = (hex_to_int(buf[0]) << 4) | hex_to_int(buf[1]);
30868 + g = (hex_to_int(buf[2]) << 4) | hex_to_int(buf[3]);
30869 + b = (hex_to_int(buf[4]) << 4) | hex_to_int(buf[5]);
30872 + xpm->palette[idx].red = r;
30873 + xpm->palette[idx].green = g;
30874 + xpm->palette[idx].blue = b;
30879 + /* parse xpm data */
30881 + while (y < xpm->height) {
30882 + xpm_pixel_t *pixel = NULL;
30884 + if (!grub_read(&c, 1)) {
30885 + grub_printf("%s %s:%d grub_read() failed\n", __FILE__, __func__, __LINE__);
30894 + while (grub_read(&c, 1) && c != '"') {
30895 + unsigned char *iaddr = NULL;
30896 + for (i = 1; i < xpm->colors; i++)
30897 + if (pal[i] == c) {
30902 + xpm_set_pixel_idx(xpm, x, y, idx);
30904 + if (++x >= xpm->width) {
30916 +xpm_free(struct xpm *xpm)
30922 +#endif /* SUPPORT_GRAPHICS || PLATFORM_EFI */
30923 diff --git a/efi/xpm.h b/efi/xpm.h
30924 new file mode 100644
30925 index 0000000..258abc1
30929 +#ifndef GRUB_XPM_H
30930 +#define GRUB_XPM_H
30932 +#include <shared.h>
30934 +#define XPM_MAX_COLORS 31
30935 +#define XPM_MAX_WIDTH 640
30936 +#define XPM_MAX_HEIGHT 480
30938 +struct xpm_pixel {
30939 + unsigned char reserved;
30940 + unsigned char red;
30941 + unsigned char green;
30942 + unsigned char blue;
30944 +typedef struct xpm_pixel xpm_pixel_t;
30948 + xpm_pixel_t palette[32];
30952 + unsigned char image[XPM_MAX_WIDTH * XPM_MAX_HEIGHT];
30955 +extern struct xpm *xpm_open(char *path);
30956 +extern void xpm_free(struct xpm *xpm);
30958 +extern unsigned char xpm_get_pixel_idx(struct xpm *xpm, int x, int y);
30959 +extern void xpm_set_pixel_idx(struct xpm *xpm, int x, int y, unsigned char idx);
30960 +extern int xpm_get_pixel(struct xpm *xpm, int x, int y, xpm_pixel_t *pixel);
30962 +extern void xpm_get_idx(struct xpm *xpm, unsigned char idx, xpm_pixel_t *pixel);
30964 +#endif /* GRUB_XPM_H */
30965 diff --git a/grub.spec b/grub.spec
30966 new file mode 100644
30967 index 0000000..7e5982d
30973 +Release: 20%{?dist}
30974 +Summary: GRUB - the Grand Unified Boot Loader.
30975 +Group: System Environment/Base
30978 +ExclusiveArch: i386 x86_64
30979 +BuildRequires: binutils >= 2.9.1.0.23, ncurses-devel, ncurses-static, texinfo
30980 +BuildRequires: autoconf /usr/lib/crt1.o automake
30981 +PreReq: /sbin/install-info
30983 +Requires: /usr/bin/cmp
30984 +Requires: system-logos
30985 +BuildRoot: %{_tmppath}/%{name}-%{version}-root
30987 +URL: http://www.gnu.org/software/%{name}/
30988 +Source0: ftp://alpha.gnu.org/gnu/%{name}/%{name}-%{version}.tar.gz
30989 +Patch0: grub-fedora-9.patch
30992 +GRUB (Grand Unified Boot Loader) is an experimental boot loader
30993 +capable of booting into most free operating systems - Linux, FreeBSD,
30994 +NetBSD, GNU Mach, and others as well as most commercial operating
30999 +%patch0 -p1 -b .fedora-9
31004 +GCCVERS=$(gcc --version | head -1 | cut -d\ -f3 | cut -d. -f1)
31005 +CFLAGS="-Os -g -fno-strict-aliasing -Wall -Werror -Wno-shadow -Wno-unused"
31006 +if [ "$GCCVERS" == "4" ]; then
31007 + CFLAGS="$CFLAGS -Wno-pointer-sign"
31011 +%configure --sbindir=/sbin --disable-auto-linux-mem-opt --datarootdir=%{_datadir} --with-platform=efi
31013 +rm -fr $RPM_BUILD_ROOT
31014 +%makeinstall sbindir=${RPM_BUILD_ROOT}/sbin
31015 +mv ${RPM_BUILD_ROOT}/sbin/grub ${RPM_BUILD_ROOT}/sbin/grub-efi
31019 +CFLAGS="$CFLAGS -static"
31022 +%configure --sbindir=/sbin --disable-auto-linux-mem-opt --datarootdir=%{_datadir}
31026 +%makeinstall sbindir=${RPM_BUILD_ROOT}/sbin
31027 +mkdir -p ${RPM_BUILD_ROOT}/boot/grub
31029 +rm -f ${RPM_BUILD_ROOT}/%{_infodir}/dir
31032 +rm -fr $RPM_BUILD_ROOT
31035 +if [ "$1" = 1 ]; then
31036 + /sbin/install-info --info-dir=%{_infodir} %{_infodir}/grub.info.gz || :
31037 + /sbin/install-info --info-dir=%{_infodir} %{_infodir}/multiboot.info.gz || :
31041 +if [ "$1" = 0 ] ;then
31042 + /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/grub.info.gz || :
31043 + /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/multiboot.info.gz || :
31047 +%defattr(-,root,root)
31048 +%doc AUTHORS ChangeLog NEWS README COPYING TODO docs/menu.lst
31051 +/sbin/grub-install
31052 +/sbin/grub-terminfo
31053 +/sbin/grub-md5-crypt
31056 +%{_infodir}/multiboot*
31064 +* Mon Nov 05 2007 Peter Jones <pjones@redhat.com> - 0.97-20
31065 +- Add EFI support from Intel on x86_64
31067 +* Thu Sep 20 2007 Peter Jones <pjones@redhat.com> - 0.97-19
31068 +- Fix dmraid detection on Intel (isw) controllers in grub-install .
31070 +* Wed Aug 22 2007 Peter Jones <pjones@redhat.com> - 0.97-18
31071 +- Fix license tag.
31073 +* Mon Aug 20 2007 Peter Jones <pjones@redhat.com> - 0.97-17
31074 +- Use --build-id=none instead of stripping out the build-id notes in the
31075 + first and second stage loaders.
31077 +* Tue Aug 7 2007 Peter Jones <pjones@redhat.com> - 0.97-16
31078 +- Add ext[23] large inode support (patch from Eric Sandeen)
31079 +- Fix auto* breakage that happened when we switched from autoreconf to autoconf
31080 +- Move to original tarball + patch generated from git
31082 +* Mon Jul 16 2007 Peter Jones <pjones@redhat.com> - 0.97-15
31083 +- Support booting from GPT
31085 +* Fri Feb 23 2007 Bill Nottingham <notting@redhat.com> - 0.97-14
31086 +- fix scriplet errors when installed with --nodocs
31087 +- coax grub into building (-ltinfo, autoconf instead of autoreconf)
31089 +* Sun Oct 01 2006 Jesse Keating <jkeating@redhat.com> - 0.97-13
31090 +- rebuilt for unwind info generation, broken in gcc-4.1.1-21
31092 +* Thu Sep 21 2006 Peter Jones <pjones@redhat.com> - 0.97-12
31093 +- Reenable patch 505, which fixes #116311
31095 +* Tue Aug 15 2006 Peter Jones <pjones@redhat.com> - 0.97-11
31096 +- Disable patch 505 (#164497)
31098 +* Wed Aug 2 2006 Peter Jones <pjones@redhat.com> - 0.97-10
31099 +- Fix grub-install for multipath
31101 +* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 0.97-9.1
31104 +* Fri Jul 7 2006 Peter Jones <pjones@redhat.com> - 0.97-9
31105 +- fix broken error reporting from helper functions
31107 +* Mon Jun 12 2006 Peter Jones <pjones@redhat.com> - 0.97-8
31108 +- Fix BIOS keyboard handler to use extended keyboard interrupts, so the
31111 +* Mon Jun 5 2006 Jesse Keating <jkeating@redhat.com> - 0.97-7
31112 +- Added BuildRequires on a 32bit library
31114 +* Sat May 27 2006 Peter Jones <pjones@redhat.com> - 0.97-6
31115 +- Fix mactel keyboard problems, patch from Juergen Keil, forwarded by Linus.
31117 +* Mon Mar 13 2006 Peter Jones <pjones@redhat.com> - 0.97-5
31118 +- Fix merge error for "bootonce" patch (broken in 0.95->0.97 update)
31119 +- Get rid of the 0.97 "default" stuff, since it conflicts with our working
31122 +* Mon Mar 9 2006 Peter Jones <pjones@redhat.com> - 0.97-4
31123 +- Fix running "install" multiple times on the same fs in the same invocation
31124 + of grub. (bz #158426 , patch from lxo@redhat.com)
31126 +* Mon Feb 13 2006 Peter Jones <pjones@redhat.com> - 0.97-3
31127 +- fix partition names on dmraid
31129 +* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 0.97-2.1
31130 +- rebuilt for new gcc4.1 snapshot and glibc changes
31132 +* Fri Jan 13 2006 Peter Jones <pjones@redhat.com> - 0.97-2
31133 +- add dmraid support
31135 +* Wed Dec 14 2005 Peter Jones <pjones@redhat.com> - 0.97-1
31136 +- update to grub 0.97
31138 +* Mon Dec 5 2005 Peter Jones <pjones@redhat.com> - 0.95-17
31139 +- fix configure conftest.c bugs
31140 +- add -Wno-unused to defeat gcc41 "unused" checking when there are aliases.
31142 +* Mon Aug 1 2005 Peter Jones <pjones@redhat.com> - 0.95-16
31143 +- minor fix to the --recheck fix.
31145 +* Mon Jul 25 2005 Peter Jones <pjones@redhat.com> 0.95-15
31146 +- Make "grub-install --recheck" warn the user about how bad it is,
31147 + and keep a backup file, which it reverts to upon detecting some errors.
31149 +* Wed Jul 6 2005 Peter Jones <pjones@redhat.com> 0.95-14
31150 +- Fix changelog to be UTF-8
31152 +* Thu May 19 2005 Peter Jones <pjones@redhat.com> 0.95-13
31153 +- Make the spec work with gcc3 and gcc4, so people can test on existing
31155 +- don't treat i2o like a cciss device, since its partition names aren't done
31156 + that way. (#158158)
31158 +* Wed Mar 16 2005 Peter Jones <pjones@redhat.com> 0.95-12
31159 +- Make installing on a partition work again when not using raid
31161 +* Thu Mar 3 2005 Peter Jones <pjones@redhat.com> 0.95-11
31162 +- Make it build with gcc4
31164 +* Sun Feb 20 2005 Peter Jones <pjones@redhat.com> 0.95-10
31165 +- Always install in MBR for raid1 /boot/
31167 +* Sun Feb 20 2005 Peter Jones <pjones@redhat.com> 0.95-9
31168 +- Always use full path for mdadm in grub-install
31170 +* Tue Feb 8 2005 Peter Jones <pjones@redhat.com> 0.95-8
31171 +- Mark the simulation stack executable
31172 +- Eliminate the use of inline functions in stage2/builtins.c
31174 +* Wed Jan 11 2005 Peter Jones <pjones@redhat.com> 0.95-7
31175 +- Make grub ignore everything before the XPM header in the splash image,
31177 +- If the boot splash image is missing, use console mode instead
31178 + of graphics mode.
31179 +- Don't print out errors using the graphics terminal code if we're not
31180 + actually in graphics mode.
31182 +* Mon Jan 3 2005 Peter Jones <pjones@redhat.com> 0.95-6
31183 +- reworked much of how the RAID1 support in grub-install works. This version
31184 + does not require all the devices in the raid to be listed in device.map,
31185 + as long as you specify a physical device or partition rather than an md
31186 + device. It should also work with a windows dual-boot on the first partition.
31188 +* Fri Dec 17 2004 Peter Jones <pjones@redhat.com> 0.95-5
31189 +- added support for RAID1 devices to grub-install, partly based on a
31190 + patch from David Knierim. (#114690)
31192 +* Tue Nov 30 2004 Jeremy Katz <katzj@redhat.com> 0.95-4
31193 +- add patch from upstream CVS to handle sparse files on ext[23]
31194 +- make geometry detection a little bit more robust/correct
31195 +- use O_DIRECT when reading/writing from devices. use aligned buffers as
31196 + needed for read/write (#125808)
31197 +- actually apply the i2o patch
31198 +- detect cciss/cpqarray devices better (#123249)
31200 +* Thu Sep 30 2004 Jeremy Katz <katzj@redhat.com> - 0.95-3
31201 +- don't act on the keypress for the menu (#134029)
31203 +* Mon Jun 28 2004 Jeremy Katz <katzj@redhat.com> - 0.95-2
31204 +- add patch from Nicholas Miell to make hiddenmenu work more
31205 + nicely with splashimage mode (#126764)
31207 +* Fri Jun 18 2004 Jeremy Katz <katzj@redhat.com> - 0.95-1
31209 +- drop emd patch, E-MD isn't making forward progress upstream
31210 +- fix static build for x86_64 (#121095)
31212 +* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com>
31215 +* Wed Jun 9 2004 Jeremy Katz <katzj@redhat.com>
31216 +- require system-logos (#120837)
31218 +* Fri Jun 4 2004 Jeremy Katz <katzj@redhat.com>
31219 +- buildrequire automake (#125326)
31221 +* Thu May 06 2004 Warren Togami <wtogami@redhat.com> - 0.94-5
31222 +- i2o patch from Markus Lidel
31224 +* Wed Apr 14 2004 Jeremy Katz <katzj@redhat.com> - 0.94-4
31225 +- read geometry off of the disk since HDIO_GETGEO doesn't actually
31226 + return correct data with a 2.6 kernel
31228 +* Fri Mar 12 2004 Jeremy Katz <katzj@redhat.com>
31229 +- add texinfo buildrequires (#118146)
31231 +* Wed Feb 25 2004 Jeremy Katz <katzj@redhat.com> 0.94-3
31232 +- don't use initrd_max_address
31234 +* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com> 0.94-2
31237 +* Thu Feb 12 2004 Jeremy Katz <katzj@redhat.com> 0.94-1
31238 +- update to 0.94, patch merging and updating as necessary
31240 +* Sat Jan 3 2004 Jeremy Katz <katzj@redhat.com> 0.93-8
31241 +- new bootonce patch from Padraig Brady so that you don't lose
31242 + the old default (#112775)
31244 +* Mon Nov 24 2003 Jeremy Katz <katzj@redhat.com>
31245 +- add ncurses-devel as a buildrequires (#110732)
31247 +* Tue Oct 14 2003 Jeremy Katz <katzj@redhat.com> 0.93-7
31250 +* Wed Jul 2 2003 Jeremy Katz <katzj@redhat.com>
31251 +- Requires: /usr/bin/cmp (#98325)
31253 +* Thu May 22 2003 Jeremy Katz <katzj@redhat.com> 0.93-6
31254 +- add patch from upstream to fix build with gcc 3.3
31256 +* Wed Apr 2 2003 Jeremy Katz <katzj@redhat.com> 0.93-5
31257 +- add patch to fix support for serial terminfo (#85595)
31259 +* Wed Jan 22 2003 Tim Powers <timp@redhat.com>
31262 +* Fri Jan 17 2003 Jeremy Katz <katzj@redhat.com> 0.93-3
31263 +- add patch from HJ Lu to support large disks (#80980, #63848)
31264 +- add patch to make message when ending edit clearer (#53846)
31266 +* Sun Dec 29 2002 Jeremy Katz <katzj@redhat.com> 0.93-2
31267 +- add a patch to reset the terminal type to console before doing 'boot' from
31268 + the command line (#61069)
31270 +* Sat Dec 28 2002 Jeremy Katz <katzj@redhat.com> 0.93-1
31272 +- update configfile patch
31273 +- graphics patch rework to fit in as a terminal type as present in 0.93
31274 +- use CFLAGS="-Os -g"
31275 +- patch configure.in to allow building if host_cpu=x86_64, include -m32 in
31276 + CFLAGS if building on x86_64
31277 +- link glibc static on x86_64 to not require glibc32
31278 +- include multiboot info pages
31279 +- drop obsolete patches, reorder remaining patches into some semblance of order
31281 +* Thu Sep 5 2002 Jeremy Katz <katzj@redhat.com> 0.92-7
31282 +- splashscreen is in redhat-logos now
31284 +* Tue Sep 3 2002 Jeremy Katz <katzj@redhat.com> 0.92-6
31285 +- update splashscreen again
31287 +* Mon Sep 2 2002 Jeremy Katz <katzj@redhat.com> 0.92-5
31288 +- update splashscreen
31290 +* Fri Jun 21 2002 Tim Powers <timp@redhat.com> 0.92-4
31291 +- automated rebuild
31293 +* Thu May 23 2002 Tim Powers <timp@redhat.com> 0.92-3
31294 +- automated rebuild
31296 +* Fri May 3 2002 Jeremy Katz <katzj@redhat.com> 0.92-2
31297 +- add patch from Grant Edwards to make vga16 + serial happier (#63491)
31299 +* Wed May 1 2002 Jeremy Katz <katzj@redhat.com> 0.92-1
31301 +- back to autoreconf
31302 +- make it work with automake 1.6/autoconf 2.53
31303 +- use "-falign-jumps=1 -falign-loops=1 -falign-functions=1" instead of
31304 + "-malign-jumps=1 -malign-loops=1 -malign-functions=1" to not use
31305 + deprecated gcc options
31307 +* Tue Apr 9 2002 Jeremy Katz <katzj@redhat.com> 0.91-4
31308 +- new splash screen
31310 +* Fri Mar 8 2002 Jeremy Katz <katzj@redhat.com> 0.91-3
31311 +- include patch from Denis Kitzmen to fix typo causing several options to
31312 + never be defined (in upstream CVS)
31313 +- include patch from upstream CVS to make displaymem always use hex for
31315 +- add patch from GRUB mailing list from Keir Fraser to add a --once flag to
31316 + savedefault function so that you can have the equivalent of lilo -R
31317 + functionality (use 'savedefault --default=N --once' from the grub shell)
31318 +- back to autoconf
31320 +* Sun Jan 27 2002 Jeremy Katz <katzj@redhat.com>
31321 +- change to use $grubdir instead of /boot/grub in the symlink patch (#58771)
31323 +* Fri Jan 25 2002 Jeremy Katz <katzj@redhat.com> 0.91-2
31324 +- don't ifdef out the auto memory passing, use the configure flag instead
31325 +- add a patch so that grub respects mem= from the kernel command line when
31326 + deciding where to place the initrd (#52558)
31328 +* Mon Jan 21 2002 Jeremy Katz <katzj@redhat.com> 0.91-1
31329 +- update to 0.91 final
31330 +- add documentation on splashimage param (#51609)
31332 +* Wed Jan 2 2002 Jeremy Katz <katzj@redhat.com> 0.91-0.20020102cvs
31333 +- update to current CVS snapshot to fix some of the hangs on boot related
31334 + to LBA probing (#57503, #55868, and others)
31336 +* Fri Dec 21 2001 Erik Troan <ewt@redhat.com> 0.90-14
31337 +- fixed append patch to not require arguments to begin with
31338 +- changed to autoreconf from autoconf
31340 +* Wed Oct 31 2001 Jeremy Katz <katzj@redhat.com> 0.90-13
31341 +- include additional patch from Erich to add sync calls in grub-install to
31342 + work around updated images not being synced to disk
31343 +- fix segfault in grub shell if 'password --md5' is used without specifying
31344 + a password (#55008)
31346 +* Fri Oct 26 2001 Jeremy Katz <katzj@redhat.com> 0.90-12
31347 +- Include Erich Boleyn <erich@uruk.org>'s patch to disconnect from the
31348 + BIOS after APM operations. Should fix #54375
31350 +* Wed Sep 12 2001 Erik Troan <ewt@redhat.com>
31351 +- added patch for 'a' option in grub boot menu
31353 +* Wed Sep 5 2001 Jeremy Katz <katzj@redhat.com> 0.90-11
31354 +- grub-install: if /boot/grub/grub.conf doesn't exist but /boot/grub/menu.lst
31355 + does, create a symlink
31357 +* Fri Aug 24 2001 Jeremy Katz <katzj@redhat.com>
31358 +- pull in patch from upstream CVS to fix md5crypt in grub shell (#52220)
31359 +- use mktemp in grub-install to avoid tmp races
31361 +* Fri Aug 3 2001 Jeremy Katz <katzj@redhat.com>
31362 +- link curses statically (#49519)
31364 +* Thu Aug 2 2001 Jeremy Katz <katzj@redhat.com>
31365 +- fix segfault with using the serial device before initialization (#50219)
31367 +* Thu Jul 19 2001 Jeremy Katz <katzj@redhat.com>
31368 +- add --copy-only flag to grub-install
31370 +* Thu Jul 19 2001 Jeremy Katz <katzj@redhat.com>
31371 +- copy files in grub-install prior to device probe
31373 +* Thu Jul 19 2001 Jeremy Katz <katzj@redhat.com>
31374 +- original images don't go in /boot and then grub-install does the right
31377 +* Thu Jul 19 2001 Jeremy Katz <katzj@redhat.com>
31378 +- fix the previous patch
31379 +- put the password prompt in the proper location
31381 +* Thu Jul 19 2001 Jeremy Katz <katzj@redhat.com>
31382 +- reset the screen when the countdown is cancelled so text will disappear
31385 +* Mon Jul 16 2001 Jeremy Katz <katzj@redhat.com>
31386 +- change configfile defaults to grub.conf
31388 +* Sun Jul 15 2001 Jeremy Katz <katzj@redhat.com>
31389 +- updated to grub 0.90 final
31391 +* Fri Jul 6 2001 Matt Wilson <msw@redhat.com>
31392 +- modifed splash screen to a nice shade of blue
31394 +* Tue Jul 3 2001 Matt Wilson <msw@redhat.com>
31395 +- added a first cut at a splash screen
31397 +* Sun Jul 1 2001 Nalin Dahyabhai <nalin@redhat.com>
31398 +- fix datadir mismatch between build and install phases
31400 +* Mon Jun 25 2001 Jeremy Katz <katzj@redhat.com>
31401 +- update to current CVS
31402 +- forward port VGA16 patch from Paulo César Pereira de
31403 + Andrade <pcpa@conectiva.com.br>
31404 +- add patch for cciss, ida, and rd raid controllers
31405 +- don't pass mem= to the kernel
31407 +* Wed May 23 2001 Erik Troan <ewt@redhat.com>
31408 +- initial build for Red Hat
31409 diff --git a/grub/.gitignore b/grub/.gitignore
31410 new file mode 100644
31411 index 0000000..5d89f6d
31413 +++ b/grub/.gitignore
31417 diff --git a/grub/Makefile.am b/grub/Makefile.am
31418 index 7eb2eaa..d4353f7 100644
31419 --- a/grub/Makefile.am
31420 +++ b/grub/Makefile.am
31421 @@ -15,5 +15,5 @@ AM_CPPFLAGS = -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
31423 AM_CFLAGS = $(GRUB_CFLAGS)
31425 -grub_SOURCES = main.c asmstub.c
31426 +grub_SOURCES = main.c asmstub.c efitftp.c
31427 grub_LDADD = ../stage2/libgrub.a ../lib/libcommon.a $(GRUB_LIBS)
31428 diff --git a/grub/Makefile.in b/grub/Makefile.in
31429 deleted file mode 100644
31430 index 136c38f..0000000
31431 --- a/grub/Makefile.in
31434 -# Makefile.in generated by automake 1.9.4 from Makefile.am.
31435 -# @configure_input@
31437 -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
31438 -# 2003, 2004 Free Software Foundation, Inc.
31439 -# This Makefile.in is free software; the Free Software Foundation
31440 -# gives unlimited permission to copy and/or distribute it,
31441 -# with or without modifications, as long as this notice is preserved.
31443 -# This program is distributed in the hope that it will be useful,
31444 -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
31445 -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
31446 -# PARTICULAR PURPOSE.
31450 -SOURCES = $(grub_SOURCES)
31453 -top_srcdir = @top_srcdir@
31455 -pkgdatadir = $(datadir)/@PACKAGE@
31456 -pkglibdir = $(libdir)/@PACKAGE@
31457 -pkgincludedir = $(includedir)/@PACKAGE@
31459 -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
31460 -INSTALL = @INSTALL@
31461 -install_sh_DATA = $(install_sh) -c -m 644
31462 -install_sh_PROGRAM = $(install_sh) -c
31463 -install_sh_SCRIPT = $(install_sh) -c
31464 -INSTALL_HEADER = $(INSTALL_DATA)
31465 -transform = $(program_transform_name)
31466 -NORMAL_INSTALL = :
31469 -NORMAL_UNINSTALL = :
31471 -POST_UNINSTALL = :
31472 -build_triplet = @build@
31473 -host_triplet = @host@
31474 -sbin_PROGRAMS = grub$(EXEEXT)
31476 -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
31477 -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
31478 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
31479 - $(top_srcdir)/configure.ac
31480 -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
31482 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
31483 -CONFIG_HEADER = $(top_builddir)/config.h
31484 -CONFIG_CLEAN_FILES =
31485 -am__installdirs = "$(DESTDIR)$(sbindir)"
31486 -sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
31487 -PROGRAMS = $(sbin_PROGRAMS)
31488 -am_grub_OBJECTS = main.$(OBJEXT) asmstub.$(OBJEXT)
31489 -grub_OBJECTS = $(am_grub_OBJECTS)
31490 -am__DEPENDENCIES_1 =
31491 -grub_DEPENDENCIES = ../stage2/libgrub.a ../lib/libcommon.a \
31492 - $(am__DEPENDENCIES_1)
31493 -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
31494 -depcomp = $(SHELL) $(top_srcdir)/depcomp
31495 -am__depfiles_maybe = depfiles
31496 -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
31497 - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
31499 -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
31500 -SOURCES = $(grub_SOURCES)
31501 -DIST_SOURCES = $(grub_SOURCES)
31504 -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
31505 -ACLOCAL = @ACLOCAL@
31506 -AMDEP_FALSE = @AMDEP_FALSE@
31507 -AMDEP_TRUE = @AMDEP_TRUE@
31509 -AUTOCONF = @AUTOCONF@
31510 -AUTOHEADER = @AUTOHEADER@
31511 -AUTOMAKE = @AUTOMAKE@
31513 -BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
31514 -BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
31517 -CCASFLAGS = @CCASFLAGS@
31518 -CCDEPMODE = @CCDEPMODE@
31521 -CPPFLAGS = @CPPFLAGS@
31522 -CYGPATH_W = @CYGPATH_W@
31525 -DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
31526 -DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
31532 -FSYS_CFLAGS = @FSYS_CFLAGS@
31533 -GRUB_CFLAGS = @GRUB_CFLAGS@
31534 -GRUB_LIBS = @GRUB_LIBS@
31535 -HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
31536 -HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
31537 -INSTALL_DATA = @INSTALL_DATA@
31538 -INSTALL_PROGRAM = @INSTALL_PROGRAM@
31539 -INSTALL_SCRIPT = @INSTALL_SCRIPT@
31540 -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
31541 -LDFLAGS = @LDFLAGS@
31542 -LIBOBJS = @LIBOBJS@
31544 -LTLIBOBJS = @LTLIBOBJS@
31546 -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
31547 -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
31548 -MAKEINFO = @MAKEINFO@
31549 -NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
31550 -NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
31551 -NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
31552 -NET_CFLAGS = @NET_CFLAGS@
31553 -NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
31554 -OBJCOPY = @OBJCOPY@
31556 -PACKAGE = @PACKAGE@
31557 -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
31558 -PACKAGE_NAME = @PACKAGE_NAME@
31559 -PACKAGE_STRING = @PACKAGE_STRING@
31560 -PACKAGE_TARNAME = @PACKAGE_TARNAME@
31561 -PACKAGE_VERSION = @PACKAGE_VERSION@
31562 -PATH_SEPARATOR = @PATH_SEPARATOR@
31565 -SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
31566 -SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
31567 -SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
31568 -SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
31569 -SET_MAKE = @SET_MAKE@
31571 -STAGE1_CFLAGS = @STAGE1_CFLAGS@
31572 -STAGE2_CFLAGS = @STAGE2_CFLAGS@
31574 -VERSION = @VERSION@
31575 -ac_ct_CC = @ac_ct_CC@
31576 -ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
31577 -ac_ct_RANLIB = @ac_ct_RANLIB@
31578 -ac_ct_STRIP = @ac_ct_STRIP@
31579 -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
31580 -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
31581 -am__include = @am__include@
31582 -am__leading_dot = @am__leading_dot@
31583 -am__quote = @am__quote@
31584 -am__tar = @am__tar@
31585 -am__untar = @am__untar@
31588 -build_alias = @build_alias@
31589 -build_cpu = @build_cpu@
31590 -build_os = @build_os@
31591 -build_vendor = @build_vendor@
31592 -datadir = @datadir@
31593 -exec_prefix = @exec_prefix@
31595 -host_alias = @host_alias@
31596 -host_cpu = @host_cpu@
31597 -host_os = @host_os@
31598 -host_vendor = @host_vendor@
31599 -includedir = @includedir@
31600 -infodir = @infodir@
31601 -install_sh = @install_sh@
31603 -libexecdir = @libexecdir@
31604 -localstatedir = @localstatedir@
31606 -mkdir_p = @mkdir_p@
31607 -oldincludedir = @oldincludedir@
31609 -program_transform_name = @program_transform_name@
31610 -sbindir = @sbindir@
31611 -sharedstatedir = @sharedstatedir@
31612 -sysconfdir = @sysconfdir@
31613 -target_alias = @target_alias@
31614 -@SERIAL_SPEED_SIMULATION_FALSE@SERIAL_FLAGS = -DSUPPORT_SERIAL=1
31615 -@SERIAL_SPEED_SIMULATION_TRUE@SERIAL_FLAGS = -DSUPPORT_SERIAL=1 -DSIMULATE_SLOWNESS_OF_SERIAL=1
31616 -AM_CPPFLAGS = -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
31617 - -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
31618 - -DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 \
31619 - -DUSE_MD5_PASSWORDS=1 -DSUPPORT_HERCULES=1 \
31620 - $(SERIAL_FLAGS) -I$(top_srcdir)/stage2 \
31621 - -I$(top_srcdir)/stage1 -I$(top_srcdir)/lib
31623 -AM_CFLAGS = $(GRUB_CFLAGS)
31624 -grub_SOURCES = main.c asmstub.c
31625 -grub_LDADD = ../stage2/libgrub.a ../lib/libcommon.a $(GRUB_LIBS)
31629 -.SUFFIXES: .c .o .obj
31630 -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
31631 - @for dep in $?; do \
31632 - case '$(am__configure_deps)' in \
31634 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
31639 - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu grub/Makefile'; \
31640 - cd $(top_srcdir) && \
31641 - $(AUTOMAKE) --gnu grub/Makefile
31642 -.PRECIOUS: Makefile
31643 -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
31645 - *config.status*) \
31646 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
31648 - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
31649 - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
31652 -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
31653 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
31655 -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
31656 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
31657 -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
31658 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
31659 -install-sbinPROGRAMS: $(sbin_PROGRAMS)
31660 - @$(NORMAL_INSTALL)
31661 - test -z "$(sbindir)" || $(mkdir_p) "$(DESTDIR)$(sbindir)"
31662 - @list='$(sbin_PROGRAMS)'; for p in $$list; do \
31663 - p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
31666 - f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
31667 - echo " $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(sbindir)/$$f'"; \
31668 - $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(sbindir)/$$f" || exit 1; \
31672 -uninstall-sbinPROGRAMS:
31673 - @$(NORMAL_UNINSTALL)
31674 - @list='$(sbin_PROGRAMS)'; for p in $$list; do \
31675 - f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
31676 - echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \
31677 - rm -f "$(DESTDIR)$(sbindir)/$$f"; \
31680 -clean-sbinPROGRAMS:
31681 - -test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
31682 -grub$(EXEEXT): $(grub_OBJECTS) $(grub_DEPENDENCIES)
31683 - @rm -f grub$(EXEEXT)
31684 - $(LINK) $(grub_LDFLAGS) $(grub_OBJECTS) $(grub_LDADD) $(LIBS)
31686 -mostlyclean-compile:
31687 - -rm -f *.$(OBJEXT)
31689 -distclean-compile:
31692 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asmstub.Po@am__quote@
31693 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
31696 -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
31697 -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
31698 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
31699 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
31700 -@am__fastdepCC_FALSE@ $(COMPILE) -c $<
31703 -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
31704 -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
31705 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
31706 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
31707 -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
31708 -uninstall-info-am:
31710 -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
31711 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
31712 - unique=`for i in $$list; do \
31713 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
31715 - $(AWK) ' { files[$$0] = 1; } \
31716 - END { for (i in files) print i; }'`; \
31717 - mkid -fID $$unique
31720 -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
31721 - $(TAGS_FILES) $(LISP)
31724 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
31725 - unique=`for i in $$list; do \
31726 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
31728 - $(AWK) ' { files[$$0] = 1; } \
31729 - END { for (i in files) print i; }'`; \
31730 - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
31731 - test -n "$$unique" || unique=$$empty_fix; \
31732 - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
31733 - $$tags $$unique; \
31736 -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
31737 - $(TAGS_FILES) $(LISP)
31740 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
31741 - unique=`for i in $$list; do \
31742 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
31744 - $(AWK) ' { files[$$0] = 1; } \
31745 - END { for (i in files) print i; }'`; \
31746 - test -z "$(CTAGS_ARGS)$$tags$$unique" \
31747 - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
31751 - here=`$(am__cd) $(top_builddir) && pwd` \
31752 - && cd $(top_srcdir) \
31753 - && gtags -i $(GTAGS_ARGS) $$here
31756 - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
31758 -distdir: $(DISTFILES)
31759 - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
31760 - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
31761 - list='$(DISTFILES)'; for file in $$list; do \
31763 - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
31764 - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
31766 - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
31767 - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
31768 - if test "$$dir" != "$$file" && test "$$dir" != "."; then \
31770 - $(mkdir_p) "$(distdir)$$dir"; \
31774 - if test -d $$d/$$file; then \
31775 - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
31776 - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
31778 - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
31780 - test -f $(distdir)/$$file \
31781 - || cp -p $$d/$$file $(distdir)/$$file \
31787 -all-am: Makefile $(PROGRAMS)
31789 - for dir in "$(DESTDIR)$(sbindir)"; do \
31790 - test -z "$$dir" || $(mkdir_p) "$$dir"; \
31792 -install: install-am
31793 -install-exec: install-exec-am
31794 -install-data: install-data-am
31795 -uninstall: uninstall-am
31797 -install-am: all-am
31798 - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
31800 -installcheck: installcheck-am
31802 - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
31803 - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
31804 - `test -z '$(STRIP)' || \
31805 - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
31806 -mostlyclean-generic:
31810 -distclean-generic:
31811 - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
31813 -maintainer-clean-generic:
31814 - @echo "This command is intended for maintainers to use"
31815 - @echo "it deletes files that may require special tools to rebuild."
31818 -clean-am: clean-generic clean-sbinPROGRAMS mostlyclean-am
31820 -distclean: distclean-am
31821 - -rm -rf ./$(DEPDIR)
31823 -distclean-am: clean-am distclean-compile distclean-generic \
31838 -install-exec-am: install-sbinPROGRAMS
31840 -install-info: install-info-am
31846 -maintainer-clean: maintainer-clean-am
31847 - -rm -rf ./$(DEPDIR)
31849 -maintainer-clean-am: distclean-am maintainer-clean-generic
31851 -mostlyclean: mostlyclean-am
31853 -mostlyclean-am: mostlyclean-compile mostlyclean-generic
31863 -uninstall-am: uninstall-info-am uninstall-sbinPROGRAMS
31865 -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
31866 - clean-sbinPROGRAMS ctags distclean distclean-compile \
31867 - distclean-generic distclean-tags distdir dvi dvi-am html \
31868 - html-am info info-am install install-am install-data \
31869 - install-data-am install-exec install-exec-am install-info \
31870 - install-info-am install-man install-sbinPROGRAMS install-strip \
31871 - installcheck installcheck-am installdirs maintainer-clean \
31872 - maintainer-clean-generic mostlyclean mostlyclean-compile \
31873 - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
31874 - uninstall-am uninstall-info-am uninstall-sbinPROGRAMS
31876 -# Tell versions [3.59,3.63) of GNU make to not export all variables.
31877 -# Otherwise a system limit (for SysV at least) may be exceeded.
31879 diff --git a/grub/asmstub.c b/grub/asmstub.c
31880 index ab95b4b..818be75 100644
31881 --- a/grub/asmstub.c
31882 +++ b/grub/asmstub.c
31883 @@ -42,6 +42,7 @@ int grub_stage2 (void);
31884 #include <sys/time.h>
31885 #include <termios.h>
31886 #include <signal.h>
31887 +#include <sys/mman.h>
31890 # include <sys/ioctl.h> /* ioctl */
31891 @@ -53,6 +54,9 @@ int grub_stage2 (void);
31893 # define BLKFLSBUF _IO (0x12,97) /* flush buffer cache */
31894 # endif /* ! BLKFLSBUF */
31896 +# define O_DIRECT 040000
31897 +# endif /* ! O_DIRECT */
31898 #endif /* __linux__ */
31900 /* We want to prevent any circularararity in our stubs, as well as
31901 @@ -71,7 +75,7 @@ unsigned long install_partition = 0x20000;
31902 unsigned long boot_drive = 0;
31903 int saved_entryno = 0;
31904 char version_string[] = VERSION;
31905 -char config_file[128] = "/boot/grub/menu.lst"; /* FIXME: arbitrary */
31906 +char config_file[128] = "/boot/grub/grub.conf"; /* FIXME: arbitrary */
31907 unsigned long linux_text_len = 0;
31908 char *linux_data_tmp_addr = 0;
31909 char *linux_data_real_addr = 0;
31910 @@ -79,7 +83,7 @@ unsigned short io_map[IO_MAP_SIZE];
31911 struct apm_info apm_bios_info;
31913 /* Emulation requirements. */
31914 -char *grub_scratch_mem = 0;
31915 +void *grub_scratch_mem = 0;
31917 struct geometry *disks = 0;
31919 @@ -103,14 +107,73 @@ static char *serial_device = 0;
31920 static unsigned int serial_speed;
31921 #endif /* SIMULATE_SLOWNESS_OF_SERIAL */
31924 +int get_sector_size (int drive)
31928 +int get_sector_bits (int drive)
31932 +#endif /* GRUB_UTIL */
31934 +/* This allocates page-aligned storage of the specified size, which must be
31935 + * a multiple of the page size as determined by calling sysconf(_SC_PAGESIZE)
31939 +grub_mmap_alloc(size_t len)
31941 + int mmap_flags = MAP_ANONYMOUS|MAP_PRIVATE|MAP_EXECUTABLE;
31944 + mmap_flags |= MAP_32BIT;
31946 + /* Mark the simulated stack executable, as GCC uses stack trampolines
31947 + * to implement nested functions. */
31948 + return mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC, mmap_flags, -1, 0);
31950 +#else /* !defined(__linux__) */
31952 +grub_mmap_alloc(size_t len)
31954 + int fd = 0, offset = 0, ret = 0;
31955 + void *pa = MAP_FAILED;
31956 + char template[] = "/tmp/grub_mmap_alloc_XXXXXX";
31959 + fd = mkstemp(template);
31963 + unlink(template);
31965 + ret = ftruncate(fd, len);
31969 + /* Mark the simulated stack executable, as GCC uses stack trampolines
31970 + * to implement nested functions. */
31971 + pa = mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC,
31972 + MAP_PRIVATE|MAP_EXECUTABLE, fd, offset);
31979 +#endif /* defined(__linux__) */
31981 /* The main entry point into this mess. */
31985 /* These need to be static, because they survive our stack transitions. */
31986 static int status = 0;
31987 - static char *realstack;
31988 - char *scratch, *simstack;
31989 + static void *realstack;
31990 + void *simstack_alloc_base, *simstack;
31991 + size_t simstack_size, page_size;
31994 auto void doit (void);
31995 @@ -120,8 +183,13 @@ grub_stage2 (void)
31998 /* Make sure our stack lives in the simulated memory area. */
32000 + asm volatile ("movq %%rsp, %0\n\tmovq %1, %%rsp\n"
32001 + : "=&r" (realstack) : "r" (simstack));
32003 asm volatile ("movl %%esp, %0\n\tmovl %1, %%esp\n"
32004 : "=&r" (realstack) : "r" (simstack));
32007 /* Do a setjmp here for the stop command. */
32008 if (! setjmp (env_for_exit))
32009 @@ -138,13 +206,43 @@ grub_stage2 (void)
32012 /* Replace our stack before we use any local variables. */
32014 + asm volatile ("movq %0, %%rsp\n" : : "r" (realstack));
32016 asm volatile ("movl %0, %%esp\n" : : "r" (realstack));
32020 assert (grub_scratch_mem == 0);
32021 - scratch = malloc (0x100000 + EXTENDED_MEMSIZE + 15);
32022 - assert (scratch);
32023 - grub_scratch_mem = (char *) ((((int) scratch) >> 4) << 4);
32025 + /* Allocate enough pages for 0x100000 + EXTENDED_SIZE + 15, and
32026 + * make sure the memory is aligned to a multiple of the system's
32028 + page_size = sysconf (_SC_PAGESIZE);
32029 + simstack_size = ( 0x100000 + EXTENDED_MEMSIZE + 15);
32030 + if (simstack_size % page_size)
32032 + /* If we're not on a page_size boundary, round up to the next one */
32033 + simstack_size &= ~(page_size-1);
32034 + simstack_size += page_size;
32037 + /* Add one for a PROT_NONE boundary page at each end. */
32038 + simstack_size += 2 * page_size;
32040 + simstack_alloc_base = grub_mmap_alloc(simstack_size);
32041 + assert (simstack_alloc_base != MAP_FAILED);
32043 + /* mark pages above and below our simstack area as innaccessable.
32044 + * If the implementation we're using doesn't support that, then the
32045 + * new protection modes are undefined. It's safe to just ignore
32046 + * them, though. It'd be nice if we knew that we'd get a SEGV for
32047 + * touching the area, but that's all. it'd be nice to have. */
32048 + mprotect (simstack_alloc_base, page_size, PROT_NONE);
32049 + mprotect ((void *)((unsigned long)simstack_alloc_base +
32050 + simstack_size - page_size), page_size, PROT_NONE);
32052 + grub_scratch_mem = (void *)((unsigned long)simstack_alloc_base + page_size);
32054 /* FIXME: simulate the memory holes using mprot, if available. */
32056 @@ -217,7 +315,7 @@ grub_stage2 (void)
32061 + munmap(simstack_alloc_base, simstack_size);
32062 grub_scratch_mem = 0;
32065 @@ -699,6 +797,13 @@ console_getkey (void)
32066 return console_translate_key (c);
32069 +/* returns modifier status */
32071 +console_keystatus (void)
32076 /* returns packed values, LSB+1 is x, LSB is y */
32078 console_getxy (void)
32079 @@ -766,7 +871,7 @@ get_diskinfo (int drive, struct geometry *geometry)
32081 /* The unpartitioned device name: /dev/XdX */
32082 char *devname = device_map[drive];
32084 + char * buf, * buf_unaligned;
32088 @@ -777,13 +882,13 @@ get_diskinfo (int drive, struct geometry *geometry)
32090 /* Open read/write, or read-only if that failed. */
32092 - disks[drive].flags = open (devname, O_RDWR);
32093 + disks[drive].flags = open (devname, O_RDWR | O_DIRECT);
32095 if (disks[drive].flags == -1)
32097 if (read_only || errno == EACCES || errno == EROFS || errno == EPERM)
32099 - disks[drive].flags = open (devname, O_RDONLY);
32100 + disks[drive].flags = open (devname, O_RDONLY | O_DIRECT);
32101 if (disks[drive].flags == -1)
32103 assign_device_name (drive, 0);
32104 @@ -797,6 +902,10 @@ get_diskinfo (int drive, struct geometry *geometry)
32108 + buf_unaligned = malloc((512 * sizeof(char)) + 4095);
32109 + buf = (char *) (((unsigned long)buf_unaligned + 4096 - 1) &
32112 /* Attempt to read the first sector. */
32113 if (read (disks[drive].flags, buf, 512) != 512)
32115 @@ -808,6 +917,7 @@ get_diskinfo (int drive, struct geometry *geometry)
32117 if (disks[drive].flags != -1)
32118 get_drive_geometry (&disks[drive], device_map, drive);
32119 + free(buf_unaligned);
32122 if (disks[drive].flags == -1)
32123 @@ -829,24 +939,34 @@ static int
32124 nread (int fd, char *buf, size_t len)
32127 + char * buf_unaligned, * buff, * obuff;
32130 + buf_unaligned = malloc((len * sizeof(char)) + 4095);
32131 + obuff = buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) &
32137 - int ret = read (fd, buf, len);
32138 + ret = read (fd, buff, len);
32142 if (errno == EINTR)
32155 + if (!len) ret = size;
32157 + buf = memcpy(buf, obuff, size);
32161 /* Write LEN bytes from BUF to FD. Return less than or equal to zero if an
32162 @@ -855,10 +975,18 @@ static int
32163 nwrite (int fd, char *buf, size_t len)
32166 + char * buf_unaligned, * buff;
32168 + buf_unaligned = malloc((len * sizeof(char)) + 4095);
32169 + buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) &
32174 - int ret = write (fd, buf, len);
32177 + memcpy(buff, buf, len);
32178 + ret = write (fd, buff, len);
32182 @@ -946,20 +1074,20 @@ biosdisk (int subfunc, int drive, struct geometry *geometry,
32183 _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo,
32184 loff_t *, res, uint, wh);
32186 - offset = (loff_t) sector * (loff_t) SECTOR_SIZE;
32187 + offset = (loff_t) sector * (loff_t) get_sector_size(drive);
32188 if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET))
32193 - off_t offset = (off_t) sector * (off_t) SECTOR_SIZE;
32194 + off_t offset = (off_t) sector * (off_t) get_sector_size(drive);
32196 if (lseek (fd, offset, SEEK_SET) != offset)
32201 - buf = (char *) (segment << 4);
32202 + buf = (char *) (unsigned long) (segment << 4);
32206 @@ -971,13 +1099,13 @@ biosdisk (int subfunc, int drive, struct geometry *geometry,
32207 sectors that are read together with the MBR in one read. It
32208 should only remap the MBR, so we split the read in two
32210 - if (nread (fd, buf, SECTOR_SIZE) != SECTOR_SIZE)
32211 + if (nread (fd, buf, get_sector_size(drive)) != get_sector_size(drive))
32213 - buf += SECTOR_SIZE;
32214 + buf += get_sector_size(drive);
32218 - if (nread (fd, buf, nsec * SECTOR_SIZE) != nsec * SECTOR_SIZE)
32219 + if (nread (fd, buf, nsec * get_sector_size(drive)) != nsec * get_sector_size(drive))
32223 @@ -987,10 +1115,10 @@ biosdisk (int subfunc, int drive, struct geometry *geometry,
32224 grub_printf ("Write %d sectors starting from %d sector"
32225 " to drive 0x%x (%s)\n",
32226 nsec, sector, drive, device_map[drive]);
32227 - hex_dump (buf, nsec * SECTOR_SIZE);
32228 + hex_dump (buf, nsec * get_sector_size(drive));
32231 - if (nwrite (fd, buf, nsec * SECTOR_SIZE) != nsec * SECTOR_SIZE)
32232 + if (nwrite (fd, buf, nsec * get_sector_size(drive)) != nsec * get_sector_size(drive))
32236 @@ -1273,3 +1401,21 @@ hercules_setcursor (int on)
32242 +grub_load_linux (char *kernel, char *arg)
32248 +grub_load_initrd (char *initrd)
32254 +grub_chainloader (char *filename)
32258 diff --git a/grub/efitftp.c b/grub/efitftp.c
32259 new file mode 100644
32260 index 0000000..5355dec
32262 +++ b/grub/efitftp.c
32264 +#include <shared.h>
32265 +#include <filesys.h>
32267 +int efi_tftp_mount (void);
32268 +int efi_tftp_read (char *buf, int len);
32269 +int efi_tftp_dir (char *dirname);
32270 +void efi_tftp_close (void);
32273 +efi_tftp_mount (void)
32275 + grub_printf("non-efi efi_tftp_mount()\n");
32280 +efi_tftp_read (char *addr, int size)
32282 + grub_printf ("non-efi efi_tftp_read (0x%x, %d)\n", (long) addr, size);
32287 +efi_tftp_dir (char *dirname)
32289 + grub_printf ("non-efi efi_ftp_dir (%s)\n", dirname);
32294 +efi_tftp_close (void)
32296 + grub_printf ("non-efi efi_tftp_close ()\n");
32298 diff --git a/grub/main.c b/grub/main.c
32299 index dfe847e..6083641 100644
32302 @@ -140,7 +140,7 @@ main (int argc, char **argv)
32303 program_name = argv[0];
32304 default_boot_drive = boot_drive;
32305 default_install_partition = install_partition;
32307 + if (config_file[0])
32308 default_config_file = config_file;
32310 default_config_file = "NONE";
32311 diff --git a/lib/.gitignore b/lib/.gitignore
32312 new file mode 100644
32313 index 0000000..5d89f6d
32315 +++ b/lib/.gitignore
32319 diff --git a/lib/Makefile.in b/lib/Makefile.in
32320 deleted file mode 100644
32321 index 3dae206..0000000
32322 --- a/lib/Makefile.in
32325 -# Makefile.in generated by automake 1.9.4 from Makefile.am.
32326 -# @configure_input@
32328 -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
32329 -# 2003, 2004 Free Software Foundation, Inc.
32330 -# This Makefile.in is free software; the Free Software Foundation
32331 -# gives unlimited permission to copy and/or distribute it,
32332 -# with or without modifications, as long as this notice is preserved.
32334 -# This program is distributed in the hope that it will be useful,
32335 -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
32336 -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
32337 -# PARTICULAR PURPOSE.
32341 -SOURCES = $(libcommon_a_SOURCES)
32344 -top_srcdir = @top_srcdir@
32346 -pkgdatadir = $(datadir)/@PACKAGE@
32347 -pkglibdir = $(libdir)/@PACKAGE@
32348 -pkgincludedir = $(includedir)/@PACKAGE@
32350 -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
32351 -INSTALL = @INSTALL@
32352 -install_sh_DATA = $(install_sh) -c -m 644
32353 -install_sh_PROGRAM = $(install_sh) -c
32354 -install_sh_SCRIPT = $(install_sh) -c
32355 -INSTALL_HEADER = $(INSTALL_DATA)
32356 -transform = $(program_transform_name)
32357 -NORMAL_INSTALL = :
32360 -NORMAL_UNINSTALL = :
32362 -POST_UNINSTALL = :
32363 -build_triplet = @build@
32364 -host_triplet = @host@
32366 -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
32367 -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
32368 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
32369 - $(top_srcdir)/configure.ac
32370 -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
32372 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
32373 -CONFIG_HEADER = $(top_builddir)/config.h
32374 -CONFIG_CLEAN_FILES =
32375 -LIBRARIES = $(noinst_LIBRARIES)
32378 -libcommon_a_AR = $(AR) $(ARFLAGS)
32379 -libcommon_a_LIBADD =
32380 -am_libcommon_a_OBJECTS = getopt.$(OBJEXT) getopt1.$(OBJEXT) \
32382 -libcommon_a_OBJECTS = $(am_libcommon_a_OBJECTS)
32383 -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
32384 -depcomp = $(SHELL) $(top_srcdir)/depcomp
32385 -am__depfiles_maybe = depfiles
32386 -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
32387 - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
32389 -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
32390 -SOURCES = $(libcommon_a_SOURCES)
32391 -DIST_SOURCES = $(libcommon_a_SOURCES)
32394 -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
32395 -ACLOCAL = @ACLOCAL@
32396 -AMDEP_FALSE = @AMDEP_FALSE@
32397 -AMDEP_TRUE = @AMDEP_TRUE@
32399 -AUTOCONF = @AUTOCONF@
32400 -AUTOHEADER = @AUTOHEADER@
32401 -AUTOMAKE = @AUTOMAKE@
32403 -BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
32404 -BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
32407 -CCASFLAGS = @CCASFLAGS@
32408 -CCDEPMODE = @CCDEPMODE@
32411 -CPPFLAGS = @CPPFLAGS@
32412 -CYGPATH_W = @CYGPATH_W@
32415 -DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
32416 -DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
32422 -FSYS_CFLAGS = @FSYS_CFLAGS@
32423 -GRUB_CFLAGS = @GRUB_CFLAGS@
32424 -GRUB_LIBS = @GRUB_LIBS@
32425 -HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
32426 -HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
32427 -INSTALL_DATA = @INSTALL_DATA@
32428 -INSTALL_PROGRAM = @INSTALL_PROGRAM@
32429 -INSTALL_SCRIPT = @INSTALL_SCRIPT@
32430 -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
32431 -LDFLAGS = @LDFLAGS@
32432 -LIBOBJS = @LIBOBJS@
32434 -LTLIBOBJS = @LTLIBOBJS@
32436 -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
32437 -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
32438 -MAKEINFO = @MAKEINFO@
32439 -NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
32440 -NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
32441 -NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
32442 -NET_CFLAGS = @NET_CFLAGS@
32443 -NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
32444 -OBJCOPY = @OBJCOPY@
32446 -PACKAGE = @PACKAGE@
32447 -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
32448 -PACKAGE_NAME = @PACKAGE_NAME@
32449 -PACKAGE_STRING = @PACKAGE_STRING@
32450 -PACKAGE_TARNAME = @PACKAGE_TARNAME@
32451 -PACKAGE_VERSION = @PACKAGE_VERSION@
32452 -PATH_SEPARATOR = @PATH_SEPARATOR@
32455 -SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
32456 -SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
32457 -SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
32458 -SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
32459 -SET_MAKE = @SET_MAKE@
32461 -STAGE1_CFLAGS = @STAGE1_CFLAGS@
32462 -STAGE2_CFLAGS = @STAGE2_CFLAGS@
32464 -VERSION = @VERSION@
32465 -ac_ct_CC = @ac_ct_CC@
32466 -ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
32467 -ac_ct_RANLIB = @ac_ct_RANLIB@
32468 -ac_ct_STRIP = @ac_ct_STRIP@
32469 -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
32470 -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
32471 -am__include = @am__include@
32472 -am__leading_dot = @am__leading_dot@
32473 -am__quote = @am__quote@
32474 -am__tar = @am__tar@
32475 -am__untar = @am__untar@
32478 -build_alias = @build_alias@
32479 -build_cpu = @build_cpu@
32480 -build_os = @build_os@
32481 -build_vendor = @build_vendor@
32482 -datadir = @datadir@
32483 -exec_prefix = @exec_prefix@
32485 -host_alias = @host_alias@
32486 -host_cpu = @host_cpu@
32487 -host_os = @host_os@
32488 -host_vendor = @host_vendor@
32489 -includedir = @includedir@
32490 -infodir = @infodir@
32491 -install_sh = @install_sh@
32493 -libexecdir = @libexecdir@
32494 -localstatedir = @localstatedir@
32496 -mkdir_p = @mkdir_p@
32497 -oldincludedir = @oldincludedir@
32499 -program_transform_name = @program_transform_name@
32500 -sbindir = @sbindir@
32501 -sharedstatedir = @sharedstatedir@
32502 -sysconfdir = @sysconfdir@
32503 -target_alias = @target_alias@
32504 -noinst_LIBRARIES = libcommon.a
32505 -AM_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/stage2 \
32506 - -I$(top_srcdir)/stage1
32508 -libcommon_a_SOURCES = getopt.c getopt1.c getopt.h device.c device.h
32512 -.SUFFIXES: .c .o .obj
32513 -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
32514 - @for dep in $?; do \
32515 - case '$(am__configure_deps)' in \
32517 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
32522 - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile'; \
32523 - cd $(top_srcdir) && \
32524 - $(AUTOMAKE) --gnu lib/Makefile
32525 -.PRECIOUS: Makefile
32526 -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
32528 - *config.status*) \
32529 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
32531 - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
32532 - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
32535 -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
32536 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
32538 -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
32539 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
32540 -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
32541 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
32543 -clean-noinstLIBRARIES:
32544 - -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
32545 -libcommon.a: $(libcommon_a_OBJECTS) $(libcommon_a_DEPENDENCIES)
32546 - -rm -f libcommon.a
32547 - $(libcommon_a_AR) libcommon.a $(libcommon_a_OBJECTS) $(libcommon_a_LIBADD)
32548 - $(RANLIB) libcommon.a
32550 -mostlyclean-compile:
32551 - -rm -f *.$(OBJEXT)
32553 -distclean-compile:
32556 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/device.Po@am__quote@
32557 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@
32558 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@
32561 -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
32562 -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
32563 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
32564 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
32565 -@am__fastdepCC_FALSE@ $(COMPILE) -c $<
32568 -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
32569 -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
32570 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
32571 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
32572 -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
32573 -uninstall-info-am:
32575 -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
32576 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
32577 - unique=`for i in $$list; do \
32578 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
32580 - $(AWK) ' { files[$$0] = 1; } \
32581 - END { for (i in files) print i; }'`; \
32582 - mkid -fID $$unique
32585 -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
32586 - $(TAGS_FILES) $(LISP)
32589 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
32590 - unique=`for i in $$list; do \
32591 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
32593 - $(AWK) ' { files[$$0] = 1; } \
32594 - END { for (i in files) print i; }'`; \
32595 - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
32596 - test -n "$$unique" || unique=$$empty_fix; \
32597 - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
32598 - $$tags $$unique; \
32601 -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
32602 - $(TAGS_FILES) $(LISP)
32605 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
32606 - unique=`for i in $$list; do \
32607 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
32609 - $(AWK) ' { files[$$0] = 1; } \
32610 - END { for (i in files) print i; }'`; \
32611 - test -z "$(CTAGS_ARGS)$$tags$$unique" \
32612 - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
32616 - here=`$(am__cd) $(top_builddir) && pwd` \
32617 - && cd $(top_srcdir) \
32618 - && gtags -i $(GTAGS_ARGS) $$here
32621 - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
32623 -distdir: $(DISTFILES)
32624 - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
32625 - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
32626 - list='$(DISTFILES)'; for file in $$list; do \
32628 - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
32629 - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
32631 - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
32632 - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
32633 - if test "$$dir" != "$$file" && test "$$dir" != "."; then \
32635 - $(mkdir_p) "$(distdir)$$dir"; \
32639 - if test -d $$d/$$file; then \
32640 - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
32641 - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
32643 - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
32645 - test -f $(distdir)/$$file \
32646 - || cp -p $$d/$$file $(distdir)/$$file \
32652 -all-am: Makefile $(LIBRARIES)
32654 -install: install-am
32655 -install-exec: install-exec-am
32656 -install-data: install-data-am
32657 -uninstall: uninstall-am
32659 -install-am: all-am
32660 - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
32662 -installcheck: installcheck-am
32664 - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
32665 - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
32666 - `test -z '$(STRIP)' || \
32667 - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
32668 -mostlyclean-generic:
32672 -distclean-generic:
32673 - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
32675 -maintainer-clean-generic:
32676 - @echo "This command is intended for maintainers to use"
32677 - @echo "it deletes files that may require special tools to rebuild."
32680 -clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
32682 -distclean: distclean-am
32683 - -rm -rf ./$(DEPDIR)
32685 -distclean-am: clean-am distclean-compile distclean-generic \
32702 -install-info: install-info-am
32708 -maintainer-clean: maintainer-clean-am
32709 - -rm -rf ./$(DEPDIR)
32711 -maintainer-clean-am: distclean-am maintainer-clean-generic
32713 -mostlyclean: mostlyclean-am
32715 -mostlyclean-am: mostlyclean-compile mostlyclean-generic
32725 -uninstall-am: uninstall-info-am
32727 -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
32728 - clean-noinstLIBRARIES ctags distclean distclean-compile \
32729 - distclean-generic distclean-tags distdir dvi dvi-am html \
32730 - html-am info info-am install install-am install-data \
32731 - install-data-am install-exec install-exec-am install-info \
32732 - install-info-am install-man install-strip installcheck \
32733 - installcheck-am installdirs maintainer-clean \
32734 - maintainer-clean-generic mostlyclean mostlyclean-compile \
32735 - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
32736 - uninstall-am uninstall-info-am
32738 -# Tell versions [3.59,3.63) of GNU make to not export all variables.
32739 -# Otherwise a system limit (for SysV at least) may be exceeded.
32741 diff --git a/lib/device.c b/lib/device.c
32742 index d0663b3..50540bc 100644
32746 #include <limits.h>
32747 #include <stdarg.h>
32749 +#define SECTOR_SIZE 0x200
32750 +#define SECTOR_BITS 9
32753 # if !defined(__GLIBC__) || \
32754 ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1)))
32755 @@ -131,6 +134,152 @@ get_kfreebsd_version ()
32756 #include <shared.h>
32757 #include <device.h>
32759 +#if defined(__linux__)
32760 +/* The 2.6 kernel has removed all of the geometry handling for IDE drives
32761 + * that did fixups for LBA, etc. This means that the geometry we get
32762 + * with the ioctl has a good chance of being wrong. So, we get to
32763 + * also know about partition tables and try to read what the geometry
32764 + * is there. *grumble* Very closely based on code from cfdisk
32766 +static void get_kernel_geometry(int fd, long long *cyl, int *heads, int *sectors) {
32767 + struct hd_geometry hdg;
32769 + if (ioctl (fd, HDIO_GETGEO, &hdg))
32772 + *cyl = hdg.cylinders;
32773 + *heads = hdg.heads;
32774 + *sectors = hdg.sectors;
32777 +struct partition {
32778 + unsigned char boot_ind; /* 0x80 - active */
32779 + unsigned char head; /* starting head */
32780 + unsigned char sector; /* starting sector */
32781 + unsigned char cyl; /* starting cylinder */
32782 + unsigned char sys_ind; /* What partition type */
32783 + unsigned char end_head; /* end head */
32784 + unsigned char end_sector; /* end sector */
32785 + unsigned char end_cyl; /* end cylinder */
32786 + unsigned char start4[4]; /* starting sector counting from 0 */
32787 + unsigned char size4[4]; /* nr of sectors in partition */
32790 +#define ALIGNMENT 2
32793 + unsigned char align[ALIGNMENT];
32794 + unsigned char b[SECTOR_SIZE];
32797 + unsigned char align[ALIGNMENT];
32798 + unsigned char buffer[0x1BE];
32799 + struct partition part[4];
32800 + unsigned char magicflag[2];
32802 +} partition_table;
32804 +#define PART_TABLE_FLAG0 0x55
32805 +#define PART_TABLE_FLAG1 0xAA
32808 +get_partition_table_geometry(partition_table *bufp, long long *cyl, int *heads,
32810 + struct partition *p;
32815 + if (bufp->p.magicflag[0] != PART_TABLE_FLAG0 ||
32816 + bufp->p.magicflag[1] != PART_TABLE_FLAG1) {
32817 + /* Matthew Wilcox: slightly friendlier version of
32818 + fatal(_("Bad signature on partition table"), 3);
32820 + fprintf(stderr, "Unknown partition table signature\n");
32825 + for (i=0; i<4; i++) {
32826 + p = &(bufp->p.part[i]);
32827 + if (p->sys_ind != 0) {
32828 + h = p->end_head + 1;
32829 + s = (p->end_sector & 077);
32834 + } else if (hh != h || ss != s)
32839 + if (!first && !bad) {
32845 +static long long my_lseek (unsigned int fd, long long offset,
32846 + unsigned int origin)
32848 +#if defined(__linux__) && (!defined(__GLIBC__) || \
32849 + ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))))
32850 + /* Maybe libc doesn't have large file support. */
32851 + loff_t offset, result;
32852 + static int _llseek (uint filedes, ulong hi, ulong lo,
32853 + loff_t *res, uint wh);
32854 + _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo,
32855 + loff_t *, res, uint, wh);
32857 + if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET) < 0)
32858 + return (long long) -1;
32861 + return lseek(fd, offset, SEEK_SET);
32865 +static void get_linux_geometry (int fd, struct geometry *geom) {
32866 + long long kern_cyl = 0; int kern_head = 0, kern_sectors = 0;
32867 + long long pt_cyl = 0; int pt_head = 0, pt_sectors = 0;
32868 + partition_table bufp;
32869 + char *buff, *buf_unaligned;
32871 + buf_unaligned = malloc(sizeof(partition_table) + 4095);
32872 + buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) &
32875 + get_kernel_geometry(fd, &kern_cyl, &kern_head, &kern_sectors);
32877 + if (my_lseek (fd, 0*SECTOR_SIZE, SEEK_SET) < 0) {
32878 + fprintf(stderr, "Unable to seek");
32881 + if (read(fd, buff, SECTOR_SIZE) == SECTOR_SIZE) {
32882 + memcpy(bufp.c.b, buff, SECTOR_SIZE);
32883 + get_partition_table_geometry(&bufp, &pt_cyl, &pt_head, &pt_sectors);
32885 + fprintf(stderr, "Unable to read partition table: %s\n", strerror(errno));
32888 + if (pt_head && pt_sectors) {
32891 + geom->heads = pt_head;
32892 + geom->sectors = pt_sectors;
32893 + cyl_size = pt_head * pt_sectors;
32894 + geom->cylinders = geom->total_sectors/cyl_size;
32896 + geom->heads = kern_head;
32897 + geom->sectors = kern_sectors;
32898 + geom->cylinders = kern_cyl;
32905 /* Get the geometry of a drive DRIVE. */
32907 get_drive_geometry (struct geometry *geom, char **map, int drive)
32908 @@ -151,21 +300,16 @@ get_drive_geometry (struct geometry *geom, char **map, int drive)
32909 #if defined(__linux__)
32912 - struct hd_geometry hdg;
32915 - if (ioctl (fd, HDIO_GETGEO, &hdg))
32918 if (ioctl (fd, BLKGETSIZE, &nr))
32921 /* Got the geometry, so save it. */
32922 - geom->cylinders = hdg.cylinders;
32923 - geom->heads = hdg.heads;
32924 - geom->sectors = hdg.sectors;
32925 geom->total_sectors = nr;
32927 + get_linux_geometry(fd, geom);
32928 + if (!geom->heads && !geom->cylinders && !geom->sectors)
32933 @@ -403,10 +547,27 @@ get_dac960_disk_name (char *name, int controller, int drive)
32937 +get_cciss_disk_name (char * name, int controller, int drive)
32939 + sprintf (name, "/dev/cciss/c%dd%d", controller, drive);
32943 +get_cpqarray_disk_name (char * name, int controller, int drive)
32945 + sprintf (name, "/dev/ida/c%dd%d", controller, drive);
32948 get_ataraid_disk_name (char *name, int unit)
32950 sprintf (name, "/dev/ataraid/d%c", unit + '0');
32954 +get_i2o_disk_name (char *name, int unit)
32956 + sprintf (name, "/dev/i2o/hd%c", unit + 'a');
32960 /* Check if DEVICE can be read. If an error occurs, return zero,
32961 @@ -490,27 +651,24 @@ check_device (const char *device)
32964 /* Read mapping information from FP, and write it to MAP. */
32965 +static void rdm_show_error (const char *map_file, int no, const char *msg)
32967 + fprintf (stderr, "%s:%d: error: %s\n", map_file, no, msg);
32970 +static void rdm_show_warning (const char *map_file,int no, const char *msg, ...)
32974 + va_start (ap, msg);
32975 + fprintf (stderr, "%s:%d: warning: ", map_file, no);
32976 + vfprintf (stderr, msg, ap);
32981 read_device_map (FILE *fp, char **map, const char *map_file)
32983 - auto void show_error (int no, const char *msg);
32984 - auto void show_warning (int no, const char *msg, ...);
32986 - auto void show_error (int no, const char *msg)
32988 - fprintf (stderr, "%s:%d: error: %s\n", map_file, no, msg);
32991 - auto void show_warning (int no, const char *msg, ...)
32995 - va_start (ap, msg);
32996 - fprintf (stderr, "%s:%d: warning: ", map_file, no);
32997 - vfprintf (stderr, msg, ap);
33001 /* If there is the device map file, use the data in it instead of
33002 probing devices. */
33003 char buf[1024]; /* XXX */
33004 @@ -540,14 +698,14 @@ read_device_map (FILE *fp, char **map, const char *map_file)
33008 - show_error (line_number, "No open parenthesis found");
33009 + rdm_show_error (map_file, line_number, "No open parenthesis found");
33014 if ((*ptr != 'f' && *ptr != 'h') || *(ptr + 1) != 'd')
33016 - show_error (line_number, "Bad drive name");
33017 + rdm_show_error (map_file, line_number, "Bad drive name");
33021 @@ -558,12 +716,12 @@ read_device_map (FILE *fp, char **map, const char *map_file)
33022 drive = strtoul (ptr, &ptr, 10);
33025 - show_error (line_number, "Bad device number");
33026 + rdm_show_error (map_file, line_number, "Bad device number");
33029 else if (drive > 127)
33031 - show_warning (line_number,
33032 + rdm_show_warning (map_file, line_number,
33033 "Ignoring %cd%d due to a BIOS limitation",
33034 is_floppy ? 'f' : 'h', drive);
33036 @@ -574,7 +732,7 @@ read_device_map (FILE *fp, char **map, const char *map_file)
33040 - show_error (line_number, "No close parenthesis found");
33041 + rdm_show_error (map_file, line_number, "No close parenthesis found");
33045 @@ -585,7 +743,7 @@ read_device_map (FILE *fp, char **map, const char *map_file)
33049 - show_error (line_number, "No filename found");
33050 + rdm_show_error (map_file, line_number, "No filename found");
33054 @@ -598,7 +756,7 @@ read_device_map (FILE *fp, char **map, const char *map_file)
33055 /* Multiple entries for a given drive is not allowed. */
33058 - show_error (line_number, "Duplicated entry found");
33059 + rdm_show_error (map_file, line_number, "Duplicated entry found");
33063 @@ -782,7 +940,7 @@ init_device_map (char ***map, const char *map_file, int floppy_disks)
33065 for (controller = 0; controller < 8; controller++)
33067 - for (drive = 0; drive < 15; drive++)
33068 + for (drive = 0; drive < 32; drive++)
33072 @@ -801,6 +959,90 @@ init_device_map (char ***map, const char *map_file, int floppy_disks)
33078 + for (i = 0; i < 8; i++)
33082 + get_i2o_disk_name (name, i);
33083 + if (check_device (name))
33085 + (*map)[num_hd + 0x80] = strdup (name);
33086 + assert ((*map)[num_hd + 0x80]);
33088 + /* If the device map file is opened, write the map. */
33090 + fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
33096 +#endif /* __linux__ */
33099 + /* This is for cciss - we have
33100 + /dev/cciss/c<controller>d<logical drive>p<partition>.
33102 + cciss driver currently supports up to 8 controllers, 16 logical
33103 + drives, and 7 partitions. */
33105 + int controller, drive;
33107 + for (controller = 0; controller < 8; controller++)
33109 + for (drive = 0; drive < 16; drive++)
33113 + get_cciss_disk_name (name, controller, drive);
33114 + if (check_device (name))
33116 + (*map)[num_hd + 0x80] = strdup (name);
33117 + assert ((*map)[num_hd + 0x80]);
33119 + /* If the device map file is opened, write the map. */
33121 + fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
33128 +#endif /* __linux__ */
33131 + /* This is for cpqarray - we have
33132 + /dev/ida/c<controller>d<logical drive>p<partition>.
33134 + cpqarray driver currently supports up to 8 controllers, 16 logical
33135 + drives, and 15 partitions. */
33137 + int controller, drive;
33139 + for (controller = 0; controller < 8; controller++)
33141 + for (drive = 0; drive < 15; drive++)
33145 + get_cpqarray_disk_name (name, controller, drive);
33146 + if (check_device (name))
33148 + (*map)[num_hd + 0x80] = strdup (name);
33149 + assert ((*map)[num_hd + 0x80]);
33151 + /* If the device map file is opened, write the map. */
33153 + fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
33160 #endif /* __linux__ */
33162 /* OK, close the device map file if opened. */
33163 @@ -844,6 +1086,7 @@ write_to_partition (char **map, int drive, int partition,
33165 char dev[PATH_MAX]; /* XXX */
33167 + off_t offset = (off_t) sector * (off_t) SECTOR_SIZE;
33169 if ((partition & 0x00FF00) != 0x00FF00)
33171 @@ -861,44 +1104,35 @@ write_to_partition (char **map, int drive, int partition,
33172 if (strcmp (dev + strlen(dev) - 5, "/disc") == 0)
33173 strcpy (dev + strlen(dev) - 5, "/part");
33175 - sprintf (dev + strlen(dev), "%d", ((partition >> 16) & 0xFF) + 1);
33177 + sprintf (dev + strlen(dev), "%s%d",
33178 + /* Compaq smart and others */
33179 + (strncmp(dev, "/dev/ida/", 9) == 0 ||
33180 + strncmp(dev, "/dev/ataraid/", 13) == 0 ||
33181 + strncmp(dev, "/dev/mapper/", 12) == 0 ||
33182 + strncmp(dev, "/dev/md", 7) == 0 ||
33183 + strncmp(dev, "/dev/cciss/", 11) == 0 ||
33184 + strncmp(dev, "/dev/rd/", 8) == 0) ? "p" : "",
33185 + ((partition >> 16) & 0xFF) + 1);
33187 /* Open the partition. */
33188 fd = open (dev, O_RDWR);
33191 + /* No partition file, pass thru and not worry about
33192 + * cache inconsistency. */
33193 + if (errno == ENOENT)
33195 errnum = ERR_NO_PART;
33199 -#if defined(__linux__) && (!defined(__GLIBC__) || \
33200 - ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))))
33201 - /* Maybe libc doesn't have large file support. */
33203 - loff_t offset, result;
33204 - static int _llseek (uint filedes, ulong hi, ulong lo,
33205 - loff_t *res, uint wh);
33206 - _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo,
33207 - loff_t *, res, uint, wh);
33209 - offset = (loff_t) sector * (loff_t) SECTOR_SIZE;
33210 - if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET))
33212 - errnum = ERR_DEV_VALUES;
33218 - off_t offset = (off_t) sector * (off_t) SECTOR_SIZE;
33220 - if (lseek (fd, offset, SEEK_SET) != offset)
33222 - errnum = ERR_DEV_VALUES;
33228 + if (my_lseek(fd, offset, SEEK_SET) != offset)
33230 + errnum = ERR_DEV_VALUES;
33234 if (write (fd, buf, size * SECTOR_SIZE) != (size * SECTOR_SIZE))
33236 diff --git a/makediff b/makediff
33237 new file mode 100755
33238 index 0000000..a82b448
33245 +From: Peter Jones <pjones@redhat.com>"
33247 +Subject: [PATCH] Changes from grub-0.97 to master
33249 +This patch is a bundle of the changes between grub-0.97 and master.
33250 +It can be reginerated from the git repository at:
33252 +git://github.com/vathpela/grub-fedora.git
33254 +Using the command:
33256 +git diff grub-0.97 master
33259 +git diff grub-0.97 master | diffstat -p1
33261 +git diff grub-0.97 master
33263 diff --git a/netboot/.gitignore b/netboot/.gitignore
33264 new file mode 100644
33265 index 0000000..5d89f6d
33267 +++ b/netboot/.gitignore
33271 diff --git a/netboot/Makefile.in b/netboot/Makefile.in
33272 deleted file mode 100644
33273 index 75ac299..0000000
33274 --- a/netboot/Makefile.in
33277 -# Makefile.in generated by automake 1.9.4 from Makefile.am.
33278 -# @configure_input@
33280 -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
33281 -# 2003, 2004 Free Software Foundation, Inc.
33282 -# This Makefile.in is free software; the Free Software Foundation
33283 -# gives unlimited permission to copy and/or distribute it,
33284 -# with or without modifications, as long as this notice is preserved.
33286 -# This program is distributed in the hope that it will be useful,
33287 -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
33288 -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
33289 -# PARTICULAR PURPOSE.
33293 -SOURCES = $(libdrivers_a_SOURCES) $(EXTRA_libdrivers_a_SOURCES)
33296 -top_srcdir = @top_srcdir@
33298 -pkgdatadir = $(datadir)/@PACKAGE@
33299 -pkglibdir = $(libdir)/@PACKAGE@
33300 -pkgincludedir = $(includedir)/@PACKAGE@
33302 -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
33303 -INSTALL = @INSTALL@
33304 -install_sh_DATA = $(install_sh) -c -m 644
33305 -install_sh_PROGRAM = $(install_sh) -c
33306 -install_sh_SCRIPT = $(install_sh) -c
33307 -INSTALL_HEADER = $(INSTALL_DATA)
33308 -transform = $(program_transform_name)
33309 -NORMAL_INSTALL = :
33312 -NORMAL_UNINSTALL = :
33314 -POST_UNINSTALL = :
33315 -build_triplet = @build@
33316 -host_triplet = @host@
33318 -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
33319 -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
33320 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
33321 - $(top_srcdir)/configure.ac
33322 -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
33324 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
33325 -CONFIG_HEADER = $(top_builddir)/config.h
33326 -CONFIG_CLEAN_FILES =
33327 -LIBRARIES = $(noinst_LIBRARIES)
33330 -libdrivers_a_AR = $(AR) $(ARFLAGS)
33331 -am_libdrivers_a_OBJECTS = libdrivers_a-config.$(OBJEXT) \
33332 - libdrivers_a-fsys_tftp.$(OBJEXT) libdrivers_a-main.$(OBJEXT) \
33333 - libdrivers_a-misc.$(OBJEXT) libdrivers_a-pci.$(OBJEXT) \
33334 - libdrivers_a-timer.$(OBJEXT)
33335 -libdrivers_a_OBJECTS = $(am_libdrivers_a_OBJECTS)
33336 -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
33337 -depcomp = $(SHELL) $(top_srcdir)/depcomp
33338 -am__depfiles_maybe = depfiles
33339 -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
33340 - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
33342 -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
33343 -SOURCES = $(libdrivers_a_SOURCES) $(EXTRA_libdrivers_a_SOURCES)
33344 -DIST_SOURCES = $(libdrivers_a_SOURCES) $(EXTRA_libdrivers_a_SOURCES)
33347 -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
33348 -ACLOCAL = @ACLOCAL@
33349 -AMDEP_FALSE = @AMDEP_FALSE@
33350 -AMDEP_TRUE = @AMDEP_TRUE@
33352 -AUTOCONF = @AUTOCONF@
33353 -AUTOHEADER = @AUTOHEADER@
33354 -AUTOMAKE = @AUTOMAKE@
33356 -BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
33357 -BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
33360 -CCASFLAGS = @CCASFLAGS@
33361 -CCDEPMODE = @CCDEPMODE@
33364 -CPPFLAGS = @CPPFLAGS@
33365 -CYGPATH_W = @CYGPATH_W@
33368 -DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
33369 -DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
33375 -FSYS_CFLAGS = @FSYS_CFLAGS@
33376 -GRUB_CFLAGS = @GRUB_CFLAGS@
33377 -GRUB_LIBS = @GRUB_LIBS@
33378 -HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
33379 -HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
33380 -INSTALL_DATA = @INSTALL_DATA@
33381 -INSTALL_PROGRAM = @INSTALL_PROGRAM@
33382 -INSTALL_SCRIPT = @INSTALL_SCRIPT@
33383 -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
33384 -LDFLAGS = @LDFLAGS@
33385 -LIBOBJS = @LIBOBJS@
33387 -LTLIBOBJS = @LTLIBOBJS@
33389 -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
33390 -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
33391 -MAKEINFO = @MAKEINFO@
33392 -NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
33393 -NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
33394 -NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
33395 -NET_CFLAGS = @NET_CFLAGS@
33396 -NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
33397 -OBJCOPY = @OBJCOPY@
33399 -PACKAGE = @PACKAGE@
33400 -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
33401 -PACKAGE_NAME = @PACKAGE_NAME@
33402 -PACKAGE_STRING = @PACKAGE_STRING@
33403 -PACKAGE_TARNAME = @PACKAGE_TARNAME@
33404 -PACKAGE_VERSION = @PACKAGE_VERSION@
33405 -PATH_SEPARATOR = @PATH_SEPARATOR@
33408 -SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
33409 -SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
33410 -SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
33411 -SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
33412 -SET_MAKE = @SET_MAKE@
33414 -STAGE1_CFLAGS = @STAGE1_CFLAGS@
33415 -STAGE2_CFLAGS = @STAGE2_CFLAGS@
33417 -VERSION = @VERSION@
33418 -ac_ct_CC = @ac_ct_CC@
33419 -ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
33420 -ac_ct_RANLIB = @ac_ct_RANLIB@
33421 -ac_ct_STRIP = @ac_ct_STRIP@
33422 -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
33423 -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
33424 -am__include = @am__include@
33425 -am__leading_dot = @am__leading_dot@
33426 -am__quote = @am__quote@
33427 -am__tar = @am__tar@
33428 -am__untar = @am__untar@
33431 -build_alias = @build_alias@
33432 -build_cpu = @build_cpu@
33433 -build_os = @build_os@
33434 -build_vendor = @build_vendor@
33435 -datadir = @datadir@
33436 -exec_prefix = @exec_prefix@
33438 -host_alias = @host_alias@
33439 -host_cpu = @host_cpu@
33440 -host_os = @host_os@
33441 -host_vendor = @host_vendor@
33442 -includedir = @includedir@
33443 -infodir = @infodir@
33444 -install_sh = @install_sh@
33446 -libexecdir = @libexecdir@
33447 -localstatedir = @localstatedir@
33449 -mkdir_p = @mkdir_p@
33450 -oldincludedir = @oldincludedir@
33452 -program_transform_name = @program_transform_name@
33453 -sbindir = @sbindir@
33454 -sharedstatedir = @sharedstatedir@
33455 -sysconfdir = @sysconfdir@
33456 -target_alias = @target_alias@
33458 -# For <shared.h> and <stage1.h>.
33459 -INCLUDES = -I$(top_srcdir)/stage2 -I$(top_srcdir)/stage1
33460 -@NETBOOT_SUPPORT_FALSE@LIBDRIVERS =
33462 -# Don't build the netboot support by default.
33463 -@NETBOOT_SUPPORT_TRUE@LIBDRIVERS = libdrivers.a
33464 -noinst_LIBRARIES = $(LIBDRIVERS)
33465 -libdrivers_a_SOURCES = cards.h config.c etherboot.h \
33466 - fsys_tftp.c linux-asm-io.h linux-asm-string.h \
33467 - main.c misc.c nic.h osdep.h pci.c pci.h timer.c timer.h
33469 -EXTRA_libdrivers_a_SOURCES = 3c509.c 3c509.h 3c595.c 3c595.h 3c90x.c \
33470 - cs89x0.c cs89x0.h davicom.c depca.c eepro.c eepro100.c \
33471 - epic100.c epic100.h fa311.c i82586.c lance.c natsemi.c \
33472 - ni5010.c ns8390.c ns8390.h otulip.c otulip.h rtl8139.c \
33473 - sis900.c sis900.h sk_g16.c sk_g16.h smc9000.c smc9000.h \
33474 - tiara.c tlan.c tulip.c via-rhine.c w89c840.c
33476 -libdrivers_a_CFLAGS = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
33477 - -DFSYS_TFTP=1 $(NET_CFLAGS) $(NET_EXTRAFLAGS)
33479 -# Filled by configure.
33480 -libdrivers_a_LIBADD = @NETBOOT_DRIVERS@
33481 -libdrivers_a_DEPENDENCIES = $(libdrivers_a_LIBADD)
33482 -EXTRA_DIST = README.netboot 3c90x.txt cs89x0.txt sis900.txt tulip.txt
33484 -# These below are several special rules for the device drivers.
33485 -# We cannot use a simple rule for them...
33487 -# What objects are derived from a driver?
33488 -3c509_drivers = 3c509.o 3c529.o
33489 -3c595_drivers = 3c595.o
33490 -3c90x_drivers = 3c90x.o
33491 -cs89x0_drivers = cs89x0.o
33492 -davicom_drivers = davicom.o
33493 -depca_drivers = depca.o
33494 -eepro_drivers = eepro.o
33495 -eepro100_drivers = eepro100.o
33496 -epic100_drivers = epic100.o
33497 -#fa311_drivers = fa311.o
33498 -i82586_drivers = 3c507.o exos205.o ni5210.o
33499 -lance_drivers = lance.o ne2100.o ni6510.o
33500 -natsemi_drivers = natsemi.o
33501 -ni5010_drivers = ni5010.o
33502 -ns8390_drivers = 3c503.o ne.o ns8390.o wd.o
33503 -otulip_drivers = otulip.o
33504 -rtl8139_drivers = rtl8139.o
33505 -sis900_drivers = sis900.o
33506 -sk_g16_drivers = sk_g16.o
33507 -smc9000_drivers = smc9000.o
33508 -tiara_drivers = tiara.o
33509 -#tlan_drivers = tlan.o
33510 -tulip_drivers = tulip.o
33511 -via_rhine_drivers = via_rhine.o
33512 -w89c840_drivers = w89c840.o
33514 -# Per-object flags.
33515 -3c509_o_CFLAGS = -DINCLUDE_3C509=1
33516 -3c529_o_CFLAGS = -DINCLUDE_3C529=1
33517 -3c595_o_CFLAGS = -DINCLUDE_3C595=1
33518 -3c90x_o_CFLAGS = -DINCLUDE_3C90X=1
33519 -cs89x0_o_CFLAGS = -DINCLUDE_CS89X0=1
33520 -davicom_o_CFLAGS = -DINCLUDE_DAVICOM=1
33521 -depca_o_CFLAGS = -DINCLUDE_DEPCA=1
33522 -eepro_o_CFLAGS = -DINCLUDE_EEPRO=1
33523 -eepro100_o_CFLAGS = -DINCLUDE_EEPRO100=1
33524 -epic100_o_CFLAGS = -DINCLUDE_EPIC100=1
33525 -#fa311_o_CFLAGS = -DINCLUDE_FA311=1
33526 -3c507_o_CFLAGS = -DINCLUDE_3C507=1
33527 -exos205_o_CFLAGS = -DINCLUDE_EXOS205=1
33528 -ni5210_o_CFLAGS = -DINCLUDE_NI5210=1
33529 -lance_o_CFLAGS = -DINCLUDE_LANCE=1
33530 -ne2100_o_CFLAGS = -DINCLUDE_NE2100=1
33531 -ni6510_o_CFLAGS = -DINCLUDE_NI6510=1
33532 -natsemi_o_CFLAGS = -DINCLUDE_NATSEMI=1
33533 -ni5010_o_CFLAGS = -DINCLUDE_NI5010=1
33534 -3c503_o_CFLAGS = -DINCLUDE_3C503=1
33535 -ne_o_CFLAGS = -DINCLUDE_NE=1
33536 -ns8390_o_CFLAGS = -DINCLUDE_NS8390=1
33537 -wd_o_CFLAGS = -DINCLUDE_WD=1
33538 -otulip_o_CFLAGS = -DINCLUDE_OTULIP=1
33539 -rtl8139_o_CFLAGS = -DINCLUDE_RTL8139=1
33540 -sis900_o_CFLAGS = -DINCLUDE_SIS900=1
33541 -sk_g16_o_CFLAGS = -DINCLUDE_SK_G16=1
33542 -smc9000_o_CFLAGS = -DINCLUDE_SMC9000=1
33543 -tiara_o_CFLAGS = -DINCLUDE_TIARA=1
33544 -#tlan_o_CFLAGS = -DINCLUDE_TLAN=1
33545 -tulip_o_CFLAGS = -DINCLUDE_TULIP=1
33546 -via_rhine_o_CFLAGS = -DINCLUDE_VIA_RHINE=1
33547 -w89c840_o_CFLAGS = -DINCLUDE_W89C840=1
33551 -.SUFFIXES: .c .o .obj
33552 -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
33553 - @for dep in $?; do \
33554 - case '$(am__configure_deps)' in \
33556 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
33561 - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu netboot/Makefile'; \
33562 - cd $(top_srcdir) && \
33563 - $(AUTOMAKE) --gnu netboot/Makefile
33564 -.PRECIOUS: Makefile
33565 -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
33567 - *config.status*) \
33568 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
33570 - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
33571 - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
33574 -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
33575 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
33577 -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
33578 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
33579 -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
33580 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
33582 -clean-noinstLIBRARIES:
33583 - -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
33584 -libdrivers.a: $(libdrivers_a_OBJECTS) $(libdrivers_a_DEPENDENCIES)
33585 - -rm -f libdrivers.a
33586 - $(libdrivers_a_AR) libdrivers.a $(libdrivers_a_OBJECTS) $(libdrivers_a_LIBADD)
33587 - $(RANLIB) libdrivers.a
33589 -mostlyclean-compile:
33590 - -rm -f *.$(OBJEXT)
33592 -distclean-compile:
33595 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-3c509.Po@am__quote@
33596 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-3c595.Po@am__quote@
33597 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-3c90x.Po@am__quote@
33598 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-config.Po@am__quote@
33599 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-cs89x0.Po@am__quote@
33600 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-davicom.Po@am__quote@
33601 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-depca.Po@am__quote@
33602 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-eepro.Po@am__quote@
33603 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-eepro100.Po@am__quote@
33604 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-epic100.Po@am__quote@
33605 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-fa311.Po@am__quote@
33606 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-fsys_tftp.Po@am__quote@
33607 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-i82586.Po@am__quote@
33608 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-lance.Po@am__quote@
33609 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-main.Po@am__quote@
33610 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-misc.Po@am__quote@
33611 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-natsemi.Po@am__quote@
33612 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-ni5010.Po@am__quote@
33613 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-ns8390.Po@am__quote@
33614 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-otulip.Po@am__quote@
33615 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-pci.Po@am__quote@
33616 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-rtl8139.Po@am__quote@
33617 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-sis900.Po@am__quote@
33618 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-sk_g16.Po@am__quote@
33619 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-smc9000.Po@am__quote@
33620 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-tiara.Po@am__quote@
33621 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-timer.Po@am__quote@
33622 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-tlan.Po@am__quote@
33623 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-tulip.Po@am__quote@
33624 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-via-rhine.Po@am__quote@
33625 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-w89c840.Po@am__quote@
33628 -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
33629 -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
33630 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
33631 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33632 -@am__fastdepCC_FALSE@ $(COMPILE) -c $<
33635 -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
33636 -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
33637 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
33638 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33639 -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
33641 -libdrivers_a-config.o: config.c
33642 -@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; \
33643 -@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
33644 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config.c' object='libdrivers_a-config.o' libtool=no @AMDEPBACKSLASH@
33645 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33646 -@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
33648 -libdrivers_a-config.obj: config.c
33649 -@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`; \
33650 -@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
33651 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config.c' object='libdrivers_a-config.obj' libtool=no @AMDEPBACKSLASH@
33652 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33653 -@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`
33655 -libdrivers_a-fsys_tftp.o: fsys_tftp.c
33656 -@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; \
33657 -@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
33658 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_tftp.c' object='libdrivers_a-fsys_tftp.o' libtool=no @AMDEPBACKSLASH@
33659 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33660 -@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
33662 -libdrivers_a-fsys_tftp.obj: fsys_tftp.c
33663 -@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`; \
33664 -@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
33665 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_tftp.c' object='libdrivers_a-fsys_tftp.obj' libtool=no @AMDEPBACKSLASH@
33666 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33667 -@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`
33669 -libdrivers_a-main.o: main.c
33670 -@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; \
33671 -@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
33672 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='libdrivers_a-main.o' libtool=no @AMDEPBACKSLASH@
33673 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33674 -@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
33676 -libdrivers_a-main.obj: main.c
33677 -@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`; \
33678 -@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
33679 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='libdrivers_a-main.obj' libtool=no @AMDEPBACKSLASH@
33680 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33681 -@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`
33683 -libdrivers_a-misc.o: misc.c
33684 -@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; \
33685 -@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
33686 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='misc.c' object='libdrivers_a-misc.o' libtool=no @AMDEPBACKSLASH@
33687 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33688 -@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
33690 -libdrivers_a-misc.obj: misc.c
33691 -@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`; \
33692 -@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
33693 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='misc.c' object='libdrivers_a-misc.obj' libtool=no @AMDEPBACKSLASH@
33694 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33695 -@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`
33697 -libdrivers_a-pci.o: pci.c
33698 -@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; \
33699 -@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
33700 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pci.c' object='libdrivers_a-pci.o' libtool=no @AMDEPBACKSLASH@
33701 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33702 -@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
33704 -libdrivers_a-pci.obj: pci.c
33705 -@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`; \
33706 -@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
33707 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pci.c' object='libdrivers_a-pci.obj' libtool=no @AMDEPBACKSLASH@
33708 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33709 -@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`
33711 -libdrivers_a-timer.o: timer.c
33712 -@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; \
33713 -@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
33714 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='timer.c' object='libdrivers_a-timer.o' libtool=no @AMDEPBACKSLASH@
33715 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33716 -@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
33718 -libdrivers_a-timer.obj: timer.c
33719 -@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`; \
33720 -@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
33721 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='timer.c' object='libdrivers_a-timer.obj' libtool=no @AMDEPBACKSLASH@
33722 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33723 -@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`
33725 -libdrivers_a-3c509.o: 3c509.c
33726 -@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; \
33727 -@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
33728 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='3c509.c' object='libdrivers_a-3c509.o' libtool=no @AMDEPBACKSLASH@
33729 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33730 -@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
33732 -libdrivers_a-3c509.obj: 3c509.c
33733 -@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`; \
33734 -@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
33735 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='3c509.c' object='libdrivers_a-3c509.obj' libtool=no @AMDEPBACKSLASH@
33736 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33737 -@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`
33739 -libdrivers_a-3c595.o: 3c595.c
33740 -@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; \
33741 -@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
33742 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='3c595.c' object='libdrivers_a-3c595.o' libtool=no @AMDEPBACKSLASH@
33743 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33744 -@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
33746 -libdrivers_a-3c595.obj: 3c595.c
33747 -@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`; \
33748 -@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
33749 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='3c595.c' object='libdrivers_a-3c595.obj' libtool=no @AMDEPBACKSLASH@
33750 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33751 -@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`
33753 -libdrivers_a-3c90x.o: 3c90x.c
33754 -@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; \
33755 -@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
33756 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='3c90x.c' object='libdrivers_a-3c90x.o' libtool=no @AMDEPBACKSLASH@
33757 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33758 -@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
33760 -libdrivers_a-3c90x.obj: 3c90x.c
33761 -@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`; \
33762 -@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
33763 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='3c90x.c' object='libdrivers_a-3c90x.obj' libtool=no @AMDEPBACKSLASH@
33764 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33765 -@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`
33767 -libdrivers_a-cs89x0.o: cs89x0.c
33768 -@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; \
33769 -@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
33770 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cs89x0.c' object='libdrivers_a-cs89x0.o' libtool=no @AMDEPBACKSLASH@
33771 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33772 -@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
33774 -libdrivers_a-cs89x0.obj: cs89x0.c
33775 -@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`; \
33776 -@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
33777 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cs89x0.c' object='libdrivers_a-cs89x0.obj' libtool=no @AMDEPBACKSLASH@
33778 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33779 -@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`
33781 -libdrivers_a-davicom.o: davicom.c
33782 -@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; \
33783 -@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
33784 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='davicom.c' object='libdrivers_a-davicom.o' libtool=no @AMDEPBACKSLASH@
33785 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33786 -@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
33788 -libdrivers_a-davicom.obj: davicom.c
33789 -@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`; \
33790 -@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
33791 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='davicom.c' object='libdrivers_a-davicom.obj' libtool=no @AMDEPBACKSLASH@
33792 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33793 -@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`
33795 -libdrivers_a-depca.o: depca.c
33796 -@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; \
33797 -@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
33798 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='depca.c' object='libdrivers_a-depca.o' libtool=no @AMDEPBACKSLASH@
33799 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33800 -@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
33802 -libdrivers_a-depca.obj: depca.c
33803 -@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`; \
33804 -@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
33805 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='depca.c' object='libdrivers_a-depca.obj' libtool=no @AMDEPBACKSLASH@
33806 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33807 -@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`
33809 -libdrivers_a-eepro.o: eepro.c
33810 -@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; \
33811 -@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
33812 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eepro.c' object='libdrivers_a-eepro.o' libtool=no @AMDEPBACKSLASH@
33813 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33814 -@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
33816 -libdrivers_a-eepro.obj: eepro.c
33817 -@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`; \
33818 -@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
33819 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eepro.c' object='libdrivers_a-eepro.obj' libtool=no @AMDEPBACKSLASH@
33820 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33821 -@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`
33823 -libdrivers_a-eepro100.o: eepro100.c
33824 -@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; \
33825 -@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
33826 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eepro100.c' object='libdrivers_a-eepro100.o' libtool=no @AMDEPBACKSLASH@
33827 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33828 -@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
33830 -libdrivers_a-eepro100.obj: eepro100.c
33831 -@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`; \
33832 -@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
33833 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eepro100.c' object='libdrivers_a-eepro100.obj' libtool=no @AMDEPBACKSLASH@
33834 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33835 -@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`
33837 -libdrivers_a-epic100.o: epic100.c
33838 -@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; \
33839 -@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
33840 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epic100.c' object='libdrivers_a-epic100.o' libtool=no @AMDEPBACKSLASH@
33841 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33842 -@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
33844 -libdrivers_a-epic100.obj: epic100.c
33845 -@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`; \
33846 -@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
33847 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='epic100.c' object='libdrivers_a-epic100.obj' libtool=no @AMDEPBACKSLASH@
33848 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33849 -@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`
33851 -libdrivers_a-fa311.o: fa311.c
33852 -@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; \
33853 -@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
33854 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fa311.c' object='libdrivers_a-fa311.o' libtool=no @AMDEPBACKSLASH@
33855 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33856 -@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
33858 -libdrivers_a-fa311.obj: fa311.c
33859 -@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`; \
33860 -@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
33861 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fa311.c' object='libdrivers_a-fa311.obj' libtool=no @AMDEPBACKSLASH@
33862 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33863 -@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`
33865 -libdrivers_a-i82586.o: i82586.c
33866 -@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; \
33867 -@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
33868 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='i82586.c' object='libdrivers_a-i82586.o' libtool=no @AMDEPBACKSLASH@
33869 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33870 -@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
33872 -libdrivers_a-i82586.obj: i82586.c
33873 -@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`; \
33874 -@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
33875 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='i82586.c' object='libdrivers_a-i82586.obj' libtool=no @AMDEPBACKSLASH@
33876 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33877 -@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`
33879 -libdrivers_a-lance.o: lance.c
33880 -@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; \
33881 -@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
33882 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lance.c' object='libdrivers_a-lance.o' libtool=no @AMDEPBACKSLASH@
33883 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33884 -@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
33886 -libdrivers_a-lance.obj: lance.c
33887 -@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`; \
33888 -@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
33889 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lance.c' object='libdrivers_a-lance.obj' libtool=no @AMDEPBACKSLASH@
33890 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33891 -@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`
33893 -libdrivers_a-natsemi.o: natsemi.c
33894 -@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; \
33895 -@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
33896 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='natsemi.c' object='libdrivers_a-natsemi.o' libtool=no @AMDEPBACKSLASH@
33897 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33898 -@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
33900 -libdrivers_a-natsemi.obj: natsemi.c
33901 -@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`; \
33902 -@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
33903 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='natsemi.c' object='libdrivers_a-natsemi.obj' libtool=no @AMDEPBACKSLASH@
33904 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33905 -@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`
33907 -libdrivers_a-ni5010.o: ni5010.c
33908 -@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; \
33909 -@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
33910 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ni5010.c' object='libdrivers_a-ni5010.o' libtool=no @AMDEPBACKSLASH@
33911 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33912 -@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
33914 -libdrivers_a-ni5010.obj: ni5010.c
33915 -@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`; \
33916 -@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
33917 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ni5010.c' object='libdrivers_a-ni5010.obj' libtool=no @AMDEPBACKSLASH@
33918 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33919 -@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`
33921 -libdrivers_a-ns8390.o: ns8390.c
33922 -@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; \
33923 -@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
33924 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ns8390.c' object='libdrivers_a-ns8390.o' libtool=no @AMDEPBACKSLASH@
33925 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33926 -@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
33928 -libdrivers_a-ns8390.obj: ns8390.c
33929 -@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`; \
33930 -@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
33931 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ns8390.c' object='libdrivers_a-ns8390.obj' libtool=no @AMDEPBACKSLASH@
33932 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33933 -@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`
33935 -libdrivers_a-otulip.o: otulip.c
33936 -@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; \
33937 -@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
33938 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='otulip.c' object='libdrivers_a-otulip.o' libtool=no @AMDEPBACKSLASH@
33939 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33940 -@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
33942 -libdrivers_a-otulip.obj: otulip.c
33943 -@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`; \
33944 -@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
33945 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='otulip.c' object='libdrivers_a-otulip.obj' libtool=no @AMDEPBACKSLASH@
33946 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33947 -@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`
33949 -libdrivers_a-rtl8139.o: rtl8139.c
33950 -@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; \
33951 -@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
33952 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rtl8139.c' object='libdrivers_a-rtl8139.o' libtool=no @AMDEPBACKSLASH@
33953 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33954 -@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
33956 -libdrivers_a-rtl8139.obj: rtl8139.c
33957 -@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`; \
33958 -@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
33959 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='rtl8139.c' object='libdrivers_a-rtl8139.obj' libtool=no @AMDEPBACKSLASH@
33960 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33961 -@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`
33963 -libdrivers_a-sis900.o: sis900.c
33964 -@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; \
33965 -@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
33966 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sis900.c' object='libdrivers_a-sis900.o' libtool=no @AMDEPBACKSLASH@
33967 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33968 -@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
33970 -libdrivers_a-sis900.obj: sis900.c
33971 -@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`; \
33972 -@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
33973 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sis900.c' object='libdrivers_a-sis900.obj' libtool=no @AMDEPBACKSLASH@
33974 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33975 -@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`
33977 -libdrivers_a-sk_g16.o: sk_g16.c
33978 -@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; \
33979 -@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
33980 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sk_g16.c' object='libdrivers_a-sk_g16.o' libtool=no @AMDEPBACKSLASH@
33981 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33982 -@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
33984 -libdrivers_a-sk_g16.obj: sk_g16.c
33985 -@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`; \
33986 -@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
33987 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sk_g16.c' object='libdrivers_a-sk_g16.obj' libtool=no @AMDEPBACKSLASH@
33988 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33989 -@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`
33991 -libdrivers_a-smc9000.o: smc9000.c
33992 -@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; \
33993 -@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
33994 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='smc9000.c' object='libdrivers_a-smc9000.o' libtool=no @AMDEPBACKSLASH@
33995 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
33996 -@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
33998 -libdrivers_a-smc9000.obj: smc9000.c
33999 -@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`; \
34000 -@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
34001 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='smc9000.c' object='libdrivers_a-smc9000.obj' libtool=no @AMDEPBACKSLASH@
34002 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
34003 -@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`
34005 -libdrivers_a-tiara.o: tiara.c
34006 -@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; \
34007 -@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
34008 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tiara.c' object='libdrivers_a-tiara.o' libtool=no @AMDEPBACKSLASH@
34009 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
34010 -@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
34012 -libdrivers_a-tiara.obj: tiara.c
34013 -@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`; \
34014 -@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
34015 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tiara.c' object='libdrivers_a-tiara.obj' libtool=no @AMDEPBACKSLASH@
34016 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
34017 -@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`
34019 -libdrivers_a-tlan.o: tlan.c
34020 -@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; \
34021 -@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
34022 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tlan.c' object='libdrivers_a-tlan.o' libtool=no @AMDEPBACKSLASH@
34023 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
34024 -@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
34026 -libdrivers_a-tlan.obj: tlan.c
34027 -@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`; \
34028 -@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
34029 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tlan.c' object='libdrivers_a-tlan.obj' libtool=no @AMDEPBACKSLASH@
34030 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
34031 -@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`
34033 -libdrivers_a-tulip.o: tulip.c
34034 -@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; \
34035 -@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
34036 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tulip.c' object='libdrivers_a-tulip.o' libtool=no @AMDEPBACKSLASH@
34037 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
34038 -@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
34040 -libdrivers_a-tulip.obj: tulip.c
34041 -@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`; \
34042 -@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
34043 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tulip.c' object='libdrivers_a-tulip.obj' libtool=no @AMDEPBACKSLASH@
34044 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
34045 -@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`
34047 -libdrivers_a-via-rhine.o: via-rhine.c
34048 -@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; \
34049 -@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
34050 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='via-rhine.c' object='libdrivers_a-via-rhine.o' libtool=no @AMDEPBACKSLASH@
34051 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
34052 -@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
34054 -libdrivers_a-via-rhine.obj: via-rhine.c
34055 -@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`; \
34056 -@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
34057 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='via-rhine.c' object='libdrivers_a-via-rhine.obj' libtool=no @AMDEPBACKSLASH@
34058 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
34059 -@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`
34061 -libdrivers_a-w89c840.o: w89c840.c
34062 -@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; \
34063 -@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
34064 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='w89c840.c' object='libdrivers_a-w89c840.o' libtool=no @AMDEPBACKSLASH@
34065 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
34066 -@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
34068 -libdrivers_a-w89c840.obj: w89c840.c
34069 -@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`; \
34070 -@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
34071 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='w89c840.c' object='libdrivers_a-w89c840.obj' libtool=no @AMDEPBACKSLASH@
34072 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
34073 -@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`
34074 -uninstall-info-am:
34076 -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
34077 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
34078 - unique=`for i in $$list; do \
34079 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
34081 - $(AWK) ' { files[$$0] = 1; } \
34082 - END { for (i in files) print i; }'`; \
34083 - mkid -fID $$unique
34086 -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
34087 - $(TAGS_FILES) $(LISP)
34090 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
34091 - unique=`for i in $$list; do \
34092 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
34094 - $(AWK) ' { files[$$0] = 1; } \
34095 - END { for (i in files) print i; }'`; \
34096 - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
34097 - test -n "$$unique" || unique=$$empty_fix; \
34098 - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
34099 - $$tags $$unique; \
34102 -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
34103 - $(TAGS_FILES) $(LISP)
34106 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
34107 - unique=`for i in $$list; do \
34108 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
34110 - $(AWK) ' { files[$$0] = 1; } \
34111 - END { for (i in files) print i; }'`; \
34112 - test -z "$(CTAGS_ARGS)$$tags$$unique" \
34113 - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
34117 - here=`$(am__cd) $(top_builddir) && pwd` \
34118 - && cd $(top_srcdir) \
34119 - && gtags -i $(GTAGS_ARGS) $$here
34122 - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
34124 -distdir: $(DISTFILES)
34125 - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
34126 - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
34127 - list='$(DISTFILES)'; for file in $$list; do \
34129 - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
34130 - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
34132 - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
34133 - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
34134 - if test "$$dir" != "$$file" && test "$$dir" != "."; then \
34136 - $(mkdir_p) "$(distdir)$$dir"; \
34140 - if test -d $$d/$$file; then \
34141 - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
34142 - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
34144 - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
34146 - test -f $(distdir)/$$file \
34147 - || cp -p $$d/$$file $(distdir)/$$file \
34153 -all-am: Makefile $(LIBRARIES)
34155 -install: install-am
34156 -install-exec: install-exec-am
34157 -install-data: install-data-am
34158 -uninstall: uninstall-am
34160 -install-am: all-am
34161 - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
34163 -installcheck: installcheck-am
34165 - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
34166 - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
34167 - `test -z '$(STRIP)' || \
34168 - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
34169 -mostlyclean-generic:
34173 -distclean-generic:
34174 - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
34176 -maintainer-clean-generic:
34177 - @echo "This command is intended for maintainers to use"
34178 - @echo "it deletes files that may require special tools to rebuild."
34181 -clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
34183 -distclean: distclean-am
34184 - -rm -rf ./$(DEPDIR)
34186 -distclean-am: clean-am distclean-compile distclean-generic \
34203 -install-info: install-info-am
34209 -maintainer-clean: maintainer-clean-am
34210 - -rm -rf ./$(DEPDIR)
34212 -maintainer-clean-am: distclean-am maintainer-clean-generic
34214 -mostlyclean: mostlyclean-am
34216 -mostlyclean-am: mostlyclean-compile mostlyclean-generic
34226 -uninstall-am: uninstall-info-am
34228 -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
34229 - clean-noinstLIBRARIES ctags distclean distclean-compile \
34230 - distclean-generic distclean-tags distdir dvi dvi-am html \
34231 - html-am info info-am install install-am install-data \
34232 - install-data-am install-exec install-exec-am install-info \
34233 - install-info-am install-man install-strip installcheck \
34234 - installcheck-am installdirs maintainer-clean \
34235 - maintainer-clean-generic mostlyclean mostlyclean-compile \
34236 - mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
34237 - uninstall-am uninstall-info-am
34240 -# Is it really necessary to specify dependecies explicitly?
34241 -$(3c509_drivers): 3c509.c 3c509.h
34242 -$(3c509_drivers): %.o: 3c509.c
34243 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34244 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34246 -$(3c595_drivers): 3c595.c 3c595.h
34247 -$(3c595_drivers): %.o: 3c595.c
34248 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34249 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34251 -$(3c90x_drivers): 3c90x.c
34252 -$(3c90x_drivers): %.o: 3c90x.c
34253 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34254 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34256 -$(cs89x0_drivers): cs89x0.c cs89x0.h
34257 -$(cs89x0_drivers): %.o: cs89x0.c
34258 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34259 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34261 -$(davicom_drivers): davicom.c
34262 -$(davicom_drivers): %.o: davicom.c
34263 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34264 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34266 -$(depca_drivers): depca.c
34267 -$(depca_drivers): %.o: depca.c
34268 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34269 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34271 -$(eepro_drivers): eepro.c
34272 -$(eepro_drivers): %.o: eepro.c
34273 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34274 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34276 -$(eepro100_drivers): eepro100.c
34277 -$(eepro100_drivers): %.o: eepro100.c
34278 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34279 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34281 -$(epic100_drivers): epic100.c epic100.h
34282 -$(epic100_drivers): %.o: epic100.c
34283 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34284 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34286 -#$(fa311_drivers): fa311.c
34287 -#$(fa311_drivers): %.o: fa311.c
34288 -# $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34289 -# $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34291 -$(i82586_drivers): i82586.c
34292 -$(i82586_drivers): %.o: i82586.c
34293 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34294 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34296 -$(lance_drivers): lance.c
34297 -$(lance_drivers): %.o: lance.c
34298 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34299 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34301 -$(natsemi_drivers): natsemi.c
34302 -$(natsemi_drivers): %.o: natsemi.c
34303 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34304 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34306 -$(ni5010_drivers): ni5010.c
34307 -$(ni5010_drivers): %.o: ni5010.c
34308 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34309 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34311 -$(ns8390_drivers): ns8390.c ns8390.h
34312 -$(ns8390_drivers): %.o: ns8390.c
34313 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34314 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34316 -$(otulip_drivers): otulip.c otulip.h
34317 -$(otulip_drivers): %.o: otulip.c
34318 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34319 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34321 -$(rtl8139_drivers): rtl8139.c
34322 -$(rtl8139_drivers): %.o: rtl8139.c
34323 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34324 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34326 -$(sis900_drivers): sis900.c
34327 -$(sis900_drivers): %.o: sis900.c sis900.h
34328 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34329 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34331 -$(sk_g16_drivers): sk_g16.c sk_g16.h
34332 -$(sk_g16_drivers): %.o: sk_g16.c
34333 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34334 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34336 -$(smc9000_drivers): smc9000.c smc9000.h
34337 -$(smc9000_drivers): %.o: smc9000.c
34338 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34339 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34341 -$(tiara_drivers): tiara.c
34342 -$(tiara_drivers): %.o: tiara.c
34343 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34344 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34346 -#$(tlan_drivers): tlan.c
34347 -#$(tlan_drivers): %.o: tlan.c
34348 -# $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34349 -# $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34351 -$(tulip_drivers): tulip.c
34352 -$(tulip_drivers): %.o: tulip.c
34353 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34354 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34356 -$(via_rhine_drivers): via-rhine.c
34357 -$(via_rhine_drivers): %.o: via-rhine.c
34358 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34359 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34361 -$(w89c840_drivers): w89c840.c
34362 -$(w89c840_drivers): %.o: w89c840.c
34363 - $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
34364 - $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
34365 -# Tell versions [3.59,3.63) of GNU make to not export all variables.
34366 -# Otherwise a system limit (for SysV at least) may be exceeded.
34368 diff --git a/netboot/etherboot.h b/netboot/etherboot.h
34369 index 74ca16f..9c02b25 100644
34370 --- a/netboot/etherboot.h
34371 +++ b/netboot/etherboot.h
34372 @@ -246,7 +246,7 @@ Author: Martin Renters
34376 - unsigned long s_addr;
34377 + unsigned int s_addr;
34381 @@ -302,7 +302,7 @@ struct bootp_t
34385 - unsigned long bp_xid;
34386 + unsigned int bp_xid;
34387 unsigned short bp_secs;
34388 unsigned short unused;
34390 @@ -411,25 +411,25 @@ struct rpc_t
34430 @@ -531,9 +531,7 @@ extern int ip_abort;
34431 extern int network_ready;
34432 extern struct rom_info rom;
34433 extern struct arptable_t arptable[MAX_ARP];
34434 -extern struct bootpd_t bootp_data;
34435 #define BOOTP_DATA_ADDR (&bootp_data)
34436 -extern unsigned char *end_of_rfc1533;
34439 extern struct nic nic;
34440 diff --git a/netboot/main.c b/netboot/main.c
34441 index 82759b6..b8ba920 100644
34442 --- a/netboot/main.c
34443 +++ b/netboot/main.c
34444 @@ -53,9 +53,9 @@ int network_ready = 0;
34445 struct rom_info rom;
34447 static int vendorext_isvalid;
34448 -static unsigned long netmask;
34449 +static unsigned int netmask;
34450 static struct bootpd_t bootp_data;
34451 -static unsigned long xid;
34452 +static unsigned int xid;
34453 static unsigned char *end_of_rfc1533 = NULL;
34455 #ifndef NO_DHCP_SUPPORT
34456 @@ -773,7 +773,7 @@ await_reply (int type, int ival, void *ptr, int timeout)
34457 if (nic.packetlen >= ETH_HLEN + sizeof (struct arprequest)
34460 - unsigned long tmp;
34461 + unsigned int tmp;
34463 arpreply = (struct arprequest *) &nic.packet[ETH_HLEN];
34465 diff --git a/netboot/misc.c b/netboot/misc.c
34466 index 28614fd..6ea9a8e 100644
34467 --- a/netboot/misc.c
34468 +++ b/netboot/misc.c
34472 #include <etherboot.h>
34473 +#include <stdarg.h>
34477 @@ -71,9 +72,10 @@ PRINTF and friends
34478 Note: width specification not supported
34479 **************************************************************************/
34481 -etherboot_vsprintf (char *buf, const char *fmt, const int *dp)
34482 +etherboot_vsprintf (char *buf, const char *fmt, va_list args)
34488 for ( ; *fmt != '\0'; ++fmt)
34489 @@ -86,7 +88,7 @@ etherboot_vsprintf (char *buf, const char *fmt, const int *dp)
34493 - for (p = (char *) *dp++; *p != '\0'; p++)
34494 + for (p = va_arg (args, char *); *p != '\0'; p++)
34495 buf ? *s++ = *p : grub_putchar (*p);
34498 @@ -120,46 +122,44 @@ etherboot_vsprintf (char *buf, const char *fmt, const int *dp)
34500 if ((*fmt | 0x20) == 'x')
34502 - /* With x86 gcc, sizeof(long) == sizeof(int) */
34503 - const long *lp = (const long *) dp;
34505 int ncase = (*fmt & 0x20);
34507 + n = va_arg (args, int);
34509 - dp = (const int *) lp;
34513 *q++ = 'X' | ncase;
34515 for (; shift >= 0; shift -= 4)
34516 - *q++ = "0123456789ABCDEF"[(h >> shift) & 0xF] | ncase;
34517 + *q++ = "0123456789ABCDEF"[(n >> shift) & 0xF] | ncase;
34519 else if (*fmt == 'd')
34526 + n = va_arg (args, int);
34534 p = q; /* save beginning of digits */
34537 - *q++ = '0' + (i % 10);
34539 + *q++ = '0' + (n % 10);
34545 /* reverse digits, stop in middle */
34546 r = q; /* don't alter q */
34556 else if (*fmt == '@')
34557 @@ -167,14 +167,12 @@ etherboot_vsprintf (char *buf, const char *fmt, const int *dp)
34563 unsigned char c[4];
34566 - const long *lp = (const long *) dp;
34569 - dp = (const int *) lp;
34570 + u.l = va_arg (args, int);
34572 for (r = &u.c[0]; r < &u.c[4]; ++r)
34573 q += etherboot_sprintf (q, "%d.", *r);
34574 @@ -184,15 +182,15 @@ etherboot_vsprintf (char *buf, const char *fmt, const int *dp)
34575 else if (*fmt == '!')
34578 - p = (char *) *dp++;
34581 + p = va_arg (args, char *);
34582 for (r = p + ETH_ALEN; p < r; ++p)
34583 q += etherboot_sprintf (q, "%hhX:", *p);
34587 else if (*fmt == 'c')
34589 + *q++ = va_arg (args, int);
34593 @@ -211,13 +209,23 @@ etherboot_vsprintf (char *buf, const char *fmt, const int *dp)
34595 etherboot_sprintf (char *buf, const char *fmt, ...)
34597 - return etherboot_vsprintf (buf, fmt, ((const int *) &fmt) + 1);
34601 + va_start (ap, fmt);
34602 + ret = etherboot_vsprintf (buf, fmt, ap);
34608 etherboot_printf (const char *fmt, ...)
34610 - (void) etherboot_vsprintf (0, fmt, ((const int *) &fmt) + 1);
34613 + va_start (ap, fmt);
34614 + (void) etherboot_vsprintf (0, fmt, ap);
34619 diff --git a/netboot/osdep.h b/netboot/osdep.h
34620 index 57218bf..881141b 100644
34621 --- a/netboot/osdep.h
34622 +++ b/netboot/osdep.h
34623 @@ -21,10 +21,10 @@
34624 #elif defined(__LITTLE_ENDIAN)
34625 # if !defined(__constant_htonl)
34626 # define __constant_htonl(x) \
34627 - ((unsigned long int)((((unsigned long int)(x) & 0x000000ffU) << 24) | \
34628 - (((unsigned long int)(x) & 0x0000ff00U) << 8) | \
34629 - (((unsigned long int)(x) & 0x00ff0000U) >> 8) | \
34630 - (((unsigned long int)(x) & 0xff000000U) >> 24)))
34631 + ((unsigned int)((((unsigned int)(x) & 0x000000ffU) << 24) | \
34632 + (((unsigned int)(x) & 0x0000ff00U) << 8) | \
34633 + (((unsigned int)(x) & 0x00ff0000U) >> 8) | \
34634 + (((unsigned int)(x) & 0xff000000U) >> 24)))
34636 # if !defined(__constant_htons)
34637 # define __constant_htons(x) \
34638 @@ -36,11 +36,11 @@
34642 -(__builtin_constant_p(x) ? \
34643 +(__builtin_constant_p((unsigned int)x) ? \
34644 __constant_htonl((x)) : \
34647 -(__builtin_constant_p(x) ? \
34648 +(__builtin_constant_p((unsigned int)x) ? \
34649 __constant_htonl((x)) : \
34652 @@ -52,21 +52,29 @@
34653 __constant_htons((x)) : \
34656 -static inline unsigned long int __swap32(unsigned long int x)
34657 +static inline unsigned int __swap32(unsigned int x)
34659 +#ifdef PLATFORM_EFI
34660 + __asm__("bswapl %0" : "=r" (x) : "0" (x));
34662 __asm__("xchgb %b0,%h0\n\t"
34671 static inline unsigned short int __swap16(unsigned short int x)
34673 +#ifdef PLATFORM_EFI
34674 + return __constant_htons(x);
34676 __asm__("xchgb %b0,%h0"
34683 @@ -76,7 +84,7 @@ static inline unsigned short int __swap16(unsigned short int x)
34685 #include "linux-asm-io.h"
34687 -typedef unsigned long Address;
34688 +typedef unsigned int Address;
34690 /* ANSI prototyping macro */
34692 diff --git a/stage1/.gitignore b/stage1/.gitignore
34693 new file mode 100644
34694 index 0000000..5d89f6d
34696 +++ b/stage1/.gitignore
34700 diff --git a/stage1/Makefile.am b/stage1/Makefile.am
34701 index 0afc285..cbae397 100644
34702 --- a/stage1/Makefile.am
34703 +++ b/stage1/Makefile.am
34705 -pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
34706 -nodist_pkglib_DATA = stage1
34708 -CLEANFILES = $(nodist_pkglib_DATA)
34709 +pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
34711 # We can't use builtins or standard includes.
34712 AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc
34713 -LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00
34714 +LDFLAGS = $(LOADER_LDFLAGS) -nostdlib -Wl,-N,-Ttext,7C00
34718 +nodist_pkgdata_DATA = stage1
34720 +CLEANFILES = $(nodist_pkgdata_DATA)
34722 noinst_PROGRAMS = stage1.exec
34723 stage1_exec_SOURCES = stage1.S stage1.h
34724 @@ -13,3 +16,5 @@ stage1_exec_SOURCES = stage1.S stage1.h
34727 $(OBJCOPY) -O binary $< $@
34730 diff --git a/stage1/Makefile.in b/stage1/Makefile.in
34731 deleted file mode 100644
34732 index 7134bdf..0000000
34733 --- a/stage1/Makefile.in
34736 -# Makefile.in generated by automake 1.9.4 from Makefile.am.
34737 -# @configure_input@
34739 -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
34740 -# 2003, 2004 Free Software Foundation, Inc.
34741 -# This Makefile.in is free software; the Free Software Foundation
34742 -# gives unlimited permission to copy and/or distribute it,
34743 -# with or without modifications, as long as this notice is preserved.
34745 -# This program is distributed in the hope that it will be useful,
34746 -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
34747 -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
34748 -# PARTICULAR PURPOSE.
34753 -SOURCES = $(stage1_exec_SOURCES)
34756 -top_srcdir = @top_srcdir@
34758 -pkgdatadir = $(datadir)/@PACKAGE@
34759 -pkgincludedir = $(includedir)/@PACKAGE@
34761 -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
34762 -INSTALL = @INSTALL@
34763 -install_sh_DATA = $(install_sh) -c -m 644
34764 -install_sh_PROGRAM = $(install_sh) -c
34765 -install_sh_SCRIPT = $(install_sh) -c
34766 -INSTALL_HEADER = $(INSTALL_DATA)
34767 -transform = $(program_transform_name)
34768 -NORMAL_INSTALL = :
34771 -NORMAL_UNINSTALL = :
34773 -POST_UNINSTALL = :
34774 -build_triplet = @build@
34775 -host_triplet = @host@
34776 -noinst_PROGRAMS = stage1.exec$(EXEEXT)
34778 -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
34779 -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
34780 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
34781 - $(top_srcdir)/configure.ac
34782 -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
34784 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
34785 -CONFIG_HEADER = $(top_builddir)/config.h
34786 -CONFIG_CLEAN_FILES =
34787 -PROGRAMS = $(noinst_PROGRAMS)
34788 -am_stage1_exec_OBJECTS = stage1.$(OBJEXT)
34789 -stage1_exec_OBJECTS = $(am_stage1_exec_OBJECTS)
34790 -stage1_exec_LDADD = $(LDADD)
34791 -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
34792 -CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS)
34793 -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
34794 - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
34796 -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
34797 -SOURCES = $(stage1_exec_SOURCES)
34798 -DIST_SOURCES = $(stage1_exec_SOURCES)
34799 -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
34800 -am__vpath_adj = case $$p in \
34801 - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
34804 -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
34805 -am__installdirs = "$(DESTDIR)$(pkglibdir)"
34806 -nodist_pkglibDATA_INSTALL = $(INSTALL_DATA)
34807 -DATA = $(nodist_pkglib_DATA)
34810 -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
34811 -pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
34812 -ACLOCAL = @ACLOCAL@
34813 -AMDEP_FALSE = @AMDEP_FALSE@
34814 -AMDEP_TRUE = @AMDEP_TRUE@
34816 -AUTOCONF = @AUTOCONF@
34817 -AUTOHEADER = @AUTOHEADER@
34818 -AUTOMAKE = @AUTOMAKE@
34820 -BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
34821 -BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
34824 -CCASFLAGS = @CCASFLAGS@
34825 -CCDEPMODE = @CCDEPMODE@
34828 -CPPFLAGS = @CPPFLAGS@
34829 -CYGPATH_W = @CYGPATH_W@
34832 -DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
34833 -DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
34839 -FSYS_CFLAGS = @FSYS_CFLAGS@
34840 -GRUB_CFLAGS = @GRUB_CFLAGS@
34841 -GRUB_LIBS = @GRUB_LIBS@
34842 -HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
34843 -HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
34844 -INSTALL_DATA = @INSTALL_DATA@
34845 -INSTALL_PROGRAM = @INSTALL_PROGRAM@
34846 -INSTALL_SCRIPT = @INSTALL_SCRIPT@
34847 -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
34848 -LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00
34849 -LIBOBJS = @LIBOBJS@
34851 -LTLIBOBJS = @LTLIBOBJS@
34853 -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
34854 -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
34855 -MAKEINFO = @MAKEINFO@
34856 -NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
34857 -NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
34858 -NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
34859 -NET_CFLAGS = @NET_CFLAGS@
34860 -NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
34861 -OBJCOPY = @OBJCOPY@
34863 -PACKAGE = @PACKAGE@
34864 -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
34865 -PACKAGE_NAME = @PACKAGE_NAME@
34866 -PACKAGE_STRING = @PACKAGE_STRING@
34867 -PACKAGE_TARNAME = @PACKAGE_TARNAME@
34868 -PACKAGE_VERSION = @PACKAGE_VERSION@
34869 -PATH_SEPARATOR = @PATH_SEPARATOR@
34872 -SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
34873 -SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
34874 -SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
34875 -SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
34876 -SET_MAKE = @SET_MAKE@
34878 -STAGE1_CFLAGS = @STAGE1_CFLAGS@
34879 -STAGE2_CFLAGS = @STAGE2_CFLAGS@
34881 -VERSION = @VERSION@
34882 -ac_ct_CC = @ac_ct_CC@
34883 -ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
34884 -ac_ct_RANLIB = @ac_ct_RANLIB@
34885 -ac_ct_STRIP = @ac_ct_STRIP@
34886 -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
34887 -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
34888 -am__include = @am__include@
34889 -am__leading_dot = @am__leading_dot@
34890 -am__quote = @am__quote@
34891 -am__tar = @am__tar@
34892 -am__untar = @am__untar@
34895 -build_alias = @build_alias@
34896 -build_cpu = @build_cpu@
34897 -build_os = @build_os@
34898 -build_vendor = @build_vendor@
34899 -datadir = @datadir@
34900 -exec_prefix = @exec_prefix@
34902 -host_alias = @host_alias@
34903 -host_cpu = @host_cpu@
34904 -host_os = @host_os@
34905 -host_vendor = @host_vendor@
34906 -includedir = @includedir@
34907 -infodir = @infodir@
34908 -install_sh = @install_sh@
34910 -libexecdir = @libexecdir@
34911 -localstatedir = @localstatedir@
34913 -mkdir_p = @mkdir_p@
34914 -oldincludedir = @oldincludedir@
34916 -program_transform_name = @program_transform_name@
34917 -sbindir = @sbindir@
34918 -sharedstatedir = @sharedstatedir@
34919 -sysconfdir = @sysconfdir@
34920 -target_alias = @target_alias@
34921 -nodist_pkglib_DATA = stage1
34922 -CLEANFILES = $(nodist_pkglib_DATA)
34924 -# We can't use builtins or standard includes.
34925 -AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc
34926 -stage1_exec_SOURCES = stage1.S stage1.h
34931 -.SUFFIXES: .exec .S .o .obj
34932 -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
34933 - @for dep in $?; do \
34934 - case '$(am__configure_deps)' in \
34936 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
34941 - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu stage1/Makefile'; \
34942 - cd $(top_srcdir) && \
34943 - $(AUTOMAKE) --gnu stage1/Makefile
34944 -.PRECIOUS: Makefile
34945 -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
34947 - *config.status*) \
34948 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
34950 - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
34951 - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
34954 -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
34955 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
34957 -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
34958 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
34959 -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
34960 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
34962 -clean-noinstPROGRAMS:
34963 - -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
34964 -stage1.exec$(EXEEXT): $(stage1_exec_OBJECTS) $(stage1_exec_DEPENDENCIES)
34965 - @rm -f stage1.exec$(EXEEXT)
34966 - $(LINK) $(stage1_exec_LDFLAGS) $(stage1_exec_OBJECTS) $(stage1_exec_LDADD) $(LIBS)
34968 -mostlyclean-compile:
34969 - -rm -f *.$(OBJEXT)
34971 -distclean-compile:
34975 - $(CCASCOMPILE) -c $<
34978 - $(CCASCOMPILE) -c `$(CYGPATH_W) '$<'`
34979 -uninstall-info-am:
34980 -install-nodist_pkglibDATA: $(nodist_pkglib_DATA)
34981 - @$(NORMAL_INSTALL)
34982 - test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)"
34983 - @list='$(nodist_pkglib_DATA)'; for p in $$list; do \
34984 - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
34985 - f=$(am__strip_dir) \
34986 - echo " $(nodist_pkglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
34987 - $(nodist_pkglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \
34990 -uninstall-nodist_pkglibDATA:
34991 - @$(NORMAL_UNINSTALL)
34992 - @list='$(nodist_pkglib_DATA)'; for p in $$list; do \
34993 - f=$(am__strip_dir) \
34994 - echo " rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
34995 - rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
34998 -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
34999 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
35000 - unique=`for i in $$list; do \
35001 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
35003 - $(AWK) ' { files[$$0] = 1; } \
35004 - END { for (i in files) print i; }'`; \
35005 - mkid -fID $$unique
35008 -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
35009 - $(TAGS_FILES) $(LISP)
35012 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
35013 - unique=`for i in $$list; do \
35014 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
35016 - $(AWK) ' { files[$$0] = 1; } \
35017 - END { for (i in files) print i; }'`; \
35018 - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
35019 - test -n "$$unique" || unique=$$empty_fix; \
35020 - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
35021 - $$tags $$unique; \
35024 -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
35025 - $(TAGS_FILES) $(LISP)
35028 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
35029 - unique=`for i in $$list; do \
35030 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
35032 - $(AWK) ' { files[$$0] = 1; } \
35033 - END { for (i in files) print i; }'`; \
35034 - test -z "$(CTAGS_ARGS)$$tags$$unique" \
35035 - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
35039 - here=`$(am__cd) $(top_builddir) && pwd` \
35040 - && cd $(top_srcdir) \
35041 - && gtags -i $(GTAGS_ARGS) $$here
35044 - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
35046 -distdir: $(DISTFILES)
35047 - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
35048 - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
35049 - list='$(DISTFILES)'; for file in $$list; do \
35051 - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
35052 - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
35054 - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
35055 - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
35056 - if test "$$dir" != "$$file" && test "$$dir" != "."; then \
35058 - $(mkdir_p) "$(distdir)$$dir"; \
35062 - if test -d $$d/$$file; then \
35063 - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
35064 - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
35066 - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
35068 - test -f $(distdir)/$$file \
35069 - || cp -p $$d/$$file $(distdir)/$$file \
35075 -all-am: Makefile $(PROGRAMS) $(DATA)
35077 - for dir in "$(DESTDIR)$(pkglibdir)"; do \
35078 - test -z "$$dir" || $(mkdir_p) "$$dir"; \
35080 -install: install-am
35081 -install-exec: install-exec-am
35082 -install-data: install-data-am
35083 -uninstall: uninstall-am
35085 -install-am: all-am
35086 - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
35088 -installcheck: installcheck-am
35090 - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
35091 - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
35092 - `test -z '$(STRIP)' || \
35093 - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
35094 -mostlyclean-generic:
35097 - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
35099 -distclean-generic:
35100 - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
35102 -maintainer-clean-generic:
35103 - @echo "This command is intended for maintainers to use"
35104 - @echo "it deletes files that may require special tools to rebuild."
35107 -clean-am: clean-generic clean-noinstPROGRAMS mostlyclean-am
35109 -distclean: distclean-am
35111 -distclean-am: clean-am distclean-compile distclean-generic \
35126 -install-exec-am: install-nodist_pkglibDATA
35128 -install-info: install-info-am
35134 -maintainer-clean: maintainer-clean-am
35136 -maintainer-clean-am: distclean-am maintainer-clean-generic
35138 -mostlyclean: mostlyclean-am
35140 -mostlyclean-am: mostlyclean-compile mostlyclean-generic
35150 -uninstall-am: uninstall-info-am uninstall-nodist_pkglibDATA
35152 -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
35153 - clean-noinstPROGRAMS ctags distclean distclean-compile \
35154 - distclean-generic distclean-tags distdir dvi dvi-am html \
35155 - html-am info info-am install install-am install-data \
35156 - install-data-am install-exec install-exec-am install-info \
35157 - install-info-am install-man install-nodist_pkglibDATA \
35158 - install-strip installcheck installcheck-am installdirs \
35159 - maintainer-clean maintainer-clean-generic mostlyclean \
35160 - mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
35161 - tags uninstall uninstall-am uninstall-info-am \
35162 - uninstall-nodist_pkglibDATA
35165 - $(OBJCOPY) -O binary $< $@
35166 -# Tell versions [3.59,3.63) of GNU make to not export all variables.
35167 -# Otherwise a system limit (for SysV at least) may be exceeded.
35169 diff --git a/stage1/stage1.S b/stage1/stage1.S
35170 index 985963d..3a896be 100644
35171 --- a/stage1/stage1.S
35172 +++ b/stage1/stage1.S
35175 /* Print message string */
35176 #define MSG(x) movw $ABS(x), %si; call message
35177 + /* Print verbose message string */
35180 /* XXX: binutils-2.9.1.0.x doesn't produce a short opcode for this. */
35181 #define MOV_MEM_TO_AL(x) .byte 0xa0; .word x
35182 @@ -151,7 +153,7 @@ real_start:
35185 /* print a notification message on the screen */
35186 - MSG(notification_string)
35187 + VMSG(notification_string)
35189 /* do not probe LBA if the drive is a floppy */
35190 testb $STAGE1_BIOS_HD_FLAG, %dl
35191 diff --git a/stage2/.gitignore b/stage2/.gitignore
35192 new file mode 100644
35193 index 0000000..e0480a0
35195 +++ b/stage2/.gitignore
35202 diff --git a/stage2/Makefile.am b/stage2/Makefile.am
35203 index f8e6d42..04ff165 100644
35204 --- a/stage2/Makefile.am
35205 +++ b/stage2/Makefile.am
35206 @@ -7,19 +7,23 @@ noinst_HEADERS = apic.h defs.h dir.h disk_inode.h disk_inode_ffs.h \
35207 fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
35208 imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \
35209 nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \
35210 - terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h
35211 + terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h graphics.h gpt.h
35212 EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS)
35215 -INCLUDES = -I$(top_srcdir)/stage1
35216 +INCLUDES = -I$(top_srcdir)/stage1 -I$(top_srcdir)/efi
35218 # The library for /sbin/grub.
35220 +noinst_LIBRARIES = libgrub.a libstage2.a
35222 noinst_LIBRARIES = libgrub.a
35224 libgrub_a_SOURCES = boot.c builtins.c char_io.c cmdline.c common.c \
35225 disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \
35226 - fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \
35227 - fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \
35228 - terminfo.c tparm.c
35229 + fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_uefi.c fsys_ufs2.c \
35230 + fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c sha256crypt.c \
35231 + sha512crypt.c stage2.c terminfo.c tparm.c graphics.c efistubs.c
35232 libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
35233 -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
35234 -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
35235 @@ -27,12 +31,14 @@ libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
35236 -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1
35238 # Stage 2 and Stage 1.5's.
35239 -pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
35240 +pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
35244 EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec
35246 if DISKLESS_SUPPORT
35247 -pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
35248 +pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
35249 ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
35250 reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 \
35252 @@ -43,7 +49,7 @@ noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \
35253 reiserfs_stage1_5.exec ufs2_stage1_5.exec vstafs_stage1_5.exec \
35254 xfs_stage1_5.exec nbloader.exec pxeloader.exec diskless.exec
35256 -pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
35257 +pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
35258 ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
35259 reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5
35260 noinst_DATA = pre_stage2 start start_eltorito
35261 @@ -55,11 +61,13 @@ noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \
35263 MOSTLYCLEANFILES = $(noinst_PROGRAMS)
35265 -PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200
35266 -START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000
35267 -NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0
35268 -PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
35269 -START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
35272 +PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200 $(LOADER_LDFLAGS)
35273 +START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000 $(LOADER_LDFLAGS)
35274 +NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0 $(LOADER_LDFLAGS)
35275 +PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 $(LOADER_LDFLAGS)
35276 +START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 $(LOADER_LDFLAGS)
35279 NETBOOT_FLAGS = -I$(top_srcdir)/netboot -DSUPPORT_NETBOOT=1
35280 @@ -79,10 +87,25 @@ else
35284 +if GRAPHICS_SUPPORT
35285 +GRAPHICS_FLAGS = -DSUPPORT_GRAPHICS=1
35290 STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
35291 - $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS)
35292 + $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) $(GRAPHICS_FLAGS)
35294 +libstage2_a_SOURCES = boot.c builtins.c char_io.c cmdline.c common.c \
35295 + disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \
35296 + fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_uefi.c fsys_ufs2.c \
35297 + fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c sha256crypt.c \
35298 + sha512crypt.c stage2.c terminfo.c tparm.c efistubs.c
35299 +libstage2_a_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
35301 -STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000
35304 +STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000 $(LOADER_LDFLAGS)
35305 STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1
35307 # For stage2 target.
35308 @@ -90,13 +113,15 @@ pre_stage2_exec_SOURCES = asm.S bios.c boot.c builtins.c char_io.c \
35309 cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \
35310 fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \
35311 fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \
35312 - hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c
35313 + hercules.c md5.c serial.c smp-imps.c sha256crypt.c sha512crypt.c \
35314 + stage2.c terminfo.c tparm.c graphics.c
35315 pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
35316 pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
35317 pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK)
35319 +pre_stage2_exec_LDADD = @LIBGCC@
35321 -pre_stage2_exec_LDADD = ../netboot/libdrivers.a
35322 +pre_stage2_exec_LDADD += ../netboot/libdrivers.a
35325 if DISKLESS_SUPPORT
35326 @@ -105,7 +130,7 @@ else
35327 BUILT_SOURCES = stage2_size.h
35330 -CLEANFILES = $(pkglib_DATA) $(noinst_DATA) $(BUILT_SOURCES)
35331 +CLEANFILES = $(pkgdata_DATA) $(noinst_DATA) $(BUILT_SOURCES)
35333 stage2_size.h: pre_stage2
35334 -rm -f stage2_size.h
35335 @@ -115,6 +140,7 @@ stage2_size.h: pre_stage2
35336 start_exec_SOURCES = start.S
35337 start_exec_CCASFLAGS = $(STAGE2_COMPILE)
35338 start_exec_LDFLAGS = $(START_LINK)
35339 +start_exec_LDADD = @LIBGCC@
35341 # XXX: automake doesn't provide a way to specify dependencies for object
35342 # files explicitly, so we must write this by a general Makefile scheme.
35343 @@ -129,6 +155,7 @@ stage2: pre_stage2 start
35344 start_eltorito_exec_SOURCES = start_eltorito.S
35345 start_eltorito_exec_CCASFLAGS = $(STAGE2_COMPILE)
35346 start_eltorito_exec_LDFLAGS = $(START_ELTORITO_LINK)
35347 +start_eltorito_exec_LDADD = @LIBGCC@
35349 start_eltorito_exec-start.$(OBJEXT): stage2_size.h
35351 @@ -144,6 +171,7 @@ e2fs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \
35352 e2fs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \
35354 e2fs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
35355 +e2fs_stage1_5_exec_LDADD = @LIBGCC@
35357 # For fat_stage1_5 target.
35358 fat_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
35359 @@ -153,6 +181,7 @@ fat_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \
35360 fat_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \
35362 fat_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
35363 +fat_stage1_5_exec_LDADD = @LIBGCC@
35365 # For ffs_stage1_5 target.
35366 ffs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
35367 @@ -162,6 +191,7 @@ ffs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \
35368 ffs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \
35370 ffs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
35371 +ffs_stage1_5_exec_LDADD = @LIBGCC@
35373 # For ufs2_stage1_5 target.
35374 ufs2_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
35375 @@ -171,6 +201,7 @@ ufs2_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS2=1 \
35376 ufs2_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS2=1 \
35378 ufs2_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
35379 +ufs2_stage1_5_exec_LDADD = @LIBGCC@
35381 # For minix_stage1_5 target.
35382 minix_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
35383 @@ -180,6 +211,7 @@ minix_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \
35384 minix_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \
35386 minix_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
35387 +minix_stage1_5_exec_LDADD = @LIBGCC@
35389 # For reiserfs_stage1_5 target.
35390 reiserfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
35391 @@ -189,6 +221,7 @@ reiserfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \
35392 reiserfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \
35394 reiserfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
35395 +reiserfs_stage1_5_exec_LDADD = @LIBGCC@
35397 # For vstafs_stage1_5 target.
35398 vstafs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
35399 @@ -198,6 +231,7 @@ vstafs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \
35400 vstafs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \
35402 vstafs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
35403 +vstafs_stage1_5_exec_LDADD = @LIBGCC@
35405 # For jfs_stage1_5 target.
35406 jfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
35407 @@ -207,6 +241,7 @@ jfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
35408 jfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
35410 jfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
35411 +jfs_stage1_5_exec_LDADD = @LIBGCC@
35413 # For xfs_stage1_5 target.
35414 xfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
35415 @@ -216,6 +251,7 @@ xfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
35416 xfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
35418 xfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
35419 +xfs_stage1_5_exec_LDADD = @LIBGCC@
35421 # For iso9660_stage1_5 target.
35422 iso9660_stage1_5_exec_SOURCES = start_eltorito.S asm.S common.c char_io.c \
35423 @@ -225,6 +261,7 @@ iso9660_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \
35424 iso9660_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \
35426 iso9660_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
35427 +iso9660_stage1_5_exec_LDADD = @LIBGCC@
35429 # For diskless target.
35430 diskless_exec_SOURCES = $(pre_stage2_exec_SOURCES)
35431 @@ -233,7 +270,7 @@ diskless_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \
35432 diskless_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \
35433 -DSUPPORT_DISKLESS=1
35434 diskless_exec_LDFLAGS = $(PRE_STAGE2_LINK)
35435 -diskless_exec_LDADD = ../netboot/libdrivers.a
35436 +diskless_exec_LDADD = ../netboot/libdrivers.a @LIBGCC@
35438 diskless_size.h: diskless
35440 @@ -270,3 +307,5 @@ pxegrub: pxeloader diskless
35443 $(OBJCOPY) -O binary $< $@
35446 diff --git a/stage2/Makefile.in b/stage2/Makefile.in
35447 deleted file mode 100644
35448 index d0062bd..0000000
35449 --- a/stage2/Makefile.in
35452 -# Makefile.in generated by automake 1.9.4 from Makefile.am.
35453 -# @configure_input@
35455 -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
35456 -# 2003, 2004 Free Software Foundation, Inc.
35457 -# This Makefile.in is free software; the Free Software Foundation
35458 -# gives unlimited permission to copy and/or distribute it,
35459 -# with or without modifications, as long as this notice is preserved.
35461 -# This program is distributed in the hope that it will be useful,
35462 -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
35463 -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
35464 -# PARTICULAR PURPOSE.
35472 -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)
35475 -top_srcdir = @top_srcdir@
35477 -pkgdatadir = $(datadir)/@PACKAGE@
35478 -pkgincludedir = $(includedir)/@PACKAGE@
35480 -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
35481 -INSTALL = @INSTALL@
35482 -install_sh_DATA = $(install_sh) -c -m 644
35483 -install_sh_PROGRAM = $(install_sh) -c
35484 -install_sh_SCRIPT = $(install_sh) -c
35485 -INSTALL_HEADER = $(INSTALL_DATA)
35486 -transform = $(program_transform_name)
35487 -NORMAL_INSTALL = :
35490 -NORMAL_UNINSTALL = :
35492 -POST_UNINSTALL = :
35493 -build_triplet = @build@
35494 -host_triplet = @host@
35495 -EXTRA_PROGRAMS = nbloader.exec$(EXEEXT) pxeloader.exec$(EXEEXT) \
35496 - diskless.exec$(EXEEXT)
35497 -@DISKLESS_SUPPORT_FALSE@noinst_PROGRAMS = pre_stage2.exec$(EXEEXT) \
35498 -@DISKLESS_SUPPORT_FALSE@ start.exec$(EXEEXT) \
35499 -@DISKLESS_SUPPORT_FALSE@ start_eltorito.exec$(EXEEXT) \
35500 -@DISKLESS_SUPPORT_FALSE@ e2fs_stage1_5.exec$(EXEEXT) \
35501 -@DISKLESS_SUPPORT_FALSE@ fat_stage1_5.exec$(EXEEXT) \
35502 -@DISKLESS_SUPPORT_FALSE@ ffs_stage1_5.exec$(EXEEXT) \
35503 -@DISKLESS_SUPPORT_FALSE@ iso9660_stage1_5.exec$(EXEEXT) \
35504 -@DISKLESS_SUPPORT_FALSE@ jfs_stage1_5.exec$(EXEEXT) \
35505 -@DISKLESS_SUPPORT_FALSE@ minix_stage1_5.exec$(EXEEXT) \
35506 -@DISKLESS_SUPPORT_FALSE@ reiserfs_stage1_5.exec$(EXEEXT) \
35507 -@DISKLESS_SUPPORT_FALSE@ ufs2_stage1_5.exec$(EXEEXT) \
35508 -@DISKLESS_SUPPORT_FALSE@ vstafs_stage1_5.exec$(EXEEXT) \
35509 -@DISKLESS_SUPPORT_FALSE@ xfs_stage1_5.exec$(EXEEXT)
35510 -@DISKLESS_SUPPORT_TRUE@noinst_PROGRAMS = pre_stage2.exec$(EXEEXT) \
35511 -@DISKLESS_SUPPORT_TRUE@ start.exec$(EXEEXT) \
35512 -@DISKLESS_SUPPORT_TRUE@ start_eltorito.exec$(EXEEXT) \
35513 -@DISKLESS_SUPPORT_TRUE@ e2fs_stage1_5.exec$(EXEEXT) \
35514 -@DISKLESS_SUPPORT_TRUE@ fat_stage1_5.exec$(EXEEXT) \
35515 -@DISKLESS_SUPPORT_TRUE@ ffs_stage1_5.exec$(EXEEXT) \
35516 -@DISKLESS_SUPPORT_TRUE@ iso9660_stage1_5.exec$(EXEEXT) \
35517 -@DISKLESS_SUPPORT_TRUE@ jfs_stage1_5.exec$(EXEEXT) \
35518 -@DISKLESS_SUPPORT_TRUE@ minix_stage1_5.exec$(EXEEXT) \
35519 -@DISKLESS_SUPPORT_TRUE@ reiserfs_stage1_5.exec$(EXEEXT) \
35520 -@DISKLESS_SUPPORT_TRUE@ ufs2_stage1_5.exec$(EXEEXT) \
35521 -@DISKLESS_SUPPORT_TRUE@ vstafs_stage1_5.exec$(EXEEXT) \
35522 -@DISKLESS_SUPPORT_TRUE@ xfs_stage1_5.exec$(EXEEXT) \
35523 -@DISKLESS_SUPPORT_TRUE@ nbloader.exec$(EXEEXT) \
35524 -@DISKLESS_SUPPORT_TRUE@ pxeloader.exec$(EXEEXT) \
35525 -@DISKLESS_SUPPORT_TRUE@ diskless.exec$(EXEEXT)
35527 -DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
35528 - $(srcdir)/Makefile.in
35529 -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
35530 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
35531 - $(top_srcdir)/configure.ac
35532 -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
35534 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
35535 -CONFIG_HEADER = $(top_builddir)/config.h
35536 -CONFIG_CLEAN_FILES =
35537 -LIBRARIES = $(noinst_LIBRARIES)
35540 -libgrub_a_AR = $(AR) $(ARFLAGS)
35541 -libgrub_a_LIBADD =
35542 -am_libgrub_a_OBJECTS = libgrub_a-boot.$(OBJEXT) \
35543 - libgrub_a-builtins.$(OBJEXT) libgrub_a-char_io.$(OBJEXT) \
35544 - libgrub_a-cmdline.$(OBJEXT) libgrub_a-common.$(OBJEXT) \
35545 - libgrub_a-disk_io.$(OBJEXT) libgrub_a-fsys_ext2fs.$(OBJEXT) \
35546 - libgrub_a-fsys_fat.$(OBJEXT) libgrub_a-fsys_ffs.$(OBJEXT) \
35547 - libgrub_a-fsys_iso9660.$(OBJEXT) libgrub_a-fsys_jfs.$(OBJEXT) \
35548 - libgrub_a-fsys_minix.$(OBJEXT) \
35549 - libgrub_a-fsys_reiserfs.$(OBJEXT) \
35550 - libgrub_a-fsys_ufs2.$(OBJEXT) libgrub_a-fsys_vstafs.$(OBJEXT) \
35551 - libgrub_a-fsys_xfs.$(OBJEXT) libgrub_a-gunzip.$(OBJEXT) \
35552 - libgrub_a-md5.$(OBJEXT) libgrub_a-serial.$(OBJEXT) \
35553 - libgrub_a-stage2.$(OBJEXT) libgrub_a-terminfo.$(OBJEXT) \
35554 - libgrub_a-tparm.$(OBJEXT)
35555 -libgrub_a_OBJECTS = $(am_libgrub_a_OBJECTS)
35556 -PROGRAMS = $(noinst_PROGRAMS)
35557 -am__objects_1 = diskless_exec-asm.$(OBJEXT) \
35558 - diskless_exec-bios.$(OBJEXT) diskless_exec-boot.$(OBJEXT) \
35559 - diskless_exec-builtins.$(OBJEXT) \
35560 - diskless_exec-char_io.$(OBJEXT) \
35561 - diskless_exec-cmdline.$(OBJEXT) diskless_exec-common.$(OBJEXT) \
35562 - diskless_exec-console.$(OBJEXT) \
35563 - diskless_exec-disk_io.$(OBJEXT) \
35564 - diskless_exec-fsys_ext2fs.$(OBJEXT) \
35565 - diskless_exec-fsys_fat.$(OBJEXT) \
35566 - diskless_exec-fsys_ffs.$(OBJEXT) \
35567 - diskless_exec-fsys_iso9660.$(OBJEXT) \
35568 - diskless_exec-fsys_jfs.$(OBJEXT) \
35569 - diskless_exec-fsys_minix.$(OBJEXT) \
35570 - diskless_exec-fsys_reiserfs.$(OBJEXT) \
35571 - diskless_exec-fsys_ufs2.$(OBJEXT) \
35572 - diskless_exec-fsys_vstafs.$(OBJEXT) \
35573 - diskless_exec-fsys_xfs.$(OBJEXT) \
35574 - diskless_exec-gunzip.$(OBJEXT) \
35575 - diskless_exec-hercules.$(OBJEXT) diskless_exec-md5.$(OBJEXT) \
35576 - diskless_exec-serial.$(OBJEXT) \
35577 - diskless_exec-smp-imps.$(OBJEXT) \
35578 - diskless_exec-stage2.$(OBJEXT) \
35579 - diskless_exec-terminfo.$(OBJEXT) diskless_exec-tparm.$(OBJEXT)
35580 -am_diskless_exec_OBJECTS = $(am__objects_1)
35581 -diskless_exec_OBJECTS = $(am_diskless_exec_OBJECTS)
35582 -diskless_exec_DEPENDENCIES = ../netboot/libdrivers.a
35583 -am_e2fs_stage1_5_exec_OBJECTS = e2fs_stage1_5_exec-start.$(OBJEXT) \
35584 - e2fs_stage1_5_exec-asm.$(OBJEXT) \
35585 - e2fs_stage1_5_exec-common.$(OBJEXT) \
35586 - e2fs_stage1_5_exec-char_io.$(OBJEXT) \
35587 - e2fs_stage1_5_exec-disk_io.$(OBJEXT) \
35588 - e2fs_stage1_5_exec-stage1_5.$(OBJEXT) \
35589 - e2fs_stage1_5_exec-fsys_ext2fs.$(OBJEXT) \
35590 - e2fs_stage1_5_exec-bios.$(OBJEXT)
35591 -e2fs_stage1_5_exec_OBJECTS = $(am_e2fs_stage1_5_exec_OBJECTS)
35592 -e2fs_stage1_5_exec_LDADD = $(LDADD)
35593 -am_fat_stage1_5_exec_OBJECTS = fat_stage1_5_exec-start.$(OBJEXT) \
35594 - fat_stage1_5_exec-asm.$(OBJEXT) \
35595 - fat_stage1_5_exec-common.$(OBJEXT) \
35596 - fat_stage1_5_exec-char_io.$(OBJEXT) \
35597 - fat_stage1_5_exec-disk_io.$(OBJEXT) \
35598 - fat_stage1_5_exec-stage1_5.$(OBJEXT) \
35599 - fat_stage1_5_exec-fsys_fat.$(OBJEXT) \
35600 - fat_stage1_5_exec-bios.$(OBJEXT)
35601 -fat_stage1_5_exec_OBJECTS = $(am_fat_stage1_5_exec_OBJECTS)
35602 -fat_stage1_5_exec_LDADD = $(LDADD)
35603 -am_ffs_stage1_5_exec_OBJECTS = ffs_stage1_5_exec-start.$(OBJEXT) \
35604 - ffs_stage1_5_exec-asm.$(OBJEXT) \
35605 - ffs_stage1_5_exec-common.$(OBJEXT) \
35606 - ffs_stage1_5_exec-char_io.$(OBJEXT) \
35607 - ffs_stage1_5_exec-disk_io.$(OBJEXT) \
35608 - ffs_stage1_5_exec-stage1_5.$(OBJEXT) \
35609 - ffs_stage1_5_exec-fsys_ffs.$(OBJEXT) \
35610 - ffs_stage1_5_exec-bios.$(OBJEXT)
35611 -ffs_stage1_5_exec_OBJECTS = $(am_ffs_stage1_5_exec_OBJECTS)
35612 -ffs_stage1_5_exec_LDADD = $(LDADD)
35613 -am_iso9660_stage1_5_exec_OBJECTS = \
35614 - iso9660_stage1_5_exec-start_eltorito.$(OBJEXT) \
35615 - iso9660_stage1_5_exec-asm.$(OBJEXT) \
35616 - iso9660_stage1_5_exec-common.$(OBJEXT) \
35617 - iso9660_stage1_5_exec-char_io.$(OBJEXT) \
35618 - iso9660_stage1_5_exec-disk_io.$(OBJEXT) \
35619 - iso9660_stage1_5_exec-stage1_5.$(OBJEXT) \
35620 - iso9660_stage1_5_exec-fsys_iso9660.$(OBJEXT) \
35621 - iso9660_stage1_5_exec-bios.$(OBJEXT)
35622 -iso9660_stage1_5_exec_OBJECTS = $(am_iso9660_stage1_5_exec_OBJECTS)
35623 -iso9660_stage1_5_exec_LDADD = $(LDADD)
35624 -am_jfs_stage1_5_exec_OBJECTS = jfs_stage1_5_exec-start.$(OBJEXT) \
35625 - jfs_stage1_5_exec-asm.$(OBJEXT) \
35626 - jfs_stage1_5_exec-common.$(OBJEXT) \
35627 - jfs_stage1_5_exec-char_io.$(OBJEXT) \
35628 - jfs_stage1_5_exec-disk_io.$(OBJEXT) \
35629 - jfs_stage1_5_exec-stage1_5.$(OBJEXT) \
35630 - jfs_stage1_5_exec-fsys_jfs.$(OBJEXT) \
35631 - jfs_stage1_5_exec-bios.$(OBJEXT)
35632 -jfs_stage1_5_exec_OBJECTS = $(am_jfs_stage1_5_exec_OBJECTS)
35633 -jfs_stage1_5_exec_LDADD = $(LDADD)
35634 -am_minix_stage1_5_exec_OBJECTS = minix_stage1_5_exec-start.$(OBJEXT) \
35635 - minix_stage1_5_exec-asm.$(OBJEXT) \
35636 - minix_stage1_5_exec-common.$(OBJEXT) \
35637 - minix_stage1_5_exec-char_io.$(OBJEXT) \
35638 - minix_stage1_5_exec-disk_io.$(OBJEXT) \
35639 - minix_stage1_5_exec-stage1_5.$(OBJEXT) \
35640 - minix_stage1_5_exec-fsys_minix.$(OBJEXT) \
35641 - minix_stage1_5_exec-bios.$(OBJEXT)
35642 -minix_stage1_5_exec_OBJECTS = $(am_minix_stage1_5_exec_OBJECTS)
35643 -minix_stage1_5_exec_LDADD = $(LDADD)
35644 -am_nbloader_exec_OBJECTS = nbloader_exec-nbloader.$(OBJEXT)
35645 -nbloader_exec_OBJECTS = $(am_nbloader_exec_OBJECTS)
35646 -nbloader_exec_LDADD = $(LDADD)
35647 -am_pre_stage2_exec_OBJECTS = pre_stage2_exec-asm.$(OBJEXT) \
35648 - pre_stage2_exec-bios.$(OBJEXT) pre_stage2_exec-boot.$(OBJEXT) \
35649 - pre_stage2_exec-builtins.$(OBJEXT) \
35650 - pre_stage2_exec-char_io.$(OBJEXT) \
35651 - pre_stage2_exec-cmdline.$(OBJEXT) \
35652 - pre_stage2_exec-common.$(OBJEXT) \
35653 - pre_stage2_exec-console.$(OBJEXT) \
35654 - pre_stage2_exec-disk_io.$(OBJEXT) \
35655 - pre_stage2_exec-fsys_ext2fs.$(OBJEXT) \
35656 - pre_stage2_exec-fsys_fat.$(OBJEXT) \
35657 - pre_stage2_exec-fsys_ffs.$(OBJEXT) \
35658 - pre_stage2_exec-fsys_iso9660.$(OBJEXT) \
35659 - pre_stage2_exec-fsys_jfs.$(OBJEXT) \
35660 - pre_stage2_exec-fsys_minix.$(OBJEXT) \
35661 - pre_stage2_exec-fsys_reiserfs.$(OBJEXT) \
35662 - pre_stage2_exec-fsys_ufs2.$(OBJEXT) \
35663 - pre_stage2_exec-fsys_vstafs.$(OBJEXT) \
35664 - pre_stage2_exec-fsys_xfs.$(OBJEXT) \
35665 - pre_stage2_exec-gunzip.$(OBJEXT) \
35666 - pre_stage2_exec-hercules.$(OBJEXT) \
35667 - pre_stage2_exec-md5.$(OBJEXT) pre_stage2_exec-serial.$(OBJEXT) \
35668 - pre_stage2_exec-smp-imps.$(OBJEXT) \
35669 - pre_stage2_exec-stage2.$(OBJEXT) \
35670 - pre_stage2_exec-terminfo.$(OBJEXT) \
35671 - pre_stage2_exec-tparm.$(OBJEXT)
35672 -pre_stage2_exec_OBJECTS = $(am_pre_stage2_exec_OBJECTS)
35673 -@NETBOOT_SUPPORT_TRUE@pre_stage2_exec_DEPENDENCIES = \
35674 -@NETBOOT_SUPPORT_TRUE@ ../netboot/libdrivers.a
35675 -am_pxeloader_exec_OBJECTS = pxeloader_exec-pxeloader.$(OBJEXT)
35676 -pxeloader_exec_OBJECTS = $(am_pxeloader_exec_OBJECTS)
35677 -pxeloader_exec_LDADD = $(LDADD)
35678 -am_reiserfs_stage1_5_exec_OBJECTS = \
35679 - reiserfs_stage1_5_exec-start.$(OBJEXT) \
35680 - reiserfs_stage1_5_exec-asm.$(OBJEXT) \
35681 - reiserfs_stage1_5_exec-common.$(OBJEXT) \
35682 - reiserfs_stage1_5_exec-char_io.$(OBJEXT) \
35683 - reiserfs_stage1_5_exec-disk_io.$(OBJEXT) \
35684 - reiserfs_stage1_5_exec-stage1_5.$(OBJEXT) \
35685 - reiserfs_stage1_5_exec-fsys_reiserfs.$(OBJEXT) \
35686 - reiserfs_stage1_5_exec-bios.$(OBJEXT)
35687 -reiserfs_stage1_5_exec_OBJECTS = $(am_reiserfs_stage1_5_exec_OBJECTS)
35688 -reiserfs_stage1_5_exec_LDADD = $(LDADD)
35689 -am_start_exec_OBJECTS = start_exec-start.$(OBJEXT)
35690 -start_exec_OBJECTS = $(am_start_exec_OBJECTS)
35691 -start_exec_LDADD = $(LDADD)
35692 -am_start_eltorito_exec_OBJECTS = \
35693 - start_eltorito_exec-start_eltorito.$(OBJEXT)
35694 -start_eltorito_exec_OBJECTS = $(am_start_eltorito_exec_OBJECTS)
35695 -start_eltorito_exec_LDADD = $(LDADD)
35696 -am_ufs2_stage1_5_exec_OBJECTS = ufs2_stage1_5_exec-start.$(OBJEXT) \
35697 - ufs2_stage1_5_exec-asm.$(OBJEXT) \
35698 - ufs2_stage1_5_exec-common.$(OBJEXT) \
35699 - ufs2_stage1_5_exec-char_io.$(OBJEXT) \
35700 - ufs2_stage1_5_exec-disk_io.$(OBJEXT) \
35701 - ufs2_stage1_5_exec-stage1_5.$(OBJEXT) \
35702 - ufs2_stage1_5_exec-fsys_ufs2.$(OBJEXT) \
35703 - ufs2_stage1_5_exec-bios.$(OBJEXT)
35704 -ufs2_stage1_5_exec_OBJECTS = $(am_ufs2_stage1_5_exec_OBJECTS)
35705 -ufs2_stage1_5_exec_LDADD = $(LDADD)
35706 -am_vstafs_stage1_5_exec_OBJECTS = \
35707 - vstafs_stage1_5_exec-start.$(OBJEXT) \
35708 - vstafs_stage1_5_exec-asm.$(OBJEXT) \
35709 - vstafs_stage1_5_exec-common.$(OBJEXT) \
35710 - vstafs_stage1_5_exec-char_io.$(OBJEXT) \
35711 - vstafs_stage1_5_exec-disk_io.$(OBJEXT) \
35712 - vstafs_stage1_5_exec-stage1_5.$(OBJEXT) \
35713 - vstafs_stage1_5_exec-fsys_vstafs.$(OBJEXT) \
35714 - vstafs_stage1_5_exec-bios.$(OBJEXT)
35715 -vstafs_stage1_5_exec_OBJECTS = $(am_vstafs_stage1_5_exec_OBJECTS)
35716 -vstafs_stage1_5_exec_LDADD = $(LDADD)
35717 -am_xfs_stage1_5_exec_OBJECTS = xfs_stage1_5_exec-start.$(OBJEXT) \
35718 - xfs_stage1_5_exec-asm.$(OBJEXT) \
35719 - xfs_stage1_5_exec-common.$(OBJEXT) \
35720 - xfs_stage1_5_exec-char_io.$(OBJEXT) \
35721 - xfs_stage1_5_exec-disk_io.$(OBJEXT) \
35722 - xfs_stage1_5_exec-stage1_5.$(OBJEXT) \
35723 - xfs_stage1_5_exec-fsys_xfs.$(OBJEXT) \
35724 - xfs_stage1_5_exec-bios.$(OBJEXT)
35725 -xfs_stage1_5_exec_OBJECTS = $(am_xfs_stage1_5_exec_OBJECTS)
35726 -xfs_stage1_5_exec_LDADD = $(LDADD)
35727 -SCRIPTS = $(noinst_SCRIPTS)
35728 -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
35729 -depcomp = $(SHELL) $(top_srcdir)/depcomp
35730 -am__depfiles_maybe = depfiles
35731 -CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS)
35732 -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
35733 - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
35735 -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
35736 -SOURCES = $(libgrub_a_SOURCES) $(diskless_exec_SOURCES) \
35737 - $(e2fs_stage1_5_exec_SOURCES) $(fat_stage1_5_exec_SOURCES) \
35738 - $(ffs_stage1_5_exec_SOURCES) $(iso9660_stage1_5_exec_SOURCES) \
35739 - $(jfs_stage1_5_exec_SOURCES) $(minix_stage1_5_exec_SOURCES) \
35740 - $(nbloader_exec_SOURCES) $(pre_stage2_exec_SOURCES) \
35741 - $(pxeloader_exec_SOURCES) $(reiserfs_stage1_5_exec_SOURCES) \
35742 - $(start_exec_SOURCES) $(start_eltorito_exec_SOURCES) \
35743 - $(ufs2_stage1_5_exec_SOURCES) $(vstafs_stage1_5_exec_SOURCES) \
35744 - $(xfs_stage1_5_exec_SOURCES)
35745 -DIST_SOURCES = $(libgrub_a_SOURCES) $(diskless_exec_SOURCES) \
35746 - $(e2fs_stage1_5_exec_SOURCES) $(fat_stage1_5_exec_SOURCES) \
35747 - $(ffs_stage1_5_exec_SOURCES) $(iso9660_stage1_5_exec_SOURCES) \
35748 - $(jfs_stage1_5_exec_SOURCES) $(minix_stage1_5_exec_SOURCES) \
35749 - $(nbloader_exec_SOURCES) $(pre_stage2_exec_SOURCES) \
35750 - $(pxeloader_exec_SOURCES) $(reiserfs_stage1_5_exec_SOURCES) \
35751 - $(start_exec_SOURCES) $(start_eltorito_exec_SOURCES) \
35752 - $(ufs2_stage1_5_exec_SOURCES) $(vstafs_stage1_5_exec_SOURCES) \
35753 - $(xfs_stage1_5_exec_SOURCES)
35754 -am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
35755 -am__vpath_adj = case $$p in \
35756 - $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
35759 -am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
35760 -am__installdirs = "$(DESTDIR)$(pkglibdir)"
35761 -pkglibDATA_INSTALL = $(INSTALL_DATA)
35762 -DATA = $(noinst_DATA) $(pkglib_DATA)
35763 -HEADERS = $(noinst_HEADERS)
35766 -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
35768 -# Stage 2 and Stage 1.5's.
35769 -pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
35770 -ACLOCAL = @ACLOCAL@
35771 -AMDEP_FALSE = @AMDEP_FALSE@
35772 -AMDEP_TRUE = @AMDEP_TRUE@
35774 -AUTOCONF = @AUTOCONF@
35775 -AUTOHEADER = @AUTOHEADER@
35776 -AUTOMAKE = @AUTOMAKE@
35778 -BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
35779 -BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
35782 -CCASFLAGS = @CCASFLAGS@
35783 -CCDEPMODE = @CCDEPMODE@
35786 -CPPFLAGS = @CPPFLAGS@
35787 -CYGPATH_W = @CYGPATH_W@
35790 -DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
35791 -DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
35797 -FSYS_CFLAGS = @FSYS_CFLAGS@
35798 -GRUB_CFLAGS = @GRUB_CFLAGS@
35799 -GRUB_LIBS = @GRUB_LIBS@
35800 -HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
35801 -HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
35802 -INSTALL_DATA = @INSTALL_DATA@
35803 -INSTALL_PROGRAM = @INSTALL_PROGRAM@
35804 -INSTALL_SCRIPT = @INSTALL_SCRIPT@
35805 -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
35806 -LDFLAGS = @LDFLAGS@
35807 -LIBOBJS = @LIBOBJS@
35809 -LTLIBOBJS = @LTLIBOBJS@
35811 -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
35812 -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
35813 -MAKEINFO = @MAKEINFO@
35814 -NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
35815 -NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
35816 -NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
35817 -NET_CFLAGS = @NET_CFLAGS@
35818 -NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
35819 -OBJCOPY = @OBJCOPY@
35821 -PACKAGE = @PACKAGE@
35822 -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
35823 -PACKAGE_NAME = @PACKAGE_NAME@
35824 -PACKAGE_STRING = @PACKAGE_STRING@
35825 -PACKAGE_TARNAME = @PACKAGE_TARNAME@
35826 -PACKAGE_VERSION = @PACKAGE_VERSION@
35827 -PATH_SEPARATOR = @PATH_SEPARATOR@
35830 -SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
35831 -SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
35832 -SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
35833 -SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
35834 -SET_MAKE = @SET_MAKE@
35836 -STAGE1_CFLAGS = @STAGE1_CFLAGS@
35837 -STAGE2_CFLAGS = @STAGE2_CFLAGS@
35839 -VERSION = @VERSION@
35840 -ac_ct_CC = @ac_ct_CC@
35841 -ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
35842 -ac_ct_RANLIB = @ac_ct_RANLIB@
35843 -ac_ct_STRIP = @ac_ct_STRIP@
35844 -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
35845 -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
35846 -am__include = @am__include@
35847 -am__leading_dot = @am__leading_dot@
35848 -am__quote = @am__quote@
35849 -am__tar = @am__tar@
35850 -am__untar = @am__untar@
35853 -build_alias = @build_alias@
35854 -build_cpu = @build_cpu@
35855 -build_os = @build_os@
35856 -build_vendor = @build_vendor@
35857 -datadir = @datadir@
35858 -exec_prefix = @exec_prefix@
35860 -host_alias = @host_alias@
35861 -host_cpu = @host_cpu@
35862 -host_os = @host_os@
35863 -host_vendor = @host_vendor@
35864 -includedir = @includedir@
35865 -infodir = @infodir@
35866 -install_sh = @install_sh@
35868 -libexecdir = @libexecdir@
35869 -localstatedir = @localstatedir@
35871 -mkdir_p = @mkdir_p@
35872 -oldincludedir = @oldincludedir@
35874 -program_transform_name = @program_transform_name@
35875 -sbindir = @sbindir@
35876 -sharedstatedir = @sharedstatedir@
35877 -sysconfdir = @sysconfdir@
35878 -target_alias = @target_alias@
35880 -# For test target.
35882 -noinst_SCRIPTS = $(TESTS)
35884 -# For dist target.
35885 -noinst_HEADERS = apic.h defs.h dir.h disk_inode.h disk_inode_ffs.h \
35886 - fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
35887 - imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \
35888 - nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \
35889 - terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h
35891 -EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS)
35894 -INCLUDES = -I$(top_srcdir)/stage1
35896 -# The library for /sbin/grub.
35897 -noinst_LIBRARIES = libgrub.a
35898 -libgrub_a_SOURCES = boot.c builtins.c char_io.c cmdline.c common.c \
35899 - disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \
35900 - fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \
35901 - fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \
35902 - terminfo.c tparm.c
35904 -libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
35905 - -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
35906 - -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
35907 - -DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 \
35908 - -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1
35910 -@DISKLESS_SUPPORT_FALSE@pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
35911 -@DISKLESS_SUPPORT_FALSE@ ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
35912 -@DISKLESS_SUPPORT_FALSE@ reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5
35914 -@DISKLESS_SUPPORT_TRUE@pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
35915 -@DISKLESS_SUPPORT_TRUE@ ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
35916 -@DISKLESS_SUPPORT_TRUE@ reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 \
35917 -@DISKLESS_SUPPORT_TRUE@ nbgrub pxegrub
35919 -@DISKLESS_SUPPORT_FALSE@noinst_DATA = pre_stage2 start start_eltorito
35920 -@DISKLESS_SUPPORT_TRUE@noinst_DATA = pre_stage2 start start_eltorito nbloader pxeloader diskless
35921 -MOSTLYCLEANFILES = $(noinst_PROGRAMS)
35922 -PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200
35923 -START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000
35924 -NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0
35925 -PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
35926 -START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
35927 -@NETBOOT_SUPPORT_FALSE@NETBOOT_FLAGS =
35928 -@NETBOOT_SUPPORT_TRUE@NETBOOT_FLAGS = -I$(top_srcdir)/netboot -DSUPPORT_NETBOOT=1
35929 -@SERIAL_SUPPORT_FALSE@SERIAL_FLAGS =
35930 -@SERIAL_SUPPORT_TRUE@SERIAL_FLAGS = -DSUPPORT_SERIAL=1
35931 -@HERCULES_SUPPORT_FALSE@HERCULES_FLAGS =
35932 -@HERCULES_SUPPORT_TRUE@HERCULES_FLAGS = -DSUPPORT_HERCULES=1
35933 -STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
35934 - $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS)
35936 -STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000
35937 -STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1
35939 -# For stage2 target.
35940 -pre_stage2_exec_SOURCES = asm.S bios.c boot.c builtins.c char_io.c \
35941 - cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \
35942 - fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \
35943 - fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \
35944 - hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c
35946 -pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
35947 -pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
35948 -pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK)
35949 -@NETBOOT_SUPPORT_TRUE@pre_stage2_exec_LDADD = ../netboot/libdrivers.a
35950 -@DISKLESS_SUPPORT_FALSE@BUILT_SOURCES = stage2_size.h
35951 -@DISKLESS_SUPPORT_TRUE@BUILT_SOURCES = stage2_size.h diskless_size.h
35952 -CLEANFILES = $(pkglib_DATA) $(noinst_DATA) $(BUILT_SOURCES)
35953 -start_exec_SOURCES = start.S
35954 -start_exec_CCASFLAGS = $(STAGE2_COMPILE)
35955 -start_exec_LDFLAGS = $(START_LINK)
35956 -start_eltorito_exec_SOURCES = start_eltorito.S
35957 -start_eltorito_exec_CCASFLAGS = $(STAGE2_COMPILE)
35958 -start_eltorito_exec_LDFLAGS = $(START_ELTORITO_LINK)
35960 -# For e2fs_stage1_5 target.
35961 -e2fs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
35962 - stage1_5.c fsys_ext2fs.c bios.c
35964 -e2fs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \
35965 - -DNO_BLOCK_FILES=1
35967 -e2fs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \
35968 - -DNO_BLOCK_FILES=1
35970 -e2fs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
35972 -# For fat_stage1_5 target.
35973 -fat_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
35974 - stage1_5.c fsys_fat.c bios.c
35976 -fat_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \
35977 - -DNO_BLOCK_FILES=1
35979 -fat_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \
35980 - -DNO_BLOCK_FILES=1
35982 -fat_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
35984 -# For ffs_stage1_5 target.
35985 -ffs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
35986 - stage1_5.c fsys_ffs.c bios.c
35988 -ffs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \
35989 - -DNO_BLOCK_FILES=1
35991 -ffs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \
35992 - -DNO_BLOCK_FILES=1
35994 -ffs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
35996 -# For ufs2_stage1_5 target.
35997 -ufs2_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
35998 - stage1_5.c fsys_ufs2.c bios.c
36000 -ufs2_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS2=1 \
36001 - -DNO_BLOCK_FILES=1
36003 -ufs2_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS2=1 \
36004 - -DNO_BLOCK_FILES=1
36006 -ufs2_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
36008 -# For minix_stage1_5 target.
36009 -minix_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
36010 - stage1_5.c fsys_minix.c bios.c
36012 -minix_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \
36013 - -DNO_BLOCK_FILES=1
36015 -minix_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \
36016 - -DNO_BLOCK_FILES=1
36018 -minix_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
36020 -# For reiserfs_stage1_5 target.
36021 -reiserfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
36022 - disk_io.c stage1_5.c fsys_reiserfs.c bios.c
36024 -reiserfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \
36025 - -DNO_BLOCK_FILES=1
36027 -reiserfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \
36028 - -DNO_BLOCK_FILES=1
36030 -reiserfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
36032 -# For vstafs_stage1_5 target.
36033 -vstafs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
36034 - disk_io.c stage1_5.c fsys_vstafs.c bios.c
36036 -vstafs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \
36037 - -DNO_BLOCK_FILES=1
36039 -vstafs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \
36040 - -DNO_BLOCK_FILES=1
36042 -vstafs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
36044 -# For jfs_stage1_5 target.
36045 -jfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
36046 - disk_io.c stage1_5.c fsys_jfs.c bios.c
36048 -jfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
36049 - -DNO_BLOCK_FILES=1
36051 -jfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
36052 - -DNO_BLOCK_FILES=1
36054 -jfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
36056 -# For xfs_stage1_5 target.
36057 -xfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
36058 - disk_io.c stage1_5.c fsys_xfs.c bios.c
36060 -xfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
36061 - -DNO_BLOCK_FILES=1
36063 -xfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
36064 - -DNO_BLOCK_FILES=1
36066 -xfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
36068 -# For iso9660_stage1_5 target.
36069 -iso9660_stage1_5_exec_SOURCES = start_eltorito.S asm.S common.c char_io.c \
36070 - disk_io.c stage1_5.c fsys_iso9660.c bios.c
36072 -iso9660_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \
36073 - -DNO_BLOCK_FILES=1
36075 -iso9660_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \
36076 - -DNO_BLOCK_FILES=1
36078 -iso9660_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
36080 -# For diskless target.
36081 -diskless_exec_SOURCES = $(pre_stage2_exec_SOURCES)
36082 -diskless_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \
36083 - -DSUPPORT_DISKLESS=1
36085 -diskless_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \
36086 - -DSUPPORT_DISKLESS=1
36088 -diskless_exec_LDFLAGS = $(PRE_STAGE2_LINK)
36089 -diskless_exec_LDADD = ../netboot/libdrivers.a
36091 -# For nbloader target.
36092 -nbloader_exec_SOURCES = nbloader.S
36093 -nbloader_exec_CCASFLAGS = $(STAGE2_COMPILE)
36094 -nbloader_exec_LDFLAGS = $(NBLOADER_LINK)
36096 -# For pxeloader target.
36097 -pxeloader_exec_SOURCES = pxeloader.S
36098 -pxeloader_exec_CCASFLAGS = $(STAGE2_COMPILE)
36099 -pxeloader_exec_LDFLAGS = $(PXELOADER_LINK)
36101 -# General rule for making a raw binary.
36103 -all: $(BUILT_SOURCES)
36104 - $(MAKE) $(AM_MAKEFLAGS) all-am
36107 -.SUFFIXES: .exec .S .c .o .obj
36108 -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
36109 - @for dep in $?; do \
36110 - case '$(am__configure_deps)' in \
36112 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
36117 - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu stage2/Makefile'; \
36118 - cd $(top_srcdir) && \
36119 - $(AUTOMAKE) --gnu stage2/Makefile
36120 -.PRECIOUS: Makefile
36121 -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
36123 - *config.status*) \
36124 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
36126 - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
36127 - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
36130 -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
36131 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
36133 -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
36134 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
36135 -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
36136 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
36138 -clean-noinstLIBRARIES:
36139 - -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
36140 -libgrub.a: $(libgrub_a_OBJECTS) $(libgrub_a_DEPENDENCIES)
36142 - $(libgrub_a_AR) libgrub.a $(libgrub_a_OBJECTS) $(libgrub_a_LIBADD)
36143 - $(RANLIB) libgrub.a
36145 -clean-noinstPROGRAMS:
36146 - -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
36147 -diskless.exec$(EXEEXT): $(diskless_exec_OBJECTS) $(diskless_exec_DEPENDENCIES)
36148 - @rm -f diskless.exec$(EXEEXT)
36149 - $(LINK) $(diskless_exec_LDFLAGS) $(diskless_exec_OBJECTS) $(diskless_exec_LDADD) $(LIBS)
36150 -e2fs_stage1_5.exec$(EXEEXT): $(e2fs_stage1_5_exec_OBJECTS) $(e2fs_stage1_5_exec_DEPENDENCIES)
36151 - @rm -f e2fs_stage1_5.exec$(EXEEXT)
36152 - $(LINK) $(e2fs_stage1_5_exec_LDFLAGS) $(e2fs_stage1_5_exec_OBJECTS) $(e2fs_stage1_5_exec_LDADD) $(LIBS)
36153 -fat_stage1_5.exec$(EXEEXT): $(fat_stage1_5_exec_OBJECTS) $(fat_stage1_5_exec_DEPENDENCIES)
36154 - @rm -f fat_stage1_5.exec$(EXEEXT)
36155 - $(LINK) $(fat_stage1_5_exec_LDFLAGS) $(fat_stage1_5_exec_OBJECTS) $(fat_stage1_5_exec_LDADD) $(LIBS)
36156 -ffs_stage1_5.exec$(EXEEXT): $(ffs_stage1_5_exec_OBJECTS) $(ffs_stage1_5_exec_DEPENDENCIES)
36157 - @rm -f ffs_stage1_5.exec$(EXEEXT)
36158 - $(LINK) $(ffs_stage1_5_exec_LDFLAGS) $(ffs_stage1_5_exec_OBJECTS) $(ffs_stage1_5_exec_LDADD) $(LIBS)
36159 -iso9660_stage1_5.exec$(EXEEXT): $(iso9660_stage1_5_exec_OBJECTS) $(iso9660_stage1_5_exec_DEPENDENCIES)
36160 - @rm -f iso9660_stage1_5.exec$(EXEEXT)
36161 - $(LINK) $(iso9660_stage1_5_exec_LDFLAGS) $(iso9660_stage1_5_exec_OBJECTS) $(iso9660_stage1_5_exec_LDADD) $(LIBS)
36162 -jfs_stage1_5.exec$(EXEEXT): $(jfs_stage1_5_exec_OBJECTS) $(jfs_stage1_5_exec_DEPENDENCIES)
36163 - @rm -f jfs_stage1_5.exec$(EXEEXT)
36164 - $(LINK) $(jfs_stage1_5_exec_LDFLAGS) $(jfs_stage1_5_exec_OBJECTS) $(jfs_stage1_5_exec_LDADD) $(LIBS)
36165 -minix_stage1_5.exec$(EXEEXT): $(minix_stage1_5_exec_OBJECTS) $(minix_stage1_5_exec_DEPENDENCIES)
36166 - @rm -f minix_stage1_5.exec$(EXEEXT)
36167 - $(LINK) $(minix_stage1_5_exec_LDFLAGS) $(minix_stage1_5_exec_OBJECTS) $(minix_stage1_5_exec_LDADD) $(LIBS)
36168 -nbloader.exec$(EXEEXT): $(nbloader_exec_OBJECTS) $(nbloader_exec_DEPENDENCIES)
36169 - @rm -f nbloader.exec$(EXEEXT)
36170 - $(LINK) $(nbloader_exec_LDFLAGS) $(nbloader_exec_OBJECTS) $(nbloader_exec_LDADD) $(LIBS)
36171 -pre_stage2.exec$(EXEEXT): $(pre_stage2_exec_OBJECTS) $(pre_stage2_exec_DEPENDENCIES)
36172 - @rm -f pre_stage2.exec$(EXEEXT)
36173 - $(LINK) $(pre_stage2_exec_LDFLAGS) $(pre_stage2_exec_OBJECTS) $(pre_stage2_exec_LDADD) $(LIBS)
36174 -pxeloader.exec$(EXEEXT): $(pxeloader_exec_OBJECTS) $(pxeloader_exec_DEPENDENCIES)
36175 - @rm -f pxeloader.exec$(EXEEXT)
36176 - $(LINK) $(pxeloader_exec_LDFLAGS) $(pxeloader_exec_OBJECTS) $(pxeloader_exec_LDADD) $(LIBS)
36177 -reiserfs_stage1_5.exec$(EXEEXT): $(reiserfs_stage1_5_exec_OBJECTS) $(reiserfs_stage1_5_exec_DEPENDENCIES)
36178 - @rm -f reiserfs_stage1_5.exec$(EXEEXT)
36179 - $(LINK) $(reiserfs_stage1_5_exec_LDFLAGS) $(reiserfs_stage1_5_exec_OBJECTS) $(reiserfs_stage1_5_exec_LDADD) $(LIBS)
36180 -start.exec$(EXEEXT): $(start_exec_OBJECTS) $(start_exec_DEPENDENCIES)
36181 - @rm -f start.exec$(EXEEXT)
36182 - $(LINK) $(start_exec_LDFLAGS) $(start_exec_OBJECTS) $(start_exec_LDADD) $(LIBS)
36183 -start_eltorito.exec$(EXEEXT): $(start_eltorito_exec_OBJECTS) $(start_eltorito_exec_DEPENDENCIES)
36184 - @rm -f start_eltorito.exec$(EXEEXT)
36185 - $(LINK) $(start_eltorito_exec_LDFLAGS) $(start_eltorito_exec_OBJECTS) $(start_eltorito_exec_LDADD) $(LIBS)
36186 -ufs2_stage1_5.exec$(EXEEXT): $(ufs2_stage1_5_exec_OBJECTS) $(ufs2_stage1_5_exec_DEPENDENCIES)
36187 - @rm -f ufs2_stage1_5.exec$(EXEEXT)
36188 - $(LINK) $(ufs2_stage1_5_exec_LDFLAGS) $(ufs2_stage1_5_exec_OBJECTS) $(ufs2_stage1_5_exec_LDADD) $(LIBS)
36189 -vstafs_stage1_5.exec$(EXEEXT): $(vstafs_stage1_5_exec_OBJECTS) $(vstafs_stage1_5_exec_DEPENDENCIES)
36190 - @rm -f vstafs_stage1_5.exec$(EXEEXT)
36191 - $(LINK) $(vstafs_stage1_5_exec_LDFLAGS) $(vstafs_stage1_5_exec_OBJECTS) $(vstafs_stage1_5_exec_LDADD) $(LIBS)
36192 -xfs_stage1_5.exec$(EXEEXT): $(xfs_stage1_5_exec_OBJECTS) $(xfs_stage1_5_exec_DEPENDENCIES)
36193 - @rm -f xfs_stage1_5.exec$(EXEEXT)
36194 - $(LINK) $(xfs_stage1_5_exec_LDFLAGS) $(xfs_stage1_5_exec_OBJECTS) $(xfs_stage1_5_exec_LDADD) $(LIBS)
36196 -mostlyclean-compile:
36197 - -rm -f *.$(OBJEXT)
36199 -distclean-compile:
36202 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-bios.Po@am__quote@
36203 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-boot.Po@am__quote@
36204 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-builtins.Po@am__quote@
36205 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-char_io.Po@am__quote@
36206 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-cmdline.Po@am__quote@
36207 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-common.Po@am__quote@
36208 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-console.Po@am__quote@
36209 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-disk_io.Po@am__quote@
36210 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_ext2fs.Po@am__quote@
36211 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_fat.Po@am__quote@
36212 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_ffs.Po@am__quote@
36213 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_iso9660.Po@am__quote@
36214 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_jfs.Po@am__quote@
36215 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_minix.Po@am__quote@
36216 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_reiserfs.Po@am__quote@
36217 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_ufs2.Po@am__quote@
36218 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_vstafs.Po@am__quote@
36219 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_xfs.Po@am__quote@
36220 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-gunzip.Po@am__quote@
36221 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-hercules.Po@am__quote@
36222 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-md5.Po@am__quote@
36223 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-serial.Po@am__quote@
36224 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-smp-imps.Po@am__quote@
36225 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-stage2.Po@am__quote@
36226 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-terminfo.Po@am__quote@
36227 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-tparm.Po@am__quote@
36228 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e2fs_stage1_5_exec-bios.Po@am__quote@
36229 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e2fs_stage1_5_exec-char_io.Po@am__quote@
36230 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e2fs_stage1_5_exec-common.Po@am__quote@
36231 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Po@am__quote@
36232 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Po@am__quote@
36233 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Po@am__quote@
36234 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fat_stage1_5_exec-bios.Po@am__quote@
36235 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fat_stage1_5_exec-char_io.Po@am__quote@
36236 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fat_stage1_5_exec-common.Po@am__quote@
36237 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fat_stage1_5_exec-disk_io.Po@am__quote@
36238 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Po@am__quote@
36239 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fat_stage1_5_exec-stage1_5.Po@am__quote@
36240 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffs_stage1_5_exec-bios.Po@am__quote@
36241 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffs_stage1_5_exec-char_io.Po@am__quote@
36242 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffs_stage1_5_exec-common.Po@am__quote@
36243 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffs_stage1_5_exec-disk_io.Po@am__quote@
36244 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Po@am__quote@
36245 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Po@am__quote@
36246 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-bios.Po@am__quote@
36247 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-char_io.Po@am__quote@
36248 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-common.Po@am__quote@
36249 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Po@am__quote@
36250 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Po@am__quote@
36251 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Po@am__quote@
36252 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs_stage1_5_exec-bios.Po@am__quote@
36253 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs_stage1_5_exec-char_io.Po@am__quote@
36254 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs_stage1_5_exec-common.Po@am__quote@
36255 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs_stage1_5_exec-disk_io.Po@am__quote@
36256 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Po@am__quote@
36257 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Po@am__quote@
36258 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-boot.Po@am__quote@
36259 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-builtins.Po@am__quote@
36260 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-char_io.Po@am__quote@
36261 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-cmdline.Po@am__quote@
36262 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-common.Po@am__quote@
36263 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-disk_io.Po@am__quote@
36264 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_ext2fs.Po@am__quote@
36265 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_fat.Po@am__quote@
36266 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_ffs.Po@am__quote@
36267 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_iso9660.Po@am__quote@
36268 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_jfs.Po@am__quote@
36269 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_minix.Po@am__quote@
36270 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_reiserfs.Po@am__quote@
36271 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_ufs2.Po@am__quote@
36272 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_vstafs.Po@am__quote@
36273 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_xfs.Po@am__quote@
36274 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-gunzip.Po@am__quote@
36275 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-md5.Po@am__quote@
36276 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-serial.Po@am__quote@
36277 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-stage2.Po@am__quote@
36278 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-terminfo.Po@am__quote@
36279 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-tparm.Po@am__quote@
36280 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minix_stage1_5_exec-bios.Po@am__quote@
36281 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minix_stage1_5_exec-char_io.Po@am__quote@
36282 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minix_stage1_5_exec-common.Po@am__quote@
36283 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minix_stage1_5_exec-disk_io.Po@am__quote@
36284 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Po@am__quote@
36285 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minix_stage1_5_exec-stage1_5.Po@am__quote@
36286 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-bios.Po@am__quote@
36287 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-boot.Po@am__quote@
36288 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-builtins.Po@am__quote@
36289 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-char_io.Po@am__quote@
36290 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-cmdline.Po@am__quote@
36291 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-common.Po@am__quote@
36292 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-console.Po@am__quote@
36293 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-disk_io.Po@am__quote@
36294 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Po@am__quote@
36295 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_fat.Po@am__quote@
36296 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_ffs.Po@am__quote@
36297 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Po@am__quote@
36298 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_jfs.Po@am__quote@
36299 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_minix.Po@am__quote@
36300 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Po@am__quote@
36301 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Po@am__quote@
36302 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Po@am__quote@
36303 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_xfs.Po@am__quote@
36304 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-gunzip.Po@am__quote@
36305 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-hercules.Po@am__quote@
36306 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-md5.Po@am__quote@
36307 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-serial.Po@am__quote@
36308 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-smp-imps.Po@am__quote@
36309 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-stage2.Po@am__quote@
36310 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-terminfo.Po@am__quote@
36311 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-tparm.Po@am__quote@
36312 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reiserfs_stage1_5_exec-bios.Po@am__quote@
36313 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Po@am__quote@
36314 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reiserfs_stage1_5_exec-common.Po@am__quote@
36315 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Po@am__quote@
36316 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Po@am__quote@
36317 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Po@am__quote@
36318 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ufs2_stage1_5_exec-bios.Po@am__quote@
36319 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ufs2_stage1_5_exec-char_io.Po@am__quote@
36320 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ufs2_stage1_5_exec-common.Po@am__quote@
36321 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Po@am__quote@
36322 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Po@am__quote@
36323 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Po@am__quote@
36324 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vstafs_stage1_5_exec-bios.Po@am__quote@
36325 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vstafs_stage1_5_exec-char_io.Po@am__quote@
36326 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vstafs_stage1_5_exec-common.Po@am__quote@
36327 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Po@am__quote@
36328 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Po@am__quote@
36329 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Po@am__quote@
36330 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xfs_stage1_5_exec-bios.Po@am__quote@
36331 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xfs_stage1_5_exec-char_io.Po@am__quote@
36332 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xfs_stage1_5_exec-common.Po@am__quote@
36333 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xfs_stage1_5_exec-disk_io.Po@am__quote@
36334 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Po@am__quote@
36335 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Po@am__quote@
36338 - $(CCASCOMPILE) -c $<
36341 - $(CCASCOMPILE) -c `$(CYGPATH_W) '$<'`
36343 -diskless_exec-asm.o: asm.S
36344 - $(CCAS) $(diskless_exec_CCASFLAGS) $(CCASFLAGS) -c -o diskless_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
36346 -diskless_exec-asm.obj: asm.S
36347 - $(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`
36349 -e2fs_stage1_5_exec-start.o: start.S
36350 - $(CCAS) $(e2fs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o e2fs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
36352 -e2fs_stage1_5_exec-start.obj: start.S
36353 - $(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`
36355 -e2fs_stage1_5_exec-asm.o: asm.S
36356 - $(CCAS) $(e2fs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o e2fs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
36358 -e2fs_stage1_5_exec-asm.obj: asm.S
36359 - $(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`
36361 -fat_stage1_5_exec-start.o: start.S
36362 - $(CCAS) $(fat_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o fat_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
36364 -fat_stage1_5_exec-start.obj: start.S
36365 - $(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`
36367 -fat_stage1_5_exec-asm.o: asm.S
36368 - $(CCAS) $(fat_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o fat_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
36370 -fat_stage1_5_exec-asm.obj: asm.S
36371 - $(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`
36373 -ffs_stage1_5_exec-start.o: start.S
36374 - $(CCAS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ffs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
36376 -ffs_stage1_5_exec-start.obj: start.S
36377 - $(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`
36379 -ffs_stage1_5_exec-asm.o: asm.S
36380 - $(CCAS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ffs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
36382 -ffs_stage1_5_exec-asm.obj: asm.S
36383 - $(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`
36385 -iso9660_stage1_5_exec-start_eltorito.o: start_eltorito.S
36386 - $(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
36388 -iso9660_stage1_5_exec-start_eltorito.obj: start_eltorito.S
36389 - $(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`
36391 -iso9660_stage1_5_exec-asm.o: asm.S
36392 - $(CCAS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o iso9660_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
36394 -iso9660_stage1_5_exec-asm.obj: asm.S
36395 - $(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`
36397 -jfs_stage1_5_exec-start.o: start.S
36398 - $(CCAS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o jfs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
36400 -jfs_stage1_5_exec-start.obj: start.S
36401 - $(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`
36403 -jfs_stage1_5_exec-asm.o: asm.S
36404 - $(CCAS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o jfs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
36406 -jfs_stage1_5_exec-asm.obj: asm.S
36407 - $(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`
36409 -minix_stage1_5_exec-start.o: start.S
36410 - $(CCAS) $(minix_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o minix_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
36412 -minix_stage1_5_exec-start.obj: start.S
36413 - $(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`
36415 -minix_stage1_5_exec-asm.o: asm.S
36416 - $(CCAS) $(minix_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o minix_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
36418 -minix_stage1_5_exec-asm.obj: asm.S
36419 - $(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`
36421 -nbloader_exec-nbloader.o: nbloader.S
36422 - $(CCAS) $(nbloader_exec_CCASFLAGS) $(CCASFLAGS) -c -o nbloader_exec-nbloader.o `test -f 'nbloader.S' || echo '$(srcdir)/'`nbloader.S
36424 -nbloader_exec-nbloader.obj: nbloader.S
36425 - $(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`
36427 -pre_stage2_exec-asm.o: asm.S
36428 - $(CCAS) $(pre_stage2_exec_CCASFLAGS) $(CCASFLAGS) -c -o pre_stage2_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
36430 -pre_stage2_exec-asm.obj: asm.S
36431 - $(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`
36433 -pxeloader_exec-pxeloader.o: pxeloader.S
36434 - $(CCAS) $(pxeloader_exec_CCASFLAGS) $(CCASFLAGS) -c -o pxeloader_exec-pxeloader.o `test -f 'pxeloader.S' || echo '$(srcdir)/'`pxeloader.S
36436 -pxeloader_exec-pxeloader.obj: pxeloader.S
36437 - $(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`
36439 -reiserfs_stage1_5_exec-start.o: start.S
36440 - $(CCAS) $(reiserfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o reiserfs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
36442 -reiserfs_stage1_5_exec-start.obj: start.S
36443 - $(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`
36445 -reiserfs_stage1_5_exec-asm.o: asm.S
36446 - $(CCAS) $(reiserfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o reiserfs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
36448 -reiserfs_stage1_5_exec-asm.obj: asm.S
36449 - $(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`
36451 -start_exec-start.o: start.S
36452 - $(CCAS) $(start_exec_CCASFLAGS) $(CCASFLAGS) -c -o start_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
36454 -start_exec-start.obj: start.S
36455 - $(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`
36457 -start_eltorito_exec-start_eltorito.o: start_eltorito.S
36458 - $(CCAS) $(start_eltorito_exec_CCASFLAGS) $(CCASFLAGS) -c -o start_eltorito_exec-start_eltorito.o `test -f 'start_eltorito.S' || echo '$(srcdir)/'`start_eltorito.S
36460 -start_eltorito_exec-start_eltorito.obj: start_eltorito.S
36461 - $(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`
36463 -ufs2_stage1_5_exec-start.o: start.S
36464 - $(CCAS) $(ufs2_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ufs2_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
36466 -ufs2_stage1_5_exec-start.obj: start.S
36467 - $(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`
36469 -ufs2_stage1_5_exec-asm.o: asm.S
36470 - $(CCAS) $(ufs2_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ufs2_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
36472 -ufs2_stage1_5_exec-asm.obj: asm.S
36473 - $(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`
36475 -vstafs_stage1_5_exec-start.o: start.S
36476 - $(CCAS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o vstafs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
36478 -vstafs_stage1_5_exec-start.obj: start.S
36479 - $(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`
36481 -vstafs_stage1_5_exec-asm.o: asm.S
36482 - $(CCAS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o vstafs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
36484 -vstafs_stage1_5_exec-asm.obj: asm.S
36485 - $(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`
36487 -xfs_stage1_5_exec-start.o: start.S
36488 - $(CCAS) $(xfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o xfs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
36490 -xfs_stage1_5_exec-start.obj: start.S
36491 - $(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`
36493 -xfs_stage1_5_exec-asm.o: asm.S
36494 - $(CCAS) $(xfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o xfs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
36496 -xfs_stage1_5_exec-asm.obj: asm.S
36497 - $(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`
36500 -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
36501 -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
36502 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
36503 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36504 -@am__fastdepCC_FALSE@ $(COMPILE) -c $<
36507 -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
36508 -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
36509 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
36510 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36511 -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
36513 -libgrub_a-boot.o: boot.c
36514 -@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; \
36515 -@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
36516 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='boot.c' object='libgrub_a-boot.o' libtool=no @AMDEPBACKSLASH@
36517 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36518 -@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
36520 -libgrub_a-boot.obj: boot.c
36521 -@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`; \
36522 -@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
36523 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='boot.c' object='libgrub_a-boot.obj' libtool=no @AMDEPBACKSLASH@
36524 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36525 -@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`
36527 -libgrub_a-builtins.o: builtins.c
36528 -@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; \
36529 -@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
36530 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='builtins.c' object='libgrub_a-builtins.o' libtool=no @AMDEPBACKSLASH@
36531 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36532 -@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
36534 -libgrub_a-builtins.obj: builtins.c
36535 -@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`; \
36536 -@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
36537 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='builtins.c' object='libgrub_a-builtins.obj' libtool=no @AMDEPBACKSLASH@
36538 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36539 -@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`
36541 -libgrub_a-char_io.o: char_io.c
36542 -@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; \
36543 -@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
36544 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='libgrub_a-char_io.o' libtool=no @AMDEPBACKSLASH@
36545 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36546 -@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
36548 -libgrub_a-char_io.obj: char_io.c
36549 -@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`; \
36550 -@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
36551 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='libgrub_a-char_io.obj' libtool=no @AMDEPBACKSLASH@
36552 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36553 -@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`
36555 -libgrub_a-cmdline.o: cmdline.c
36556 -@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; \
36557 -@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
36558 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cmdline.c' object='libgrub_a-cmdline.o' libtool=no @AMDEPBACKSLASH@
36559 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36560 -@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
36562 -libgrub_a-cmdline.obj: cmdline.c
36563 -@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`; \
36564 -@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
36565 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cmdline.c' object='libgrub_a-cmdline.obj' libtool=no @AMDEPBACKSLASH@
36566 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36567 -@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`
36569 -libgrub_a-common.o: common.c
36570 -@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; \
36571 -@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
36572 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='libgrub_a-common.o' libtool=no @AMDEPBACKSLASH@
36573 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36574 -@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
36576 -libgrub_a-common.obj: common.c
36577 -@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`; \
36578 -@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
36579 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='libgrub_a-common.obj' libtool=no @AMDEPBACKSLASH@
36580 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36581 -@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`
36583 -libgrub_a-disk_io.o: disk_io.c
36584 -@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; \
36585 -@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
36586 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='libgrub_a-disk_io.o' libtool=no @AMDEPBACKSLASH@
36587 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36588 -@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
36590 -libgrub_a-disk_io.obj: disk_io.c
36591 -@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`; \
36592 -@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
36593 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='libgrub_a-disk_io.obj' libtool=no @AMDEPBACKSLASH@
36594 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36595 -@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`
36597 -libgrub_a-fsys_ext2fs.o: fsys_ext2fs.c
36598 -@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; \
36599 -@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
36600 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ext2fs.c' object='libgrub_a-fsys_ext2fs.o' libtool=no @AMDEPBACKSLASH@
36601 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36602 -@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
36604 -libgrub_a-fsys_ext2fs.obj: fsys_ext2fs.c
36605 -@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`; \
36606 -@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
36607 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ext2fs.c' object='libgrub_a-fsys_ext2fs.obj' libtool=no @AMDEPBACKSLASH@
36608 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36609 -@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`
36611 -libgrub_a-fsys_fat.o: fsys_fat.c
36612 -@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; \
36613 -@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
36614 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_fat.c' object='libgrub_a-fsys_fat.o' libtool=no @AMDEPBACKSLASH@
36615 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36616 -@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
36618 -libgrub_a-fsys_fat.obj: fsys_fat.c
36619 -@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`; \
36620 -@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
36621 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_fat.c' object='libgrub_a-fsys_fat.obj' libtool=no @AMDEPBACKSLASH@
36622 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36623 -@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`
36625 -libgrub_a-fsys_ffs.o: fsys_ffs.c
36626 -@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; \
36627 -@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
36628 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ffs.c' object='libgrub_a-fsys_ffs.o' libtool=no @AMDEPBACKSLASH@
36629 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36630 -@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
36632 -libgrub_a-fsys_ffs.obj: fsys_ffs.c
36633 -@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`; \
36634 -@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
36635 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ffs.c' object='libgrub_a-fsys_ffs.obj' libtool=no @AMDEPBACKSLASH@
36636 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36637 -@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`
36639 -libgrub_a-fsys_iso9660.o: fsys_iso9660.c
36640 -@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; \
36641 -@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
36642 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_iso9660.c' object='libgrub_a-fsys_iso9660.o' libtool=no @AMDEPBACKSLASH@
36643 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36644 -@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
36646 -libgrub_a-fsys_iso9660.obj: fsys_iso9660.c
36647 -@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`; \
36648 -@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
36649 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_iso9660.c' object='libgrub_a-fsys_iso9660.obj' libtool=no @AMDEPBACKSLASH@
36650 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36651 -@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`
36653 -libgrub_a-fsys_jfs.o: fsys_jfs.c
36654 -@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; \
36655 -@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
36656 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_jfs.c' object='libgrub_a-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@
36657 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36658 -@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
36660 -libgrub_a-fsys_jfs.obj: fsys_jfs.c
36661 -@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`; \
36662 -@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
36663 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_jfs.c' object='libgrub_a-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@
36664 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36665 -@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`
36667 -libgrub_a-fsys_minix.o: fsys_minix.c
36668 -@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; \
36669 -@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
36670 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_minix.c' object='libgrub_a-fsys_minix.o' libtool=no @AMDEPBACKSLASH@
36671 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36672 -@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
36674 -libgrub_a-fsys_minix.obj: fsys_minix.c
36675 -@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`; \
36676 -@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
36677 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_minix.c' object='libgrub_a-fsys_minix.obj' libtool=no @AMDEPBACKSLASH@
36678 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36679 -@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`
36681 -libgrub_a-fsys_reiserfs.o: fsys_reiserfs.c
36682 -@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; \
36683 -@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
36684 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_reiserfs.c' object='libgrub_a-fsys_reiserfs.o' libtool=no @AMDEPBACKSLASH@
36685 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36686 -@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
36688 -libgrub_a-fsys_reiserfs.obj: fsys_reiserfs.c
36689 -@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`; \
36690 -@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
36691 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_reiserfs.c' object='libgrub_a-fsys_reiserfs.obj' libtool=no @AMDEPBACKSLASH@
36692 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36693 -@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`
36695 -libgrub_a-fsys_ufs2.o: fsys_ufs2.c
36696 -@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; \
36697 -@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
36698 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ufs2.c' object='libgrub_a-fsys_ufs2.o' libtool=no @AMDEPBACKSLASH@
36699 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36700 -@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
36702 -libgrub_a-fsys_ufs2.obj: fsys_ufs2.c
36703 -@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`; \
36704 -@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
36705 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ufs2.c' object='libgrub_a-fsys_ufs2.obj' libtool=no @AMDEPBACKSLASH@
36706 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36707 -@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`
36709 -libgrub_a-fsys_vstafs.o: fsys_vstafs.c
36710 -@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; \
36711 -@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
36712 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_vstafs.c' object='libgrub_a-fsys_vstafs.o' libtool=no @AMDEPBACKSLASH@
36713 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36714 -@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
36716 -libgrub_a-fsys_vstafs.obj: fsys_vstafs.c
36717 -@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`; \
36718 -@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
36719 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_vstafs.c' object='libgrub_a-fsys_vstafs.obj' libtool=no @AMDEPBACKSLASH@
36720 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36721 -@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`
36723 -libgrub_a-fsys_xfs.o: fsys_xfs.c
36724 -@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; \
36725 -@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
36726 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_xfs.c' object='libgrub_a-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@
36727 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36728 -@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
36730 -libgrub_a-fsys_xfs.obj: fsys_xfs.c
36731 -@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`; \
36732 -@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
36733 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_xfs.c' object='libgrub_a-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@
36734 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36735 -@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`
36737 -libgrub_a-gunzip.o: gunzip.c
36738 -@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; \
36739 -@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
36740 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gunzip.c' object='libgrub_a-gunzip.o' libtool=no @AMDEPBACKSLASH@
36741 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36742 -@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
36744 -libgrub_a-gunzip.obj: gunzip.c
36745 -@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`; \
36746 -@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
36747 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gunzip.c' object='libgrub_a-gunzip.obj' libtool=no @AMDEPBACKSLASH@
36748 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36749 -@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`
36751 -libgrub_a-md5.o: md5.c
36752 -@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; \
36753 -@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
36754 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='md5.c' object='libgrub_a-md5.o' libtool=no @AMDEPBACKSLASH@
36755 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36756 -@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
36758 -libgrub_a-md5.obj: md5.c
36759 -@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`; \
36760 -@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
36761 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='md5.c' object='libgrub_a-md5.obj' libtool=no @AMDEPBACKSLASH@
36762 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36763 -@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`
36765 -libgrub_a-serial.o: serial.c
36766 -@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; \
36767 -@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
36768 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='serial.c' object='libgrub_a-serial.o' libtool=no @AMDEPBACKSLASH@
36769 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36770 -@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
36772 -libgrub_a-serial.obj: serial.c
36773 -@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`; \
36774 -@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
36775 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='serial.c' object='libgrub_a-serial.obj' libtool=no @AMDEPBACKSLASH@
36776 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36777 -@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`
36779 -libgrub_a-stage2.o: stage2.c
36780 -@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; \
36781 -@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
36782 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage2.c' object='libgrub_a-stage2.o' libtool=no @AMDEPBACKSLASH@
36783 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36784 -@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
36786 -libgrub_a-stage2.obj: stage2.c
36787 -@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`; \
36788 -@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
36789 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage2.c' object='libgrub_a-stage2.obj' libtool=no @AMDEPBACKSLASH@
36790 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36791 -@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`
36793 -libgrub_a-terminfo.o: terminfo.c
36794 -@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; \
36795 -@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
36796 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='terminfo.c' object='libgrub_a-terminfo.o' libtool=no @AMDEPBACKSLASH@
36797 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36798 -@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
36800 -libgrub_a-terminfo.obj: terminfo.c
36801 -@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`; \
36802 -@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
36803 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='terminfo.c' object='libgrub_a-terminfo.obj' libtool=no @AMDEPBACKSLASH@
36804 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36805 -@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`
36807 -libgrub_a-tparm.o: tparm.c
36808 -@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; \
36809 -@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
36810 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tparm.c' object='libgrub_a-tparm.o' libtool=no @AMDEPBACKSLASH@
36811 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36812 -@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
36814 -libgrub_a-tparm.obj: tparm.c
36815 -@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`; \
36816 -@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
36817 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tparm.c' object='libgrub_a-tparm.obj' libtool=no @AMDEPBACKSLASH@
36818 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36819 -@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`
36821 -diskless_exec-bios.o: bios.c
36822 -@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; \
36823 -@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
36824 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='diskless_exec-bios.o' libtool=no @AMDEPBACKSLASH@
36825 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36826 -@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
36828 -diskless_exec-bios.obj: bios.c
36829 -@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`; \
36830 -@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
36831 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='diskless_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
36832 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36833 -@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`
36835 -diskless_exec-boot.o: boot.c
36836 -@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; \
36837 -@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
36838 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='boot.c' object='diskless_exec-boot.o' libtool=no @AMDEPBACKSLASH@
36839 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36840 -@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
36842 -diskless_exec-boot.obj: boot.c
36843 -@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`; \
36844 -@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
36845 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='boot.c' object='diskless_exec-boot.obj' libtool=no @AMDEPBACKSLASH@
36846 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36847 -@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`
36849 -diskless_exec-builtins.o: builtins.c
36850 -@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; \
36851 -@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
36852 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='builtins.c' object='diskless_exec-builtins.o' libtool=no @AMDEPBACKSLASH@
36853 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36854 -@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
36856 -diskless_exec-builtins.obj: builtins.c
36857 -@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`; \
36858 -@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
36859 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='builtins.c' object='diskless_exec-builtins.obj' libtool=no @AMDEPBACKSLASH@
36860 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36861 -@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`
36863 -diskless_exec-char_io.o: char_io.c
36864 -@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; \
36865 -@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
36866 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='diskless_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
36867 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36868 -@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
36870 -diskless_exec-char_io.obj: char_io.c
36871 -@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`; \
36872 -@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
36873 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='diskless_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
36874 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36875 -@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`
36877 -diskless_exec-cmdline.o: cmdline.c
36878 -@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; \
36879 -@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
36880 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cmdline.c' object='diskless_exec-cmdline.o' libtool=no @AMDEPBACKSLASH@
36881 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36882 -@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
36884 -diskless_exec-cmdline.obj: cmdline.c
36885 -@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`; \
36886 -@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
36887 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cmdline.c' object='diskless_exec-cmdline.obj' libtool=no @AMDEPBACKSLASH@
36888 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36889 -@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`
36891 -diskless_exec-common.o: common.c
36892 -@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; \
36893 -@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
36894 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='diskless_exec-common.o' libtool=no @AMDEPBACKSLASH@
36895 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36896 -@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
36898 -diskless_exec-common.obj: common.c
36899 -@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`; \
36900 -@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
36901 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='diskless_exec-common.obj' libtool=no @AMDEPBACKSLASH@
36902 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36903 -@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`
36905 -diskless_exec-console.o: console.c
36906 -@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; \
36907 -@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
36908 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='console.c' object='diskless_exec-console.o' libtool=no @AMDEPBACKSLASH@
36909 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36910 -@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
36912 -diskless_exec-console.obj: console.c
36913 -@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`; \
36914 -@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
36915 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='console.c' object='diskless_exec-console.obj' libtool=no @AMDEPBACKSLASH@
36916 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36917 -@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`
36919 -diskless_exec-disk_io.o: disk_io.c
36920 -@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; \
36921 -@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
36922 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='diskless_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
36923 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36924 -@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
36926 -diskless_exec-disk_io.obj: disk_io.c
36927 -@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`; \
36928 -@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
36929 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='diskless_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
36930 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36931 -@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`
36933 -diskless_exec-fsys_ext2fs.o: fsys_ext2fs.c
36934 -@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; \
36935 -@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
36936 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ext2fs.c' object='diskless_exec-fsys_ext2fs.o' libtool=no @AMDEPBACKSLASH@
36937 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36938 -@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
36940 -diskless_exec-fsys_ext2fs.obj: fsys_ext2fs.c
36941 -@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`; \
36942 -@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
36943 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ext2fs.c' object='diskless_exec-fsys_ext2fs.obj' libtool=no @AMDEPBACKSLASH@
36944 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36945 -@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`
36947 -diskless_exec-fsys_fat.o: fsys_fat.c
36948 -@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; \
36949 -@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
36950 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_fat.c' object='diskless_exec-fsys_fat.o' libtool=no @AMDEPBACKSLASH@
36951 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36952 -@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
36954 -diskless_exec-fsys_fat.obj: fsys_fat.c
36955 -@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`; \
36956 -@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
36957 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_fat.c' object='diskless_exec-fsys_fat.obj' libtool=no @AMDEPBACKSLASH@
36958 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36959 -@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`
36961 -diskless_exec-fsys_ffs.o: fsys_ffs.c
36962 -@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; \
36963 -@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
36964 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ffs.c' object='diskless_exec-fsys_ffs.o' libtool=no @AMDEPBACKSLASH@
36965 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36966 -@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
36968 -diskless_exec-fsys_ffs.obj: fsys_ffs.c
36969 -@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`; \
36970 -@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
36971 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ffs.c' object='diskless_exec-fsys_ffs.obj' libtool=no @AMDEPBACKSLASH@
36972 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36973 -@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`
36975 -diskless_exec-fsys_iso9660.o: fsys_iso9660.c
36976 -@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; \
36977 -@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
36978 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_iso9660.c' object='diskless_exec-fsys_iso9660.o' libtool=no @AMDEPBACKSLASH@
36979 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36980 -@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
36982 -diskless_exec-fsys_iso9660.obj: fsys_iso9660.c
36983 -@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`; \
36984 -@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
36985 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_iso9660.c' object='diskless_exec-fsys_iso9660.obj' libtool=no @AMDEPBACKSLASH@
36986 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36987 -@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`
36989 -diskless_exec-fsys_jfs.o: fsys_jfs.c
36990 -@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; \
36991 -@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
36992 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_jfs.c' object='diskless_exec-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@
36993 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
36994 -@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
36996 -diskless_exec-fsys_jfs.obj: fsys_jfs.c
36997 -@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`; \
36998 -@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
36999 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_jfs.c' object='diskless_exec-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@
37000 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37001 -@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`
37003 -diskless_exec-fsys_minix.o: fsys_minix.c
37004 -@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; \
37005 -@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
37006 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_minix.c' object='diskless_exec-fsys_minix.o' libtool=no @AMDEPBACKSLASH@
37007 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37008 -@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
37010 -diskless_exec-fsys_minix.obj: fsys_minix.c
37011 -@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`; \
37012 -@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
37013 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_minix.c' object='diskless_exec-fsys_minix.obj' libtool=no @AMDEPBACKSLASH@
37014 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37015 -@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`
37017 -diskless_exec-fsys_reiserfs.o: fsys_reiserfs.c
37018 -@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; \
37019 -@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
37020 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_reiserfs.c' object='diskless_exec-fsys_reiserfs.o' libtool=no @AMDEPBACKSLASH@
37021 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37022 -@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
37024 -diskless_exec-fsys_reiserfs.obj: fsys_reiserfs.c
37025 -@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`; \
37026 -@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
37027 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_reiserfs.c' object='diskless_exec-fsys_reiserfs.obj' libtool=no @AMDEPBACKSLASH@
37028 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37029 -@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`
37031 -diskless_exec-fsys_ufs2.o: fsys_ufs2.c
37032 -@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; \
37033 -@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
37034 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ufs2.c' object='diskless_exec-fsys_ufs2.o' libtool=no @AMDEPBACKSLASH@
37035 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37036 -@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
37038 -diskless_exec-fsys_ufs2.obj: fsys_ufs2.c
37039 -@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`; \
37040 -@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
37041 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ufs2.c' object='diskless_exec-fsys_ufs2.obj' libtool=no @AMDEPBACKSLASH@
37042 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37043 -@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`
37045 -diskless_exec-fsys_vstafs.o: fsys_vstafs.c
37046 -@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; \
37047 -@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
37048 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_vstafs.c' object='diskless_exec-fsys_vstafs.o' libtool=no @AMDEPBACKSLASH@
37049 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37050 -@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
37052 -diskless_exec-fsys_vstafs.obj: fsys_vstafs.c
37053 -@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`; \
37054 -@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
37055 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_vstafs.c' object='diskless_exec-fsys_vstafs.obj' libtool=no @AMDEPBACKSLASH@
37056 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37057 -@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`
37059 -diskless_exec-fsys_xfs.o: fsys_xfs.c
37060 -@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; \
37061 -@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
37062 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_xfs.c' object='diskless_exec-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@
37063 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37064 -@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
37066 -diskless_exec-fsys_xfs.obj: fsys_xfs.c
37067 -@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`; \
37068 -@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
37069 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_xfs.c' object='diskless_exec-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@
37070 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37071 -@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`
37073 -diskless_exec-gunzip.o: gunzip.c
37074 -@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; \
37075 -@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
37076 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gunzip.c' object='diskless_exec-gunzip.o' libtool=no @AMDEPBACKSLASH@
37077 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37078 -@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
37080 -diskless_exec-gunzip.obj: gunzip.c
37081 -@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`; \
37082 -@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
37083 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gunzip.c' object='diskless_exec-gunzip.obj' libtool=no @AMDEPBACKSLASH@
37084 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37085 -@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`
37087 -diskless_exec-hercules.o: hercules.c
37088 -@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; \
37089 -@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
37090 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='hercules.c' object='diskless_exec-hercules.o' libtool=no @AMDEPBACKSLASH@
37091 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37092 -@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
37094 -diskless_exec-hercules.obj: hercules.c
37095 -@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`; \
37096 -@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
37097 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='hercules.c' object='diskless_exec-hercules.obj' libtool=no @AMDEPBACKSLASH@
37098 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37099 -@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`
37101 -diskless_exec-md5.o: md5.c
37102 -@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; \
37103 -@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
37104 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='md5.c' object='diskless_exec-md5.o' libtool=no @AMDEPBACKSLASH@
37105 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37106 -@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
37108 -diskless_exec-md5.obj: md5.c
37109 -@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`; \
37110 -@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
37111 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='md5.c' object='diskless_exec-md5.obj' libtool=no @AMDEPBACKSLASH@
37112 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37113 -@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`
37115 -diskless_exec-serial.o: serial.c
37116 -@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; \
37117 -@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
37118 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='serial.c' object='diskless_exec-serial.o' libtool=no @AMDEPBACKSLASH@
37119 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37120 -@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
37122 -diskless_exec-serial.obj: serial.c
37123 -@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`; \
37124 -@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
37125 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='serial.c' object='diskless_exec-serial.obj' libtool=no @AMDEPBACKSLASH@
37126 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37127 -@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`
37129 -diskless_exec-smp-imps.o: smp-imps.c
37130 -@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; \
37131 -@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
37132 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='smp-imps.c' object='diskless_exec-smp-imps.o' libtool=no @AMDEPBACKSLASH@
37133 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37134 -@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
37136 -diskless_exec-smp-imps.obj: smp-imps.c
37137 -@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`; \
37138 -@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
37139 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='smp-imps.c' object='diskless_exec-smp-imps.obj' libtool=no @AMDEPBACKSLASH@
37140 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37141 -@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`
37143 -diskless_exec-stage2.o: stage2.c
37144 -@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; \
37145 -@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
37146 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage2.c' object='diskless_exec-stage2.o' libtool=no @AMDEPBACKSLASH@
37147 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37148 -@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
37150 -diskless_exec-stage2.obj: stage2.c
37151 -@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`; \
37152 -@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
37153 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage2.c' object='diskless_exec-stage2.obj' libtool=no @AMDEPBACKSLASH@
37154 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37155 -@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`
37157 -diskless_exec-terminfo.o: terminfo.c
37158 -@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; \
37159 -@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
37160 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='terminfo.c' object='diskless_exec-terminfo.o' libtool=no @AMDEPBACKSLASH@
37161 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37162 -@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
37164 -diskless_exec-terminfo.obj: terminfo.c
37165 -@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`; \
37166 -@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
37167 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='terminfo.c' object='diskless_exec-terminfo.obj' libtool=no @AMDEPBACKSLASH@
37168 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37169 -@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`
37171 -diskless_exec-tparm.o: tparm.c
37172 -@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; \
37173 -@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
37174 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tparm.c' object='diskless_exec-tparm.o' libtool=no @AMDEPBACKSLASH@
37175 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37176 -@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
37178 -diskless_exec-tparm.obj: tparm.c
37179 -@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`; \
37180 -@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
37181 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tparm.c' object='diskless_exec-tparm.obj' libtool=no @AMDEPBACKSLASH@
37182 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37183 -@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`
37185 -e2fs_stage1_5_exec-common.o: common.c
37186 -@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; \
37187 -@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
37188 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='e2fs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
37189 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37190 -@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
37192 -e2fs_stage1_5_exec-common.obj: common.c
37193 -@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`; \
37194 -@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
37195 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='e2fs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
37196 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37197 -@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`
37199 -e2fs_stage1_5_exec-char_io.o: char_io.c
37200 -@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; \
37201 -@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
37202 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='e2fs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
37203 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37204 -@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
37206 -e2fs_stage1_5_exec-char_io.obj: char_io.c
37207 -@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`; \
37208 -@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
37209 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='e2fs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
37210 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37211 -@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`
37213 -e2fs_stage1_5_exec-disk_io.o: disk_io.c
37214 -@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; \
37215 -@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
37216 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='e2fs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
37217 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37218 -@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
37220 -e2fs_stage1_5_exec-disk_io.obj: disk_io.c
37221 -@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`; \
37222 -@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
37223 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='e2fs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
37224 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37225 -@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`
37227 -e2fs_stage1_5_exec-stage1_5.o: stage1_5.c
37228 -@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; \
37229 -@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
37230 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='e2fs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
37231 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37232 -@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
37234 -e2fs_stage1_5_exec-stage1_5.obj: stage1_5.c
37235 -@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`; \
37236 -@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
37237 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='e2fs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
37238 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37239 -@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`
37241 -e2fs_stage1_5_exec-fsys_ext2fs.o: fsys_ext2fs.c
37242 -@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; \
37243 -@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
37244 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ext2fs.c' object='e2fs_stage1_5_exec-fsys_ext2fs.o' libtool=no @AMDEPBACKSLASH@
37245 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37246 -@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
37248 -e2fs_stage1_5_exec-fsys_ext2fs.obj: fsys_ext2fs.c
37249 -@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`; \
37250 -@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
37251 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ext2fs.c' object='e2fs_stage1_5_exec-fsys_ext2fs.obj' libtool=no @AMDEPBACKSLASH@
37252 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37253 -@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`
37255 -e2fs_stage1_5_exec-bios.o: bios.c
37256 -@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; \
37257 -@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
37258 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='e2fs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
37259 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37260 -@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
37262 -e2fs_stage1_5_exec-bios.obj: bios.c
37263 -@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`; \
37264 -@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
37265 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='e2fs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
37266 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37267 -@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`
37269 -fat_stage1_5_exec-common.o: common.c
37270 -@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; \
37271 -@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
37272 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='fat_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
37273 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37274 -@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
37276 -fat_stage1_5_exec-common.obj: common.c
37277 -@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`; \
37278 -@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
37279 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='fat_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
37280 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37281 -@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`
37283 -fat_stage1_5_exec-char_io.o: char_io.c
37284 -@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; \
37285 -@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
37286 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='fat_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
37287 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37288 -@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
37290 -fat_stage1_5_exec-char_io.obj: char_io.c
37291 -@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`; \
37292 -@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
37293 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='fat_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
37294 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37295 -@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`
37297 -fat_stage1_5_exec-disk_io.o: disk_io.c
37298 -@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; \
37299 -@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
37300 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='fat_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
37301 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37302 -@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
37304 -fat_stage1_5_exec-disk_io.obj: disk_io.c
37305 -@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`; \
37306 -@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
37307 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='fat_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
37308 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37309 -@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`
37311 -fat_stage1_5_exec-stage1_5.o: stage1_5.c
37312 -@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; \
37313 -@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
37314 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='fat_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
37315 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37316 -@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
37318 -fat_stage1_5_exec-stage1_5.obj: stage1_5.c
37319 -@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`; \
37320 -@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
37321 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='fat_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
37322 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37323 -@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`
37325 -fat_stage1_5_exec-fsys_fat.o: fsys_fat.c
37326 -@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; \
37327 -@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
37328 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_fat.c' object='fat_stage1_5_exec-fsys_fat.o' libtool=no @AMDEPBACKSLASH@
37329 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37330 -@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
37332 -fat_stage1_5_exec-fsys_fat.obj: fsys_fat.c
37333 -@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`; \
37334 -@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
37335 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_fat.c' object='fat_stage1_5_exec-fsys_fat.obj' libtool=no @AMDEPBACKSLASH@
37336 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37337 -@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`
37339 -fat_stage1_5_exec-bios.o: bios.c
37340 -@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; \
37341 -@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
37342 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='fat_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
37343 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37344 -@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
37346 -fat_stage1_5_exec-bios.obj: bios.c
37347 -@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`; \
37348 -@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
37349 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='fat_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
37350 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37351 -@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`
37353 -ffs_stage1_5_exec-common.o: common.c
37354 -@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; \
37355 -@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
37356 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='ffs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
37357 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37358 -@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
37360 -ffs_stage1_5_exec-common.obj: common.c
37361 -@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`; \
37362 -@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
37363 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='ffs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
37364 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37365 -@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`
37367 -ffs_stage1_5_exec-char_io.o: char_io.c
37368 -@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; \
37369 -@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
37370 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='ffs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
37371 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37372 -@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
37374 -ffs_stage1_5_exec-char_io.obj: char_io.c
37375 -@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`; \
37376 -@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
37377 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='ffs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
37378 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37379 -@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`
37381 -ffs_stage1_5_exec-disk_io.o: disk_io.c
37382 -@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; \
37383 -@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
37384 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='ffs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
37385 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37386 -@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
37388 -ffs_stage1_5_exec-disk_io.obj: disk_io.c
37389 -@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`; \
37390 -@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
37391 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='ffs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
37392 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37393 -@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`
37395 -ffs_stage1_5_exec-stage1_5.o: stage1_5.c
37396 -@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; \
37397 -@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
37398 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='ffs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
37399 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37400 -@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
37402 -ffs_stage1_5_exec-stage1_5.obj: stage1_5.c
37403 -@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`; \
37404 -@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
37405 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='ffs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
37406 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37407 -@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`
37409 -ffs_stage1_5_exec-fsys_ffs.o: fsys_ffs.c
37410 -@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; \
37411 -@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
37412 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ffs.c' object='ffs_stage1_5_exec-fsys_ffs.o' libtool=no @AMDEPBACKSLASH@
37413 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37414 -@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
37416 -ffs_stage1_5_exec-fsys_ffs.obj: fsys_ffs.c
37417 -@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`; \
37418 -@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
37419 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ffs.c' object='ffs_stage1_5_exec-fsys_ffs.obj' libtool=no @AMDEPBACKSLASH@
37420 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37421 -@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`
37423 -ffs_stage1_5_exec-bios.o: bios.c
37424 -@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; \
37425 -@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
37426 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='ffs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
37427 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37428 -@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
37430 -ffs_stage1_5_exec-bios.obj: bios.c
37431 -@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`; \
37432 -@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
37433 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='ffs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
37434 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37435 -@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`
37437 -iso9660_stage1_5_exec-common.o: common.c
37438 -@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; \
37439 -@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
37440 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='iso9660_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
37441 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37442 -@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
37444 -iso9660_stage1_5_exec-common.obj: common.c
37445 -@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`; \
37446 -@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
37447 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='iso9660_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
37448 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37449 -@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`
37451 -iso9660_stage1_5_exec-char_io.o: char_io.c
37452 -@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; \
37453 -@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
37454 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='iso9660_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
37455 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37456 -@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
37458 -iso9660_stage1_5_exec-char_io.obj: char_io.c
37459 -@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`; \
37460 -@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
37461 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='iso9660_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
37462 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37463 -@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`
37465 -iso9660_stage1_5_exec-disk_io.o: disk_io.c
37466 -@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; \
37467 -@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
37468 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='iso9660_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
37469 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37470 -@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
37472 -iso9660_stage1_5_exec-disk_io.obj: disk_io.c
37473 -@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`; \
37474 -@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
37475 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='iso9660_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
37476 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37477 -@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`
37479 -iso9660_stage1_5_exec-stage1_5.o: stage1_5.c
37480 -@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; \
37481 -@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
37482 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='iso9660_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
37483 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37484 -@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
37486 -iso9660_stage1_5_exec-stage1_5.obj: stage1_5.c
37487 -@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`; \
37488 -@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
37489 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='iso9660_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
37490 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37491 -@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`
37493 -iso9660_stage1_5_exec-fsys_iso9660.o: fsys_iso9660.c
37494 -@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; \
37495 -@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
37496 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_iso9660.c' object='iso9660_stage1_5_exec-fsys_iso9660.o' libtool=no @AMDEPBACKSLASH@
37497 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37498 -@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
37500 -iso9660_stage1_5_exec-fsys_iso9660.obj: fsys_iso9660.c
37501 -@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`; \
37502 -@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
37503 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_iso9660.c' object='iso9660_stage1_5_exec-fsys_iso9660.obj' libtool=no @AMDEPBACKSLASH@
37504 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37505 -@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`
37507 -iso9660_stage1_5_exec-bios.o: bios.c
37508 -@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; \
37509 -@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
37510 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='iso9660_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
37511 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37512 -@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
37514 -iso9660_stage1_5_exec-bios.obj: bios.c
37515 -@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`; \
37516 -@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
37517 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='iso9660_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
37518 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37519 -@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`
37521 -jfs_stage1_5_exec-common.o: common.c
37522 -@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; \
37523 -@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
37524 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='jfs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
37525 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37526 -@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
37528 -jfs_stage1_5_exec-common.obj: common.c
37529 -@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`; \
37530 -@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
37531 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='jfs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
37532 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37533 -@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`
37535 -jfs_stage1_5_exec-char_io.o: char_io.c
37536 -@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; \
37537 -@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
37538 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='jfs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
37539 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37540 -@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
37542 -jfs_stage1_5_exec-char_io.obj: char_io.c
37543 -@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`; \
37544 -@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
37545 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='jfs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
37546 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37547 -@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`
37549 -jfs_stage1_5_exec-disk_io.o: disk_io.c
37550 -@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; \
37551 -@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
37552 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='jfs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
37553 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37554 -@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
37556 -jfs_stage1_5_exec-disk_io.obj: disk_io.c
37557 -@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`; \
37558 -@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
37559 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='jfs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
37560 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37561 -@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`
37563 -jfs_stage1_5_exec-stage1_5.o: stage1_5.c
37564 -@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; \
37565 -@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
37566 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='jfs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
37567 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37568 -@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
37570 -jfs_stage1_5_exec-stage1_5.obj: stage1_5.c
37571 -@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`; \
37572 -@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
37573 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='jfs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
37574 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37575 -@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`
37577 -jfs_stage1_5_exec-fsys_jfs.o: fsys_jfs.c
37578 -@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; \
37579 -@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
37580 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_jfs.c' object='jfs_stage1_5_exec-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@
37581 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37582 -@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
37584 -jfs_stage1_5_exec-fsys_jfs.obj: fsys_jfs.c
37585 -@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`; \
37586 -@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
37587 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_jfs.c' object='jfs_stage1_5_exec-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@
37588 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37589 -@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`
37591 -jfs_stage1_5_exec-bios.o: bios.c
37592 -@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; \
37593 -@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
37594 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='jfs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
37595 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37596 -@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
37598 -jfs_stage1_5_exec-bios.obj: bios.c
37599 -@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`; \
37600 -@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
37601 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='jfs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
37602 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37603 -@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`
37605 -minix_stage1_5_exec-common.o: common.c
37606 -@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; \
37607 -@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
37608 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='minix_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
37609 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37610 -@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
37612 -minix_stage1_5_exec-common.obj: common.c
37613 -@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`; \
37614 -@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
37615 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='minix_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
37616 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37617 -@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`
37619 -minix_stage1_5_exec-char_io.o: char_io.c
37620 -@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; \
37621 -@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
37622 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='minix_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
37623 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37624 -@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
37626 -minix_stage1_5_exec-char_io.obj: char_io.c
37627 -@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`; \
37628 -@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
37629 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='minix_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
37630 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37631 -@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`
37633 -minix_stage1_5_exec-disk_io.o: disk_io.c
37634 -@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; \
37635 -@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
37636 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='minix_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
37637 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37638 -@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
37640 -minix_stage1_5_exec-disk_io.obj: disk_io.c
37641 -@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`; \
37642 -@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
37643 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='minix_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
37644 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37645 -@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`
37647 -minix_stage1_5_exec-stage1_5.o: stage1_5.c
37648 -@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; \
37649 -@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
37650 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='minix_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
37651 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37652 -@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
37654 -minix_stage1_5_exec-stage1_5.obj: stage1_5.c
37655 -@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`; \
37656 -@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
37657 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='minix_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
37658 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37659 -@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`
37661 -minix_stage1_5_exec-fsys_minix.o: fsys_minix.c
37662 -@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; \
37663 -@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
37664 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_minix.c' object='minix_stage1_5_exec-fsys_minix.o' libtool=no @AMDEPBACKSLASH@
37665 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37666 -@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
37668 -minix_stage1_5_exec-fsys_minix.obj: fsys_minix.c
37669 -@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`; \
37670 -@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
37671 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_minix.c' object='minix_stage1_5_exec-fsys_minix.obj' libtool=no @AMDEPBACKSLASH@
37672 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37673 -@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`
37675 -minix_stage1_5_exec-bios.o: bios.c
37676 -@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; \
37677 -@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
37678 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='minix_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
37679 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37680 -@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
37682 -minix_stage1_5_exec-bios.obj: bios.c
37683 -@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`; \
37684 -@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
37685 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='minix_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
37686 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37687 -@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`
37689 -pre_stage2_exec-bios.o: bios.c
37690 -@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; \
37691 -@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
37692 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='pre_stage2_exec-bios.o' libtool=no @AMDEPBACKSLASH@
37693 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37694 -@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
37696 -pre_stage2_exec-bios.obj: bios.c
37697 -@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`; \
37698 -@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
37699 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='pre_stage2_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
37700 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37701 -@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`
37703 -pre_stage2_exec-boot.o: boot.c
37704 -@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; \
37705 -@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
37706 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='boot.c' object='pre_stage2_exec-boot.o' libtool=no @AMDEPBACKSLASH@
37707 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37708 -@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
37710 -pre_stage2_exec-boot.obj: boot.c
37711 -@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`; \
37712 -@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
37713 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='boot.c' object='pre_stage2_exec-boot.obj' libtool=no @AMDEPBACKSLASH@
37714 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37715 -@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`
37717 -pre_stage2_exec-builtins.o: builtins.c
37718 -@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; \
37719 -@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
37720 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='builtins.c' object='pre_stage2_exec-builtins.o' libtool=no @AMDEPBACKSLASH@
37721 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37722 -@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
37724 -pre_stage2_exec-builtins.obj: builtins.c
37725 -@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`; \
37726 -@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
37727 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='builtins.c' object='pre_stage2_exec-builtins.obj' libtool=no @AMDEPBACKSLASH@
37728 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37729 -@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`
37731 -pre_stage2_exec-char_io.o: char_io.c
37732 -@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; \
37733 -@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
37734 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='pre_stage2_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
37735 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37736 -@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
37738 -pre_stage2_exec-char_io.obj: char_io.c
37739 -@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`; \
37740 -@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
37741 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='pre_stage2_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
37742 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37743 -@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`
37745 -pre_stage2_exec-cmdline.o: cmdline.c
37746 -@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; \
37747 -@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
37748 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cmdline.c' object='pre_stage2_exec-cmdline.o' libtool=no @AMDEPBACKSLASH@
37749 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37750 -@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
37752 -pre_stage2_exec-cmdline.obj: cmdline.c
37753 -@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`; \
37754 -@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
37755 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cmdline.c' object='pre_stage2_exec-cmdline.obj' libtool=no @AMDEPBACKSLASH@
37756 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37757 -@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`
37759 -pre_stage2_exec-common.o: common.c
37760 -@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; \
37761 -@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
37762 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='pre_stage2_exec-common.o' libtool=no @AMDEPBACKSLASH@
37763 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37764 -@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
37766 -pre_stage2_exec-common.obj: common.c
37767 -@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`; \
37768 -@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
37769 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='pre_stage2_exec-common.obj' libtool=no @AMDEPBACKSLASH@
37770 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37771 -@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`
37773 -pre_stage2_exec-console.o: console.c
37774 -@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; \
37775 -@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
37776 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='console.c' object='pre_stage2_exec-console.o' libtool=no @AMDEPBACKSLASH@
37777 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37778 -@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
37780 -pre_stage2_exec-console.obj: console.c
37781 -@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`; \
37782 -@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
37783 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='console.c' object='pre_stage2_exec-console.obj' libtool=no @AMDEPBACKSLASH@
37784 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37785 -@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`
37787 -pre_stage2_exec-disk_io.o: disk_io.c
37788 -@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; \
37789 -@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
37790 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='pre_stage2_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
37791 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37792 -@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
37794 -pre_stage2_exec-disk_io.obj: disk_io.c
37795 -@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`; \
37796 -@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
37797 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='pre_stage2_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
37798 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37799 -@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`
37801 -pre_stage2_exec-fsys_ext2fs.o: fsys_ext2fs.c
37802 -@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; \
37803 -@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
37804 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ext2fs.c' object='pre_stage2_exec-fsys_ext2fs.o' libtool=no @AMDEPBACKSLASH@
37805 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37806 -@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
37808 -pre_stage2_exec-fsys_ext2fs.obj: fsys_ext2fs.c
37809 -@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`; \
37810 -@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
37811 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ext2fs.c' object='pre_stage2_exec-fsys_ext2fs.obj' libtool=no @AMDEPBACKSLASH@
37812 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37813 -@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`
37815 -pre_stage2_exec-fsys_fat.o: fsys_fat.c
37816 -@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; \
37817 -@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
37818 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_fat.c' object='pre_stage2_exec-fsys_fat.o' libtool=no @AMDEPBACKSLASH@
37819 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37820 -@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
37822 -pre_stage2_exec-fsys_fat.obj: fsys_fat.c
37823 -@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`; \
37824 -@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
37825 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_fat.c' object='pre_stage2_exec-fsys_fat.obj' libtool=no @AMDEPBACKSLASH@
37826 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37827 -@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`
37829 -pre_stage2_exec-fsys_ffs.o: fsys_ffs.c
37830 -@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; \
37831 -@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
37832 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ffs.c' object='pre_stage2_exec-fsys_ffs.o' libtool=no @AMDEPBACKSLASH@
37833 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37834 -@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
37836 -pre_stage2_exec-fsys_ffs.obj: fsys_ffs.c
37837 -@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`; \
37838 -@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
37839 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ffs.c' object='pre_stage2_exec-fsys_ffs.obj' libtool=no @AMDEPBACKSLASH@
37840 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37841 -@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`
37843 -pre_stage2_exec-fsys_iso9660.o: fsys_iso9660.c
37844 -@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; \
37845 -@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
37846 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_iso9660.c' object='pre_stage2_exec-fsys_iso9660.o' libtool=no @AMDEPBACKSLASH@
37847 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37848 -@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
37850 -pre_stage2_exec-fsys_iso9660.obj: fsys_iso9660.c
37851 -@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`; \
37852 -@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
37853 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_iso9660.c' object='pre_stage2_exec-fsys_iso9660.obj' libtool=no @AMDEPBACKSLASH@
37854 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37855 -@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`
37857 -pre_stage2_exec-fsys_jfs.o: fsys_jfs.c
37858 -@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; \
37859 -@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
37860 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_jfs.c' object='pre_stage2_exec-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@
37861 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37862 -@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
37864 -pre_stage2_exec-fsys_jfs.obj: fsys_jfs.c
37865 -@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`; \
37866 -@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
37867 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_jfs.c' object='pre_stage2_exec-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@
37868 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37869 -@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`
37871 -pre_stage2_exec-fsys_minix.o: fsys_minix.c
37872 -@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; \
37873 -@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
37874 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_minix.c' object='pre_stage2_exec-fsys_minix.o' libtool=no @AMDEPBACKSLASH@
37875 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37876 -@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
37878 -pre_stage2_exec-fsys_minix.obj: fsys_minix.c
37879 -@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`; \
37880 -@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
37881 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_minix.c' object='pre_stage2_exec-fsys_minix.obj' libtool=no @AMDEPBACKSLASH@
37882 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37883 -@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`
37885 -pre_stage2_exec-fsys_reiserfs.o: fsys_reiserfs.c
37886 -@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; \
37887 -@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
37888 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_reiserfs.c' object='pre_stage2_exec-fsys_reiserfs.o' libtool=no @AMDEPBACKSLASH@
37889 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37890 -@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
37892 -pre_stage2_exec-fsys_reiserfs.obj: fsys_reiserfs.c
37893 -@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`; \
37894 -@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
37895 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_reiserfs.c' object='pre_stage2_exec-fsys_reiserfs.obj' libtool=no @AMDEPBACKSLASH@
37896 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37897 -@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`
37899 -pre_stage2_exec-fsys_ufs2.o: fsys_ufs2.c
37900 -@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; \
37901 -@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
37902 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ufs2.c' object='pre_stage2_exec-fsys_ufs2.o' libtool=no @AMDEPBACKSLASH@
37903 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37904 -@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
37906 -pre_stage2_exec-fsys_ufs2.obj: fsys_ufs2.c
37907 -@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`; \
37908 -@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
37909 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ufs2.c' object='pre_stage2_exec-fsys_ufs2.obj' libtool=no @AMDEPBACKSLASH@
37910 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37911 -@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`
37913 -pre_stage2_exec-fsys_vstafs.o: fsys_vstafs.c
37914 -@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; \
37915 -@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
37916 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_vstafs.c' object='pre_stage2_exec-fsys_vstafs.o' libtool=no @AMDEPBACKSLASH@
37917 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37918 -@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
37920 -pre_stage2_exec-fsys_vstafs.obj: fsys_vstafs.c
37921 -@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`; \
37922 -@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
37923 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_vstafs.c' object='pre_stage2_exec-fsys_vstafs.obj' libtool=no @AMDEPBACKSLASH@
37924 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37925 -@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`
37927 -pre_stage2_exec-fsys_xfs.o: fsys_xfs.c
37928 -@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; \
37929 -@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
37930 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_xfs.c' object='pre_stage2_exec-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@
37931 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37932 -@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
37934 -pre_stage2_exec-fsys_xfs.obj: fsys_xfs.c
37935 -@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`; \
37936 -@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
37937 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_xfs.c' object='pre_stage2_exec-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@
37938 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37939 -@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`
37941 -pre_stage2_exec-gunzip.o: gunzip.c
37942 -@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; \
37943 -@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
37944 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gunzip.c' object='pre_stage2_exec-gunzip.o' libtool=no @AMDEPBACKSLASH@
37945 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37946 -@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
37948 -pre_stage2_exec-gunzip.obj: gunzip.c
37949 -@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`; \
37950 -@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
37951 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gunzip.c' object='pre_stage2_exec-gunzip.obj' libtool=no @AMDEPBACKSLASH@
37952 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37953 -@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`
37955 -pre_stage2_exec-hercules.o: hercules.c
37956 -@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; \
37957 -@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
37958 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='hercules.c' object='pre_stage2_exec-hercules.o' libtool=no @AMDEPBACKSLASH@
37959 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37960 -@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
37962 -pre_stage2_exec-hercules.obj: hercules.c
37963 -@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`; \
37964 -@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
37965 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='hercules.c' object='pre_stage2_exec-hercules.obj' libtool=no @AMDEPBACKSLASH@
37966 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37967 -@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`
37969 -pre_stage2_exec-md5.o: md5.c
37970 -@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; \
37971 -@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
37972 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='md5.c' object='pre_stage2_exec-md5.o' libtool=no @AMDEPBACKSLASH@
37973 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37974 -@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
37976 -pre_stage2_exec-md5.obj: md5.c
37977 -@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`; \
37978 -@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
37979 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='md5.c' object='pre_stage2_exec-md5.obj' libtool=no @AMDEPBACKSLASH@
37980 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37981 -@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`
37983 -pre_stage2_exec-serial.o: serial.c
37984 -@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; \
37985 -@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
37986 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='serial.c' object='pre_stage2_exec-serial.o' libtool=no @AMDEPBACKSLASH@
37987 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37988 -@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
37990 -pre_stage2_exec-serial.obj: serial.c
37991 -@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`; \
37992 -@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
37993 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='serial.c' object='pre_stage2_exec-serial.obj' libtool=no @AMDEPBACKSLASH@
37994 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
37995 -@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`
37997 -pre_stage2_exec-smp-imps.o: smp-imps.c
37998 -@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; \
37999 -@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
38000 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='smp-imps.c' object='pre_stage2_exec-smp-imps.o' libtool=no @AMDEPBACKSLASH@
38001 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38002 -@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
38004 -pre_stage2_exec-smp-imps.obj: smp-imps.c
38005 -@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`; \
38006 -@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
38007 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='smp-imps.c' object='pre_stage2_exec-smp-imps.obj' libtool=no @AMDEPBACKSLASH@
38008 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38009 -@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`
38011 -pre_stage2_exec-stage2.o: stage2.c
38012 -@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; \
38013 -@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
38014 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage2.c' object='pre_stage2_exec-stage2.o' libtool=no @AMDEPBACKSLASH@
38015 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38016 -@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
38018 -pre_stage2_exec-stage2.obj: stage2.c
38019 -@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`; \
38020 -@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
38021 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage2.c' object='pre_stage2_exec-stage2.obj' libtool=no @AMDEPBACKSLASH@
38022 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38023 -@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`
38025 -pre_stage2_exec-terminfo.o: terminfo.c
38026 -@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; \
38027 -@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
38028 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='terminfo.c' object='pre_stage2_exec-terminfo.o' libtool=no @AMDEPBACKSLASH@
38029 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38030 -@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
38032 -pre_stage2_exec-terminfo.obj: terminfo.c
38033 -@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`; \
38034 -@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
38035 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='terminfo.c' object='pre_stage2_exec-terminfo.obj' libtool=no @AMDEPBACKSLASH@
38036 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38037 -@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`
38039 -pre_stage2_exec-tparm.o: tparm.c
38040 -@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; \
38041 -@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
38042 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tparm.c' object='pre_stage2_exec-tparm.o' libtool=no @AMDEPBACKSLASH@
38043 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38044 -@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
38046 -pre_stage2_exec-tparm.obj: tparm.c
38047 -@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`; \
38048 -@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
38049 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tparm.c' object='pre_stage2_exec-tparm.obj' libtool=no @AMDEPBACKSLASH@
38050 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38051 -@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`
38053 -reiserfs_stage1_5_exec-common.o: common.c
38054 -@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; \
38055 -@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
38056 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='reiserfs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
38057 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38058 -@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
38060 -reiserfs_stage1_5_exec-common.obj: common.c
38061 -@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`; \
38062 -@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
38063 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='reiserfs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
38064 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38065 -@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`
38067 -reiserfs_stage1_5_exec-char_io.o: char_io.c
38068 -@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; \
38069 -@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
38070 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='reiserfs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
38071 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38072 -@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
38074 -reiserfs_stage1_5_exec-char_io.obj: char_io.c
38075 -@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`; \
38076 -@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
38077 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='reiserfs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
38078 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38079 -@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`
38081 -reiserfs_stage1_5_exec-disk_io.o: disk_io.c
38082 -@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; \
38083 -@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
38084 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='reiserfs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
38085 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38086 -@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
38088 -reiserfs_stage1_5_exec-disk_io.obj: disk_io.c
38089 -@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`; \
38090 -@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
38091 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='reiserfs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
38092 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38093 -@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`
38095 -reiserfs_stage1_5_exec-stage1_5.o: stage1_5.c
38096 -@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; \
38097 -@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
38098 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='reiserfs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
38099 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38100 -@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
38102 -reiserfs_stage1_5_exec-stage1_5.obj: stage1_5.c
38103 -@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`; \
38104 -@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
38105 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='reiserfs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
38106 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38107 -@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`
38109 -reiserfs_stage1_5_exec-fsys_reiserfs.o: fsys_reiserfs.c
38110 -@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; \
38111 -@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
38112 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_reiserfs.c' object='reiserfs_stage1_5_exec-fsys_reiserfs.o' libtool=no @AMDEPBACKSLASH@
38113 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38114 -@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
38116 -reiserfs_stage1_5_exec-fsys_reiserfs.obj: fsys_reiserfs.c
38117 -@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`; \
38118 -@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
38119 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_reiserfs.c' object='reiserfs_stage1_5_exec-fsys_reiserfs.obj' libtool=no @AMDEPBACKSLASH@
38120 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38121 -@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`
38123 -reiserfs_stage1_5_exec-bios.o: bios.c
38124 -@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; \
38125 -@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
38126 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='reiserfs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
38127 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38128 -@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
38130 -reiserfs_stage1_5_exec-bios.obj: bios.c
38131 -@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`; \
38132 -@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
38133 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='reiserfs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
38134 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38135 -@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`
38137 -ufs2_stage1_5_exec-common.o: common.c
38138 -@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; \
38139 -@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
38140 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='ufs2_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
38141 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38142 -@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
38144 -ufs2_stage1_5_exec-common.obj: common.c
38145 -@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`; \
38146 -@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
38147 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='ufs2_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
38148 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38149 -@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`
38151 -ufs2_stage1_5_exec-char_io.o: char_io.c
38152 -@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; \
38153 -@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
38154 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='ufs2_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
38155 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38156 -@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
38158 -ufs2_stage1_5_exec-char_io.obj: char_io.c
38159 -@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`; \
38160 -@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
38161 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='ufs2_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
38162 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38163 -@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`
38165 -ufs2_stage1_5_exec-disk_io.o: disk_io.c
38166 -@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; \
38167 -@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
38168 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='ufs2_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
38169 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38170 -@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
38172 -ufs2_stage1_5_exec-disk_io.obj: disk_io.c
38173 -@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`; \
38174 -@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
38175 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='ufs2_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
38176 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38177 -@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`
38179 -ufs2_stage1_5_exec-stage1_5.o: stage1_5.c
38180 -@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; \
38181 -@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
38182 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='ufs2_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
38183 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38184 -@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
38186 -ufs2_stage1_5_exec-stage1_5.obj: stage1_5.c
38187 -@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`; \
38188 -@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
38189 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='ufs2_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
38190 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38191 -@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`
38193 -ufs2_stage1_5_exec-fsys_ufs2.o: fsys_ufs2.c
38194 -@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; \
38195 -@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
38196 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ufs2.c' object='ufs2_stage1_5_exec-fsys_ufs2.o' libtool=no @AMDEPBACKSLASH@
38197 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38198 -@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
38200 -ufs2_stage1_5_exec-fsys_ufs2.obj: fsys_ufs2.c
38201 -@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`; \
38202 -@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
38203 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_ufs2.c' object='ufs2_stage1_5_exec-fsys_ufs2.obj' libtool=no @AMDEPBACKSLASH@
38204 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38205 -@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`
38207 -ufs2_stage1_5_exec-bios.o: bios.c
38208 -@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; \
38209 -@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
38210 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='ufs2_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
38211 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38212 -@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
38214 -ufs2_stage1_5_exec-bios.obj: bios.c
38215 -@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`; \
38216 -@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
38217 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='ufs2_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
38218 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38219 -@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`
38221 -vstafs_stage1_5_exec-common.o: common.c
38222 -@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; \
38223 -@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
38224 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='vstafs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
38225 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38226 -@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
38228 -vstafs_stage1_5_exec-common.obj: common.c
38229 -@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`; \
38230 -@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
38231 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='vstafs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
38232 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38233 -@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`
38235 -vstafs_stage1_5_exec-char_io.o: char_io.c
38236 -@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; \
38237 -@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
38238 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='vstafs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
38239 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38240 -@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
38242 -vstafs_stage1_5_exec-char_io.obj: char_io.c
38243 -@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`; \
38244 -@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
38245 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='vstafs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
38246 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38247 -@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`
38249 -vstafs_stage1_5_exec-disk_io.o: disk_io.c
38250 -@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; \
38251 -@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
38252 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='vstafs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
38253 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38254 -@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
38256 -vstafs_stage1_5_exec-disk_io.obj: disk_io.c
38257 -@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`; \
38258 -@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
38259 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='vstafs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
38260 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38261 -@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`
38263 -vstafs_stage1_5_exec-stage1_5.o: stage1_5.c
38264 -@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; \
38265 -@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
38266 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='vstafs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
38267 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38268 -@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
38270 -vstafs_stage1_5_exec-stage1_5.obj: stage1_5.c
38271 -@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`; \
38272 -@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
38273 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='vstafs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
38274 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38275 -@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`
38277 -vstafs_stage1_5_exec-fsys_vstafs.o: fsys_vstafs.c
38278 -@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; \
38279 -@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
38280 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_vstafs.c' object='vstafs_stage1_5_exec-fsys_vstafs.o' libtool=no @AMDEPBACKSLASH@
38281 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38282 -@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
38284 -vstafs_stage1_5_exec-fsys_vstafs.obj: fsys_vstafs.c
38285 -@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`; \
38286 -@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
38287 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_vstafs.c' object='vstafs_stage1_5_exec-fsys_vstafs.obj' libtool=no @AMDEPBACKSLASH@
38288 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38289 -@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`
38291 -vstafs_stage1_5_exec-bios.o: bios.c
38292 -@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; \
38293 -@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
38294 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='vstafs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
38295 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38296 -@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
38298 -vstafs_stage1_5_exec-bios.obj: bios.c
38299 -@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`; \
38300 -@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
38301 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='vstafs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
38302 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38303 -@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`
38305 -xfs_stage1_5_exec-common.o: common.c
38306 -@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; \
38307 -@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
38308 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='xfs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
38309 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38310 -@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
38312 -xfs_stage1_5_exec-common.obj: common.c
38313 -@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`; \
38314 -@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
38315 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='common.c' object='xfs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
38316 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38317 -@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`
38319 -xfs_stage1_5_exec-char_io.o: char_io.c
38320 -@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; \
38321 -@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
38322 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='xfs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
38323 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38324 -@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
38326 -xfs_stage1_5_exec-char_io.obj: char_io.c
38327 -@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`; \
38328 -@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
38329 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='char_io.c' object='xfs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
38330 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38331 -@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`
38333 -xfs_stage1_5_exec-disk_io.o: disk_io.c
38334 -@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; \
38335 -@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
38336 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='xfs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
38337 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38338 -@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
38340 -xfs_stage1_5_exec-disk_io.obj: disk_io.c
38341 -@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`; \
38342 -@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
38343 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='disk_io.c' object='xfs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
38344 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38345 -@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`
38347 -xfs_stage1_5_exec-stage1_5.o: stage1_5.c
38348 -@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; \
38349 -@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
38350 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='xfs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
38351 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38352 -@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
38354 -xfs_stage1_5_exec-stage1_5.obj: stage1_5.c
38355 -@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`; \
38356 -@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
38357 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stage1_5.c' object='xfs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
38358 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38359 -@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`
38361 -xfs_stage1_5_exec-fsys_xfs.o: fsys_xfs.c
38362 -@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; \
38363 -@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
38364 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_xfs.c' object='xfs_stage1_5_exec-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@
38365 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38366 -@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
38368 -xfs_stage1_5_exec-fsys_xfs.obj: fsys_xfs.c
38369 -@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`; \
38370 -@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
38371 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fsys_xfs.c' object='xfs_stage1_5_exec-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@
38372 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38373 -@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`
38375 -xfs_stage1_5_exec-bios.o: bios.c
38376 -@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; \
38377 -@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
38378 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='xfs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
38379 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38380 -@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
38382 -xfs_stage1_5_exec-bios.obj: bios.c
38383 -@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`; \
38384 -@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
38385 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bios.c' object='xfs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
38386 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
38387 -@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`
38388 -uninstall-info-am:
38389 -install-pkglibDATA: $(pkglib_DATA)
38390 - @$(NORMAL_INSTALL)
38391 - test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)"
38392 - @list='$(pkglib_DATA)'; for p in $$list; do \
38393 - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
38394 - f=$(am__strip_dir) \
38395 - echo " $(pkglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
38396 - $(pkglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \
38399 -uninstall-pkglibDATA:
38400 - @$(NORMAL_UNINSTALL)
38401 - @list='$(pkglib_DATA)'; for p in $$list; do \
38402 - f=$(am__strip_dir) \
38403 - echo " rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
38404 - rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
38407 -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
38408 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
38409 - unique=`for i in $$list; do \
38410 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
38412 - $(AWK) ' { files[$$0] = 1; } \
38413 - END { for (i in files) print i; }'`; \
38414 - mkid -fID $$unique
38417 -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
38418 - $(TAGS_FILES) $(LISP)
38421 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
38422 - unique=`for i in $$list; do \
38423 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
38425 - $(AWK) ' { files[$$0] = 1; } \
38426 - END { for (i in files) print i; }'`; \
38427 - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
38428 - test -n "$$unique" || unique=$$empty_fix; \
38429 - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
38430 - $$tags $$unique; \
38433 -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
38434 - $(TAGS_FILES) $(LISP)
38437 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
38438 - unique=`for i in $$list; do \
38439 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
38441 - $(AWK) ' { files[$$0] = 1; } \
38442 - END { for (i in files) print i; }'`; \
38443 - test -z "$(CTAGS_ARGS)$$tags$$unique" \
38444 - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
38448 - here=`$(am__cd) $(top_builddir) && pwd` \
38449 - && cd $(top_srcdir) \
38450 - && gtags -i $(GTAGS_ARGS) $$here
38453 - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
38455 -check-TESTS: $(TESTS)
38456 - @failed=0; all=0; xfail=0; xpass=0; skip=0; \
38457 - srcdir=$(srcdir); export srcdir; \
38458 - list='$(TESTS)'; \
38459 - if test -n "$$list"; then \
38460 - for tst in $$list; do \
38461 - if test -f ./$$tst; then dir=./; \
38462 - elif test -f $$tst; then dir=; \
38463 - else dir="$(srcdir)/"; fi; \
38464 - if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
38465 - all=`expr $$all + 1`; \
38466 - case " $(XFAIL_TESTS) " in \
38468 - xpass=`expr $$xpass + 1`; \
38469 - failed=`expr $$failed + 1`; \
38470 - echo "XPASS: $$tst"; \
38473 - echo "PASS: $$tst"; \
38476 - elif test $$? -ne 77; then \
38477 - all=`expr $$all + 1`; \
38478 - case " $(XFAIL_TESTS) " in \
38480 - xfail=`expr $$xfail + 1`; \
38481 - echo "XFAIL: $$tst"; \
38484 - failed=`expr $$failed + 1`; \
38485 - echo "FAIL: $$tst"; \
38489 - skip=`expr $$skip + 1`; \
38490 - echo "SKIP: $$tst"; \
38493 - if test "$$failed" -eq 0; then \
38494 - if test "$$xfail" -eq 0; then \
38495 - banner="All $$all tests passed"; \
38497 - banner="All $$all tests behaved as expected ($$xfail expected failures)"; \
38500 - if test "$$xpass" -eq 0; then \
38501 - banner="$$failed of $$all tests failed"; \
38503 - banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \
38506 - dashes="$$banner"; \
38508 - if test "$$skip" -ne 0; then \
38509 - skipped="($$skip tests were not run)"; \
38510 - test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
38511 - dashes="$$skipped"; \
38514 - if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
38515 - report="Please report to $(PACKAGE_BUGREPORT)"; \
38516 - test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
38517 - dashes="$$report"; \
38519 - dashes=`echo "$$dashes" | sed s/./=/g`; \
38520 - echo "$$dashes"; \
38521 - echo "$$banner"; \
38522 - test -z "$$skipped" || echo "$$skipped"; \
38523 - test -z "$$report" || echo "$$report"; \
38524 - echo "$$dashes"; \
38525 - test "$$failed" -eq 0; \
38528 -distdir: $(DISTFILES)
38529 - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
38530 - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
38531 - list='$(DISTFILES)'; for file in $$list; do \
38533 - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
38534 - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
38536 - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
38537 - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
38538 - if test "$$dir" != "$$file" && test "$$dir" != "."; then \
38540 - $(mkdir_p) "$(distdir)$$dir"; \
38544 - if test -d $$d/$$file; then \
38545 - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
38546 - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
38548 - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
38550 - test -f $(distdir)/$$file \
38551 - || cp -p $$d/$$file $(distdir)/$$file \
38556 - $(MAKE) $(AM_MAKEFLAGS) check-TESTS
38557 -check: $(BUILT_SOURCES)
38558 - $(MAKE) $(AM_MAKEFLAGS) check-am
38559 -all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(SCRIPTS) $(DATA) \
38562 - for dir in "$(DESTDIR)$(pkglibdir)"; do \
38563 - test -z "$$dir" || $(mkdir_p) "$$dir"; \
38565 -install: $(BUILT_SOURCES)
38566 - $(MAKE) $(AM_MAKEFLAGS) install-am
38567 -install-exec: install-exec-am
38568 -install-data: install-data-am
38569 -uninstall: uninstall-am
38571 -install-am: all-am
38572 - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
38574 -installcheck: installcheck-am
38576 - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
38577 - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
38578 - `test -z '$(STRIP)' || \
38579 - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
38580 -mostlyclean-generic:
38581 - -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
38584 - -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
38586 -distclean-generic:
38587 - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
38589 -maintainer-clean-generic:
38590 - @echo "This command is intended for maintainers to use"
38591 - @echo "it deletes files that may require special tools to rebuild."
38592 - -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
38595 -clean-am: clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS \
38598 -distclean: distclean-am
38599 - -rm -rf ./$(DEPDIR)
38601 -distclean-am: clean-am distclean-compile distclean-generic \
38616 -install-exec-am: install-pkglibDATA
38618 -install-info: install-info-am
38624 -maintainer-clean: maintainer-clean-am
38625 - -rm -rf ./$(DEPDIR)
38627 -maintainer-clean-am: distclean-am maintainer-clean-generic
38629 -mostlyclean: mostlyclean-am
38631 -mostlyclean-am: mostlyclean-compile mostlyclean-generic
38641 -uninstall-am: uninstall-info-am uninstall-pkglibDATA
38643 -.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
38644 - clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS ctags \
38645 - distclean distclean-compile distclean-generic distclean-tags \
38646 - distdir dvi dvi-am html html-am info info-am install \
38647 - install-am install-data install-data-am install-exec \
38648 - install-exec-am install-info install-info-am install-man \
38649 - install-pkglibDATA install-strip installcheck installcheck-am \
38650 - installdirs maintainer-clean maintainer-clean-generic \
38651 - mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
38652 - ps ps-am tags uninstall uninstall-am uninstall-info-am \
38653 - uninstall-pkglibDATA
38656 -stage2_size.h: pre_stage2
38657 - -rm -f stage2_size.h
38658 - set dummy `ls -l pre_stage2`; \
38659 - echo "#define STAGE2_SIZE $$6" > stage2_size.h
38661 -# XXX: automake doesn't provide a way to specify dependencies for object
38662 -# files explicitly, so we must write this by a general Makefile scheme.
38663 -# If automake change the naming scheme for per-executable objects, this
38665 -start_exec-start.$(OBJEXT): stage2_size.h
38667 -stage2: pre_stage2 start
38669 - cat start pre_stage2 > stage2
38671 -start_eltorito_exec-start.$(OBJEXT): stage2_size.h
38673 -stage2_eltorito: pre_stage2 start_eltorito
38674 - -rm -f stage2_eltorito
38675 - cat start_eltorito pre_stage2 > stage2_eltorito
38677 -diskless_size.h: diskless
38679 - set dummy `ls -l $^`; \
38680 - echo "#define DISKLESS_SIZE $$6" > $@
38682 -# XXX: See the comment for start_exec-start.o.
38683 -nbloader_exec-nbloader.$(OBJEXT): diskless_size.h
38685 -# For nbgrub target.
38686 -nbgrub: nbloader diskless
38690 -# XXX: See the comment for start_exec-start.o.
38691 -pxeloader_exec-pxeloader.$(OBJEXT): diskless_size.h
38693 -# For pxegrub target.
38694 -pxegrub: pxeloader diskless
38698 - $(OBJCOPY) -O binary $< $@
38699 -# Tell versions [3.59,3.63) of GNU make to not export all variables.
38700 -# Otherwise a system limit (for SysV at least) may be exceeded.
38702 diff --git a/stage2/asm.S b/stage2/asm.S
38703 index 34b6e7d..5c4dd5e 100644
38706 @@ -98,7 +98,7 @@ VARIABLE(version_string)
38708 VARIABLE(config_file)
38710 - .string "/boot/grub/menu.lst"
38711 + .string "/boot/grub/grub.conf"
38712 #else /* STAGE1_5 */
38714 .string "/boot/grub/stage2"
38715 @@ -1622,36 +1622,78 @@ ENTRY(set_vbe_mode)
38743 + movl 0x100500,%ebx
38745 + movl %eax,0x100500
38748 + movl %ebx,0x100500
38755 /* first, try a BIOS call */
38757 - movl 8(%esp), %edx
38759 call EXT_C(prot_to_real)
38762 - movw $0x2400, %ax
38766 + movw $0x2401, %ax
38771 - /* set non-zero if failed */
38774 - /* save the status */
38777 DATA32 call EXT_C(real_to_prot)
38786 + * try to switch gateA20 using PORT92, the "Fast A20 and Init"
38791 + /* skip the port92 code if it's unimplemented (read returns 0xff) */
38795 + /* set bit1, the ALT_A20_GATE bit */
38797 + /* and $0xfd, %al */
38799 + /* clear the INIT_NOW bit; don't accidently reset the machine */
38805 -3: /* use keyboard controller */
38807 + /* use keyboard controller */
38811 @@ -1665,11 +1707,7 @@ gloopint1:
38814 movb $KB_OUTPUT_MASK, %al
38815 - cmpb $0, 0x8(%esp)
38818 orb $KB_A20_ENABLE, %al
38823 @@ -1994,8 +2032,25 @@ ENTRY(console_getkey)
38824 call EXT_C(prot_to_real)
38828 + mov $0x11, %ah /* poll kbd */
38833 +/* XXX handle serial here? -- pj */
38846 movw %ax, %dx /* real_to_prot uses %eax */
38847 call translate_keycode
38848 call remap_ascii_char
38849 @@ -2003,7 +2058,7 @@ ENTRY(console_getkey)
38850 DATA32 call EXT_C(real_to_prot)
38858 @@ -2029,7 +2084,7 @@ ENTRY(console_checkkey)
38859 call EXT_C(prot_to_real) /* enter real mode */
38866 DATA32 jz notpending
38867 @@ -2051,6 +2106,37 @@ pending:
38873 + * int console_keystatus (void)
38874 + * BIOS call "INT 16H Function 02H" to get keyboard modifier status
38875 + * Call with %ah = 0x2
38876 + * Return: %al = keyboard state:
38877 + * bit 3: alt key down
38878 + * bit 2: ctrl key down
38879 + * bit 1: left shift key down
38880 + * bit 0: right shift key down
38882 +ENTRY(console_keystatus)
38885 + call EXT_C(prot_to_real)
38892 + DATA32 call EXT_C(real_to_prot)
38897 + /* Mask out numlock, capslock and insert state. */
38898 + andl $0x0f0f, %eax
38904 * int console_getxy (void)
38905 @@ -2216,6 +2302,156 @@ ENTRY(console_setcursor)
38910 +/* graphics mode functions */
38911 +#ifdef SUPPORT_GRAPHICS
38916 +VARIABLE(cursorCount)
38918 +VARIABLE(cursorBuf)
38919 +.byte 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
38923 + * int set_videomode(mode)
38924 + * BIOS call "INT 10H Function 0h" to set video mode
38925 + * Call with %ah = 0x0
38926 + * %al = video mode
38927 + * Returns old videomode.
38929 +ENTRY(set_videomode)
38934 + movb 0x10(%esp), %cl
38936 + call EXT_C(prot_to_real)
38941 + int $0x10 /* Get Current Video mode */
38945 + int $0x10 /* Set Video mode */
38947 + DATA32 call EXT_C(real_to_prot)
38960 + * unsigned char * graphics_get_font()
38961 + * BIOS call "INT 10H Function 11h" to set font
38962 + * Call with %ah = 0x11
38964 +ENTRY(graphics_get_font)
38970 + call EXT_C(prot_to_real)
38973 + movw $0x1130, %ax
38974 + movb $6, %bh /* font 8x16 */
38979 + DATA32 call EXT_C(real_to_prot)
38996 + * graphics_set_palette(index, red, green, blue)
38997 + * BIOS call "INT 10H Function 10h" to set individual dac register
38998 + * Call with %ah = 0x10
38999 + * %bx = register number
39000 + * %ch = new value for green (0-63)
39001 + * %cl = new value for blue (0-63)
39002 + * %dh = new value for red (0-63)
39005 +ENTRY(graphics_set_palette)
39012 + movw $0x3c8, %bx /* address write mode register */
39014 + /* wait vertical retrace */
39017 +l1b: inb %dx, %al /* wait vertical active display */
39021 +l2b: inb %dx, %al /* wait vertical retrace */
39026 + movb 0x18(%esp), %al /* index */
39030 + movb 0x1c(%esp), %al /* red */
39033 + movb 0x20(%esp), %al /* green */
39036 + movb 0x24(%esp), %al /* blue */
39039 + movw 0x18(%esp), %bx
39041 + call EXT_C(prot_to_real)
39045 + movw $0x1000, %ax
39048 + DATA32 call EXT_C(real_to_prot)
39058 +#endif /* SUPPORT_GRAPHICS */
39062 diff --git a/stage2/boot.c b/stage2/boot.c
39063 index 4185d23..e30daf8 100644
39064 --- a/stage2/boot.c
39065 +++ b/stage2/boot.c
39066 @@ -25,10 +25,14 @@
39067 #include "imgact_aout.h"
39068 #include "i386-elf.h"
39070 +#ifndef PLATFORM_EFI
39071 static int cur_addr;
39073 entry_func entry_addr;
39074 +#ifndef PLATFORM_EFI
39075 static struct mod_list mll[99];
39076 static int linux_mem_size;
39080 * The next two functions, 'load_image' and 'load_module', are the building
39081 @@ -40,6 +44,9 @@ kernel_t
39082 load_image (char *kernel, char *arg, kernel_t suggested_type,
39083 unsigned long load_flags)
39085 +#ifdef PLATFORM_EFI
39086 + return grub_load_linux (kernel, arg);
39088 int len, i, exec_type = 0, align_4k = 1;
39089 entry_func real_entry_addr = 0;
39090 kernel_t type = KERNEL_TYPE_NONE;
39091 @@ -221,6 +228,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
39094 int setup_sects = lh->setup_sects;
39095 + int cmdline_size = 0xff;
39097 if (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0200)
39099 @@ -248,6 +256,14 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
39100 lh->cl_offset = LINUX_CL_OFFSET;
39101 lh->setup_move_size = LINUX_SETUP_MOVE_SIZE;
39104 + if (lh->version >= 0x0206)
39106 + cmdline_size = lh->cmdline_size;
39107 + if (cmdline_size > (LINUX_CL_END_OFFSET - LINUX_CL_OFFSET))
39108 + cmdline_size = LINUX_CL_END_OFFSET - LINUX_CL_OFFSET;
39114 @@ -265,7 +281,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
39115 setup_sects = LINUX_DEFAULT_SETUP_SECTS;
39117 data_len = setup_sects << 9;
39118 - text_len = filemax - data_len - SECTOR_SIZE;
39119 + text_len = filemax - data_len - get_sector_size(current_drive);
39121 linux_data_tmp_addr = (char *) LINUX_BZIMAGE_ADDR + text_len;
39123 @@ -280,8 +296,12 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
39124 errnum = ERR_WONT_FIT;
39127 - grub_printf (" [Linux-%s, setup=0x%x, size=0x%x]\n",
39128 - (big_linux ? "bzImage" : "zImage"), data_len, text_len);
39129 + grub_verbose_printf (" [Linux-%s, setup=0x%x, size=0x%x]\n",
39130 + (big_linux ? "bzImage" : "zImage"),
39131 + data_len, text_len);
39134 + lh->vid_mode = 0x0f04;
39136 /* Video mode selection support. What a mess! */
39137 /* NOTE: Even the word "mess" is not still enough to
39138 @@ -375,14 +395,15 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
39140 /* It is possible that DATA_LEN + SECTOR_SIZE is greater than
39141 MULTIBOOT_SEARCH, so the data may have been read partially. */
39142 - if (data_len + SECTOR_SIZE <= MULTIBOOT_SEARCH)
39143 + if (data_len + get_sector_size(current_drive) <= MULTIBOOT_SEARCH)
39144 grub_memmove (linux_data_tmp_addr, buffer,
39145 - data_len + SECTOR_SIZE);
39146 + data_len + get_sector_size(current_drive));
39149 grub_memmove (linux_data_tmp_addr, buffer, MULTIBOOT_SEARCH);
39150 grub_read (linux_data_tmp_addr + MULTIBOOT_SEARCH,
39151 - data_len + SECTOR_SIZE - MULTIBOOT_SEARCH);
39152 + data_len + get_sector_size(current_drive)
39153 + - MULTIBOOT_SEARCH);
39156 if (lh->header != LINUX_MAGIC_SIGNATURE ||
39157 @@ -404,7 +425,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
39158 char *src = skip_to (0, arg);
39159 char *dest = linux_data_tmp_addr + LINUX_CL_OFFSET;
39161 - while (dest < linux_data_tmp_addr + LINUX_CL_END_OFFSET && *src)
39162 + while (dest < linux_data_tmp_addr + LINUX_CL_OFFSET + cmdline_size && *src)
39163 *(dest++) = *(src++);
39165 /* Old Linux kernels have problems determining the amount of
39166 @@ -425,7 +446,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
39167 if (! grub_strstr (arg, "mem=")
39168 && ! (load_flags & KERNEL_LOAD_NO_MEM_OPTION)
39169 && lh->version < 0x0203 /* kernel version < 2.4.18 */
39170 - && dest + 15 < linux_data_tmp_addr + LINUX_CL_END_OFFSET)
39171 + && dest + 15 < linux_data_tmp_addr + LINUX_CL_OFFSET + cmdline_size)
39175 @@ -441,7 +462,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
39178 /* offset into file */
39179 - grub_seek (data_len + SECTOR_SIZE);
39180 + grub_seek (data_len + get_sector_size(current_drive));
39182 cur_addr = (int) linux_data_tmp_addr + LINUX_SETUP_MOVE_SIZE;
39183 grub_read ((char *) LINUX_BZIMAGE_ADDR, text_len);
39184 @@ -487,7 +508,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
39185 mbi.syms.a.addr = 0;
39186 mbi.syms.a.pad = 0;
39188 - printf (" [%s-%s", str2, str);
39189 + verbose_printf (" [%s-%s", str2, str);
39193 @@ -496,7 +517,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
39194 if (flags & MULTIBOOT_AOUT_KLUDGE)
39197 - printf (", loadaddr=0x%x, text%s=0x%x", cur_addr, str, text_len);
39198 + verbose_printf (", loadaddr=0x%x, text%s=0x%x", cur_addr, str, text_len);
39200 /* read text, then read data */
39201 if (grub_read ((char *) RAW_ADDR (cur_addr), text_len) == text_len)
39202 @@ -509,9 +530,9 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
39204 cur_addr = (cur_addr + 0xFFF) & 0xFFFFF000;
39207 + verbose_printf (", C");
39209 - printf (", data=0x%x", data_len);
39210 + verbose_printf (", data=0x%x", data_len);
39212 if ((grub_read ((char *) RAW_ADDR (cur_addr), data_len)
39214 @@ -525,7 +546,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
39215 memset ((char *) RAW_ADDR (cur_addr), 0, bss_len);
39216 cur_addr += bss_len;
39218 - printf (", bss=0x%x", bss_len);
39219 + verbose_printf (", bss=0x%x", bss_len);
39223 @@ -545,7 +566,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
39224 *((int *) RAW_ADDR (cur_addr)) = pu.aout->a_syms;
39225 cur_addr += sizeof (int);
39227 - printf (", symtab=0x%x", pu.aout->a_syms);
39228 + verbose_printf (", symtab=0x%x", pu.aout->a_syms);
39230 if (grub_read ((char *) RAW_ADDR (cur_addr), pu.aout->a_syms)
39231 == pu.aout->a_syms)
39232 @@ -562,7 +583,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
39236 - printf (", strtab=0x%x", i);
39237 + verbose_printf (", strtab=0x%x", i);
39239 symtab_err = (grub_read ((char *) RAW_ADDR (cur_addr), i)
39241 @@ -576,7 +597,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
39245 - printf ("(bad)");
39246 + verbose_printf ("(bad)");
39247 cur_addr = orig_addr;
39248 mbi.syms.a.tabsize = 0;
39249 mbi.syms.a.strsize = 0;
39250 @@ -630,7 +651,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
39251 /* mark memory as used */
39252 if (cur_addr < memaddr + memsiz)
39253 cur_addr = memaddr + memsiz;
39254 - printf (", <0x%x:0x%x:0x%x>", memaddr, filesiz,
39255 + verbose_printf (", <0x%x:0x%x:0x%x>", memaddr, filesiz,
39257 /* increment number of segments */
39259 @@ -676,7 +697,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
39260 shdr = (Elf32_Shdr *) mbi.syms.e.addr;
39261 cur_addr += tab_size;
39263 - printf (", shtab=0x%x", cur_addr);
39264 + verbose_printf (", shtab=0x%x", cur_addr);
39266 for (i = 0; i < mbi.syms.e.num; i++)
39268 @@ -718,7 +739,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
39272 - printf ("(bad)");
39273 + verbose_printf ("(bad)");
39274 mbi.syms.e.num = 0;
39275 mbi.syms.e.size = 0;
39276 mbi.syms.e.addr = 0;
39277 @@ -733,7 +754,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
39281 - grub_printf (", entry=0x%x]\n", (unsigned) entry_addr);
39282 + grub_verbose_printf (", entry=0x%x]\n", (unsigned) entry_addr);
39284 /* If the entry address is physically different from that of the ELF
39285 header, correct it here. */
39286 @@ -756,8 +777,10 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
39293 +#ifndef PLATFORM_EFI
39295 load_module (char *module, char *arg)
39297 @@ -776,7 +799,7 @@ load_module (char *module, char *arg)
39301 - printf (" [Multiboot-module @ 0x%x, 0x%x bytes]\n", cur_addr, len);
39302 + verbose_printf (" [Multiboot-module @ 0x%x, 0x%x bytes]\n", cur_addr, len);
39304 /* these two simply need to be set if any modules are loaded at all */
39305 mbi.flags |= MB_INFO_MODS;
39306 @@ -794,11 +817,19 @@ load_module (char *module, char *arg)
39313 load_initrd (char *initrd)
39316 +#ifdef PLATFORM_EFI
39317 +#ifndef NO_DECOMPRESSION
39318 + no_decompression = 1;
39320 + return grub_load_initrd (initrd);
39322 + int len, next_addr;
39323 + char *singleimage, *pos;
39324 unsigned long moveto;
39325 unsigned long max_addr;
39326 struct linux_kernel_header *lh
39327 @@ -807,16 +838,24 @@ load_initrd (char *initrd)
39328 #ifndef NO_DECOMPRESSION
39329 no_decompression = 1;
39332 - if (! grub_open (initrd))
39335 + next_addr = cur_addr;
39337 - len = grub_read ((char *) cur_addr, -1);
39343 + /* loop over all initrd images and concatenate them in memory */
39344 + singleimage = strtok_r(initrd," \t",&pos);
39345 + while (singleimage) {
39346 + if (! grub_open (singleimage))
39349 + len += grub_read ((char *) next_addr, -1);
39352 + next_addr = cur_addr + len;
39353 + singleimage = strtok_r(NULL," \t",&pos);
39359 if (linux_mem_size)
39360 moveto = linux_mem_size;
39361 @@ -824,8 +863,12 @@ load_initrd (char *initrd)
39362 moveto = (mbi.mem_upper + 0x400) << 10;
39364 moveto = (moveto - len) & 0xfffff000;
39366 max_addr = (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0203
39367 ? lh->initrd_addr_max : LINUX_INITRD_MAX_ADDRESS);
39369 + max_addr = LINUX_INITRD_MAX_ADDRESS;
39371 if (moveto + len >= max_addr)
39372 moveto = (max_addr - len) & 0xfffff000;
39374 @@ -836,13 +879,12 @@ load_initrd (char *initrd)
39376 memmove ((void *) RAW_ADDR (moveto), (void *) cur_addr, len);
39378 - printf (" [Linux-initrd @ 0x%x, 0x%x bytes]\n", moveto, len);
39379 + verbose_printf (" [Linux-initrd @ 0x%x, 0x%x bytes]\n", moveto, len);
39381 /* FIXME: Should check if the kernel supports INITRD. */
39382 lh->ramdisk_image = RAW_ADDR (moveto);
39383 lh->ramdisk_size = len;
39389 @@ -851,9 +893,11 @@ load_initrd (char *initrd)
39397 +#ifndef PLATFORM_EFI
39399 /* Dummy function to fake the *BSD boot. */
39401 @@ -1018,3 +1062,5 @@ bsd_boot (kernel_t type, int bootdev, char *arg)
39402 extended_memory, mbi.mem_lower);
39407 diff --git a/stage2/builtins.c b/stage2/builtins.c
39408 index 3e08a86..b95b181 100644
39409 --- a/stage2/builtins.c
39410 +++ b/stage2/builtins.c
39411 @@ -56,6 +56,9 @@ static int bootdev;
39412 /* True when the debug mode is turned on, and false
39413 when it is turned off. */
39415 +int debug_graphics = 0;
39416 +/* Print what we're booting */
39417 +int grub_verbose = 0;
39418 /* The default entry. */
39419 int default_entry = 0;
39420 /* The fallback entry. */
39421 @@ -117,6 +120,27 @@ check_password (char *entered, char* expected, password_t type)
39423 return check_md5_password (entered, expected);
39426 + case PASSWORD_ENCRYPTED:
39427 + if (grub_memcmp (expected, "$1$", 3) == 0)
39428 + return check_md5_password (entered, expected);
39429 + else if (grub_memcmp (expected, "$5$", 3) == 0)
39433 + hashed = sha256_crypt (entered, expected);
39434 + return hashed == NULL || strcmp (expected, hashed);
39436 + else if (grub_memcmp (expected, "$6$", 3) == 0)
39440 + hashed = sha512_crypt (entered, expected);
39441 + return hashed == NULL || strcmp (expected, hashed);
39444 + return strcmp (entered, expected);
39447 /* unsupported password type: be secure */
39449 @@ -131,62 +155,98 @@ disk_read_print_func (int sector, int offset, int length)
39453 +/* blocklist_read_helper nee disk_read_blocklist_func was a nested
39454 + * function, to which pointers were taken and exposed globally. Even
39455 + * in the GNU-C nested functions extension, they have local linkage,
39456 + * and aren't guaranteed to be accessable *at all* outside of their
39457 + * containing scope.
39459 + * Above and beyond all of that, the variables within blocklist_func_context
39460 + * are originally local variables, with local (not even static) linkage,
39461 + * from within blocklist_func. These were each referenced by
39462 + * disk_read_blocklist_func, which is only called from other functions
39463 + * through a globally scoped pointer.
39465 + * The documentation in GCC actually uses the words "all hell will break
39466 + * loose" to describe this scenario.
39468 + * Also, "start_sector" was also used uninitialized, but gcc doesn't warn
39469 + * about it (possibly because of the scoping madness?)
39473 + int start_sector;
39477 +} blocklist_func_context = {
39478 + .start_sector = 0,
39479 + .num_sectors = 0,
39480 + .num_entries = 0,
39484 +/* Collect contiguous blocks into one entry as many as possible,
39485 + and print the blocklist notation on the screen. */
39487 +blocklist_read_helper (int sector, int offset, int length)
39489 + int *start_sector = &blocklist_func_context.start_sector;
39490 + int *num_sectors = &blocklist_func_context.num_sectors;
39491 + int *num_entries = &blocklist_func_context.num_entries;
39492 + int *last_length = &blocklist_func_context.last_length;
39493 + int sector_size = get_sector_size(current_drive);
39495 + if (*num_sectors > 0)
39497 + if (*start_sector + *num_sectors == sector
39498 + && offset == 0 && *last_length == sector_size)
39501 + *last_length = length;
39506 + if (*last_length == sector_size)
39507 + grub_printf ("%s%d+%d", *num_entries ? "," : "",
39508 + *start_sector - part_start, *num_sectors);
39509 + else if (*num_sectors > 1)
39510 + grub_printf ("%s%d+%d,%d[0-%d]", *num_entries ? "," : "",
39511 + *start_sector - part_start, *num_sectors-1,
39512 + *start_sector + *num_sectors-1 - part_start,
39515 + grub_printf ("%s%d[0-%d]", *num_entries ? "," : "",
39516 + *start_sector - part_start, *last_length);
39518 + *num_sectors = 0;
39524 + grub_printf("%s%d[%d-%d]", *num_entries ? "," : "",
39525 + sector-part_start, offset, offset+length);
39530 + *start_sector = sector;
39531 + *num_sectors = 1;
39532 + *last_length = length;
39538 blocklist_func (char *arg, int flags)
39540 char *dummy = (char *) RAW_ADDR (0x100000);
39541 - int start_sector;
39542 - int num_sectors = 0;
39543 - int num_entries = 0;
39544 - int last_length = 0;
39546 - auto void disk_read_blocklist_func (int sector, int offset, int length);
39548 - /* Collect contiguous blocks into one entry as many as possible,
39549 - and print the blocklist notation on the screen. */
39550 - auto void disk_read_blocklist_func (int sector, int offset, int length)
39552 - if (num_sectors > 0)
39554 - if (start_sector + num_sectors == sector
39555 - && offset == 0 && last_length == SECTOR_SIZE)
39558 - last_length = length;
39563 - if (last_length == SECTOR_SIZE)
39564 - grub_printf ("%s%d+%d", num_entries ? "," : "",
39565 - start_sector - part_start, num_sectors);
39566 - else if (num_sectors > 1)
39567 - grub_printf ("%s%d+%d,%d[0-%d]", num_entries ? "," : "",
39568 - start_sector - part_start, num_sectors-1,
39569 - start_sector + num_sectors-1 - part_start,
39572 - grub_printf ("%s%d[0-%d]", num_entries ? "," : "",
39573 - start_sector - part_start, last_length);
39581 - grub_printf("%s%d[%d-%d]", num_entries ? "," : "",
39582 - sector-part_start, offset, offset+length);
39587 - start_sector = sector;
39589 - last_length = length;
39592 + int *start_sector = &blocklist_func_context.start_sector;
39593 + int *num_sectors = &blocklist_func_context.num_sectors;
39594 + int *num_entries = &blocklist_func_context.num_entries;
39596 /* Open the file. */
39597 if (! grub_open (arg))
39598 @@ -206,15 +266,15 @@ blocklist_func (char *arg, int flags)
39601 /* Read in the whole file to DUMMY. */
39602 - disk_read_hook = disk_read_blocklist_func;
39603 + disk_read_hook = blocklist_read_helper;
39604 if (! grub_read (dummy, -1))
39607 /* The last entry may not be printed yet. Don't check if it is a
39608 * full sector, since it doesn't matter if we read too much. */
39609 - if (num_sectors > 0)
39610 - grub_printf ("%s%d+%d", num_entries ? "," : "",
39611 - start_sector - part_start, num_sectors);
39612 + if (*num_sectors > 0)
39613 + grub_printf ("%s%d+%d", *num_entries ? "," : "",
39614 + *start_sector - part_start, *num_sectors);
39616 grub_printf ("\n");
39618 @@ -237,12 +297,25 @@ static struct builtin builtin_blocklist =
39620 boot_func (char *arg, int flags)
39622 + struct term_entry *prev_term = current_term;
39623 /* Clear the int15 handler if we can boot the kernel successfully.
39624 This assumes that the boot code never fails only if KERNEL_TYPE is
39625 not KERNEL_TYPE_NONE. Is this assumption is bad? */
39626 if (kernel_type != KERNEL_TYPE_NONE)
39627 unset_int15_handler ();
39629 + /* if our terminal needed initialization, we should shut it down
39630 + * before booting the kernel, but we want to save what it was so
39631 + * we can come back if needed */
39632 + if (current_term->shutdown)
39634 + (*current_term->shutdown)();
39635 + current_term = term_table; /* assumption: console is first */
39641 #ifdef SUPPORT_NETBOOT
39642 /* Shut down the networking. */
39644 @@ -250,11 +323,13 @@ boot_func (char *arg, int flags)
39646 switch (kernel_type)
39648 +#ifndef PLATFORM_EFI
39649 case KERNEL_TYPE_FREEBSD:
39650 case KERNEL_TYPE_NETBSD:
39652 bsd_boot (kernel_type, bootdev, (char *) mbi.cmdline);
39656 case KERNEL_TYPE_LINUX:
39658 @@ -296,16 +371,25 @@ boot_func (char *arg, int flags)
39659 chain_stage1 (0, BOOTSEC_LOCATION, boot_part_addr);
39662 +#ifndef PLATFORM_EFI
39663 case KERNEL_TYPE_MULTIBOOT:
39665 multi_boot ((int) entry_addr, (int) &mbi);
39670 errnum = ERR_BOOT_COMMAND;
39674 + /* if we get back here, we should go back to what our term was before */
39675 + current_term = prev_term;
39676 + if (current_term->startup)
39677 + /* if our terminal fails to initialize, fall back to console since
39678 + * it should always work */
39679 + if ((*current_term->startup)() == 0)
39680 + current_term = term_table; /* we know that console is first */
39684 @@ -402,6 +486,10 @@ static struct builtin builtin_cat =
39686 chainloader_func (char *arg, int flags)
39688 +#ifdef PLATFORM_EFI
39689 + kernel_type = grub_chainloader(arg);
39690 + return kernel_type == KERNEL_TYPE_NONE;
39695 @@ -458,6 +546,7 @@ chainloader_func (char *arg, int flags)
39702 static struct builtin builtin_chainloader =
39703 @@ -564,89 +653,88 @@ static struct builtin builtin_cmp =
39704 /* Set new colors used for the menu interface. Support two methods to
39705 specify a color name: a direct integer representation and a symbolic
39706 color name. An example of the latter is "blink-light-gray/blue". */
39708 -color_func (char *arg, int flags)
39712 - int new_normal_color;
39713 - int new_highlight_color;
39714 - static char *color_list[16] =
39733 +static const char * const color_list[16] =
39753 - auto int color_number (char *str);
39754 +/* Convert the color name STR into the magical number. */
39755 +static int color_number (char *str)
39761 - /* Convert the color name STR into the magical number. */
39762 - auto int color_number (char *str)
39768 - /* Find the separator. */
39769 - for (ptr = str; *ptr && *ptr != '/'; ptr++)
39771 + /* Find the separator. */
39772 + for (ptr = str; *ptr && *ptr != '/'; ptr++)
39775 - /* If not found, return -1. */
39778 + /* If not found, return -1. */
39782 - /* Terminate the string STR. */
39784 + /* Terminate the string STR. */
39787 - /* If STR contains the prefix "blink-", then set the `blink' bit
39789 - if (substring ("blink-", str) <= 0)
39795 - /* Search for the color name. */
39796 - for (i = 0; i < 16; i++)
39797 - if (grub_strcmp (color_list[i], str) == 0)
39802 + /* If STR contains the prefix "blink-", then set the `blink' bit
39804 + if (substring ("blink-", str) <= 0)
39810 + /* Search for the color name. */
39811 + for (i = 0; i < 16; i++)
39812 + if (grub_strcmp (color_list[i], str) == 0)
39824 - nul_terminate (str);
39826 + nul_terminate (str);
39828 - /* Search for the color name. */
39829 - for (i = 0; i < 8; i++)
39830 - if (grub_strcmp (color_list[i], str) == 0)
39835 + /* Search for the color name. */
39836 + for (i = 0; i < 8; i++)
39837 + if (grub_strcmp (color_list[i], str) == 0)
39852 +color_func (char *arg, int flags)
39856 + int new_normal_color;
39857 + int new_highlight_color;
39863 highlight = skip_to (0, arg);
39865 @@ -690,7 +778,6 @@ static struct builtin builtin_color =
39866 " But only the first eight names can be used for BG. You can prefix"
39867 " \"blink-\" to FG if you want a blinking foreground color."
39873 @@ -737,14 +824,18 @@ static struct builtin builtin_configfile =
39875 debug_func (char *arg, int flags)
39878 + int *whichdebug = &debug;
39879 + if (arg && !strcmp(arg, "--graphics"))
39880 + whichdebug = &debug_graphics;
39886 grub_printf (" Debug mode is turned off\n");
39892 grub_printf (" Debug mode is turned on\n");
39895 @@ -755,17 +846,61 @@ static struct builtin builtin_debug =
39900 + BUILTIN_CMDLINE | BUILTIN_MENU,
39902 "Turn on/off the debug mode."
39908 +verbose_func (char *arg, int flags)
39910 + if (grub_verbose)
39912 + grub_verbose = 0;
39913 + grub_printf (" Verbose mode is turned off\n");
39917 + grub_verbose = 1;
39918 + grub_printf (" Verbose mode is turned on\n");
39924 +static struct builtin builtin_verbose =
39928 + BUILTIN_CMDLINE | BUILTIN_MENU,
39930 + "Turn on/off verbose output."
39934 +#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL) && !defined(PLATFORM_EFI)
39935 +static int savedefault_helper(int);
39939 default_func (char *arg, int flags)
39941 #ifndef SUPPORT_DISKLESS
39943 +#ifndef PLATFORM_EFI
39944 + /* Has a forced once-only default been specified? */
39945 + if ((saved_entryno & STAGE2_ONCEONLY_ENTRY) != 0)
39947 + int old_defaults=saved_entryno & ~STAGE2_ONCEONLY_ENTRY;
39948 + grub_timeout = 0;
39949 + default_entry = old_defaults >> 8;
39950 + savedefault_helper(old_defaults & 0xff);
39955 if (grub_strcmp (arg, "saved") == 0)
39957 default_entry = saved_entryno;
39958 @@ -792,7 +927,7 @@ static struct builtin builtin_default =
39963 +#if defined(GRUB_UTIL) || defined(PLATFORM_EFI)
39966 device_func (char *arg, int flags)
39967 @@ -800,16 +935,17 @@ device_func (char *arg, int flags)
39971 - /* Get the drive number from DRIVE. */
39972 - if (! set_device (drive))
39975 /* Get the device argument. */
39976 device = skip_to (0, drive);
39979 + nul_terminate (drive);
39980 /* Terminate DEVICE. */
39981 nul_terminate (device);
39983 + /* Get the drive number from DRIVE. */
39984 + if (! set_device (drive))
39987 if (! *device || ! check_device (device))
39989 errnum = ERR_FILE_NOT_FOUND;
39990 @@ -817,7 +953,7 @@ device_func (char *arg, int flags)
39993 assign_device_name (current_drive, device);
39999 @@ -828,9 +964,20 @@ static struct builtin builtin_device =
40000 BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
40001 "device DRIVE DEVICE",
40002 "Specify DEVICE as the actual drive for a BIOS drive DRIVE. This command"
40003 - " can be used only in the grub shell."
40004 + " can be used only in the grub shell and in EFI."
40006 -#endif /* GRUB_UTIL */
40007 +#endif /* defined(GRUB_UTIL) || defined(PLATFORM_EFI) */
40008 +#ifdef PLATFORM_EFI
40009 +static struct builtin builtin_efimap =
40013 + BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
40014 + "efimap DRIVE DEVICE",
40015 + "Specify DEVICE as the actual drive for a BIOS drive DRIVE. This command"
40016 + " can be used only in EFI."
40018 +#endif /* PLATFORM_EFI */
40021 #ifdef SUPPORT_NETBOOT
40022 @@ -852,6 +999,139 @@ static struct builtin builtin_dhcp =
40024 #endif /* SUPPORT_NETBOOT */
40026 +static int terminal_func (char *arg, int flags);
40028 +#ifdef SUPPORT_GRAPHICS
40030 +static int splashimage_func(char *arg, int flags) {
40031 + char splashimage[64];
40034 + /* filename can only be 64 characters due to our buffer size */
40035 + if (strlen(arg) > 63)
40037 + if (flags == BUILTIN_CMDLINE) {
40038 + if (!grub_open(arg))
40043 + strcpy(splashimage, arg);
40045 + /* get rid of TERM_NEED_INIT from the graphics terminal. */
40046 + for (i = 0; term_table[i].name; i++) {
40047 + if (grub_strcmp (term_table[i].name, "graphics") == 0) {
40048 + term_table[i].flags &= ~TERM_NEED_INIT;
40053 + graphics_set_splash(splashimage);
40055 + if (flags == BUILTIN_CMDLINE && graphics_inited) {
40061 + /* FIXME: should we be explicitly switching the terminal as a
40062 + * side effect here? */
40063 + terminal_func("graphics", flags);
40068 +static struct builtin builtin_splashimage =
40071 + splashimage_func,
40072 + BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
40073 + "splashimage FILE",
40074 + "Load FILE as the background image when in graphics mode."
40080 +foreground_func(char *arg, int flags)
40082 + if (grub_strlen(arg) == 6) {
40083 + int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2;
40084 + int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2;
40085 + int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2;
40087 + foreground = (r << 16) | (g << 8) | b;
40088 + if (graphics_inited)
40089 + graphics_set_palette(15, r, g, b);
40097 +static struct builtin builtin_foreground =
40101 + BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
40102 + "foreground RRGGBB",
40103 + "Sets the foreground color when in graphics mode."
40104 + "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal."
40110 +background_func(char *arg, int flags)
40112 + if (grub_strlen(arg) == 6) {
40113 + int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2;
40114 + int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2;
40115 + int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2;
40117 + background = (r << 16) | (g << 8) | b;
40118 + if (graphics_inited)
40119 + graphics_set_palette(0, r, g, b);
40126 +static struct builtin builtin_background =
40130 + BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
40131 + "background RRGGBB",
40132 + "Sets the background color when in graphics mode."
40133 + "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal."
40136 +#endif /* SUPPORT_GRAPHICS */
40143 + if (current_term->cls)
40144 + current_term->cls();
40149 +static struct builtin builtin_clear =
40153 + BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
40155 + "Clear the screen"
40158 +#ifndef PLATFORM_EFI
40162 @@ -893,6 +1173,7 @@ static struct builtin builtin_displayapm =
40164 "Display APM BIOS information."
40166 +#endif /* !PLATFORM_EFI */
40170 @@ -912,11 +1193,11 @@ displaymem_func (char *arg, int flags)
40171 if (mbi.flags & MB_INFO_MEM_MAP)
40173 struct AddrRangeDesc *map = (struct AddrRangeDesc *) mbi.mmap_addr;
40174 - int end_addr = mbi.mmap_addr + mbi.mmap_length;
40175 + unsigned long end_addr = mbi.mmap_addr + mbi.mmap_length;
40177 grub_printf (" [Address Range Descriptor entries "
40178 "immediately follow (values are 64-bit)]\n");
40179 - while (end_addr > (int) map)
40180 + while (end_addr > (unsigned long) map)
40184 @@ -924,15 +1205,10 @@ displaymem_func (char *arg, int flags)
40185 str = "Usable RAM";
40188 - grub_printf (" %s: Base Address: 0x%x X 4GB + 0x%x,\n"
40189 - " Length: 0x%x X 4GB + 0x%x bytes\n",
40191 - (unsigned long) (map->BaseAddr >> 32),
40192 - (unsigned long) (map->BaseAddr & 0xFFFFFFFF),
40193 - (unsigned long) (map->Length >> 32),
40194 - (unsigned long) (map->Length & 0xFFFFFFFF));
40196 - map = ((struct AddrRangeDesc *) (((int) map) + 4 + map->size));
40197 + grub_printf (" %s: Base Address: 0x%lx Length: 0x%lx bytes\n",
40198 + str, map->BaseAddr, map->Length);
40200 + map = ((struct AddrRangeDesc *) (((unsigned long) map) + 4 + map->size));
40204 @@ -1009,6 +1285,7 @@ static struct builtin builtin_dump =
40206 #endif /* GRUB_UTIL */
40208 +#ifndef PLATFORM_EFI
40210 static char embed_info[32];
40212 @@ -1143,6 +1420,7 @@ static struct builtin builtin_embed =
40213 " is a drive, or in the \"bootloader\" area if DEVICE is a FFS partition."
40214 " Print the number of sectors which STAGE1_5 occupies if successful."
40216 +#endif /* ! PLATFORM_EFI */
40220 @@ -1230,17 +1508,19 @@ find_func (char *arg, int flags)
40224 - for (drive = 0x80; drive < 0x88; drive++)
40225 + for (drive = 0x80; drive < (0x80 + MAX_HD_NUM); drive++)
40227 unsigned long part = 0xFFFFFF;
40228 - unsigned long start, len, offset, ext_offset;
40230 - char buf[SECTOR_SIZE];
40231 + unsigned long start, len, offset, ext_offset, gpt_offset;
40232 + int type, entry, gpt_count, gpt_size;
40233 + int sector_size = get_sector_size(drive);
40234 + char buf[sector_size];
40236 current_drive = drive;
40237 while (next_partition (drive, 0xFFFFFF, &part, &type,
40238 &start, &len, &offset, &entry,
40239 - &ext_offset, buf))
40240 + &ext_offset, &gpt_offset,
40241 + &gpt_count, &gpt_size, buf))
40243 if (type != PC_SLICE_TYPE_NONE
40244 && ! IS_PC_SLICE_TYPE_BSD (type)
40245 @@ -1301,6 +1581,59 @@ static struct builtin builtin_find =
40246 "Search for the filename FILENAME in all of partitions and print the list of"
40247 " the devices which contain the file."
40252 +/* Search for an ISO 9660 partition. */
40254 +findiso_func (char *arg, int flags)
40256 + unsigned long drive;
40257 + unsigned long tmp_drive = saved_drive;
40258 + unsigned long tmp_partition = saved_partition;
40260 + /* Hard disks. */
40261 + for (drive = 0x80; drive < 0x89; drive++)
40263 + unsigned long part = 0xFFFFFF;
40265 + if (drive == 0x88)
40268 + current_drive = drive;
40269 + current_partition = part;
40271 + if (open_device ())
40273 + char *type = get_fsys_type();
40274 + if (!grub_strcmp(type, "iso9660"))
40276 + saved_drive = current_drive;
40277 + saved_partition = current_partition;
40278 + errnum = ERR_NONE;
40283 + /* We want to ignore any error here. */
40284 + errnum = ERR_NONE;
40287 + saved_drive = tmp_drive;
40288 + saved_partition = tmp_partition;
40290 + errnum = ERR_FILE_NOT_FOUND;
40294 +static struct builtin builtin_findiso =
40298 + BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
40299 + "findiso FILENAME",
40300 + "Set root to the first device with a valid ISO 9660 filesystem."
40305 @@ -1679,6 +2012,7 @@ static struct builtin builtin_ifconfig =
40307 #endif /* SUPPORT_NETBOOT */
40309 +#ifndef PLATFORM_EFI
40313 @@ -1706,6 +2040,7 @@ static struct builtin builtin_impsprobe =
40314 " configuration table and boot the various CPUs which are found into"
40317 +#endif /* ! PLATFORM_EFI */
40321 @@ -1738,8 +2073,82 @@ static struct builtin builtin_initrd =
40322 " appropriate parameters in the Linux setup area in memory."
40325 +#ifndef PLATFORM_EFI
40329 + int saved_sector;
40333 + char *stage2_first_buffer;
40334 +} install_func_context = {
40335 + .saved_sector = 0,
40336 + .installaddr = 0,
40337 + .installlist = 0,
40338 + .last_length = SECTOR_SIZE,
40339 + .stage2_first_buffer = NULL,
40342 +/* Save the first sector of Stage2 in STAGE2_SECT. */
40343 +/* Formerly disk_read_savesect_func with local scope inside install_func */
40345 +install_savesect_helper(int sector, int offset, int length)
40348 + printf ("[%d]", sector);
40350 + /* ReiserFS has files which sometimes contain data not aligned
40351 + on sector boundaries. Returning an error is better than
40352 + silently failing. */
40353 + if (offset != 0 || length != SECTOR_SIZE)
40354 + errnum = ERR_UNALIGNED;
40356 + install_func_context.saved_sector = sector;
40359 +/* Write SECTOR to INSTALLLIST, and update INSTALLADDR and INSTALLSECT. */
40360 +/* Formerly disk_read_blocklist_func with local scope inside install_func */
40362 +install_blocklist_helper (int sector, int offset, int length)
40364 + int *installaddr = &install_func_context.installaddr;
40365 + int *installlist = &install_func_context.installlist;
40366 + char **stage2_first_buffer = &install_func_context.stage2_first_buffer;
40367 + /* Was the last sector full? */
40368 + int *last_length = &install_func_context.last_length;
40371 + printf("[%d]", sector);
40373 + if (offset != 0 || *last_length != SECTOR_SIZE)
40375 + /* We found a non-sector-aligned data block. */
40376 + errnum = ERR_UNALIGNED;
40380 + *last_length = length;
40382 + if (*((unsigned long *) (*installlist - 4))
40383 + + *((unsigned short *) *installlist) != sector
40384 + || *installlist == (int) *stage2_first_buffer + SECTOR_SIZE + 4)
40386 + *installlist -= 8;
40388 + if (*((unsigned long *) (*installlist - 8)))
40389 + errnum = ERR_WONT_FIT;
40392 + *((unsigned short *) (*installlist + 2)) = (*installaddr >> 4);
40393 + *((unsigned long *) (*installlist - 4)) = sector;
40397 + *((unsigned short *) *installlist) += 1;
40398 + *installaddr += 512;
40402 install_func (char *arg, int flags)
40404 @@ -1747,8 +2156,12 @@ install_func (char *arg, int flags)
40405 char *stage1_buffer = (char *) RAW_ADDR (0x100000);
40406 char *stage2_buffer = stage1_buffer + SECTOR_SIZE;
40407 char *old_sect = stage2_buffer + SECTOR_SIZE;
40408 - char *stage2_first_buffer = old_sect + SECTOR_SIZE;
40409 - char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE;
40410 + /* stage2_first_buffer used to be defined as:
40411 + * char *stage2_first_buffer = old_sect + SECTOR_SIZE; */
40412 + char **stage2_first_buffer = &install_func_context.stage2_first_buffer;
40413 + /* and stage2_second_buffer was:
40414 + * char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE; */
40415 + char *stage2_second_buffer = old_sect + SECTOR_SIZE + SECTOR_SIZE;
40416 /* XXX: Probably SECTOR_SIZE is reasonable. */
40417 char *config_filename = stage2_second_buffer + SECTOR_SIZE;
40418 char *dummy = config_filename + SECTOR_SIZE;
40419 @@ -1757,10 +2170,11 @@ install_func (char *arg, int flags)
40420 int src_drive, src_partition, src_part_start;
40422 struct geometry dest_geom, src_geom;
40423 - int saved_sector;
40424 + int *saved_sector = &install_func_context.saved_sector;
40425 int stage2_first_sector, stage2_second_sector;
40427 - int installaddr, installlist;
40428 + int *installaddr = &install_func_context.installaddr;
40429 + int *installlist = &install_func_context.installlist;
40430 /* Point to the location of the name of a configuration file in Stage 2. */
40431 char *config_file_location;
40432 /* If FILE is a Stage 1.5? */
40433 @@ -1769,68 +2183,18 @@ install_func (char *arg, int flags)
40435 /* If LBA is forced? */
40436 int is_force_lba = 0;
40437 - /* Was the last sector full? */
40438 - int last_length = SECTOR_SIZE;
40439 + int *last_length = &install_func_context.last_length;
40441 + /* Reset state. */
40442 + *last_length = SECTOR_SIZE;
40444 + *stage2_first_buffer = old_sect + SECTOR_SIZE;
40446 /* If the Stage 2 is in a partition mounted by an OS, this will store
40447 the filename under the OS. */
40448 char *stage2_os_file = 0;
40449 #endif /* GRUB_UTIL */
40451 - auto void disk_read_savesect_func (int sector, int offset, int length);
40452 - auto void disk_read_blocklist_func (int sector, int offset, int length);
40454 - /* Save the first sector of Stage2 in STAGE2_SECT. */
40455 - auto void disk_read_savesect_func (int sector, int offset, int length)
40458 - printf ("[%d]", sector);
40460 - /* ReiserFS has files which sometimes contain data not aligned
40461 - on sector boundaries. Returning an error is better than
40462 - silently failing. */
40463 - if (offset != 0 || length != SECTOR_SIZE)
40464 - errnum = ERR_UNALIGNED;
40466 - saved_sector = sector;
40469 - /* Write SECTOR to INSTALLLIST, and update INSTALLADDR and
40471 - auto void disk_read_blocklist_func (int sector, int offset, int length)
40474 - printf("[%d]", sector);
40476 - if (offset != 0 || last_length != SECTOR_SIZE)
40478 - /* We found a non-sector-aligned data block. */
40479 - errnum = ERR_UNALIGNED;
40483 - last_length = length;
40485 - if (*((unsigned long *) (installlist - 4))
40486 - + *((unsigned short *) installlist) != sector
40487 - || installlist == (int) stage2_first_buffer + SECTOR_SIZE + 4)
40489 - installlist -= 8;
40491 - if (*((unsigned long *) (installlist - 8)))
40492 - errnum = ERR_WONT_FIT;
40495 - *((unsigned short *) (installlist + 2)) = (installaddr >> 4);
40496 - *((unsigned long *) (installlist - 4)) = sector;
40500 - *((unsigned short *) installlist) += 1;
40501 - installaddr += 512;
40504 /* First, check the GNU-style long option. */
40507 @@ -1862,10 +2226,10 @@ install_func (char *arg, int flags)
40508 addr = skip_to (0, file);
40510 /* Get the installation address. */
40511 - if (! safe_parse_maxint (&addr, &installaddr))
40512 + if (! safe_parse_maxint (&addr, installaddr))
40514 /* ADDR is not specified. */
40516 + *installaddr = 0;
40520 @@ -1961,17 +2325,17 @@ install_func (char *arg, int flags)
40523 /* Read the first sector of Stage 2. */
40524 - disk_read_hook = disk_read_savesect_func;
40525 - if (grub_read (stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE)
40526 + disk_read_hook = install_savesect_helper;
40527 + if (grub_read (*stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE)
40530 - stage2_first_sector = saved_sector;
40531 + stage2_first_sector = *saved_sector;
40533 /* Read the second sector of Stage 2. */
40534 if (grub_read (stage2_second_buffer, SECTOR_SIZE) != SECTOR_SIZE)
40537 - stage2_second_sector = saved_sector;
40538 + stage2_second_sector = *saved_sector;
40540 /* Check for the version of Stage 2. */
40541 if (*((short *) (stage2_second_buffer + STAGE2_VER_MAJ_OFFS))
40542 @@ -1987,27 +2351,27 @@ install_func (char *arg, int flags)
40544 /* If INSTALLADDR is not specified explicitly in the command-line,
40545 determine it by the Stage 2 id. */
40546 - if (! installaddr)
40547 + if (! *installaddr)
40551 - installaddr = 0x8000;
40552 + *installaddr = 0x8000;
40555 - installaddr = 0x2000;
40556 + *installaddr = 0x2000;
40559 *((unsigned long *) (stage1_buffer + STAGE1_STAGE2_SECTOR))
40560 = stage2_first_sector;
40561 *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_ADDRESS))
40564 *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_SEGMENT))
40565 - = installaddr >> 4;
40566 + = *installaddr >> 4;
40568 - i = (int) stage2_first_buffer + SECTOR_SIZE - 4;
40569 + i = (int) *stage2_first_buffer + SECTOR_SIZE - 4;
40570 while (*((unsigned long *) i))
40572 - if (i < (int) stage2_first_buffer
40573 + if (i < (int) *stage2_first_buffer
40574 || (*((int *) (i - 4)) & 0x80000000)
40575 || *((unsigned short *) i) >= 0xA00
40576 || *((short *) (i + 2)) == 0)
40577 @@ -2021,13 +2385,13 @@ install_func (char *arg, int flags)
40581 - installlist = (int) stage2_first_buffer + SECTOR_SIZE + 4;
40582 - installaddr += SECTOR_SIZE;
40583 + *installlist = (int) *stage2_first_buffer + SECTOR_SIZE + 4;
40584 + *installaddr += SECTOR_SIZE;
40586 /* Read the whole of Stage2 except for the first sector. */
40587 grub_seek (SECTOR_SIZE);
40589 - disk_read_hook = disk_read_blocklist_func;
40590 + disk_read_hook = install_blocklist_helper;
40591 if (! grub_read (dummy, -1))
40594 @@ -2110,7 +2474,7 @@ install_func (char *arg, int flags)
40595 /* Skip the first sector. */
40596 grub_seek (SECTOR_SIZE);
40598 - disk_read_hook = disk_read_savesect_func;
40599 + disk_read_hook = install_savesect_helper;
40600 if (grub_read (stage2_buffer, SECTOR_SIZE) != SECTOR_SIZE)
40603 @@ -2180,7 +2544,7 @@ install_func (char *arg, int flags)
40605 #endif /* GRUB_UTIL */
40607 - if (! devwrite (saved_sector - part_start, 1, stage2_buffer))
40608 + if (! devwrite (*saved_sector - part_start, 1, stage2_buffer))
40612 @@ -2202,7 +2566,7 @@ install_func (char *arg, int flags)
40616 - if (fwrite (stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
40617 + if (fwrite (*stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
40620 errnum = ERR_WRITE;
40621 @@ -2229,7 +2593,7 @@ install_func (char *arg, int flags)
40624 if (! devwrite (stage2_first_sector - src_part_start, 1,
40625 - stage2_first_buffer))
40626 + *stage2_first_buffer))
40629 if (! devwrite (stage2_second_sector - src_part_start, 1,
40630 @@ -2322,6 +2686,7 @@ static struct builtin builtin_ioprobe =
40632 "Probe I/O ports used for the drive DRIVE."
40634 +#endif /* ! PLATFORM_EFI */
40638 @@ -2456,6 +2821,7 @@ static struct builtin builtin_makeactive =
40639 " This command is limited to _primary_ PC partitions on a hard disk."
40642 +#ifndef PLATFORM_EFI
40645 /* Map FROM_DRIVE to TO_DRIVE. */
40646 @@ -2519,6 +2885,7 @@ static struct builtin builtin_map =
40647 " when you chain-load some operating systems, such as DOS, if such an"
40648 " OS resides at a non-first drive."
40650 +#endif /* ! PLATFORM_EFI */
40653 #ifdef USE_MD5_PASSWORDS
40654 @@ -2579,6 +2946,7 @@ static struct builtin builtin_md5crypt =
40656 #endif /* USE_MD5_PASSWORDS */
40658 +#ifndef PLATFORM_EFI
40662 @@ -2656,6 +3024,7 @@ static struct builtin builtin_modulenounzip =
40663 "The same as `module', except that automatic decompression is"
40666 +#endif /* !PLATFORM_EFI */
40669 /* pager [on|off] */
40670 @@ -2698,7 +3067,6 @@ partnew_func (char *arg, int flags)
40671 int start_cl, start_ch, start_dh;
40672 int end_cl, end_ch, end_dh;
40676 /* Convert a LBA address to a CHS address in the INT 13 format. */
40677 auto void lba_to_chs (int lba, int *cl, int *ch, int *dh);
40678 @@ -2729,6 +3097,9 @@ partnew_func (char *arg, int flags)
40682 + int sector_size = get_sector_size(current_drive);
40683 + char mbr[sector_size];
40685 /* The partition must a primary partition. */
40686 if ((current_partition >> 16) > 3
40687 || (current_partition & 0xFFFF) != 0xFFFF)
40688 @@ -2762,7 +3133,7 @@ partnew_func (char *arg, int flags)
40691 /* Read the MBR. */
40692 - if (! rawread (current_drive, 0, 0, SECTOR_SIZE, mbr))
40693 + if (! rawread (current_drive, 0, 0, sector_size, mbr))
40696 /* Check if the new partition will fit in the disk. */
40697 @@ -2815,9 +3186,8 @@ parttype_func (char *arg, int flags)
40700 unsigned long part = 0xFFFFFF;
40701 - unsigned long start, len, offset, ext_offset;
40704 + unsigned long start, len, offset, ext_offset, gpt_offset;
40705 + int entry, type, gpt_count, gpt_size;
40707 /* Get the drive and the partition. */
40708 if (! set_device (arg))
40709 @@ -2829,6 +3199,9 @@ parttype_func (char *arg, int flags)
40710 errnum = ERR_BAD_ARGUMENT;
40714 + int sector_size = get_sector_size(current_drive);
40715 + char mbr[sector_size];
40717 /* The partition must be a PC slice. */
40718 if ((current_partition >> 16) == 0xFF
40719 @@ -2853,8 +3226,15 @@ parttype_func (char *arg, int flags)
40720 /* Look for the partition. */
40721 while (next_partition (current_drive, 0xFFFFFF, &part, &type,
40722 &start, &len, &offset, &entry,
40723 - &ext_offset, mbr))
40724 + &ext_offset, &gpt_offset, &gpt_count, &gpt_size, mbr))
40726 + /* The partition may not be a GPT partition. */
40727 + if (gpt_offset != 0)
40729 + errnum = ERR_BAD_ARGUMENT;
40733 if (part == current_partition)
40736 @@ -2900,6 +3280,11 @@ password_func (char *arg, int flags)
40737 arg = skip_to (0, arg);
40740 + else if (grub_memcmp (arg, "--encrypted", 5) == 0)
40742 + type = PASSWORD_ENCRYPTED;
40743 + arg = skip_to (0, arg);
40745 if (grub_memcmp (arg, "--", 2) == 0)
40747 type = PASSWORD_UNSUPPORTED;
40748 @@ -2947,7 +3332,7 @@ static struct builtin builtin_password =
40751 BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_NO_ECHO,
40752 - "password [--md5] PASSWD [FILE]",
40753 + "password [--md5|--encrypted] PASSWD [FILE]",
40754 "If used in the first section of a menu file, disable all"
40755 " interactive editing control (menu entry editor and"
40756 " command line). If the password PASSWD is entered, it loads the"
40757 @@ -2956,7 +3341,8 @@ static struct builtin builtin_password =
40758 " instructions. You can also use it in the script section, in"
40759 " which case it will ask for the password, before continueing."
40760 " The option --md5 tells GRUB that PASSWD is encrypted with"
40762 + " md5crypt, --encrypted that PASSWD is encrypted (with algorithm"
40763 + " specified in PASSWD: supported is md5, sha-256, sha-512)."
40767 @@ -2982,8 +3368,8 @@ static struct builtin builtin_pause =
40768 "Print MESSAGE, then wait until a key is pressed."
40771 +#if defined (GRUB_UTIL) || defined (PLATFORM_EFI)
40776 quit_func (char *arg, int flags)
40777 @@ -3002,7 +3388,7 @@ static struct builtin builtin_quit =
40779 "Exit from the GRUB shell."
40781 -#endif /* GRUB_UTIL */
40782 +#endif /* defined (GRUB_UTIL) || defined (PLATFORM_EFI) */
40785 #ifdef SUPPORT_NETBOOT
40786 @@ -3165,7 +3551,8 @@ real_root_func (char *arg, int attempt_mount)
40789 /* Print the type of the filesystem. */
40790 - print_fsys_type ();
40791 + if (grub_verbose)
40792 + print_fsys_type ();
40796 @@ -3217,146 +3604,181 @@ static struct builtin builtin_rootnoverify =
40802 +#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL) && !defined(PLATFORM_EFI)
40803 +/* Write specified default entry number into stage2 file. */
40805 -savedefault_func (char *arg, int flags)
40806 +savedefault_helper(int new_default)
40808 -#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL)
40809 - unsigned long tmp_drive = saved_drive;
40810 - unsigned long tmp_partition = saved_partition;
40811 - char *default_file = (char *) DEFAULT_FILE_BUF;
40813 - char sect[SECTOR_SIZE];
40815 - int sector_count = 0;
40816 - int saved_sectors[2];
40817 - int saved_offsets[2];
40818 - int saved_lengths[2];
40820 - /* Save sector information about at most two sectors. */
40821 - auto void disk_read_savesect_func (int sector, int offset, int length);
40822 - void disk_read_savesect_func (int sector, int offset, int length)
40824 - if (sector_count < 2)
40826 - saved_sectors[sector_count] = sector;
40827 - saved_offsets[sector_count] = offset;
40828 - saved_lengths[sector_count] = length;
40833 - /* This command is only useful when you boot an entry from the menu
40835 - if (! (flags & BUILTIN_SCRIPT))
40836 + char buffer[512];
40837 + int *entryno_ptr;
40839 + /* Get the geometry of the boot drive (i.e. the disk which contains
40841 + if (get_diskinfo (boot_drive, &buf_geom))
40843 - errnum = ERR_UNRECOGNIZED;
40844 + errnum = ERR_NO_DISK;
40848 - /* Determine a saved entry number. */
40850 + /* Load the second sector of this stage2. */
40851 + if (! rawread (boot_drive, install_second_sector, 0, SECTOR_SIZE, buffer))
40853 - if (grub_memcmp (arg, "fallback", sizeof ("fallback") - 1) == 0)
40858 - for (i = 0; i < MAX_FALLBACK_ENTRIES; i++)
40860 - if (fallback_entries[i] < 0)
40862 - if (fallback_entries[i] == current_entryno)
40869 - if (index >= MAX_FALLBACK_ENTRIES || fallback_entries[index] < 0)
40871 - /* This is the last. */
40872 - errnum = ERR_BAD_ARGUMENT;
40878 - entryno = fallback_entries[index];
40880 - else if (! safe_parse_maxint (&arg, &entryno))
40882 + /* Sanity check. */
40883 + if (buffer[STAGE2_STAGE2_ID] != STAGE2_ID_STAGE2
40884 + || *((short *) (buffer + STAGE2_VER_MAJ_OFFS)) != COMPAT_VERSION)
40886 + errnum = ERR_BAD_VERSION;
40890 - entryno = current_entryno;
40892 + entryno_ptr = (int *) (buffer + STAGE2_SAVED_ENTRYNO);
40894 - /* Open the default file. */
40895 - saved_drive = boot_drive;
40896 - saved_partition = install_partition;
40897 - if (grub_open (default_file))
40898 + /* Check if the saved entry number differs from current entry number. */
40899 + if (*entryno_ptr != new_default)
40902 + /* Overwrite the saved entry number. */
40903 + *entryno_ptr = new_default;
40905 - disk_read_hook = disk_read_savesect_func;
40906 - len = grub_read (buf, sizeof (buf));
40907 - disk_read_hook = 0;
40909 + /* Save the image in the disk. */
40910 + if (! rawwrite (boot_drive, install_second_sector, buffer))
40913 - if (len != sizeof (buf))
40915 - /* This is too small. Do not modify the file manually, please! */
40916 - errnum = ERR_READ;
40919 + /* Clear the cache. */
40923 - if (sector_count > 2)
40925 - /* Is this possible?! Too fragmented! */
40926 - errnum = ERR_FSYS_CORRUPT;
40930 - /* Set up a string to be written. */
40931 - grub_memset (buf, '\n', sizeof (buf));
40932 - grub_sprintf (buf, "%d", entryno);
40934 - if (saved_lengths[0] < sizeof (buf))
40936 - /* The file is anchored to another file and the first few bytes
40937 - are spanned in two sectors. Uggh... */
40938 - if (! rawread (current_drive, saved_sectors[0], 0, SECTOR_SIZE,
40941 - grub_memmove (sect + saved_offsets[0], buf, saved_lengths[0]);
40942 - if (! rawwrite (current_drive, saved_sectors[0], sect))
40948 - if (! rawread (current_drive, saved_sectors[1], 0, SECTOR_SIZE,
40951 - grub_memmove (sect + saved_offsets[1],
40952 - buf + saved_lengths[0],
40953 - sizeof (buf) - saved_lengths[0]);
40954 - if (! rawwrite (current_drive, saved_sectors[1], sect))
40957 +#if !defined(SUPPORT_DISKLESS) && defined(GRUB_UTIL)
40958 +#define SECTOR_SIZE 0x200
40960 + * Full implementation of new `savedefault' for GRUB shell.
40961 + * XXX This needs fixing for stage2 files which aren't accessible
40962 + * through a mounted filesystem.
40965 +savedefault_shell(char *arg, int flags)
40967 + char *stage2_os_file = "/boot/grub/stage2"; /* Default filename */
40969 + char buffer[512];
40970 + int *entryno_ptr;
40971 + int new_default = 0;
40972 + int old_default = 0;
40976 + if (grub_memcmp ("--stage2=", arg, sizeof ("--stage2=") - 1) == 0)
40978 + stage2_os_file = arg + sizeof ("--stage2=") - 1;
40979 + arg = skip_to (0, arg);
40980 + nul_terminate (stage2_os_file);
40982 + else if (grub_memcmp ("--default=", arg, sizeof ("--default=") - 1) == 0)
40984 + char *p = arg + sizeof ("--default=") - 1;
40985 + if (! safe_parse_maxint (&p, &new_default))
40987 + arg = skip_to (0, arg);
40989 + else if (grub_memcmp ("--once", arg, sizeof ("--once") - 1) == 0)
40991 + new_default <<= 8;
40992 + new_default |= STAGE2_ONCEONLY_ENTRY;
40993 + arg = skip_to (0, arg);
40997 - /* This is a simple case. It fits into a single sector. */
40998 - if (! rawread (current_drive, saved_sectors[0], 0, SECTOR_SIZE,
41001 - grub_memmove (sect + saved_offsets[0], buf, sizeof (buf));
41002 - if (! rawwrite (current_drive, saved_sectors[0], sect))
41008 - /* Clear the cache. */
41010 + if (! (fp = fopen(stage2_os_file, "r+")))
41012 + errnum = ERR_FILE_NOT_FOUND;
41016 + if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0)
41019 + errnum = ERR_BAD_VERSION;
41023 + if (fread (buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
41026 + errnum = ERR_READ;
41031 - saved_drive = tmp_drive;
41032 - saved_partition = tmp_partition;
41034 + /* Sanity check. */
41035 + if (buffer[STAGE2_STAGE2_ID] != STAGE2_ID_STAGE2
41036 + || *((short *) (buffer + STAGE2_VER_MAJ_OFFS)) != COMPAT_VERSION)
41038 + errnum = ERR_BAD_VERSION;
41042 + entryno_ptr = (int *) (buffer + STAGE2_SAVED_ENTRYNO);
41043 + if (new_default & STAGE2_ONCEONLY_ENTRY)
41045 + old_default=*entryno_ptr;
41046 + *entryno_ptr = new_default + (old_default & 0xFF);
41050 + *entryno_ptr = new_default;
41053 + if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0)
41056 + errnum = ERR_BAD_VERSION;
41060 + if (fwrite (buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
41063 + errnum = ERR_WRITE;
41067 + (void)fflush (fp);
41071 +#undef SECTOR_SIZE
41076 +savedefault_func (char *arg, int flags)
41078 +#if !defined(SUPPORT_DISKLESS)
41079 +#if !defined(GRUB_UTIL)
41080 +#if !defined(PLATFORM_EFI)
41081 + /* This command is only useful when you boot an entry from the menu
41083 + if (! (flags & BUILTIN_SCRIPT))
41085 + errnum = ERR_UNRECOGNIZED;
41089 + return savedefault_helper(current_entryno);
41090 +#else /* defined(PLATFORM_EFI) */
41091 + return grub_save_saved_default (current_entryno);
41093 +#else /* defined(GRUB_UTIL) */
41094 + return savedefault_shell(arg, flags);
41096 #else /* ! SUPPORT_DISKLESS && ! GRUB_UTIL */
41097 errnum = ERR_UNRECOGNIZED;
41099 @@ -3368,10 +3790,14 @@ static struct builtin builtin_savedefault =
41103 - "savedefault [NUM | `fallback']",
41104 - "Save the current entry as the default boot entry if no argument is"
41105 - " specified. If a number is specified, this number is saved. If"
41106 - " `fallback' is used, next fallback entry is saved."
41108 + "savedefault [--stage2=STAGE2_FILE] [--default=DEFAULT] [--once]",
41109 + "Save DEFAULT as the default boot entry in STAGE2_FILE. If '--once'"
41110 + " is specified, the default is reset after the next reboot."
41113 + "Save the current entry as the default boot entry."
41118 @@ -3527,6 +3953,7 @@ static struct builtin builtin_serial =
41120 #endif /* SUPPORT_SERIAL */
41122 +#ifndef PLATFORM_EFI
41126 @@ -3612,50 +4039,47 @@ static struct keysym keysym_table[] =
41127 {"delete", 0, 0x7f, 0, 0x53}
41131 -setkey_func (char *arg, int flags)
41132 +static int find_key_code (char *key)
41134 - char *to_key, *from_key;
41135 - int to_code, from_code;
41136 - int map_in_interrupt = 0;
41138 - auto int find_key_code (char *key);
41139 - auto int find_ascii_code (char *key);
41141 - auto int find_key_code (char *key)
41146 - for (i = 0; i < sizeof (keysym_table) / sizeof (keysym_table[0]); i++)
41148 - if (keysym_table[i].unshifted_name &&
41149 - grub_strcmp (key, keysym_table[i].unshifted_name) == 0)
41150 - return keysym_table[i].keycode;
41151 - else if (keysym_table[i].shifted_name &&
41152 - grub_strcmp (key, keysym_table[i].shifted_name) == 0)
41153 - return keysym_table[i].keycode;
41157 + for (i = 0; i < sizeof (keysym_table) / sizeof (keysym_table[0]); i++)
41159 + if (keysym_table[i].unshifted_name &&
41160 + grub_strcmp (key, keysym_table[i].unshifted_name) == 0)
41161 + return keysym_table[i].keycode;
41162 + else if (keysym_table[i].shifted_name &&
41163 + grub_strcmp (key, keysym_table[i].shifted_name) == 0)
41164 + return keysym_table[i].keycode;
41167 - auto int find_ascii_code (char *key)
41171 +static int find_ascii_code (char *key)
41175 + for (i = 0; i < sizeof (keysym_table) / sizeof (keysym_table[0]); i++)
41179 - for (i = 0; i < sizeof (keysym_table) / sizeof (keysym_table[0]); i++)
41181 - if (keysym_table[i].unshifted_name &&
41182 - grub_strcmp (key, keysym_table[i].unshifted_name) == 0)
41183 - return keysym_table[i].unshifted_ascii;
41184 - else if (keysym_table[i].shifted_name &&
41185 - grub_strcmp (key, keysym_table[i].shifted_name) == 0)
41186 - return keysym_table[i].shifted_ascii;
41190 + if (keysym_table[i].unshifted_name &&
41191 + grub_strcmp (key, keysym_table[i].unshifted_name) == 0)
41192 + return keysym_table[i].unshifted_ascii;
41193 + else if (keysym_table[i].shifted_name &&
41194 + grub_strcmp (key, keysym_table[i].shifted_name) == 0)
41195 + return keysym_table[i].shifted_ascii;
41202 +setkey_func (char *arg, int flags)
41204 + char *to_key, *from_key;
41205 + int to_code, from_code;
41206 + int map_in_interrupt = 0;
41209 from_key = skip_to (0, to_key);
41211 @@ -3830,15 +4254,15 @@ setup_func (char *arg, int flags)
41214 grub_sprintf (tmp, ",%d", (partition >> 16) & 0xFF);
41215 - grub_strncat (device, tmp, 256);
41216 + grub_strncat (device, tmp, 16);
41218 if ((partition & 0x00FF00) != 0x00FF00)
41221 grub_sprintf (tmp, ",%c", 'a' + ((partition >> 8) & 0xFF));
41222 - grub_strncat (device, tmp, 256);
41223 + grub_strncat (device, tmp, 16);
41225 - grub_strncat (device, ")", 256);
41226 + grub_strncat (device, ")", 16);
41229 int embed_stage1_5 (char *stage1_5, int drive, int partition)
41230 @@ -3973,7 +4397,7 @@ setup_func (char *arg, int flags)
41232 /* The prefix was determined. */
41233 grub_sprintf (stage2, "%s%s", prefix, "/stage2");
41234 - grub_sprintf (config_filename, "%s%s", prefix, "/menu.lst");
41235 + grub_sprintf (config_filename, "%s%s", prefix, "/grub.conf");
41236 *real_config_filename = 0;
41238 /* Check if stage2 exists. */
41239 @@ -4083,9 +4507,26 @@ static struct builtin builtin_setup =
41240 " partition where GRUB images reside, specify the option `--stage2'"
41241 " to tell GRUB the file name under your OS."
41243 +#endif /* ! PLATFORM_EFI */
41247 +silent_func (char *arg, int flags)
41253 +static struct builtin builtin_silent =
41257 + BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
41258 + "grub will attempt to avoid printing anything to the screen"
41262 -#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES)
41263 +#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS)
41266 terminal_func (char *arg, int flags)
41267 @@ -4244,17 +4685,21 @@ terminal_func (char *arg, int flags)
41269 current_term = term_table + default_term;
41270 current_term->flags = term_flags;
41276 - /* 24 would be a good default value. */
41279 + max_lines = current_term->max_lines;
41281 /* If the interface is currently the command-line,
41282 restart it to repaint the screen. */
41283 - if (current_term != prev_term && (flags & BUILTIN_CMDLINE))
41284 + if ((current_term != prev_term) && (flags & BUILTIN_CMDLINE)){
41285 + if (prev_term->shutdown)
41286 + prev_term->shutdown();
41287 + if (current_term->startup)
41288 + current_term->startup();
41289 grub_longjmp (restart_cmdline_env, 0);
41294 @@ -4264,7 +4709,7 @@ static struct builtin builtin_terminal =
41297 BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
41298 - "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules]",
41299 + "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules] [graphics]",
41300 "Select a terminal. When multiple terminals are specified, wait until"
41301 " you push any key to continue. If both console and serial are specified,"
41302 " the terminal to which you input a key first will be selected. If no"
41303 @@ -4276,7 +4721,7 @@ static struct builtin builtin_terminal =
41304 " seconds. The option --lines specifies the maximum number of lines."
41305 " The option --silent is used to suppress messages."
41307 -#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */
41308 +#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */
41311 #ifdef SUPPORT_SERIAL
41312 @@ -4462,6 +4907,7 @@ static struct builtin builtin_testload =
41313 " step is to try loading a kernel."
41316 +#ifndef PLATFORM_EFI
41320 @@ -4566,6 +5012,7 @@ static struct builtin builtin_testvbe =
41322 "Test the VBE mode MODE. Hit any key to return."
41324 +#endif /* !PLATFORM_EFI */
41327 #ifdef SUPPORT_NETBOOT
41328 @@ -4598,6 +5045,15 @@ static struct builtin builtin_tftpserver =
41330 timeout_func (char *arg, int flags)
41332 + /* One-shot default shenanigans -- don't piss around with the menu! */
41333 + if (grub_timeout != -1)
41335 + if ((saved_entryno & STAGE2_ONCEONLY_ENTRY) != 0)
41337 + grub_timeout = 0;
41341 if (! safe_parse_maxint (&arg, &grub_timeout))
41344 @@ -4661,6 +5117,7 @@ static struct builtin builtin_unhide =
41345 " partition type code."
41348 +#ifndef PLATFORM_EFI
41352 @@ -4790,11 +5247,34 @@ static struct builtin builtin_vbeprobe =
41353 "Probe VBE information. If the mode number MODE is specified, show only"
41354 " the information about only the mode."
41357 +#endif /* ! PLATFORM_EFI */
41362 +version_func (char *arg, int flags)
41364 + grub_printf ("\n GNU GRUB version %s (%dK lower / %dK upper memory)\n\n",
41365 + version_string, mbi.mem_lower, mbi.mem_upper);
41369 +static struct builtin builtin_version =
41373 + BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
41375 + "Display grub version."
41379 /* The table of builtin commands. Sorted in dictionary order. */
41380 struct builtin *builtin_table[] =
41382 +#ifdef SUPPORT_GRAPHICS
41383 + &builtin_background,
41385 &builtin_blocklist,
41387 #ifdef SUPPORT_NETBOOT
41388 @@ -4802,25 +5282,37 @@ struct builtin *builtin_table[] =
41389 #endif /* SUPPORT_NETBOOT */
41391 &builtin_chainloader,
41395 &builtin_configfile,
41399 +#if defined(GRUB_UTIL) || defined(PLATFORM_EFI)
41401 -#endif /* GRUB_UTIL */
41402 +#endif /* defined(GRUB_UTIL) || defined(PLATFORM_EFI) */
41403 #ifdef SUPPORT_NETBOOT
41405 #endif /* SUPPORT_NETBOOT */
41406 +#ifndef PLATFORM_EFI
41407 &builtin_displayapm,
41409 &builtin_displaymem,
41412 #endif /* GRUB_UTIL */
41413 +#ifdef PLATFORM_EFI
41416 +#ifndef PLATFORM_EFI
41421 + &builtin_findiso,
41422 +#ifdef SUPPORT_GRAPHICS
41423 + &builtin_foreground,
41428 @@ -4830,27 +5322,35 @@ struct builtin *builtin_table[] =
41429 #ifdef SUPPORT_NETBOOT
41431 #endif /* SUPPORT_NETBOOT */
41432 +#ifndef PLATFORM_EFI
41433 &builtin_impsprobe,
41436 +#ifndef PLATFORM_EFI
41442 &builtin_makeactive,
41443 +#ifndef PLATFORM_EFI
41446 #ifdef USE_MD5_PASSWORDS
41448 #endif /* USE_MD5_PASSWORDS */
41449 +#ifndef PLATFORM_EFI
41451 &builtin_modulenounzip,
41459 +#if defined(GRUB_UTIL) || defined(PLATFORM_EFI)
41461 -#endif /* GRUB_UTIL */
41462 +#endif /* defined(GRUB_UTIL) || defined(PLATFORM_EFI) */
41463 #ifdef SUPPORT_NETBOOT
41465 #endif /* SUPPORT_NETBOOT */
41466 @@ -4862,23 +5362,35 @@ struct builtin *builtin_table[] =
41467 #ifdef SUPPORT_SERIAL
41469 #endif /* SUPPORT_SERIAL */
41470 +#ifndef PLATFORM_EFI
41473 -#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES)
41476 +#ifdef SUPPORT_GRAPHICS
41477 + &builtin_splashimage,
41478 +#endif /* SUPPORT_GRAPHICS */
41479 +#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS)
41481 -#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */
41482 +#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */
41483 #ifdef SUPPORT_SERIAL
41485 #endif /* SUPPORT_SERIAL */
41487 +#ifndef PLATFORM_EFI
41490 #ifdef SUPPORT_NETBOOT
41491 &builtin_tftpserver,
41492 #endif /* SUPPORT_NETBOOT */
41496 +#ifndef PLATFORM_EFI
41500 + &builtin_verbose,
41501 + &builtin_version,
41504 diff --git a/stage2/char_io.c b/stage2/char_io.c
41505 index c86c240..073201a 100644
41506 --- a/stage2/char_io.c
41507 +++ b/stage2/char_io.c
41508 @@ -35,29 +35,37 @@ struct term_entry term_table[] =
41516 + console_keystatus,
41520 console_setcolorstate,
41522 - console_setcursor
41523 + console_setcursor,
41527 #ifdef SUPPORT_SERIAL
41530 /* A serial device must be initialized. */
41540 serial_setcolorstate,
41546 #endif /* SUPPORT_SERIAL */
41547 @@ -65,17 +73,39 @@ struct term_entry term_table[] =
41555 + console_keystatus,
41559 hercules_setcolorstate,
41561 - hercules_setcursor
41562 + hercules_setcursor,
41566 #endif /* SUPPORT_HERCULES */
41567 +#ifdef SUPPORT_GRAPHICS
41569 + TERM_NEED_INIT, /* flags */
41570 + 30, /* number of lines */
41571 + graphics_putchar, /* putchar */
41572 + console_checkkey, /* checkkey */
41573 + console_getkey, /* getkey */
41574 + console_keystatus, /* keystatus */
41575 + graphics_getxy, /* getxy */
41576 + graphics_gotoxy, /* gotoxy */
41577 + graphics_cls, /* cls */
41578 + graphics_setcolorstate, /* setcolorstate */
41579 + graphics_setcolor, /* setcolor */
41580 + graphics_setcursor, /* nocursor */
41581 + graphics_init, /* initialize */
41582 + graphics_end /* shutdown */
41584 +#endif /* SUPPORT_GRAPHICS */
41585 /* This must be the last entry. */
41586 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
41588 @@ -101,16 +131,16 @@ print_error (void)
41592 -convert_to_ascii (char *buf, int c,...)
41593 +convert_to_ascii (char *buf, int c, unsigned int num)
41595 - unsigned long num = *((&c) + 1), mult = 10;
41596 + unsigned int mult = 10;
41600 if (c == 'x' || c == 'X')
41603 - if ((num & 0x80000000uL) && c == 'd')
41604 + if ((int) num < 0 && c == 'd')
41608 @@ -149,87 +179,266 @@ grub_putstr (const char *str)
41609 grub_putchar (*str++);
41613 -grub_printf (const char *format,...)
41614 +static void write_char(char **str, char c, int *count)
41616 - int *dataptr = (int *) &format;
41621 - while ((c = *(format++)) != 0)
41624 - grub_putchar (c);
41626 - switch (c = *(format++))
41634 - *convert_to_ascii (str, c, *((unsigned long *) dataptr++)) = 0;
41635 - grub_putstr (str);
41640 - grub_putchar ((*(dataptr++)) & 0xff);
41650 - grub_putstr ((char *) *(dataptr++));
41654 +static void write_str(char **str, char *s, int *count)
41658 + write_char(str, *s++, count);
41660 + write_str(str, "(nil)", count);
41665 +#define format_ascii(buf, val, is_hex, is_cap, num_pad_chars) ({ \
41666 + int _n = sizeof ((buf)) - 2; \
41667 + typeof(val) _nval = (val); \
41668 + int _negative = 0; \
41669 + int _mult = is_hex ? 16 : 10; \
41670 + char _a = is_cap ? 'A' : 'a'; \
41671 + int _pad = num_pad_chars; \
41672 + char hex[] = "0123456789abcdef"; \
41673 + memset((buf), '\0', sizeof ((buf))); \
41674 + if (!(_nval > 0LL)) \
41676 + if (_nval == 0LL) \
41679 + _nval = (_nval ^ -1); \
41681 + int _dig = _nval % _mult; \
41682 + (buf)[_n--] = ((_dig > 9) ? _dig + _a - 10 : '0'+_dig); \
41683 + if (_pad > 0) _pad--; \
41684 + } while (_nval /= _mult); \
41686 + (buf)[_n--] = '0'; \
41688 + (buf)[_n--] = '-'; \
41691 + while (_n < sizeof ((buf))) \
41692 + (buf)[_mult++] = (buf)[_n++]; \
41693 + if (_negative && _mult > 1) \
41694 + ((buf)[_mult-2])++; \
41698 -grub_sprintf (char *buffer, const char *format, ...)
41699 +grub_vsprintf (char *str, const char *fmt, va_list args)
41702 - ugly hack -- should unify with printf() */
41703 - int *dataptr = (int *) &format;
41704 - char c, *ptr, str[16];
41705 - char *bp = buffer;
41709 - while ((c = *format++) != 0)
41712 - *bp++ = c; /* putchar(c); */
41714 - switch (c = *(format++))
41716 - case 'd': case 'u': case 'x':
41717 - *convert_to_ascii (str, c, *((unsigned long *) dataptr++)) = 0;
41728 + unsigned char uchar_arg;
41729 + unsigned ushort_arg;
41730 + unsigned int uint_arg;
41731 + signed long long_arg;
41732 + unsigned long ulong_arg;
41733 + signed long long longlong_arg;
41734 + unsigned long long ulonglong_arg;
41740 + int is_fmt = 0, is_long = 0, is_signed = 1, is_cap = 0, is_zero_padded = 0;
41741 + int num_pad_chars = 0;
41750 + is_zero_padded = 0;
41751 + num_pad_chars = 0;
41763 + write_char(&str, c, &count);
41768 + /* below here we only ever hit when is_fmt is 1 */
41770 + /* first, modifiers */
41773 + write_str(&str, buf, &count);
41774 + write_char(&str, c, &count);
41778 + if (!is_zero_padded) {
41781 + is_zero_padded++;
41795 + num_pad_chars *= 10;
41796 + num_pad_chars += c - '0';
41809 + /* below here are things we actually have to print */
41811 + int_arg = va_arg(args, int) & 0xff;
41812 + if (int_arg == 0) {
41813 + char *tmp_str = "\\x00";
41814 + write_str(&tmp_str, buf, &count);
41816 + write_char(&str, int_arg, &count);
41821 + if (is_long == 0) {
41822 + int_arg = va_arg(args, signed int);
41823 + format_ascii(buf, int_arg, 0, 0, 0);
41824 + } else if (is_long == 1) {
41825 + long_arg = va_arg(args, signed long);
41826 + format_ascii(buf, long_arg, 0, 0, 0);
41828 + longlong_arg = va_arg(args, signed long long);
41829 + format_ascii(buf, longlong_arg, 0, 0, 0);
41831 + write_str(&str, buf, &count);
41835 + str_arg = va_arg(args, char *);
41836 + write_str(&str, str_arg, &count);
41841 + if (is_long == 0) {
41842 + uint_arg = va_arg(args, unsigned int);
41843 + format_ascii(buf, uint_arg, 0, 0, 0);
41844 + } else if (is_long == 1) {
41845 + ulong_arg = va_arg(args, unsigned long);
41846 + format_ascii(buf, ulong_arg, 0, 0, 0);
41848 + ulonglong_arg = va_arg(args, unsigned long long);
41849 + format_ascii(buf, ulonglong_arg, 0, 0, 0);
41851 + write_str(&str, buf, &count);
41857 + ulong_arg = va_arg(args, unsigned long);
41858 + is_zero_padded = 1;
41859 + format_ascii(buf, ulong_arg, 1, is_cap, sizeof(ulong_arg));
41860 + write_str(&str, is_cap ? "0X" : "0x", &count);
41861 + write_str(&str, buf, &count);
41867 + if (num_pad_chars == 2) {
41869 + char hex[] = "0123456789abcdef";
41870 + uint_arg = va_arg(args, unsigned int);
41871 + uchar_arg = uint_arg & 0xff;
41872 + format_ascii(buf, uchar_arg, 1, is_cap, num_pad_chars);
41873 + } else if (num_pad_chars == 4) {
41874 + uint_arg = va_arg(args, unsigned int);
41875 + ushort_arg = uint_arg & 0xffff;
41876 + format_ascii(buf, ushort_arg, 1, is_cap, num_pad_chars);
41877 + } else if (is_long == 0) {
41878 + uint_arg = va_arg(args, unsigned int);
41879 + format_ascii(buf, uint_arg, 1, is_cap, num_pad_chars);
41880 + } else if (is_long == 1) {
41881 + ulong_arg = va_arg(args, unsigned long);
41882 + format_ascii(buf, ulong_arg, 1, is_cap, num_pad_chars);
41884 + ulonglong_arg = va_arg(args, unsigned long long);
41885 + format_ascii(buf, ulonglong_arg, 1, is_cap, num_pad_chars);
41887 + write_str(&str, buf, &count);
41893 + write_str(&str, buf, &count);
41897 + } while ((c = *fmt++));
41905 - *bp++ = *(ptr++); /* putchar(*(ptr++)); */
41908 +grub_printf (char *fmt, ...)
41912 - case 'c': *bp++ = (*(dataptr++))&0xff;
41913 - /* putchar((*(dataptr++))&0xff); */
41915 + va_start (ap, fmt);
41916 + grub_vsprintf (0, fmt, ap);
41921 - ptr = (char *) (*(dataptr++));
41924 +grub_sprintf (char *str, const char *fmt, ...)
41929 - while ((c = *ptr++) != 0)
41930 - *bp++ = c; /* putchar(c); */
41934 + va_start (ap, fmt);
41935 + ret = grub_vsprintf (str, fmt, ap);
41939 - return bp - buffer;
41944 @@ -898,7 +1107,6 @@ safe_parse_maxint (char **str_ptr, int *myint_ptr)
41946 #endif /* STAGE1_5 */
41948 -#if !defined(STAGE1_5) || defined(FSYS_FAT)
41950 grub_tolower (int c)
41952 @@ -907,7 +1115,6 @@ grub_tolower (int c)
41956 -#endif /* ! STAGE1_5 || FSYS_FAT */
41959 grub_isspace (int c)
41960 @@ -1004,6 +1211,16 @@ checkkey (void)
41962 return current_term->checkkey ();
41965 +/* Return keyboard modifier status. */
41969 + if (current_term->keystatus)
41970 + return current_term->keystatus ();
41974 #endif /* ! STAGE1_5 */
41976 /* Display an ASCII character. */
41977 @@ -1046,13 +1263,15 @@ grub_putchar (int c)
41978 the following grub_printf call will print newlines. */
41981 + grub_printf("\n");
41982 if (current_term->setcolorstate)
41983 current_term->setcolorstate (COLOR_STATE_HIGHLIGHT);
41985 - grub_printf ("\n[Hit return to continue]");
41986 + grub_printf ("[Hit return to continue]");
41988 if (current_term->setcolorstate)
41989 current_term->setcolorstate (COLOR_STATE_NORMAL);
41994 @@ -1090,7 +1309,7 @@ void
41997 /* If the terminal is dumb, there is no way to clean the terminal. */
41998 - if (current_term->flags & TERM_DUMB)
41999 + if (current_term->flags & TERM_DUMB)
42000 grub_putchar ('\n');
42002 current_term->cls ();
42003 @@ -1125,6 +1344,26 @@ substring (const char *s1, const char *s2)
42008 +subcasestring (const char *s1, const char *s2)
42010 + while (tolower(*s1) == tolower(*s2))
42012 + /* The strings match exactly. */
42018 + /* S1 is a substring of S2. */
42022 + /* S1 isn't a substring. */
42028 /* Terminate the string STR with NUL. */
42030 @@ -1172,41 +1411,180 @@ grub_strlen (const char *str)
42034 -#endif /* ! STAGE1_5 */
42036 +/* this function "borrowed" from dietlibc */
42038 -memcheck (int addr, int len)
42039 +grub_strspn(const char *s, const char *accept)
42042 - auto int start_addr (void);
42043 - auto int end_addr (void);
42045 - auto int start_addr (void)
42047 + int a=1,i,al=grub_strlen(accept);
42051 + for(a=i=0;(!a)&&(i<al);i++)
42052 + if (*s==accept[i]) a=1;
42059 +/* this function "borrowed" from dietlibc */
42061 +grub_strcspn(const char *s, const char *reject)
42064 + int a=1,i,al=grub_strlen(reject);
42068 + for(i=0;(a)&&(i<al);i++)
42069 + if (*s==reject[i]) a=0;
42076 +/* this function "borrowed" from dietlibc */
42078 +grub_strtok_r(char *s, const char *delim, char **ptrptr) {
42081 + if (s==0) s=*ptrptr;
42082 + s+=grub_strspn(s,delim); /* overread leading delimiter */
42085 + s+=grub_strcspn(s,delim);
42086 + if (*s) *s++=0; /* not the end ? => terminate it */
42093 +grub_strchr (const char *s, int c)
42099 + return (char *) s;
42107 +grub_strnchr (const char *s, int c)
42112 + return (char *) s;
42120 +grub_strrchr (const char *s, int c)
42135 +grub_strnlen (const char *s, int n)
42142 + for (i = 0; s[i] != '\0' && i < n; i++)
42148 +grub_strncpy(char *new, const char *s, int n)
42152 + for (i = 0; s[i] != '\0' && i < n; i++)
42158 +grub_strncasecmp(const char *s0, const char *s1, int n)
42162 + if (s0 == s1 || n == 0)
42166 + c0 = *s0 & ~0x20;
42167 + c1 = *s1 & ~0x20;
42169 + if (--n == 0 || c0 == '\0')
42174 + } while (c0 == c1);
42176 + return (c0 > c1 ? 1 : c0 < c1 ? -1 : 0);
42179 +#endif /* ! STAGE1_5 */
42182 +static int memcheck_start_addr (void)
42185 # if defined(HAVE_START_SYMBOL)
42186 - asm volatile ("movl $start, %0" : "=a" (ret));
42187 + asm volatile ("movl $start, %0" : "=a" (ret));
42188 # elif defined(HAVE_USCORE_START_SYMBOL)
42189 - asm volatile ("movl $_start, %0" : "=a" (ret));
42190 + asm volatile ("movl $_start, %0" : "=a" (ret));
42197 - auto int end_addr (void)
42200 +static int memcheck_end_addr (void)
42203 # if defined(HAVE_END_SYMBOL)
42204 - asm volatile ("movl $end, %0" : "=a" (ret));
42205 + asm volatile ("movl $end, %0" : "=a" (ret));
42206 # elif defined(HAVE_USCORE_END_SYMBOL)
42207 - asm volatile ("movl $_end, %0" : "=a" (ret));
42208 + asm volatile ("movl $_end, %0" : "=a" (ret));
42214 +#endif /* GRUB_UTIL */
42216 - if (start_addr () <= addr && end_addr () > addr + len)
42218 +memcheck (int addr, int len)
42221 + if (memcheck_start_addr () <= addr && memcheck_end_addr () > addr + len)
42223 #endif /* GRUB_UTIL */
42225 +#ifdef PLATFORM_EFI
42228 if ((addr < RAW_ADDR (0x1000))
42229 || (addr < RAW_ADDR (0x100000)
42230 && RAW_ADDR (mbi.mem_lower * 1024) < (addr + len))
42231 @@ -1215,12 +1593,23 @@ memcheck (int addr, int len)
42232 errnum = ERR_WONT_FIT;
42239 +grub_memcpy(void *dest, const void *src, int len)
42242 + register char *d = (char*)dest, *s = (char*)src;
42244 + for (i = 0; i < len; i++)
42249 grub_memmove (void *to, const void *from, int len)
42251 - if (memcheck ((int) to, len))
42252 + if (memcheck ((unsigned long) to, len))
42254 /* This assembly code is stolen from
42255 linux-2.2.2/include/asm-i386/string.h. This is not very fast
42256 @@ -1258,7 +1647,7 @@ grub_memset (void *start, int c, int len)
42260 - if (memcheck ((int) start, len))
42261 + if (memcheck ((unsigned long) start, len))
42265 @@ -1274,6 +1663,26 @@ grub_strcpy (char *dest, const char *src)
42266 grub_memmove (dest, src, grub_strlen (src) + 1);
42271 +grub_stpncpy (char *dest, const char *src, int n)
42280 + else if (res == NULL)
42289 #endif /* ! STAGE1_5 */
42292 diff --git a/stage2/cmdline.c b/stage2/cmdline.c
42293 index a6ee309..cb41eda 100644
42294 --- a/stage2/cmdline.c
42295 +++ b/stage2/cmdline.c
42296 @@ -48,12 +48,17 @@ skip_to (int after_equal, char *cmdline)
42298 /* Print a helpful message for the command-line interface. */
42300 -print_cmdline_message (int forever)
42301 +print_cmdline_message (int type)
42303 printf (" [ Minimal BASH-like line editing is supported. For the first word, TAB\n"
42304 " lists possible command completions. Anywhere else TAB lists the possible\n"
42305 - " completions of a device/filename.%s ]\n",
42306 - (forever ? "" : " ESC at any time exits."));
42307 + " completions of a device/filename.");
42308 + if (type == CMDLINE_NORMAL_MODE)
42309 + printf(" ESC at any time exits.");
42310 + if (type == CMDLINE_EDIT_MODE)
42311 + printf(" ESC at any time cancels. ENTER \n"
42312 + " at any time accepts your changes.");
42316 /* Find the builtin whose command name is COMMAND and return the
42317 @@ -128,7 +133,7 @@ enter_cmdline (char *heap, int forever)
42318 print_network_configuration ();
42319 grub_putchar ('\n');
42321 - print_cmdline_message (forever);
42322 + print_cmdline_message (forever ? CMDLINE_FOREVER_MODE : CMDLINE_NORMAL_MODE);
42326 @@ -215,7 +220,7 @@ run_script (char *script, char *heap)
42327 while (*cur_entry++)
42330 - grub_memmove (heap, old_entry, (int) cur_entry - (int) old_entry);
42331 + grub_memmove (heap, old_entry, cur_entry - old_entry);
42334 /* If there is no more command in SCRIPT... */
42335 @@ -232,12 +237,12 @@ run_script (char *script, char *heap)
42336 builtin = find_command (heap);
42339 - grub_printf ("%s\n", old_entry);
42340 + grub_verbose_printf ("%s\n", old_entry);
42344 if (! (builtin->flags & BUILTIN_NO_ECHO))
42345 - grub_printf ("%s\n", old_entry);
42346 + grub_verbose_printf ("%s\n", old_entry);
42348 /* If BUILTIN cannot be run in the command-line, skip it. */
42349 if (! (builtin->flags & BUILTIN_CMDLINE))
42350 diff --git a/stage2/common.c b/stage2/common.c
42351 index 09f9e31..e96bec2 100644
42352 --- a/stage2/common.c
42353 +++ b/stage2/common.c
42355 struct multiboot_info mbi;
42356 unsigned long saved_drive;
42357 unsigned long saved_partition;
42358 -unsigned long cdrom_drive;
42359 +unsigned long cdrom_drive = 0x100;
42361 unsigned long saved_mem_upper;
42363 @@ -114,7 +114,7 @@ mmap_avail_at (unsigned long bottom)
42365 for (cont = 0, addr = mbi.mmap_addr;
42366 addr < mbi.mmap_addr + mbi.mmap_length;
42367 - addr += *((unsigned long *) addr) + 4)
42368 + addr += *((unsigned int *) addr) + 4)
42370 struct AddrRangeDesc *desc = (struct AddrRangeDesc *) addr;
42372 @@ -183,11 +183,11 @@ init_bios_info (void)
42373 cont = get_mmap_entry ((void *) addr, cont);
42375 /* If the returned buffer's length is zero, quit. */
42376 - if (! *((unsigned long *) addr))
42377 + if (! *((unsigned int *) addr))
42380 - mbi.mmap_length += *((unsigned long *) addr) + 4;
42381 - addr += *((unsigned long *) addr) + 4;
42382 + mbi.mmap_length += *((unsigned int *) addr) + 4;
42383 + addr += *((unsigned int *) addr) + 4;
42387 @@ -207,7 +207,7 @@ init_bios_info (void)
42388 /* Find the maximum available address. Ignore any memory holes. */
42389 for (max_addr = 0, addr = mbi.mmap_addr;
42390 addr < mbi.mmap_addr + mbi.mmap_length;
42391 - addr += *((unsigned long *) addr) + 4)
42392 + addr += *((unsigned int *) addr) + 4)
42394 struct AddrRangeDesc *desc = (struct AddrRangeDesc *) addr;
42396 @@ -322,6 +322,9 @@ init_bios_info (void)
42398 /* Set cdrom drive. */
42400 +#ifdef PLATFORM_EFI
42401 + cdrom_drive = 0x100;
42403 struct geometry geom;
42405 /* Get the geometry. */
42406 @@ -330,6 +333,7 @@ init_bios_info (void)
42407 cdrom_drive = GRUB_INVALID_DRIVE;
42409 cdrom_drive = boot_drive;
42413 /* Start main routine here. */
42414 diff --git a/stage2/disk_io.c b/stage2/disk_io.c
42415 index b9bc526..f3fed0e 100644
42416 --- a/stage2/disk_io.c
42417 +++ b/stage2/disk_io.c
42418 @@ -21,12 +21,17 @@
42420 #include <shared.h>
42421 #include <filesys.h>
42424 #ifdef SUPPORT_NETBOOT
42426 # include <etherboot.h>
42429 +#ifdef PLATFORM_EFI
42430 +#include "efistubs.h"
42434 # include <device.h>
42436 @@ -48,6 +53,9 @@ int fsmax;
42437 struct fsys_entry fsys_table[NUM_FSYS + 1] =
42439 /* TFTP should come first because others don't handle net device. */
42440 +# ifdef PLATFORM_EFI
42441 + {"efitftp", efi_tftp_mount, efi_tftp_read, efi_tftp_dir, efi_tftp_close, 0},
42444 {"tftp", tftp_mount, tftp_read, tftp_dir, tftp_close, 0},
42446 @@ -75,6 +83,9 @@ struct fsys_entry fsys_table[NUM_FSYS + 1] =
42448 {"ufs2", ufs2_mount, ufs2_read, ufs2_dir, 0, ufs2_embed},
42450 +# ifdef PLATFORM_EFI
42451 + {"uefi", uefi_mount, uefi_read, uefi_dir, uefi_close, 0},
42453 # ifdef FSYS_ISO9660
42454 {"iso9660", iso9660_mount, iso9660_read, iso9660_dir, 0, 0},
42456 @@ -127,8 +138,8 @@ struct geometry buf_geom;
42460 -static inline unsigned long
42461 -log2 (unsigned long word)
42462 +static inline unsigned int
42463 +grub_log2 (unsigned int word)
42465 asm volatile ("bsfl %1,%0"
42467 @@ -140,7 +151,7 @@ int
42468 rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
42470 int slen, sectors_per_vtrack;
42471 - int sector_size_bits = log2 (buf_geom.sector_size);
42472 + int sector_size_bits = grub_log2 (buf_geom.sector_size);
42476 @@ -163,7 +174,7 @@ rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
42480 - sector_size_bits = log2 (buf_geom.sector_size);
42481 + sector_size_bits = grub_log2 (buf_geom.sector_size);
42484 /* Make sure that SECTOR is valid. */
42485 @@ -297,7 +308,7 @@ devread (int sector, int byte_offset, int byte_len, char *buf)
42486 * Check partition boundaries
42489 - || ((sector + ((byte_offset + byte_len - 1) >> SECTOR_BITS))
42490 + || ((sector + ((byte_offset + byte_len - 1) >> get_sector_bits(current_drive)))
42493 errnum = ERR_OUTSIDE_PART;
42494 @@ -307,8 +318,8 @@ devread (int sector, int byte_offset, int byte_len, char *buf)
42496 * Get the read to the beginning of a partition.
42498 - sector += byte_offset >> SECTOR_BITS;
42499 - byte_offset &= SECTOR_SIZE - 1;
42500 + sector += byte_offset >> get_sector_bits(current_drive);
42501 + byte_offset &= get_sector_size(current_drive) - 1;
42503 #if !defined(STAGE1_5)
42504 if (disk_read_hook && debug)
42505 @@ -347,7 +358,7 @@ rawwrite (int drive, int sector, char *buf)
42509 - memmove ((char *) SCRATCHADDR, buf, SECTOR_SIZE);
42510 + memmove ((char *) SCRATCHADDR, buf, get_sector_size(drive));
42511 if (biosdisk (BIOSDISK_WRITE, drive, &buf_geom,
42512 sector, 1, SCRATCHSEG))
42514 @@ -373,23 +384,23 @@ devwrite (int sector, int sector_count, char *buf)
42515 embed a Stage 1.5 into a partition instead of a MBR, use system
42516 calls directly instead of biosdisk, because of the bug in
42518 - return write_to_partition (device_map, current_drive, current_partition,
42519 - sector, sector_count, buf);
42521 + ret = write_to_partition (device_map, current_drive, current_partition,
42522 + sector, sector_count, buf);
42527 #endif /* GRUB_UTIL && __linux__ */
42531 - for (i = 0; i < sector_count; i++)
42533 - if (! rawwrite (current_drive, part_start + sector + i,
42534 - buf + (i << SECTOR_BITS)))
42541 + for (i = 0; i < sector_count; i++)
42543 + if (! rawwrite (current_drive, part_start + sector + i,
42544 + buf + (i << get_sector_bits(current_drive))))
42552 @@ -400,7 +411,7 @@ sane_partition (void)
42555 if (!(current_partition & 0xFF000000uL)
42556 - && ((current_drive & 0xFFFFFF7F) < 8
42557 + && ((current_drive & 0xFFFFFF7F) < MAX_HD_NUM
42558 || current_drive == cdrom_drive)
42559 && (current_partition & 0xFF) == 0xFF
42560 && ((current_partition & 0xFF00) == 0xFF00
42561 @@ -458,7 +469,7 @@ make_saved_active (void)
42564 /* Read the MBR in the scratch space. */
42565 - if (! rawread (saved_drive, 0, 0, SECTOR_SIZE, mbr))
42566 + if (! rawread (saved_drive, 0, 0, get_sector_size(saved_drive), mbr))
42569 /* If the partition is an extended partition, setting the active
42570 @@ -502,8 +513,8 @@ int
42571 set_partition_hidden_flag (int hidden)
42573 unsigned long part = 0xFFFFFF;
42574 - unsigned long start, len, offset, ext_offset;
42576 + unsigned long start, len, offset, ext_offset, gpt_offset;
42577 + int entry, type, gpt_count, gpt_size;
42580 /* The drive must be a hard disk. */
42581 @@ -524,8 +535,15 @@ set_partition_hidden_flag (int hidden)
42582 /* Look for the partition. */
42583 while (next_partition (current_drive, 0xFFFFFF, &part, &type,
42584 &start, &len, &offset, &entry,
42585 - &ext_offset, mbr))
42587 + &ext_offset, &gpt_offset, &gpt_count, &gpt_size, mbr))
42589 + /* The partition may not be a GPT partition. */
42590 + if (gpt_offset != 0)
42592 + errnum = ERR_BAD_ARGUMENT;
42596 if (part == current_partition)
42599 @@ -577,11 +595,14 @@ next_partition (unsigned long drive, unsigned long dest,
42600 unsigned long *partition, int *type,
42601 unsigned long *start, unsigned long *len,
42602 unsigned long *offset, int *entry,
42603 - unsigned long *ext_offset, char *buf)
42604 + unsigned long *ext_offset,
42605 + unsigned long *gpt_offset, int *gpt_count,
42606 + int *gpt_size, char *buf)
42608 /* Forward declarations. */
42609 auto int next_bsd_partition (void);
42610 auto int next_pc_slice (void);
42611 + auto int next_gpt_slice(void);
42613 /* Get next BSD partition in current PC slice. */
42614 int next_bsd_partition (void)
42615 @@ -601,7 +622,7 @@ next_partition (unsigned long drive, unsigned long dest,
42617 /* Read the BSD label. */
42618 if (! rawread (drive, *start + BSD_LABEL_SECTOR,
42619 - 0, SECTOR_SIZE, buf))
42620 + 0, get_sector_size(drive), buf))
42623 /* Check if it is valid. */
42624 @@ -656,7 +677,7 @@ next_partition (unsigned long drive, unsigned long dest,
42627 /* Read the MBR or the boot sector of the extended partition. */
42628 - if (! rawread (drive, *offset, 0, SECTOR_SIZE, buf))
42629 + if (! rawread (drive, *offset, 0, get_sector_size(drive), buf))
42632 /* Check if it is valid. */
42633 @@ -666,6 +687,42 @@ next_partition (unsigned long drive, unsigned long dest,
42637 + /* If this is a GPT partition table, read it as such. */
42638 + if (*entry == -1 && *offset == 0 &&
42639 + (PC_SLICE_TYPE (buf, 0) == PC_SLICE_TYPE_GPT ||
42640 + PC_SLICE_TYPE (buf, 0) == PC_SLICE_TYPE_NONE))
42642 + struct grub_gpt_header *hdr = (struct grub_gpt_header *) buf;
42644 + /* Read in the GPT Partition table header. */
42645 + if (! rawread (drive, 1, 0, get_sector_size(drive), buf))
42648 + if (hdr->magic == GPT_HEADER_MAGIC && hdr->version == 0x10000)
42650 + /* Let gpt_offset point to the first entry in the GPT
42651 + partition table. This can also be used by callers of
42652 + next_partition to determine if a entry comes from a
42653 + GPT partition table or not. */
42654 + *gpt_offset = hdr->partitions;
42655 + *gpt_count = hdr->maxpart;
42656 + *gpt_size = hdr->partentry_size;
42658 + return next_gpt_slice();
42662 + /* This is not a valid header for a GPT partition table.
42663 + Re-read the MBR or the boot sector of the extended
42665 + if (! rawread (drive, *offset, 0, get_sector_size(drive), buf))
42670 + /* Not a GPT partition. */
42673 /* Increase the entry number. */
42676 @@ -710,6 +767,43 @@ next_partition (unsigned long drive, unsigned long dest,
42680 + /* Get the next GPT slice. */
42681 + int next_gpt_slice (void)
42683 + struct grub_gpt_partentry *gptentry = (struct grub_gpt_partentry *) buf;
42684 + /* Make GPT partitions show up as PC slices. */
42685 + int pc_slice_no = (*partition & 0xFF0000) >> 16;
42687 + /* If this is the first time... */
42688 + if (pc_slice_no == 0xFF)
42690 + pc_slice_no = -1;
42697 + if (*entry >= *gpt_count)
42699 + errnum = ERR_NO_PART;
42702 + /* Read in the GPT Partition table entry. */
42703 + if (! rawread (drive, (*gpt_offset) + GPT_ENTRY_SECTOR (drive, *gpt_size, *entry), GPT_ENTRY_INDEX (drive, *gpt_size, *entry), *gpt_size, buf))
42705 + } while (! (gptentry->type1 && gptentry->type2));
42708 + *start = gptentry->start;
42709 + *len = gptentry->end - gptentry->start + 1;
42710 + *type = PC_SLICE_TYPE_EXT2FS;
42711 + *entry = pc_slice_no;
42712 + *partition = (*entry << 16) | 0xFFFF;
42717 /* Start the body of this function. */
42720 @@ -717,6 +811,9 @@ next_partition (unsigned long drive, unsigned long dest,
42724 + if (*partition != 0xFFFFFF && *gpt_offset != 0)
42725 + return next_gpt_slice ();
42727 /* If previous partition is a BSD partition or a PC slice which
42728 contains BSD partitions... */
42729 if ((*partition != 0xFFFFFF && IS_PC_SLICE_TYPE_BSD (*type & 0xff))
42730 @@ -755,8 +852,11 @@ real_open_partition (int flags)
42731 unsigned long dest_partition = current_partition;
42732 unsigned long part_offset;
42733 unsigned long ext_offset;
42734 + unsigned long gpt_offset;
42738 - char buf[SECTOR_SIZE];
42740 int bsd_part, pc_slice;
42742 /* For simplicity. */
42743 @@ -766,7 +866,8 @@ real_open_partition (int flags)
42744 int ret = next_partition (current_drive, dest_partition,
42745 ¤t_partition, ¤t_slice,
42746 &part_start, &part_length,
42747 - &part_offset, &entry, &ext_offset, buf);
42748 + &part_offset, &entry, &ext_offset,
42749 + &gpt_offset, &gpt_count, &gpt_size, buf);
42750 bsd_part = (current_partition >> 8) & 0xFF;
42751 pc_slice = current_partition >> 16;
42753 @@ -926,6 +1027,17 @@ open_partition (void)
42754 return real_open_partition (0);
42757 +#if !defined(PLATFORM_EFI) && !defined(GRUB_UTIL)
42758 +int get_sector_size (int drive)
42760 + return SECTOR_SIZE;
42762 +int get_sector_bits (int drive)
42764 + return SECTOR_BITS;
42766 +#endif /* !defined(PLATFORM_EFI) && !defined(GRUB_UTIL) */
42770 /* XX used for device completion in 'set_device' and 'print_completions' */
42771 @@ -978,7 +1090,7 @@ set_device (char *device)
42772 if (*device != ',' && *device != ')')
42775 -#ifdef SUPPORT_NETBOOT
42776 +#if defined(SUPPORT_NETBOOT) || defined(PLATFORM_EFI)
42777 if (*device == 'f' || *device == 'h'
42778 || (*device == 'n' && network_ready)
42779 || (*device == 'c' && cdrom_drive != GRUB_INVALID_DRIVE))
42780 @@ -1002,14 +1114,14 @@ set_device (char *device)
42782 if ((*device == 'f'
42784 -#ifdef SUPPORT_NETBOOT
42785 +#if defined(SUPPORT_NETBOOT) || defined(PLATFORM_EFI)
42786 || (*device == 'n' && network_ready)
42788 || (*device == 'c' && cdrom_drive != GRUB_INVALID_DRIVE))
42789 && (device += 2, (*(device - 1) != 'd')))
42790 errnum = ERR_NUMBER_PARSING;
42792 -#ifdef SUPPORT_NETBOOT
42794 +#if defined(SUPPORT_NETBOOT) || defined(PLATFORM_EFI)
42795 if (ch == 'n' && network_ready)
42796 current_drive = NETWORK_DRIVE;
42798 @@ -1131,7 +1243,7 @@ set_bootdev (int hdbias)
42799 if ((saved_drive & 0x80) && cur_part_addr)
42801 if (rawread (saved_drive, cur_part_offset,
42802 - 0, SECTOR_SIZE, (char *) SCRATCHADDR))
42803 + 0, get_sector_size(saved_drive), (char *) SCRATCHADDR))
42807 @@ -1243,6 +1355,12 @@ setup_part (char *filename)
42812 +get_fsys_type (void)
42814 + return fsys_table[fsys_type].name;
42818 * This prints the filesystem type or gives relevant information.
42820 @@ -1376,7 +1494,7 @@ print_completions (int is_filename, int is_completion)
42824 -#ifdef SUPPORT_NETBOOT
42825 +#if defined(SUPPORT_NETBOOT) || defined(PLATFORM_EFI)
42827 #endif /* SUPPORT_NETBOOT */
42828 || *(ptr-2) != 'c')
42829 @@ -1385,7 +1503,7 @@ print_completions (int is_filename, int is_completion)
42830 i < (ptr && (*(ptr-1) == 'd' && *(ptr-2) == 'f') ? 1:2);
42833 - for (j = 0; j < 8; j++)
42834 + for (j = 0; j < MAX_HD_NUM; j++)
42836 disk_no = (i * 0x80) + j;
42837 if ((disk_choice || disk_no == current_drive)
42838 @@ -1407,7 +1525,7 @@ print_completions (int is_filename, int is_completion)
42839 || (*(ptr-1) == 'd' && *(ptr-2) == 'c')))
42840 print_a_completion ("cd");
42842 -# ifdef SUPPORT_NETBOOT
42843 +# if defined(SUPPORT_NETBOOT) || defined(PLATFORM_EFI)
42845 && (disk_choice || NETWORK_DRIVE == current_drive)
42847 @@ -1596,7 +1714,7 @@ grub_open (char *filename)
42849 BLK_BLKLENGTH (list_addr) = tmp;
42851 - filemax += (tmp * SECTOR_SIZE);
42852 + filemax += (tmp * get_sector_size(current_drive));
42853 list_addr += BLK_BLKLIST_INC_VAL;
42856 @@ -1673,6 +1791,7 @@ grub_read (char *buf, int len)
42859 int size, off, ret = 0;
42860 + int sector_size = get_sector_size(current_drive);
42862 while (len && !errnum)
42864 @@ -1687,10 +1806,10 @@ grub_read (char *buf, int len)
42865 /* run BLK_CUR_FILEPOS up to filepos */
42866 while (filepos > BLK_CUR_FILEPOS)
42868 - if ((filepos - (BLK_CUR_FILEPOS & ~(SECTOR_SIZE - 1)))
42870 + if ((filepos - (BLK_CUR_FILEPOS & ~(sector_size - 1)))
42873 - BLK_CUR_FILEPOS += SECTOR_SIZE;
42874 + BLK_CUR_FILEPOS += sector_size;
42877 if (BLK_CUR_BLKNUM >= BLK_BLKLENGTH (BLK_CUR_BLKLIST))
42878 @@ -1703,9 +1822,9 @@ grub_read (char *buf, int len)
42879 BLK_CUR_FILEPOS = filepos;
42882 - off = filepos & (SECTOR_SIZE - 1);
42883 + off = filepos & (sector_size - 1);
42884 size = ((BLK_BLKLENGTH (BLK_CUR_BLKLIST) - BLK_CUR_BLKNUM)
42885 - * SECTOR_SIZE) - off;
42886 + * sector_size) - off;
42890 diff --git a/stage2/efistubs.c b/stage2/efistubs.c
42891 new file mode 100644
42892 index 0000000..29b086a
42894 +++ b/stage2/efistubs.c
42897 +#include "shared.h"
42898 +#include "efistubs.h"
42900 +#if defined(PLATFORM_EFI)
42901 +int network_ready = 0;
42902 +#endif /* defined(PLATFORM_EFI) */
42903 diff --git a/stage2/efistubs.h b/stage2/efistubs.h
42904 new file mode 100644
42905 index 0000000..97e407d
42907 +++ b/stage2/efistubs.h
42909 +#ifndef EFISTUBS_H
42910 +#define EFISTUBS_H 1
42912 +#if defined(PLATFORM_EFI)
42913 +extern int network_ready;
42914 +#endif /* defined(PLATFORM_EFI) */
42916 +#endif /* EFISTUBS_H */
42917 diff --git a/stage2/fat.h b/stage2/fat.h
42918 index 7fed6ba..f154eed 100644
42921 @@ -92,7 +92,7 @@ struct fat_bpb {
42922 #define FAT_DIRENTRY_FIRST_CLUSTER(entry) \
42923 ((*((unsigned short *) (entry+26)))+(*((unsigned short *) (entry+20)) << 16))
42924 #define FAT_DIRENTRY_FILELENGTH(entry) \
42925 - (*((unsigned long *) (entry+28)))
42926 + (*((unsigned int *) (entry+28)))
42928 #define FAT_LONGDIR_ID(entry) \
42929 (*((unsigned char *) (entry)))
42930 diff --git a/stage2/filesys.h b/stage2/filesys.h
42931 index bbad8b9..79e5f1f 100644
42932 --- a/stage2/filesys.h
42933 +++ b/stage2/filesys.h
42934 @@ -40,6 +40,16 @@ int ufs2_embed (int *start_sector, int needed_sectors);
42935 #define FSYS_UFS2_NUM 0
42938 +#ifdef PLATFORM_EFI
42939 +#define FSYS_UEFI_NUM 1
42940 +int uefi_mount (void);
42941 +int uefi_read (char *buf, int len);
42942 +int uefi_dir (char *dirname);
42943 +void uefi_close (void);
42945 +#define FSYS_UEFI_NUM 0
42949 #define FSYS_FAT_NUM 1
42950 int fat_mount (void);
42951 @@ -115,6 +125,17 @@ void tftp_close (void);
42952 #define FSYS_TFTP_NUM 0
42955 +#ifdef PLATFORM_EFI
42956 +#define FSYS_EFI_TFTP_NUM 1
42957 +int efi_tftp_mount (void);
42958 +int efi_tftp_read (char *buf, int len);
42959 +int efi_tftp_dir (char *dirname);
42960 +void efi_tftp_close (void);
42962 +#define FSYS_EFI_TFTP_NUM 0
42966 #ifdef FSYS_ISO9660
42967 #define FSYS_ISO9660_NUM 1
42968 int iso9660_mount (void);
42969 @@ -128,7 +149,8 @@ int iso9660_dir (char *dirname);
42971 (FSYS_FFS_NUM + FSYS_FAT_NUM + FSYS_EXT2FS_NUM + FSYS_MINIX_NUM \
42972 + FSYS_REISERFS_NUM + FSYS_VSTAFS_NUM + FSYS_JFS_NUM + FSYS_XFS_NUM \
42973 - + FSYS_TFTP_NUM + FSYS_ISO9660_NUM + FSYS_UFS2_NUM)
42974 + + FSYS_TFTP_NUM + FSYS_EFI_TFTP_NUM + FSYS_ISO9660_NUM + FSYS_UFS2_NUM \
42978 /* defines for the block filesystem info area */
42979 @@ -137,8 +159,8 @@ int iso9660_dir (char *dirname);
42980 #define BLK_CUR_BLKLIST (*((int*)(FSYS_BUF+4)))
42981 #define BLK_CUR_BLKNUM (*((int*)(FSYS_BUF+8)))
42982 #define BLK_MAX_ADDR (FSYS_BUF+0x7FF9)
42983 -#define BLK_BLKSTART(l) (*((int*)l))
42984 -#define BLK_BLKLENGTH(l) (*((int*)(l+4)))
42985 +#define BLK_BLKSTART(l) (*((int*)(unsigned long)l))
42986 +#define BLK_BLKLENGTH(l) (*((int*)(unsigned long)(l+4)))
42987 #define BLK_BLKLIST_START (FSYS_BUF+12)
42988 #define BLK_BLKLIST_INC_VAL 8
42989 #endif /* NO_BLOCK_FILES */
42990 diff --git a/stage2/fsys_ext2fs.c b/stage2/fsys_ext2fs.c
42991 index 560048f..01386d1 100644
42992 --- a/stage2/fsys_ext2fs.c
42993 +++ b/stage2/fsys_ext2fs.c
42995 static int mapblock1, mapblock2;
42997 /* sizes are always in bytes, BLOCK values are always in DEV_BSIZE (sectors) */
42998 -#define DEV_BSIZE 512
42999 +#define DEV_BSIZE get_sector_size(current_drive)
43001 /* include/linux/fs.h */
43002 #define BLOCK_SIZE 1024 /* initial block size for superblock read */
43003 @@ -33,6 +33,7 @@ static int mapblock1, mapblock2;
43004 #define WHICH_SUPER 1
43005 /* kind of from fs/ext2/super.c */
43006 #define SBLOCK (WHICH_SUPER * BLOCK_SIZE / DEV_BSIZE) /* = 2 */
43007 +#define SBOFF ((WHICH_SUPER * BLOCK_SIZE) % DEV_BSIZE)
43009 /* include/asm-i386/types.h */
43010 typedef __signed__ char __s8;
43011 @@ -41,6 +42,7 @@ typedef __signed__ short __s16;
43012 typedef unsigned short __u16;
43013 typedef __signed__ int __s32;
43014 typedef unsigned int __u32;
43015 +typedef unsigned long long __u64;
43018 * Constants relative to the data blocks, from ext2_fs.h
43019 @@ -51,7 +53,7 @@ typedef unsigned int __u32;
43020 #define EXT2_TIND_BLOCK (EXT2_DIND_BLOCK + 1)
43021 #define EXT2_N_BLOCKS (EXT2_TIND_BLOCK + 1)
43023 -/* include/linux/ext2_fs.h */
43024 +/* lib/ext2fs/ext2_fs.h from e2fsprogs */
43025 struct ext2_super_block
43027 __u32 s_inodes_count; /* Inodes count */
43028 @@ -61,9 +63,9 @@ struct ext2_super_block
43029 __u32 s_free_inodes_count; /* Free inodes count */
43030 __u32 s_first_data_block; /* First Data Block */
43031 __u32 s_log_block_size; /* Block size */
43032 - __s32 s_log_frag_size; /* Fragment size */
43033 + __s32 s_obso_log_frag_size; /* Obsoleted Fragment size */
43034 __u32 s_blocks_per_group; /* # Blocks per group */
43035 - __u32 s_frags_per_group; /* # Fragments per group */
43036 + __u32 s_obso_frags_per_group; /* Obsoleted Fragments per group */
43037 __u32 s_inodes_per_group; /* # Inodes per group */
43038 __u32 s_mtime; /* Mount time */
43039 __u32 s_wtime; /* Write time */
43040 @@ -72,17 +74,76 @@ struct ext2_super_block
43041 __u16 s_magic; /* Magic signature */
43042 __u16 s_state; /* File system state */
43043 __u16 s_errors; /* Behaviour when detecting errors */
43045 + __u16 s_minor_rev_level; /* minor revision level */
43046 __u32 s_lastcheck; /* time of last check */
43047 __u32 s_checkinterval; /* max. time between checks */
43048 __u32 s_creator_os; /* OS */
43049 __u32 s_rev_level; /* Revision level */
43050 __u16 s_def_resuid; /* Default uid for reserved blocks */
43051 __u16 s_def_resgid; /* Default gid for reserved blocks */
43052 - __u32 s_reserved[235]; /* Padding to the end of the block */
43055 -struct ext2_group_desc
43057 + * These fields are for EXT2_DYNAMIC_REV superblocks only.
43059 + * Note: the difference between the compatible feature set and
43060 + * the incompatible feature set is that if there is a bit set
43061 + * in the incompatible feature set that the kernel doesn't
43062 + * know about, it should refuse to mount the filesystem.
43064 + * e2fsck's requirements are more strict; if it doesn't know
43065 + * about a feature in either the compatible or incompatible
43066 + * feature set, it must abort and not try to meddle with
43067 + * things it doesn't understand...
43069 + __u32 s_first_ino; /* First non-reserved inode */
43070 + __u16 s_inode_size; /* size of inode structure */
43071 + __u16 s_block_group_nr; /* block group # of this superblock */
43072 + __u32 s_feature_compat; /* compatible feature set */
43073 + __u32 s_feature_incompat; /* incompatible feature set */
43074 + __u32 s_feature_ro_compat; /* readonly-compatible feature set */
43075 + __u8 s_uuid[16]; /* 128-bit uuid for volume */
43076 + char s_volume_name[16]; /* volume name */
43077 + char s_last_mounted[64]; /* directory where last mounted */
43078 + __u32 s_algorithm_usage_bitmap; /* For compression */
43080 + * Performance hints. Directory preallocation should only
43081 + * happen if the EXT2_FEATURE_COMPAT_DIR_PREALLOC flag is on.
43083 + __u8 s_prealloc_blocks; /* Nr of blocks to try to preallocate*/
43084 + __u8 s_prealloc_dir_blocks; /* Nr to preallocate for dirs */
43085 + __u16 s_reserved_gdt_blocks;/* Per group table for online growth */
43087 + * Journaling support valid if EXT2_FEATURE_COMPAT_HAS_JOURNAL set.
43089 + __u8 s_journal_uuid[16]; /* uuid of journal superblock */
43090 + __u32 s_journal_inum; /* inode number of journal file */
43091 + __u32 s_journal_dev; /* device number of journal file */
43092 + __u32 s_last_orphan; /* start of list of inodes to delete */
43093 + __u32 s_hash_seed[4]; /* HTREE hash seed */
43094 + __u8 s_def_hash_version; /* Default hash version to use */
43095 + __u8 s_jnl_backup_type; /* Default type of journal backup */
43096 + __u16 s_desc_size; /* size of group descriptor */
43097 + __u32 s_default_mount_opts;
43098 + __u32 s_first_meta_bg; /* First metablock group */
43099 + __u32 s_mkfs_time; /* When the filesystem was created */
43100 + __u32 s_jnl_blocks[17]; /* Backup of the journal inode */
43101 + /* 64bit desc support valid if EXT4_FEATURE_INCOMPAT_64BIT */
43102 + __u32 s_blocks_count_hi; /* Blocks count */
43103 + __u32 s_r_blocks_count_hi; /* Reserved blocks count */
43104 + __u32 s_free_blocks_count_hi; /* Free blocks count */
43105 + __u16 s_min_extra_isize; /* All inodes have at least # bytes */
43106 + __u16 s_max_extra_isize; /* New inodes should reverve # bytes */
43107 + __u32 s_flags; /* Miscellaneous flags */
43108 + __u16 s_raid_stride; /* Raid stride */
43109 + __u16 s_mmp_interval; /* # seconds to wait MMP checking */
43110 + __u64 s_mmp_block; /* Block for multi-mount protection */
43111 + __u32 s_raid_stripe_width; /* Blocks on all data disks (N*stride)*/
43112 + __u8 s_log_groups_per_flex;/* FLEX_BG group size*/
43113 + __u8 s_reserved_char_pad;
43114 + __u16 s_reserved_pad;
43115 + __u32 s_reserved[162]; /* Padding to the end of the block */
43118 +struct ext4_group_desc
43120 __u32 bg_block_bitmap; /* Blocks bitmap block */
43121 __u32 bg_inode_bitmap; /* Inodes bitmap block */
43122 @@ -90,8 +151,18 @@ struct ext2_group_desc
43123 __u16 bg_free_blocks_count; /* Free blocks count */
43124 __u16 bg_free_inodes_count; /* Free inodes count */
43125 __u16 bg_used_dirs_count; /* Directories count */
43127 - __u32 bg_reserved[3];
43128 + __u16 bg_flags; /* EXT4_BG_flags (INODE_UNINIT, etc) */
43129 + __u32 bg_reserved[2]; /* Likely block/inode bitmap checksum */
43130 + __u16 bg_itable_unused; /* Unused inodes count */
43131 + __u16 bg_checksum; /* crc16(sb_uuid+group+desc) */
43132 + __u32 bg_block_bitmap_hi; /* Blocks bitmap block MSB */
43133 + __u32 bg_inode_bitmap_hi; /* Inodes bitmap block MSB */
43134 + __u32 bg_inode_table_hi; /* Inodes table block MSB */
43135 + __u16 bg_free_blocks_count_hi;/* Free blocks count MSB */
43136 + __u16 bg_free_inodes_count_hi;/* Free inodes count MSB */
43137 + __u16 bg_used_dirs_count_hi; /* Directories count MSB */
43138 + __u16 bg_itable_unused_hi; /* Unused inodes count MSB */
43139 + __u32 bg_reserved2[3];
43143 @@ -129,22 +200,22 @@ struct ext2_inode
43144 __u32 i_block[EXT2_N_BLOCKS]; /* 40: Pointers to blocks */
43145 __u32 i_version; /* File version (for NFS) */
43146 __u32 i_file_acl; /* File ACL */
43147 - __u32 i_dir_acl; /* Directory ACL */
43148 - __u32 i_faddr; /* Fragment address */
43149 + __u32 i_size_high;
43150 + __u32 i_obso_faddr; /* Obsoleted fragment address */
43155 - __u8 l_i_frag; /* Fragment number */
43156 - __u8 l_i_fsize; /* Fragment size */
43158 - __u32 l_i_reserved2[2];
43159 + __u16 l_i_blocks_high; /* were l_i_reserved1 */
43160 + __u16 l_i_file_acl_high;
43161 + __u16 l_i_uid_high; /* these 2 fields */
43162 + __u16 l_i_gid_high; /* were reserved2[0] */
43163 + __u32 l_i_reserved2;
43168 - __u8 h_i_frag; /* Fragment number */
43169 - __u8 h_i_fsize; /* Fragment size */
43170 + __u16 h_i_reserved1; /* Obsoleted fragment number/size which are removed in ext4 */
43171 __u16 h_i_mode_high;
43172 __u16 h_i_uid_high;
43173 __u16 h_i_gid_high;
43174 @@ -153,16 +224,36 @@ struct ext2_inode
43178 - __u8 m_i_frag; /* Fragment number */
43179 - __u8 m_i_fsize; /* Fragment size */
43181 + __u16 h_i_reserved1; /* Obsoleted fragment number/size which are removed in ext4 */
43182 + __u16 m_i_file_acl_high;
43183 __u32 m_i_reserved2[2];
43187 osd2; /* OS dependent 2 */
43188 + __u16 i_extra_isize;
43190 + __u32 i_ctime_extra; /* extra Change time (nsec << 2 | epoch) */
43191 + __u32 i_mtime_extra; /* extra Modification time(nsec << 2 | epoch) */
43192 + __u32 i_atime_extra; /* extra Access time (nsec << 2 | epoch) */
43193 + __u32 i_crtime; /* File Creation time */
43194 + __u32 i_crtime_extra; /* extra FileCreationtime (nsec << 2 | epoch) */
43195 + __u32 i_version_hi; /* high 32 bits for 64-bit version */
43198 +#define EXT4_FEATURE_INCOMPAT_EXTENTS 0x0040 /* extents support */
43199 +#define EXT4_FEATURE_INCOMPAT_64BIT 0x0080 /* grub not supported*/
43200 +#define EXT4_FEATURE_INCOMPAT_MMP 0x0100
43201 +#define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200
43203 +#define EXT4_HAS_INCOMPAT_FEATURE(sb,mask) \
43204 + ( sb->s_feature_incompat & mask )
43206 +#define EXT4_EXTENTS_FL 0x00080000 /* Inode uses extents */
43207 +#define EXT4_HUGE_FILE_FL 0x00040000 /* Set to each huge file */
43209 +#define EXT4_MIN_DESC_SIZE 32
43211 /* linux/limits.h */
43212 #define NAME_MAX 255 /* # chars in a file name */
43214 @@ -180,6 +271,57 @@ struct ext2_dir_entry
43215 char name[EXT2_NAME_LEN]; /* File name */
43218 +/* linux/ext4_fs_extents.h */
43219 +/* This is the extent on-disk structure.
43220 + * It's used at the bottom of the tree.
43222 +struct ext4_extent
43224 + __u32 ee_block; /* first logical block extent covers */
43225 + __u16 ee_len; /* number of blocks covered by extent */
43226 + __u16 ee_start_hi; /* high 16 bits of physical block */
43227 + __u32 ee_start_lo; /* low 32 bits of physical block */
43231 + * This is index on-disk structure.
43232 + * It's used at all the levels except the bottom.
43234 +struct ext4_extent_idx
43236 + __u32 ei_block; /* index covers logical blocks from 'block' */
43237 + __u32 ei_leaf_lo; /* pointer to the physical block of the next *
43238 + * level. leaf or next index could be there */
43239 + __u16 ei_leaf_hi; /* high 16 bits of physical block */
43244 + * Each block (leaves and indexes), even inode-stored has header.
43246 +struct ext4_extent_header
43248 + __u16 eh_magic; /* probably will support different formats */
43249 + __u16 eh_entries; /* number of valid entries */
43250 + __u16 eh_max; /* capacity of store in entries */
43251 + __u16 eh_depth; /* has tree real underlying blocks? */
43252 + __u32 eh_generation; /* generation of the tree */
43255 +#define EXT4_EXT_MAGIC (0xf30a)
43256 +#define EXT_FIRST_EXTENT(__hdr__) \
43257 + ((struct ext4_extent *) (((char *) (__hdr__)) + \
43258 + sizeof(struct ext4_extent_header)))
43259 +#define EXT_FIRST_INDEX(__hdr__) \
43260 + ((struct ext4_extent_idx *) (((char *) (__hdr__)) + \
43261 + sizeof(struct ext4_extent_header)))
43262 +#define EXT_LAST_EXTENT(__hdr__) \
43263 + (EXT_FIRST_EXTENT((__hdr__)) + (__u16)((__hdr__)->eh_entries) - 1)
43264 +#define EXT_LAST_INDEX(__hdr__) \
43265 + (EXT_FIRST_INDEX((__hdr__)) + (__u16)((__hdr__)->eh_entries) - 1)
43269 /* linux/ext2fs.h */
43271 * EXT2_DIR_PAD defines the directory entries boundaries
43272 @@ -206,25 +348,37 @@ struct ext2_dir_entry
43273 ((struct ext2_super_block *)(FSYS_BUF))
43274 #define GROUP_DESC \
43275 ((struct ext2_group_desc *) \
43276 - ((int)SUPERBLOCK + sizeof(struct ext2_super_block)))
43277 + ((unsigned long)SUPERBLOCK + sizeof(struct ext2_super_block)))
43279 - ((struct ext2_inode *)((int)GROUP_DESC + EXT2_BLOCK_SIZE(SUPERBLOCK)))
43280 + ((struct ext2_inode *)((unsigned long)GROUP_DESC + EXT2_BLOCK_SIZE(SUPERBLOCK)))
43281 #define DATABLOCK1 \
43282 - ((int)((int)INODE + sizeof(struct ext2_inode)))
43283 + ((unsigned long)INODE + sizeof(struct ext2_inode))
43284 #define DATABLOCK2 \
43285 - ((int)((int)DATABLOCK1 + EXT2_BLOCK_SIZE(SUPERBLOCK)))
43286 + ((unsigned long)DATABLOCK1 + EXT2_BLOCK_SIZE(SUPERBLOCK))
43288 /* linux/ext2_fs.h */
43289 #define EXT2_ADDR_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s) / sizeof (__u32))
43290 #define EXT2_ADDR_PER_BLOCK_BITS(s) (log2(EXT2_ADDR_PER_BLOCK(s)))
43292 +#define EXT2_INODE_SIZE(s) (SUPERBLOCK->s_inode_size)
43293 +#define EXT2_INODES_PER_BLOCK(s) (EXT2_BLOCK_SIZE(s)/EXT2_INODE_SIZE(s))
43295 /* linux/ext2_fs.h */
43296 #define EXT2_BLOCK_SIZE_BITS(s) ((s)->s_log_block_size + 10)
43297 /* kind of from ext2/super.c */
43298 #define EXT2_BLOCK_SIZE(s) (1 << EXT2_BLOCK_SIZE_BITS(s))
43299 /* linux/ext2fs.h */
43300 +/* sizeof(struct ext2_group_desc) is changed in ext4
43301 + * in kernel code, ext2/3 uses sizeof(struct ext2_group_desc) to calculate
43302 + * number of desc per block, while ext4 uses superblock->s_desc_size in stead
43303 + * superblock->s_desc_size is not available in ext2/3
43305 +#define EXT2_DESC_SIZE(s) \
43306 + (EXT4_HAS_INCOMPAT_FEATURE(s,EXT4_FEATURE_INCOMPAT_64BIT)? \
43307 + s->s_desc_size : EXT4_MIN_DESC_SIZE)
43308 #define EXT2_DESC_PER_BLOCK(s) \
43309 - (EXT2_BLOCK_SIZE(s) / sizeof (struct ext2_group_desc))
43310 + (EXT2_BLOCK_SIZE(s) / EXT2_DESC_SIZE(s))
43313 #define S_IFMT 00170000
43314 #define S_IFLNK 0120000
43315 @@ -239,8 +393,8 @@ struct ext2_dir_entry
43316 * ffz = Find First Zero in word. Undefined if no zero exists,
43317 * so code should check against ~0UL first..
43319 -static __inline__ unsigned long
43320 -ffz (unsigned long word)
43321 +static __inline__ unsigned int
43322 +ffz (unsigned int word)
43324 __asm__ ("bsfl %1,%0"
43326 @@ -260,7 +414,7 @@ ext2fs_mount (void)
43327 && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_EXT2FS))
43328 && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_OTHER)))
43329 || part_length < (SBLOCK + (sizeof (struct ext2_super_block) / DEV_BSIZE))
43330 - || !devread (SBLOCK, 0, sizeof (struct ext2_super_block),
43331 + || !devread (SBLOCK, SBOFF, sizeof (struct ext2_super_block),
43332 (char *) SUPERBLOCK)
43333 || SUPERBLOCK->s_magic != EXT2_SUPER_MAGIC)
43335 @@ -276,7 +430,7 @@ ext2_rdfsb (int fsblock, int buffer)
43336 printf ("fsblock %d buffer %d\n", fsblock, buffer);
43337 #endif /* E2DEBUG */
43338 return devread (fsblock * (EXT2_BLOCK_SIZE (SUPERBLOCK) / DEV_BSIZE), 0,
43339 - EXT2_BLOCK_SIZE (SUPERBLOCK), (char *) buffer);
43340 + EXT2_BLOCK_SIZE (SUPERBLOCK), (char *) (unsigned long) buffer);
43344 @@ -386,6 +540,122 @@ ext2fs_block_map (int logical_block)
43345 [logical_block & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)];
43348 +/* extent binary search index
43349 + * find closest index in the current level extent tree
43350 + * kind of from ext4_ext_binsearch_idx in ext4/extents.c
43352 +static struct ext4_extent_idx*
43353 +ext4_ext_binsearch_idx(struct ext4_extent_header* eh, int logical_block)
43355 + struct ext4_extent_idx *r, *l, *m;
43356 + l = EXT_FIRST_INDEX(eh) + 1;
43357 + r = EXT_LAST_INDEX(eh);
43360 + m = l + (r - l) / 2;
43361 + if (logical_block < m->ei_block)
43366 + return (struct ext4_extent_idx*)(l - 1);
43369 +/* extent binary search
43370 + * find closest extent in the leaf level
43371 + * kind of from ext4_ext_binsearch in ext4/extents.c
43373 +static struct ext4_extent*
43374 +ext4_ext_binsearch(struct ext4_extent_header* eh, int logical_block)
43376 + struct ext4_extent *r, *l, *m;
43377 + l = EXT_FIRST_EXTENT(eh) + 1;
43378 + r = EXT_LAST_EXTENT(eh);
43381 + m = l + (r - l) / 2;
43382 + if (logical_block < m->ee_block)
43387 + return (struct ext4_extent*)(l - 1);
43390 +/* Maps extents enabled logical block into physical block via an inode.
43391 + * EXT4_HUGE_FILE_FL should be checked before calling this.
43394 +ext4fs_block_map (int logical_block)
43396 + struct ext4_extent_header *eh;
43397 + struct ext4_extent *ex, *extent;
43398 + struct ext4_extent_idx *ei, *index;
43403 + unsigned char *i;
43404 + for (i = (unsigned char *) INODE;
43405 + i < ((unsigned char *) INODE + sizeof (struct ext2_inode));
43408 + printf ("%c", "0123456789abcdef"[*i >> 4]);
43409 + printf ("%c", "0123456789abcdef"[*i % 16]);
43410 + if (!((i + 1 - (unsigned char *) INODE) % 16))
43419 + printf ("logical block %d\n", logical_block);
43420 +#endif /* E2DEBUG */
43421 + eh = (struct ext4_extent_header*)INODE->i_block;
43422 + if (eh->eh_magic != EXT4_EXT_MAGIC)
43424 + errnum = ERR_FSYS_CORRUPT;
43427 + while((depth = eh->eh_depth) != 0)
43428 + { /* extent index */
43429 + if (eh->eh_magic != EXT4_EXT_MAGIC)
43431 + errnum = ERR_FSYS_CORRUPT;
43434 + ei = ext4_ext_binsearch_idx(eh, logical_block);
43435 + if (ei->ei_leaf_hi)
43436 + {/* 64bit physical block number not supported */
43437 + errnum = ERR_FILELENGTH;
43440 + if (!ext2_rdfsb(ei->ei_leaf_lo, DATABLOCK1))
43442 + errnum = ERR_FSYS_CORRUPT;
43445 + eh = (struct ext4_extent_header*)DATABLOCK1;
43448 + /* depth==0, we come to the leaf */
43449 + ex = ext4_ext_binsearch(eh, logical_block);
43450 + if (ex->ee_start_hi)
43451 + {/* 64bit physical block number not supported */
43452 + errnum = ERR_FILELENGTH;
43455 + if ((ex->ee_block + ex->ee_len) < logical_block)
43457 + errnum = ERR_FSYS_CORRUPT;
43460 + return ex->ee_start_lo + logical_block - ex->ee_block;
43464 /* preconditions: all preconds of ext2fs_block_map */
43466 ext2fs_read (char *buf, int len)
43467 @@ -420,6 +690,11 @@ ext2fs_read (char *buf, int len)
43468 /* find the (logical) block component of our location */
43469 logical_block = filepos >> EXT2_BLOCK_SIZE_BITS (SUPERBLOCK);
43470 offset = filepos & (EXT2_BLOCK_SIZE (SUPERBLOCK) - 1);
43471 + /* map extents enabled logical block number to physical fs on-disk block number */
43472 + if (EXT4_HAS_INCOMPAT_FEATURE(SUPERBLOCK,EXT4_FEATURE_INCOMPAT_EXTENTS)
43473 + && INODE->i_flags & EXT4_EXTENTS_FL)
43474 + map = ext4fs_block_map (logical_block);
43476 map = ext2fs_block_map (logical_block);
43478 printf ("map=%d\n", map);
43479 @@ -504,7 +779,7 @@ ext2fs_dir (char *dirname)
43480 int desc; /* index within that group */
43481 int ino_blk; /* fs pointer of the inode's information */
43482 int str_chk = 0; /* used to hold the results of a string compare */
43483 - struct ext2_group_desc *gdp;
43484 + struct ext4_group_desc *ext4_gdp;
43485 struct ext2_inode *raw_inode; /* inode info corresponding to current_ino */
43487 char linkbuf[PATH_MAX]; /* buffer for following symbolic links */
43488 @@ -546,18 +821,25 @@ ext2fs_dir (char *dirname)
43489 #endif /* E2DEBUG */
43491 (WHICH_SUPER + group_desc + SUPERBLOCK->s_first_data_block),
43492 - (int) GROUP_DESC))
43493 + (unsigned long) GROUP_DESC))
43497 - gdp = GROUP_DESC;
43498 - ino_blk = gdp[desc].bg_inode_table +
43499 + ext4_gdp = (struct ext4_group_desc *)( (__u8*)GROUP_DESC +
43500 + desc * EXT2_DESC_SIZE(SUPERBLOCK));
43501 + if (EXT4_HAS_INCOMPAT_FEATURE(SUPERBLOCK, EXT4_FEATURE_INCOMPAT_64BIT)
43502 + && (! ext4_gdp->bg_inode_table_hi))
43503 + {/* 64bit itable not supported */
43504 + errnum = ERR_FILELENGTH;
43507 + ino_blk = ext4_gdp->bg_inode_table +
43508 (((current_ino - 1) % (SUPERBLOCK->s_inodes_per_group))
43509 - >> log2 (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode)));
43510 + >> log2 (EXT2_INODES_PER_BLOCK (SUPERBLOCK)));
43512 printf ("inode table fsblock=%d\n", ino_blk);
43513 #endif /* E2DEBUG */
43514 - if (!ext2_rdfsb (ino_blk, (int) INODE))
43515 + if (!ext2_rdfsb (ino_blk, (unsigned long) INODE))
43519 @@ -565,13 +847,12 @@ ext2fs_dir (char *dirname)
43520 /* reset indirect blocks! */
43521 mapblock2 = mapblock1 = -1;
43523 - raw_inode = INODE +
43524 - ((current_ino - 1)
43525 - & (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode) - 1));
43526 + raw_inode = (struct ext2_inode *)((char *)INODE +
43527 + ((current_ino - 1) & (EXT2_INODES_PER_BLOCK (SUPERBLOCK) - 1)) *
43528 + EXT2_INODE_SIZE (SUPERBLOCK));
43530 printf ("ipb=%d, sizeof(inode)=%d\n",
43531 - (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode)),
43532 - sizeof (struct ext2_inode));
43533 + EXT2_INODES_PER_BLOCK (SUPERBLOCK), EXT2_INODE_SIZE (SUPERBLOCK));
43534 printf ("inode=%x, raw_inode=%x\n", INODE, raw_inode);
43535 printf ("offset into inode table block=%d\n", (int) raw_inode - (int) INODE);
43536 for (i = (unsigned char *) INODE; i <= (unsigned char *) raw_inode;
43537 @@ -629,7 +910,10 @@ ext2fs_dir (char *dirname)
43539 linkbuf[filemax + len] = '\0';
43541 - /* Read the symlink data. */
43542 + /* Read the symlink data.
43543 + * Slow symlink is extents enabled
43544 + * But since grub_read invokes ext2fs_read, nothing to change here
43546 if (! ext2_is_fast_symlink ())
43548 /* Read the necessary blocks, and reset the file pointer. */
43549 @@ -640,7 +924,9 @@ ext2fs_dir (char *dirname)
43553 - /* Copy the data directly from the inode. */
43554 + /* Copy the data directly from the inode.
43555 + * Fast symlink is not extents enabled
43558 memmove (linkbuf, (char *) INODE->i_block, len);
43560 @@ -674,6 +960,13 @@ ext2fs_dir (char *dirname)
43561 errnum = ERR_BAD_FILETYPE;
43564 + /* if file is too large, just stop and report an error*/
43565 + if ( (INODE->i_flags & EXT4_HUGE_FILE_FL) && !(INODE->i_size_high))
43567 + /* file too large, stop reading */
43568 + errnum = ERR_FILELENGTH;
43572 filemax = (INODE->i_size);
43574 @@ -728,17 +1021,28 @@ ext2fs_dir (char *dirname)
43577 /* else, find the (logical) block component of our location */
43578 + /* ext4 logical block number the same as ext2/3 */
43579 blk = loc >> EXT2_BLOCK_SIZE_BITS (SUPERBLOCK);
43581 /* we know which logical block of the directory entry we are looking
43582 for, now we have to translate that to the physical (fs) block on
43584 + /* map extents enabled logical block number to physical fs on-disk block number */
43585 + if (EXT4_HAS_INCOMPAT_FEATURE(SUPERBLOCK,EXT4_FEATURE_INCOMPAT_EXTENTS)
43586 + && INODE->i_flags & EXT4_EXTENTS_FL)
43587 + map = ext4fs_block_map (blk);
43589 map = ext2fs_block_map (blk);
43591 printf ("fs block=%d\n", map);
43592 #endif /* E2DEBUG */
43594 - if ((map < 0) || !ext2_rdfsb (map, DATABLOCK2))
43600 + if (!ext2_rdfsb (map, DATABLOCK2))
43602 errnum = ERR_FSYS_CORRUPT;
43604 diff --git a/stage2/fsys_fat.c b/stage2/fsys_fat.c
43605 index f40e658..f1157f4 100644
43606 --- a/stage2/fsys_fat.c
43607 +++ b/stage2/fsys_fat.c
43608 @@ -49,13 +49,13 @@ struct fat_superblock
43609 /* pointer(s) into filesystem info buffer for DOS stuff */
43610 #define FAT_SUPER ( (struct fat_superblock *) \
43611 ( FSYS_BUF + 32256) )/* 512 bytes long */
43612 -#define FAT_BUF ( FSYS_BUF + 30208 ) /* 4 sector FAT buffer */
43613 -#define NAME_BUF ( FSYS_BUF + 29184 ) /* Filename buffer (833 bytes) */
43614 +#define FAT_BUF ( FSYS_BUF + 28160 ) /* 4 sector FAT buffer */
43615 +#define NAME_BUF ( FSYS_BUF + 27136 ) /* Filename buffer (833 bytes) */
43617 -#define FAT_CACHE_SIZE 2048
43618 +#define FAT_CACHE_SIZE 4096
43620 -static __inline__ unsigned long
43621 -log2 (unsigned long word)
43622 +static __inline__ unsigned int
43623 +grub_log2 (unsigned int word)
43625 __asm__ ("bsfl %1,%0"
43627 @@ -68,9 +68,12 @@ fat_mount (void)
43629 struct fat_bpb bpb;
43630 __u32 magic, first_fat;
43633 /* Check partition type for harddisk */
43634 if (((current_drive & 0x80) || (current_slice != 0))
43635 + && (current_slice != PC_SLICE_TYPE_EXT2FS)
43636 + && (current_slice != PC_SLICE_TYPE_LINUX_RAID)
43637 && ! IS_PC_SLICE_TYPE_FAT (current_slice)
43638 && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_MSDOS)))
43640 @@ -79,14 +82,16 @@ fat_mount (void)
43641 if (! devread (0, 0, sizeof (bpb), (char *) &bpb))
43644 + sector_size = get_sector_size(current_drive);
43646 /* Check if the number of sectors per cluster is zero here, to avoid
43648 if (bpb.sects_per_clust == 0)
43651 - FAT_SUPER->sectsize_bits = log2 (FAT_CVT_U16 (bpb.bytes_per_sect));
43652 + FAT_SUPER->sectsize_bits = grub_log2 (FAT_CVT_U16 (bpb.bytes_per_sect));
43653 FAT_SUPER->clustsize_bits
43654 - = FAT_SUPER->sectsize_bits + log2 (bpb.sects_per_clust);
43655 + = FAT_SUPER->sectsize_bits + grub_log2 (bpb.sects_per_clust);
43657 /* Fill in info about super block */
43658 FAT_SUPER->num_sectors = FAT_CVT_U16 (bpb.short_sectors)
43659 @@ -106,7 +111,7 @@ fat_mount (void)
43660 FAT_SUPER->data_offset =
43661 FAT_SUPER->root_offset
43662 + ((FAT_SUPER->root_max - 1) >> FAT_SUPER->sectsize_bits) + 1;
43663 - FAT_SUPER->num_clust =
43664 + FAT_SUPER->num_clust =
43665 2 + ((FAT_SUPER->num_sectors - FAT_SUPER->data_offset)
43666 / bpb.sects_per_clust);
43667 FAT_SUPER->sects_per_clust = bpb.sects_per_clust;
43668 @@ -153,11 +158,11 @@ fat_mount (void)
43669 /* Now do some sanity checks */
43671 if (FAT_CVT_U16(bpb.bytes_per_sect) != (1 << FAT_SUPER->sectsize_bits)
43672 - || FAT_CVT_U16(bpb.bytes_per_sect) != SECTOR_SIZE
43673 + || FAT_CVT_U16(bpb.bytes_per_sect) != sector_size
43674 || bpb.sects_per_clust != (1 << (FAT_SUPER->clustsize_bits
43675 - FAT_SUPER->sectsize_bits))
43676 || FAT_SUPER->num_clust <= 2
43677 - || (FAT_SUPER->fat_size * FAT_SUPER->num_clust / (2 * SECTOR_SIZE)
43678 + || (FAT_SUPER->fat_size * FAT_SUPER->num_clust / (2 * sector_size)
43679 > FAT_SUPER->fat_length))
43682 @@ -201,6 +206,7 @@ fat_read (char *buf, int len)
43686 + int sector_size = get_sector_size(current_drive);
43688 if (FAT_SUPER->file_cluster < 0)
43690 @@ -236,10 +242,10 @@ fat_read (char *buf, int len)
43691 if (cached_pos < 0 ||
43692 (cached_pos + FAT_SUPER->fat_size) > 2*FAT_CACHE_SIZE)
43694 - FAT_SUPER->cached_fat = (fat_entry & ~(2*SECTOR_SIZE - 1));
43695 + FAT_SUPER->cached_fat = (fat_entry & ~(2*sector_size - 1));
43696 cached_pos = (fat_entry - FAT_SUPER->cached_fat);
43697 sector = FAT_SUPER->fat_offset
43698 - + FAT_SUPER->cached_fat / (2*SECTOR_SIZE);
43699 + + FAT_SUPER->cached_fat / (2*sector_size);
43700 if (!devread (sector, 0, FAT_CACHE_SIZE, (char*) FAT_BUF))
43703 @@ -257,6 +263,8 @@ fat_read (char *buf, int len)
43705 if (next_cluster < 2 || next_cluster >= FAT_SUPER->num_clust)
43707 + grub_printf("next_cluster: %d FAT_SUPER->num_clust: %d\n",
43708 + next_cluster, FAT_SUPER->num_clust);
43709 errnum = ERR_FSYS_CORRUPT;
43712 @@ -340,7 +348,8 @@ fat_dir (char *dirname)
43713 /* Directories don't have a file size */
43716 - for (rest = dirname; (ch = *rest) && !isspace (ch) && ch != '/'; rest++);
43717 + for (rest = dirname; (ch = *rest) && !isspace (ch) && ch != '/'; rest++)
43718 + *rest = tolower(*rest);
43722 @@ -432,7 +441,7 @@ fat_dir (char *dirname)
43723 goto print_filename;
43724 # endif /* STAGE1_5 */
43726 - if (substring (dirname, filename) == 0)
43727 + if (subcasestring (dirname, filename) == 0)
43731 @@ -459,7 +468,7 @@ fat_dir (char *dirname)
43732 if (do_possibilities)
43735 - if (substring (dirname, filename) <= 0)
43736 + if (subcasestring (dirname, filename) <= 0)
43738 if (print_possibilities > 0)
43739 print_possibilities = -print_possibilities;
43740 @@ -469,7 +478,7 @@ fat_dir (char *dirname)
43742 # endif /* STAGE1_5 */
43744 - if (substring (dirname, filename) == 0)
43745 + if (subcasestring (dirname, filename) == 0)
43749 diff --git a/stage2/fsys_iso9660.c b/stage2/fsys_iso9660.c
43750 index 90e4aa8..858238b 100644
43751 --- a/stage2/fsys_iso9660.c
43752 +++ b/stage2/fsys_iso9660.c
43753 @@ -56,8 +56,8 @@ struct iso_inode_info {
43754 #define NAME_BUF ((unsigned char *)(FSYS_BUF + 8192))
43757 -static inline unsigned long
43758 -log2 (unsigned long word)
43759 +static inline unsigned int
43760 +grub_log2 (unsigned int word)
43762 asm volatile ("bsfl %1,%0"
43764 @@ -68,7 +68,7 @@ log2 (unsigned long word)
43766 iso9660_devread (int sector, int byte_offset, int byte_len, char *buf)
43768 - unsigned short sector_size_lg2 = log2(buf_geom.sector_size);
43769 + unsigned short sector_size_lg2 = grub_log2(buf_geom.sector_size);
43772 * We have to use own devread() function since BIOS return wrong geometry
43773 @@ -81,8 +81,6 @@ iso9660_devread (int sector, int byte_offset, int byte_len, char *buf)
43777 - sector += (byte_offset >> sector_size_lg2);
43778 - byte_offset &= (buf_geom.sector_size - 1);
43779 asm volatile ("shl%L0 %1,%0"
43781 : "Ic"((int8_t)(ISO_SECTOR_BITS - sector_size_lg2)),
43782 diff --git a/stage2/fsys_jfs.c b/stage2/fsys_jfs.c
43783 index 307f836..d63b1de 100644
43784 --- a/stage2/fsys_jfs.c
43785 +++ b/stage2/fsys_jfs.c
43786 @@ -207,19 +207,20 @@ int
43789 struct jfs_superblock super;
43790 + int sector_bits = get_sector_bits(current_drive);
43792 - if (part_length < MINJFS >> SECTOR_BITS
43793 - || !devread (SUPER1_OFF >> SECTOR_BITS, 0,
43794 + if (part_length < MINJFS >> sector_bits
43795 + || !devread (SUPER1_OFF >> sector_bits, 0,
43796 sizeof(struct jfs_superblock), (char *)&super)
43797 || (super.s_magic != JFS_MAGIC)
43798 - || !devread ((AITBL_OFF >> SECTOR_BITS) + FILESYSTEM_I,
43799 + || !devread ((AITBL_OFF >> sector_bits) + FILESYSTEM_I,
43800 0, DISIZE, (char*)fileset)) {
43804 jfs.bsize = super.s_bsize;
43805 jfs.l2bsize = super.s_l2bsize;
43806 - jfs.bdlog = jfs.l2bsize - SECTOR_BITS;
43807 + jfs.bdlog = jfs.l2bsize - sector_bits;
43811 @@ -387,9 +388,10 @@ int
43812 jfs_embed (int *start_sector, int needed_sectors)
43814 struct jfs_superblock super;
43815 + int sector_bits = get_sector_bits(current_drive);
43817 if (needed_sectors > 63
43818 - || !devread (SUPER1_OFF >> SECTOR_BITS, 0,
43819 + || !devread (SUPER1_OFF >> sector_bits, 0,
43820 sizeof (struct jfs_superblock),
43822 || (super.s_magic != JFS_MAGIC)) {
43823 diff --git a/stage2/fsys_minix.c b/stage2/fsys_minix.c
43824 index 5c76796..175ecf2 100644
43825 --- a/stage2/fsys_minix.c
43826 +++ b/stage2/fsys_minix.c
43827 @@ -138,11 +138,11 @@ struct minix_dir_entry {
43828 #define SUPERBLOCK \
43829 ((struct minix_super_block *)(FSYS_BUF))
43831 - ((struct minix_inode *)((int) SUPERBLOCK + BLOCK_SIZE))
43832 + ((struct minix_inode *)((unsigned long) SUPERBLOCK + BLOCK_SIZE))
43833 #define DATABLOCK1 \
43834 - ((int)((int)INODE + sizeof(struct minix_inode)))
43835 + ((unsigned long)INODE + sizeof(struct minix_inode))
43836 #define DATABLOCK2 \
43837 - ((int)((int)DATABLOCK1 + BLOCK_SIZE))
43838 + ((unsigned long)DATABLOCK1 + BLOCK_SIZE)
43841 #define S_IFMT 00170000
43842 @@ -193,7 +193,7 @@ static int
43843 minix_rdfsb (int fsblock, int buffer)
43845 return devread (fsblock * (BLOCK_SIZE / DEV_BSIZE), 0,
43846 - BLOCK_SIZE, (char *) buffer);
43847 + BLOCK_SIZE, (char *) (unsigned long) buffer);
43850 /* Maps LOGICAL_BLOCK (the file offset divided by the blocksize) into
43851 @@ -336,7 +336,7 @@ minix_dir (char *dirname)
43853 ino_blk = (2 + SUPERBLOCK->s_imap_blocks + SUPERBLOCK->s_zmap_blocks
43854 + (current_ino - 1) / MINIX_INODES_PER_BLOCK);
43855 - if (! minix_rdfsb (ino_blk, (int) INODE))
43856 + if (! minix_rdfsb (ino_blk, (unsigned long) INODE))
43859 /* reset indirect blocks! */
43860 diff --git a/stage2/fsys_reiserfs.c b/stage2/fsys_reiserfs.c
43861 index 93ec5f8..f46fcb2 100644
43862 --- a/stage2/fsys_reiserfs.c
43863 +++ b/stage2/fsys_reiserfs.c
43864 @@ -292,7 +292,6 @@ struct reiserfs_de_head
43866 /* The size of the node cache */
43867 #define FSYSREISER_CACHE_SIZE 24*1024
43868 -#define FSYSREISER_MIN_BLOCKSIZE SECTOR_SIZE
43869 #define FSYSREISER_MAX_BLOCKSIZE FSYSREISER_CACHE_SIZE / 3
43871 /* Info about currently opened file */
43872 @@ -341,19 +340,19 @@ struct fsys_reiser_info
43873 /* The cached s+tree blocks in FSYS_BUF, see below
43874 * for a more detailed description.
43876 -#define ROOT ((char *) ((int) FSYS_BUF))
43877 +#define ROOT ((char *) ((unsigned long) FSYS_BUF))
43878 #define CACHE(i) (ROOT + ((i) << INFO->fullblocksize_shift))
43879 #define LEAF CACHE (DISK_LEAF_NODE_LEVEL)
43881 #define BLOCKHEAD(cache) ((struct block_head *) cache)
43882 -#define ITEMHEAD ((struct item_head *) ((int) LEAF + BLKH_SIZE))
43883 -#define KEY(cache) ((struct key *) ((int) cache + BLKH_SIZE))
43884 +#define ITEMHEAD ((struct item_head *) ((unsigned long) LEAF + BLKH_SIZE))
43885 +#define KEY(cache) ((struct key *) ((unsigned long) cache + BLKH_SIZE))
43886 #define DC(cache) ((struct disk_child *) \
43887 - ((int) cache + BLKH_SIZE + KEY_SIZE * nr_item))
43888 + ((unsigned long) cache + BLKH_SIZE + KEY_SIZE * nr_item))
43889 /* The fsys_reiser_info block.
43892 - ((struct fsys_reiser_info *) ((int) FSYS_BUF + FSYSREISER_CACHE_SIZE))
43893 + ((struct fsys_reiser_info *) ((unsigned long) FSYS_BUF + FSYSREISER_CACHE_SIZE))
43895 * The journal cache. For each transaction it contains the number of
43896 * blocks followed by the real block numbers of this transaction.
43897 @@ -366,8 +365,8 @@ struct fsys_reiser_info
43898 #define JOURNAL_END ((__u32 *) (FSYS_BUF + FSYS_BUFLEN))
43901 -static __inline__ unsigned long
43902 -log2 (unsigned long word)
43903 +static __inline__ unsigned int
43904 +grub_log2 (unsigned int word)
43906 __asm__ ("bsfl %1,%0"
43908 @@ -569,9 +568,11 @@ int
43909 reiserfs_mount (void)
43911 struct reiserfs_super_block super;
43912 - int superblock = REISERFS_DISK_OFFSET_IN_BYTES >> SECTOR_BITS;
43913 + int sector_bits = get_sector_bits(current_drive);
43914 + int sector_size = get_sector_size(current_drive);
43915 + int superblock = REISERFS_DISK_OFFSET_IN_BYTES >> sector_bits;
43917 - if (part_length < superblock + (sizeof (super) >> SECTOR_BITS)
43918 + if (part_length < superblock + (sizeof (super) >> sector_bits)
43919 || ! devread (superblock, 0, sizeof (struct reiserfs_super_block),
43921 || (substring (REISER3FS_SUPER_MAGIC_STRING, super.s_magic) > 0
43922 @@ -582,8 +583,8 @@ reiserfs_mount (void)
43923 <= REISERFS_DISK_OFFSET_IN_BYTES))
43925 /* Try old super block position */
43926 - superblock = REISERFS_OLD_DISK_OFFSET_IN_BYTES >> SECTOR_BITS;
43927 - if (part_length < superblock + (sizeof (super) >> SECTOR_BITS)
43928 + superblock = REISERFS_OLD_DISK_OFFSET_IN_BYTES >> sector_bits;
43929 + if (part_length < superblock + (sizeof (super) >> sector_bits)
43930 || ! devread (superblock, 0, sizeof (struct reiserfs_super_block),
43933 @@ -594,7 +595,7 @@ reiserfs_mount (void)
43935 /* pre journaling super block ? */
43936 if (substring (REISERFS_SUPER_MAGIC_STRING,
43937 - (char*) ((int) &super + 20)) > 0)
43938 + (char*) ((unsigned long) &super + 20)) > 0)
43941 super.s_blocksize = REISERFS_OLD_BLOCKSIZE;
43942 @@ -609,8 +610,8 @@ reiserfs_mount (void)
43944 INFO->version = super.s_version;
43945 INFO->blocksize = super.s_blocksize;
43946 - INFO->fullblocksize_shift = log2 (super.s_blocksize);
43947 - INFO->blocksize_shift = INFO->fullblocksize_shift - SECTOR_BITS;
43948 + INFO->fullblocksize_shift = grub_log2 (super.s_blocksize);
43949 + INFO->blocksize_shift = INFO->fullblocksize_shift - sector_bits;
43950 INFO->cached_slots =
43951 (FSYSREISER_CACHE_SIZE >> INFO->fullblocksize_shift) - 1;
43953 @@ -622,9 +623,9 @@ reiserfs_mount (void)
43954 /* Clear node cache. */
43955 memset (INFO->blocks, 0, sizeof (INFO->blocks));
43957 - if (super.s_blocksize < FSYSREISER_MIN_BLOCKSIZE
43958 + if (super.s_blocksize < get_sector_size(current_drive)
43959 || super.s_blocksize > FSYSREISER_MAX_BLOCKSIZE
43960 - || (SECTOR_SIZE << INFO->blocksize_shift) != super.s_blocksize)
43961 + || (sector_size << INFO->blocksize_shift) != super.s_blocksize)
43964 /* Initialize journal code. If something fails we end with zero
43965 @@ -1215,9 +1216,10 @@ int
43966 reiserfs_embed (int *start_sector, int needed_sectors)
43968 struct reiserfs_super_block super;
43969 + int sector_bits = get_sector_bits(current_drive);
43972 - if (! devread (REISERFS_DISK_OFFSET_IN_BYTES >> SECTOR_BITS, 0,
43974 + if (! devread (REISERFS_DISK_OFFSET_IN_BYTES >> sector_bits, 0,
43975 sizeof (struct reiserfs_super_block), (char *) &super))
43978 @@ -1229,9 +1231,9 @@ reiserfs_embed (int *start_sector, int needed_sectors)
43979 * the journal log */
43980 super.s_journal_block * super.s_blocksize
43981 > REISERFS_DISK_OFFSET_IN_BYTES))
43982 - num_sectors = (REISERFS_DISK_OFFSET_IN_BYTES >> SECTOR_BITS) - 1;
43983 + num_sectors = (REISERFS_DISK_OFFSET_IN_BYTES >> sector_bits) - 1;
43985 - num_sectors = (REISERFS_OLD_DISK_OFFSET_IN_BYTES >> SECTOR_BITS) - 1;
43986 + num_sectors = (REISERFS_OLD_DISK_OFFSET_IN_BYTES >> sector_bits) - 1;
43988 return (needed_sectors <= num_sectors);
43990 diff --git a/stage2/fsys_uefi.c b/stage2/fsys_uefi.c
43991 new file mode 100644
43992 index 0000000..58b7050
43994 +++ b/stage2/fsys_uefi.c
43997 + * GRUB -- GRand Unified Bootloader
43998 + * Copyright (C) 2001 Free Software Foundation, Inc.
44000 + * This program is free software; you can redistribute it and/or modify
44001 + * it under the terms of the GNU General Public License as published by
44002 + * the Free Software Foundation; either version 2 of the License, or
44003 + * (at your option) any later version.
44005 + * This program is distributed in the hope that it will be useful,
44006 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
44007 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
44008 + * GNU General Public License for more details.
44010 + * You should have received a copy of the GNU General Public License
44011 + * along with this program; if not, write to the Free Software
44012 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
44015 +#include "shared.h"
44016 +#include "filesys.h"
44018 +#ifdef PLATFORM_EFI
44021 +#include <grub/types.h>
44022 +#include <grub/misc.h>
44023 +#include <grub/efi/efi.h>
44024 +#include <grub/efi/misc.h>
44025 +#include <grub/efi/api.h>
44027 +static grub_efi_simple_file_system_t *file_system;
44028 +static grub_efi_guid_t fsinfo_guid = GRUB_EFI_DEVICE_PATH_GUID;
44029 +grub_efi_file_t *root = NULL;
44030 +grub_efi_file_t *file = NULL;
44033 + grub_efi_uint64_t size;
44034 + grub_efi_uint64_t filesize;
44035 + grub_efi_uint64_t physicalsize;
44036 + grub_efi_time_t createtime;
44037 + grub_efi_time_t accesstime;
44038 + grub_efi_time_t modifytime;
44039 + grub_efi_uint64_t attribute;
44040 + grub_efi_char16_t filename[];
44041 +} grub_efi_file_info_t;
44046 + grub_efi_handle_t dev_handle = grub_efidisk_get_current_bdev_handle();
44047 + grub_efi_status_t status;
44052 + file_system = grub_efi_open_protocol (dev_handle, &simple_file_system_guid,
44053 + GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
44055 + if (!file_system)
44058 + status = Call_Service_2 (file_system->open_volume, file_system, &root);
44060 + if (status != GRUB_EFI_SUCCESS)
44067 +uefi_dir (char *dirname)
44069 + grub_efi_status_t status;
44070 + grub_efi_char16_t *file_name_w = NULL;
44071 + grub_efi_char16_t *dir_name_w = NULL;
44072 + grub_efi_file_info_t *fileinfo = NULL;
44073 + grub_efi_uintn_t buffersize = 0;
44074 + grub_efi_file_t *directory = NULL;
44075 + int i, dirlen = 0, ret = 0;
44077 + file_name_w = grub_malloc (2 * strlen(dirname) + 2);
44078 + if (!file_name_w)
44081 + for (i=0; i<strlen(dirname); i++) {
44082 + file_name_w[i] = dirname[i];
44083 + if (file_name_w[i] == '/') {
44084 + file_name_w[i] = '\\';
44089 + file_name_w[i] = '\0';
44091 + status = Call_Service_5 (root->open, root, &file, file_name_w,
44092 + GRUB_EFI_FILE_MODE_READ, 0);
44094 + if (status != GRUB_EFI_SUCCESS)
44097 + if (dirname[i-1] == '/') {
44098 + if (print_possibilities)
44099 + grub_printf("\n");
44104 + status = Call_Service_3 (file->read, file, &buffersize, fileinfo);
44106 + if (status == GRUB_EFI_BUFFER_TOO_SMALL) {
44107 + fileinfo = grub_malloc(buffersize);
44109 + } else if (status) {
44111 + } else if (buffersize == 0) {
44113 + if (print_possibilities)
44114 + grub_printf("\n");
44118 + filenamelen = fileinfo->size - sizeof(*fileinfo);
44120 + if (print_possibilities) {
44121 + for (i=0; i<filenamelen/2; i++)
44122 + grub_printf("%c", (char)fileinfo->filename[i]);
44124 + grub_printf(" ");
44127 + char *data = NULL;
44128 + dir_name_w = grub_malloc (2 * dirlen + 2);
44132 + for (i=0; i<dirlen; i++)
44133 + dir_name_w[i] = file_name_w[i];
44135 + dir_name_w[i] = '\0';
44137 + status = Call_Service_5 (root->open, root, &directory, dir_name_w,
44138 + GRUB_EFI_FILE_MODE_READ, 0);
44144 + status = Call_Service_3 (directory->read, directory, &buffersize, fileinfo);
44146 + if (status == GRUB_EFI_BUFFER_TOO_SMALL) {
44147 + fileinfo = grub_malloc(buffersize);
44149 + } else if (status) {
44151 + } else if (buffersize == 0) {
44155 + filenamelen = fileinfo->size - sizeof(*fileinfo);
44157 + if (filenamelen != ((strlen(dirname) - dirlen) * 2))
44160 + for (i=0; i<filenamelen/2; i++) {
44161 + if (fileinfo->filename[i] != file_name_w[i + dirlen + 1]) {
44162 + if (fileinfo->filename[i] > 0xff ||
44163 + (grub_tolower(fileinfo->filename[i]) !=
44164 + grub_tolower(file_name_w[i + dirlen + 1])))
44173 + if (fileinfo->filesize < 256 && fileinfo->filesize > 3)
44175 + data = grub_malloc(fileinfo->filesize);
44178 + uefi_read(data, fileinfo->filesize);
44181 + * UEFI doesn't really support symlinks. Apple's UEFI driver exposes
44182 + * them as files containing the path of the target. This provides
44183 + * hacky support in the absence of a real driver.
44185 + if (data[0] == '.' && data[1] == '.' && data[2] == '/')
44188 + char *tmpdir = grub_malloc(dirlen + fileinfo->filesize);
44190 + for (j=0; j<dirlen+1; j++)
44191 + tmpdir[j] = dirname[j];
44192 + for (j=0; j<fileinfo->filesize; j++)
44193 + tmpdir[j+dirlen+1] = data[j];
44194 + tmpdir[j+dirlen+1] = '\0';
44196 + /* Open the new file */
44197 + ret = uefi_dir(tmpdir);
44198 + grub_free (tmpdir);
44199 + grub_free (data);
44207 + filemax = fileinfo->filesize;
44213 + grub_free (fileinfo);
44215 + grub_free (dir_name_w);
44217 + grub_free (file_name_w);
44225 + grub_efi_status_t status = 0;
44228 + status = Call_Service_1 (file->close, file);
44234 +uefi_read (char *addr, int len)
44236 + grub_efi_status_t status;
44237 + grub_efi_uintn_t length = len;
44241 + status = Call_Service_2 (file->set_position, file, filepos);
44243 + if (status != GRUB_EFI_SUCCESS)
44246 + status = Call_Service_3 (file->read, file, &length, addr);
44250 + if (status == GRUB_EFI_SUCCESS) {
44256 + errnum = ERR_FILE_NOT_FOUND;
44261 diff --git a/stage2/fsys_vstafs.c b/stage2/fsys_vstafs.c
44262 index a116717..652e784 100644
44263 --- a/stage2/fsys_vstafs.c
44264 +++ b/stage2/fsys_vstafs.c
44265 @@ -30,8 +30,8 @@ static struct dir_entry *vstafs_nextdir (void);
44268 #define FIRST_SECTOR ((struct first_sector *) FSYS_BUF)
44269 -#define FILE_INFO ((struct fs_file *) (int) FIRST_SECTOR + 8192)
44270 -#define DIRECTORY_BUF ((struct dir_entry *) (int) FILE_INFO + 512)
44271 +#define FILE_INFO ((struct fs_file *) (unsigned long) FIRST_SECTOR + 8192)
44272 +#define DIRECTORY_BUF ((struct dir_entry *) (unsigned long) FILE_INFO + 512)
44274 #define ROOT_SECTOR 1
44276 @@ -186,35 +186,35 @@ vstafs_dir (char *dirname)
44278 vstafs_read (char *addr, int len)
44281 + struct alloc *al;
44282 int size, ret = 0, offset, curr_len = 0;
44289 get_file_info (f_sector);
44290 size = FILE_INFO->len-VSTAFS_START_DATA;
44291 - a = FILE_INFO->blocks;
44292 + al = FILE_INFO->blocks;
44296 - if (filepos < a[0].a_len * 512 - VSTAFS_START_DATA)
44297 + if (filepos < al[0].a_len * 512 - VSTAFS_START_DATA)
44299 offset = filepos + VSTAFS_START_DATA;
44301 - curr_len = a[0].a_len * 512 - offset - filepos;
44302 + curr_len = al[0].a_len * 512 - offset - filepos;
44306 - ext_size = a[0].a_len * 512 - VSTAFS_START_DATA;
44307 + ext_size = al[0].a_len * 512 - VSTAFS_START_DATA;
44308 offset = filepos - ext_size;
44312 curr_len -= ext_size;
44313 offset -= ext_size;
44314 - ext_size = a[extent+1].a_len * 512;
44315 + ext_size = al[extent+1].a_len * 512;
44317 while (extent < FILE_INFO->extents && offset>ext_size);
44319 @@ -223,16 +223,16 @@ vstafs_read (char *addr, int len)
44321 offset = VSTAFS_START_DATA;
44323 - curr_len = a[0].a_len * 512 - offset;
44324 + curr_len = al[0].a_len * 512 - offset;
44328 if (curr_len > len)
44331 - for (curr_ext=extent;
44332 - curr_ext < FILE_INFO->extents;
44333 - curr_len = a[curr_ext].a_len * 512, curr_pos += curr_len, curr_ext++)
44334 + for (this_ext=extent;
44335 + this_ext < FILE_INFO->extents;
44336 + curr_len = al[this_ext].a_len * 512, curr_pos += curr_len, this_ext++)
44340 @@ -242,7 +242,7 @@ vstafs_read (char *addr, int len)
44344 - devread (a[curr_ext].a_start,offset, curr_len, curr_pos);
44345 + devread (al[this_ext].a_start,offset, curr_len, curr_pos);
44349 diff --git a/stage2/fsys_xfs.c b/stage2/fsys_xfs.c
44350 index 76c4c13..226e343 100644
44351 --- a/stage2/fsys_xfs.c
44352 +++ b/stage2/fsys_xfs.c
44353 @@ -97,19 +97,23 @@ ino2offset (xfs_ino_t ino)
44354 return ino & XFS_INO_MASK(XFS_INO_OFFSET_BITS);
44357 -static inline __const__ xfs_uint16_t
44358 -le16 (xfs_uint16_t x)
44359 +static inline xfs_uint16_t __attribute__((__const__))
44360 +le16 (xfs_uint16_t x)
44363 + return ((x & 0xff00) >> 8) | ((x & 0xff) << 8);
44365 __asm__("xchgb %b0,%h0" \
44372 -static inline __const__ xfs_uint32_t
44373 +static inline xfs_uint32_t __attribute__((__const__))
44374 le32 (xfs_uint32_t x)
44378 /* 386 doesn't have bswap. */
44379 __asm__("bswap %0" : "=r" (x) : "0" (x));
44381 @@ -122,7 +126,7 @@ le32 (xfs_uint32_t x)
44385 -static inline __const__ xfs_uint64_t
44386 +static inline xfs_uint64_t __attribute__((__const__))
44387 le64 (xfs_uint64_t x)
44389 xfs_uint32_t h = x >> 32;
44390 @@ -187,12 +191,12 @@ fsb2daddr (xfs_fsblock_t fsbno)
44394 -#define offsetof(t,m) ((int)&(((t *)0)->m))
44395 +#define offsetof(t,m) __builtin_offsetof(t, m)
44398 +static inline xfs_uint64_t
44399 btroot_maxrecs (void)
44401 - int tmp = icore.di_forkoff ? (icore.di_forkoff << 3) : xfs.isize;
44402 + xfs_uint64_t tmp = icore.di_forkoff ? (icore.di_forkoff << 3) : xfs.isize;
44404 return (tmp - sizeof(xfs_bmdr_block_t) - offsetof(xfs_dinode_t, di_u)) /
44405 (sizeof (xfs_bmbt_key_t) + sizeof (xfs_bmbt_ptr_t));
44406 @@ -465,7 +469,7 @@ xfs_mount (void)
44408 xfs.bsize = le32 (super.sb_blocksize);
44409 xfs.blklog = super.sb_blocklog;
44410 - xfs.bdlog = xfs.blklog - SECTOR_BITS;
44411 + xfs.bdlog = xfs.blklog - get_sector_bits(current_drive);
44412 xfs.rootino = le64 (super.sb_rootino);
44413 xfs.isize = le16 (super.sb_inodesize);
44414 xfs.agblocks = le32 (super.sb_agblocks);
44415 diff --git a/stage2/gpt.h b/stage2/gpt.h
44416 new file mode 100644
44417 index 0000000..ad6d8f1
44422 + * GRUB -- GRand Unified Bootloader
44423 + * Copyright (C) 2002,2005,2006 Free Software Foundation, Inc.
44425 + * This program is free software; you can redistribute it and/or modify
44426 + * it under the terms of the GNU General Public License as published by
44427 + * the Free Software Foundation; either version 2 of the License, or
44428 + * (at your option) any later version.
44430 + * This program is distributed in the hope that it will be useful,
44431 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
44432 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
44433 + * GNU General Public License for more details.
44435 + * You should have received a copy of the GNU General Public License
44436 + * along with this program; if not, write to the Free Software
44437 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
44443 +typedef signed char grub_int8_t;
44444 +typedef signed short grub_int16_t;
44445 +typedef signed int grub_int32_t;
44446 +typedef signed long long int grub_int64_t;
44447 +typedef unsigned char grub_uint8_t;
44448 +typedef unsigned short grub_uint16_t;
44449 +typedef unsigned int grub_uint32_t;
44450 +typedef unsigned long long int grub_uint64_t;
44452 +struct grub_gpt_header
44454 + grub_uint64_t magic;
44455 + grub_uint32_t version;
44456 + grub_uint32_t headersize;
44457 + grub_uint32_t crc32;
44458 + grub_uint32_t unused1;
44459 + grub_uint64_t primary;
44460 + grub_uint64_t backup;
44461 + grub_uint64_t start;
44462 + grub_uint64_t end;
44463 + grub_uint8_t guid[16];
44464 + grub_uint64_t partitions;
44465 + grub_uint32_t maxpart;
44466 + grub_uint32_t partentry_size;
44467 + grub_uint32_t partentry_crc32;
44468 +} __attribute__ ((packed));
44470 +struct grub_gpt_partentry
44472 + grub_uint64_t type1;
44473 + grub_uint64_t type2;
44474 + grub_uint8_t guid[16];
44475 + grub_uint64_t start;
44476 + grub_uint64_t end;
44477 + grub_uint8_t attrib;
44479 +} __attribute__ ((packed));
44481 +#define GPT_HEADER_MAGIC 0x5452415020494645ULL
44483 +#define GPT_ENTRY_SECTOR(drive,size,entry) \
44484 + ((((entry) * (size) + 1) & ~(get_sector_size(drive) - 1)) \
44485 + >> get_sector_bits(drive))
44486 +#define GPT_ENTRY_INDEX(drive, size,entry) \
44487 + ((((entry) * (size) + 1) & (get_sector_size(drive) - 1)) - 1)
44489 +#endif /* _GPT_H */
44490 diff --git a/stage2/graphics.c b/stage2/graphics.c
44491 new file mode 100644
44492 index 0000000..81109ae
44494 +++ b/stage2/graphics.c
44496 +/* graphics.c - graphics mode support for GRUB */
44497 +/* Implemented as a terminal type by Jeremy Katz <katzj@redhat.com> based
44498 + * on a patch by Paulo César Pereira de Andrade <pcpa@conectiva.com.br>
44501 + * GRUB -- GRand Unified Bootloader
44502 + * Copyright (C) 2001,2002 Red Hat, Inc.
44503 + * Portions copyright (C) 2000 Conectiva, Inc.
44505 + * This program is free software; you can redistribute it and/or modify
44506 + * it under the terms of the GNU General Public License as published by
44507 + * the Free Software Foundation; either version 2 of the License, or
44508 + * (at your option) any later version.
44510 + * This program is distributed in the hope that it will be useful,
44511 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
44512 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
44513 + * GNU General Public License for more details.
44515 + * You should have received a copy of the GNU General Public License
44516 + * along with this program; if not, write to the Free Software
44517 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
44522 +#ifdef SUPPORT_GRAPHICS
44525 +#include <shared.h>
44526 +#include <graphics.h>
44528 +int saved_videomode;
44529 +unsigned char *font8x16;
44531 +int graphics_inited = 0;
44532 +static char splashimage[64];
44534 +#define VSHADOW VSHADOW1
44535 +unsigned char VSHADOW1[38400];
44536 +unsigned char VSHADOW2[38400];
44537 +unsigned char VSHADOW4[38400];
44538 +unsigned char VSHADOW8[38400];
44540 +/* constants to define the viewable area */
44542 +const int x1 = 80;
44544 +const int y1 = 30;
44546 +/* text buffer has to be kept around so that we can write things as we
44547 + * scroll and the like */
44548 +unsigned short text[80 * 30];
44550 +/* why do these have to be kept here? */
44551 +int foreground = (63 << 16) | (63 << 8) | (63), background = 0, border = 0;
44553 +/* current position */
44554 +static int fontx = 0;
44555 +static int fonty = 0;
44557 +/* global state so that we don't try to recursively scroll or cursor */
44558 +static int no_scroll = 0;
44561 +static int graphics_standard_color = A_NORMAL;
44562 +static int graphics_normal_color = A_NORMAL;
44563 +static int graphics_highlight_color = A_REVERSE;
44564 +static int graphics_current_color = A_NORMAL;
44565 +static color_state graphics_color_state = COLOR_STATE_STANDARD;
44568 +/* graphics local functions */
44569 +static void graphics_setxy(int col, int row);
44570 +static void graphics_scroll(void);
44572 +/* FIXME: where do these really belong? */
44573 +static inline void outb(unsigned short port, unsigned char val)
44575 + __asm __volatile ("outb %0,%1"::"a" (val), "d" (port));
44578 +static void MapMask(int value) {
44580 + outb(0x3c5, value);
44583 +/* bit mask register */
44584 +static void BitMask(int value) {
44586 + outb(0x3cf, value);
44591 +/* Set the splash image */
44592 +void graphics_set_splash(char *splashfile) {
44593 + grub_strcpy(splashimage, splashfile);
44596 +/* Get the current splash image */
44597 +char *graphics_get_splash(void) {
44598 + return splashimage;
44601 +/* Initialize a vga16 graphics display with the palette based off of
44602 + * the image in splashimage. If the image doesn't exist, leave graphics
44604 +int graphics_init()
44606 + if (!read_image(splashimage)) {
44607 + current_term = term_table;
44608 + grub_printf("failed to read image\n");
44612 + font8x16 = (unsigned char*)graphics_get_font();
44614 + graphics_inited = 1;
44616 + /* make sure that the highlight color is set correctly */
44617 + graphics_highlight_color = ((graphics_normal_color >> 4) |
44618 + ((graphics_normal_color & 0xf) << 4));
44623 +/* Leave graphics mode */
44624 +void graphics_end(void)
44626 + if (graphics_inited) {
44627 + set_videomode(saved_videomode);
44628 + graphics_inited = 0;
44632 +/* Print ch on the screen. Handle any needed scrolling or the like */
44633 +void graphics_putchar(int ch) {
44636 + graphics_cursor(0);
44638 + if (ch == '\n') {
44639 + if (fonty + 1 < y1)
44640 + graphics_setxy(fontx, fonty + 1);
44642 + graphics_scroll();
44643 + graphics_cursor(1);
44645 + } else if (ch == '\r') {
44646 + graphics_setxy(x0, fonty);
44647 + graphics_cursor(1);
44651 + graphics_cursor(0);
44653 + text[fonty * 80 + fontx] = ch;
44654 + text[fonty * 80 + fontx] &= 0x00ff;
44655 + if (graphics_current_color & 0xf0)
44656 + text[fonty * 80 + fontx] |= 0x100;
44658 + graphics_cursor(0);
44660 + if ((fontx + 1) >= x1) {
44661 + graphics_setxy(x0, fonty);
44662 + if (fonty + 1 < y1)
44663 + graphics_setxy(x0, fonty + 1);
44665 + graphics_scroll();
44667 + graphics_setxy(fontx + 1, fonty);
44670 + graphics_cursor(1);
44673 +/* get the current location of the cursor */
44674 +int graphics_getxy(void) {
44675 + return (fontx << 8) | fonty;
44678 +void graphics_gotoxy(int x, int y) {
44679 + graphics_cursor(0);
44681 + graphics_setxy(x, y);
44683 + graphics_cursor(1);
44686 +void graphics_cls(void) {
44688 + unsigned char *mem, *s1, *s2, *s4, *s8;
44690 + graphics_cursor(0);
44691 + graphics_gotoxy(x0, y0);
44693 + mem = (unsigned char*)VIDEOMEM;
44694 + s1 = (unsigned char*)VSHADOW1;
44695 + s2 = (unsigned char*)VSHADOW2;
44696 + s4 = (unsigned char*)VSHADOW4;
44697 + s8 = (unsigned char*)VSHADOW8;
44699 + for (i = 0; i < 80 * 30; i++)
44701 + graphics_cursor(1);
44707 + grub_memcpy(mem, s1, 38400);
44711 + grub_memcpy(mem, s2, 38400);
44715 + grub_memcpy(mem, s4, 38400);
44719 + grub_memcpy(mem, s8, 38400);
44725 +void graphics_setcolorstate (color_state state) {
44727 + case COLOR_STATE_STANDARD:
44728 + graphics_current_color = graphics_standard_color;
44730 + case COLOR_STATE_NORMAL:
44731 + graphics_current_color = graphics_normal_color;
44733 + case COLOR_STATE_HIGHLIGHT:
44734 + graphics_current_color = graphics_highlight_color;
44737 + graphics_current_color = graphics_standard_color;
44741 + graphics_color_state = state;
44744 +void graphics_setcolor (int normal_color, int highlight_color) {
44745 + graphics_normal_color = normal_color;
44746 + graphics_highlight_color = highlight_color;
44748 + graphics_setcolorstate (graphics_color_state);
44751 +int graphics_setcursor (int on) {
44752 + /* FIXME: we don't have a cursor in graphics */
44756 +/* Open the file, and search for a valid XPM header. Return 1 if one is found,
44757 + * leaving the current position as the start of the next line. Else,
44760 +static int xpm_open(char *s) {
44761 + char buf, prev, target[]="/* XPM */\n";
44764 + if (!grub_open(s))
44770 + if (grub_read(&buf, 1) != 1) {
44774 + if ((pos == 0 && prev == '\n') || pos > 0) {
44775 + if (buf == target[pos])
44781 + } while (target[pos]);
44785 +/* Read in the splashscreen image and set the palette up appropriately.
44786 + * Format of splashscreen is an xpm (can be gzipped) with 16 colors and
44788 +int read_image(char *s)
44790 + char buf[32], pal[16];
44791 + unsigned char c, base, mask, *s1, *s2, *s4, *s8;
44792 + unsigned i, len, idx, colors, x, y, width, height;
44794 + if (!xpm_open(s))
44797 + saved_videomode = set_videomode(0x12);
44800 + while (grub_read(&c, 1)) {
44805 + while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
44810 + while (grub_read(&c, 1)) {
44811 + if (c >= '0' && c <= '9')
44812 + width = width * 10 + c - '0';
44816 + while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
44819 + height = c - '0';
44820 + while (grub_read(&c, 1)) {
44821 + if (c >= '0' && c <= '9')
44822 + height = height * 10 + c - '0';
44826 + while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
44829 + colors = c - '0';
44830 + while (grub_read(&c, 1)) {
44831 + if (c >= '0' && c <= '9')
44832 + colors = colors * 10 + c - '0';
44838 + while (grub_read(&c, 1) && c != '"')
44842 + for (i = 0, idx = 1; i < colors; i++) {
44845 + while (grub_read(&c, 1) && c != '"')
44847 + grub_read(&c, 1); /* char */
44849 + grub_read(buf, 4); /* \t c # */
44851 + while (grub_read(&c, 1) && c != '"') {
44852 + if (len < sizeof(buf))
44856 + if (len == 6 && idx < 15) {
44857 + int r = ((hex(buf[0]) << 4) | hex(buf[1])) >> 2;
44858 + int g = ((hex(buf[2]) << 4) | hex(buf[3])) >> 2;
44859 + int b = ((hex(buf[4]) << 4) | hex(buf[5])) >> 2;
44862 + graphics_set_palette(idx, r, g, b);
44869 + s1 = (unsigned char*)VSHADOW1;
44870 + s2 = (unsigned char*)VSHADOW2;
44871 + s4 = (unsigned char*)VSHADOW4;
44872 + s8 = (unsigned char*)VSHADOW8;
44874 + for (i = 0; i < 38400; i++)
44875 + s1[i] = s2[i] = s4[i] = s8[i] = 0;
44877 + /* parse xpm data */
44878 + while (y < height) {
44880 + if (!grub_read(&c, 1)) {
44888 + while (grub_read(&c, 1) && c != '"') {
44889 + for (i = 1; i < 15; i++)
44890 + if (pal[i] == c) {
44895 + mask = 0x80 >> (x & 7);
44897 + s1[len + (x >> 3)] |= mask;
44899 + s2[len + (x >> 3)] |= mask;
44901 + s4[len + (x >> 3)] |= mask;
44903 + s8[len + (x >> 3)] |= mask;
44905 + if (++x >= 640) {
44917 + graphics_set_palette(0, (background >> 16), (background >> 8) & 63,
44918 + background & 63);
44919 + graphics_set_palette(15, (foreground >> 16), (foreground >> 8) & 63,
44920 + foreground & 63);
44921 + graphics_set_palette(0x11, (border >> 16), (border >> 8) & 63,
44928 +/* Convert a character which is a hex digit to the appropriate integer */
44931 + if (v >= 'A' && v <= 'F')
44932 + return (v - 'A' + 10);
44933 + if (v >= 'a' && v <= 'f')
44934 + return (v - 'a' + 10);
44935 + return (v - '0');
44939 +/* move the graphics cursor location to col, row */
44940 +static void graphics_setxy(int col, int row) {
44941 + if (col >= x0 && col < x1) {
44943 + cursorX = col << 3;
44945 + if (row >= y0 && row < y1) {
44947 + cursorY = row << 4;
44951 +/* scroll the screen */
44952 +static void graphics_scroll(void) {
44955 + /* we don't want to scroll recursively... that would be bad */
44960 + /* move everything up a line */
44961 + for (j = y0 + 1; j < y1; j++) {
44962 + graphics_gotoxy(x0, j - 1);
44963 + for (i = x0; i < x1; i++) {
44964 + graphics_putchar(text[j * 80 + i]);
44968 + /* last line should be blank */
44969 + graphics_gotoxy(x0, y1 - 1);
44970 + for (i = x0; i < x1; i++)
44971 + graphics_putchar(' ');
44972 + graphics_setxy(x0, y1 - 1);
44978 +void graphics_cursor(int set) {
44979 + unsigned char *pat, *mem, *ptr, chr[16 << 2];
44980 + int i, ch, invert, offset;
44982 + if (set && no_scroll)
44985 + offset = cursorY * 80 + fontx;
44986 + ch = text[fonty * 80 + fontx] & 0xff;
44987 + invert = (text[fonty * 80 + fontx] & 0xff00) != 0;
44988 + pat = font8x16 + (ch << 4);
44990 + mem = (unsigned char*)VIDEOMEM + offset;
44993 + for (i = 0; i < 16; i++) {
44994 + unsigned char mask = pat[i];
44997 + chr[i ] = ((unsigned char*)VSHADOW1)[offset];
44998 + chr[16 + i] = ((unsigned char*)VSHADOW2)[offset];
44999 + chr[32 + i] = ((unsigned char*)VSHADOW4)[offset];
45000 + chr[48 + i] = ((unsigned char*)VSHADOW8)[offset];
45002 + /* FIXME: if (shade) */
45004 + if (ch == DISP_VERT || ch == DISP_LL ||
45005 + ch == DISP_UR || ch == DISP_LR) {
45006 + unsigned char pmask = ~(pat[i] >> 1);
45008 + chr[i ] &= pmask;
45009 + chr[16 + i] &= pmask;
45010 + chr[32 + i] &= pmask;
45011 + chr[48 + i] &= pmask;
45013 + if (i > 0 && ch != DISP_VERT) {
45014 + unsigned char pmask = ~(pat[i - 1] >> 1);
45016 + chr[i ] &= pmask;
45017 + chr[16 + i] &= pmask;
45018 + chr[32 + i] &= pmask;
45019 + chr[48 + i] &= pmask;
45020 + if (ch == DISP_HORIZ || ch == DISP_UR || ch == DISP_LR) {
45021 + pmask = ~pat[i - 1];
45023 + chr[i ] &= pmask;
45024 + chr[16 + i] &= pmask;
45025 + chr[32 + i] &= pmask;
45026 + chr[48 + i] &= pmask;
45031 + chr[16 + i] |= mask;
45032 + chr[32 + i] |= mask;
45033 + chr[48 + i] |= mask;
45039 + chr[16 + i] = ~mask;
45040 + chr[32 + i] = ~mask;
45041 + chr[48 + i] = ~mask;
45048 + for (i = 0; i < 16; i++, ptr += 80) {
45049 + cursorBuf[i] = pat[i];
45056 + for (i = 1; i < 16; i <<= 1, offset += 16) {
45061 + for (j = 0; j < 16; j++, ptr += 80)
45062 + *ptr = chr[j + offset];
45068 +#endif /* SUPPORT_GRAPHICS */
45069 diff --git a/stage2/graphics.h b/stage2/graphics.h
45070 new file mode 100644
45071 index 0000000..a4cd9e8
45073 +++ b/stage2/graphics.h
45075 +/* graphics.h - graphics console interface */
45077 + * GRUB -- GRand Unified Bootloader
45078 + * Copyright (C) 2002 Free Software Foundation, Inc.
45080 + * This program is free software; you can redistribute it and/or modify
45081 + * it under the terms of the GNU General Public License as published by
45082 + * the Free Software Foundation; either version 2 of the License, or
45083 + * (at your option) any later version.
45085 + * This program is distributed in the hope that it will be useful,
45086 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
45087 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
45088 + * GNU General Public License for more details.
45090 + * You should have received a copy of the GNU General Public License
45091 + * along with this program; if not, write to the Free Software
45092 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
45095 +#ifndef GRAPHICS_H
45096 +#define GRAPHICS_H
45098 +/* magic constant */
45099 +#define VIDEOMEM 0xA0000
45101 +/* function prototypes */
45102 +char *graphics_get_splash(void);
45104 +int read_image(char *s);
45105 +void graphics_cursor(int set);
45107 +/* function prototypes for asm functions */
45108 +void * graphics_get_font();
45109 +void graphics_set_palette(int idx, int red, int green, int blue);
45110 +void set_int1c_handler();
45111 +void unset_int1c_handler();
45113 +extern short cursorX, cursorY;
45114 +extern char cursorBuf[16];
45116 +#endif /* GRAPHICS_H */
45117 diff --git a/stage2/gunzip.c b/stage2/gunzip.c
45118 index 8835089..45a2312 100644
45119 --- a/stage2/gunzip.c
45120 +++ b/stage2/gunzip.c
45121 @@ -141,7 +141,7 @@ static int gzip_filepos;
45122 static int gzip_filemax;
45123 static int gzip_fsmax;
45124 static int saved_filepos;
45125 -static unsigned long gzip_crc;
45126 +static unsigned int gzip_crc;
45128 /* internal extra variables for use of inflate code */
45129 static int block_type;
45130 @@ -169,7 +169,14 @@ linalloc (int size)
45132 reset_linalloc (void)
45134 +#ifdef PLATFORM_EFI
45135 + unsigned int top = (mbi.mem_upper << 10) + 0x100000;
45136 + if (top > GRUB_SCRATCH_MEM_SIZE)
45137 + top = GRUB_SCRATCH_MEM_SIZE;
45138 + linalloc_topaddr = RAW_ADDR (top);
45140 linalloc_topaddr = RAW_ADDR ((mbi.mem_upper << 10) + 0x100000);
45145 @@ -253,7 +260,7 @@ bad_field (int len)
45147 typedef unsigned char uch;
45148 typedef unsigned short ush;
45149 -typedef unsigned long ulg;
45150 +typedef unsigned int ulg;
45154 @@ -316,8 +323,8 @@ gunzip_test_header (void)
45158 - gzip_crc = *((unsigned long *) buf);
45159 - gzip_fsmax = gzip_filemax = *((unsigned long *) (buf + 4));
45160 + gzip_crc = *((unsigned int *) buf);
45161 + gzip_fsmax = gzip_filemax = *((unsigned int *) (buf + 4));
45163 initialize_tables ();
45165 diff --git a/stage2/iso9660.h b/stage2/iso9660.h
45166 index 4a6a8cc..c311ecf 100644
45167 --- a/stage2/iso9660.h
45168 +++ b/stage2/iso9660.h
45169 @@ -73,11 +73,11 @@ typedef union {
45171 typedef struct __iso_16bit {
45173 -} iso_16bit_t __attribute__ ((packed));
45176 typedef struct __iso_32bit {
45178 -} iso_32bit_t __attribute__ ((packed));
45181 typedef u_int8_t iso_date_t[7];
45183 diff --git a/stage2/mb_info.h b/stage2/mb_info.h
45184 index 1e1e63b..3a8dcfb 100644
45185 --- a/stage2/mb_info.h
45186 +++ b/stage2/mb_info.h
45187 @@ -44,10 +44,10 @@ struct mod_list
45189 struct AddrRangeDesc
45191 - unsigned long size;
45192 + unsigned int size;
45193 unsigned long long BaseAddr;
45194 unsigned long long Length;
45195 - unsigned long Type;
45196 + unsigned int Type;
45198 /* unspecified optional padding... */
45199 } __attribute__ ((packed));
45200 diff --git a/stage2/pc_slice.h b/stage2/pc_slice.h
45201 index a38d97f..2206e82 100644
45202 --- a/stage2/pc_slice.h
45203 +++ b/stage2/pc_slice.h
45204 @@ -38,50 +38,50 @@
45207 #define PC_MBR_CHECK_SIG(mbr_ptr) \
45208 - ( *( (unsigned short *) (((int) mbr_ptr) + PC_MBR_SIG_OFFSET) ) \
45209 + ( *( (unsigned short *) (((unsigned long) mbr_ptr) + PC_MBR_SIG_OFFSET) ) \
45210 == PC_MBR_SIGNATURE )
45212 #define PC_MBR_SIG(mbr_ptr) \
45213 - ( *( (unsigned short *) (((int) mbr_ptr) + PC_MBR_SIG_OFFSET) ) )
45214 + ( *( (unsigned short *) (((unsigned long) mbr_ptr) + PC_MBR_SIG_OFFSET) ) )
45216 #define PC_SLICE_FLAG(mbr_ptr, part) \
45217 - ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET \
45218 + ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET \
45221 #define PC_SLICE_HEAD(mbr_ptr, part) \
45222 - ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 1 \
45223 + ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 1 \
45226 #define PC_SLICE_SEC(mbr_ptr, part) \
45227 - ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 2 \
45228 + ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 2 \
45231 #define PC_SLICE_CYL(mbr_ptr, part) \
45232 - ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 3 \
45233 + ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 3 \
45236 #define PC_SLICE_TYPE(mbr_ptr, part) \
45237 - ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 4 \
45238 + ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 4 \
45241 #define PC_SLICE_EHEAD(mbr_ptr, part) \
45242 - ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 5 \
45243 + ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 5 \
45246 #define PC_SLICE_ESEC(mbr_ptr, part) \
45247 - ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 6 \
45248 + ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 6 \
45251 #define PC_SLICE_ECYL(mbr_ptr, part) \
45252 - ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 7 \
45253 + ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 7 \
45256 #define PC_SLICE_START(mbr_ptr, part) \
45257 - ( *( (unsigned long *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 8 \
45258 + ( *( (unsigned int *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 8 \
45261 #define PC_SLICE_LENGTH(mbr_ptr, part) \
45262 - ( *( (unsigned long *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 12 \
45263 + ( *( (unsigned int *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 12 \
45267 @@ -115,6 +115,8 @@
45268 #define PC_SLICE_TYPE_LINUX_EXTENDED 0x85
45269 #define PC_SLICE_TYPE_VSTAFS 0x9e
45270 #define PC_SLICE_TYPE_DELL_UTIL 0xde
45271 +#define PC_SLICE_TYPE_GPT 0xee
45272 +#define PC_SLICE_TYPE_EFI 0xef
45273 #define PC_SLICE_TYPE_LINUX_RAID 0xfd
45276 @@ -129,7 +131,8 @@
45277 || _type == PC_SLICE_TYPE_FAT16_LBA \
45278 || _type == PC_SLICE_TYPE_FAT32 \
45279 || _type == PC_SLICE_TYPE_FAT32_LBA \
45280 - || _type == PC_SLICE_TYPE_DELL_UTIL; })
45281 + || _type == PC_SLICE_TYPE_DELL_UTIL \
45282 + || _type == PC_SLICE_TYPE_EFI; })
45284 #define IS_PC_SLICE_TYPE_EXTENDED(type) \
45285 (((type) == PC_SLICE_TYPE_EXTENDED) \
45286 @@ -177,40 +180,40 @@
45289 #define BSD_LABEL_CHECK_MAG(l_ptr) \
45290 - ( *( (unsigned long *) (((int) l_ptr) + BSD_LABEL_MAG_OFFSET) ) \
45291 - == ( (unsigned long) BSD_LABEL_MAGIC ) )
45292 + ( *( (unsigned int *) (((unsigned long) l_ptr) + BSD_LABEL_MAG_OFFSET) ) \
45293 + == ( (unsigned int) BSD_LABEL_MAGIC ) )
45295 #define BSD_LABEL_MAG(l_ptr) \
45296 - ( *( (unsigned long *) (((int) l_ptr) + BSD_LABEL_MAG_OFFSET) ) )
45297 + ( *( (unsigned int *) (((unsigned long) l_ptr) + BSD_LABEL_MAG_OFFSET) ) )
45299 #define BSD_LABEL_DTYPE(l_ptr) \
45300 - ( *( (unsigned short *) (((int) l_ptr) + BSD_LABEL_MAG_OFFSET + 4) ) )
45301 + ( *( (unsigned short *) (((unsigned long) l_ptr) + BSD_LABEL_MAG_OFFSET + 4) ) )
45303 #define BSD_LABEL_NPARTS(l_ptr) \
45304 - ( *( (unsigned short *) (((int) l_ptr) + BSD_LABEL_NPARTS_OFFSET) ) )
45305 + ( *( (unsigned short *) (((unsigned long) l_ptr) + BSD_LABEL_NPARTS_OFFSET) ) )
45307 #define BSD_PART_LENGTH(l_ptr, part) \
45308 - ( *( (unsigned long *) (((int) l_ptr) + BSD_PART_OFFSET \
45309 + ( *( (unsigned int *) (((unsigned long) l_ptr) + BSD_PART_OFFSET \
45312 #define BSD_PART_START(l_ptr, part) \
45313 - ( *( (unsigned long *) (((int) l_ptr) + BSD_PART_OFFSET + 4 \
45314 + ( *( (unsigned int *) (((unsigned long) l_ptr) + BSD_PART_OFFSET + 4 \
45317 #define BSD_PART_FRAG_SIZE(l_ptr, part) \
45318 - ( *( (unsigned long *) (((int) l_ptr) + BSD_PART_OFFSET + 8 \
45319 + ( *( (unsigned int *) (((unsigned long) l_ptr) + BSD_PART_OFFSET + 8 \
45322 #define BSD_PART_TYPE(l_ptr, part) \
45323 - ( *( (unsigned char *) (((int) l_ptr) + BSD_PART_OFFSET + 12 \
45324 + ( *( (unsigned char *) (((unsigned long) l_ptr) + BSD_PART_OFFSET + 12 \
45327 #define BSD_PART_FRAGS_PER_BLOCK(l_ptr, part) \
45328 - ( *( (unsigned char *) (((int) l_ptr) + BSD_PART_OFFSET + 13 \
45329 + ( *( (unsigned char *) (((unsigned long) l_ptr) + BSD_PART_OFFSET + 13 \
45332 #define BSD_PART_EXTRA(l_ptr, part) \
45333 - ( *( (unsigned short *) (((int) l_ptr) + BSD_PART_OFFSET + 14 \
45334 + ( *( (unsigned short *) (((unsigned long) l_ptr) + BSD_PART_OFFSET + 14 \
45338 diff --git a/stage2/serial.c b/stage2/serial.c
45339 index 16c376f..37b9532 100644
45340 --- a/stage2/serial.c
45341 +++ b/stage2/serial.c
45342 @@ -37,7 +37,7 @@ static int keep_track = 1;
45344 /* Hardware-dependent definitions. */
45347 +#if ! defined (GRUB_UTIL) && ! defined (PLATFORM_EFI)
45348 /* The structure for speed vs. divisor. */
45351 @@ -187,7 +187,7 @@ serial_hw_init (unsigned short port, unsigned int speed,
45355 -#endif /* ! GRUB_UTIL */
45356 +#endif /* ! defined (GRUB_UTIL) && ! defined (PLATFORM_EFI) */
45359 /* Generic definitions. */
45360 diff --git a/stage2/sha256crypt.c b/stage2/sha256crypt.c
45361 new file mode 100644
45362 index 0000000..db168a2
45364 +++ b/stage2/sha256crypt.c
45366 +/* SHA256-based Unix crypt implementation.
45367 + Released into the Public Domain by Ulrich Drepper <drepper@redhat.com>.
45368 + Adapted for grub by Miloslav Trmac <mitr@redhat.com>. */
45370 +#include <stdbool.h>
45371 +#include <stddef.h>
45373 +#include <shared.h>
45375 +typedef unsigned int uint32_t;
45376 +typedef size_t uintptr_t;
45377 +#define alloca(SIZE) (__builtin_alloca (SIZE))
45378 +#define MIN(A, B) ((A) < (B) ? (A) : (B))
45379 +#define MAX(A, B) ((A) > (B) ? (A) : (B))
45381 +/* Structure to save state of computation between the single steps. */
45386 + uint32_t total[2];
45388 + char buffer[128]; /* NB: always correctly aligned for uint32_t. */
45392 +#if 1 /* __BYTE_ORDER == __LITTLE_ENDIAN */
45393 +# define SWAP(n) \
45394 + (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24))
45396 +# define SWAP(n) (n)
45400 +/* This array contains the bytes used to pad the buffer to the next
45401 + 64-byte boundary. (FIPS 180-2:5.1.1) */
45402 +static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ... */ };
45405 +/* Constants for SHA256 from FIPS 180-2:4.2.2. */
45406 +static const uint32_t K[64] =
45408 + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
45409 + 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
45410 + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
45411 + 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
45412 + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
45413 + 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
45414 + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
45415 + 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
45416 + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
45417 + 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
45418 + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
45419 + 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
45420 + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
45421 + 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
45422 + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
45423 + 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
45427 +/* Process LEN bytes of BUFFER, accumulating context into CTX.
45428 + It is assumed that LEN % 64 == 0. */
45430 +sha256_process_block (const void *buffer, size_t len, struct sha256_ctx *ctx)
45432 + const uint32_t *words = buffer;
45433 + size_t nwords = len / sizeof (uint32_t);
45434 + uint32_t a = ctx->H[0];
45435 + uint32_t b = ctx->H[1];
45436 + uint32_t c = ctx->H[2];
45437 + uint32_t d = ctx->H[3];
45438 + uint32_t e = ctx->H[4];
45439 + uint32_t f = ctx->H[5];
45440 + uint32_t g = ctx->H[6];
45441 + uint32_t h = ctx->H[7];
45443 + /* First increment the byte count. FIPS 180-2 specifies the possible
45444 + length of the file up to 2^64 bits. Here we only compute the
45445 + number of bytes. Do a double word increment. */
45446 + ctx->total[0] += len;
45447 + if (ctx->total[0] < len)
45450 + /* Process all bytes in the buffer with 64 bytes in each round of
45452 + while (nwords > 0)
45455 + uint32_t a_save = a;
45456 + uint32_t b_save = b;
45457 + uint32_t c_save = c;
45458 + uint32_t d_save = d;
45459 + uint32_t e_save = e;
45460 + uint32_t f_save = f;
45461 + uint32_t g_save = g;
45462 + uint32_t h_save = h;
45465 + /* Operators defined in FIPS 180-2:4.1.2. */
45466 +#define Ch(x, y, z) ((x & y) ^ (~x & z))
45467 +#define Maj(x, y, z) ((x & y) ^ (x & z) ^ (y & z))
45468 +#define S0(x) (CYCLIC (x, 2) ^ CYCLIC (x, 13) ^ CYCLIC (x, 22))
45469 +#define S1(x) (CYCLIC (x, 6) ^ CYCLIC (x, 11) ^ CYCLIC (x, 25))
45470 +#define R0(x) (CYCLIC (x, 7) ^ CYCLIC (x, 18) ^ (x >> 3))
45471 +#define R1(x) (CYCLIC (x, 17) ^ CYCLIC (x, 19) ^ (x >> 10))
45473 + /* It is unfortunate that C does not provide an operator for
45474 + cyclic rotation. Hope the C compiler is smart enough. */
45475 +#define CYCLIC(w, s) ((w >> s) | (w << (32 - s)))
45477 + /* Compute the message schedule according to FIPS 180-2:6.2.2 step 2. */
45478 + for (t = 0; t < 16; ++t)
45480 + W[t] = SWAP (*words);
45483 + for (t = 16; t < 64; ++t)
45484 + W[t] = R1 (W[t - 2]) + W[t - 7] + R0 (W[t - 15]) + W[t - 16];
45486 + /* The actual computation according to FIPS 180-2:6.2.2 step 3. */
45487 + for (t = 0; t < 64; ++t)
45489 + uint32_t T1 = h + S1 (e) + Ch (e, f, g) + K[t] + W[t];
45490 + uint32_t T2 = S0 (a) + Maj (a, b, c);
45501 + /* Add the starting values of the context according to FIPS 180-2:6.2.2
45512 + /* Prepare for the next round. */
45516 + /* Put checksum in context given as argument. */
45528 +/* Initialize structure containing state of computation.
45529 + (FIPS 180-2:5.3.2) */
45531 +sha256_init_ctx (struct sha256_ctx *ctx)
45533 + ctx->H[0] = 0x6a09e667;
45534 + ctx->H[1] = 0xbb67ae85;
45535 + ctx->H[2] = 0x3c6ef372;
45536 + ctx->H[3] = 0xa54ff53a;
45537 + ctx->H[4] = 0x510e527f;
45538 + ctx->H[5] = 0x9b05688c;
45539 + ctx->H[6] = 0x1f83d9ab;
45540 + ctx->H[7] = 0x5be0cd19;
45542 + ctx->total[0] = ctx->total[1] = 0;
45547 +/* Process the remaining bytes in the internal buffer and the usual
45548 + prolog according to the standard and write the result to RESBUF.
45550 + IMPORTANT: On some systems it is required that RESBUF is correctly
45551 + aligned for a 32 bits value. */
45553 +sha256_finish_ctx (struct sha256_ctx *ctx, void *resbuf)
45555 + /* Take yet unprocessed bytes into account. */
45556 + uint32_t bytes = ctx->buflen;
45560 + /* Now count remaining bytes. */
45561 + ctx->total[0] += bytes;
45562 + if (ctx->total[0] < bytes)
45565 + pad = bytes >= 56 ? 64 + 56 - bytes : 56 - bytes;
45566 + memcpy (&ctx->buffer[bytes], fillbuf, pad);
45568 + /* Put the 64-bit file length in *bits* at the end of the buffer. */
45569 + *(uint32_t *) &ctx->buffer[bytes + pad + 4] = SWAP (ctx->total[0] << 3);
45570 + *(uint32_t *) &ctx->buffer[bytes + pad] = SWAP ((ctx->total[1] << 3) |
45571 + (ctx->total[0] >> 29));
45573 + /* Process last bytes. */
45574 + sha256_process_block (ctx->buffer, bytes + pad + 8, ctx);
45576 + /* Put result from CTX in first 32 bytes following RESBUF. */
45577 + for (i = 0; i < 8; ++i)
45578 + ((uint32_t *) resbuf)[i] = SWAP (ctx->H[i]);
45585 +sha256_process_bytes (const void *buffer, size_t len, struct sha256_ctx *ctx)
45587 + /* When we already have some bits in our internal buffer concatenate
45588 + both inputs first. */
45589 + if (ctx->buflen != 0)
45591 + size_t left_over = ctx->buflen;
45592 + size_t add = 128 - left_over > len ? len : 128 - left_over;
45594 + memcpy (&ctx->buffer[left_over], buffer, add);
45595 + ctx->buflen += add;
45597 + if (ctx->buflen > 64)
45599 + sha256_process_block (ctx->buffer, ctx->buflen & ~63, ctx);
45601 + ctx->buflen &= 63;
45602 + /* The regions in the following copy operation cannot overlap. */
45603 + memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63],
45607 + buffer = (const char *) buffer + add;
45611 + /* Process available complete blocks. */
45614 +/* To check alignment gcc has an appropriate operator. Other
45615 + compilers don't. */
45617 +# define UNALIGNED_P(p) (((uintptr_t) p) % __alignof__ (uint32_t) != 0)
45619 +# define UNALIGNED_P(p) (((uintptr_t) p) % sizeof (uint32_t) != 0)
45621 + if (UNALIGNED_P (buffer))
45624 + sha256_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx);
45625 + buffer = (const char *) buffer + 64;
45630 + sha256_process_block (buffer, len & ~63, ctx);
45631 + buffer = (const char *) buffer + (len & ~63);
45636 + /* Move remaining bytes into internal buffer. */
45639 + size_t left_over = ctx->buflen;
45641 + memcpy (&ctx->buffer[left_over], buffer, len);
45642 + left_over += len;
45643 + if (left_over >= 64)
45645 + sha256_process_block (ctx->buffer, 64, ctx);
45647 + memcpy (ctx->buffer, &ctx->buffer[64], left_over);
45649 + ctx->buflen = left_over;
45654 +/* Define our magic string to mark salt for SHA256 "encryption"
45656 +static const char sha256_salt_prefix[] = "$5$";
45658 +/* Prefix for optional rounds specification. */
45659 +static const char sha256_rounds_prefix[] = "rounds=";
45661 +/* Maximum salt string length. */
45662 +#define SALT_LEN_MAX 16
45663 +/* Default number of rounds if not explicitly specified. */
45664 +#define ROUNDS_DEFAULT 5000
45665 +/* Minimum number of rounds. */
45666 +#define ROUNDS_MIN 1000
45667 +/* Maximum number of rounds. */
45668 +#define ROUNDS_MAX 999999999
45670 +/* Table with characters for base64 transformation. */
45671 +static const char b64t[64] =
45672 +"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
45676 +sha256_crypt_r (const char *key, const char *salt, char *buffer, int buflen)
45678 + unsigned char alt_result[32]
45679 + __attribute__ ((__aligned__ (__alignof__ (uint32_t))));
45680 + unsigned char temp_result[32]
45681 + __attribute__ ((__aligned__ (__alignof__ (uint32_t))));
45682 + struct sha256_ctx ctx;
45683 + struct sha256_ctx alt_ctx;
45688 + char *copied_key = NULL;
45689 + char *copied_salt = NULL;
45692 + /* Default number of rounds. */
45693 + size_t rounds = ROUNDS_DEFAULT;
45694 + bool rounds_custom = false;
45696 + /* Find beginning of salt string. The prefix should normally always
45697 + be present. Just in case it is not. */
45698 + if (grub_memcmp (sha256_salt_prefix, salt,
45699 + sizeof (sha256_salt_prefix) - 1) == 0)
45700 + /* Skip salt prefix. */
45701 + salt += sizeof (sha256_salt_prefix) - 1;
45703 + if (grub_memcmp (salt, sha256_rounds_prefix,
45704 + sizeof (sha256_rounds_prefix) - 1) == 0)
45706 + const char *num = salt + sizeof (sha256_rounds_prefix) - 1;
45707 + char *endp = (char *)num;
45709 + if (*endp == '0' && tolower (endp[1]) == 'x')
45710 + /* This would be interpreted as hexadecimal by safe_parse_maxint(). */
45713 + /* On error, endp and srounds is not changed. */
45714 + safe_parse_maxint(&endp, &srounds);
45715 + if (*endp == '$')
45718 + rounds = MAX (ROUNDS_MIN, MIN (srounds, ROUNDS_MAX));
45719 + rounds_custom = true;
45723 + salt_len = MIN (strcspn (salt, "$"), SALT_LEN_MAX);
45724 + key_len = strlen (key);
45726 + if ((key - (char *) 0) % __alignof__ (uint32_t) != 0)
45728 + char *tmp = (char *) alloca (key_len + __alignof__ (uint32_t));
45729 + key = copied_key =
45730 + memcpy (tmp + __alignof__ (uint32_t)
45731 + - (tmp - (char *) 0) % __alignof__ (uint32_t),
45735 + if ((salt - (char *) 0) % __alignof__ (uint32_t) != 0)
45737 + char *tmp = (char *) alloca (salt_len + __alignof__ (uint32_t));
45738 + salt = copied_salt =
45739 + memcpy (tmp + __alignof__ (uint32_t)
45740 + - (tmp - (char *) 0) % __alignof__ (uint32_t),
45744 + /* Prepare for the real work. */
45745 + sha256_init_ctx (&ctx);
45747 + /* Add the key string. */
45748 + sha256_process_bytes (key, key_len, &ctx);
45750 + /* The last part is the salt string. This must be at most 16
45751 + characters and it ends at the first `$' character (for
45752 + compatibility with existing implementations). */
45753 + sha256_process_bytes (salt, salt_len, &ctx);
45756 + /* Compute alternate SHA256 sum with input KEY, SALT, and KEY. The
45757 + final result will be added to the first context. */
45758 + sha256_init_ctx (&alt_ctx);
45761 + sha256_process_bytes (key, key_len, &alt_ctx);
45764 + sha256_process_bytes (salt, salt_len, &alt_ctx);
45766 + /* Add key again. */
45767 + sha256_process_bytes (key, key_len, &alt_ctx);
45769 + /* Now get result of this (32 bytes) and add it to the other
45771 + sha256_finish_ctx (&alt_ctx, alt_result);
45773 + /* Add for any character in the key one byte of the alternate sum. */
45774 + for (cnt = key_len; cnt > 32; cnt -= 32)
45775 + sha256_process_bytes (alt_result, 32, &ctx);
45776 + sha256_process_bytes (alt_result, cnt, &ctx);
45778 + /* Take the binary representation of the length of the key and for every
45779 + 1 add the alternate sum, for every 0 the key. */
45780 + for (cnt = key_len; cnt > 0; cnt >>= 1)
45781 + if ((cnt & 1) != 0)
45782 + sha256_process_bytes (alt_result, 32, &ctx);
45784 + sha256_process_bytes (key, key_len, &ctx);
45786 + /* Create intermediate result. */
45787 + sha256_finish_ctx (&ctx, alt_result);
45789 + /* Start computation of P byte sequence. */
45790 + sha256_init_ctx (&alt_ctx);
45792 + /* For every character in the password add the entire password. */
45793 + for (cnt = 0; cnt < key_len; ++cnt)
45794 + sha256_process_bytes (key, key_len, &alt_ctx);
45796 + /* Finish the digest. */
45797 + sha256_finish_ctx (&alt_ctx, temp_result);
45799 + /* Create byte sequence P. */
45800 + cp = p_bytes = alloca (key_len);
45801 + for (cnt = key_len; cnt >= 32; cnt -= 32)
45803 + memcpy (cp, temp_result, 32);
45806 + memcpy (cp, temp_result, cnt);
45808 + /* Start computation of S byte sequence. */
45809 + sha256_init_ctx (&alt_ctx);
45811 + /* For every character in the password add the entire password. */
45812 + for (cnt = 0; cnt < 16 + alt_result[0]; ++cnt)
45813 + sha256_process_bytes (salt, salt_len, &alt_ctx);
45815 + /* Finish the digest. */
45816 + sha256_finish_ctx (&alt_ctx, temp_result);
45818 + /* Create byte sequence S. */
45819 + cp = s_bytes = alloca (salt_len);
45820 + for (cnt = salt_len; cnt >= 32; cnt -= 32)
45822 + memcpy (cp, temp_result, 32);
45825 + memcpy (cp, temp_result, cnt);
45827 + /* Repeatedly run the collected hash value through SHA256 to burn
45829 + for (cnt = 0; cnt < rounds; ++cnt)
45831 + /* New context. */
45832 + sha256_init_ctx (&ctx);
45834 + /* Add key or last result. */
45835 + if ((cnt & 1) != 0)
45836 + sha256_process_bytes (p_bytes, key_len, &ctx);
45838 + sha256_process_bytes (alt_result, 32, &ctx);
45840 + /* Add salt for numbers not divisible by 3. */
45841 + if (cnt % 3 != 0)
45842 + sha256_process_bytes (s_bytes, salt_len, &ctx);
45844 + /* Add key for numbers not divisible by 7. */
45845 + if (cnt % 7 != 0)
45846 + sha256_process_bytes (p_bytes, key_len, &ctx);
45848 + /* Add key or last result. */
45849 + if ((cnt & 1) != 0)
45850 + sha256_process_bytes (alt_result, 32, &ctx);
45852 + sha256_process_bytes (p_bytes, key_len, &ctx);
45854 + /* Create intermediate result. */
45855 + sha256_finish_ctx (&ctx, alt_result);
45858 + /* Now we can construct the result string. It consists of three
45860 + cp = stpncpy (buffer, sha256_salt_prefix, MAX (0, buflen));
45861 + buflen -= sizeof (sha256_salt_prefix) - 1;
45863 + if (rounds_custom)
45866 + grub_sprintf (sbuf, "%s%llu$", sha256_rounds_prefix,
45867 + (unsigned long long)rounds);
45868 + size_t n = strlen (sbuf);
45869 + memcpy (cp, sbuf, MIN (MAX (0, buflen), n));
45874 + cp = stpncpy (cp, salt, MIN ((size_t) MAX (0, buflen), salt_len));
45875 + buflen -= MIN ((size_t) MAX (0, buflen), salt_len);
45883 +#define b64_from_24bit(B2, B1, B0, N) \
45885 + unsigned int w = ((B2) << 16) | ((B1) << 8) | (B0); \
45887 + while (n-- > 0 && buflen > 0) \
45889 + *cp++ = b64t[w & 0x3f]; \
45895 + b64_from_24bit (alt_result[0], alt_result[10], alt_result[20], 4);
45896 + b64_from_24bit (alt_result[21], alt_result[1], alt_result[11], 4);
45897 + b64_from_24bit (alt_result[12], alt_result[22], alt_result[2], 4);
45898 + b64_from_24bit (alt_result[3], alt_result[13], alt_result[23], 4);
45899 + b64_from_24bit (alt_result[24], alt_result[4], alt_result[14], 4);
45900 + b64_from_24bit (alt_result[15], alt_result[25], alt_result[5], 4);
45901 + b64_from_24bit (alt_result[6], alt_result[16], alt_result[26], 4);
45902 + b64_from_24bit (alt_result[27], alt_result[7], alt_result[17], 4);
45903 + b64_from_24bit (alt_result[18], alt_result[28], alt_result[8], 4);
45904 + b64_from_24bit (alt_result[9], alt_result[19], alt_result[29], 4);
45905 + b64_from_24bit (0, alt_result[31], alt_result[30], 3);
45909 + *cp = '\0'; /* Terminate the string. */
45911 + /* Clear the buffer for the intermediate result so that people
45912 + attaching to processes or reading core dumps cannot get any
45913 + information. We do it in this way to clear correct_words[]
45914 + inside the SHA256 implementation as well. */
45915 + sha256_init_ctx (&ctx);
45916 + sha256_finish_ctx (&ctx, alt_result);
45917 + memset (temp_result, '\0', sizeof (temp_result));
45918 + memset (p_bytes, '\0', key_len);
45919 + memset (s_bytes, '\0', salt_len);
45920 + memset (&ctx, '\0', sizeof (ctx));
45921 + memset (&alt_ctx, '\0', sizeof (alt_ctx));
45922 + if (copied_key != NULL)
45923 + memset (copied_key, '\0', key_len);
45924 + if (copied_salt != NULL)
45925 + memset (copied_salt, '\0', salt_len);
45931 +/* This entry point is equivalent to the `crypt' function in Unix
45934 +sha256_crypt (const char *key, const char *salt)
45936 + static char buffer[sizeof (sha256_salt_prefix) - 1
45937 + + sizeof (sha256_rounds_prefix) + 9 + 1
45938 + + 256 + 1 + 43 + 1]; /* 256 bytes for salt */
45939 + int needed = (sizeof (sha256_salt_prefix) - 1
45940 + + sizeof (sha256_rounds_prefix) + 9 + 1
45941 + + strlen (salt) + 1 + 43 + 1);
45943 + if (sizeof (buffer) < needed)
45946 + return sha256_crypt_r (key, salt, buffer, sizeof (buffer));
45951 +static const struct
45953 + const char *input;
45954 + const char result[32];
45957 + /* Test vectors from FIPS 180-2: appendix B.1. */
45959 + "\xba\x78\x16\xbf\x8f\x01\xcf\xea\x41\x41\x40\xde\x5d\xae\x22\x23"
45960 + "\xb0\x03\x61\xa3\x96\x17\x7a\x9c\xb4\x10\xff\x61\xf2\x00\x15\xad" },
45961 + /* Test vectors from FIPS 180-2: appendix B.2. */
45962 + { "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
45963 + "\x24\x8d\x6a\x61\xd2\x06\x38\xb8\xe5\xc0\x26\x93\x0c\x3e\x60\x39"
45964 + "\xa3\x3c\xe4\x59\x64\xff\x21\x67\xf6\xec\xed\xd4\x19\xdb\x06\xc1" },
45965 + /* Test vectors from the NESSIE project. */
45967 + "\xe3\xb0\xc4\x42\x98\xfc\x1c\x14\x9a\xfb\xf4\xc8\x99\x6f\xb9\x24"
45968 + "\x27\xae\x41\xe4\x64\x9b\x93\x4c\xa4\x95\x99\x1b\x78\x52\xb8\x55" },
45970 + "\xca\x97\x81\x12\xca\x1b\xbd\xca\xfa\xc2\x31\xb3\x9a\x23\xdc\x4d"
45971 + "\xa7\x86\xef\xf8\x14\x7c\x4e\x72\xb9\x80\x77\x85\xaf\xee\x48\xbb" },
45972 + { "message digest",
45973 + "\xf7\x84\x6f\x55\xcf\x23\xe1\x4e\xeb\xea\xb5\xb4\xe1\x55\x0c\xad"
45974 + "\x5b\x50\x9e\x33\x48\xfb\xc4\xef\xa3\xa1\x41\x3d\x39\x3c\xb6\x50" },
45975 + { "abcdefghijklmnopqrstuvwxyz",
45976 + "\x71\xc4\x80\xdf\x93\xd6\xae\x2f\x1e\xfa\xd1\x44\x7c\x66\xc9\x52"
45977 + "\x5e\x31\x62\x18\xcf\x51\xfc\x8d\x9e\xd8\x32\xf2\xda\xf1\x8b\x73" },
45978 + { "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
45979 + "\x24\x8d\x6a\x61\xd2\x06\x38\xb8\xe5\xc0\x26\x93\x0c\x3e\x60\x39"
45980 + "\xa3\x3c\xe4\x59\x64\xff\x21\x67\xf6\xec\xed\xd4\x19\xdb\x06\xc1" },
45981 + { "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
45982 + "\xdb\x4b\xfc\xbd\x4d\xa0\xcd\x85\xa6\x0c\x3c\x37\xd3\xfb\xd8\x80"
45983 + "\x5c\x77\xf1\x5f\xc6\xb1\xfd\xfe\x61\x4e\xe0\xa7\xc8\xfd\xb4\xc0" },
45984 + { "123456789012345678901234567890123456789012345678901234567890"
45985 + "12345678901234567890",
45986 + "\xf3\x71\xbc\x4a\x31\x1f\x2b\x00\x9e\xef\x95\x2d\xd8\x3c\xa8\x0e"
45987 + "\x2b\x60\x02\x6c\x8e\x93\x55\x92\xd0\xf9\xc3\x08\x45\x3c\x81\x3e" }
45989 +#define ntests (sizeof (tests) / sizeof (tests[0]))
45992 +static const struct
45994 + const char *salt;
45995 + const char *input;
45996 + const char *expected;
45999 + { "$5$saltstring", "Hello world!",
46000 + "$5$saltstring$5B8vYYiY.CVt1RlTTf8KbXBH3hsxY/GNooZaBBGWEc5" },
46001 + { "$5$rounds=10000$saltstringsaltstring", "Hello world!",
46002 + "$5$rounds=10000$saltstringsaltst$3xv.VbSHBb41AL9AvLeujZkZRBAwqFMz2."
46004 + { "$5$rounds=5000$toolongsaltstring", "This is just a test",
46005 + "$5$rounds=5000$toolongsaltstrin$Un/5jzAHMgOGZ5.mWJpuVolil07guHPvOW8"
46007 + { "$5$rounds=1400$anotherlongsaltstring",
46008 + "a very much longer text to encrypt. This one even stretches over more"
46009 + "than one line.",
46010 + "$5$rounds=1400$anotherlongsalts$Rx.j8H.h8HjEDGomFU8bDkXm3XIUnzyxf12"
46012 + { "$5$rounds=77777$short",
46013 + "we have a short salt string but not a short password",
46014 + "$5$rounds=77777$short$JiO1O3ZpDAxGJeaDIuqCoEFysAe1mZNJRs3pw0KQRd/" },
46015 + { "$5$rounds=123456$asaltof16chars..", "a short string",
46016 + "$5$rounds=123456$asaltof16chars..$gP3VQ/6X7UUEW3HkBn2w1/Ptq2jxPyzV/"
46018 + { "$5$rounds=10$roundstoolow", "the minimum number is still observed",
46019 + "$5$rounds=1000$roundstoolow$yfvwcWrQ8l/K0DAWyuPMDNHpIVlTQebY9l/gL97"
46022 +#define ntests2 (sizeof (tests2) / sizeof (tests2[0]))
46026 +sha256_test (void)
46028 + struct sha256_ctx ctx;
46033 + for (cnt = 0; cnt < (int) ntests; ++cnt)
46035 + sha256_init_ctx (&ctx);
46036 + sha256_process_bytes (tests[cnt].input, strlen (tests[cnt].input), &ctx);
46037 + sha256_finish_ctx (&ctx, sum);
46038 + if (memcmp (tests[cnt].result, sum, 32) != 0)
46040 + printf ("test %d run %d failed\n", cnt, 1);
46044 + sha256_init_ctx (&ctx);
46045 + for (i = 0; tests[cnt].input[i] != '\0'; ++i)
46046 + sha256_process_bytes (&tests[cnt].input[i], 1, &ctx);
46047 + sha256_finish_ctx (&ctx, sum);
46048 + if (memcmp (tests[cnt].result, sum, 32) != 0)
46050 + printf ("test %d run %d failed\n", cnt, 2);
46055 + /* Test vector from FIPS 180-2: appendix B.3. */
46057 + memset (buf, 'a', sizeof (buf));
46058 + sha256_init_ctx (&ctx);
46059 + for (i = 0; i < 1000; ++i)
46060 + sha256_process_bytes (buf, sizeof (buf), &ctx);
46061 + sha256_finish_ctx (&ctx, sum);
46062 + static const char expected[32] =
46063 + "\xcd\xc7\x6e\x5c\x99\x14\xfb\x92\x81\xa1\xc7\xe2\x84\xd7\x3e\x67"
46064 + "\xf1\x80\x9a\x48\xa4\x97\x20\x0e\x04\x6d\x39\xcc\xc7\x11\x2c\xd0";
46065 + if (memcmp (expected, sum, 32) != 0)
46067 + printf ("test %d failed\n", cnt);
46071 + for (cnt = 0; cnt < ntests2; ++cnt)
46073 + char *cp = sha256_crypt (tests2[cnt].input, tests2[cnt].salt);
46075 + if (strcmp (cp, tests2[cnt].expected) != 0)
46077 + printf ("test %d: expected \"%s\", got \"%s\"\n",
46078 + cnt, tests2[cnt].expected, cp);
46084 + printf ("all tests OK\n");
46089 diff --git a/stage2/sha512crypt.c b/stage2/sha512crypt.c
46090 new file mode 100644
46091 index 0000000..ff6cd26
46093 +++ b/stage2/sha512crypt.c
46095 +/* SHA512-based Unix crypt implementation.
46096 + Released into the Public Domain by Ulrich Drepper <drepper@redhat.com>.
46097 + Adapted for grub by Miloslav Trmac <mitr@redhat.com>. */
46099 +#include <stdbool.h>
46100 +#include <stddef.h>
46102 +#include <shared.h>
46104 +typedef unsigned long long uint64_t;
46105 +typedef size_t uintptr_t;
46106 +#define alloca(SIZE) (__builtin_alloca (SIZE))
46107 +#define UINT64_C(X) X ## ULL
46108 +#define MIN(a, b) ((a) < (b) ? (a) : (b))
46109 +#define MAX(a, b) ((a) > (b) ? (a) : (b))
46111 +/* Structure to save state of computation between the single steps. */
46116 + uint64_t total[2];
46118 + char buffer[256]; /* NB: always correctly aligned for uint64_t. */
46122 +#if 1 /* __BYTE_ORDER == __LITTLE_ENDIAN */
46123 +# define SWAP(n) \
46125 + | (((n) & 0xff00) << 40) \
46126 + | (((n) & 0xff0000) << 24) \
46127 + | (((n) & 0xff000000) << 8) \
46128 + | (((n) >> 8) & 0xff000000) \
46129 + | (((n) >> 24) & 0xff0000) \
46130 + | (((n) >> 40) & 0xff00) \
46133 +# define SWAP(n) (n)
46137 +/* This array contains the bytes used to pad the buffer to the next
46138 + 64-byte boundary. (FIPS 180-2:5.1.2) */
46139 +static const unsigned char fillbuf[128] = { 0x80, 0 /* , 0, 0, ... */ };
46142 +/* Constants for SHA512 from FIPS 180-2:4.2.3. */
46143 +static const uint64_t K[80] =
46145 + UINT64_C (0x428a2f98d728ae22), UINT64_C (0x7137449123ef65cd),
46146 + UINT64_C (0xb5c0fbcfec4d3b2f), UINT64_C (0xe9b5dba58189dbbc),
46147 + UINT64_C (0x3956c25bf348b538), UINT64_C (0x59f111f1b605d019),
46148 + UINT64_C (0x923f82a4af194f9b), UINT64_C (0xab1c5ed5da6d8118),
46149 + UINT64_C (0xd807aa98a3030242), UINT64_C (0x12835b0145706fbe),
46150 + UINT64_C (0x243185be4ee4b28c), UINT64_C (0x550c7dc3d5ffb4e2),
46151 + UINT64_C (0x72be5d74f27b896f), UINT64_C (0x80deb1fe3b1696b1),
46152 + UINT64_C (0x9bdc06a725c71235), UINT64_C (0xc19bf174cf692694),
46153 + UINT64_C (0xe49b69c19ef14ad2), UINT64_C (0xefbe4786384f25e3),
46154 + UINT64_C (0x0fc19dc68b8cd5b5), UINT64_C (0x240ca1cc77ac9c65),
46155 + UINT64_C (0x2de92c6f592b0275), UINT64_C (0x4a7484aa6ea6e483),
46156 + UINT64_C (0x5cb0a9dcbd41fbd4), UINT64_C (0x76f988da831153b5),
46157 + UINT64_C (0x983e5152ee66dfab), UINT64_C (0xa831c66d2db43210),
46158 + UINT64_C (0xb00327c898fb213f), UINT64_C (0xbf597fc7beef0ee4),
46159 + UINT64_C (0xc6e00bf33da88fc2), UINT64_C (0xd5a79147930aa725),
46160 + UINT64_C (0x06ca6351e003826f), UINT64_C (0x142929670a0e6e70),
46161 + UINT64_C (0x27b70a8546d22ffc), UINT64_C (0x2e1b21385c26c926),
46162 + UINT64_C (0x4d2c6dfc5ac42aed), UINT64_C (0x53380d139d95b3df),
46163 + UINT64_C (0x650a73548baf63de), UINT64_C (0x766a0abb3c77b2a8),
46164 + UINT64_C (0x81c2c92e47edaee6), UINT64_C (0x92722c851482353b),
46165 + UINT64_C (0xa2bfe8a14cf10364), UINT64_C (0xa81a664bbc423001),
46166 + UINT64_C (0xc24b8b70d0f89791), UINT64_C (0xc76c51a30654be30),
46167 + UINT64_C (0xd192e819d6ef5218), UINT64_C (0xd69906245565a910),
46168 + UINT64_C (0xf40e35855771202a), UINT64_C (0x106aa07032bbd1b8),
46169 + UINT64_C (0x19a4c116b8d2d0c8), UINT64_C (0x1e376c085141ab53),
46170 + UINT64_C (0x2748774cdf8eeb99), UINT64_C (0x34b0bcb5e19b48a8),
46171 + UINT64_C (0x391c0cb3c5c95a63), UINT64_C (0x4ed8aa4ae3418acb),
46172 + UINT64_C (0x5b9cca4f7763e373), UINT64_C (0x682e6ff3d6b2b8a3),
46173 + UINT64_C (0x748f82ee5defb2fc), UINT64_C (0x78a5636f43172f60),
46174 + UINT64_C (0x84c87814a1f0ab72), UINT64_C (0x8cc702081a6439ec),
46175 + UINT64_C (0x90befffa23631e28), UINT64_C (0xa4506cebde82bde9),
46176 + UINT64_C (0xbef9a3f7b2c67915), UINT64_C (0xc67178f2e372532b),
46177 + UINT64_C (0xca273eceea26619c), UINT64_C (0xd186b8c721c0c207),
46178 + UINT64_C (0xeada7dd6cde0eb1e), UINT64_C (0xf57d4f7fee6ed178),
46179 + UINT64_C (0x06f067aa72176fba), UINT64_C (0x0a637dc5a2c898a6),
46180 + UINT64_C (0x113f9804bef90dae), UINT64_C (0x1b710b35131c471b),
46181 + UINT64_C (0x28db77f523047d84), UINT64_C (0x32caab7b40c72493),
46182 + UINT64_C (0x3c9ebe0a15c9bebc), UINT64_C (0x431d67c49c100d4c),
46183 + UINT64_C (0x4cc5d4becb3e42b6), UINT64_C (0x597f299cfc657e2a),
46184 + UINT64_C (0x5fcb6fab3ad6faec), UINT64_C (0x6c44198c4a475817)
46188 +/* Process LEN bytes of BUFFER, accumulating context into CTX.
46189 + It is assumed that LEN % 128 == 0. */
46191 +sha512_process_block (const void *buffer, size_t len, struct sha512_ctx *ctx)
46193 + const uint64_t *words = buffer;
46194 + size_t nwords = len / sizeof (uint64_t);
46195 + uint64_t a = ctx->H[0];
46196 + uint64_t b = ctx->H[1];
46197 + uint64_t c = ctx->H[2];
46198 + uint64_t d = ctx->H[3];
46199 + uint64_t e = ctx->H[4];
46200 + uint64_t f = ctx->H[5];
46201 + uint64_t g = ctx->H[6];
46202 + uint64_t h = ctx->H[7];
46204 + /* First increment the byte count. FIPS 180-2 specifies the possible
46205 + length of the file up to 2^128 bits. Here we only compute the
46206 + number of bytes. Do a double word increment. */
46207 + ctx->total[0] += len;
46208 + if (ctx->total[0] < len)
46211 + /* Process all bytes in the buffer with 128 bytes in each round of
46213 + while (nwords > 0)
46216 + uint64_t a_save = a;
46217 + uint64_t b_save = b;
46218 + uint64_t c_save = c;
46219 + uint64_t d_save = d;
46220 + uint64_t e_save = e;
46221 + uint64_t f_save = f;
46222 + uint64_t g_save = g;
46223 + uint64_t h_save = h;
46226 + /* Operators defined in FIPS 180-2:4.1.2. */
46227 +#define Ch(x, y, z) ((x & y) ^ (~x & z))
46228 +#define Maj(x, y, z) ((x & y) ^ (x & z) ^ (y & z))
46229 +#define S0(x) (CYCLIC (x, 28) ^ CYCLIC (x, 34) ^ CYCLIC (x, 39))
46230 +#define S1(x) (CYCLIC (x, 14) ^ CYCLIC (x, 18) ^ CYCLIC (x, 41))
46231 +#define R0(x) (CYCLIC (x, 1) ^ CYCLIC (x, 8) ^ (x >> 7))
46232 +#define R1(x) (CYCLIC (x, 19) ^ CYCLIC (x, 61) ^ (x >> 6))
46234 + /* It is unfortunate that C does not provide an operator for
46235 + cyclic rotation. Hope the C compiler is smart enough. */
46236 +#define CYCLIC(w, s) ((w >> s) | (w << (64 - s)))
46238 + /* Compute the message schedule according to FIPS 180-2:6.3.2 step 2. */
46239 + for (t = 0; t < 16; ++t)
46241 + W[t] = SWAP (*words);
46244 + for (t = 16; t < 80; ++t)
46245 + W[t] = R1 (W[t - 2]) + W[t - 7] + R0 (W[t - 15]) + W[t - 16];
46247 + /* The actual computation according to FIPS 180-2:6.3.2 step 3. */
46248 + for (t = 0; t < 80; ++t)
46250 + uint64_t T1 = h + S1 (e) + Ch (e, f, g) + K[t] + W[t];
46251 + uint64_t T2 = S0 (a) + Maj (a, b, c);
46262 + /* Add the starting values of the context according to FIPS 180-2:6.3.2
46273 + /* Prepare for the next round. */
46277 + /* Put checksum in context given as argument. */
46289 +/* Initialize structure containing state of computation.
46290 + (FIPS 180-2:5.3.3) */
46292 +sha512_init_ctx (struct sha512_ctx *ctx)
46294 + ctx->H[0] = UINT64_C (0x6a09e667f3bcc908);
46295 + ctx->H[1] = UINT64_C (0xbb67ae8584caa73b);
46296 + ctx->H[2] = UINT64_C (0x3c6ef372fe94f82b);
46297 + ctx->H[3] = UINT64_C (0xa54ff53a5f1d36f1);
46298 + ctx->H[4] = UINT64_C (0x510e527fade682d1);
46299 + ctx->H[5] = UINT64_C (0x9b05688c2b3e6c1f);
46300 + ctx->H[6] = UINT64_C (0x1f83d9abfb41bd6b);
46301 + ctx->H[7] = UINT64_C (0x5be0cd19137e2179);
46303 + ctx->total[0] = ctx->total[1] = 0;
46308 +/* Process the remaining bytes in the internal buffer and the usual
46309 + prolog according to the standard and write the result to RESBUF.
46311 + IMPORTANT: On some systems it is required that RESBUF is correctly
46312 + aligned for a 32 bits value. */
46314 +sha512_finish_ctx (struct sha512_ctx *ctx, void *resbuf)
46316 + /* Take yet unprocessed bytes into account. */
46317 + uint64_t bytes = ctx->buflen;
46321 + /* Now count remaining bytes. */
46322 + ctx->total[0] += bytes;
46323 + if (ctx->total[0] < bytes)
46326 + pad = bytes >= 112 ? 128 + 112 - bytes : 112 - bytes;
46327 + memcpy (&ctx->buffer[bytes], fillbuf, pad);
46329 + /* Put the 128-bit file length in *bits* at the end of the buffer. */
46330 + *(uint64_t *) &ctx->buffer[bytes + pad + 8] = SWAP (ctx->total[0] << 3);
46331 + *(uint64_t *) &ctx->buffer[bytes + pad] = SWAP ((ctx->total[1] << 3) |
46332 + (ctx->total[0] >> 61));
46334 + /* Process last bytes. */
46335 + sha512_process_block (ctx->buffer, bytes + pad + 16, ctx);
46337 + /* Put result from CTX in first 64 bytes following RESBUF. */
46338 + for (i = 0; i < 8; ++i)
46339 + ((uint64_t *) resbuf)[i] = SWAP (ctx->H[i]);
46346 +sha512_process_bytes (const void *buffer, size_t len, struct sha512_ctx *ctx)
46348 + /* When we already have some bits in our internal buffer concatenate
46349 + both inputs first. */
46350 + if (ctx->buflen != 0)
46352 + size_t left_over = ctx->buflen;
46353 + size_t add = 256 - left_over > len ? len : 256 - left_over;
46355 + memcpy (&ctx->buffer[left_over], buffer, add);
46356 + ctx->buflen += add;
46358 + if (ctx->buflen > 128)
46360 + sha512_process_block (ctx->buffer, ctx->buflen & ~127, ctx);
46362 + ctx->buflen &= 127;
46363 + /* The regions in the following copy operation cannot overlap. */
46364 + memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~127],
46368 + buffer = (const char *) buffer + add;
46372 + /* Process available complete blocks. */
46375 +/* To check alignment gcc has an appropriate operator. Other
46376 + compilers don't. */
46377 +# if __GNUC__ >= 2
46378 +# define UNALIGNED_P(p) (((uintptr_t) p) % __alignof__ (uint64_t) != 0)
46380 +# define UNALIGNED_P(p) (((uintptr_t) p) % sizeof (uint64_t) != 0)
46382 + if (UNALIGNED_P (buffer))
46383 + while (len > 128)
46385 + sha512_process_block (memcpy (ctx->buffer, buffer, 128), 128,
46387 + buffer = (const char *) buffer + 128;
46392 + sha512_process_block (buffer, len & ~127, ctx);
46393 + buffer = (const char *) buffer + (len & ~127);
46398 + /* Move remaining bytes into internal buffer. */
46401 + size_t left_over = ctx->buflen;
46403 + memcpy (&ctx->buffer[left_over], buffer, len);
46404 + left_over += len;
46405 + if (left_over >= 128)
46407 + sha512_process_block (ctx->buffer, 128, ctx);
46408 + left_over -= 128;
46409 + memcpy (ctx->buffer, &ctx->buffer[128], left_over);
46411 + ctx->buflen = left_over;
46416 +/* Define our magic string to mark salt for SHA512 "encryption"
46418 +static const char sha512_salt_prefix[] = "$6$";
46420 +/* Prefix for optional rounds specification. */
46421 +static const char sha512_rounds_prefix[] = "rounds=";
46423 +/* Maximum salt string length. */
46424 +#define SALT_LEN_MAX 16
46425 +/* Default number of rounds if not explicitly specified. */
46426 +#define ROUNDS_DEFAULT 5000
46427 +/* Minimum number of rounds. */
46428 +#define ROUNDS_MIN 1000
46429 +/* Maximum number of rounds. */
46430 +#define ROUNDS_MAX 999999999
46432 +/* Table with characters for base64 transformation. */
46433 +static const char b64t[64] =
46434 +"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
46438 +sha512_crypt_r (const char *key, const char *salt, char *buffer, int buflen)
46440 + unsigned char alt_result[64]
46441 + __attribute__ ((__aligned__ (__alignof__ (uint64_t))));
46442 + unsigned char temp_result[64]
46443 + __attribute__ ((__aligned__ (__alignof__ (uint64_t))));
46444 + struct sha512_ctx ctx;
46445 + struct sha512_ctx alt_ctx;
46450 + char *copied_key = NULL;
46451 + char *copied_salt = NULL;
46454 + /* Default number of rounds. */
46455 + size_t rounds = ROUNDS_DEFAULT;
46456 + bool rounds_custom = false;
46458 + /* Find beginning of salt string. The prefix should normally always
46459 + be present. Just in case it is not. */
46460 + if (grub_memcmp (sha512_salt_prefix, salt,
46461 + sizeof (sha512_salt_prefix) - 1) == 0)
46462 + /* Skip salt prefix. */
46463 + salt += sizeof (sha512_salt_prefix) - 1;
46465 + if (grub_memcmp (salt, sha512_rounds_prefix,
46466 + sizeof (sha512_rounds_prefix) - 1) == 0)
46468 + const char *num = salt + sizeof (sha512_rounds_prefix) - 1;
46469 + char *endp = (char *)num;
46471 + if (*endp == '0' && tolower (endp[1]) == 'x')
46472 + /* This would be interpreted as hexadecimal by safe_parse_maxint(). */
46475 + /* On error, endp and srounds is not changed. */
46476 + safe_parse_maxint(&endp, &srounds);
46477 + if (*endp == '$')
46480 + rounds = MAX (ROUNDS_MIN, MIN (srounds, ROUNDS_MAX));
46481 + rounds_custom = true;
46485 + salt_len = MIN (strcspn (salt, "$"), SALT_LEN_MAX);
46486 + key_len = strlen (key);
46488 + if ((key - (char *) 0) % __alignof__ (uint64_t) != 0)
46490 + char *tmp = (char *) alloca (key_len + __alignof__ (uint64_t));
46491 + key = copied_key =
46492 + memcpy (tmp + __alignof__ (uint64_t)
46493 + - (tmp - (char *) 0) % __alignof__ (uint64_t),
46497 + if ((salt - (char *) 0) % __alignof__ (uint64_t) != 0)
46499 + char *tmp = (char *) alloca (salt_len + __alignof__ (uint64_t));
46500 + salt = copied_salt =
46501 + memcpy (tmp + __alignof__ (uint64_t)
46502 + - (tmp - (char *) 0) % __alignof__ (uint64_t),
46506 + /* Prepare for the real work. */
46507 + sha512_init_ctx (&ctx);
46509 + /* Add the key string. */
46510 + sha512_process_bytes (key, key_len, &ctx);
46512 + /* The last part is the salt string. This must be at most 16
46513 + characters and it ends at the first `$' character (for
46514 + compatibility with existing implementations). */
46515 + sha512_process_bytes (salt, salt_len, &ctx);
46518 + /* Compute alternate SHA512 sum with input KEY, SALT, and KEY. The
46519 + final result will be added to the first context. */
46520 + sha512_init_ctx (&alt_ctx);
46523 + sha512_process_bytes (key, key_len, &alt_ctx);
46526 + sha512_process_bytes (salt, salt_len, &alt_ctx);
46528 + /* Add key again. */
46529 + sha512_process_bytes (key, key_len, &alt_ctx);
46531 + /* Now get result of this (64 bytes) and add it to the other
46533 + sha512_finish_ctx (&alt_ctx, alt_result);
46535 + /* Add for any character in the key one byte of the alternate sum. */
46536 + for (cnt = key_len; cnt > 64; cnt -= 64)
46537 + sha512_process_bytes (alt_result, 64, &ctx);
46538 + sha512_process_bytes (alt_result, cnt, &ctx);
46540 + /* Take the binary representation of the length of the key and for every
46541 + 1 add the alternate sum, for every 0 the key. */
46542 + for (cnt = key_len; cnt > 0; cnt >>= 1)
46543 + if ((cnt & 1) != 0)
46544 + sha512_process_bytes (alt_result, 64, &ctx);
46546 + sha512_process_bytes (key, key_len, &ctx);
46548 + /* Create intermediate result. */
46549 + sha512_finish_ctx (&ctx, alt_result);
46551 + /* Start computation of P byte sequence. */
46552 + sha512_init_ctx (&alt_ctx);
46554 + /* For every character in the password add the entire password. */
46555 + for (cnt = 0; cnt < key_len; ++cnt)
46556 + sha512_process_bytes (key, key_len, &alt_ctx);
46558 + /* Finish the digest. */
46559 + sha512_finish_ctx (&alt_ctx, temp_result);
46561 + /* Create byte sequence P. */
46562 + cp = p_bytes = alloca (key_len);
46563 + for (cnt = key_len; cnt >= 64; cnt -= 64)
46565 + memcpy (cp, temp_result, 64);
46568 + memcpy (cp, temp_result, cnt);
46570 + /* Start computation of S byte sequence. */
46571 + sha512_init_ctx (&alt_ctx);
46573 + /* For every character in the password add the entire password. */
46574 + for (cnt = 0; cnt < 16 + alt_result[0]; ++cnt)
46575 + sha512_process_bytes (salt, salt_len, &alt_ctx);
46577 + /* Finish the digest. */
46578 + sha512_finish_ctx (&alt_ctx, temp_result);
46580 + /* Create byte sequence S. */
46581 + cp = s_bytes = alloca (salt_len);
46582 + for (cnt = salt_len; cnt >= 64; cnt -= 64)
46584 + memcpy (cp, temp_result, 64);
46587 + memcpy (cp, temp_result, cnt);
46589 + /* Repeatedly run the collected hash value through SHA512 to burn
46591 + for (cnt = 0; cnt < rounds; ++cnt)
46593 + /* New context. */
46594 + sha512_init_ctx (&ctx);
46596 + /* Add key or last result. */
46597 + if ((cnt & 1) != 0)
46598 + sha512_process_bytes (p_bytes, key_len, &ctx);
46600 + sha512_process_bytes (alt_result, 64, &ctx);
46602 + /* Add salt for numbers not divisible by 3. */
46603 + if (cnt % 3 != 0)
46604 + sha512_process_bytes (s_bytes, salt_len, &ctx);
46606 + /* Add key for numbers not divisible by 7. */
46607 + if (cnt % 7 != 0)
46608 + sha512_process_bytes (p_bytes, key_len, &ctx);
46610 + /* Add key or last result. */
46611 + if ((cnt & 1) != 0)
46612 + sha512_process_bytes (alt_result, 64, &ctx);
46614 + sha512_process_bytes (p_bytes, key_len, &ctx);
46616 + /* Create intermediate result. */
46617 + sha512_finish_ctx (&ctx, alt_result);
46620 + /* Now we can construct the result string. It consists of three
46622 + cp = stpncpy (buffer, sha512_salt_prefix, MAX (0, buflen));
46623 + buflen -= sizeof (sha512_salt_prefix) - 1;
46625 + if (rounds_custom)
46628 + grub_sprintf (sbuf, "%s%llu$", sha512_rounds_prefix,
46629 + (unsigned long long)rounds);
46630 + size_t n = strlen (sbuf);
46631 + memcpy (cp, sbuf, MIN (MAX (0, buflen), n));
46636 + cp = stpncpy (cp, salt, MIN ((size_t) MAX (0, buflen), salt_len));
46637 + buflen -= MIN ((size_t) MAX (0, buflen), salt_len);
46645 +#define b64_from_24bit(B2, B1, B0, N) \
46647 + unsigned int w = ((B2) << 16) | ((B1) << 8) | (B0); \
46649 + while (n-- > 0 && buflen > 0) \
46651 + *cp++ = b64t[w & 0x3f]; \
46657 + b64_from_24bit (alt_result[0], alt_result[21], alt_result[42], 4);
46658 + b64_from_24bit (alt_result[22], alt_result[43], alt_result[1], 4);
46659 + b64_from_24bit (alt_result[44], alt_result[2], alt_result[23], 4);
46660 + b64_from_24bit (alt_result[3], alt_result[24], alt_result[45], 4);
46661 + b64_from_24bit (alt_result[25], alt_result[46], alt_result[4], 4);
46662 + b64_from_24bit (alt_result[47], alt_result[5], alt_result[26], 4);
46663 + b64_from_24bit (alt_result[6], alt_result[27], alt_result[48], 4);
46664 + b64_from_24bit (alt_result[28], alt_result[49], alt_result[7], 4);
46665 + b64_from_24bit (alt_result[50], alt_result[8], alt_result[29], 4);
46666 + b64_from_24bit (alt_result[9], alt_result[30], alt_result[51], 4);
46667 + b64_from_24bit (alt_result[31], alt_result[52], alt_result[10], 4);
46668 + b64_from_24bit (alt_result[53], alt_result[11], alt_result[32], 4);
46669 + b64_from_24bit (alt_result[12], alt_result[33], alt_result[54], 4);
46670 + b64_from_24bit (alt_result[34], alt_result[55], alt_result[13], 4);
46671 + b64_from_24bit (alt_result[56], alt_result[14], alt_result[35], 4);
46672 + b64_from_24bit (alt_result[15], alt_result[36], alt_result[57], 4);
46673 + b64_from_24bit (alt_result[37], alt_result[58], alt_result[16], 4);
46674 + b64_from_24bit (alt_result[59], alt_result[17], alt_result[38], 4);
46675 + b64_from_24bit (alt_result[18], alt_result[39], alt_result[60], 4);
46676 + b64_from_24bit (alt_result[40], alt_result[61], alt_result[19], 4);
46677 + b64_from_24bit (alt_result[62], alt_result[20], alt_result[41], 4);
46678 + b64_from_24bit (0, 0, alt_result[63], 2);
46683 + *cp = '\0'; /* Terminate the string. */
46685 + /* Clear the buffer for the intermediate result so that people
46686 + attaching to processes or reading core dumps cannot get any
46687 + information. We do it in this way to clear correct_words[]
46688 + inside the SHA512 implementation as well. */
46689 + sha512_init_ctx (&ctx);
46690 + sha512_finish_ctx (&ctx, alt_result);
46691 + memset (temp_result, '\0', sizeof (temp_result));
46692 + memset (p_bytes, '\0', key_len);
46693 + memset (s_bytes, '\0', salt_len);
46694 + memset (&ctx, '\0', sizeof (ctx));
46695 + memset (&alt_ctx, '\0', sizeof (alt_ctx));
46696 + if (copied_key != NULL)
46697 + memset (copied_key, '\0', key_len);
46698 + if (copied_salt != NULL)
46699 + memset (copied_salt, '\0', salt_len);
46705 +/* This entry point is equivalent to the `crypt' function in Unix
46708 +sha512_crypt (const char *key, const char *salt)
46710 + /* We don't want to have an arbitrary limit in the size of the
46711 + password. We can compute an upper bound for the size of the
46712 + result in advance and so we can prepare the buffer we pass to
46713 + `sha512_crypt_r'. */
46714 + static char buffer[sizeof (sha512_salt_prefix) - 1
46715 + + sizeof (sha512_rounds_prefix) + 9 + 1
46716 + + 256 + 1 + 86 + 1]; /* 256 bytes for salt */
46717 + int needed = (sizeof (sha512_salt_prefix) - 1
46718 + + sizeof (sha512_rounds_prefix) + 9 + 1
46719 + + strlen (salt) + 1 + 86 + 1);
46721 + if (sizeof (buffer) < needed)
46724 + return sha512_crypt_r (key, salt, buffer, sizeof (buffer));
46729 +static const struct
46731 + const char *input;
46732 + const char result[64];
46735 + /* Test vectors from FIPS 180-2: appendix C.1. */
46737 + "\xdd\xaf\x35\xa1\x93\x61\x7a\xba\xcc\x41\x73\x49\xae\x20\x41\x31"
46738 + "\x12\xe6\xfa\x4e\x89\xa9\x7e\xa2\x0a\x9e\xee\xe6\x4b\x55\xd3\x9a"
46739 + "\x21\x92\x99\x2a\x27\x4f\xc1\xa8\x36\xba\x3c\x23\xa3\xfe\xeb\xbd"
46740 + "\x45\x4d\x44\x23\x64\x3c\xe8\x0e\x2a\x9a\xc9\x4f\xa5\x4c\xa4\x9f" },
46741 + /* Test vectors from FIPS 180-2: appendix C.2. */
46742 + { "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmn"
46743 + "hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu",
46744 + "\x8e\x95\x9b\x75\xda\xe3\x13\xda\x8c\xf4\xf7\x28\x14\xfc\x14\x3f"
46745 + "\x8f\x77\x79\xc6\xeb\x9f\x7f\xa1\x72\x99\xae\xad\xb6\x88\x90\x18"
46746 + "\x50\x1d\x28\x9e\x49\x00\xf7\xe4\x33\x1b\x99\xde\xc4\xb5\x43\x3a"
46747 + "\xc7\xd3\x29\xee\xb6\xdd\x26\x54\x5e\x96\xe5\x5b\x87\x4b\xe9\x09" },
46748 + /* Test vectors from the NESSIE project. */
46750 + "\xcf\x83\xe1\x35\x7e\xef\xb8\xbd\xf1\x54\x28\x50\xd6\x6d\x80\x07"
46751 + "\xd6\x20\xe4\x05\x0b\x57\x15\xdc\x83\xf4\xa9\x21\xd3\x6c\xe9\xce"
46752 + "\x47\xd0\xd1\x3c\x5d\x85\xf2\xb0\xff\x83\x18\xd2\x87\x7e\xec\x2f"
46753 + "\x63\xb9\x31\xbd\x47\x41\x7a\x81\xa5\x38\x32\x7a\xf9\x27\xda\x3e" },
46755 + "\x1f\x40\xfc\x92\xda\x24\x16\x94\x75\x09\x79\xee\x6c\xf5\x82\xf2"
46756 + "\xd5\xd7\xd2\x8e\x18\x33\x5d\xe0\x5a\xbc\x54\xd0\x56\x0e\x0f\x53"
46757 + "\x02\x86\x0c\x65\x2b\xf0\x8d\x56\x02\x52\xaa\x5e\x74\x21\x05\x46"
46758 + "\xf3\x69\xfb\xbb\xce\x8c\x12\xcf\xc7\x95\x7b\x26\x52\xfe\x9a\x75" },
46759 + { "message digest",
46760 + "\x10\x7d\xbf\x38\x9d\x9e\x9f\x71\xa3\xa9\x5f\x6c\x05\x5b\x92\x51"
46761 + "\xbc\x52\x68\xc2\xbe\x16\xd6\xc1\x34\x92\xea\x45\xb0\x19\x9f\x33"
46762 + "\x09\xe1\x64\x55\xab\x1e\x96\x11\x8e\x8a\x90\x5d\x55\x97\xb7\x20"
46763 + "\x38\xdd\xb3\x72\xa8\x98\x26\x04\x6d\xe6\x66\x87\xbb\x42\x0e\x7c" },
46764 + { "abcdefghijklmnopqrstuvwxyz",
46765 + "\x4d\xbf\xf8\x6c\xc2\xca\x1b\xae\x1e\x16\x46\x8a\x05\xcb\x98\x81"
46766 + "\xc9\x7f\x17\x53\xbc\xe3\x61\x90\x34\x89\x8f\xaa\x1a\xab\xe4\x29"
46767 + "\x95\x5a\x1b\xf8\xec\x48\x3d\x74\x21\xfe\x3c\x16\x46\x61\x3a\x59"
46768 + "\xed\x54\x41\xfb\x0f\x32\x13\x89\xf7\x7f\x48\xa8\x79\xc7\xb1\xf1" },
46769 + { "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
46770 + "\x20\x4a\x8f\xc6\xdd\xa8\x2f\x0a\x0c\xed\x7b\xeb\x8e\x08\xa4\x16"
46771 + "\x57\xc1\x6e\xf4\x68\xb2\x28\xa8\x27\x9b\xe3\x31\xa7\x03\xc3\x35"
46772 + "\x96\xfd\x15\xc1\x3b\x1b\x07\xf9\xaa\x1d\x3b\xea\x57\x78\x9c\xa0"
46773 + "\x31\xad\x85\xc7\xa7\x1d\xd7\x03\x54\xec\x63\x12\x38\xca\x34\x45" },
46774 + { "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
46775 + "\x1e\x07\xbe\x23\xc2\x6a\x86\xea\x37\xea\x81\x0c\x8e\xc7\x80\x93"
46776 + "\x52\x51\x5a\x97\x0e\x92\x53\xc2\x6f\x53\x6c\xfc\x7a\x99\x96\xc4"
46777 + "\x5c\x83\x70\x58\x3e\x0a\x78\xfa\x4a\x90\x04\x1d\x71\xa4\xce\xab"
46778 + "\x74\x23\xf1\x9c\x71\xb9\xd5\xa3\xe0\x12\x49\xf0\xbe\xbd\x58\x94" },
46779 + { "123456789012345678901234567890123456789012345678901234567890"
46780 + "12345678901234567890",
46781 + "\x72\xec\x1e\xf1\x12\x4a\x45\xb0\x47\xe8\xb7\xc7\x5a\x93\x21\x95"
46782 + "\x13\x5b\xb6\x1d\xe2\x4e\xc0\xd1\x91\x40\x42\x24\x6e\x0a\xec\x3a"
46783 + "\x23\x54\xe0\x93\xd7\x6f\x30\x48\xb4\x56\x76\x43\x46\x90\x0c\xb1"
46784 + "\x30\xd2\xa4\xfd\x5d\xd1\x6a\xbb\x5e\x30\xbc\xb8\x50\xde\xe8\x43" }
46786 +#define ntests (sizeof (tests) / sizeof (tests[0]))
46789 +static const struct
46791 + const char *salt;
46792 + const char *input;
46793 + const char *expected;
46796 + { "$6$saltstring", "Hello world!",
46797 + "$6$saltstring$svn8UoSVapNtMuq1ukKS4tPQd8iKwSMHWjl/O817G3uBnIFNjnQJu"
46798 + "esI68u4OTLiBFdcbYEdFCoEOfaS35inz1" },
46799 + { "$6$rounds=10000$saltstringsaltstring", "Hello world!",
46800 + "$6$rounds=10000$saltstringsaltst$OW1/O6BYHV6BcXZu8QVeXbDWra3Oeqh0sb"
46801 + "HbbMCVNSnCM/UrjmM0Dp8vOuZeHBy/YTBmSK6H9qs/y3RnOaw5v." },
46802 + { "$6$rounds=5000$toolongsaltstring", "This is just a test",
46803 + "$6$rounds=5000$toolongsaltstrin$lQ8jolhgVRVhY4b5pZKaysCLi0QBxGoNeKQ"
46804 + "zQ3glMhwllF7oGDZxUhx1yxdYcz/e1JSbq3y6JMxxl8audkUEm0" },
46805 + { "$6$rounds=1400$anotherlongsaltstring",
46806 + "a very much longer text to encrypt. This one even stretches over more"
46807 + "than one line.",
46808 + "$6$rounds=1400$anotherlongsalts$POfYwTEok97VWcjxIiSOjiykti.o/pQs.wP"
46809 + "vMxQ6Fm7I6IoYN3CmLs66x9t0oSwbtEW7o7UmJEiDwGqd8p4ur1" },
46810 + { "$6$rounds=77777$short",
46811 + "we have a short salt string but not a short password",
46812 + "$6$rounds=77777$short$WuQyW2YR.hBNpjjRhpYD/ifIw05xdfeEyQoMxIXbkvr0g"
46813 + "ge1a1x3yRULJ5CCaUeOxFmtlcGZelFl5CxtgfiAc0" },
46814 + { "$6$rounds=123456$asaltof16chars..", "a short string",
46815 + "$6$rounds=123456$asaltof16chars..$BtCwjqMJGx5hrJhZywWvt0RLE8uZ4oPwc"
46816 + "elCjmw2kSYu.Ec6ycULevoBK25fs2xXgMNrCzIMVcgEJAstJeonj1" },
46817 + { "$6$rounds=10$roundstoolow", "the minimum number is still observed",
46818 + "$6$rounds=1000$roundstoolow$kUMsbe306n21p9R.FRkW3IGn.S9NPN0x50YhH1x"
46819 + "hLsPuWGsUSklZt58jaTfF4ZEQpyUNGc0dqbpBYYBaHHrsX." },
46821 +#define ntests2 (sizeof (tests2) / sizeof (tests2[0]))
46825 +sha512_test (void)
46827 + struct sha512_ctx ctx;
46832 + for (cnt = 0; cnt < (int) ntests; ++cnt)
46834 + sha512_init_ctx (&ctx);
46835 + sha512_process_bytes (tests[cnt].input, strlen (tests[cnt].input), &ctx);
46836 + sha512_finish_ctx (&ctx, sum);
46837 + if (memcmp (tests[cnt].result, sum, 64) != 0)
46839 + printf ("test %d run %d failed\n", cnt, 1);
46843 + sha512_init_ctx (&ctx);
46844 + for (i = 0; tests[cnt].input[i] != '\0'; ++i)
46845 + sha512_process_bytes (&tests[cnt].input[i], 1, &ctx);
46846 + sha512_finish_ctx (&ctx, sum);
46847 + if (memcmp (tests[cnt].result, sum, 64) != 0)
46849 + printf ("test %d run %d failed\n", cnt, 2);
46854 + /* Test vector from FIPS 180-2: appendix C.3. */
46856 + memset (buf, 'a', sizeof (buf));
46857 + sha512_init_ctx (&ctx);
46858 + for (i = 0; i < 1000; ++i)
46859 + sha512_process_bytes (buf, sizeof (buf), &ctx);
46860 + sha512_finish_ctx (&ctx, sum);
46861 + static const char expected[64] =
46862 + "\xe7\x18\x48\x3d\x0c\xe7\x69\x64\x4e\x2e\x42\xc7\xbc\x15\xb4\x63"
46863 + "\x8e\x1f\x98\xb1\x3b\x20\x44\x28\x56\x32\xa8\x03\xaf\xa9\x73\xeb"
46864 + "\xde\x0f\xf2\x44\x87\x7e\xa6\x0a\x4c\xb0\x43\x2c\xe5\x77\xc3\x1b"
46865 + "\xeb\x00\x9c\x5c\x2c\x49\xaa\x2e\x4e\xad\xb2\x17\xad\x8c\xc0\x9b";
46866 + if (memcmp (expected, sum, 64) != 0)
46868 + printf ("test %d failed\n", cnt);
46872 + for (cnt = 0; cnt < ntests2; ++cnt)
46874 + char *cp = sha512_crypt (tests2[cnt].input, tests2[cnt].salt);
46876 + if (strcmp (cp, tests2[cnt].expected) != 0)
46878 + printf ("test %d: expected \"%s\", got \"%s\"\n",
46879 + cnt, tests2[cnt].expected, cp);
46885 + printf ("all tests OK\n");
46890 diff --git a/stage2/shared.h b/stage2/shared.h
46891 index 77eef11..b56b44b 100644
46892 --- a/stage2/shared.h
46893 +++ b/stage2/shared.h
46897 /* Maybe redirect memory requests through grub_scratch_mem. */
46899 -extern char *grub_scratch_mem;
46900 -# define RAW_ADDR(x) ((x) + (int) grub_scratch_mem)
46901 +#if defined(GRUB_UTIL) || defined(PLATFORM_EFI)
46902 +#define GRUB_SCRATCH_MEM_SIZE 0x400000
46903 +extern void *grub_scratch_mem;
46904 +# define RAW_ADDR(x) ((x) + (unsigned long) grub_scratch_mem)
46905 # define RAW_SEG(x) (RAW_ADDR ((x) << 4) >> 4)
46907 # define RAW_ADDR(x) (x)
46908 @@ -56,15 +57,15 @@ extern char *grub_scratch_mem;
46909 #define NEW_HEAPSIZE 1500
46911 /* 512-byte scratch area */
46912 -#define SCRATCHADDR RAW_ADDR (0x77e00)
46913 -#define SCRATCHSEG RAW_SEG (0x77e0)
46914 +#define SCRATCHADDR RAW_ADDR (0x77000)
46915 +#define SCRATCHSEG RAW_SEG (0x7700)
46918 - * This is the location of the raw device buffer. It is 31.5K
46919 + * This is the location of the raw device buffer. It is 28K
46923 -#define BUFFERLEN 0x7e00
46924 +#define BUFFERLEN 0x7000
46925 #define BUFFERADDR RAW_ADDR (0x70000)
46926 #define BUFFERSEG RAW_SEG (0x7000)
46928 @@ -79,6 +80,8 @@ extern char *grub_scratch_mem;
46929 #define BIOSDISK_FLAG_LBA_EXTENSION 0x1
46930 #define BIOSDISK_FLAG_CDROM 0x2
46932 +#define MAX_HD_NUM 128
46935 * This is the filesystem (not raw device) buffer.
46936 * It is 32K in size, do not overrun!
46937 @@ -127,7 +130,7 @@ extern char *grub_scratch_mem;
46938 #define MENU_BUFLEN (0x8000 + PASSWORD_BUF - MENU_BUF)
46940 /* The size of the drive map. */
46941 -#define DRIVE_MAP_SIZE 8
46942 +#define DRIVE_MAP_SIZE 128
46944 /* The size of the key map. */
46945 #define KEY_MAP_SIZE 128
46946 @@ -160,16 +163,18 @@ extern char *grub_scratch_mem;
46947 #define LINUX_VID_MODE_ASK 0xFFFD
46949 #define LINUX_CL_OFFSET 0x9000
46950 -#define LINUX_CL_END_OFFSET 0x90FF
46951 -#define LINUX_SETUP_MOVE_SIZE 0x9100
46952 +#define LINUX_CL_END_OFFSET 0x97FF
46953 +#define LINUX_SETUP_MOVE_SIZE 0x9800
46954 #define LINUX_CL_MAGIC 0xA33F
46957 * General disk stuff
46960 +#ifndef PLATFORM_EFI
46961 #define SECTOR_SIZE 0x200
46962 #define SECTOR_BITS 9
46963 +#endif /* PLATFORM_EFI */
46964 #define BIOS_FLAG_FIXED_DISK 0x80
46966 #define BOOTSEC_LOCATION RAW_ADDR (0x7C00)
46967 @@ -200,6 +205,8 @@ extern char *grub_scratch_mem;
46968 #define STAGE2_FORCE_LBA 0x11
46969 #define STAGE2_VER_STR_OFFS 0x12
46971 +#define STAGE2_ONCEONLY_ENTRY 0x10000
46973 /* Stage 2 identifiers */
46974 #define STAGE2_ID_STAGE2 0
46975 #define STAGE2_ID_FFS_STAGE1_5 1
46976 @@ -360,7 +367,7 @@ extern char *grub_scratch_mem;
46977 #define memcpy grub_memmove /* we don't need a separate memcpy */
46978 #define memset grub_memset
46979 #define isspace grub_isspace
46980 -#define printf grub_printf
46981 +#define printf(format...) grub_printf(format)
46982 #define sprintf grub_sprintf
46984 #define putchar grub_putchar
46985 @@ -371,14 +378,24 @@ extern char *grub_scratch_mem;
46986 #define tolower grub_tolower
46987 #define strlen grub_strlen
46988 #define strcpy grub_strcpy
46989 +#define stpncpy grub_stpncpy
46990 +#define strspn grub_strspn
46991 +#define strcspn grub_strcspn
46992 +#define strtok_r grub_strtok_r
46993 +#define strchr grub_strchr
46994 +#define strrchr grub_strrchr
46995 +#define strnchr grub_strnchr
46996 +#define strncpy grub_strncpy
46997 +#define strncasecmp grub_strncasecmp
46998 #endif /* WITHOUT_LIBC_STUBS */
47003 * Below this should be ONLY defines and other constructs for C code.
47006 +#include <stdarg.h>
47008 /* multiboot stuff */
47010 #include "mb_header.h"
47011 @@ -400,30 +417,33 @@ struct linux_kernel_header
47012 unsigned short root_dev; /* Default root device number */
47013 unsigned short boot_flag; /* 0xAA55 magic number */
47014 unsigned short jump; /* Jump instruction */
47015 - unsigned long header; /* Magic signature "HdrS" */
47016 + unsigned int header; /* Magic signature "HdrS" */
47017 unsigned short version; /* Boot protocol version supported */
47018 - unsigned long realmode_swtch; /* Boot loader hook */
47019 - unsigned long start_sys; /* Points to kernel version string */
47020 + unsigned int realmode_swtch; /* Boot loader hook */
47021 + unsigned int start_sys; /* Points to kernel version string */
47022 unsigned char type_of_loader; /* Boot loader identifier */
47023 unsigned char loadflags; /* Boot protocol option flags */
47024 unsigned short setup_move_size; /* Move to high memory size */
47025 - unsigned long code32_start; /* Boot loader hook */
47026 - unsigned long ramdisk_image; /* initrd load address */
47027 - unsigned long ramdisk_size; /* initrd size */
47028 - unsigned long bootsect_kludge; /* obsolete */
47029 + unsigned int code32_start; /* Boot loader hook */
47030 + unsigned int ramdisk_image; /* initrd load address */
47031 + unsigned int ramdisk_size; /* initrd size */
47032 + unsigned int bootsect_kludge; /* obsolete */
47033 unsigned short heap_end_ptr; /* Free memory after setup end */
47034 unsigned short pad1; /* Unused */
47035 char *cmd_line_ptr; /* Points to the kernel command line */
47036 - unsigned long initrd_addr_max; /* The highest address of initrd */
47037 + unsigned int initrd_addr_max; /* The highest address of initrd */
47038 + unsigned int kernel_alignment; /* Physical addr alignment required for kernel */
47039 + unsigned int relocatable_kernel; /* Whether kernel is relocatable or not */
47040 + unsigned int cmdline_size; /* Maximum size of the kernel command line */
47041 } __attribute__ ((packed));
47043 /* Memory map address range descriptor used by GET_MMAP_ENTRY. */
47046 - unsigned long desc_len; /* Size of this descriptor. */
47047 + unsigned int desc_len; /* Size of this descriptor. */
47048 unsigned long long addr; /* Base address. */
47049 unsigned long long length; /* Length in bytes. */
47050 - unsigned long type; /* Type of address range. */
47051 + unsigned int type; /* Type of address range. */
47052 } __attribute__ ((packed));
47054 /* VBE controller information. */
47055 @@ -600,6 +620,7 @@ typedef enum
47059 + PASSWORD_ENCRYPTED,
47060 PASSWORD_UNSUPPORTED
47063 @@ -627,8 +648,16 @@ extern void (*disk_read_func) (int, int, int);
47065 /* The flag for debug mode. */
47067 +extern int debug_graphics;
47068 #endif /* STAGE1_5 */
47070 +/* Verbose mode flag. */
47071 +extern int grub_verbose;
47072 +#define verbose_printf(format...) \
47073 + do { if (grub_verbose) printf(format); } while (0)
47074 +#define grub_verbose_printf(format...) \
47075 + do { if (grub_verbose) grub_printf(format); } while (0)
47077 extern unsigned long current_drive;
47078 extern unsigned long current_partition;
47080 @@ -666,6 +695,8 @@ extern struct geometry buf_geom;
47081 extern int filepos;
47082 extern int filemax;
47084 +extern int silent_grub;
47087 * Common BIOS/boot data.
47089 @@ -804,11 +835,17 @@ int getkey (void);
47091 int checkkey (void);
47093 +/* Return keyboard modifier status. */
47097 /* Low-level disk I/O */
47098 int get_diskinfo (int drive, struct geometry *geometry);
47099 int biosdisk (int subfunc, int drive, struct geometry *geometry,
47100 int sector, int nsec, int segment);
47101 void stop_floppy (void);
47102 +int get_sector_size (int drive);
47103 +int get_sector_bits (int drive);
47105 /* Command-line interface functions. */
47107 @@ -860,17 +897,25 @@ void init_builtins (void);
47108 void init_config (void);
47109 char *skip_to (int after_equal, char *cmdline);
47110 struct builtin *find_command (char *command);
47111 -void print_cmdline_message (int forever);
47112 void enter_cmdline (char *heap, int forever);
47113 int run_script (char *script, char *heap);
47115 +/* the flags for the cmdline message */
47116 +#define CMDLINE_FOREVER_MODE 0x0
47117 +#define CMDLINE_NORMAL_MODE 0x1
47118 +#define CMDLINE_EDIT_MODE 0x2
47120 +void print_cmdline_message (int type);
47123 /* C library replacement functions with identical semantics. */
47124 -void grub_printf (const char *format,...);
47125 +int grub_vsprintf (char *str, const char *fmt, va_list args);
47126 +void grub_printf (char *format,...);
47127 int grub_sprintf (char *buffer, const char *format, ...);
47128 int grub_tolower (int c);
47129 int grub_isspace (int c);
47130 int grub_strncat (char *s1, const char *s2, int n);
47131 +void grub_memcpy(void *dest, const void *src, int len);
47132 void *grub_memmove (void *to, const void *from, int len);
47133 void *grub_memset (void *start, int c, int len);
47134 int grub_strncat (char *s1, const char *s2, int n);
47135 @@ -879,9 +924,19 @@ int grub_memcmp (const char *s1, const char *s2, int n);
47136 int grub_strcmp (const char *s1, const char *s2);
47137 int grub_strlen (const char *str);
47138 char *grub_strcpy (char *dest, const char *src);
47139 +char *grub_stpncpy (char *dest, const char *src, int n);
47140 +int grub_strspn(const char *s, const char *accept);
47141 +int grub_strcspn(const char *s, const char *reject);
47142 +char *grub_strtok_r(char *s, const char *delim, char **ptrptr);
47143 +char *grub_strchr (const char *s, int c);
47144 +char *grub_strrchr (const char *s, int c);
47145 +char *grub_strnchr (const char *s, int c);
47146 +int grub_strnlen (const char *s, int n);
47147 +char *grub_strncpy (char *new, const char *s, int n);
47148 +int grub_strncasecmp(const char *s0, const char *s1, int n);
47151 -typedef unsigned long grub_jmp_buf[6];
47152 +typedef unsigned long grub_jmp_buf[8];
47154 /* In the grub shell, use the libc jmp_buf instead. */
47155 # include <setjmp.h>
47156 @@ -904,10 +959,11 @@ extern grub_jmp_buf restart_cmdline_env;
47158 void init_page (void);
47159 void print_error (void);
47160 -char *convert_to_ascii (char *buf, int c, ...);
47161 +char *convert_to_ascii (char *buf, int c, unsigned int num);
47162 int get_cmdline (char *prompt, char *cmdline, int maxlen,
47163 int echo_char, int history);
47164 int substring (const char *s1, const char *s2);
47165 +int subcasestring (const char *s1, const char *s2);
47166 int nul_terminate (char *str);
47167 int get_based_digit (int c, int base);
47168 int safe_parse_maxint (char **str_ptr, int *myint_ptr);
47169 @@ -934,7 +990,9 @@ int next_partition (unsigned long drive, unsigned long dest,
47170 unsigned long *partition, int *type,
47171 unsigned long *start, unsigned long *len,
47172 unsigned long *offset, int *entry,
47173 - unsigned long *ext_offset, char *buf);
47174 + unsigned long *ext_offset,
47175 + unsigned long *gpt_offset, int *gpt_count,
47176 + int *gpt_size, char *buf);
47178 /* Sets device to the one represented by the SAVED_* parameters. */
47179 int make_saved_active (void);
47180 @@ -962,6 +1020,8 @@ int dir (char *dirname);
47182 int set_bootdev (int hdbias);
47184 +char *get_fsys_type (void);
47186 /* Display statistics on the current active device. */
47187 void print_fsys_type (void);
47189 @@ -987,10 +1047,22 @@ int load_module (char *module, char *arg);
47190 int load_initrd (char *initrd);
47192 int check_password(char *entered, char* expected, password_t type);
47194 +char *sha256_crypt (const char *key, const char *salt);
47195 +char *sha512_crypt (const char *key, const char *salt);
47198 void init_bios_info (void);
47200 +#ifdef PLATFORM_EFI
47201 +void grub_set_config_file (char *path_name);
47202 +int grub_save_saved_default (int new_default);
47203 +extern int check_device (const char *device);
47204 +extern void assign_device_name (int drive, const char *device);
47206 +int grub_load_linux (char *kernel, char *arg);
47207 +int grub_load_initrd (char *initrd);
47208 +int grub_chainloader (char *filename);
47209 #endif /* ASM_FILE */
47211 #endif /* ! GRUB_SHARED_HEADER */
47212 diff --git a/stage2/smp-imps.h b/stage2/smp-imps.h
47213 index c0fdce3..bae9b77 100644
47214 --- a/stage2/smp-imps.h
47215 +++ b/stage2/smp-imps.h
47216 @@ -196,7 +196,6 @@ struct imps_interrupt
47218 int imps_probe (void);
47222 * Defines that use variables
47224 diff --git a/stage2/stage1_5.c b/stage2/stage1_5.c
47225 index 5c45d4c..c2d9632 100644
47226 --- a/stage2/stage1_5.c
47227 +++ b/stage2/stage1_5.c
47228 @@ -30,7 +30,8 @@ disk_read_savesect_func (int sector, int offset, int length)
47232 - grub_printf ("\n\nGRUB loading, please wait...\n");
47234 + grub_printf ("\n\nGRUB loading, please wait...\n");
47237 * Here load the true second-stage boot-loader.
47238 diff --git a/stage2/stage2.c b/stage2/stage2.c
47239 index 4dbf6f5..cca4332 100644
47240 --- a/stage2/stage2.c
47241 +++ b/stage2/stage2.c
47244 grub_jmp_buf restart_env;
47246 +int silent_grub = 0;
47248 #if defined(PRESET_MENU_STRING) || defined(SUPPORT_DISKLESS)
47250 # if defined(PRESET_MENU_STRING)
47251 @@ -233,6 +235,10 @@ run_menu (char *menu_entries, char *config_entries, int num_entries,
47253 int c, time1, time2 = -1, first_entry = 0;
47254 char *cur_entry = 0;
47255 + struct term_entry *prev_term = NULL;
47257 + if (grub_verbose)
47261 * Main loop for menu UI.
47262 @@ -254,18 +260,33 @@ restart:
47264 if (grub_timeout < 0)
47268 /* If SHOW_MENU is false, don't display the menu until ESC is pressed. */
47271 + /* Don't show the "Booting in blah seconds message" if the timeout is 0 */
47272 + int print_message = grub_timeout != 0;
47274 /* Get current time. */
47275 while ((time1 = getrtsecs ()) == 0xFF)
47278 + if (print_message)
47279 + grub_printf("\rPress any key to enter the menu\n\n\n");
47283 - /* Check if ESC is pressed. */
47284 - if (checkkey () != -1 && ASCII_CHAR (getkey ()) == '\e')
47285 + /* Check if any key is pressed */
47286 + if (checkkey () != -1)
47288 + grub_timeout = -1;
47294 + /* See if a modifier key is held down. */
47295 + if (keystatus () != 0)
47299 @@ -287,8 +308,10 @@ restart:
47302 /* Print a message. */
47303 - grub_printf ("\rPress `ESC' to enter the menu... %d ",
47305 + if (print_message)
47306 + grub_printf ("\rBooting %s in %d seconds...",
47307 + get_entry(menu_entries, first_entry + entryno, 0),
47312 @@ -319,7 +342,8 @@ restart:
47313 if (config_entries)
47315 Press enter to boot the selected OS, \'e\' to edit the\n\
47316 - commands before booting, or \'c\' for a command-line.");
47317 + commands before booting, \'a\' to modify the kernel arguments\n\
47318 + before booting, or \'c\' for a command-line.");
47321 Press \'b\' to boot, \'e\' to edit the selected command in the\n\
47322 @@ -514,7 +538,7 @@ restart:
47325 grub_memmove (cur_entry + 2, cur_entry,
47326 - ((int) heap) - ((int) cur_entry));
47327 + heap - cur_entry);
47329 cur_entry[0] = ' ';
47331 @@ -530,8 +554,8 @@ restart:
47334 grub_memmove (cur_entry, ptr,
47335 - ((int) heap) - ((int) ptr));
47336 - heap -= (((int) ptr) - ((int) cur_entry));
47338 + heap -= ptr - cur_entry;
47342 @@ -655,7 +679,7 @@ restart:
47346 - print_cmdline_message (0);
47347 + print_cmdline_message (CMDLINE_EDIT_MODE);
47349 new_heap = heap + NEW_HEAPSIZE + 1;
47351 @@ -681,7 +705,7 @@ restart:
47353 /* align rest of commands properly */
47354 grub_memmove (cur_entry + j, cur_entry + i,
47355 - (int) heap - ((int) cur_entry + i));
47356 + (unsigned long) heap - ((unsigned long) cur_entry + i));
47358 /* copy command to correct area */
47359 grub_memmove (cur_entry, new_heap, j);
47360 @@ -697,6 +721,98 @@ restart:
47361 enter_cmdline (heap, 0);
47364 + if (config_entries && c == 'a')
47366 + int new_num_entries = 0, i = 0, j;
47367 + int needs_padding, amount;
47370 + char * entry_copy;
47371 + char * append_line;
47374 + entry_copy = new_heap = heap;
47375 + cur_entry = get_entry (config_entries, first_entry + entryno,
47380 + while ((*(new_heap++) = cur_entry[i++]) != 0);
47381 + new_num_entries++;
47383 + while (config_entries && cur_entry[i]);
47385 + /* this only needs to be done if config_entries is non-NULL,
47386 + but it doesn't hurt to do it always */
47387 + *(new_heap++) = 0;
47389 + new_heap = heap + NEW_HEAPSIZE + 1;
47391 + entries = entry_copy;
47394 + if ((strstr(entries, "kernel") == entries) &&
47395 + isspace(entries[6]))
47398 + while (*entries) entries++;
47405 + start = entries + 6;
47407 + /* skip the white space */
47408 + while (*start && isspace(*start)) start++;
47409 + /* skip the kernel name */
47410 + while (*start && !isspace(*start)) start++;
47412 + /* skip the white space */
47413 + needs_padding = (!*start || !isspace(*start));
47414 + while (*start && isspace(*start)) start++;
47416 + append_line = new_heap;
47417 + grub_strcpy(append_line, start);
47420 + print_cmdline_message (CMDLINE_EDIT_MODE);
47422 + if (get_cmdline(PACKAGE " append> ",
47423 + append_line, NEW_HEAPSIZE + 1,
47427 + /* have new args; append_line points to the
47428 + new args and start points to the old
47431 + i = grub_strlen(start);
47432 + j = grub_strlen(append_line);
47434 + if (i > (j + needs_padding))
47437 + amount = j + needs_padding;
47439 + /* align rest of commands properly */
47440 + memmove (start + j + needs_padding, start + i,
47441 + ((unsigned long) append_line) - ((unsigned long) start) - (amount));
47443 + if (needs_padding)
47446 + /* copy command to correct area */
47447 + memmove (start + needs_padding, append_line, j);
47449 + /* set up this entry to boot */
47450 + config_entries = NULL;
47451 + cur_entry = entry_copy;
47459 @@ -712,16 +828,31 @@ restart:
47465 + if (grub_verbose || show_menu)
47470 + /* if our terminal needed initialization, we should shut it down
47471 + * before booting the kernel, but we want to save what it was so
47472 + * we can come back if needed */
47473 + prev_term = current_term;
47474 + if (current_term->shutdown)
47476 + (*current_term->shutdown)();
47477 + current_term = term_table; /* assumption: console is first */
47485 if (config_entries)
47486 - printf (" Booting \'%s\'\n\n",
47487 + verbose_printf (" Booting \'%s\'\n\n",
47488 get_entry (menu_entries, first_entry + entryno, 0));
47490 - printf (" Booting command-list\n\n");
47491 + verbose_printf (" Booting command-list\n\n");
47494 cur_entry = get_entry (config_entries, first_entry + entryno, 1);
47495 @@ -748,6 +879,13 @@ restart:
47499 + /* if we get back here, we should go back to what our term was before */
47500 + current_term = prev_term;
47501 + if (current_term->startup)
47502 + /* if our terminal fails to initialize, fall back to console since
47503 + * it should always work */
47504 + if ((*current_term->startup)() == 0)
47505 + current_term = term_table; /* we know that console is first */
47509 @@ -867,38 +1005,8 @@ cmain (void)
47510 if (use_config_file)
47511 #endif /* GRUB_UTIL */
47513 - char *default_file = (char *) DEFAULT_FILE_BUF;
47516 - /* Get a saved default entry if possible. */
47517 - saved_entryno = 0;
47518 - *default_file = 0;
47519 - grub_strncat (default_file, config_file, DEFAULT_FILE_BUFLEN);
47520 - for (i = grub_strlen(default_file); i >= 0; i--)
47521 - if (default_file[i] == '/')
47526 - default_file[i] = 0;
47527 - grub_strncat (default_file + i, "default", DEFAULT_FILE_BUFLEN - i);
47528 - if (grub_open (default_file))
47530 - char buf[10]; /* This is good enough. */
47534 - len = grub_read (buf, sizeof (buf));
47537 - buf[sizeof (buf) - 1] = 0;
47538 - safe_parse_maxint (&p, &saved_entryno);
47543 - errnum = ERR_NONE;
47547 /* STATE 0: Before any title command.
47548 @@ -1050,11 +1158,16 @@ cmain (void)
47552 + /* go ahead and make sure the terminal is setup */
47553 + if (current_term->startup)
47554 + (*current_term->startup)();
47558 /* If no acceptable config file, goto command-line, starting
47559 heap from where the config entries would have been stored
47560 if there were any. */
47561 + grub_verbose = 1;
47562 enter_cmdline (config_entries, 1);
47565 diff --git a/stage2/start.S b/stage2/start.S
47566 index 9a7d504..7a6652f 100644
47567 --- a/stage2/start.S
47568 +++ b/stage2/start.S
47571 /* Print message string */
47572 #define MSG(x) movw $ABS(x), %si; call message
47574 + /* Print verbose message string */
47579 @@ -67,9 +70,9 @@ _start:
47581 /* print a notification message on the screen */
47583 - MSG(notification_string)
47584 + VMSG(notification_string)
47588 /* this sets up for the first run through "bootloop" */
47589 movw $ABS(firstlist - BOOTSEC_LISTSIZE), %di
47591 @@ -291,9 +294,9 @@ copy_buffer:
47592 movsb /* this runs the actual copy */
47594 /* restore addressing regs and print a dot with correct DS
47595 - (MSG modifies SI, which is saved, and unused AX and BX) */
47596 + (VMSG modifies SI, which is saved, and unused AX and BX) */
47598 - MSG(notification_step)
47599 + VMSG(notification_step)
47602 /* check if finished with this dataset */
47603 @@ -310,7 +313,7 @@ copy_buffer:
47606 /* print a newline */
47607 - MSG(notification_done)
47608 + VMSG(notification_done)
47609 popw %dx /* this makes sure %dl is our "boot" drive */
47612 diff --git a/stage2/term.h b/stage2/term.h
47613 index 8261c7c..803de58 100644
47614 --- a/stage2/term.h
47615 +++ b/stage2/term.h
47616 @@ -54,18 +54,28 @@ typedef enum
47617 /* Set when the terminal needs to be initialized. */
47618 #define TERM_NEED_INIT (1 << 16)
47620 +/* Bitmasks for modifier keys returned by term->keystatus(). */
47621 +#define TERM_STATUS_ALT (1 << 3)
47622 +#define TERM_STATUS_CTRL (1 << 2)
47623 +#define TERM_STATUS_LEFT_SHIFT (1 << 1)
47624 +#define TERM_STATUS_RIGHT_SHIFT (1 << 0)
47628 /* The name of a terminal. */
47630 /* The feature flags defined above. */
47631 unsigned long flags;
47632 + /* Default for maximum number of lines if not specified */
47633 + unsigned short max_lines;
47634 /* Put a character. */
47635 void (*putchar) (int c);
47636 /* Check if any input character is available. */
47637 int (*checkkey) (void);
47638 /* Get a character. */
47639 int (*getkey) (void);
47640 + /* Get keyboard modifier status. */
47641 + int (*keystatus) (void);
47642 /* Get the cursor position. The return value is ((X << 8) | Y). */
47643 int (*getxy) (void);
47644 /* Go to the position (X, Y). */
47645 @@ -79,6 +89,11 @@ struct term_entry
47646 void (*setcolor) (int normal_color, int highlight_color);
47647 /* Turn on/off the cursor. */
47648 int (*setcursor) (int on);
47650 + /* function to start a terminal */
47651 + int (*startup) (void);
47652 + /* function to use to shutdown a terminal */
47653 + void (*shutdown) (void);
47656 /* This lists up available terminals. */
47657 @@ -96,6 +111,7 @@ void console_putchar (int c);
47659 int console_checkkey (void);
47660 int console_getkey (void);
47661 +int console_keystatus (void);
47662 int console_getxy (void);
47663 void console_gotoxy (int x, int y);
47664 void console_cls (void);
47665 @@ -124,4 +140,23 @@ void hercules_setcolor (int normal_color, int highlight_color);
47666 int hercules_setcursor (int on);
47669 +#ifdef SUPPORT_GRAPHICS
47670 +extern int foreground, background, border, graphics_inited;
47672 +void graphics_set_splash(char *splashfile);
47673 +int set_videomode (int mode);
47674 +void graphics_putchar (int c);
47675 +int graphics_getxy(void);
47676 +void graphics_gotoxy(int x, int y);
47677 +void graphics_cls(void);
47678 +void graphics_setcolorstate (color_state state);
47679 +void graphics_setcolor (int normal_color, int highlight_color);
47680 +int graphics_setcursor (int on);
47681 +int graphics_init(void);
47682 +void graphics_end(void);
47685 +void graphics_set_palette(int idx, int red, int green, int blue);
47686 +#endif /* SUPPORT_GRAPHICS */
47688 #endif /* ! GRUB_TERM_HEADER */
47689 diff --git a/stage2/tparm.c b/stage2/tparm.c
47690 index ff78d53..408b284 100644
47691 --- a/stage2/tparm.c
47692 +++ b/stage2/tparm.c
47693 @@ -320,7 +320,7 @@ parse_format(const char *s, char *format, int *len)
47694 #define isLOWER(c) ((c) >= 'a' && (c) <= 'z')
47696 static inline char *
47697 -tparam_internal(const char *string, int *dataptr)
47698 +tparam_internal(const char *string, va_list args)
47700 #define NUM_VARS 26
47702 @@ -461,9 +461,9 @@ tparam_internal(const char *string, int *dataptr)
47703 * a char* and an int may not be the same size on the stack.
47705 if (p_is_s[i] != 0) {
47706 - p_is_s[i] = (char *)(*(dataptr++));
47707 + p_is_s[i] = va_arg (args, char *);
47709 - param[i] = (int)(*(dataptr++));
47710 + param[i] = va_arg (args, int);
47714 @@ -716,11 +716,11 @@ char *
47715 grub_tparm(const char *string,...)
47718 - int *dataptr = (int *) &string;
47723 - result = tparam_internal(string, dataptr);
47724 + va_start (ap, string);
47725 + result = tparam_internal(string, ap);
47730 diff --git a/test b/test
47731 new file mode 100644
47732 index 0000000..b182379
47737 diff --git a/util/.gitignore b/util/.gitignore
47738 new file mode 100644
47739 index 0000000..6687356
47741 +++ b/util/.gitignore
47750 diff --git a/util/Makefile.am b/util/Makefile.am
47751 index 2e04711..fa545b1 100644
47752 --- a/util/Makefile.am
47753 +++ b/util/Makefile.am
47757 bin_PROGRAMS = mbchk
47758 -sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo \
47760 +sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo grub-crypt
47761 noinst_SCRIPTS = grub-image mkbimage
47763 EXTRA_DIST = mkbimage
47764 @@ -10,3 +11,9 @@ AM_CFLAGS = -I$(top_srcdir)/lib -I$(top_srcdir)/docs
47766 mbchk_SOURCES = mbchk.c
47767 mbchk_LDADD = ../lib/libcommon.a
47771 +sbin_SCRIPTS = grub-md5-crypt grub-terminfo grub-crypt
47774 diff --git a/util/Makefile.in b/util/Makefile.in
47775 deleted file mode 100644
47776 index e700cf7..0000000
47777 --- a/util/Makefile.in
47780 -# Makefile.in generated by automake 1.9.4 from Makefile.am.
47781 -# @configure_input@
47783 -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
47784 -# 2003, 2004 Free Software Foundation, Inc.
47785 -# This Makefile.in is free software; the Free Software Foundation
47786 -# gives unlimited permission to copy and/or distribute it,
47787 -# with or without modifications, as long as this notice is preserved.
47789 -# This program is distributed in the hope that it will be useful,
47790 -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
47791 -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
47792 -# PARTICULAR PURPOSE.
47797 -SOURCES = $(mbchk_SOURCES)
47800 -top_srcdir = @top_srcdir@
47802 -pkgdatadir = $(datadir)/@PACKAGE@
47803 -pkglibdir = $(libdir)/@PACKAGE@
47804 -pkgincludedir = $(includedir)/@PACKAGE@
47806 -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
47807 -INSTALL = @INSTALL@
47808 -install_sh_DATA = $(install_sh) -c -m 644
47809 -install_sh_PROGRAM = $(install_sh) -c
47810 -install_sh_SCRIPT = $(install_sh) -c
47811 -INSTALL_HEADER = $(INSTALL_DATA)
47812 -transform = $(program_transform_name)
47813 -NORMAL_INSTALL = :
47816 -NORMAL_UNINSTALL = :
47818 -POST_UNINSTALL = :
47819 -build_triplet = @build@
47820 -host_triplet = @host@
47821 -bin_PROGRAMS = mbchk$(EXEEXT)
47823 -DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
47824 - $(srcdir)/grub-image.in $(srcdir)/grub-install.in \
47825 - $(srcdir)/grub-md5-crypt.in $(srcdir)/grub-set-default.in \
47826 - $(srcdir)/grub-terminfo.in
47827 -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
47828 -am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
47829 - $(top_srcdir)/configure.ac
47830 -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
47832 -mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
47833 -CONFIG_HEADER = $(top_builddir)/config.h
47834 -CONFIG_CLEAN_FILES = grub-image grub-install grub-md5-crypt \
47835 - grub-terminfo grub-set-default
47836 -am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)"
47837 -binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
47838 -PROGRAMS = $(bin_PROGRAMS)
47839 -am_mbchk_OBJECTS = mbchk.$(OBJEXT)
47840 -mbchk_OBJECTS = $(am_mbchk_OBJECTS)
47841 -mbchk_DEPENDENCIES = ../lib/libcommon.a
47842 -sbinSCRIPT_INSTALL = $(INSTALL_SCRIPT)
47843 -SCRIPTS = $(noinst_SCRIPTS) $(sbin_SCRIPTS)
47844 -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
47845 -depcomp = $(SHELL) $(top_srcdir)/depcomp
47846 -am__depfiles_maybe = depfiles
47847 -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
47848 - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
47850 -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
47851 -SOURCES = $(mbchk_SOURCES)
47852 -DIST_SOURCES = $(mbchk_SOURCES)
47855 -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
47856 -ACLOCAL = @ACLOCAL@
47857 -AMDEP_FALSE = @AMDEP_FALSE@
47858 -AMDEP_TRUE = @AMDEP_TRUE@
47860 -AUTOCONF = @AUTOCONF@
47861 -AUTOHEADER = @AUTOHEADER@
47862 -AUTOMAKE = @AUTOMAKE@
47864 -BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
47865 -BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
47868 -CCASFLAGS = @CCASFLAGS@
47869 -CCDEPMODE = @CCDEPMODE@
47872 -CPPFLAGS = @CPPFLAGS@
47873 -CYGPATH_W = @CYGPATH_W@
47876 -DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
47877 -DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
47883 -FSYS_CFLAGS = @FSYS_CFLAGS@
47884 -GRUB_CFLAGS = @GRUB_CFLAGS@
47885 -GRUB_LIBS = @GRUB_LIBS@
47886 -HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
47887 -HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
47888 -INSTALL_DATA = @INSTALL_DATA@
47889 -INSTALL_PROGRAM = @INSTALL_PROGRAM@
47890 -INSTALL_SCRIPT = @INSTALL_SCRIPT@
47891 -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
47892 -LDFLAGS = @LDFLAGS@
47893 -LIBOBJS = @LIBOBJS@
47895 -LTLIBOBJS = @LTLIBOBJS@
47897 -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
47898 -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
47899 -MAKEINFO = @MAKEINFO@
47900 -NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
47901 -NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
47902 -NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
47903 -NET_CFLAGS = @NET_CFLAGS@
47904 -NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
47905 -OBJCOPY = @OBJCOPY@
47907 -PACKAGE = @PACKAGE@
47908 -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
47909 -PACKAGE_NAME = @PACKAGE_NAME@
47910 -PACKAGE_STRING = @PACKAGE_STRING@
47911 -PACKAGE_TARNAME = @PACKAGE_TARNAME@
47912 -PACKAGE_VERSION = @PACKAGE_VERSION@
47913 -PATH_SEPARATOR = @PATH_SEPARATOR@
47916 -SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
47917 -SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
47918 -SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
47919 -SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
47920 -SET_MAKE = @SET_MAKE@
47922 -STAGE1_CFLAGS = @STAGE1_CFLAGS@
47923 -STAGE2_CFLAGS = @STAGE2_CFLAGS@
47925 -VERSION = @VERSION@
47926 -ac_ct_CC = @ac_ct_CC@
47927 -ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
47928 -ac_ct_RANLIB = @ac_ct_RANLIB@
47929 -ac_ct_STRIP = @ac_ct_STRIP@
47930 -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
47931 -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
47932 -am__include = @am__include@
47933 -am__leading_dot = @am__leading_dot@
47934 -am__quote = @am__quote@
47935 -am__tar = @am__tar@
47936 -am__untar = @am__untar@
47939 -build_alias = @build_alias@
47940 -build_cpu = @build_cpu@
47941 -build_os = @build_os@
47942 -build_vendor = @build_vendor@
47943 -datadir = @datadir@
47944 -exec_prefix = @exec_prefix@
47946 -host_alias = @host_alias@
47947 -host_cpu = @host_cpu@
47948 -host_os = @host_os@
47949 -host_vendor = @host_vendor@
47950 -includedir = @includedir@
47951 -infodir = @infodir@
47952 -install_sh = @install_sh@
47954 -libexecdir = @libexecdir@
47955 -localstatedir = @localstatedir@
47957 -mkdir_p = @mkdir_p@
47958 -oldincludedir = @oldincludedir@
47960 -program_transform_name = @program_transform_name@
47961 -sbindir = @sbindir@
47962 -sharedstatedir = @sharedstatedir@
47963 -sysconfdir = @sysconfdir@
47964 -target_alias = @target_alias@
47965 -sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo \
47968 -noinst_SCRIPTS = grub-image mkbimage
47969 -EXTRA_DIST = mkbimage
47971 -# XXX: Need to search for a header file in docs, because of multiboot.h.
47972 -AM_CFLAGS = -I$(top_srcdir)/lib -I$(top_srcdir)/docs
47973 -mbchk_SOURCES = mbchk.c
47974 -mbchk_LDADD = ../lib/libcommon.a
47978 -.SUFFIXES: .c .o .obj
47979 -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
47980 - @for dep in $?; do \
47981 - case '$(am__configure_deps)' in \
47983 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
47988 - echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu util/Makefile'; \
47989 - cd $(top_srcdir) && \
47990 - $(AUTOMAKE) --gnu util/Makefile
47991 -.PRECIOUS: Makefile
47992 -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
47994 - *config.status*) \
47995 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
47997 - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
47998 - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
48001 -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
48002 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
48004 -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
48005 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
48006 -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
48007 - cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
48008 -grub-image: $(top_builddir)/config.status $(srcdir)/grub-image.in
48009 - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
48010 -grub-install: $(top_builddir)/config.status $(srcdir)/grub-install.in
48011 - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
48012 -grub-md5-crypt: $(top_builddir)/config.status $(srcdir)/grub-md5-crypt.in
48013 - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
48014 -grub-terminfo: $(top_builddir)/config.status $(srcdir)/grub-terminfo.in
48015 - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
48016 -grub-set-default: $(top_builddir)/config.status $(srcdir)/grub-set-default.in
48017 - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
48018 -install-binPROGRAMS: $(bin_PROGRAMS)
48019 - @$(NORMAL_INSTALL)
48020 - test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
48021 - @list='$(bin_PROGRAMS)'; for p in $$list; do \
48022 - p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
48025 - f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
48026 - echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
48027 - $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
48031 -uninstall-binPROGRAMS:
48032 - @$(NORMAL_UNINSTALL)
48033 - @list='$(bin_PROGRAMS)'; for p in $$list; do \
48034 - f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
48035 - echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
48036 - rm -f "$(DESTDIR)$(bindir)/$$f"; \
48039 -clean-binPROGRAMS:
48040 - -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
48041 -mbchk$(EXEEXT): $(mbchk_OBJECTS) $(mbchk_DEPENDENCIES)
48042 - @rm -f mbchk$(EXEEXT)
48043 - $(LINK) $(mbchk_LDFLAGS) $(mbchk_OBJECTS) $(mbchk_LDADD) $(LIBS)
48044 -install-sbinSCRIPTS: $(sbin_SCRIPTS)
48045 - @$(NORMAL_INSTALL)
48046 - test -z "$(sbindir)" || $(mkdir_p) "$(DESTDIR)$(sbindir)"
48047 - @list='$(sbin_SCRIPTS)'; for p in $$list; do \
48048 - if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
48049 - if test -f $$d$$p; then \
48050 - f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
48051 - echo " $(sbinSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(sbindir)/$$f'"; \
48052 - $(sbinSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(sbindir)/$$f"; \
48056 -uninstall-sbinSCRIPTS:
48057 - @$(NORMAL_UNINSTALL)
48058 - @list='$(sbin_SCRIPTS)'; for p in $$list; do \
48059 - f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
48060 - echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \
48061 - rm -f "$(DESTDIR)$(sbindir)/$$f"; \
48064 -mostlyclean-compile:
48065 - -rm -f *.$(OBJEXT)
48067 -distclean-compile:
48070 -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbchk.Po@am__quote@
48073 -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
48074 -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
48075 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
48076 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
48077 -@am__fastdepCC_FALSE@ $(COMPILE) -c $<
48080 -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
48081 -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
48082 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
48083 -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
48084 -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
48085 -uninstall-info-am:
48087 -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
48088 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
48089 - unique=`for i in $$list; do \
48090 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
48092 - $(AWK) ' { files[$$0] = 1; } \
48093 - END { for (i in files) print i; }'`; \
48094 - mkid -fID $$unique
48097 -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
48098 - $(TAGS_FILES) $(LISP)
48101 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
48102 - unique=`for i in $$list; do \
48103 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
48105 - $(AWK) ' { files[$$0] = 1; } \
48106 - END { for (i in files) print i; }'`; \
48107 - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
48108 - test -n "$$unique" || unique=$$empty_fix; \
48109 - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
48110 - $$tags $$unique; \
48113 -CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
48114 - $(TAGS_FILES) $(LISP)
48117 - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
48118 - unique=`for i in $$list; do \
48119 - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
48121 - $(AWK) ' { files[$$0] = 1; } \
48122 - END { for (i in files) print i; }'`; \
48123 - test -z "$(CTAGS_ARGS)$$tags$$unique" \
48124 - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
48128 - here=`$(am__cd) $(top_builddir) && pwd` \
48129 - && cd $(top_srcdir) \
48130 - && gtags -i $(GTAGS_ARGS) $$here
48133 - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
48135 -distdir: $(DISTFILES)
48136 - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
48137 - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
48138 - list='$(DISTFILES)'; for file in $$list; do \
48140 - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
48141 - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
48143 - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
48144 - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
48145 - if test "$$dir" != "$$file" && test "$$dir" != "."; then \
48147 - $(mkdir_p) "$(distdir)$$dir"; \
48151 - if test -d $$d/$$file; then \
48152 - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
48153 - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
48155 - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
48157 - test -f $(distdir)/$$file \
48158 - || cp -p $$d/$$file $(distdir)/$$file \
48164 -all-am: Makefile $(PROGRAMS) $(SCRIPTS)
48166 - for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)"; do \
48167 - test -z "$$dir" || $(mkdir_p) "$$dir"; \
48169 -install: install-am
48170 -install-exec: install-exec-am
48171 -install-data: install-data-am
48172 -uninstall: uninstall-am
48174 -install-am: all-am
48175 - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
48177 -installcheck: installcheck-am
48179 - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
48180 - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
48181 - `test -z '$(STRIP)' || \
48182 - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
48183 -mostlyclean-generic:
48187 -distclean-generic:
48188 - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
48190 -maintainer-clean-generic:
48191 - @echo "This command is intended for maintainers to use"
48192 - @echo "it deletes files that may require special tools to rebuild."
48195 -clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
48197 -distclean: distclean-am
48198 - -rm -rf ./$(DEPDIR)
48200 -distclean-am: clean-am distclean-compile distclean-generic \
48215 -install-exec-am: install-binPROGRAMS install-sbinSCRIPTS
48217 -install-info: install-info-am
48223 -maintainer-clean: maintainer-clean-am
48224 - -rm -rf ./$(DEPDIR)
48226 -maintainer-clean-am: distclean-am maintainer-clean-generic
48228 -mostlyclean: mostlyclean-am
48230 -mostlyclean-am: mostlyclean-compile mostlyclean-generic
48240 -uninstall-am: uninstall-binPROGRAMS uninstall-info-am \
48241 - uninstall-sbinSCRIPTS
48243 -.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
48244 - clean-generic ctags distclean distclean-compile \
48245 - distclean-generic distclean-tags distdir dvi dvi-am html \
48246 - html-am info info-am install install-am install-binPROGRAMS \
48247 - install-data install-data-am install-exec install-exec-am \
48248 - install-info install-info-am install-man install-sbinSCRIPTS \
48249 - install-strip installcheck installcheck-am installdirs \
48250 - maintainer-clean maintainer-clean-generic mostlyclean \
48251 - mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
48252 - tags uninstall uninstall-am uninstall-binPROGRAMS \
48253 - uninstall-info-am uninstall-sbinSCRIPTS
48255 -# Tell versions [3.59,3.63) of GNU make to not export all variables.
48256 -# Otherwise a system limit (for SysV at least) may be exceeded.
48258 diff --git a/util/grub-crypt.in b/util/grub-crypt.in
48259 new file mode 100644
48260 index 0000000..e8783c8
48262 +++ b/util/grub-crypt.in
48264 +#! /usr/bin/python
48266 +'''Generate encrypted passwords for GRUB.'''
48274 + '''Output usage message to stderr and exit.'''
48275 + print >> sys.stderr, 'Usage: grub-crypt [OPTION]...'
48276 + print >> sys.stderr, 'Try `$progname --help\' for more information.'
48280 + '''Generate a random salt.'''
48282 + with open('/dev/urandom', 'rb') as urandom:
48284 + byte = urandom.read(1)
48285 + if byte in ('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
48288 + if len(ret) == 16:
48294 + crypt_type = '$6$' # SHA-256
48296 + opts, args = getopt.getopt(sys.argv[1:], 'hv',
48297 + ('help', 'version', 'md5', 'sha-256',
48299 + except getopt.GetoptError, err:
48300 + print >> sys.stderr, str(err)
48303 + print >> sys.stderr, 'Unexpected argument `%s\'' % (args[0],)
48305 + for (opt, _) in opts:
48306 + if opt in ('-h', '--help'):
48308 +'''Usage: grub-crypt [OPTION]...
48309 +Encrypt a password.
48311 + -h, --help Print this message and exit
48312 + -v, --version Print the version information and exit
48313 + --md5 Use MD5 to encrypt the password
48314 + --sha-256 Use SHA-256 to encrypt the password
48315 + --sha-512 Use SHA-512 to encrypt the password (default)
48317 +Report bugs to <bug-grub@gnu.org>.
48320 + elif opt in ('-v', '--version'):
48321 + print 'grub-crypt (GNU GRUB @VERSION@)'
48323 + elif opt == '--md5':
48324 + crypt_type = '$1$'
48325 + elif opt == '--sha-256':
48326 + crypt_type = '$5$'
48327 + elif opt == '--sha-512':
48328 + crypt_type = '$6$'
48330 + assert False, 'Unhandled option'
48331 + password = getpass.getpass('Password: ')
48332 + password2 = getpass.getpass('Retype password: ')
48334 + print >> sys.stderr, 'Empty password is not permitted.'
48336 + if password != password2:
48337 + print >> sys.stderr, 'Sorry, passwords do not match.'
48339 + salt = crypt_type + gen_salt()
48340 + print crypt.crypt(password, salt)
48342 +if __name__ == '__main__':
48344 diff --git a/util/grub-install.in b/util/grub-install.in
48345 index 2e598b0..12539b8 100644
48346 --- a/util/grub-install.in
48347 +++ b/util/grub-install.in
48348 @@ -21,34 +21,36 @@
48350 exec_prefix=@exec_prefix@
48356 host_cpu=@host_cpu@
48358 host_vendor=@host_vendor@
48359 -pkglibdir=${libdir}/${PACKAGE}/${host_cpu}-${host_vendor}
48360 +pkgdatadir=${datadir}/${PACKAGE}/${host_cpu}-${host_vendor}
48362 grub_shell=${sbindir}/grub
48363 -grub_set_default=${sbindir}/grub-set-default
48364 -log_file=/tmp/grub-install.log.$$
48365 -img_file=/tmp/grub-install.img.$$
48366 +mdadm=${sbindir}/mdadm
48367 +log_file=${TMPDIR:-/tmp}/grub-install.log.$$
48368 +img_file=${TMPDIR:-/tmp}/grub-install.img.$$
48370 grub_prefix=/boot/grub
48380 # look for secure tempfile creation wrappers on this platform
48381 if test -x /bin/tempfile; then
48382 mklog="/bin/tempfile --prefix=grub"
48383 mkimg="/bin/tempfile --prefix=grub"
48384 elif test -x /bin/mktemp; then
48385 - mklog="/bin/mktemp /tmp/grub-install.log.XXXXXX"
48386 - mkimg="/bin/mktemp /tmp/grub-install.img.XXXXXX"
48387 + mklog="/bin/mktemp ${TMPDIR:-/tmp}/grub-install.log.XXXXXX"
48388 + mkimg="/bin/mktemp ${TMPDIR:-/tmp}/grub-install.img.XXXXXX"
48392 @@ -70,6 +72,8 @@ Install GRUB on your drive.
48393 --force-lba force GRUB to use LBA mode even for a buggy
48395 --recheck probe a device map even if it already exists
48396 + This flag is unreliable and its use is
48397 + strongly discouraged.
48399 INSTALL_DEVICE can be a GRUB device name or a system device filename.
48401 @@ -96,17 +100,28 @@ convert () {
48402 # Break the device name into the disk part and the partition part.
48405 - tmp_disk=`echo "$1" | sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' \
48406 + tmp_disk=`echo "$1" | grep -v '/mapper/control$' |
48407 + grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq |
48408 + sed -e 's%\([shv]d[a-z]\)[0-9]*$%\1%' \
48409 -e 's%\(d[0-9]*\)p[0-9]*$%\1%' \
48410 -e 's%\(fd[0-9]*\)$%\1%' \
48411 -e 's%/part[0-9]*$%/disc%' \
48412 - -e 's%\(c[0-7]d[0-9]*\).*$%\1%'`
48413 - tmp_part=`echo "$1" | sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' \
48414 + -e 's%\(c[0-7]d[0-9]*\).*$%\1%' \
48415 + -e 's%\(/mapper/[[:alpha:]]\+[[:digit:]]\+\)p[[:digit:]]\+$%\1%' \
48416 + -e 's%\(/mapper/isw_[[:alpha:]_]\+[[:alpha:]]\+[[:digit:]]\+\)p[[:digit:]]\+$%\1%' \
48417 + -e 's%\(/mapper/[[:alpha:]]\+_[[:alpha:]]\+\)[[:digit:]]\+$%\1%'`
48418 + tmp_part=`echo "$1" | grep -v '/mapper/control$' |
48419 + grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq |
48420 + sed -e 's%.*/[shv]d[a-z]\([0-9]*\)$%\1%' \
48421 -e 's%.*d[0-9]*p%%' \
48422 -e 's%.*/fd[0-9]*$%%' \
48423 -e 's%.*/floppy/[0-9]*$%%' \
48424 -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' \
48425 - -e 's%.*c[0-7]d[0-9]*p%%'`
48426 + -e 's%.*c[0-7]d[0-9]*p%%' \
48427 + -e 's%.*/mapper/[[:alpha:]]\+[[:digit:]]\+p\([[:digit:]]\+\)$%\1%' \
48428 + -e 's%.*/mapper/isw_[[:alpha:]_]\+[[:alpha:]]\+[[:digit:]]\+p\([[:digit:]]\+\)$%\1%' \
48429 + -e 's%.*/mapper/[[:alpha:]]\+_[[:alpha:]]\+\([[:digit:]]\+\)$%\1%' |
48430 + grep -v '.*/mapper/.*'`
48433 tmp_disk=`echo "$1" | sed 's%\([sh]d[0-9]*\).*%\1%'`
48434 @@ -196,7 +211,7 @@ resolve_symlink () {
48435 while test -L $tmp_fname; do
48436 tmp_new_fname=`ls -al $tmp_fname | sed -n 's%.*-> \(.*\)%\1%p'`
48437 if test -z "$tmp_new_fname"; then
48438 - echo "Unrecognized ls output" 2>&1
48439 + echo "Unrecognized ls output" 1>&2
48443 @@ -211,6 +226,80 @@ resolve_symlink () {
48447 +# Usage: is_raid1_device devicename
48448 +# Returns 0 if devicename is a raid1 md device, 1 if it is not.
48449 +is_raid1_device () {
48450 + case "$host_os" in
48452 + level=`$mdadm --query --detail $1 2>/dev/null | \
48453 + awk '/Raid Level :/ {print $4}'`
48454 + if [ "$level" = "raid1" ]; then
48462 +# Usage: find_real_devs device
48463 +# Returns space separated list of devices for linux if device is
48464 +# a raid1 device. In all other cases, the provided value is returned.
48465 +find_real_devs () {
48467 + case "$host_os" in
48469 + if is_raid1_device $source_device ; then
48471 + for device in `$mdadm --query --detail "${source_device}" | \
48472 + awk '/\/dev\/[^(md)]/ {print $7}'` ; do
48473 + list="$list $device"
48480 + echo $source_device
48484 +# Usage: stat_device file
48485 +# Find major:minor of a device node.
48487 + majmin=`stat -c "%t:%T" "$1" 2>/dev/null`
48488 + if test -z "$majmin"; then
48489 + echo "Could not find device for $1" 1>&2
48496 +# Usage: find_mapper_device file
48497 +# Find a file in /dev/mapper with the same major:minor as the specified node.
48498 +find_mapper_device() {
48499 + if [ -b "$1" ]; then
48502 + mntpnt=`echo "$1" | sed 's,/,\\\\/,g'`
48503 + dev=`awk '($2 ~ /'$mntpnt'/) { print $1 }' /etc/mtab`
48505 + if test -z "$dev"; then
48506 + echo "Could not find device for $1" 1>&2
48510 + majmin=`stat_device $dev`
48511 + for x in /dev/mapper/* ; do
48512 + devmajmin=`stat_device "$x"`
48513 + if [ "$majmin" == "$devmajmin" ]; then
48521 # Usage: find_device file
48522 # Find block device on which the file resides.
48524 @@ -219,15 +308,55 @@ find_device () {
48525 tmp_fname=`df $1/ | sed -n 's%.*\(/dev/[^ ]*\).*%\1%p'`
48527 if test -z "$tmp_fname"; then
48528 - echo "Could not find device for $1" 2>&1
48529 + echo "Could not find device for $1" 1>&2
48533 - tmp_fname=`resolve_symlink $tmp_fname`
48534 + ret_fname=`resolve_symlink $tmp_fname` || exit 1
48535 + tmp_fname=`find_mapper_device $ret_fname`
48536 + if test -n "$tmp_fname"; then
48537 + ret_fname="$tmp_fname"
48540 + echo "$ret_fname"
48545 + # Copy the GRUB images to the GRUB directory.
48546 + for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
48547 + rm -f $file || exit 1
48550 + ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do
48551 + cp -f $file ${grubdir} 1>&2 || exit 1
48556 +dump_boot_block () {
48558 + $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
48559 +dump ${root_drive}${tmp} ${img_file}
48565 +install_boot_block () {
48566 + # Before all invocations of the grub shell, call sync to make sure
48567 + # the raw device is in sync with any bufferring in filesystems.
48570 - echo "$tmp_fname"
48571 + # Now perform the installation.
48572 + $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >>$log_file
48574 +setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $2
48580 # Check the arguments.
48581 for option in "$@"; do
48583 @@ -247,6 +376,8 @@ for option in "$@"; do
48584 force_lba="--force-lba" ;;
48589 # This is an undocumented feature...
48592 @@ -265,12 +396,6 @@ for option in "$@"; do
48596 -if test "x$install_device" = x; then
48597 - echo "install_device not specified." 1>&2
48602 # If the debugging feature is enabled, print commands.
48603 if test $debug = yes; then
48605 @@ -293,6 +418,26 @@ esac
48606 grubdir=${bootdir}/grub
48607 device_map=${grubdir}/device.map
48609 +if [ "$recheck" == "yes" ]; then
48610 + if grep 'mapper' ${device_map} >/dev/null; then
48611 + echo 'grub-install does not support reprobing of device.map when' 1>&2
48612 + echo 'using a device-mapper based boot device.' 1>&2
48617 +# if they just want the images copied, copy the images and then exit
48618 +if test $justcopy = yes; then
48623 +if test "x$install_device" = x; then
48624 + echo "install_device not specified." 1>&2
48629 # Check if GRUB is installed.
48630 # This is necessary, because the user can specify "grub --read-only".
48631 set $grub_shell dummy
48632 @@ -303,17 +448,17 @@ else
48636 -if test -f "$pkglibdir/stage1"; then
48637 +if test -f "$pkgdatadir/stage1"; then
48640 - echo "${pkglibdir}/stage1: Not found." 1>&2
48641 + echo "${pkgdatadir}/stage1: Not found." 1>&2
48645 -if test -f "$pkglibdir/stage2"; then
48646 +if test -f "$pkgdatadir/stage2"; then
48649 - echo "${pkglibdir}/stage2: Not found." 1>&2
48650 + echo "${pkgdatadir}/stage2: Not found." 1>&2
48654 @@ -324,9 +469,11 @@ fi
48655 test -d "$bootdir" || mkdir "$bootdir" || exit 1
48656 test -d "$grubdir" || mkdir "$grubdir" || exit 1
48660 # If --recheck is specified, remove the device map, if present.
48661 if test $recheck = yes; then
48662 - rm -f $device_map
48663 + mv $device_map ${device_map}.backup
48666 # Create the device map file if it is not present.
48667 @@ -336,6 +483,10 @@ else
48668 # Create a safe temporary file.
48669 test -n "$mklog" && log_file=`$mklog`
48671 + # Before all invocations of the grub shell, call sync to make sure
48672 + # the raw device is in sync with any bufferring in filesystems.
48675 $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
48678 @@ -351,34 +502,60 @@ fi
48679 tmp=`sed -n '/^([fh]d[0-9]*)/s/\(^(.*)\).*/\1/p' $device_map \
48680 | sort | uniq -d | sed -n 1p`
48681 if test -n "$tmp"; then
48682 - echo "The drive $tmp is defined multiple times in the device map $device_map" 1>&2
48683 + echo "The drive $tmp is defined multiple times in the new device map." 1>&2
48684 + if test $recheck = yes; then
48685 + echo "Reverting to backed up copy." 1>&2
48686 + mv ${device_map}.backup $device_map
48691 +# Make sure device.map has at least one hd device
48692 +grep -q "^(hd[0-9]\+)" $device_map
48693 +if [ "x$?" != "x0" ]; then
48694 + echo "No suitable drive was found in the generated device map." 1>&2
48695 + if test $recheck = yes; then
48696 + echo "Reverting to backed up copy." 1>&2
48697 + mv ${device_map}.backup $device_map
48702 # Check for INSTALL_DEVICE.
48703 case "$install_device" in
48705 - install_device=`resolve_symlink "$install_device"`
48706 - install_drive=`convert "$install_device"`
48707 - # I don't know why, but some shells wouldn't die if exit is
48708 - # called in a function.
48709 - if test "x$install_drive" = x; then
48710 + install_device=`resolve_symlink "$install_device"` || exit 1
48711 + for install_drive in `find_real_devs $install_device` ; do
48712 + install_drive=`convert $install_drive` || exit 1
48713 + if is_raid1_device $install_device; then
48714 + install_drive=`echo $install_drive | sed 's/,[0-9]*)/)/'`
48716 + if [ "x$install_drive" = "x" ]; then
48719 + install_drives="${install_drives} ${install_drive}"
48721 + unset install_drive
48723 + if test "x$install_drives" = x ; then
48727 - install_drive="$install_device" ;;
48728 + install_drives="$install_device" ;;
48730 # The GRUB format with no parenthesis.
48731 - install_drive="($install_device)" ;;
48732 + install_drives="($install_device)" ;;
48734 echo "Format of install_device not recognized." 1>&2
48739 +unset install_device
48741 # Get the root drive.
48742 -root_device=`find_device ${rootdir}`
48743 -bootdir_device=`find_device ${bootdir}`
48744 +root_device=`find_device ${rootdir}` || exit 1
48745 +bootdir_device=`find_device ${bootdir}` || exit 1
48747 # Check if the boot directory is in the same device as the root directory.
48748 if test "x$root_device" != "x$bootdir_device"; then
48749 @@ -387,15 +564,8 @@ if test "x$root_device" != "x$bootdir_device"; then
48750 grub_prefix="/grub"
48753 -# Convert the root device to a GRUB drive.
48754 -root_drive=`convert "$root_device"`
48755 -if test "x$root_drive" = x; then
48759 -# Check if the root directory exists in the same device as the grub
48761 -grubdir_device=`find_device ${grubdir}`
48762 +# Check if the root directory exists in the same device as the grub directory.
48763 +grubdir_device=`find_device ${grubdir}` || exit 1
48765 if test "x$grubdir_device" != "x$root_device"; then
48766 # For now, cannot deal with this situation.
48767 @@ -406,61 +576,71 @@ EOF
48771 -# Copy the GRUB images to the GRUB directory.
48772 -for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
48773 - rm -f $file || exit 1
48776 - ${pkglibdir}/stage1 ${pkglibdir}/stage2 ${pkglibdir}/*stage1_5; do
48777 - cp -f $file ${grubdir} || exit 1
48780 -# Make a default file.
48781 -${grub_set_default} --root-directory=${rootdir} default
48783 # Make sure that GRUB reads the same images as the host OS.
48784 test -n "$mkimg" && img_file=`$mkimg`
48785 test -n "$mklog" && log_file=`$mklog`
48787 +# There's not a real root device, so just pick the first
48788 +if is_raid1_device $root_device ; then
48789 + root_device=`find_real_devs $root_device | awk '{print $1}'`
48792 +# Convert the root deviceto a GRUB drive.
48793 +root_drive=`convert "$root_device"` || exit 1
48794 +if [ "x$root_drive" = x ]; then
48798 for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
48800 tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"`
48801 while test $count -gt 0; do
48802 - $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
48803 -dump ${root_drive}${tmp} ${img_file}
48806 - if grep "Error [0-9]*: " $log_file >/dev/null; then
48808 - elif cmp $file $img_file >/dev/null; then
48812 - count=`expr $count - 1`
48813 + dump_boot_block $root_drive $img_file
48814 + if grep "Error [0-9]*: " $log_file >/dev/null; then
48817 + # Use sha1sum instead of cmp to avoid a dependency on diffutils.
48818 + sha1=`sha1sum $file | cut -d' ' -f 1`
48819 + sha2=`sha1sum $img_file | cut -d' ' -f 1`
48820 + if test -f $file -a -f $img_file -a "$sha1" = "$sha2"; then
48825 + count=`expr $count - 1`
48827 if test $count -eq 0; then
48828 - echo "The file $file not read correctly." 1>&2
48830 + echo "The file $file not read correctly." 1>&2
48838 +if ! test -e ${grubdir}/grub.conf ; then
48839 + test -e ${grubdir}/menu.lst && ln -s ./menu.lst ${grubdir}/grub.conf
48842 # Create a safe temporary file.
48843 test -n "$mklog" && log_file=`$mklog`
48845 -# Now perform the installation.
48846 -$grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
48848 -setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $install_drive
48851 +for install_drive in $install_drives; do
48852 + # Convert the root deviceto a GRUB drive.
48853 + root_drive=`convert "$root_device"` || exit 1
48854 + if [ "x$root_drive" = x ]; then
48857 + install_boot_block $root_drive $install_drive
48860 -if grep "Error [0-9]*: " $log_file >/dev/null || test $debug = yes; then
48861 +if grep "Error [0-9]*: " $log_file >/dev/null ; then
48865 +if test $debug = yes; then
48866 + cat $log_file 1>&2