]> git.pld-linux.org Git - packages/grub.git/commitdiff
- outdated.
authorkloczek <kloczek@pld-linux.org>
Sat, 26 Jan 2002 09:31:30 +0000 (09:31 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    grub-altconfigfile.patch -> 1.4
    grub-dont-give-mem-to-kernel.patch -> 1.2
    grub-jfs+xfs-1.0-build.patch -> 1.2
    grub-jfs+xfs-1.0-core.patch -> 1.2

grub-altconfigfile.patch [deleted file]
grub-dont-give-mem-to-kernel.patch [deleted file]
grub-jfs+xfs-1.0-build.patch [deleted file]
grub-jfs+xfs-1.0-core.patch [deleted file]

diff --git a/grub-altconfigfile.patch b/grub-altconfigfile.patch
deleted file mode 100644 (file)
index d4f9982..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-diff -u -r grub-0.5.94.old/stage2/builtins.c grub-0.5.94/stage2/builtins.c
---- grub-0.5.94.old/stage2/builtins.c  Fri May 19 12:08:08 2000
-+++ grub-0.5.94/stage2/builtins.c      Fri May 19 12:24:48 2000
-@@ -37,6 +37,9 @@
- static int bootdev;
- /* True when the debug mode is turned on, and false when it is turned off.  */
- int debug = 0;
-+/* Alternate config file */
-+char altconfig_file[256] = { '\0' };
-+static int altconfigfile_clear(void);
- /* The default entry.  */
- int default_entry = 0;
- /* The fallback entry.  */
-@@ -84,4 +87,5 @@
- void
- init_config_end (void)
- {
-+  altconfigfile_clear();
- }
-@@ -101,6 +105,49 @@
- }
\f
-+/* altconfigfile */
-+static int
-+altconfigfile_clear (void)
-+{
-+  int len, sector;
-+  char tmp[SECTOR_SIZE];
-+
-+  static void disk_read_savesect_func (int s) { sector = s; }
-+
-+  if (altconfig_file[0] == 0) return 0;
-+  if (grub_open (altconfig_file) == 0) return 1;
-+
-+  disk_read_hook = disk_read_savesect_func;
-+  while ((len = grub_read (tmp, SECTOR_SIZE))) 
-+    {
-+#define RETURN { printf("failed line %d\n", __LINE__); for(len = 0; len < 90000000; len++); return 1; }
-+      if (biosdisk (BIOSDISK_READ,  current_drive, &buf_geom, sector, 1, SCRATCHSEG)) RETURN;
-+      if (memcmp((char *) SCRATCHADDR, tmp, len) != 0) RETURN;
-+      memset((char *) SCRATCHADDR, ' ', len);
-+      if (biosdisk (BIOSDISK_WRITE, current_drive, &buf_geom, sector, 1, SCRATCHSEG)) RETURN;
-+    }
-+  disk_read_hook = NULL;
-+  grub_close ();
-+  return 0;
-+}
-+
-+static int
-+altconfigfile_func (char *arg, int flags)
-+{
-+  strcpy(altconfig_file, arg);
-+  return 0;
-+}
-+
-+static struct builtin builtin_altconfigfile =
-+{
-+  "altconfigfile",
-+  altconfigfile_func,
-+  BUILTIN_CMDLINE | BUILTIN_MENU,
-+  "altconfigfile FILE",
-+  "Load FILE as the configuration file."
-+};
-+
-+\f
- /* blocklist */
- static int
- blocklist_func (char *arg, int flags)
-@@ -3032,6 +3079,7 @@
- /* The table of builtin commands. Sorted in dictionary order.  */
- struct builtin *builtin_table[] =
- {
-+  &builtin_altconfigfile,
-   &builtin_blocklist,
-   &builtin_boot,
-   &builtin_bootp,
-diff -u -r grub-0.5.94.old/stage2/char_io.c grub-0.5.94/stage2/char_io.c
---- grub-0.5.94.old/stage2/char_io.c   Fri May 19 12:08:08 2000
-+++ grub-0.5.94/stage2/char_io.c       Fri May 19 12:57:14 2000
-@@ -885,7 +885,6 @@
-    return errnum ? NULL : to;
- }
--#ifndef STAGE1_5
- void *
- grub_memset (void *start, int c, int len)
- {
-@@ -900,6 +899,7 @@
-   return errnum ? NULL : start;
- }
-+#ifndef STAGE1_5
- char *
- grub_strcpy (char *dest, const char *src)
- {
-diff -u -r grub-0.5.94.old/stage2/shared.h grub-0.5.94/stage2/shared.h
---- grub-0.5.94.old/stage2/shared.h    Fri May 19 12:08:08 2000
-+++ grub-0.5.94/stage2/shared.h        Fri May 19 12:57:08 2000
-@@ -553,6 +553,9 @@
- /* Track the int13 handler to probe I/O address space.  */
- void track_int13 (int drive);
-+/* Alternate config file */
-+extern char altconfig_file[];
-+
- /* The key map.  */
- extern char keytable_transl[];
- extern unsigned short bios_key_map[];
-diff -u -r grub-0.5.94.old/stage2/stage2.c grub-0.5.94/stage2/stage2.c
---- grub-0.5.94.old/stage2/stage2.c    Fri May 19 12:08:08 2000
-+++ grub-0.5.94/stage2/stage2.c        Fri May 19 22:37:33 2000
-@@ -718,6 +718,33 @@
-         grub_close ();
-       }
-+      if (altconfig_file[0] && grub_open (altconfig_file))
-+      {
-+        char *cmdline;
-+
-+        cmdline = (char *) CMDLINE_BUF;
-+        while (get_line_from_config (cmdline, NEW_HEAPSIZE, !is_preset))
-+          {
-+            struct builtin *builtin;
-+
-+            /* Get the pointer to the builtin structure.  */
-+            builtin = find_command (cmdline);
-+            errnum = 0;
-+            if (! builtin)
-+              /* Unknown command. Just skip now.  */
-+              continue;
-+
-+            /* Run a command found is possible.  */
-+            if (builtin->flags & BUILTIN_MENU)
-+              {
-+                char *arg = skip_to (1, cmdline);
-+                (builtin->func) (arg, BUILTIN_MENU);
-+                errnum = 0;
-+              }
-+          }
-+        grub_close ();
-+      }
-+
-       init_config_end ();
-       if (! num_entries)
diff --git a/grub-dont-give-mem-to-kernel.patch b/grub-dont-give-mem-to-kernel.patch
deleted file mode 100644 (file)
index 7cb2c59..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-Idea from the grub package in Mandrake:
-
-don't add ``mem='' for 2.4 kernels :
-
-Newer machines have several regions of reserved memory outside and
-inside these regions.  grub's actions are suicide on newer laptops,
-and machines like servers with lots of memory.  Laptops have special
-sections of memory above 1MB which must be reserved... Ditto for
-ACPI tables.  Using mem=XXX completely eliminates any information
-that the BIOS has provided to the OS.
-
-diff -ur grub-0.5.96.1.orig/stage2/builtins.c grub-0.5.96.1/stage2/builtins.c
---- grub-0.5.96.1.orig/stage2/builtins.c       Thu Oct 19 21:50:00 2000
-+++ grub-0.5.96.1/stage2/builtins.c    Wed Mar 21 00:37:51 2001
-@@ -2118,6 +2118,11 @@
-   kernel_t suggested_type = KERNEL_TYPE_NONE;
-   unsigned long load_flags = 0;
-+  /*
-+   * Don't pass a Linux's mem option automatically.
-+   * If the kernel is another type, this flag has no effect.
-+   */
-+  load_flags |= KERNEL_LOAD_NO_MEM_OPTION;
-   /* Deal with GNU-style long options.  */
-   while (1)
-     {
-@@ -2147,9 +2152,12 @@
-             return 1;
-           }
-       }
--      /* If the `--no-mem-option' is specified, don't pass a Linux's mem
--       option automatically. If the kernel is another type, this flag
--       has no effect.  */
-+      /* If the `--mem-option' is specified, pass a Linux's mem option.
-+        If the `--no-mem-option' is specified, don't pass a Linux's mem
-+       option automatically. If the kernel is another type, this flags
-+       have no effect.  */
-+      else if (grub_memcmp (arg, "--mem-option", 12) == 0)
-+      load_flags &= ~KERNEL_LOAD_NO_MEM_OPTION;
-       else if (grub_memcmp (arg, "--no-mem-option", 15) == 0)
-       load_flags |= KERNEL_LOAD_NO_MEM_OPTION;
-       else
-@@ -2184,14 +2192,15 @@
-   "kernel",
-   kernel_func,
-   BUILTIN_CMDLINE,
--  "kernel [--no-mem-option] [--type=TYPE] FILE [ARG ...]",
-+  "kernel [--mem-option] [--no-mem-option] [--type=TYPE] FILE [ARG ...]",
-   "Attempt to load the primary boot image from FILE. The rest of the"
-   "line is passed verbatim as the \"kernel command line\".  Any modules"
-   " must be reloaded after using this command. The option --type is used"
-   " to suggest what type of kernel to be loaded. TYPE must be either of"
-   " \"netbsd\", \"freebsd\", \"openbsd\", \"linux\", \"biglinux\" and"
--  " \"multiboot\". The option --no-mem-option tells GRUB not to pass a"
--  " Linux's mem option automatically."
-+  " \"multiboot\". The oprion --mem-option tells Grub to pass a Linux's"
-+  " mem option automatically.  The option --no-mem-option tells GRUB"
-+  " not to pass a Linux's mem option automatically (default)."
- };
\f
diff --git a/grub-jfs+xfs-1.0-build.patch b/grub-jfs+xfs-1.0-build.patch
deleted file mode 100644 (file)
index 8c4b2c8..0000000
+++ /dev/null
@@ -1,1454 +0,0 @@
-diff -urN --exclude-from=xlist-build grub-0.90/configure grub-0.90.jfs+xfs/configure
---- grub-0.90/configure        Fri Jul  6 21:56:44 2001
-+++ grub-0.90.jfs+xfs/configure        Thu Aug 23 18:21:27 2001
-@@ -32,6 +32,10 @@
- ac_help="$ac_help
-   --disable-reiserfs      disable ReiserFS support in Stage 2"
- ac_help="$ac_help
-+  --disable-jfs           disable IBM JFS support in Stage 2"
-+ac_help="$ac_help
-+  --disable-xfs           disable SGI XFS support in Stage 2"
-+ac_help="$ac_help
-   --disable-vstafs        disable VSTa FS support in Stage 2"
- ac_help="$ac_help
-   --disable-gunzip        disable decompression in Stage 2"
-@@ -675,7 +679,7 @@
- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
- # ./install, which can be erroneously created by make from ./install.sh.
- echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
--echo "configure:679: checking for a BSD compatible install" >&5
-+echo "configure:683: checking for a BSD compatible install" >&5
- if test -z "$INSTALL"; then
- if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
-@@ -728,7 +732,7 @@
- test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
- echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
--echo "configure:732: checking whether build environment is sane" >&5
-+echo "configure:736: checking whether build environment is sane" >&5
- # Just in case
- sleep 1
- echo timestamp > conftest.file
-@@ -800,7 +804,7 @@
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
- echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:804: checking for $ac_word" >&5
-+echo "configure:808: checking for $ac_word" >&5
- if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -830,7 +834,7 @@
- done
- echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
--echo "configure:834: checking whether ${MAKE-make} sets \${MAKE}" >&5
-+echo "configure:838: checking whether ${MAKE-make} sets \${MAKE}" >&5
- set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
- if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
-@@ -960,7 +964,7 @@
- fi
- echo $ac_n "checking host system type""... $ac_c" 1>&6
--echo "configure:964: checking host system type" >&5
-+echo "configure:968: checking host system type" >&5
- host_alias=$host
- case "$host_alias" in
-@@ -994,7 +998,7 @@
- #
- echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
--echo "configure:998: checking whether to enable maintainer-specific portions of Makefiles" >&5
-+echo "configure:1002: checking whether to enable maintainer-specific portions of Makefiles" >&5
-     # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
- if test "${enable_maintainer_mode+set}" = set; then
-   enableval="$enable_maintainer_mode"
-@@ -1020,7 +1024,7 @@
-   # Extract the first word of "perl", so it can be a program name with args.
- set dummy perl; ac_word=$2
- echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:1024: checking for $ac_word" >&5
-+echo "configure:1028: checking for $ac_word" >&5
- if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -1067,7 +1071,7 @@
- #
- echo $ac_n "checking build system type""... $ac_c" 1>&6
--echo "configure:1071: checking build system type" >&5
-+echo "configure:1075: checking build system type" >&5
- build_alias=$build
- case "$build_alias" in
-@@ -1093,7 +1097,7 @@
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
- set dummy ${ac_tool_prefix}gcc; ac_word=$2
- echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:1097: checking for $ac_word" >&5
-+echo "configure:1101: checking for $ac_word" >&5
- if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -1125,7 +1129,7 @@
- # Extract the first word of "gcc", so it can be a program name with args.
- set dummy gcc; ac_word=$2
- echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:1129: checking for $ac_word" >&5
-+echo "configure:1133: checking for $ac_word" >&5
- if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -1155,7 +1159,7 @@
-   # Extract the first word of "cc", so it can be a program name with args.
- set dummy cc; ac_word=$2
- echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:1159: checking for $ac_word" >&5
-+echo "configure:1163: checking for $ac_word" >&5
- if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -1206,7 +1210,7 @@
-       # Extract the first word of "cl", so it can be a program name with args.
- set dummy cl; ac_word=$2
- echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:1210: checking for $ac_word" >&5
-+echo "configure:1214: checking for $ac_word" >&5
- if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -1238,7 +1242,7 @@
- fi
- echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
--echo "configure:1242: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
-+echo "configure:1246: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
- ac_ext=c
- # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-@@ -1249,12 +1253,12 @@
- cat > conftest.$ac_ext << EOF
--#line 1253 "configure"
-+#line 1257 "configure"
- #include "confdefs.h"
- main(){return(0);}
- EOF
--if { (eval echo configure:1258: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:1262: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-   ac_cv_prog_cc_works=yes
-   # If we can't run a trivial program, we are probably using a cross compiler.
-   if (./conftest; exit) 2>/dev/null; then
-@@ -1280,12 +1284,12 @@
-   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
- fi
- echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
--echo "configure:1284: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
-+echo "configure:1288: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
- echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
- cross_compiling=$ac_cv_prog_cc_cross
- echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
--echo "configure:1289: checking whether we are using GNU C" >&5
-+echo "configure:1293: checking whether we are using GNU C" >&5
- if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -1294,7 +1298,7 @@
-   yes;
- #endif
- EOF
--if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1298: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
-+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1302: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
-   ac_cv_prog_gcc=yes
- else
-   ac_cv_prog_gcc=no
-@@ -1313,7 +1317,7 @@
- ac_save_CFLAGS="$CFLAGS"
- CFLAGS=
- echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
--echo "configure:1317: checking whether ${CC-cc} accepts -g" >&5
-+echo "configure:1321: checking whether ${CC-cc} accepts -g" >&5
- if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -1346,7 +1350,7 @@
- echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
--echo "configure:1350: checking how to run the C preprocessor" >&5
-+echo "configure:1354: checking how to run the C preprocessor" >&5
- # On Suns, sometimes $CPP names a directory.
- if test -n "$CPP" && test -d "$CPP"; then
-   CPP=
-@@ -1361,13 +1365,13 @@
-   # On the NeXT, cc -E runs the code through the compiler's parser,
-   # not just through cpp.
-   cat > conftest.$ac_ext <<EOF
--#line 1365 "configure"
-+#line 1369 "configure"
- #include "confdefs.h"
- #include <assert.h>
- Syntax Error
- EOF
- ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
--{ (eval echo configure:1371: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+{ (eval echo configure:1375: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
- ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
- if test -z "$ac_err"; then
-   :
-@@ -1378,13 +1382,13 @@
-   rm -rf conftest*
-   CPP="${CC-cc} -E -traditional-cpp"
-   cat > conftest.$ac_ext <<EOF
--#line 1382 "configure"
-+#line 1386 "configure"
- #include "confdefs.h"
- #include <assert.h>
- Syntax Error
- EOF
- ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
--{ (eval echo configure:1388: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+{ (eval echo configure:1392: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
- ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
- if test -z "$ac_err"; then
-   :
-@@ -1395,13 +1399,13 @@
-   rm -rf conftest*
-   CPP="${CC-cc} -nologo -E"
-   cat > conftest.$ac_ext <<EOF
--#line 1399 "configure"
-+#line 1403 "configure"
- #include "confdefs.h"
- #include <assert.h>
- Syntax Error
- EOF
- ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
--{ (eval echo configure:1405: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+{ (eval echo configure:1409: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
- ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
- if test -z "$ac_err"; then
-   :
-@@ -1432,7 +1436,7 @@
- END
- # If we don't find an include directive, just comment out the code.
- echo $ac_n "checking for style of include used by $am_make""... $ac_c" 1>&6
--echo "configure:1436: checking for style of include used by $am_make" >&5
-+echo "configure:1440: checking for style of include used by $am_make" >&5
- _am_include='#'
- _am_quote=
- _am_result=none
-@@ -1471,7 +1475,7 @@
- echo $ac_n "checking dependency style of $depcc""... $ac_c" 1>&6
--echo "configure:1475: checking dependency style of $depcc" >&5
-+echo "configure:1479: checking dependency style of $depcc" >&5
- if eval "test \"`echo '$''{'am_cv_CC_dependencies_compiler_type'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -1550,7 +1554,7 @@
-   # Extract the first word of "ranlib", so it can be a program name with args.
- set dummy ranlib; ac_word=$2
- echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:1554: checking for $ac_word" >&5
-+echo "configure:1558: checking for $ac_word" >&5
- if eval "test \"`echo '$''{'ac_cv_path_RANLIB'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -1587,7 +1591,7 @@
-   # Extract the first word of "ranlib", so it can be a program name with args.
- set dummy ranlib; ac_word=$2
- echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:1591: checking for $ac_word" >&5
-+echo "configure:1595: checking for $ac_word" >&5
- if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -1627,7 +1631,7 @@
-     STAGE1_CFLAGS="-O2"
-     GRUB_CFLAGS="-O2"
-     echo $ac_n "checking whether optimization for size works""... $ac_c" 1>&6
--echo "configure:1631: checking whether optimization for size works" >&5
-+echo "configure:1635: checking whether optimization for size works" >&5
- if eval "test \"`echo '$''{'size_flag'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -1635,14 +1639,14 @@
-       saved_CFLAGS=$CFLAGS
-       CFLAGS="-Os -g"
-       cat > conftest.$ac_ext <<EOF
--#line 1639 "configure"
-+#line 1643 "configure"
- #include "confdefs.h"
- int main() {
- ; return 0; }
- EOF
--if { (eval echo configure:1646: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:1650: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-   rm -rf conftest*
-   size_flag=yes
- else
-@@ -1674,7 +1678,7 @@
- CPPFLAGS="$CPPFLAGS -Wpointer-arith"
- echo $ac_n "checking whether -Wundef works""... $ac_c" 1>&6
--echo "configure:1678: checking whether -Wundef works" >&5
-+echo "configure:1682: checking whether -Wundef works" >&5
- if eval "test \"`echo '$''{'undef_flag'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -1682,14 +1686,14 @@
-   saved_CPPFLAGS=$CPPFLAGS
-   CPPFLAGS="-Wundef"
-   cat > conftest.$ac_ext <<EOF
--#line 1686 "configure"
-+#line 1690 "configure"
- #include "confdefs.h"
- int main() {
- ; return 0; }
- EOF
--if { (eval echo configure:1693: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:1697: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-   rm -rf conftest*
-   undef_flag=yes
- else
-@@ -1716,7 +1720,7 @@
-   # Extract the first word of "objcopy", so it can be a program name with args.
- set dummy objcopy; ac_word=$2
- echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:1720: checking for $ac_word" >&5
-+echo "configure:1724: checking for $ac_word" >&5
- if eval "test \"`echo '$''{'ac_cv_path_OBJCOPY'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -1752,7 +1756,7 @@
-   # Extract the first word of "${ac_tool_prefix}objcopy", so it can be a program name with args.
- set dummy ${ac_tool_prefix}objcopy; ac_word=$2
- echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:1756: checking for $ac_word" >&5
-+echo "configure:1760: checking for $ac_word" >&5
- if eval "test \"`echo '$''{'ac_cv_prog_OBJCOPY'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -1786,7 +1790,7 @@
- # Defined in acinclude.m4.
- echo $ac_n "checking if C symbols get an underscore after compilation""... $ac_c" 1>&6
--echo "configure:1790: checking if C symbols get an underscore after compilation" >&5
-+echo "configure:1794: checking if C symbols get an underscore after compilation" >&5
- if eval "test \"`echo '$''{'grub_cv_asm_uscore'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -1799,7 +1803,7 @@
- }
- EOF
--if { ac_try='${CC-cc} ${CFLAGS} -S conftest.c'; { (eval echo configure:1803: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.s; then
-+if { ac_try='${CC-cc} ${CFLAGS} -S conftest.c'; { (eval echo configure:1807: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.s; then
-   true
- else
-   { echo "configure: error: ${CC-cc} failed to produce assembly code" 1>&2; exit 1; }
-@@ -1825,7 +1829,7 @@
- echo "$ac_t""$grub_cv_asm_uscore" 1>&6
- echo $ac_n "checking whether ${OBJCOPY} works for absolute addresses""... $ac_c" 1>&6
--echo "configure:1829: checking whether ${OBJCOPY} works for absolute addresses" >&5
-+echo "configure:1833: checking whether ${OBJCOPY} works for absolute addresses" >&5
- if eval "test \"`echo '$''{'grub_cv_prog_objcopy_absolute'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -1837,21 +1841,21 @@
- }
- EOF
--if { (eval echo configure:1841: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then :
-+if { (eval echo configure:1845: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.o; then :
- else
-   { echo "configure: error: ${CC-cc} cannot compile C source code" 1>&2; exit 1; }
- fi
- grub_cv_prog_objcopy_absolute=yes
- for link_addr in 2000 8000 7C00; do
--  if { ac_try='${CC-cc} ${CFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr conftest.o -o conftest.exec'; { (eval echo configure:1847: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then :
-+  if { ac_try='${CC-cc} ${CFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr conftest.o -o conftest.exec'; { (eval echo configure:1851: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then :
-   else
-     { echo "configure: error: ${CC-cc} cannot link at address $link_addr" 1>&2; exit 1; }
-   fi
--  if { ac_try='${OBJCOPY-objcopy} -O binary conftest.exec conftest'; { (eval echo configure:1851: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then :
-+  if { ac_try='${OBJCOPY-objcopy} -O binary conftest.exec conftest'; { (eval echo configure:1855: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then :
-   else
-     { echo "configure: error: ${OBJCOPY-objcopy} cannot create binary files" 1>&2; exit 1; }
-   fi
--  if test ! -f conftest.old || { ac_try='cmp -s conftest.old conftest'; { (eval echo configure:1855: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
-+  if test ! -f conftest.old || { ac_try='cmp -s conftest.old conftest'; { (eval echo configure:1859: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
-     mv -f conftest conftest.old
-   else
-     grub_cv_prog_objcopy_absolute=no
-@@ -1868,7 +1872,7 @@
- echo $ac_n "checking whether addr32 must be in the same line as the instruction""... $ac_c" 1>&6
--echo "configure:1872: checking whether addr32 must be in the same line as the instruction" >&5
-+echo "configure:1876: checking whether addr32 must be in the same line as the instruction" >&5
- if eval "test \"`echo '$''{'grub_cv_asm_prefix_requirement'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -1877,7 +1881,7 @@
- l1:   addr32  movb    %al, l1
- EOF
--if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'; { (eval echo configure:1881: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.o; then
-+if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'; { (eval echo configure:1885: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.o; then
-   grub_cv_asm_prefix_requirement=yes
- else
-   grub_cv_asm_prefix_requirement=no
-@@ -1909,7 +1913,7 @@
- echo $ac_n "checking for .code16 addr32 assembler support""... $ac_c" 1>&6
--echo "configure:1913: checking for .code16 addr32 assembler support" >&5
-+echo "configure:1917: checking for .code16 addr32 assembler support" >&5
- if eval "test \"`echo '$''{'grub_cv_asm_addr32'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -1924,7 +1928,7 @@
-   sed -e s/@ADDR32@/addr32\;/ < conftest.s.in > conftest.s
- fi
--if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'; { (eval echo configure:1928: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.o; then
-+if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'; { (eval echo configure:1932: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.o; then
-   grub_cv_asm_addr32=yes
- else
-   grub_cv_asm_addr32=no
-@@ -1941,7 +1945,7 @@
- echo $ac_n "checking whether an absolute indirect call/jump must not be prefixed with an asterisk""... $ac_c" 1>&6
--echo "configure:1945: checking whether an absolute indirect call/jump must not be prefixed with an asterisk" >&5
-+echo "configure:1949: checking whether an absolute indirect call/jump must not be prefixed with an asterisk" >&5
- if eval "test \"`echo '$''{'grub_cv_asm_absolute_without_asterisk'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -1952,7 +1956,7 @@
-       .word   0
- EOF
--if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'; { (eval echo configure:1956: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.o; then
-+if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'; { (eval echo configure:1960: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.o; then
-   grub_cv_asm_absolute_without_asterisk=no
- else
-   grub_cv_asm_absolute_without_asterisk=yes
-@@ -1973,19 +1977,19 @@
- echo $ac_n "checking if start is defined by the compiler""... $ac_c" 1>&6
--echo "configure:1977: checking if start is defined by the compiler" >&5
-+echo "configure:1981: checking if start is defined by the compiler" >&5
- if eval "test \"`echo '$''{'grub_cv_check_start_symbol'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-   cat > conftest.$ac_ext <<EOF
--#line 1982 "configure"
-+#line 1986 "configure"
- #include "confdefs.h"
- int main() {
- asm ("incl start")
- ; return 0; }
- EOF
--if { (eval echo configure:1989: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:1993: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-   rm -rf conftest*
-   grub_cv_check_start_symbol=yes
- else
-@@ -2009,19 +2013,19 @@
- echo $ac_n "checking if _start is defined by the compiler""... $ac_c" 1>&6
--echo "configure:2013: checking if _start is defined by the compiler" >&5
-+echo "configure:2017: checking if _start is defined by the compiler" >&5
- if eval "test \"`echo '$''{'grub_cv_check_uscore_start_symbol'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-   cat > conftest.$ac_ext <<EOF
--#line 2018 "configure"
-+#line 2022 "configure"
- #include "confdefs.h"
- int main() {
- asm ("incl _start")
- ; return 0; }
- EOF
--if { (eval echo configure:2025: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:2029: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-   rm -rf conftest*
-   grub_cv_check_uscore_start_symbol=yes
- else
-@@ -2050,19 +2054,19 @@
- echo $ac_n "checking if __bss_start is defined by the compiler""... $ac_c" 1>&6
--echo "configure:2054: checking if __bss_start is defined by the compiler" >&5
-+echo "configure:2058: checking if __bss_start is defined by the compiler" >&5
- if eval "test \"`echo '$''{'grub_cv_check_uscore_uscore_bss_start_symbol'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-   cat > conftest.$ac_ext <<EOF
--#line 2059 "configure"
-+#line 2063 "configure"
- #include "confdefs.h"
- int main() {
- asm ("incl __bss_start")
- ; return 0; }
- EOF
--if { (eval echo configure:2066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:2070: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-   rm -rf conftest*
-   grub_cv_check_uscore_uscore_bss_start_symbol=yes
- else
-@@ -2086,19 +2090,19 @@
- echo $ac_n "checking if _edata is defined by the compiler""... $ac_c" 1>&6
--echo "configure:2090: checking if _edata is defined by the compiler" >&5
-+echo "configure:2094: checking if _edata is defined by the compiler" >&5
- if eval "test \"`echo '$''{'grub_cv_check_uscore_edata_symbol'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-   cat > conftest.$ac_ext <<EOF
--#line 2095 "configure"
-+#line 2099 "configure"
- #include "confdefs.h"
- int main() {
- asm ("incl _edata")
- ; return 0; }
- EOF
--if { (eval echo configure:2102: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:2106: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-   rm -rf conftest*
-   grub_cv_check_uscore_edata_symbol=yes
- else
-@@ -2122,19 +2126,19 @@
- echo $ac_n "checking if edata is defined by the compiler""... $ac_c" 1>&6
--echo "configure:2126: checking if edata is defined by the compiler" >&5
-+echo "configure:2130: checking if edata is defined by the compiler" >&5
- if eval "test \"`echo '$''{'grub_cv_check_edata_symbol'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-   cat > conftest.$ac_ext <<EOF
--#line 2131 "configure"
-+#line 2135 "configure"
- #include "confdefs.h"
- int main() {
- asm ("incl edata")
- ; return 0; }
- EOF
--if { (eval echo configure:2138: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:2142: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-   rm -rf conftest*
-   grub_cv_check_edata_symbol=yes
- else
-@@ -2164,19 +2168,19 @@
- echo $ac_n "checking if end is defined by the compiler""... $ac_c" 1>&6
--echo "configure:2168: checking if end is defined by the compiler" >&5
-+echo "configure:2172: checking if end is defined by the compiler" >&5
- if eval "test \"`echo '$''{'grub_cv_check_end_symbol'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-   cat > conftest.$ac_ext <<EOF
--#line 2173 "configure"
-+#line 2177 "configure"
- #include "confdefs.h"
- int main() {
- asm ("incl end")
- ; return 0; }
- EOF
--if { (eval echo configure:2180: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:2184: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-   rm -rf conftest*
-   grub_cv_check_end_symbol=yes
- else
-@@ -2200,19 +2204,19 @@
- echo $ac_n "checking if _end is defined by the compiler""... $ac_c" 1>&6
--echo "configure:2204: checking if _end is defined by the compiler" >&5
-+echo "configure:2208: checking if _end is defined by the compiler" >&5
- if eval "test \"`echo '$''{'grub_cv_check_uscore_end_symbol'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-   cat > conftest.$ac_ext <<EOF
--#line 2209 "configure"
-+#line 2213 "configure"
- #include "confdefs.h"
- int main() {
- asm ("incl _end")
- ; return 0; }
- EOF
--if { (eval echo configure:2216: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:2220: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-   rm -rf conftest*
-   grub_cv_check_uscore_end_symbol=yes
- else
-@@ -2250,7 +2254,7 @@
- # Get the filename or the whole disk and open it.
- # Known to work on NetBSD.
- echo $ac_n "checking for opendisk in -lutil""... $ac_c" 1>&6
--echo "configure:2254: checking for opendisk in -lutil" >&5
-+echo "configure:2258: checking for opendisk in -lutil" >&5
- ac_lib_var=`echo util'_'opendisk | sed 'y%./+-%__p_%'`
- if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
-@@ -2258,7 +2262,7 @@
-   ac_save_LIBS="$LIBS"
- LIBS="-lutil  $LIBS"
- cat > conftest.$ac_ext <<EOF
--#line 2262 "configure"
-+#line 2266 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error.  */
- /* We use char because int might match the return type of a gcc2
-@@ -2269,7 +2273,7 @@
- opendisk()
- ; return 0; }
- EOF
--if { (eval echo configure:2273: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:2277: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-   rm -rf conftest*
-   eval "ac_cv_lib_$ac_lib_var=yes"
- else
-@@ -2297,7 +2301,7 @@
- # Unless the user specify --without-curses, check for curses.
- if test "x$with_curses" != "xno"; then
-   echo $ac_n "checking for wgetch in -lncurses""... $ac_c" 1>&6
--echo "configure:2301: checking for wgetch in -lncurses" >&5
-+echo "configure:2305: checking for wgetch in -lncurses" >&5
- ac_lib_var=`echo ncurses'_'wgetch | sed 'y%./+-%__p_%'`
- if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
-@@ -2305,7 +2309,7 @@
-   ac_save_LIBS="$LIBS"
- LIBS="-lncurses  $LIBS"
- cat > conftest.$ac_ext <<EOF
--#line 2309 "configure"
-+#line 2313 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error.  */
- /* We use char because int might match the return type of a gcc2
-@@ -2316,7 +2320,7 @@
- wgetch()
- ; return 0; }
- EOF
--if { (eval echo configure:2320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:2324: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-   rm -rf conftest*
-   eval "ac_cv_lib_$ac_lib_var=yes"
- else
-@@ -2339,7 +2343,7 @@
- else
-   echo "$ac_t""no" 1>&6
- echo $ac_n "checking for wgetch in -lcurses""... $ac_c" 1>&6
--echo "configure:2343: checking for wgetch in -lcurses" >&5
-+echo "configure:2347: checking for wgetch in -lcurses" >&5
- ac_lib_var=`echo curses'_'wgetch | sed 'y%./+-%__p_%'`
- if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
-@@ -2347,7 +2351,7 @@
-   ac_save_LIBS="$LIBS"
- LIBS="-lcurses  $LIBS"
- cat > conftest.$ac_ext <<EOF
--#line 2351 "configure"
-+#line 2355 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error.  */
- /* We use char because int might match the return type of a gcc2
-@@ -2358,7 +2362,7 @@
- wgetch()
- ; return 0; }
- EOF
--if { (eval echo configure:2362: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:2366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-   rm -rf conftest*
-   eval "ac_cv_lib_$ac_lib_var=yes"
- else
-@@ -2393,17 +2397,17 @@
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:2397: checking for $ac_hdr" >&5
-+echo "configure:2401: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-   echo $ac_n "(cached) $ac_c" 1>&6
- else
-   cat > conftest.$ac_ext <<EOF
--#line 2402 "configure"
-+#line 2406 "configure"
- #include "confdefs.h"
- #include <$ac_hdr>
- EOF
- ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
--{ (eval echo configure:2407: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+{ (eval echo configure:2411: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
- ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
- if test -z "$ac_err"; then
-   rm -rf conftest*
-@@ -2488,6 +2492,28 @@
-   FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_REISERFS=1"
- fi
-+# Check whether --enable-jfs or --disable-jfs was given.
-+if test "${enable_jfs+set}" = set; then
-+  enableval="$enable_jfs"
-+  :
-+fi
-+
-+
-+if test x"$enable_jfs" != xno; then
-+  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_JFS=1"
-+fi
-+
-+# Check whether --enable-xfs or --disable-xfs was given.
-+if test "${enable_xfs+set}" = set; then
-+  enableval="$enable_xfs"
-+  :
-+fi
-+
-+
-+if test x"$enable_xfs" != xno; then
-+  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_XFS=1"
-+fi
-+
- # Check whether --enable-vstafs or --disable-vstafs was given.
- if test "${enable_vstafs+set}" = set; then
-   enableval="$enable_vstafs"
-@@ -3039,7 +3065,7 @@
- }
- EOF
--if { ac_try='${CC-cc} ${CFLAGS} conftest.c -o conftest'; { (eval echo configure:3043: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest; then
-+if { ac_try='${CC-cc} ${CFLAGS} conftest.c -o conftest'; { (eval echo configure:3069: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest; then
-   grub_tmp_value=`./conftest < "$enable_preset_menu"`
- else
-   { echo "configure: error: ${CC-cc} failed to produce an executable file" 1>&2; exit 1; }
-diff -urN --exclude-from=xlist-build grub-0.90/docs/Makefile.in grub-0.90.jfs+xfs/docs/Makefile.in
---- grub-0.90/docs/Makefile.in Thu Jul  5 15:29:56 2001
-+++ grub-0.90.jfs+xfs/docs/Makefile.in Thu Aug 23 18:21:23 2001
-@@ -284,11 +284,11 @@
-       done
- mostlyclean-aminfo:
--      -rm -f grub.aux grub.cp grub.cps grub.dvi grub.fn grub.ky grub.log grub.pg \
--        grub.ps grub.toc grub.tp grub.vr multiboot.aux multiboot.cp \
--        multiboot.cps multiboot.dvi multiboot.fn multiboot.ky \
--        multiboot.log multiboot.pg multiboot.ps multiboot.toc \
--        multiboot.tp multiboot.vr
-+      -rm -f grub.aux grub.cp grub.dvi grub.fn grub.ky grub.log grub.pg grub.ps \
-+        grub.toc grub.tp grub.vr multiboot.aux multiboot.cp \
-+        multiboot.dvi multiboot.fn multiboot.ky multiboot.log \
-+        multiboot.pg multiboot.ps multiboot.toc multiboot.tp \
-+        multiboot.vr
- maintainer-clean-aminfo:
-       cd $(srcdir) && \
-diff -urN --exclude-from=xlist-build grub-0.90/stage2/Makefile.in grub-0.90.jfs+xfs/stage2/Makefile.in
---- grub-0.90/stage2/Makefile.in       Wed Jul  4 11:33:48 2001
-+++ grub-0.90.jfs+xfs/stage2/Makefile.in       Thu Aug 23 18:21:23 2001
-@@ -93,7 +93,7 @@
- # For dist target.
- noinst_HEADERS = apic.h defs.h dir.h disk_inode.h disk_inode_ffs.h \
--        fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
-+        fat.h jfs.h xfs.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
-       imgact_aout.h mb_header.h mb_info.h md5.h pc_slice.h serial.h \
-       shared.h smp-imps.h nbi.h vstafs.h
-@@ -106,32 +106,37 @@
- noinst_LIBRARIES = libgrub.a
- libgrub_a_SOURCES = boot.c builtins.c common.c char_io.c cmdline.c \
-       disk_io.c gunzip.c fsys_ffs.c fsys_ext2fs.c fsys_fat.c \
--      fsys_minix.c fsys_reiserfs.c  fsys_vstafs.c stage2.c md5.c
-+      fsys_minix.c fsys_reiserfs.c fsys_jfs.c fsys_xfs.c fsys_vstafs.c \
-+      stage2.c md5.c
- libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
-       -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
--      -DFSYS_MINIX=1 -DFSYS_REISERFS=1 -DFSYS_VSTAFS=1 \
--      -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 -fwritable-strings
-+      -DFSYS_MINIX=1 -DFSYS_REISERFS=1 -DFSYS_JFS=1 -DFSYS_XFS=1 \
-+      -DFSYS_VSTAFS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 \
-+      -fwritable-strings
- EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec
- @DISKLESS_SUPPORT_TRUE@pkgdata_DATA = stage2 e2fs_stage1_5 fat_stage1_5 ffs_stage1_5 \
--@DISKLESS_SUPPORT_TRUE@       minix_stage1_5 reiserfs_stage1_5 vstafs_stage1_5 nbgrub pxegrub
-+@DISKLESS_SUPPORT_TRUE@       minix_stage1_5 reiserfs_stage1_5 jfs_stage1_5 xfs_stage1_5 \
-+@DISKLESS_SUPPORT_TRUE@       vstafs_stage1_5 nbgrub pxegrub
- @DISKLESS_SUPPORT_FALSE@pkgdata_DATA = stage2 e2fs_stage1_5 fat_stage1_5 ffs_stage1_5 \
--@DISKLESS_SUPPORT_FALSE@      minix_stage1_5 reiserfs_stage1_5 vstafs_stage1_5
-+@DISKLESS_SUPPORT_FALSE@      minix_stage1_5 reiserfs_stage1_5 jfs_stage1_5 xfs_stage1_5 \
-+@DISKLESS_SUPPORT_FALSE@      vstafs_stage1_5
- @DISKLESS_SUPPORT_TRUE@noinst_DATA = pre_stage2 start nbloader pxeloader diskless
- @DISKLESS_SUPPORT_FALSE@noinst_DATA = pre_stage2 start
- @DISKLESS_SUPPORT_TRUE@noinst_PROGRAMS = pre_stage2.exec start.exec e2fs_stage1_5.exec \
- @DISKLESS_SUPPORT_TRUE@       fat_stage1_5.exec ffs_stage1_5.exec minix_stage1_5.exec \
--@DISKLESS_SUPPORT_TRUE@       reiserfs_stage1_5.exec vstafs_stage1_5.exec nbloader.exec \
--@DISKLESS_SUPPORT_TRUE@       pxeloader.exec diskless.exec
-+@DISKLESS_SUPPORT_TRUE@       reiserfs_stage1_5.exec jfs_stage1_5.exec xfs_stage1_5.exec \
-+@DISKLESS_SUPPORT_TRUE@       vstafs_stage1_5.exec nbloader.exec pxeloader.exec diskless.exec
- @DISKLESS_SUPPORT_FALSE@noinst_PROGRAMS = pre_stage2.exec start.exec e2fs_stage1_5.exec \
- @DISKLESS_SUPPORT_FALSE@      fat_stage1_5.exec ffs_stage1_5.exec minix_stage1_5.exec \
--@DISKLESS_SUPPORT_FALSE@      reiserfs_stage1_5.exec vstafs_stage1_5.exec
-+@DISKLESS_SUPPORT_FALSE@      reiserfs_stage1_5.exec jfs_stage1_5.exec xfs_stage1_5.exec \
-+@DISKLESS_SUPPORT_FALSE@      vstafs_stage1_5.exec
- MOSTLYCLEANFILES = $(noinst_PROGRAMS)
-@@ -160,7 +165,8 @@
- pre_stage2_exec_SOURCES = asm.S bios.c boot.c builtins.c common.c \
-       char_io.c cmdline.c disk_io.c gunzip.c fsys_ext2fs.c \
-       fsys_fat.c fsys_ffs.c fsys_minix.c fsys_reiserfs.c \
--      fsys_vstafs.c hercules.c serial.c smp-imps.c stage2.c md5.c
-+      fsys_jfs.c fsys_xfs.c fsys_vstafs.c hercules.c serial.c \
-+      smp-imps.c stage2.c md5.c
- pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
- pre_stage2_exec_ASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
-@@ -237,6 +243,30 @@
- reiserfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
-+# For jfs_stage1_5 target.
-+jfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
-+      disk_io.c stage1_5.c fsys_jfs.c bios.c
-+
-+jfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
-+      -DNO_BLOCK_FILES=1
-+
-+jfs_stage1_5_exec_ASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
-+      -DNO_BLOCK_FILES=1
-+
-+jfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
-+
-+# For xfs_stage1_5 target.
-+xfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
-+      disk_io.c stage1_5.c fsys_xfs.c bios.c
-+
-+xfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
-+      -DNO_BLOCK_FILES=1
-+
-+xfs_stage1_5_exec_ASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
-+      -DNO_BLOCK_FILES=1
-+
-+xfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
-+
- # For vstafs_stage1_5 target.
- vstafs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
-       disk_io.c stage1_5.c fsys_vstafs.c bios.c
-@@ -285,21 +315,23 @@
-       libgrub_a-disk_io.$(OBJEXT) libgrub_a-gunzip.$(OBJEXT) \
-       libgrub_a-fsys_ffs.$(OBJEXT) libgrub_a-fsys_ext2fs.$(OBJEXT) \
-       libgrub_a-fsys_fat.$(OBJEXT) libgrub_a-fsys_minix.$(OBJEXT) \
--      libgrub_a-fsys_reiserfs.$(OBJEXT) \
--      libgrub_a-fsys_vstafs.$(OBJEXT) libgrub_a-stage2.$(OBJEXT) \
--      libgrub_a-md5.$(OBJEXT)
-+      libgrub_a-fsys_reiserfs.$(OBJEXT) libgrub_a-fsys_jfs.$(OBJEXT) \
-+      libgrub_a-fsys_xfs.$(OBJEXT) libgrub_a-fsys_vstafs.$(OBJEXT) \
-+      libgrub_a-stage2.$(OBJEXT) libgrub_a-md5.$(OBJEXT)
- libgrub_a_OBJECTS = $(am_libgrub_a_OBJECTS)
- EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec
- @DISKLESS_SUPPORT_TRUE@noinst_PROGRAMS = pre_stage2.exec start.exec \
- @DISKLESS_SUPPORT_TRUE@       e2fs_stage1_5.exec fat_stage1_5.exec \
- @DISKLESS_SUPPORT_TRUE@       ffs_stage1_5.exec minix_stage1_5.exec \
--@DISKLESS_SUPPORT_TRUE@       reiserfs_stage1_5.exec \
--@DISKLESS_SUPPORT_TRUE@       vstafs_stage1_5.exec nbloader.exec \
--@DISKLESS_SUPPORT_TRUE@       pxeloader.exec diskless.exec
-+@DISKLESS_SUPPORT_TRUE@       reiserfs_stage1_5.exec jfs_stage1_5.exec \
-+@DISKLESS_SUPPORT_TRUE@       xfs_stage1_5.exec vstafs_stage1_5.exec \
-+@DISKLESS_SUPPORT_TRUE@       nbloader.exec pxeloader.exec \
-+@DISKLESS_SUPPORT_TRUE@       diskless.exec
- @DISKLESS_SUPPORT_FALSE@noinst_PROGRAMS = pre_stage2.exec start.exec \
- @DISKLESS_SUPPORT_FALSE@      e2fs_stage1_5.exec fat_stage1_5.exec \
- @DISKLESS_SUPPORT_FALSE@      ffs_stage1_5.exec minix_stage1_5.exec \
- @DISKLESS_SUPPORT_FALSE@      reiserfs_stage1_5.exec \
-+@DISKLESS_SUPPORT_FALSE@      jfs_stage1_5.exec xfs_stage1_5.exec \
- @DISKLESS_SUPPORT_FALSE@      vstafs_stage1_5.exec
- PROGRAMS = $(noinst_PROGRAMS)
-@@ -313,6 +345,8 @@
-       diskless_exec-fsys_ffs.$(OBJEXT) \
-       diskless_exec-fsys_minix.$(OBJEXT) \
-       diskless_exec-fsys_reiserfs.$(OBJEXT) \
-+      diskless_exec-fsys_jfs.$(OBJEXT) \
-+      diskless_exec-fsys_xfs.$(OBJEXT) \
-       diskless_exec-fsys_vstafs.$(OBJEXT) \
-       diskless_exec-hercules.$(OBJEXT) diskless_exec-serial.$(OBJEXT) \
-       diskless_exec-smp-imps.$(OBJEXT) diskless_exec-stage2.$(OBJEXT) \
-@@ -352,6 +386,17 @@
- ffs_stage1_5_exec_OBJECTS = $(am_ffs_stage1_5_exec_OBJECTS)
- ffs_stage1_5_exec_LDADD = $(LDADD)
- ffs_stage1_5_exec_DEPENDENCIES =
-+am_jfs_stage1_5_exec_OBJECTS = jfs_stage1_5_exec-start.$(OBJEXT) \
-+      jfs_stage1_5_exec-asm.$(OBJEXT) \
-+      jfs_stage1_5_exec-common.$(OBJEXT) \
-+      jfs_stage1_5_exec-char_io.$(OBJEXT) \
-+      jfs_stage1_5_exec-disk_io.$(OBJEXT) \
-+      jfs_stage1_5_exec-stage1_5.$(OBJEXT) \
-+      jfs_stage1_5_exec-fsys_jfs.$(OBJEXT) \
-+      jfs_stage1_5_exec-bios.$(OBJEXT)
-+jfs_stage1_5_exec_OBJECTS = $(am_jfs_stage1_5_exec_OBJECTS)
-+jfs_stage1_5_exec_LDADD = $(LDADD)
-+jfs_stage1_5_exec_DEPENDENCIES =
- am_minix_stage1_5_exec_OBJECTS = minix_stage1_5_exec-start.$(OBJEXT) \
-       minix_stage1_5_exec-asm.$(OBJEXT) \
-       minix_stage1_5_exec-common.$(OBJEXT) \
-@@ -380,6 +425,8 @@
-       pre_stage2_exec-fsys_ffs.$(OBJEXT) \
-       pre_stage2_exec-fsys_minix.$(OBJEXT) \
-       pre_stage2_exec-fsys_reiserfs.$(OBJEXT) \
-+      pre_stage2_exec-fsys_jfs.$(OBJEXT) \
-+      pre_stage2_exec-fsys_xfs.$(OBJEXT) \
-       pre_stage2_exec-fsys_vstafs.$(OBJEXT) \
-       pre_stage2_exec-hercules.$(OBJEXT) \
-       pre_stage2_exec-serial.$(OBJEXT) \
-@@ -420,6 +467,17 @@
- vstafs_stage1_5_exec_OBJECTS = $(am_vstafs_stage1_5_exec_OBJECTS)
- vstafs_stage1_5_exec_LDADD = $(LDADD)
- vstafs_stage1_5_exec_DEPENDENCIES =
-+am_xfs_stage1_5_exec_OBJECTS = xfs_stage1_5_exec-start.$(OBJEXT) \
-+      xfs_stage1_5_exec-asm.$(OBJEXT) \
-+      xfs_stage1_5_exec-common.$(OBJEXT) \
-+      xfs_stage1_5_exec-char_io.$(OBJEXT) \
-+      xfs_stage1_5_exec-disk_io.$(OBJEXT) \
-+      xfs_stage1_5_exec-stage1_5.$(OBJEXT) \
-+      xfs_stage1_5_exec-fsys_xfs.$(OBJEXT) \
-+      xfs_stage1_5_exec-bios.$(OBJEXT)
-+xfs_stage1_5_exec_OBJECTS = $(am_xfs_stage1_5_exec_OBJECTS)
-+xfs_stage1_5_exec_LDADD = $(LDADD)
-+xfs_stage1_5_exec_DEPENDENCIES =
- SCRIPTS = $(noinst_SCRIPTS)
-@@ -439,9 +497,11 @@
- @AMDEP_TRUE@  $(DEPDIR)/diskless_exec-fsys_ext2fs.Po \
- @AMDEP_TRUE@  $(DEPDIR)/diskless_exec-fsys_fat.Po \
- @AMDEP_TRUE@  $(DEPDIR)/diskless_exec-fsys_ffs.Po \
-+@AMDEP_TRUE@  $(DEPDIR)/diskless_exec-fsys_jfs.Po \
- @AMDEP_TRUE@  $(DEPDIR)/diskless_exec-fsys_minix.Po \
- @AMDEP_TRUE@  $(DEPDIR)/diskless_exec-fsys_reiserfs.Po \
- @AMDEP_TRUE@  $(DEPDIR)/diskless_exec-fsys_vstafs.Po \
-+@AMDEP_TRUE@  $(DEPDIR)/diskless_exec-fsys_xfs.Po \
- @AMDEP_TRUE@  $(DEPDIR)/diskless_exec-gunzip.Po \
- @AMDEP_TRUE@  $(DEPDIR)/diskless_exec-hercules.Po \
- @AMDEP_TRUE@  $(DEPDIR)/diskless_exec-md5.Po \
-@@ -466,6 +526,12 @@
- @AMDEP_TRUE@  $(DEPDIR)/ffs_stage1_5_exec-disk_io.Po \
- @AMDEP_TRUE@  $(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Po \
- @AMDEP_TRUE@  $(DEPDIR)/ffs_stage1_5_exec-stage1_5.Po \
-+@AMDEP_TRUE@  $(DEPDIR)/jfs_stage1_5_exec-bios.Po \
-+@AMDEP_TRUE@  $(DEPDIR)/jfs_stage1_5_exec-char_io.Po \
-+@AMDEP_TRUE@  $(DEPDIR)/jfs_stage1_5_exec-common.Po \
-+@AMDEP_TRUE@  $(DEPDIR)/jfs_stage1_5_exec-disk_io.Po \
-+@AMDEP_TRUE@  $(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Po \
-+@AMDEP_TRUE@  $(DEPDIR)/jfs_stage1_5_exec-stage1_5.Po \
- @AMDEP_TRUE@  $(DEPDIR)/libgrub_a-boot.Po \
- @AMDEP_TRUE@  $(DEPDIR)/libgrub_a-builtins.Po \
- @AMDEP_TRUE@  $(DEPDIR)/libgrub_a-char_io.Po \
-@@ -475,9 +541,11 @@
- @AMDEP_TRUE@  $(DEPDIR)/libgrub_a-fsys_ext2fs.Po \
- @AMDEP_TRUE@  $(DEPDIR)/libgrub_a-fsys_fat.Po \
- @AMDEP_TRUE@  $(DEPDIR)/libgrub_a-fsys_ffs.Po \
-+@AMDEP_TRUE@  $(DEPDIR)/libgrub_a-fsys_jfs.Po \
- @AMDEP_TRUE@  $(DEPDIR)/libgrub_a-fsys_minix.Po \
- @AMDEP_TRUE@  $(DEPDIR)/libgrub_a-fsys_reiserfs.Po \
- @AMDEP_TRUE@  $(DEPDIR)/libgrub_a-fsys_vstafs.Po \
-+@AMDEP_TRUE@  $(DEPDIR)/libgrub_a-fsys_xfs.Po \
- @AMDEP_TRUE@  $(DEPDIR)/libgrub_a-gunzip.Po \
- @AMDEP_TRUE@  $(DEPDIR)/libgrub_a-md5.Po \
- @AMDEP_TRUE@  $(DEPDIR)/libgrub_a-stage2.Po \
-@@ -497,9 +565,11 @@
- @AMDEP_TRUE@  $(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Po \
- @AMDEP_TRUE@  $(DEPDIR)/pre_stage2_exec-fsys_fat.Po \
- @AMDEP_TRUE@  $(DEPDIR)/pre_stage2_exec-fsys_ffs.Po \
-+@AMDEP_TRUE@  $(DEPDIR)/pre_stage2_exec-fsys_jfs.Po \
- @AMDEP_TRUE@  $(DEPDIR)/pre_stage2_exec-fsys_minix.Po \
- @AMDEP_TRUE@  $(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Po \
- @AMDEP_TRUE@  $(DEPDIR)/pre_stage2_exec-fsys_vstafs.Po \
-+@AMDEP_TRUE@  $(DEPDIR)/pre_stage2_exec-fsys_xfs.Po \
- @AMDEP_TRUE@  $(DEPDIR)/pre_stage2_exec-gunzip.Po \
- @AMDEP_TRUE@  $(DEPDIR)/pre_stage2_exec-hercules.Po \
- @AMDEP_TRUE@  $(DEPDIR)/pre_stage2_exec-md5.Po \
-@@ -517,7 +587,13 @@
- @AMDEP_TRUE@  $(DEPDIR)/vstafs_stage1_5_exec-common.Po \
- @AMDEP_TRUE@  $(DEPDIR)/vstafs_stage1_5_exec-disk_io.Po \
- @AMDEP_TRUE@  $(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Po \
--@AMDEP_TRUE@  $(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Po
-+@AMDEP_TRUE@  $(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Po \
-+@AMDEP_TRUE@  $(DEPDIR)/xfs_stage1_5_exec-bios.Po \
-+@AMDEP_TRUE@  $(DEPDIR)/xfs_stage1_5_exec-char_io.Po \
-+@AMDEP_TRUE@  $(DEPDIR)/xfs_stage1_5_exec-common.Po \
-+@AMDEP_TRUE@  $(DEPDIR)/xfs_stage1_5_exec-disk_io.Po \
-+@AMDEP_TRUE@  $(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Po \
-+@AMDEP_TRUE@  $(DEPDIR)/xfs_stage1_5_exec-stage1_5.Po
- ASCOMPILE = $(AS) $(AM_ASFLAGS) $(ASFLAGS)
- COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-@@ -526,16 +602,17 @@
- CFLAGS = @CFLAGS@
- DIST_SOURCES = $(libgrub_a_SOURCES) $(diskless_exec_SOURCES) \
-       $(e2fs_stage1_5_exec_SOURCES) $(fat_stage1_5_exec_SOURCES) \
--      $(ffs_stage1_5_exec_SOURCES) $(minix_stage1_5_exec_SOURCES) \
--      $(nbloader_exec_SOURCES) $(pre_stage2_exec_SOURCES) \
--      $(pxeloader_exec_SOURCES) $(reiserfs_stage1_5_exec_SOURCES) \
--      $(start_exec_SOURCES) $(vstafs_stage1_5_exec_SOURCES)
-+      $(ffs_stage1_5_exec_SOURCES) $(jfs_stage1_5_exec_SOURCES) \
-+      $(minix_stage1_5_exec_SOURCES) $(nbloader_exec_SOURCES) \
-+      $(pre_stage2_exec_SOURCES) $(pxeloader_exec_SOURCES) \
-+      $(reiserfs_stage1_5_exec_SOURCES) $(start_exec_SOURCES) \
-+      $(vstafs_stage1_5_exec_SOURCES) $(xfs_stage1_5_exec_SOURCES)
- DATA = $(noinst_DATA) $(pkgdata_DATA)
- HEADERS = $(noinst_HEADERS)
- DIST_COMMON = $(noinst_HEADERS) Makefile.am Makefile.in compile
--SOURCES = $(libgrub_a_SOURCES) $(diskless_exec_SOURCES) $(e2fs_stage1_5_exec_SOURCES) $(fat_stage1_5_exec_SOURCES) $(ffs_stage1_5_exec_SOURCES) $(minix_stage1_5_exec_SOURCES) $(nbloader_exec_SOURCES) $(pre_stage2_exec_SOURCES) $(pxeloader_exec_SOURCES) $(reiserfs_stage1_5_exec_SOURCES) $(start_exec_SOURCES) $(vstafs_stage1_5_exec_SOURCES)
-+SOURCES = $(libgrub_a_SOURCES) $(diskless_exec_SOURCES) $(e2fs_stage1_5_exec_SOURCES) $(fat_stage1_5_exec_SOURCES) $(ffs_stage1_5_exec_SOURCES) $(jfs_stage1_5_exec_SOURCES) $(minix_stage1_5_exec_SOURCES) $(nbloader_exec_SOURCES) $(pre_stage2_exec_SOURCES) $(pxeloader_exec_SOURCES) $(reiserfs_stage1_5_exec_SOURCES) $(start_exec_SOURCES) $(vstafs_stage1_5_exec_SOURCES) $(xfs_stage1_5_exec_SOURCES)
- all: $(BUILT_SOURCES)
-       $(MAKE) $(AM_MAKEFLAGS) all-am
-@@ -566,6 +643,8 @@
- libgrub_a-fsys_fat.$(OBJEXT): fsys_fat.c
- libgrub_a-fsys_minix.$(OBJEXT): fsys_minix.c
- libgrub_a-fsys_reiserfs.$(OBJEXT): fsys_reiserfs.c
-+libgrub_a-fsys_jfs.$(OBJEXT): fsys_jfs.c
-+libgrub_a-fsys_xfs.$(OBJEXT): fsys_xfs.c
- libgrub_a-fsys_vstafs.$(OBJEXT): fsys_vstafs.c
- libgrub_a-stage2.$(OBJEXT): stage2.c
- libgrub_a-md5.$(OBJEXT): md5.c
-@@ -590,6 +669,8 @@
- diskless_exec-fsys_ffs.$(OBJEXT): fsys_ffs.c
- diskless_exec-fsys_minix.$(OBJEXT): fsys_minix.c
- diskless_exec-fsys_reiserfs.$(OBJEXT): fsys_reiserfs.c
-+diskless_exec-fsys_jfs.$(OBJEXT): fsys_jfs.c
-+diskless_exec-fsys_xfs.$(OBJEXT): fsys_xfs.c
- diskless_exec-fsys_vstafs.$(OBJEXT): fsys_vstafs.c
- diskless_exec-hercules.$(OBJEXT): hercules.c
- diskless_exec-serial.$(OBJEXT): serial.c
-@@ -632,6 +713,17 @@
- ffs_stage1_5.exec$(EXEEXT): $(ffs_stage1_5_exec_OBJECTS) $(ffs_stage1_5_exec_DEPENDENCIES)
-       @rm -f ffs_stage1_5.exec$(EXEEXT)
-       $(LINK) $(ffs_stage1_5_exec_LDFLAGS) $(ffs_stage1_5_exec_OBJECTS) $(ffs_stage1_5_exec_LDADD) $(LIBS)
-+jfs_stage1_5_exec-start.$(OBJEXT): start.S
-+jfs_stage1_5_exec-asm.$(OBJEXT): asm.S
-+jfs_stage1_5_exec-common.$(OBJEXT): common.c
-+jfs_stage1_5_exec-char_io.$(OBJEXT): char_io.c
-+jfs_stage1_5_exec-disk_io.$(OBJEXT): disk_io.c
-+jfs_stage1_5_exec-stage1_5.$(OBJEXT): stage1_5.c
-+jfs_stage1_5_exec-fsys_jfs.$(OBJEXT): fsys_jfs.c
-+jfs_stage1_5_exec-bios.$(OBJEXT): bios.c
-+jfs_stage1_5.exec$(EXEEXT): $(jfs_stage1_5_exec_OBJECTS) $(jfs_stage1_5_exec_DEPENDENCIES)
-+      @rm -f jfs_stage1_5.exec$(EXEEXT)
-+      $(LINK) $(jfs_stage1_5_exec_LDFLAGS) $(jfs_stage1_5_exec_OBJECTS) $(jfs_stage1_5_exec_LDADD) $(LIBS)
- minix_stage1_5_exec-start.$(OBJEXT): start.S
- minix_stage1_5_exec-asm.$(OBJEXT): asm.S
- minix_stage1_5_exec-common.$(OBJEXT): common.c
-@@ -661,6 +753,8 @@
- pre_stage2_exec-fsys_ffs.$(OBJEXT): fsys_ffs.c
- pre_stage2_exec-fsys_minix.$(OBJEXT): fsys_minix.c
- pre_stage2_exec-fsys_reiserfs.$(OBJEXT): fsys_reiserfs.c
-+pre_stage2_exec-fsys_jfs.$(OBJEXT): fsys_jfs.c
-+pre_stage2_exec-fsys_xfs.$(OBJEXT): fsys_xfs.c
- pre_stage2_exec-fsys_vstafs.$(OBJEXT): fsys_vstafs.c
- pre_stage2_exec-hercules.$(OBJEXT): hercules.c
- pre_stage2_exec-serial.$(OBJEXT): serial.c
-@@ -700,6 +794,17 @@
- vstafs_stage1_5.exec$(EXEEXT): $(vstafs_stage1_5_exec_OBJECTS) $(vstafs_stage1_5_exec_DEPENDENCIES)
-       @rm -f vstafs_stage1_5.exec$(EXEEXT)
-       $(LINK) $(vstafs_stage1_5_exec_LDFLAGS) $(vstafs_stage1_5_exec_OBJECTS) $(vstafs_stage1_5_exec_LDADD) $(LIBS)
-+xfs_stage1_5_exec-start.$(OBJEXT): start.S
-+xfs_stage1_5_exec-asm.$(OBJEXT): asm.S
-+xfs_stage1_5_exec-common.$(OBJEXT): common.c
-+xfs_stage1_5_exec-char_io.$(OBJEXT): char_io.c
-+xfs_stage1_5_exec-disk_io.$(OBJEXT): disk_io.c
-+xfs_stage1_5_exec-stage1_5.$(OBJEXT): stage1_5.c
-+xfs_stage1_5_exec-fsys_xfs.$(OBJEXT): fsys_xfs.c
-+xfs_stage1_5_exec-bios.$(OBJEXT): bios.c
-+xfs_stage1_5.exec$(EXEEXT): $(xfs_stage1_5_exec_OBJECTS) $(xfs_stage1_5_exec_DEPENDENCIES)
-+      @rm -f xfs_stage1_5.exec$(EXEEXT)
-+      $(LINK) $(xfs_stage1_5_exec_LDFLAGS) $(xfs_stage1_5_exec_OBJECTS) $(xfs_stage1_5_exec_LDADD) $(LIBS)
- mostlyclean-compile:
-       -rm -f *.$(OBJEXT) core *.core
-@@ -717,9 +822,11 @@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/diskless_exec-fsys_ext2fs.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/diskless_exec-fsys_fat.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/diskless_exec-fsys_ffs.Po@_am_quote@
-+@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/diskless_exec-fsys_jfs.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/diskless_exec-fsys_minix.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/diskless_exec-fsys_reiserfs.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/diskless_exec-fsys_vstafs.Po@_am_quote@
-+@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/diskless_exec-fsys_xfs.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/diskless_exec-gunzip.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/diskless_exec-hercules.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/diskless_exec-md5.Po@_am_quote@
-@@ -744,6 +851,12 @@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/ffs_stage1_5_exec-disk_io.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Po@_am_quote@
-+@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/jfs_stage1_5_exec-bios.Po@_am_quote@
-+@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/jfs_stage1_5_exec-char_io.Po@_am_quote@
-+@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/jfs_stage1_5_exec-common.Po@_am_quote@
-+@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/jfs_stage1_5_exec-disk_io.Po@_am_quote@
-+@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Po@_am_quote@
-+@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-boot.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-builtins.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-char_io.Po@_am_quote@
-@@ -753,9 +866,11 @@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-fsys_ext2fs.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-fsys_fat.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-fsys_ffs.Po@_am_quote@
-+@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-fsys_jfs.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-fsys_minix.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-fsys_reiserfs.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-fsys_vstafs.Po@_am_quote@
-+@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-fsys_xfs.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-gunzip.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-md5.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/libgrub_a-stage2.Po@_am_quote@
-@@ -775,9 +890,11 @@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/pre_stage2_exec-fsys_fat.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/pre_stage2_exec-fsys_ffs.Po@_am_quote@
-+@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/pre_stage2_exec-fsys_jfs.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/pre_stage2_exec-fsys_minix.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Po@_am_quote@
-+@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/pre_stage2_exec-fsys_xfs.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/pre_stage2_exec-gunzip.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/pre_stage2_exec-hercules.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/pre_stage2_exec-md5.Po@_am_quote@
-@@ -796,6 +913,12 @@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Po@_am_quote@
- @AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Po@_am_quote@
-+@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/xfs_stage1_5_exec-bios.Po@_am_quote@
-+@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/xfs_stage1_5_exec-char_io.Po@_am_quote@
-+@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/xfs_stage1_5_exec-common.Po@_am_quote@
-+@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/xfs_stage1_5_exec-disk_io.Po@_am_quote@
-+@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Po@_am_quote@
-+@AMDEP_TRUE@@_am_include@ @_am_quote@$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Po@_am_quote@
- distclean-depend:
-       -rm -rf $(DEPDIR)
-@@ -848,6 +971,18 @@
- ffs_stage1_5_exec-asm.obj: asm.S
-       $(AS) $(ffs_stage1_5_exec_ASFLAGS) $(ASFLAGS) -c -o ffs_stage1_5_exec-asm.obj `cygpath -w asm.S`
-+jfs_stage1_5_exec-start.o: start.S
-+      $(AS) $(jfs_stage1_5_exec_ASFLAGS) $(ASFLAGS) -c -o jfs_stage1_5_exec-start.o `test -f start.S || echo '$(srcdir)/'`start.S
-+
-+jfs_stage1_5_exec-start.obj: start.S
-+      $(AS) $(jfs_stage1_5_exec_ASFLAGS) $(ASFLAGS) -c -o jfs_stage1_5_exec-start.obj `cygpath -w start.S`
-+
-+jfs_stage1_5_exec-asm.o: asm.S
-+      $(AS) $(jfs_stage1_5_exec_ASFLAGS) $(ASFLAGS) -c -o jfs_stage1_5_exec-asm.o `test -f asm.S || echo '$(srcdir)/'`asm.S
-+
-+jfs_stage1_5_exec-asm.obj: asm.S
-+      $(AS) $(jfs_stage1_5_exec_ASFLAGS) $(ASFLAGS) -c -o jfs_stage1_5_exec-asm.obj `cygpath -w asm.S`
-+
- minix_stage1_5_exec-start.o: start.S
-       $(AS) $(minix_stage1_5_exec_ASFLAGS) $(ASFLAGS) -c -o minix_stage1_5_exec-start.o `test -f start.S || echo '$(srcdir)/'`start.S
-@@ -908,6 +1043,18 @@
- vstafs_stage1_5_exec-asm.obj: asm.S
-       $(AS) $(vstafs_stage1_5_exec_ASFLAGS) $(ASFLAGS) -c -o vstafs_stage1_5_exec-asm.obj `cygpath -w asm.S`
-+xfs_stage1_5_exec-start.o: start.S
-+      $(AS) $(xfs_stage1_5_exec_ASFLAGS) $(ASFLAGS) -c -o xfs_stage1_5_exec-start.o `test -f start.S || echo '$(srcdir)/'`start.S
-+
-+xfs_stage1_5_exec-start.obj: start.S
-+      $(AS) $(xfs_stage1_5_exec_ASFLAGS) $(ASFLAGS) -c -o xfs_stage1_5_exec-start.obj `cygpath -w start.S`
-+
-+xfs_stage1_5_exec-asm.o: asm.S
-+      $(AS) $(xfs_stage1_5_exec_ASFLAGS) $(ASFLAGS) -c -o xfs_stage1_5_exec-asm.o `test -f asm.S || echo '$(srcdir)/'`asm.S
-+
-+xfs_stage1_5_exec-asm.obj: asm.S
-+      $(AS) $(xfs_stage1_5_exec_ASFLAGS) $(ASFLAGS) -c -o xfs_stage1_5_exec-asm.obj `cygpath -w asm.S`
-+
- .c.o:
- @AMDEP_TRUE@  source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
- @AMDEP_TRUE@  depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
-@@ -1064,6 +1211,30 @@
- @AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-       $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_reiserfs.obj `cygpath -w fsys_reiserfs.c`
-+libgrub_a-fsys_jfs.o: fsys_jfs.c
-+@AMDEP_TRUE@  source='fsys_jfs.c' object='libgrub_a-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/libgrub_a-fsys_jfs.Po' tmpdepfile='$(DEPDIR)/libgrub_a-fsys_jfs.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_jfs.o `test -f fsys_jfs.c || echo '$(srcdir)/'`fsys_jfs.c
-+
-+libgrub_a-fsys_jfs.obj: fsys_jfs.c
-+@AMDEP_TRUE@  source='fsys_jfs.c' object='libgrub_a-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/libgrub_a-fsys_jfs.Po' tmpdepfile='$(DEPDIR)/libgrub_a-fsys_jfs.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_jfs.obj `cygpath -w fsys_jfs.c`
-+
-+libgrub_a-fsys_xfs.o: fsys_xfs.c
-+@AMDEP_TRUE@  source='fsys_xfs.c' object='libgrub_a-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/libgrub_a-fsys_xfs.Po' tmpdepfile='$(DEPDIR)/libgrub_a-fsys_xfs.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_xfs.o `test -f fsys_xfs.c || echo '$(srcdir)/'`fsys_xfs.c
-+
-+libgrub_a-fsys_xfs.obj: fsys_xfs.c
-+@AMDEP_TRUE@  source='fsys_xfs.c' object='libgrub_a-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/libgrub_a-fsys_xfs.Po' tmpdepfile='$(DEPDIR)/libgrub_a-fsys_xfs.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_xfs.obj `cygpath -w fsys_xfs.c`
-+
- libgrub_a-fsys_vstafs.o: fsys_vstafs.c
- @AMDEP_TRUE@  source='fsys_vstafs.c' object='libgrub_a-fsys_vstafs.o' libtool=no @AMDEPBACKSLASH@
- @AMDEP_TRUE@  depfile='$(DEPDIR)/libgrub_a-fsys_vstafs.Po' tmpdepfile='$(DEPDIR)/libgrub_a-fsys_vstafs.TPo' @AMDEPBACKSLASH@
-@@ -1256,6 +1427,30 @@
- @AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-       $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_reiserfs.obj `cygpath -w fsys_reiserfs.c`
-+diskless_exec-fsys_jfs.o: fsys_jfs.c
-+@AMDEP_TRUE@  source='fsys_jfs.c' object='diskless_exec-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/diskless_exec-fsys_jfs.Po' tmpdepfile='$(DEPDIR)/diskless_exec-fsys_jfs.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_jfs.o `test -f fsys_jfs.c || echo '$(srcdir)/'`fsys_jfs.c
-+
-+diskless_exec-fsys_jfs.obj: fsys_jfs.c
-+@AMDEP_TRUE@  source='fsys_jfs.c' object='diskless_exec-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/diskless_exec-fsys_jfs.Po' tmpdepfile='$(DEPDIR)/diskless_exec-fsys_jfs.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_jfs.obj `cygpath -w fsys_jfs.c`
-+
-+diskless_exec-fsys_xfs.o: fsys_xfs.c
-+@AMDEP_TRUE@  source='fsys_xfs.c' object='diskless_exec-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/diskless_exec-fsys_xfs.Po' tmpdepfile='$(DEPDIR)/diskless_exec-fsys_xfs.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_xfs.o `test -f fsys_xfs.c || echo '$(srcdir)/'`fsys_xfs.c
-+
-+diskless_exec-fsys_xfs.obj: fsys_xfs.c
-+@AMDEP_TRUE@  source='fsys_xfs.c' object='diskless_exec-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/diskless_exec-fsys_xfs.Po' tmpdepfile='$(DEPDIR)/diskless_exec-fsys_xfs.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_xfs.obj `cygpath -w fsys_xfs.c`
-+
- diskless_exec-fsys_vstafs.o: fsys_vstafs.c
- @AMDEP_TRUE@  source='fsys_vstafs.c' object='diskless_exec-fsys_vstafs.o' libtool=no @AMDEPBACKSLASH@
- @AMDEP_TRUE@  depfile='$(DEPDIR)/diskless_exec-fsys_vstafs.Po' tmpdepfile='$(DEPDIR)/diskless_exec-fsys_vstafs.TPo' @AMDEPBACKSLASH@
-@@ -1544,6 +1739,78 @@
- @AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-       $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-bios.obj `cygpath -w bios.c`
-+jfs_stage1_5_exec-common.o: common.c
-+@AMDEP_TRUE@  source='common.c' object='jfs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/jfs_stage1_5_exec-common.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-common.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-common.o `test -f common.c || echo '$(srcdir)/'`common.c
-+
-+jfs_stage1_5_exec-common.obj: common.c
-+@AMDEP_TRUE@  source='common.c' object='jfs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/jfs_stage1_5_exec-common.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-common.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-common.obj `cygpath -w common.c`
-+
-+jfs_stage1_5_exec-char_io.o: char_io.c
-+@AMDEP_TRUE@  source='char_io.c' object='jfs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/jfs_stage1_5_exec-char_io.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-char_io.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-char_io.o `test -f char_io.c || echo '$(srcdir)/'`char_io.c
-+
-+jfs_stage1_5_exec-char_io.obj: char_io.c
-+@AMDEP_TRUE@  source='char_io.c' object='jfs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/jfs_stage1_5_exec-char_io.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-char_io.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-char_io.obj `cygpath -w char_io.c`
-+
-+jfs_stage1_5_exec-disk_io.o: disk_io.c
-+@AMDEP_TRUE@  source='disk_io.c' object='jfs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/jfs_stage1_5_exec-disk_io.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-disk_io.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-disk_io.o `test -f disk_io.c || echo '$(srcdir)/'`disk_io.c
-+
-+jfs_stage1_5_exec-disk_io.obj: disk_io.c
-+@AMDEP_TRUE@  source='disk_io.c' object='jfs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/jfs_stage1_5_exec-disk_io.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-disk_io.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-disk_io.obj `cygpath -w disk_io.c`
-+
-+jfs_stage1_5_exec-stage1_5.o: stage1_5.c
-+@AMDEP_TRUE@  source='stage1_5.c' object='jfs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-stage1_5.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-stage1_5.o `test -f stage1_5.c || echo '$(srcdir)/'`stage1_5.c
-+
-+jfs_stage1_5_exec-stage1_5.obj: stage1_5.c
-+@AMDEP_TRUE@  source='stage1_5.c' object='jfs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-stage1_5.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-stage1_5.obj `cygpath -w stage1_5.c`
-+
-+jfs_stage1_5_exec-fsys_jfs.o: fsys_jfs.c
-+@AMDEP_TRUE@  source='fsys_jfs.c' object='jfs_stage1_5_exec-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-fsys_jfs.o `test -f fsys_jfs.c || echo '$(srcdir)/'`fsys_jfs.c
-+
-+jfs_stage1_5_exec-fsys_jfs.obj: fsys_jfs.c
-+@AMDEP_TRUE@  source='fsys_jfs.c' object='jfs_stage1_5_exec-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-fsys_jfs.obj `cygpath -w fsys_jfs.c`
-+
-+jfs_stage1_5_exec-bios.o: bios.c
-+@AMDEP_TRUE@  source='bios.c' object='jfs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/jfs_stage1_5_exec-bios.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-bios.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-bios.o `test -f bios.c || echo '$(srcdir)/'`bios.c
-+
-+jfs_stage1_5_exec-bios.obj: bios.c
-+@AMDEP_TRUE@  source='bios.c' object='jfs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/jfs_stage1_5_exec-bios.Po' tmpdepfile='$(DEPDIR)/jfs_stage1_5_exec-bios.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-bios.obj `cygpath -w bios.c`
-+
- minix_stage1_5_exec-common.o: common.c
- @AMDEP_TRUE@  source='common.c' object='minix_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
- @AMDEP_TRUE@  depfile='$(DEPDIR)/minix_stage1_5_exec-common.Po' tmpdepfile='$(DEPDIR)/minix_stage1_5_exec-common.TPo' @AMDEPBACKSLASH@
-@@ -1772,6 +2039,30 @@
- @AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-       $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_reiserfs.obj `cygpath -w fsys_reiserfs.c`
-+pre_stage2_exec-fsys_jfs.o: fsys_jfs.c
-+@AMDEP_TRUE@  source='fsys_jfs.c' object='pre_stage2_exec-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/pre_stage2_exec-fsys_jfs.Po' tmpdepfile='$(DEPDIR)/pre_stage2_exec-fsys_jfs.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_jfs.o `test -f fsys_jfs.c || echo '$(srcdir)/'`fsys_jfs.c
-+
-+pre_stage2_exec-fsys_jfs.obj: fsys_jfs.c
-+@AMDEP_TRUE@  source='fsys_jfs.c' object='pre_stage2_exec-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/pre_stage2_exec-fsys_jfs.Po' tmpdepfile='$(DEPDIR)/pre_stage2_exec-fsys_jfs.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_jfs.obj `cygpath -w fsys_jfs.c`
-+
-+pre_stage2_exec-fsys_xfs.o: fsys_xfs.c
-+@AMDEP_TRUE@  source='fsys_xfs.c' object='pre_stage2_exec-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/pre_stage2_exec-fsys_xfs.Po' tmpdepfile='$(DEPDIR)/pre_stage2_exec-fsys_xfs.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_xfs.o `test -f fsys_xfs.c || echo '$(srcdir)/'`fsys_xfs.c
-+
-+pre_stage2_exec-fsys_xfs.obj: fsys_xfs.c
-+@AMDEP_TRUE@  source='fsys_xfs.c' object='pre_stage2_exec-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/pre_stage2_exec-fsys_xfs.Po' tmpdepfile='$(DEPDIR)/pre_stage2_exec-fsys_xfs.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_xfs.obj `cygpath -w fsys_xfs.c`
-+
- pre_stage2_exec-fsys_vstafs.o: fsys_vstafs.c
- @AMDEP_TRUE@  source='fsys_vstafs.c' object='pre_stage2_exec-fsys_vstafs.o' libtool=no @AMDEPBACKSLASH@
- @AMDEP_TRUE@  depfile='$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Po' tmpdepfile='$(DEPDIR)/pre_stage2_exec-fsys_vstafs.TPo' @AMDEPBACKSLASH@
-@@ -1987,6 +2278,78 @@
- @AMDEP_TRUE@  depfile='$(DEPDIR)/vstafs_stage1_5_exec-bios.Po' tmpdepfile='$(DEPDIR)/vstafs_stage1_5_exec-bios.TPo' @AMDEPBACKSLASH@
- @AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-       $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-bios.obj `cygpath -w bios.c`
-+
-+xfs_stage1_5_exec-common.o: common.c
-+@AMDEP_TRUE@  source='common.c' object='xfs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/xfs_stage1_5_exec-common.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-common.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-common.o `test -f common.c || echo '$(srcdir)/'`common.c
-+
-+xfs_stage1_5_exec-common.obj: common.c
-+@AMDEP_TRUE@  source='common.c' object='xfs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/xfs_stage1_5_exec-common.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-common.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-common.obj `cygpath -w common.c`
-+
-+xfs_stage1_5_exec-char_io.o: char_io.c
-+@AMDEP_TRUE@  source='char_io.c' object='xfs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/xfs_stage1_5_exec-char_io.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-char_io.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-char_io.o `test -f char_io.c || echo '$(srcdir)/'`char_io.c
-+
-+xfs_stage1_5_exec-char_io.obj: char_io.c
-+@AMDEP_TRUE@  source='char_io.c' object='xfs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/xfs_stage1_5_exec-char_io.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-char_io.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-char_io.obj `cygpath -w char_io.c`
-+
-+xfs_stage1_5_exec-disk_io.o: disk_io.c
-+@AMDEP_TRUE@  source='disk_io.c' object='xfs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/xfs_stage1_5_exec-disk_io.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-disk_io.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-disk_io.o `test -f disk_io.c || echo '$(srcdir)/'`disk_io.c
-+
-+xfs_stage1_5_exec-disk_io.obj: disk_io.c
-+@AMDEP_TRUE@  source='disk_io.c' object='xfs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/xfs_stage1_5_exec-disk_io.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-disk_io.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-disk_io.obj `cygpath -w disk_io.c`
-+
-+xfs_stage1_5_exec-stage1_5.o: stage1_5.c
-+@AMDEP_TRUE@  source='stage1_5.c' object='xfs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-stage1_5.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-stage1_5.o `test -f stage1_5.c || echo '$(srcdir)/'`stage1_5.c
-+
-+xfs_stage1_5_exec-stage1_5.obj: stage1_5.c
-+@AMDEP_TRUE@  source='stage1_5.c' object='xfs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-stage1_5.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-stage1_5.obj `cygpath -w stage1_5.c`
-+
-+xfs_stage1_5_exec-fsys_xfs.o: fsys_xfs.c
-+@AMDEP_TRUE@  source='fsys_xfs.c' object='xfs_stage1_5_exec-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-fsys_xfs.o `test -f fsys_xfs.c || echo '$(srcdir)/'`fsys_xfs.c
-+
-+xfs_stage1_5_exec-fsys_xfs.obj: fsys_xfs.c
-+@AMDEP_TRUE@  source='fsys_xfs.c' object='xfs_stage1_5_exec-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-fsys_xfs.obj `cygpath -w fsys_xfs.c`
-+
-+xfs_stage1_5_exec-bios.o: bios.c
-+@AMDEP_TRUE@  source='bios.c' object='xfs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/xfs_stage1_5_exec-bios.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-bios.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-bios.o `test -f bios.c || echo '$(srcdir)/'`bios.c
-+
-+xfs_stage1_5_exec-bios.obj: bios.c
-+@AMDEP_TRUE@  source='bios.c' object='xfs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  depfile='$(DEPDIR)/xfs_stage1_5_exec-bios.Po' tmpdepfile='$(DEPDIR)/xfs_stage1_5_exec-bios.TPo' @AMDEPBACKSLASH@
-+@AMDEP_TRUE@  $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-+      $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-bios.obj `cygpath -w bios.c`
- CCDEPMODE = @CCDEPMODE@
- uninstall-info-am:
- install-pkgdataDATA: $(pkgdata_DATA)
diff --git a/grub-jfs+xfs-1.0-core.patch b/grub-jfs+xfs-1.0-core.patch
deleted file mode 100644 (file)
index 8bc908a..0000000
+++ /dev/null
@@ -1,2430 +0,0 @@
-diff -urN --exclude-from=xlist-core grub-0.90/AUTHORS grub-0.90.jfs+xfs/AUTHORS
---- grub-0.90/AUTHORS  Fri Jun 22 06:32:55 2001
-+++ grub-0.90.jfs+xfs/AUTHORS  Tue Aug 28 17:00:29 2001
-@@ -37,3 +37,5 @@
- Frank Mehnert added support for hercules console.
- Kristoffer Branemyr added VSTa filesystem support.
-+
-+Serguei Tzukanov wrote stage2/fsys_jfs.c and stage2/fsys_xfs.c.
-diff -urN --exclude-from=xlist-core grub-0.90/README grub-0.90.jfs+xfs/README
---- grub-0.90/README   Thu Jun 21 01:02:46 2001
-+++ grub-0.90.jfs+xfs/README   Tue Aug 28 16:56:55 2001
-@@ -4,8 +4,9 @@
-   - provides fully-featured command line and graphical interfaces
-   - recognizes fdisk partitions and BSD disklabels
--  - can dynamically read Linux ext2fs and ReiserFS, BSD ufs, MS-DOS
--    FAT16 and FAT32, and Minix fs filesystems, plus hardcoded blocklists
-+  - can dynamically read Linux ext2fs, ReiserFS, JFS and XFS, BSD ufs,
-+    MS-DOS FAT16 and FAT32, and Minix fs filesystems, plus hardcoded
-+    blocklists
-   - can boot Multiboot-compliant kernels (such as GNU Mach), as well
-     as standard Linux and *BSD kernels
-diff -urN --exclude-from=xlist-core grub-0.90/TODO grub-0.90.jfs+xfs/TODO
---- grub-0.90/TODO     Sun Nov 26 21:39:50 2000
-+++ grub-0.90.jfs+xfs/TODO     Tue Aug 28 17:06:35 2001
-@@ -80,7 +80,7 @@
- * Add ISA PnP support.
--* Add more filesystems support (XFS, NTFS, etc.)
-+* Add more filesystems support (NTFS, etc.)
- * Add more remote console support (parallel and net).
-diff -urN --exclude-from=xlist-core grub-0.90/configure.in grub-0.90.jfs+xfs/configure.in
---- grub-0.90/configure.in     Thu Jul  5 15:29:56 2001
-+++ grub-0.90.jfs+xfs/configure.in     Thu Aug 23 17:53:16 2001
-@@ -219,6 +219,20 @@
-   FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_REISERFS=1"
- fi
-+AC_ARG_ENABLE(jfs,
-+  [  --disable-jfs           disable IBM JFS support in Stage 2])
-+
-+if test x"$enable_jfs" != xno; then
-+  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_JFS=1"
-+fi
-+
-+AC_ARG_ENABLE(xfs,
-+  [  --disable-xfs           disable SGI XFS support in Stage 2])
-+
-+if test x"$enable_xfs" != xno; then
-+  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_XFS=1"
-+fi
-+
- AC_ARG_ENABLE(vstafs,
-   [  --disable-vstafs        disable VSTa FS support in Stage 2])
-diff -urN --exclude-from=xlist-core grub-0.90/stage2/Makefile.am grub-0.90.jfs+xfs/stage2/Makefile.am
---- grub-0.90/stage2/Makefile.am       Wed Jul  4 11:33:48 2001
-+++ grub-0.90.jfs+xfs/stage2/Makefile.am       Thu Aug 23 18:03:38 2001
-@@ -4,7 +4,7 @@
- # For dist target.
- noinst_HEADERS = apic.h defs.h dir.h disk_inode.h disk_inode_ffs.h \
--        fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
-+        fat.h jfs.h xfs.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
-       imgact_aout.h mb_header.h mb_info.h md5.h pc_slice.h serial.h \
-       shared.h smp-imps.h nbi.h vstafs.h
- EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS)
-@@ -16,11 +16,13 @@
- noinst_LIBRARIES = libgrub.a
- libgrub_a_SOURCES = boot.c builtins.c common.c char_io.c cmdline.c \
-       disk_io.c gunzip.c fsys_ffs.c fsys_ext2fs.c fsys_fat.c \
--      fsys_minix.c fsys_reiserfs.c  fsys_vstafs.c stage2.c md5.c
-+      fsys_minix.c fsys_reiserfs.c fsys_jfs.c fsys_xfs.c fsys_vstafs.c \
-+      stage2.c md5.c
- libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
-       -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
--      -DFSYS_MINIX=1 -DFSYS_REISERFS=1 -DFSYS_VSTAFS=1 \
--      -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 -fwritable-strings
-+      -DFSYS_MINIX=1 -DFSYS_REISERFS=1 -DFSYS_JFS=1 -DFSYS_XFS=1 \
-+      -DFSYS_VSTAFS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 \
-+      -fwritable-strings
- # Stage 2 and Stage 1.5's.
- pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
-@@ -29,19 +31,22 @@
- if DISKLESS_SUPPORT
- pkgdata_DATA = stage2 e2fs_stage1_5 fat_stage1_5 ffs_stage1_5 \
--      minix_stage1_5 reiserfs_stage1_5 vstafs_stage1_5 nbgrub pxegrub
-+      minix_stage1_5 reiserfs_stage1_5 jfs_stage1_5 xfs_stage1_5 \
-+      vstafs_stage1_5 nbgrub pxegrub
- noinst_DATA = pre_stage2 start nbloader pxeloader diskless
- noinst_PROGRAMS = pre_stage2.exec start.exec e2fs_stage1_5.exec \
-       fat_stage1_5.exec ffs_stage1_5.exec minix_stage1_5.exec \
--      reiserfs_stage1_5.exec vstafs_stage1_5.exec nbloader.exec \
--      pxeloader.exec diskless.exec
-+      reiserfs_stage1_5.exec jfs_stage1_5.exec xfs_stage1_5.exec \
-+      vstafs_stage1_5.exec nbloader.exec pxeloader.exec diskless.exec
- else
- pkgdata_DATA = stage2 e2fs_stage1_5 fat_stage1_5 ffs_stage1_5 \
--      minix_stage1_5 reiserfs_stage1_5 vstafs_stage1_5
-+      minix_stage1_5 reiserfs_stage1_5 jfs_stage1_5 xfs_stage1_5 \
-+      vstafs_stage1_5
- noinst_DATA = pre_stage2 start
- noinst_PROGRAMS = pre_stage2.exec start.exec e2fs_stage1_5.exec \
-       fat_stage1_5.exec ffs_stage1_5.exec minix_stage1_5.exec \
--      reiserfs_stage1_5.exec vstafs_stage1_5.exec
-+      reiserfs_stage1_5.exec jfs_stage1_5.exec xfs_stage1_5.exec \
-+      vstafs_stage1_5.exec
- endif
- MOSTLYCLEANFILES = $(noinst_PROGRAMS)
-@@ -78,7 +83,8 @@
- pre_stage2_exec_SOURCES = asm.S bios.c boot.c builtins.c common.c \
-       char_io.c cmdline.c disk_io.c gunzip.c fsys_ext2fs.c \
-       fsys_fat.c fsys_ffs.c fsys_minix.c fsys_reiserfs.c \
--      fsys_vstafs.c hercules.c serial.c smp-imps.c stage2.c md5.c
-+      fsys_jfs.c fsys_xfs.c fsys_vstafs.c hercules.c serial.c \
-+      smp-imps.c stage2.c md5.c
- pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
- pre_stage2_exec_ASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
- pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK)
-@@ -158,6 +164,24 @@
- reiserfs_stage1_5_exec_ASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \
-       -DNO_BLOCK_FILES=1
- reiserfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
-+
-+# For jfs_stage1_5 target.
-+jfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
-+      disk_io.c stage1_5.c fsys_jfs.c bios.c
-+jfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
-+      -DNO_BLOCK_FILES=1
-+jfs_stage1_5_exec_ASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
-+      -DNO_BLOCK_FILES=1
-+jfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
-+
-+# For xfs_stage1_5 target.
-+xfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
-+      disk_io.c stage1_5.c fsys_xfs.c bios.c
-+xfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
-+      -DNO_BLOCK_FILES=1
-+xfs_stage1_5_exec_ASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
-+      -DNO_BLOCK_FILES=1
-+xfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
- # For vstafs_stage1_5 target.
- vstafs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
-diff -urN --exclude-from=xlist-core grub-0.90/stage2/builtins.c grub-0.90.jfs+xfs/stage2/builtins.c
---- grub-0.90/stage2/builtins.c        Fri Jun 22 03:15:02 2001
-+++ grub-0.90.jfs+xfs/stage2/builtins.c        Fri Aug 24 22:13:48 2001
-@@ -3643,7 +3643,9 @@
-     {"ffs",      "/ffs_stage1_5"},
-     {"fat",      "/fat_stage1_5"},
-     {"minix",    "/minix_stage1_5"},
--    {"reiserfs", "/reiserfs_stage1_5"}
-+    {"reiserfs", "/reiserfs_stage1_5"},
-+    {"jfs",      "/jfs_stage1_5"},
-+    {"xfs",      "/xfs_stage1_5"}
-   };
-   tmp_drive = saved_drive;
-diff -urN --exclude-from=xlist-core grub-0.90/stage2/disk_io.c grub-0.90.jfs+xfs/stage2/disk_io.c
---- grub-0.90/stage2/disk_io.c Fri Jun 22 06:32:56 2001
-+++ grub-0.90.jfs+xfs/stage2/disk_io.c Thu Aug 23 17:57:46 2001
-@@ -60,6 +60,12 @@
- # ifdef FSYS_REISERFS
-   {"reiserfs", reiserfs_mount, reiserfs_read, reiserfs_dir, 0, reiserfs_embed},
- # endif
-+# ifdef FSYS_JFS
-+  {"jfs", jfs_mount, jfs_read, jfs_dir, 0, jfs_embed},
-+# endif
-+# ifdef FSYS_XFS
-+  {"xfs", xfs_mount, xfs_read, xfs_dir, 0, 0},
-+# endif
- # ifdef FSYS_VSTAFS
-   {"vstafs", vstafs_mount, vstafs_read, vstafs_dir, 0, 0},
- # endif
-diff -urN --exclude-from=xlist-core grub-0.90/stage2/filesys.h grub-0.90.jfs+xfs/stage2/filesys.h
---- grub-0.90/stage2/filesys.h Fri Jun 22 06:32:56 2001
-+++ grub-0.90.jfs+xfs/stage2/filesys.h Fri Aug 24 23:09:23 2001
-@@ -68,6 +68,25 @@
- #define FSYS_REISERFS_NUM 0
- #endif
-+#ifdef FSYS_JFS
-+#define FSYS_JFS_NUM 1
-+int jfs_mount (void);
-+int jfs_read (char *buf, int len);
-+int jfs_dir (char *dirname);
-+int jfs_embed (int *start_sector, int needed_sectors);
-+#else
-+#define FSYS_JFS_NUM 0
-+#endif
-+
-+#ifdef FSYS_XFS
-+#define FSYS_XFS_NUM 1
-+int xfs_mount (void);
-+int xfs_read (char *buf, int len);
-+int xfs_dir (char *dirname);
-+#else
-+#define FSYS_XFS_NUM 0
-+#endif
-+
- #ifdef FSYS_VSTAFS
- #define FSYS_VSTAFS_NUM 1
- int vstafs_mount (void);
-@@ -90,7 +109,8 @@
- #ifndef NUM_FSYS
- #define NUM_FSYS      \
-   (FSYS_FFS_NUM + FSYS_FAT_NUM + FSYS_EXT2FS_NUM + FSYS_MINIX_NUM     \
--   + FSYS_REISERFS_NUM + FSYS_VSTAFS_NUM + FSYS_TFTP_NUM)
-+   + FSYS_REISERFS_NUM + FSYS_JFS_NUM + FSYS_XFS_NUM + FSYS_VSTAFS_NUM        \
-+   + FSYS_TFTP_NUM)
- #endif
- /* defines for the block filesystem info area */
-diff -urN --exclude-from=xlist-core grub-0.90/stage2/fsys_jfs.c grub-0.90.jfs+xfs/stage2/fsys_jfs.c
---- grub-0.90/stage2/fsys_jfs.c        Thu Jan  1 03:00:00 1970
-+++ grub-0.90.jfs+xfs/stage2/fsys_jfs.c        Wed Aug 29 01:20:04 2001
-@@ -0,0 +1,405 @@
-+/*
-+ *  fsys_jfs.c - an implementation for the IBM JFS file system
-+ *
-+ *  Copyright (C) 2001  Serguei Tzukanov
-+ *
-+ *  This program is free software; you can redistribute it and/or modify
-+ *  it under the terms of the GNU General Public License as published by
-+ *  the Free Software Foundation; either version 2 of the License, or
-+ *  (at your option) any later version.
-+ *
-+ *  This program is distributed in the hope that it will be useful,
-+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ *  GNU General Public License for more details.
-+ *
-+ *  You should have received a copy of the GNU General Public License
-+ *  along with this program; if not, write to the Free Software
-+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+
-+#ifdef FSYS_JFS
-+
-+#include "shared.h"
-+#include "filesys.h"
-+#include "jfs.h"
-+
-+#define MAX_LINK_COUNT        8
-+
-+#define DTTYPE_INLINE 0
-+#define DTTYPE_PAGE   1
-+
-+struct jfs_info
-+{
-+      int bsize;
-+      int l2bsize;
-+      int bdlog;
-+      int xindex;
-+      int xlastindex;
-+      int sindex;
-+      int slastindex;
-+      int de_index;
-+      int dttype;
-+      xad_t *xad;
-+      ldtentry_t *de;
-+};
-+
-+static struct jfs_info jfs;
-+
-+#define xtpage                ((xtpage_t *)FSYS_BUF)
-+#define dtpage                ((dtpage_t *)((char *)FSYS_BUF + 4096))
-+#define fileset               ((dinode_t *)((char *)FSYS_BUF + 8192))
-+#define inode         ((dinode_t *)((char *)FSYS_BUF + 8192 + sizeof(dinode_t)))
-+#define dtroot                ((dtroot_t *)(&inode->di_btroot))
-+
-+static ldtentry_t de_always[2] = {
-+      {1, -1, 2, {'.', '.'}},
-+      {1, -1, 1, {'.'}}
-+};
-+
-+static int
-+isinxt (s64 key, s64 offset, s64 len)
-+{
-+      return (key >= offset) ? (key < offset + len ? 1 : 0) : 0;
-+}
-+
-+static xad_t *
-+first_extent (dinode_t *di)
-+{
-+      xtpage_t *xtp;
-+
-+      jfs.xindex = 2;
-+      xtp = (xtpage_t *)&di->di_btroot;
-+      jfs.xad = &xtp->xad[2];
-+      if (xtp->header.flag & BT_LEAF) {
-+              jfs.xlastindex = xtp->header.nextindex;
-+      } else {
-+              do {
-+                      devread (addressXAD (jfs.xad) << jfs.bdlog, 0,
-+                               sizeof(xtpage_t), (char *)xtpage);
-+                      jfs.xad = &xtpage->xad[2];
-+              } while (!(xtpage->header.flag & BT_LEAF));
-+              jfs.xlastindex = xtpage->header.nextindex;
-+      }
-+
-+      return jfs.xad;
-+}
-+
-+static xad_t *
-+next_extent (void)
-+{
-+      if (++jfs.xindex < jfs.xlastindex) {
-+      } else if (xtpage->header.next) {
-+              devread (xtpage->header.next << jfs.bdlog, 0,
-+                       sizeof(xtpage_t), (char *)xtpage);
-+              jfs.xlastindex = xtpage->header.nextindex;
-+              jfs.xindex = XTENTRYSTART;
-+              jfs.xad = &xtpage->xad[XTENTRYSTART];
-+      } else {
-+              return NULL;
-+      }
-+      return ++jfs.xad;
-+}
-+
-+
-+static void
-+di_read (u32 inum, dinode_t *di)
-+{
-+      s64 key;
-+      u32 xd, ioffset;
-+      s64 offset;
-+      xad_t *xad;
-+      pxd_t pxd;
-+
-+      key = (((inum >> L2INOSPERIAG) << L2INOSPERIAG) + 4096) >> jfs.l2bsize;
-+      xd = (inum & (INOSPERIAG - 1)) >> L2INOSPEREXT;
-+      ioffset = ((inum & (INOSPERIAG - 1)) & (INOSPEREXT - 1)) << L2DISIZE;
-+      xad = first_extent (fileset);
-+      do {
-+              offset = offsetXAD (xad);
-+              if (isinxt (key, offset, lengthXAD (xad))) {
-+                      devread ((addressXAD (xad) + key - offset) << jfs.bdlog,
-+                               3072 + xd*sizeof(pxd_t), sizeof(pxd_t), (char *)&pxd);
-+                      devread (addressPXD (&pxd) << jfs.bdlog,
-+                               ioffset, DISIZE, (char *)di);
-+                      break;
-+              }
-+      } while ((xad = next_extent ()));
-+}
-+
-+static ldtentry_t *
-+next_dentry (void)
-+{
-+      ldtentry_t *de;
-+      s8 *stbl;
-+
-+      if (jfs.dttype == DTTYPE_INLINE) {
-+              if (jfs.sindex < jfs.slastindex) {
-+                      return (ldtentry_t *)&dtroot->slot[(int)dtroot->header.stbl[jfs.sindex++]];
-+              }
-+      } else {
-+              de = (ldtentry_t *)dtpage->slot;
-+              stbl = (s8 *)&de[(int)dtpage->header.stblindex];
-+              if (jfs.sindex < jfs.slastindex) {
-+                      return &de[(int)stbl[jfs.sindex++]];
-+              } else if (dtpage->header.next) {
-+                      devread (dtpage->header.next << jfs.bdlog, 0,
-+                               sizeof(dtpage_t), (char *)dtpage);
-+                      jfs.slastindex = dtpage->header.nextindex;
-+                      jfs.sindex = 1;
-+                      return &de[(int)((s8 *)&de[(int)dtpage->header.stblindex])[0]];
-+              }
-+      }
-+
-+      return (jfs.de_index < 2) ? &de_always[jfs.de_index++] : NULL;
-+}
-+
-+static ldtentry_t *
-+first_dentry (void)
-+{
-+      dtroot_t *dtr;
-+      pxd_t *xd;
-+      idtentry_t *de;
-+
-+      dtr = (dtroot_t *)&inode->di_btroot;
-+      jfs.sindex = 0;
-+      jfs.de_index = 0;
-+
-+      de_always[0].inumber = inode->di_parent;
-+      de_always[1].inumber = inode->di_number;
-+      if (dtr->header.flag & BT_LEAF) {
-+              jfs.dttype = DTTYPE_INLINE;
-+              jfs.slastindex = dtr->header.nextindex;
-+      } else {
-+              de = (idtentry_t *)dtpage->slot;
-+              jfs.dttype = DTTYPE_PAGE;
-+              xd = &((idtentry_t *)dtr->slot)[(int)dtr->header.stbl[0]].xd;
-+              for (;;) {
-+                      devread (addressPXD (xd) << jfs.bdlog, 0,
-+                               sizeof(dtpage_t), (char *)dtpage);
-+                      if (dtpage->header.flag & BT_LEAF)
-+                              break;
-+                      xd = &de[(int)((s8 *)&de[(int)dtpage->header.stblindex])[0]].xd;
-+              }
-+              jfs.slastindex = dtpage->header.nextindex;
-+      }
-+
-+      return next_dentry ();
-+}
-+
-+
-+static dtslot_t *
-+next_dslot (int next)
-+{
-+      return (jfs.dttype == DTTYPE_INLINE)
-+              ? (dtslot_t *)&dtroot->slot[next]
-+              : &((dtslot_t *)dtpage->slot)[next];
-+}
-+
-+static void
-+uni2ansi (UniChar *uni, char *ansi, int len)
-+{
-+      for (; len; len--, uni++)
-+              *ansi++ = (*uni & 0xff80) ? '?' : *(char *)uni;
-+}
-+
-+int
-+jfs_mount (void)
-+{
-+      struct jfs_superblock super;
-+
-+      if (part_length < MINJFS >> SECTOR_BITS
-+          || !devread (SUPER1_OFF >> SECTOR_BITS, 0,
-+                       sizeof(struct jfs_superblock), (char *)&super)
-+          || (super.s_magic != JFS_MAGIC)
-+          || !devread ((AITBL_OFF >> SECTOR_BITS) + FILESYSTEM_I,
-+                       0, DISIZE, (char*)fileset)) {
-+              return 0;
-+      }
-+
-+      jfs.bsize = super.s_bsize;
-+      jfs.l2bsize = super.s_l2bsize;
-+      jfs.bdlog = jfs.l2bsize - SECTOR_BITS;
-+
-+      return 1;
-+}
-+
-+int
-+jfs_read (char *buf, int len)
-+{
-+      xad_t *xad;
-+      s64 endofprev, endofcur;
-+      s64 offset, xadlen;
-+      int toread, startpos, endpos;
-+
-+      startpos = filepos;
-+      endpos = filepos + len;
-+      endofprev = (1ULL << 62) - 1;
-+      xad = first_extent (inode);
-+      do {
-+              offset = offsetXAD (xad);
-+              xadlen = lengthXAD (xad);
-+              if (isinxt (filepos >> jfs.l2bsize, offset, xadlen)) {
-+                      endofcur = (offset + xadlen) << jfs.l2bsize; 
-+                      toread = (endofcur >= endpos)
-+                                ? len : (endofcur - filepos);
-+#ifndef STAGE1_5
-+                      disk_read_func = disk_read_hook;
-+#endif /* STAGE1_5 */
-+                      devread (addressXAD (xad) << jfs.bdlog,
-+                               filepos - (offset << jfs.l2bsize), toread, buf);
-+#ifndef STAGE1_5
-+                      disk_read_func = NULL;
-+#endif /* STAGE1_5 */
-+                      buf += toread;
-+                      len -= toread;
-+                      filepos += toread;
-+              } else if (offset > endofprev) {
-+                      toread = ((offset << jfs.l2bsize) >= endpos)
-+                                ? len : ((offset - endofprev) << jfs.l2bsize);
-+                      len -= toread;
-+                      filepos += toread;
-+                      for (; toread; toread--) {
-+                              *buf++ = 0;
-+                      }
-+                      continue;
-+              }
-+              endofprev = offset + xadlen; 
-+              xad = next_extent ();
-+      } while (len > 0 && xad);
-+
-+      return filepos - startpos;
-+}
-+
-+int
-+jfs_dir (char *dirname)
-+{
-+      char *ptr, *rest, ch;
-+      ldtentry_t *de;
-+      dtslot_t *ds;
-+      u32 inum, parent_inum;
-+      s64 di_size;
-+      u32 di_mode;
-+      int namlen, cmp, n, link_count;
-+      char namebuf[JFS_NAME_MAX + 1], linkbuf[JFS_PATH_MAX];
-+
-+      parent_inum = inum = ROOT_I;
-+      link_count = 0;
-+      for (;;) {
-+              di_read (inum, inode);
-+              di_size = inode->di_size;
-+              di_mode = inode->di_mode;
-+
-+              if ((di_mode & IFMT) == IFLNK) {
-+                      if (++link_count > MAX_LINK_COUNT) {
-+                              errnum = ERR_SYMLINK_LOOP;
-+                              return 0;
-+                      }
-+                      if (di_size < (di_mode & INLINEEA ? 256 : 128)) {
-+                              grub_memmove (linkbuf, inode->di_fastsymlink, di_size);
-+                              n = di_size;
-+                      } else if (di_size < JFS_PATH_MAX - 1) {
-+                              filepos = 0;
-+                              filemax = di_size;
-+                              n = jfs_read (linkbuf, filemax);
-+                      } else {
-+                              errnum = ERR_FILELENGTH;
-+                              return 0;
-+                      }
-+
-+                      inum = (linkbuf[0] == '/') ? ROOT_I : parent_inum;
-+                      while (n < (JFS_PATH_MAX - 1) && (linkbuf[n++] = *dirname++));
-+                      linkbuf[n] = 0;
-+                      dirname = linkbuf;
-+                      continue;
-+              }
-+
-+              if (!*dirname || isspace (*dirname)) {
-+                      if ((di_mode & IFMT) != IFREG) {
-+                              errnum = ERR_BAD_FILETYPE;
-+                              return 0;
-+                      }
-+                      filepos = 0;
-+                      filemax = di_size;
-+                      return 1;
-+              }
-+
-+              if ((di_mode & IFMT) != IFDIR) {
-+                      errnum = ERR_BAD_FILETYPE;
-+                      return 0;
-+              }
-+
-+              for (; *dirname == '/'; dirname++);
-+
-+              for (rest = dirname; (ch = *rest) && !isspace (ch) && ch != '/'; rest++);
-+              *rest = 0;
-+
-+              de = first_dentry ();
-+              for (;;) {
-+                      namlen = de->namlen;
-+                      if (de->next == -1) {
-+                              uni2ansi (de->name, namebuf, namlen);
-+                              namebuf[namlen] = 0;
-+                      } else {
-+                              uni2ansi (de->name, namebuf, DTLHDRDATALEN);
-+                              ptr = namebuf;
-+                              ptr += DTLHDRDATALEN;
-+                              namlen -= DTLHDRDATALEN;
-+                              ds = next_dslot (de->next);
-+                              while (ds->next != -1) {
-+                                      uni2ansi (ds->name, ptr, DTSLOTDATALEN);
-+                                      ptr += DTSLOTDATALEN;
-+                                      namlen -= DTSLOTDATALEN;
-+                                      ds = next_dslot (ds->next);
-+                              }
-+                              uni2ansi (ds->name, ptr, namlen);
-+                              ptr += namlen;
-+                              *ptr = 0;
-+                      }
-+
-+                      cmp = (!*dirname) ? -1 : substring (dirname, namebuf);
-+#ifndef STAGE1_5
-+                      if (print_possibilities && ch != '/'
-+                          && cmp <= 0) {
-+                              if (print_possibilities > 0)
-+                                      print_possibilities = -print_possibilities;
-+                              print_a_completion (namebuf);
-+                      } else
-+#endif
-+                      if (cmp == 0) {
-+                              parent_inum = inum;
-+                              inum = de->inumber;
-+                              *(dirname = rest) = ch;
-+                              break;
-+                      }
-+                      de = next_dentry ();
-+                      if (de == NULL) {
-+                              if (print_possibilities < 0)
-+                                      return 1;
-+
-+                              errnum = ERR_FILE_NOT_FOUND;
-+                              *rest = ch;
-+                              return 0;
-+                      }
-+              }
-+      }
-+}
-+
-+int
-+jfs_embed (int *start_sector, int needed_sectors)
-+{
-+      struct jfs_superblock super;
-+
-+      if (needed_sectors > 63
-+          || !devread (SUPER1_OFF >> SECTOR_BITS, 0,
-+                       sizeof (struct jfs_superblock),
-+                       (char *)&super)
-+          || (super.s_magic != JFS_MAGIC)) {
-+              return 0;
-+      }
-+
-+      *start_sector = 1;
-+      return 1;
-+}
-+
-+#endif /* FSYS_JFS */
-diff -urN --exclude-from=xlist-core grub-0.90/stage2/fsys_xfs.c grub-0.90.jfs+xfs/stage2/fsys_xfs.c
---- grub-0.90/stage2/fsys_xfs.c        Thu Jan  1 03:00:00 1970
-+++ grub-0.90.jfs+xfs/stage2/fsys_xfs.c        Wed Aug 29 11:24:18 2001
-@@ -0,0 +1,617 @@
-+/*
-+ *  fsys_xfs.c - an implementation for the SGI XFS file system
-+ *
-+ *  Copyright (C) 2001  Serguei Tzukanov
-+ *
-+ *  This program is free software; you can redistribute it and/or modify
-+ *  it under the terms of the GNU General Public License as published by
-+ *  the Free Software Foundation; either version 2 of the License, or
-+ *  (at your option) any later version.
-+ *
-+ *  This program is distributed in the hope that it will be useful,
-+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ *  GNU General Public License for more details.
-+ *
-+ *  You should have received a copy of the GNU General Public License
-+ *  along with this program; if not, write to the Free Software
-+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+
-+#ifdef FSYS_XFS
-+
-+#include "shared.h"
-+#include "filesys.h"
-+#include "xfs.h"
-+
-+#define MAX_LINK_COUNT        8
-+
-+typedef struct xad {
-+      xfs_fileoff_t offset;
-+      xfs_fsblock_t start;
-+      xfs_filblks_t len;
-+} xad_t;
-+
-+struct xfs_info {
-+      int bsize;
-+      int dirbsize;
-+      int isize;
-+      unsigned int agblocks;
-+      int bdlog;
-+      int blklog;
-+      int inopblog;
-+      int agblklog;
-+      int agnolog;
-+      unsigned int nextents;
-+      xfs_daddr_t next;
-+      xfs_daddr_t daddr;
-+      xfs_dablk_t forw;
-+      xfs_dablk_t dablk;
-+      xfs_bmbt_rec_32_t *xt;
-+      xfs_bmbt_ptr_t ptr0;
-+      int btnode_ptr0_off;
-+      int i8param;
-+      int dirpos;
-+      int dirmax;
-+      int blkoff;
-+      int fpos;
-+      xfs_ino_t rootino;
-+};
-+
-+static struct xfs_info xfs;
-+
-+#define dirbuf                ((char *)FSYS_BUF)
-+#define filebuf               ((char *)FSYS_BUF + 4096)
-+#define inode         ((xfs_dinode_t *)((char *)FSYS_BUF + 8192))
-+#define icore         (inode->di_core)
-+
-+#define       mask32lo(n)     (((__uint32_t)1 << (n)) - 1)
-+
-+#define       XFS_INO_MASK(k)         ((__uint32_t)((1ULL << (k)) - 1))
-+#define       XFS_INO_OFFSET_BITS     xfs.inopblog
-+#define       XFS_INO_AGBNO_BITS      xfs.agblklog
-+#define       XFS_INO_AGINO_BITS      (xfs.agblklog + xfs.inopblog)
-+#define       XFS_INO_AGNO_BITS       xfs.agnolog
-+
-+static inline xfs_agblock_t
-+agino2agbno (xfs_agino_t agino)
-+{
-+      return agino >> XFS_INO_OFFSET_BITS;
-+}
-+
-+static inline xfs_agnumber_t
-+ino2agno (xfs_ino_t ino)
-+{
-+      return ino >> XFS_INO_AGINO_BITS;
-+}
-+
-+static inline xfs_agino_t
-+ino2agino (xfs_ino_t ino)
-+{
-+      return ino & XFS_INO_MASK(XFS_INO_AGINO_BITS);
-+}
-+
-+static inline int
-+ino2offset (xfs_ino_t ino)
-+{
-+      return ino & XFS_INO_MASK(XFS_INO_OFFSET_BITS);
-+}
-+
-+static inline __const__ __uint16_t
-+le16 (__uint16_t x)
-+{
-+      __asm__("xchgb %b0,%h0" \
-+              : "=q" (x) \
-+              :  "0" (x)); \
-+              return x;
-+}
-+
-+static inline __const__ __uint32_t
-+le32 (__uint32_t x)
-+{
-+      __asm__("bswap %0" : "=r" (x) : "0" (x));
-+      return x;
-+}
-+
-+static inline __const__ __uint64_t
-+le64 (__uint64_t x)
-+{
-+      __uint32_t h = x >> 32;
-+        __uint32_t l = x & ((1ULL<<32)-1);
-+        return (((__uint64_t)le32(l)) << 32) | ((__uint64_t)(le32(h)));
-+}
-+
-+
-+static xfs_fsblock_t
-+xt_start (xfs_bmbt_rec_32_t *r)
-+{
-+      return (((xfs_fsblock_t)(le32 (r->l1) & mask32lo(9))) << 43) | 
-+             (((xfs_fsblock_t)le32 (r->l2)) << 11) |
-+             (((xfs_fsblock_t)le32 (r->l3)) >> 21);
-+}
-+
-+static xfs_fileoff_t
-+xt_offset (xfs_bmbt_rec_32_t *r)
-+{
-+      return (((xfs_fileoff_t)le32 (r->l0) &
-+              mask32lo(31)) << 23) |
-+              (((xfs_fileoff_t)le32 (r->l1)) >> 9);
-+}
-+
-+static xfs_filblks_t
-+xt_len (xfs_bmbt_rec_32_t *r)
-+{
-+      return le32(r->l3) & mask32lo(21);
-+}
-+
-+static inline int
-+xfs_highbit32(__uint32_t v)
-+{
-+      int i;
-+
-+      if (--v) {
-+              for (i = 0; i < 31; i++, v >>= 1) {
-+                      if (v == 0)
-+                              return i;
-+              }
-+      }
-+      return 0;
-+}
-+
-+static int
-+isinxt (xfs_fileoff_t key, xfs_fileoff_t offset, xfs_filblks_t len)
-+{
-+      return (key >= offset) ? (key < offset + len ? 1 : 0) : 0;
-+}
-+
-+static xfs_daddr_t
-+agb2daddr (xfs_agnumber_t agno, xfs_agblock_t agbno)
-+{
-+      return ((xfs_fsblock_t)agno*xfs.agblocks + agbno) << xfs.bdlog;
-+}
-+
-+static xfs_daddr_t
-+fsb2daddr (xfs_fsblock_t fsbno)
-+{
-+      return agb2daddr ((xfs_agnumber_t)(fsbno >> xfs.agblklog),
-+                       (xfs_agblock_t)(fsbno & mask32lo(xfs.agblklog)));
-+}
-+
-+#undef offsetof
-+#define offsetof(t,m) ((int)&(((t *)0)->m))
-+
-+static inline int
-+btroot_maxrecs (void)
-+{
-+      int tmp = icore.di_forkoff ? (icore.di_forkoff << 3) : xfs.isize;
-+
-+      return (tmp - sizeof(xfs_bmdr_block_t) - offsetof(xfs_dinode_t, di_u)) /
-+              (sizeof (xfs_bmbt_key_t) + sizeof (xfs_bmbt_ptr_t));
-+}
-+
-+static int
-+di_read (xfs_ino_t ino)
-+{
-+      xfs_agino_t agino;
-+      xfs_agnumber_t agno;
-+      xfs_agblock_t agbno;
-+      xfs_daddr_t daddr;
-+      int offset;
-+
-+      agno = ino2agno (ino);
-+      agino = ino2agino (ino);
-+      agbno = agino2agbno (agino);
-+      offset = ino2offset (ino);
-+      daddr = agb2daddr (agno, agbno);
-+
-+      devread (daddr, offset*xfs.isize, xfs.isize, (char *)inode);
-+
-+      xfs.ptr0 = *(xfs_bmbt_ptr_t *)
-+                  (inode->di_u.di_c + sizeof(xfs_bmdr_block_t)
-+                  + btroot_maxrecs ()*sizeof(xfs_bmbt_key_t));
-+
-+      return 1;
-+}
-+
-+static void
-+init_extents (void)
-+{
-+      xfs_bmbt_ptr_t ptr0;
-+      xfs_btree_lblock_t h;
-+
-+      switch (icore.di_format) {
-+      case XFS_DINODE_FMT_EXTENTS:
-+              xfs.xt = inode->di_u.di_bmx;
-+              xfs.nextents = le32 (icore.di_nextents);
-+              break;
-+      case XFS_DINODE_FMT_BTREE:
-+              ptr0 = xfs.ptr0;
-+              for (;;) {
-+                      xfs.daddr = fsb2daddr (le64(ptr0));
-+                      devread (xfs.daddr, 0,
-+                               sizeof(xfs_btree_lblock_t), (char *)&h);
-+                      if (!h.bb_level) {
-+                              xfs.nextents = le16(h.bb_numrecs);
-+                              xfs.next = fsb2daddr (le64(h.bb_rightsib));
-+                              xfs.fpos = sizeof(xfs_btree_block_t);
-+                              return;
-+                      }
-+                      devread (xfs.daddr, xfs.btnode_ptr0_off,
-+                               sizeof(xfs_bmbt_ptr_t), (char *)&ptr0);
-+              }
-+      }
-+}
-+
-+static xad_t *
-+next_extent (void)
-+{
-+      static xad_t xad;
-+
-+      switch (icore.di_format) {
-+      case XFS_DINODE_FMT_EXTENTS:
-+              if (xfs.nextents == 0)
-+                      return NULL;
-+              break;
-+      case XFS_DINODE_FMT_BTREE:
-+              if (xfs.nextents == 0) {
-+                      xfs_btree_lblock_t h;
-+                      if (xfs.next == 0)
-+                              return NULL;
-+                      xfs.daddr = xfs.next;
-+                      devread (xfs.daddr, 0, sizeof(xfs_btree_lblock_t), (char *)&h);
-+                      xfs.nextents = le16(h.bb_numrecs);
-+                      xfs.next = fsb2daddr (le64(h.bb_rightsib));
-+                      xfs.fpos = sizeof(xfs_btree_block_t);
-+              }
-+              /* Yeah, I know that's slow, but I really don't care */
-+              devread (xfs.daddr, xfs.fpos, sizeof(xfs_bmbt_rec_t), filebuf);
-+              xfs.xt = (xfs_bmbt_rec_32_t *)filebuf;
-+              xfs.fpos += sizeof(xfs_bmbt_rec_32_t);
-+      }
-+      xad.offset = xt_offset (xfs.xt);
-+      xad.start = xt_start (xfs.xt);
-+      xad.len = xt_len (xfs.xt);
-+      ++xfs.xt;
-+      --xfs.nextents;
-+
-+      return &xad;
-+}
-+
-+/*
-+ * Name lies - the function reads only first 100 bytes
-+ */
-+static void
-+xfs_dabread (void)
-+{
-+      xad_t *xad;
-+      xfs_fileoff_t offset;;
-+
-+      init_extents ();
-+      while ((xad = next_extent ())) {
-+              offset = xad->offset;
-+              if (isinxt (xfs.dablk, offset, xad->len)) {
-+                      devread (fsb2daddr (xad->start + xfs.dablk - offset),
-+                               0, 100, dirbuf);
-+                      break;
-+              }
-+      }
-+}
-+
-+static inline xfs_ino_t
-+sf_ino (char *sfe, int namelen)
-+{
-+      void *p = sfe + namelen + 3;
-+
-+      return (xfs.i8param == 0)
-+              ? le64(*(xfs_ino_t *)p) : le32(*(__uint32_t *)p);
-+}
-+
-+static inline xfs_ino_t
-+sf_parent_ino (void)
-+{
-+      return (xfs.i8param == 0)
-+              ? le64(*(xfs_ino_t *)(&inode->di_u.di_dir2sf.hdr.parent))
-+              : le32(*(__uint32_t *)(&inode->di_u.di_dir2sf.hdr.parent));
-+}
-+
-+static inline int
-+roundup8 (int n)
-+{
-+      return ((n+7)&~7);
-+}
-+
-+static char *
-+next_dentry (xfs_ino_t *ino)
-+{
-+      int namelen = 1;
-+      int toread;
-+      static char *usual[2] = {".", ".."};
-+      static xfs_dir2_sf_entry_t *sfe;
-+      char *name = usual[0];
-+
-+      if (xfs.dirpos >= xfs.dirmax) {
-+              if (xfs.forw == 0)
-+                      return NULL;
-+              xfs.dablk = xfs.forw;
-+              xfs_dabread ();
-+#define h     ((xfs_dir2_leaf_hdr_t *)dirbuf)
-+              xfs.dirmax = le16 (h->count) - le16 (h->stale);
-+              xfs.forw = le32 (h->info.forw);
-+#undef h
-+              xfs.dirpos = 0;
-+      }
-+
-+      switch (icore.di_format) {
-+      case XFS_DINODE_FMT_LOCAL:
-+              switch (xfs.dirpos) {
-+              case -2:
-+                      *ino = 0;
-+                      break;
-+              case -1:
-+                      *ino = sf_parent_ino ();
-+                      ++name;
-+                      ++namelen;
-+                      sfe = (xfs_dir2_sf_entry_t *)
-+                              (inode->di_u.di_c 
-+                               + sizeof(xfs_dir2_sf_hdr_t)
-+                               - xfs.i8param);
-+                      break;
-+              default:
-+                      namelen = sfe->namelen;
-+                      *ino = sf_ino ((char *)sfe, namelen);
-+                      name = sfe->name;
-+                      sfe = (xfs_dir2_sf_entry_t *)
-+                                ((char *)sfe + namelen + 11 - xfs.i8param);
-+              }
-+              break;
-+      case XFS_DINODE_FMT_BTREE:
-+      case XFS_DINODE_FMT_EXTENTS:
-+#define dau   ((xfs_dir2_data_union_t *)dirbuf)
-+              for (;;) {
-+                      if (xfs.blkoff >= xfs.dirbsize) {
-+                              xfs.blkoff = sizeof(xfs_dir2_data_hdr_t);
-+                              filepos &= ~(xfs.dirbsize - 1);
-+                              filepos |= xfs.blkoff;
-+                      }
-+                      xfs_read (dirbuf, 4);
-+                      xfs.blkoff += 4;
-+                      if (dau->unused.freetag == XFS_DIR2_DATA_FREE_TAG) {
-+                              toread = roundup8 (le16(dau->unused.length)) - 4;
-+                              xfs.blkoff += toread;
-+                              filepos += toread;
-+                              continue;
-+                      }
-+                      break;
-+              }
-+              xfs_read ((char *)dirbuf + 4, 5);
-+              *ino = le64 (dau->entry.inumber);
-+              namelen = dau->entry.namelen;
-+#undef dau
-+              toread = roundup8 (namelen + 11) - 9;
-+              xfs_read (dirbuf, toread);
-+              name = (char *)dirbuf;
-+              xfs.blkoff += toread + 5;
-+      }
-+      ++xfs.dirpos;
-+      name[namelen] = 0;
-+
-+      return name;
-+}
-+
-+static char *
-+first_dentry (xfs_ino_t *ino)
-+{
-+      xfs.forw = 0;
-+      switch (icore.di_format) {
-+      case XFS_DINODE_FMT_LOCAL:
-+              xfs.dirmax = inode->di_u.di_dir2sf.hdr.count;
-+              xfs.i8param = inode->di_u.di_dir2sf.hdr.i8count ? 0 : 4;
-+              xfs.dirpos = -2;
-+              break;
-+      case XFS_DINODE_FMT_EXTENTS:
-+      case XFS_DINODE_FMT_BTREE:
-+              filepos = 0;
-+              xfs_read (dirbuf, sizeof(xfs_dir2_data_hdr_t));
-+              if (((xfs_dir2_data_hdr_t *)dirbuf)->magic == le32(XFS_DIR2_BLOCK_MAGIC)) {
-+#define tail          ((xfs_dir2_block_tail_t *)dirbuf)
-+                      filepos = xfs.dirbsize - sizeof(*tail);
-+                      xfs_read (dirbuf, sizeof(*tail));
-+                      xfs.dirmax = le32 (tail->count) - le32 (tail->stale);
-+#undef tail
-+              } else {
-+                      xfs.dablk = (1ULL << 35) >> xfs.blklog;
-+#define h             ((xfs_dir2_leaf_hdr_t *)dirbuf)
-+#define n             ((xfs_da_intnode_t *)dirbuf)
-+                      for (;;) {
-+                              xfs_dabread ();
-+                              if ((n->hdr.info.magic == le16(XFS_DIR2_LEAFN_MAGIC))
-+                                  || (n->hdr.info.magic == le16(XFS_DIR2_LEAF1_MAGIC))) {
-+                                      xfs.dirmax = le16 (h->count) - le16 (h->stale);
-+                                      xfs.forw = le32 (h->info.forw);
-+                                      break;
-+                              }
-+                              xfs.dablk = le32 (n->btree[0].before);
-+                      }
-+#undef n
-+#undef h
-+              }
-+              xfs.blkoff = sizeof(xfs_dir2_data_hdr_t);
-+              filepos = xfs.blkoff;
-+              xfs.dirpos = 0;
-+      }
-+      return next_dentry (ino);
-+}
-+
-+int
-+xfs_mount (void)
-+{
-+      xfs_sb_t super;
-+
-+      if (!devread (0, 0, sizeof(super), (char *)&super)
-+          || (le32(super.sb_magicnum) != XFS_SB_MAGIC)
-+          || ((le16(super.sb_versionnum) 
-+              & XFS_SB_VERSION_NUMBITS) != XFS_SB_VERSION_4) ) {
-+              return 0;
-+      }
-+
-+      xfs.bsize = le32 (super.sb_blocksize);
-+      xfs.blklog = super.sb_blocklog;
-+      xfs.bdlog = xfs.blklog - SECTOR_BITS;
-+      xfs.rootino = le64 (super.sb_rootino);
-+      xfs.isize = le16 (super.sb_inodesize);
-+      xfs.agblocks = le32 (super.sb_agblocks);
-+      xfs.dirbsize = xfs.bsize << super.sb_dirblklog;
-+
-+      xfs.inopblog = super.sb_inopblog;
-+      xfs.agblklog = super.sb_agblklog;
-+      xfs.agnolog = xfs_highbit32 (le32(super.sb_agcount));
-+
-+      xfs.btnode_ptr0_off =
-+              ((xfs.bsize - sizeof(xfs_btree_block_t)) /
-+              (sizeof (xfs_bmbt_key_t) + sizeof (xfs_bmbt_ptr_t)))
-+               * sizeof(xfs_bmbt_key_t) + sizeof(xfs_btree_block_t);
-+
-+      return 1;
-+}
-+
-+int
-+xfs_read (char *buf, int len)
-+{
-+      xad_t *xad;
-+      xfs_fileoff_t endofprev, endofcur, offset;
-+      xfs_filblks_t xadlen;
-+      int toread, startpos, endpos;
-+
-+      if (icore.di_format == XFS_DINODE_FMT_LOCAL) {
-+              grub_memmove (buf, inode->di_u.di_c + filepos, len);
-+              filepos += len;
-+              return len;
-+      }
-+
-+      startpos = filepos;
-+      endpos = filepos + len;
-+      endofprev = (xfs_fileoff_t)-1;
-+      init_extents ();
-+      while (len > 0 && (xad = next_extent ())) {
-+              offset = xad->offset;
-+              xadlen = xad->len;
-+              if (isinxt (filepos >> xfs.blklog, offset, xadlen)) {
-+                      endofcur = (offset + xadlen) << xfs.blklog; 
-+                      toread = (endofcur >= endpos)
-+                                ? len : (endofcur - filepos);
-+#ifndef STAGE1_5
-+                      disk_read_func = disk_read_hook;
-+#endif /* STAGE1_5 */
-+                      devread (fsb2daddr (xad->start),
-+                               filepos - (offset << xfs.blklog), toread, buf);
-+#ifndef STAGE1_5
-+                      disk_read_func = NULL;
-+#endif /* STAGE1_5 */
-+                      buf += toread;
-+                      len -= toread;
-+                      filepos += toread;
-+              } else if (offset > endofprev) {
-+                      toread = ((offset << xfs.blklog) >= endpos)
-+                                ? len : ((offset - endofprev) << xfs.blklog);
-+                      len -= toread;
-+                      filepos += toread;
-+                      for (; toread; toread--) {
-+                              *buf++ = 0;
-+                      }
-+                      continue;
-+              }
-+              endofprev = offset + xadlen; 
-+      }
-+
-+      return filepos - startpos;
-+}
-+
-+int
-+xfs_dir (char *dirname)
-+{
-+      xfs_ino_t ino, parent_ino, new_ino;
-+      xfs_fsize_t di_size;
-+      int di_mode;
-+      int cmp, n, link_count;
-+      char linkbuf[xfs.bsize];
-+      char *rest, *name, ch;
-+
-+      parent_ino = ino = xfs.rootino;
-+      link_count = 0;
-+      for (;;) {
-+              di_read (ino);
-+              di_size = le64 (icore.di_size);
-+              di_mode = le16 (icore.di_mode);
-+
-+              if ((di_mode & IFMT) == IFLNK) {
-+                      if (++link_count > MAX_LINK_COUNT) {
-+                              errnum = ERR_SYMLINK_LOOP;
-+                              return 0;
-+                      }
-+                      if (di_size < xfs.bsize - 1) {
-+                              filepos = 0;
-+                              filemax = di_size;
-+                              n = xfs_read (linkbuf, filemax);
-+                      } else {
-+                              errnum = ERR_FILELENGTH;
-+                              return 0;
-+                      }
-+
-+                      ino = (linkbuf[0] == '/') ? xfs.rootino : parent_ino;
-+                      while (n < (xfs.bsize - 1) && (linkbuf[n++] = *dirname++));
-+                      linkbuf[n] = 0;
-+                      dirname = linkbuf;
-+                      continue;
-+              }
-+
-+              if (!*dirname || isspace (*dirname)) {
-+                      if ((di_mode & IFMT) != IFREG) {
-+                              errnum = ERR_BAD_FILETYPE;
-+                              return 0;
-+                      }
-+                      filepos = 0;
-+                      filemax = di_size;
-+                      return 1;
-+              }
-+
-+              if ((di_mode & IFMT) != IFDIR) {
-+                      errnum = ERR_BAD_FILETYPE;
-+                      return 0;
-+              }
-+
-+              for (; *dirname == '/'; dirname++);
-+
-+              for (rest = dirname; (ch = *rest) && !isspace (ch) && ch != '/'; rest++);
-+              *rest = 0;
-+
-+              name = first_dentry (&new_ino);
-+              for (;;) {
-+                      cmp = (!*dirname) ? -1 : substring (dirname, name);
-+#ifndef STAGE1_5
-+                      if (print_possibilities && ch != '/' && cmp <= 0) {
-+                              if (print_possibilities > 0)
-+                                      print_possibilities = -print_possibilities;
-+                              print_a_completion (name);
-+                      } else
-+#endif
-+                      if (cmp == 0) {
-+                              parent_ino = ino;
-+                              if (new_ino)
-+                                      ino = new_ino;
-+                              *(dirname = rest) = ch;
-+                              break;
-+                      }
-+                      name = next_dentry (&new_ino);
-+                      if (name == NULL) {
-+                              if (print_possibilities < 0)
-+                                      return 1;
-+
-+                              errnum = ERR_FILE_NOT_FOUND;
-+                              *rest = ch;
-+                              return 0;
-+                      }
-+              }
-+      }
-+}
-+
-+#endif /* FSYS_XFS */
-diff -urN --exclude-from=xlist-core grub-0.90/stage2/jfs.h grub-0.90.jfs+xfs/stage2/jfs.h
---- grub-0.90/stage2/jfs.h     Thu Jan  1 03:00:00 1970
-+++ grub-0.90.jfs+xfs/stage2/jfs.h     Mon Aug 27 12:57:53 2001
-@@ -0,0 +1,601 @@
-+/*
-+ *   jfs.h - an extractions from linux/include/linux/jfs/jfs* into one file
-+ *
-+ *   Copyright (c) International Business Machines  Corp., 2000
-+ *
-+ *   This program is free software;  you can redistribute it and/or modify
-+ *   it under the terms of the GNU General Public License as published by
-+ *   the Free Software Foundation; either version 2 of the License, or 
-+ *   (at your option) any later version.
-+ * 
-+ *   This program is distributed in the hope that it will be useful,
-+ *   but WITHOUT ANY WARRANTY;  without even the implied warranty of
-+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
-+ *   the GNU General Public License for more details.
-+ *
-+ *   You should have received a copy of the GNU General Public License
-+ *   along with this program;  if not, write to the Free Software 
-+ *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ *
-+ */
-+
-+#ifndef _JFS_H_
-+#define _JFS_H_
-+
-+/* those are from jfs_filsys.h */
-+
-+/*
-+ *     file system option (superblock flag)
-+ */
-+/* platform option (conditional compilation) */
-+#define JFS_AIX               0x80000000      /* AIX support */
-+/*    POSIX name/directory  support */
-+
-+#define JFS_OS2               0x40000000      /* OS/2 support */
-+/*    case-insensitive name/directory support */
-+
-+#define JFS_LINUX             0x10000000      /* Linux support */
-+/*    case-sensitive name/directory support */
-+
-+/* directory option */
-+#define JFS_UNICODE   0x00000001      /* unicode name */
-+
-+/* bba */
-+#define       JFS_SWAP_BYTES          0x00100000      /* running on big endian computer */
-+
-+
-+/*
-+ *    buffer cache configuration
-+ */
-+/* page size */
-+#ifdef PSIZE
-+#undef PSIZE
-+#endif
-+#define       PSIZE           4096    /* page size (in byte) */
-+
-+/*
-+ *    fs fundamental size
-+ *
-+ * PSIZE >= file system block size >= PBSIZE >= DISIZE
-+ */
-+#define       PBSIZE          512     /* physical block size (in byte) */
-+#define DISIZE                512     /* on-disk inode size (in byte) */
-+#define L2DISIZE      9
-+#define       INOSPERIAG      4096    /* number of disk inodes per iag */
-+#define       L2INOSPERIAG    12
-+#define INOSPEREXT    32      /* number of disk inode per extent */
-+#define L2INOSPEREXT  5
-+
-+/* Minimum number of bytes supported for a JFS partition */
-+#define MINJFS                        (0x1000000)
-+
-+/*
-+ * fixed byte offset address
-+ */
-+#define SUPER1_OFF    0x8000  /* primary superblock */
-+
-+#define AITBL_OFF     (SUPER1_OFF + PSIZE + (PSIZE << 1))
-+
-+/*
-+ *    fixed reserved inode number
-+ */
-+/* aggregate inode */
-+#define       AGGREGATE_I     1       /* aggregate inode map inode */
-+#define       FILESYSTEM_I    16      /* 1st/only fileset inode in ait:
-+                               * fileset inode map inode
-+                               */
-+
-+/* per fileset inode */
-+#define       ROOT_I          2       /* fileset root inode */
-+
-+/*
-+ *    directory configuration
-+ */
-+#define JFS_NAME_MAX  255
-+#define JFS_PATH_MAX  PSIZE
-+
-+typedef unsigned char u8;
-+typedef char s8;
-+typedef unsigned short u16;
-+typedef short s16;
-+typedef unsigned int u32;
-+typedef int s32;
-+typedef unsigned long long u64;
-+typedef long long s64;
-+
-+typedef u16 UniChar;
-+
-+/* these from jfs_btree.h */
-+
-+/* btpaget_t flag */
-+#define BT_TYPE               0x07    /* B+-tree index */
-+#define       BT_ROOT         0x01    /* root page */
-+#define       BT_LEAF         0x02    /* leaf page */
-+#define       BT_INTERNAL     0x04    /* internal page */
-+#define       BT_RIGHTMOST    0x10    /* rightmost page */
-+#define       BT_LEFTMOST     0x20    /* leftmost page */
-+
-+/* those are from jfs_types.h */
-+
-+struct timestruc_t {
-+      u32 tv_sec;
-+      u32 tv_nsec;
-+};
-+
-+/*
-+ *    physical xd (pxd)
-+ */
-+typedef struct {
-+      unsigned len:24;
-+      unsigned addr1:8;
-+      u32 addr2;
-+} pxd_t;
-+
-+/* xd_t field extraction */
-+#define       lengthPXD(pxd)  ((pxd)->len)
-+#define       addressPXD(pxd) (((s64)((pxd)->addr1)) << 32 | ((pxd)->addr2))
-+
-+/*
-+ *    data extent descriptor (dxd)
-+ */
-+typedef struct {
-+      unsigned flag:8;        /* 1: flags */
-+      unsigned rsrvd:24;      /* 3: */
-+      u32 size;               /* 4: size in byte */
-+      unsigned len:24;        /* 3: length in unit of fsblksize */
-+      unsigned addr1:8;       /* 1: address in unit of fsblksize */
-+      u32 addr2;              /* 4: address in unit of fsblksize */
-+} dxd_t;                      /* - 16 - */
-+
-+/*
-+ *    DASD limit information - stored in directory inode
-+ */
-+typedef struct dasd {
-+      u8 thresh;              /* Alert Threshold (in percent) */
-+      u8 delta;               /* Alert Threshold delta (in percent)   */
-+      u8 rsrvd1;
-+      u8 limit_hi;            /* DASD limit (in logical blocks)       */
-+      u32 limit_lo;           /* DASD limit (in logical blocks)       */
-+      u8 rsrvd2[3];
-+      u8 used_hi;             /* DASD usage (in logical blocks)       */
-+      u32 used_lo;            /* DASD usage (in logical blocks)       */
-+} dasd_t;
-+
-+
-+/* from jfs_superblock.h */
-+
-+#define JFS_MAGIC     0x3153464A      /* "JFS1" */
-+
-+struct jfs_superblock
-+{
-+      u32 s_magic;            /* 4: magic number */
-+      u32 s_version;          /* 4: version number */
-+
-+      s64 s_size;             /* 8: aggregate size in hardware/LVM blocks;
-+                               * VFS: number of blocks
-+                               */
-+      s32 s_bsize;            /* 4: aggregate block size in bytes; 
-+                               * VFS: fragment size
-+                               */
-+      s16 s_l2bsize;          /* 2: log2 of s_bsize */
-+      s16 s_l2bfactor;        /* 2: log2(s_bsize/hardware block size) */
-+      s32 s_pbsize;           /* 4: hardware/LVM block size in bytes */
-+      s16 s_l2pbsize;         /* 2: log2 of s_pbsize */
-+      s16 pad;                /* 2: padding necessary for alignment */
-+
-+      u32 s_agsize;           /* 4: allocation group size in aggr. blocks */
-+
-+      u32 s_flag;             /* 4: aggregate attributes:
-+                               *    see jfs_filsys.h
-+                               */
-+      u32 s_state;            /* 4: mount/unmount/recovery state: 
-+                               *    see jfs_filsys.h
-+                               */
-+      s32 s_compress;         /* 4: > 0 if data compression */
-+
-+      pxd_t s_ait2;           /* 8: first extent of secondary
-+                               *    aggregate inode table
-+                               */
-+
-+      pxd_t s_aim2;           /* 8: first extent of secondary
-+                               *    aggregate inode map
-+                               */
-+      u32 s_logdev;           /* 4: device address of log */
-+      s32 s_logserial;        /* 4: log serial number at aggregate mount */
-+      pxd_t s_logpxd;         /* 8: inline log extent */
-+
-+      pxd_t s_fsckpxd;        /* 8: inline fsck work space extent */
-+
-+      struct timestruc_t s_time;      /* 8: time last updated */
-+
-+      s32 s_fsckloglen;       /* 4: Number of filesystem blocks reserved for
-+                               *    the fsck service log.  
-+                               *    N.B. These blocks are divided among the
-+                               *         versions kept.  This is not a per
-+                               *         version size.
-+                               *    N.B. These blocks are included in the 
-+                               *         length field of s_fsckpxd.
-+                               */
-+      s8 s_fscklog;           /* 1: which fsck service log is most recent
-+                               *    0 => no service log data yet
-+                               *    1 => the first one
-+                               *    2 => the 2nd one
-+                               */
-+      char s_fpack[11];       /* 11: file system volume name 
-+                               *     N.B. This must be 11 bytes to
-+                               *          conform with the OS/2 BootSector
-+                               *          requirements
-+                               */
-+
-+      /* extendfs() parameter under s_state & FM_EXTENDFS */
-+      s64 s_xsize;            /* 8: extendfs s_size */
-+      pxd_t s_xfsckpxd;       /* 8: extendfs fsckpxd */
-+      pxd_t s_xlogpxd;        /* 8: extendfs logpxd */
-+      /* - 128 byte boundary - */
-+
-+      /*
-+       *      DFS VFS support (preliminary) 
-+       */
-+      char s_attach;          /* 1: VFS: flag: set when aggregate is attached
-+                               */
-+      u8 rsrvd4[7];           /* 7: reserved - set to 0 */
-+
-+      u64 totalUsable;        /* 8: VFS: total of 1K blocks which are
-+                               * available to "normal" (non-root) users.
-+                               */
-+      u64 minFree;            /* 8: VFS: # of 1K blocks held in reserve for 
-+                               * exclusive use of root.  This value can be 0,
-+                               * and if it is then totalUsable will be equal 
-+                               * to # of blocks in aggregate.  I believe this
-+                               * means that minFree + totalUsable = # blocks.
-+                               * In that case, we don't need to store both 
-+                               * totalUsable and minFree since we can compute
-+                               * one from the other.  I would guess minFree 
-+                               * would be the one we should store, and 
-+                               * totalUsable would be the one we should 
-+                               * compute.  (Just a guess...)
-+                               */
-+
-+      u64 realFree;           /* 8: VFS: # of free 1K blocks can be used by 
-+                               * "normal" users.  It may be this is something
-+                               * we should compute when asked for instead of 
-+                               * storing in the superblock.  I don't know how
-+                               * often this information is needed.
-+                               */
-+      /*
-+       *      graffiti area
-+       */
-+};
-+
-+/* from jfs_dtree.h */
-+
-+/*
-+ *      entry segment/slot
-+ *
-+ * an entry consists of type dependent head/only segment/slot and
-+ * additional segments/slots linked vi next field;
-+ * N.B. last/only segment of entry is terminated by next = -1;
-+ */
-+/*
-+ *    directory page slot
-+ */
-+typedef struct {
-+      s8 next;                /* 1: */
-+      s8 cnt;                 /* 1: */
-+      UniChar name[15];       /* 30: */
-+} dtslot_t;                   /* (32) */
-+
-+#define DTSLOTDATALEN 15
-+
-+/*
-+ *     internal node entry head/only segment
-+ */
-+typedef struct {
-+      pxd_t xd;               /* 8: child extent descriptor */
-+
-+      s8 next;                /* 1: */
-+      u8 namlen;              /* 1: */
-+      UniChar name[11];       /* 22: 2-byte aligned */
-+} idtentry_t;                 /* (32) */
-+
-+/*
-+ *    leaf node entry head/only segment
-+ *
-+ *    For legacy filesystems, name contains 13 unichars -- no index field
-+ */
-+typedef struct {
-+      u32 inumber;            /* 4: 4-byte aligned */
-+      s8 next;                /* 1: */
-+      u8 namlen;              /* 1: */
-+      UniChar name[11];       /* 22: 2-byte aligned */
-+      u32 index;              /* 4: index into dir_table */
-+} ldtentry_t;                 /* (32) */
-+
-+#define DTLHDRDATALEN 11
-+
-+/*
-+ * dir_table used for directory traversal during readdir
-+*/ 
-+
-+/*
-+ * Maximum entry in inline directory table
-+ */
-+
-+typedef struct dir_table_slot {
-+      u8 rsrvd;       /* 1: */
-+      u8 flag;        /* 1: 0 if free */
-+      u8 slot;        /* 1: slot within leaf page of entry */
-+      u8 addr1;       /* 1: upper 8 bits of leaf page address */
-+      u32 addr2;      /* 4: lower 32 bits of leaf page address -OR-
-+                            index of next entry when this entry was deleted */
-+} dir_table_slot_t;   /* (8) */
-+
-+/*
-+ *    directory root page (in-line in on-disk inode):
-+ *
-+ * cf. dtpage_t below.
-+ */
-+typedef union {
-+      struct {
-+              dasd_t DASD;    /* 16: DASD limit/usage info  F226941 */
-+
-+              u8 flag;        /* 1: */
-+              s8 nextindex;   /* 1: next free entry in stbl */
-+              s8 freecnt;     /* 1: free count */
-+              s8 freelist;    /* 1: freelist header */
-+
-+              u32 idotdot;    /* 4: parent inode number */
-+
-+              s8 stbl[8];     /* 8: sorted entry index table */
-+      } header;               /* (32) */
-+
-+      dtslot_t slot[9];
-+} dtroot_t;
-+
-+/*
-+ *    directory regular page:
-+ *
-+ *    entry slot array of 32 byte slot
-+ *
-+ * sorted entry slot index table (stbl):
-+ * contiguous slots at slot specified by stblindex,
-+ * 1-byte per entry
-+ *   512 byte block:  16 entry tbl (1 slot)
-+ *  1024 byte block:  32 entry tbl (1 slot)
-+ *  2048 byte block:  64 entry tbl (2 slot)
-+ *  4096 byte block: 128 entry tbl (4 slot)
-+ *
-+ * data area:
-+ *   512 byte block:  16 - 2 =  14 slot
-+ *  1024 byte block:  32 - 2 =  30 slot
-+ *  2048 byte block:  64 - 3 =  61 slot
-+ *  4096 byte block: 128 - 5 = 123 slot
-+ *
-+ * N.B. index is 0-based; index fields refer to slot index
-+ * except nextindex which refers to entry index in stbl;
-+ * end of entry stot list or freelist is marked with -1.
-+ */
-+typedef union {
-+      struct {
-+              s64 next;       /* 8: next sibling */
-+              s64 prev;       /* 8: previous sibling */
-+
-+              u8 flag;        /* 1: */
-+              s8 nextindex;   /* 1: next entry index in stbl */
-+              s8 freecnt;     /* 1: */
-+              s8 freelist;    /* 1: slot index of head of freelist */
-+
-+              u8 maxslot;     /* 1: number of slots in page slot[] */
-+              s8 stblindex;   /* 1: slot index of start of stbl */
-+              u8 rsrvd[2];    /* 2: */
-+
-+              pxd_t self;     /* 8: self pxd */
-+      } header;               /* (32) */
-+
-+      dtslot_t slot[128];
-+} dtpage_t;
-+
-+/* from jfs_xtree.h */
-+
-+/*
-+ *      extent allocation descriptor (xad)
-+ */
-+typedef struct xad {
-+      unsigned flag:8;        /* 1: flag */
-+      unsigned rsvrd:16;      /* 2: reserved */
-+      unsigned off1:8;        /* 1: offset in unit of fsblksize */
-+      u32 off2;               /* 4: offset in unit of fsblksize */
-+      unsigned len:24;        /* 3: length in unit of fsblksize */
-+      unsigned addr1:8;       /* 1: address in unit of fsblksize */
-+      u32 addr2;              /* 4: address in unit of fsblksize */
-+} xad_t;                      /* (16) */
-+
-+/* xad_t field extraction */
-+#define offsetXAD(xad)        (((s64)((xad)->off1)) << 32 | ((xad)->off2))
-+#define addressXAD(xad)       (((s64)((xad)->addr1)) << 32 | ((xad)->addr2))
-+#define lengthXAD(xad)        ((xad)->len)
-+
-+/* possible values for maxentry */
-+#define XTPAGEMAXSLOT   256
-+#define XTENTRYSTART    2
-+
-+/*
-+ *      xtree page:
-+ */
-+typedef union {
-+      struct xtheader {
-+              s64 next;       /* 8: */
-+              s64 prev;       /* 8: */
-+
-+              u8 flag;        /* 1: */
-+              u8 rsrvd1;      /* 1: */
-+              s16 nextindex;  /* 2: next index = number of entries */
-+              s16 maxentry;   /* 2: max number of entries */
-+              s16 rsrvd2;     /* 2: */
-+
-+              pxd_t self;     /* 8: self */
-+      } header;               /* (32) */
-+
-+      xad_t xad[XTPAGEMAXSLOT];       /* 16 * maxentry: xad array */
-+} xtpage_t;
-+
-+/* from jfs_dinode.h */
-+
-+struct dinode {
-+      /*
-+       *      I. base area (128 bytes)
-+       *      ------------------------
-+       *
-+       * define generic/POSIX attributes
-+       */
-+      u32 di_inostamp;        /* 4: stamp to show inode belongs to fileset */
-+      s32 di_fileset;         /* 4: fileset number */
-+      u32 di_number;          /* 4: inode number, aka file serial number */
-+      u32 di_gen;             /* 4: inode generation number */
-+
-+      pxd_t di_ixpxd;         /* 8: inode extent descriptor */
-+
-+      s64 di_size;            /* 8: size */
-+      s64 di_nblocks;         /* 8: number of blocks allocated */
-+
-+      u32 di_nlink;           /* 4: number of links to the object */
-+
-+      u32 di_uid;             /* 4: user id of owner */
-+      u32 di_gid;             /* 4: group id of owner */
-+
-+      u32 di_mode;            /* 4: attribute, format and permission */
-+
-+      struct timestruc_t di_atime;    /* 8: time last data accessed */
-+      struct timestruc_t di_ctime;    /* 8: time last status changed */
-+      struct timestruc_t di_mtime;    /* 8: time last data modified */
-+      struct timestruc_t di_otime;    /* 8: time created */
-+
-+      dxd_t di_acl;           /* 16: acl descriptor */
-+
-+      dxd_t di_ea;            /* 16: ea descriptor */
-+
-+      s32 di_next_index;  /* 4: Next available dir_table index */
-+
-+      s32 di_acltype;         /* 4: Type of ACL */
-+
-+      /*
-+       *      Extension Areas.
-+       *
-+       *      Historically, the inode was partitioned into 4 128-byte areas,
-+       *      the last 3 being defined as unions which could have multiple
-+       *      uses.  The first 96 bytes had been completely unused until
-+       *      an index table was added to the directory.  It is now more
-+       *      useful to describe the last 3/4 of the inode as a single
-+       *      union.  We would probably be better off redesigning the
-+       *      entire structure from scratch, but we don't want to break
-+       *      commonality with OS/2's JFS at this time.
-+       */
-+      union {
-+              struct {
-+                      /*
-+                       * This table contains the information needed to
-+                       * find a directory entry from a 32-bit index.
-+                       * If the index is small enough, the table is inline,
-+                       * otherwise, an x-tree root overlays this table
-+                       */
-+                      dir_table_slot_t _table[12];    /* 96: inline */
-+
-+                      dtroot_t _dtroot;               /* 288: dtree root */
-+              } _dir;                                 /* (384) */
-+#define di_dirtable   u._dir._table
-+#define di_dtroot     u._dir._dtroot
-+#define di_parent       di_dtroot.header.idotdot
-+#define di_DASD               di_dtroot.header.DASD
-+
-+              struct {
-+                      union {
-+                              u8 _data[96];           /* 96: unused */
-+                              struct {
-+                                      void *_imap;    /* 4: unused */
-+                                      u32 _gengen;    /* 4: generator */
-+                              } _imap;
-+                      } _u1;                          /* 96: */
-+#define di_gengen     u._file._u1._imap._gengen
-+
-+                      union {
-+                              xtpage_t _xtroot;
-+                              struct {
-+                                      u8 unused[16];  /* 16: */
-+                                      dxd_t _dxd;     /* 16: */
-+                                      union {
-+                                              u32 _rdev;      /* 4: */
-+                                              u8 _fastsymlink[128];
-+                                      } _u;
-+                                      u8 _inlineea[128];
-+                              } _special;
-+                      } _u2;
-+              } _file;
-+#define di_xtroot     u._file._u2._xtroot
-+#define di_dxd                u._file._u2._special._dxd
-+#define di_btroot     di_xtroot
-+#define di_inlinedata u._file._u2._special._u
-+#define di_rdev               u._file._u2._special._u._rdev
-+#define di_fastsymlink        u._file._u2._special._u._fastsymlink
-+#define di_inlineea     u._file._u2._special._inlineea
-+      } u;
-+};
-+
-+typedef struct dinode dinode_t;
-+
-+/* di_mode */
-+#define IFMT  0xF000          /* S_IFMT - mask of file type */
-+#define IFDIR 0x4000          /* S_IFDIR - directory */
-+#define IFREG 0x8000          /* S_IFREG - regular file */
-+#define IFLNK 0xA000          /* S_IFLNK - symbolic link */
-+
-+/* extended mode bits (on-disk inode di_mode) */
-+#define INLINEEA        0x00040000    /* inline EA area free */
-+
-+/* from jfs_imap.h */
-+
-+#define       EXTSPERIAG      128     /* number of disk inode extent per iag  */
-+#define SMAPSZ                4       /* number of words per summary map      */
-+#define       MAXAG           128     /* maximum number of allocation groups  */
-+
-+/*
-+ *    inode allocation map:
-+ * 
-+ * inode allocation map consists of 
-+ * . the inode map control page and
-+ * . inode allocation group pages (per 4096 inodes)
-+ * which are addressed by standard JFS xtree.
-+ */
-+/*
-+ *    inode allocation group page (per 4096 inodes of an AG)
-+ */
-+typedef struct {
-+      s64 agstart;            /* 8: starting block of ag              */
-+      s32 iagnum;             /* 4: inode allocation group number     */
-+      s32 inofreefwd;         /* 4: ag inode free list forward        */
-+      s32 inofreeback;        /* 4: ag inode free list back           */
-+      s32 extfreefwd;         /* 4: ag inode extent free list forward */
-+      s32 extfreeback;        /* 4: ag inode extent free list back    */
-+      s32 iagfree;            /* 4: iag free list                     */
-+
-+      /* summary map: 1 bit per inode extent */
-+      s32 inosmap[SMAPSZ];    /* 16: sum map of mapwords w/ free inodes;
-+                               *      note: this indicates free and backed
-+                               *      inodes, if the extent is not backed the
-+                               *      value will be 1.  if the extent is
-+                               *      backed but all inodes are being used the
-+                               *      value will be 1.  if the extent is
-+                               *      backed but at least one of the inodes is
-+                               *      free the value will be 0.
-+                               */
-+      s32 extsmap[SMAPSZ];    /* 16: sum map of mapwords w/ free extents */
-+      s32 nfreeinos;          /* 4: number of free inodes             */
-+      s32 nfreeexts;          /* 4: number of free extents            */
-+      /* (72) */
-+      u8 pad[1976];           /* 1976: pad to 2048 bytes */
-+      /* allocation bit map: 1 bit per inode (0 - free, 1 - allocated) */
-+      u32 wmap[EXTSPERIAG];   /* 512: working allocation map  */
-+      u32 pmap[EXTSPERIAG];   /* 512: persistent allocation map */
-+      pxd_t inoext[EXTSPERIAG];       /* 1024: inode extent addresses */
-+} iag_t;                      /* (4096) */
-+
-+#endif /* _JFS_H_ */
-diff -urN --exclude-from=xlist-core grub-0.90/stage2/shared.h grub-0.90.jfs+xfs/stage2/shared.h
---- grub-0.90/stage2/shared.h  Fri Jun 22 06:32:56 2001
-+++ grub-0.90.jfs+xfs/stage2/shared.h  Thu Aug 23 17:49:01 2001
-@@ -206,7 +206,9 @@
- #define STAGE2_ID_FAT_STAGE1_5                3
- #define STAGE2_ID_MINIX_STAGE1_5      4
- #define STAGE2_ID_REISERFS_STAGE1_5   5
--#define STAGE2_ID_VSTAFS_STAGE1_5     6
-+#define STAGE2_ID_JFS_STAGE1_5                6
-+#define STAGE2_ID_XFS_STAGE1_5                7
-+#define STAGE2_ID_VSTAFS_STAGE1_5     8
- #ifndef STAGE1_5
- # define STAGE2_ID    STAGE2_ID_STAGE2
-@@ -221,6 +223,10 @@
- #  define STAGE2_ID   STAGE2_ID_MINIX_STAGE1_5
- # elif defined(FSYS_REISERFS)
- #  define STAGE2_ID   STAGE2_ID_REISERFS_STAGE1_5
-+# elif defined(FSYS_JFS)
-+#  define STAGE2_ID   STAGE2_ID_JFS_STAGE1_5
-+# elif defined(FSYS_XFS)
-+#  define STAGE2_ID   STAGE2_ID_XFS_STAGE1_5
- # elif defined(FSYS_VSTAFS)
- #  define STAGE2_ID   STAGE2_ID_VSTAFS_STAGE1_5
- # else
-diff -urN --exclude-from=xlist-core grub-0.90/stage2/xfs.h grub-0.90.jfs+xfs/stage2/xfs.h
---- grub-0.90/stage2/xfs.h     Thu Jan  1 03:00:00 1970
-+++ grub-0.90.jfs+xfs/stage2/xfs.h     Wed Aug 29 02:00:47 2001
-@@ -0,0 +1,545 @@
-+/*
-+ * xfs.h - an extraction from xfsprogs-1.3.5/include/xfs* into one file
-+ *
-+ * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-+ * 
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of version 2 of the GNU General Public License as
-+ * published by the Free Software Foundation.
-+ * 
-+ * This program is distributed in the hope that it would be useful, but
-+ * WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-+ * 
-+ * Further, this software is distributed without any warranty that it is
-+ * free of the rightful claim of any third person regarding infringement
-+ * or the like.  Any license provided herein, whether implied or
-+ * otherwise, applies only to this software file.  Patent licenses, if
-+ * any, provided herein do not apply to combinations of this program with
-+ * other software, or any other product whatsoever.
-+ * 
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write the Free Software Foundation, Inc., 59
-+ * Temple Place - Suite 330, Boston MA 02111-1307, USA.
-+ * 
-+ * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
-+ * Mountain View, CA  94043, or:
-+ * 
-+ * http://www.sgi.com 
-+ * 
-+ * For further information regarding this notice, see: 
-+ * 
-+ * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
-+ */
-+
-+#ifndef _BITS_TYPES_H
-+typedef signed char   __int8_t;
-+typedef unsigned char __uint8_t;
-+typedef short         __int16_t;
-+typedef unsigned short        __uint16_t;
-+typedef int           __int32_t;
-+typedef unsigned int  __uint32_t;
-+typedef long long     __int64_t;
-+typedef unsigned long long __uint64_t;
-+#endif
-+
-+typedef __uint64_t    xfs_ino_t;
-+typedef       __uint32_t      xfs_agino_t;
-+typedef __int64_t     xfs_daddr_t;
-+typedef __int64_t     xfs_off_t;
-+typedef __uint8_t     uuid_t[16];
-+
-+
-+/* those are from xfs_types.h */
-+
-+typedef __uint32_t    xfs_agblock_t;  /* blockno in alloc. group */
-+typedef       __uint32_t      xfs_extlen_t;   /* extent length in blocks */
-+typedef       __uint32_t      xfs_agnumber_t; /* allocation group number */
-+typedef __int32_t     xfs_extnum_t;   /* # of extents in a file */
-+typedef __int16_t     xfs_aextnum_t;  /* # extents in an attribute fork */
-+typedef       __int64_t       xfs_fsize_t;    /* bytes in a file */
-+
-+typedef       __uint32_t      xfs_dablk_t;    /* dir/attr block number (in file) */
-+typedef       __uint32_t      xfs_dahash_t;   /* dir/attr hash value */
-+
-+/*
-+ * Disk based types:
-+ */
-+typedef __uint64_t    xfs_dfsbno_t;   /* blockno in filesystem (agno|agbno) */
-+typedef __uint64_t    xfs_drfsbno_t;  /* blockno in filesystem (raw) */
-+typedef       __uint64_t      xfs_drtbno_t;   /* extent (block) in realtime area */
-+typedef       __uint64_t      xfs_dfiloff_t;  /* block number in a file */
-+
-+typedef       __uint64_t      xfs_fsblock_t;  /* blockno in filesystem (agno|agbno) */
-+typedef       __uint64_t      xfs_fileoff_t;  /* block number in a file */
-+typedef       __uint64_t      xfs_filblks_t;  /* number of blocks in a file */
-+
-+
-+/* those are from xfs_sb.h */
-+
-+#define       XFS_SB_MAGIC            0x58465342      /* 'XFSB'*/
-+#define       XFS_SB_VERSION_4        4               /* 6.2+ - bitmask version */
-+#define       XFS_SB_VERSION_NUMBITS  0x000f
-+
-+typedef struct xfs_sb
-+{
-+      __uint32_t      sb_magicnum;    /* magic number == XFS_SB_MAGIC */
-+      __uint32_t      sb_blocksize;   /* logical block size, bytes */
-+      xfs_drfsbno_t   sb_dblocks;     /* number of data blocks */
-+      xfs_drfsbno_t   sb_rblocks;     /* number of realtime blocks */
-+      xfs_drtbno_t    sb_rextents;    /* number of realtime extents */
-+      uuid_t          sb_uuid;        /* file system unique id */
-+      xfs_dfsbno_t    sb_logstart;    /* starting block of log if internal */
-+      xfs_ino_t       sb_rootino;     /* root inode number */
-+      xfs_ino_t       sb_rbmino;      /* bitmap inode for realtime extents */
-+      xfs_ino_t       sb_rsumino;     /* summary inode for rt bitmap */
-+      xfs_agblock_t   sb_rextsize;    /* realtime extent size, blocks */
-+      xfs_agblock_t   sb_agblocks;    /* size of an allocation group */
-+      xfs_agnumber_t  sb_agcount;     /* number of allocation groups */
-+      xfs_extlen_t    sb_rbmblocks;   /* number of rt bitmap blocks */
-+      xfs_extlen_t    sb_logblocks;   /* number of log blocks */
-+      __uint16_t      sb_versionnum;  /* header version == XFS_SB_VERSION */
-+      __uint16_t      sb_sectsize;    /* volume sector size, bytes */
-+      __uint16_t      sb_inodesize;   /* inode size, bytes */
-+      __uint16_t      sb_inopblock;   /* inodes per block */
-+      char            sb_fname[12];   /* file system name */
-+      __uint8_t       sb_blocklog;    /* log2 of sb_blocksize */
-+      __uint8_t       sb_sectlog;     /* log2 of sb_sectsize */
-+      __uint8_t       sb_inodelog;    /* log2 of sb_inodesize */
-+      __uint8_t       sb_inopblog;    /* log2 of sb_inopblock */
-+      __uint8_t       sb_agblklog;    /* log2 of sb_agblocks (rounded up) */
-+      __uint8_t       sb_rextslog;    /* log2 of sb_rextents */
-+      __uint8_t       sb_inprogress;  /* mkfs is in progress, don't mount */
-+      __uint8_t       sb_imax_pct;    /* max % of fs for inode space */
-+                                      /* statistics */
-+      /*
-+       * These fields must remain contiguous.  If you really
-+       * want to change their layout, make sure you fix the
-+       * code in xfs_trans_apply_sb_deltas().
-+       */
-+      __uint64_t      sb_icount;      /* allocated inodes */
-+      __uint64_t      sb_ifree;       /* free inodes */
-+      __uint64_t      sb_fdblocks;    /* free data blocks */
-+      __uint64_t      sb_frextents;   /* free realtime extents */
-+      /*
-+       * End contiguous fields.
-+       */
-+      xfs_ino_t       sb_uquotino;    /* user quota inode */
-+      xfs_ino_t       sb_gquotino;    /* group quota inode */
-+      __uint16_t      sb_qflags;      /* quota flags */
-+      __uint8_t       sb_flags;       /* misc. flags */
-+      __uint8_t       sb_shared_vn;   /* shared version number */
-+      xfs_extlen_t    sb_inoalignmt;  /* inode chunk alignment, fsblocks */
-+      __uint32_t      sb_unit;        /* stripe or raid unit */
-+      __uint32_t      sb_width;       /* stripe or raid width */      
-+      __uint8_t       sb_dirblklog;   /* log2 of dir block size (fsbs) */
-+        __uint8_t       sb_dummy[7];    /* padding */
-+} xfs_sb_t;
-+
-+
-+/* those are from xfs_btree.h */
-+
-+/*
-+ * Long form header: bmap btrees.
-+ */
-+typedef struct xfs_btree_lblock
-+{
-+      __uint32_t      bb_magic;       /* magic number for block type */
-+      __uint16_t      bb_level;       /* 0 is a leaf */
-+      __uint16_t      bb_numrecs;     /* current # of data records */
-+      xfs_dfsbno_t    bb_leftsib;     /* left sibling block or NULLDFSBNO */
-+      xfs_dfsbno_t    bb_rightsib;    /* right sibling block or NULLDFSBNO */
-+} xfs_btree_lblock_t;
-+
-+/*
-+ * Combined header and structure, used by common code.
-+ */
-+typedef struct xfs_btree_hdr
-+{
-+      __uint32_t      bb_magic;       /* magic number for block type */
-+      __uint16_t      bb_level;       /* 0 is a leaf */
-+      __uint16_t      bb_numrecs;     /* current # of data records */
-+} xfs_btree_hdr_t;
-+
-+typedef struct xfs_btree_block
-+{
-+      xfs_btree_hdr_t bb_h;           /* header */
-+      union           {
-+              struct  {
-+                      xfs_agblock_t   bb_leftsib;
-+                      xfs_agblock_t   bb_rightsib;
-+              }       s;              /* short form pointers */
-+              struct  {
-+                      xfs_dfsbno_t    bb_leftsib;
-+                      xfs_dfsbno_t    bb_rightsib;
-+              }       l;              /* long form pointers */
-+      }               bb_u;           /* rest */
-+} xfs_btree_block_t;
-+
-+/* those are from xfs_bmap_btree.h */
-+
-+/*
-+ * Bmap root header, on-disk form only.
-+ */
-+typedef struct xfs_bmdr_block
-+{
-+      __uint16_t      bb_level;       /* 0 is a leaf */
-+      __uint16_t      bb_numrecs;     /* current # of data records */
-+} xfs_bmdr_block_t;
-+
-+/*
-+ * Bmap btree record and extent descriptor.
-+ * For 32-bit kernels,
-+ *  l0:31 is an extent flag (value 1 indicates non-normal).
-+ *  l0:0-30 and l1:9-31 are startoff.
-+ *  l1:0-8, l2:0-31, and l3:21-31 are startblock.
-+ *  l3:0-20 are blockcount.
-+ * For 64-bit kernels,
-+ *  l0:63 is an extent flag (value 1 indicates non-normal).
-+ *  l0:9-62 are startoff.
-+ *  l0:0-8 and l1:21-63 are startblock.
-+ *  l1:0-20 are blockcount.
-+ */
-+
-+#define       BMBT_USE_64     1
-+
-+typedef struct xfs_bmbt_rec_32
-+{
-+      __uint32_t              l0, l1, l2, l3;
-+} xfs_bmbt_rec_32_t;
-+typedef struct xfs_bmbt_rec_64
-+{
-+      __uint64_t              l0, l1;
-+} xfs_bmbt_rec_64_t;
-+
-+#if BMBT_USE_64
-+typedef       __uint64_t      xfs_bmbt_rec_base_t;    /* use this for casts */
-+typedef xfs_bmbt_rec_64_t xfs_bmbt_rec_t, xfs_bmdr_rec_t;
-+#else /* !BMBT_USE_64 */
-+typedef       __uint32_t      xfs_bmbt_rec_base_t;    /* use this for casts */
-+typedef xfs_bmbt_rec_32_t xfs_bmbt_rec_t, xfs_bmdr_rec_t;
-+#endif        /* BMBT_USE_64 */
-+
-+/*
-+ * Key structure for non-leaf levels of the tree.
-+ */
-+typedef struct xfs_bmbt_key
-+{
-+      xfs_dfiloff_t   br_startoff;    /* starting file offset */
-+} xfs_bmbt_key_t, xfs_bmdr_key_t;
-+
-+typedef xfs_dfsbno_t xfs_bmbt_ptr_t, xfs_bmdr_ptr_t;  /* btree pointer type */
-+                                      /* btree block header type */
-+typedef       struct xfs_btree_lblock xfs_bmbt_block_t;
-+
-+
-+/* those are from xfs_dir2.h */
-+/*
-+ * Directory version 2.
-+ * There are 4 possible formats:
-+ *    shortform
-+ *    single block - data with embedded leaf at the end
-+ *    multiple data blocks, single leaf+freeindex block
-+ *    data blocks, node&leaf blocks (btree), freeindex blocks
-+ *
-+ *    The shortform format is in xfs_dir2_sf.h.
-+ *    The single block format is in xfs_dir2_block.h.
-+ *    The data block format is in xfs_dir2_data.h.
-+ *    The leaf and freeindex block formats are in xfs_dir2_leaf.h.
-+ *    Node blocks are the same as the other version, in xfs_da_btree.h.
-+ */
-+
-+/*
-+ * Byte offset in data block and shortform entry.
-+ */
-+typedef       __uint16_t      xfs_dir2_data_off_t;
-+
-+/*
-+ * Byte offset in a directory.
-+ */
-+typedef       xfs_off_t               xfs_dir2_off_t;
-+
-+/* those are from xfs_da_btree.h */
-+/*========================================================================
-+ * Directory Structure when greater than XFS_LBSIZE(mp) bytes.
-+ *========================================================================*/
-+
-+/*
-+ * This structure is common to both leaf nodes and non-leaf nodes in the Btree.
-+ *
-+ * Is is used to manage a doubly linked list of all blocks at the same
-+ * level in the Btree, and to identify which type of block this is.
-+ */
-+#define       XFS_DIR2_LEAF1_MAGIC    0xd2f1  /* magic number: v2 dirlf single blks */
-+#define       XFS_DIR2_LEAFN_MAGIC    0xd2ff  /* magic number: v2 dirlf multi blks */
-+
-+typedef struct xfs_da_blkinfo {
-+      xfs_dablk_t forw;                       /* previous block in list */
-+      xfs_dablk_t back;                       /* following block in list */
-+      __uint16_t magic;                       /* validity check on block */
-+      __uint16_t pad;                         /* unused */
-+} xfs_da_blkinfo_t;
-+
-+/*
-+ * This is the structure of the root and intermediate nodes in the Btree.
-+ * The leaf nodes are defined above.
-+ *
-+ * Entries are not packed.
-+ *
-+ * Since we have duplicate keys, use a binary search but always follow
-+ * all match in the block, not just the first match found.
-+ */
-+
-+typedef struct xfs_da_intnode {
-+      struct xfs_da_node_hdr {        /* constant-structure header block */
-+              xfs_da_blkinfo_t info;  /* block type, links, etc. */
-+              __uint16_t count;       /* count of active entries */
-+              __uint16_t level;       /* level above leaves (leaf == 0) */
-+      } hdr;
-+      struct xfs_da_node_entry {
-+              xfs_dahash_t hashval;   /* hash value for this descendant */
-+              xfs_dablk_t before;     /* Btree block before this key */
-+      } btree[1];                     /* variable sized array of keys */
-+} xfs_da_intnode_t;
-+
-+
-+/* those are from xfs_dir2_data.h */
-+/*
-+ * Directory format 2, data block structures.
-+ */
-+
-+/*
-+ * Constants.
-+ */
-+#define       XFS_DIR2_DATA_FREE_TAG  0xffff
-+#define       XFS_DIR2_DATA_FD_COUNT  3
-+
-+/*
-+ * Structures.
-+ */
-+
-+/*
-+ * Describe a free area in the data block.
-+ * The freespace will be formatted as a xfs_dir2_data_unused_t.
-+ */
-+typedef struct xfs_dir2_data_free {
-+      xfs_dir2_data_off_t     offset;         /* start of freespace */
-+      xfs_dir2_data_off_t     length;         /* length of freespace */
-+} xfs_dir2_data_free_t;
-+
-+/*
-+ * Header for the data blocks.
-+ * Always at the beginning of a directory-sized block.
-+ * The code knows that XFS_DIR2_DATA_FD_COUNT is 3.
-+ */
-+typedef struct xfs_dir2_data_hdr {
-+      __uint32_t              magic;          /* XFS_DIR2_DATA_MAGIC */
-+                                              /* or XFS_DIR2_BLOCK_MAGIC */
-+      xfs_dir2_data_free_t    bestfree[XFS_DIR2_DATA_FD_COUNT];
-+} xfs_dir2_data_hdr_t;
-+
-+/*
-+ * Active entry in a data block.  Aligned to 8 bytes.
-+ * Tag appears as the last 2 bytes.
-+ */
-+typedef struct xfs_dir2_data_entry {
-+      xfs_ino_t               inumber;        /* inode number */
-+      __uint8_t               namelen;        /* name length */
-+      __uint8_t               name[1];        /* name bytes, no null */
-+                                              /* variable offset */
-+      xfs_dir2_data_off_t     tag;            /* starting offset of us */
-+} xfs_dir2_data_entry_t;
-+
-+/*
-+ * Unused entry in a data block.  Aligned to 8 bytes.
-+ * Tag appears as the last 2 bytes.
-+ */
-+typedef struct xfs_dir2_data_unused {
-+      __uint16_t              freetag;        /* XFS_DIR2_DATA_FREE_TAG */
-+      xfs_dir2_data_off_t     length;         /* total free length */
-+                                              /* variable offset */
-+      xfs_dir2_data_off_t     tag;            /* starting offset of us */
-+} xfs_dir2_data_unused_t;
-+
-+typedef union {
-+      xfs_dir2_data_entry_t   entry;
-+      xfs_dir2_data_unused_t  unused;
-+} xfs_dir2_data_union_t;
-+
-+
-+/* those are from xfs_dir2_leaf.h */
-+/*
-+ * Directory version 2, leaf block structures.
-+ */
-+
-+/*
-+ * Leaf block header.
-+ */
-+typedef struct xfs_dir2_leaf_hdr {
-+      xfs_da_blkinfo_t        info;           /* header for da routines */
-+      __uint16_t              count;          /* count of entries */
-+      __uint16_t              stale;          /* count of stale entries */
-+} xfs_dir2_leaf_hdr_t;
-+
-+
-+/* those are from xfs_dir2_block.h */
-+/*
-+ * xfs_dir2_block.h
-+ * Directory version 2, single block format structures
-+ */
-+
-+/*
-+ * The single block format is as follows:
-+ * xfs_dir2_data_hdr_t structure
-+ * xfs_dir2_data_entry_t and xfs_dir2_data_unused_t structures
-+ * xfs_dir2_leaf_entry_t structures
-+ * xfs_dir2_block_tail_t structure
-+ */
-+
-+#define       XFS_DIR2_BLOCK_MAGIC    0x58443242      /* XD2B: for one block dirs */
-+
-+typedef struct xfs_dir2_block_tail {
-+      __uint32_t      count;                  /* count of leaf entries */
-+      __uint32_t      stale;                  /* count of stale lf entries */
-+} xfs_dir2_block_tail_t;
-+
-+
-+/* those are from xfs_dir2_sf.h */
-+
-+/*
-+ * Directory layout when stored internal to an inode.
-+ *
-+ * Small directories are packed as tightly as possible so as to
-+ * fit into the literal area of the inode.
-+ */
-+
-+/*
-+ * Inode number stored as 8 8-bit values.
-+ */
-+typedef       struct { __uint8_t i[8]; } xfs_dir2_ino8_t;
-+
-+/*
-+ * Inode number stored as 4 8-bit values.
-+ * Works a lot of the time, when all the inode numbers in a directory
-+ * fit in 32 bits.
-+ */
-+typedef struct { __uint8_t i[4]; } xfs_dir2_ino4_t;
-+
-+typedef union {
-+      xfs_dir2_ino8_t i8;
-+      xfs_dir2_ino4_t i4;
-+} xfs_dir2_inou_t;
-+
-+/*
-+ * Normalized offset (in a data block) of the entry, really xfs_dir2_data_off_t.
-+ * Only need 16 bits, this is the byte offset into the single block form.
-+ */
-+typedef struct { __uint8_t i[2]; } xfs_dir2_sf_off_t;
-+
-+/*
-+ * The parent directory has a dedicated field, and the self-pointer must
-+ * be calculated on the fly.
-+ *
-+ * Entries are packed toward the top as tightly as possible.  The header
-+ * and the elements must be bcopy()'d out into a work area to get correct
-+ * alignment for the inode number fields.
-+ */
-+typedef struct xfs_dir2_sf_hdr {
-+      __uint8_t               count;          /* count of entries */
-+      __uint8_t               i8count;        /* count of 8-byte inode #s */
-+      xfs_dir2_inou_t         parent;         /* parent dir inode number */
-+} xfs_dir2_sf_hdr_t;
-+
-+typedef struct xfs_dir2_sf_entry {
-+      __uint8_t               namelen;        /* actual name length */
-+      xfs_dir2_sf_off_t       offset;         /* saved offset */
-+      __uint8_t               name[1];        /* name, variable size */
-+      xfs_dir2_inou_t         inumber;        /* inode number, var. offset */
-+} xfs_dir2_sf_entry_t;
-+
-+typedef struct xfs_dir2_sf {
-+      xfs_dir2_sf_hdr_t       hdr;            /* shortform header */
-+      xfs_dir2_sf_entry_t     list[1];        /* shortform entries */
-+} xfs_dir2_sf_t;
-+
-+/* those are from xfs_dinode.h */
-+
-+#define       XFS_DINODE_VERSION_1    1
-+#define       XFS_DINODE_VERSION_2    2
-+#define       XFS_DINODE_MAGIC        0x494e  /* 'IN' */
-+
-+/*
-+ * Disk inode structure.
-+ * This is just the header; the inode is expanded to fill a variable size
-+ * with the last field expanding.  It is split into the core and "other"
-+ * because we only need the core part in the in-core inode.
-+ */
-+typedef struct xfs_timestamp {
-+      __int32_t       t_sec;          /* timestamp seconds */
-+      __int32_t       t_nsec;         /* timestamp nanoseconds */
-+} xfs_timestamp_t;
-+
-+/*
-+ * Note: Coordinate changes to this structure with the XFS_DI_* #defines
-+ * below and the offsets table in xfs_ialloc_log_di().
-+ */
-+typedef struct xfs_dinode_core
-+{
-+      __uint16_t      di_magic;       /* inode magic # = XFS_DINODE_MAGIC */
-+      __uint16_t      di_mode;        /* mode and type of file */
-+      __int8_t        di_version;     /* inode version */
-+      __int8_t        di_format;      /* format of di_c data */
-+      __uint16_t      di_onlink;      /* old number of links to file */
-+      __uint32_t      di_uid;         /* owner's user id */
-+      __uint32_t      di_gid;         /* owner's group id */
-+      __uint32_t      di_nlink;       /* number of links to file */
-+      __uint16_t      di_projid;      /* owner's project id */
-+      __uint8_t       di_pad[10];     /* unused, zeroed space */
-+      xfs_timestamp_t di_atime;       /* time last accessed */
-+      xfs_timestamp_t di_mtime;       /* time last modified */
-+      xfs_timestamp_t di_ctime;       /* time created/inode modified */
-+      xfs_fsize_t     di_size;        /* number of bytes in file */
-+      xfs_drfsbno_t   di_nblocks;     /* # of direct & btree blocks used */
-+      xfs_extlen_t    di_extsize;     /* basic/minimum extent size for file */
-+      xfs_extnum_t    di_nextents;    /* number of extents in data fork */
-+      xfs_aextnum_t   di_anextents;   /* number of extents in attribute fork*/
-+      __uint8_t       di_forkoff;     /* attr fork offs, <<3 for 64b align */
-+      __int8_t        di_aformat;     /* format of attr fork's data */
-+      __uint32_t      di_dmevmask;    /* DMIG event mask */
-+      __uint16_t      di_dmstate;     /* DMIG state info */
-+      __uint16_t      di_flags;       /* random flags, XFS_DIFLAG_... */
-+      __uint32_t      di_gen;         /* generation number */
-+} xfs_dinode_core_t;
-+
-+typedef struct xfs_dinode
-+{
-+      xfs_dinode_core_t       di_core;
-+      xfs_agino_t             di_next_unlinked;/* agi unlinked list ptr */
-+      union {
-+              xfs_bmdr_block_t di_bmbt;       /* btree root block */
-+              xfs_bmbt_rec_32_t di_bmx[1];    /* extent list */
-+              xfs_dir2_sf_t   di_dir2sf;      /* shortform directory v2 */
-+              char            di_c[1];        /* local contents */
-+      } di_u;
-+} xfs_dinode_t;
-+
-+/*
-+ * Values for di_format
-+ */
-+typedef enum xfs_dinode_fmt
-+{
-+      XFS_DINODE_FMT_DEV,             /* CHR, BLK: di_dev */
-+      XFS_DINODE_FMT_LOCAL,           /* DIR, REG: di_c */
-+                                      /* LNK: di_symlink */
-+      XFS_DINODE_FMT_EXTENTS,         /* DIR, REG, LNK: di_bmx */
-+      XFS_DINODE_FMT_BTREE,           /* DIR, REG, LNK: di_bmbt */
-+      XFS_DINODE_FMT_UUID             /* MNT: di_uuid */
-+} xfs_dinode_fmt_t;
-+
-+/*
-+ * File types (mode field)
-+ */
-+#define       IFMT            0170000         /* type of file */
-+#define       IFDIR           0040000         /* directory */
-+#define       IFREG           0100000         /* regular */
-+#define       IFLNK           0120000         /* symbolic link */
This page took 0.212412 seconds and 4 git commands to generate.