diff -ruN ../contrib/ref/hurd-l4/libl4/l4/bootinfo.h libl4/l4/bootinfo.h
--- ../contrib/ref/hurd-l4/libl4/l4/bootinfo.h 1970-01-01 01:00:00.000000000 +0100
+++ libl4/l4/bootinfo.h 2005-02-17 12:03:01.000000000 +0100
@@ -0,0 +1,199 @@
+/* l4/bootinfo.h - Public interface to the L4 bootinfo structures.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+ Written by Matthieu Lemerre
.
+
+ This file is part of the GNU L4 library.
+
+ The GNU L4 library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License
+ as published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ The GNU L4 library 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 Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU L4 library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ 02111-1307, USA. */
+
+#ifndef _L4_BOOTINFO_H
+#define _L4_BOOTINFO_H 1
+
+#include
+#include
+
+#define _L4_BOOTINFO_MAGIC 0x14b0021d
+#define _L4_BOOTINFO_VERSION 1
+
+
+/*
+ * Implemented types
+ */
+#define _L4_BOOTINFO_MULTIBOOT 0x0102
+#define _L4_BOOTINFO_MODULE 0x0001
+
+
+/*
+ * Generic BootInfo structures
+ */
+
+struct _L4_generic_bootinfo
+{
+ _L4_word_t magic;
+ _L4_word_t version;
+ _L4_word_t size;
+ _L4_word_t first_entry;
+ _L4_word_t num_entries;
+ _L4_word_t padded[3];
+};
+
+typedef struct _L4_generic_bootinfo *_L4_generic_bootinfo_t;
+
+struct _L4_generic_boot_rec
+{
+ _L4_word_t type;
+ _L4_word_t version;
+ _L4_word_t offset_next;
+};
+
+typedef struct _L4_generic_boot_rec *_L4_generic_boot_rec_t;
+
+static inline _L4_word_t
+_L4_attribute_always_inline
+_L4_generic_bootinfo_valid (_L4_generic_bootinfo_t bootinfo)
+{
+ return (bootinfo->magic == _L4_BOOTINFO_MAGIC
+ && bootinfo->version == _L4_BOOTINFO_VERSION);
+}
+
+static inline _L4_word_t
+_L4_attribute_always_inline
+_L4_generic_bootinfo_size (_L4_generic_bootinfo_t bootinfo)
+{
+ return bootinfo->size;
+}
+
+static inline _L4_generic_boot_rec_t
+_L4_attribute_always_inline
+_L4_generic_bootinfo_first_entry (_L4_generic_bootinfo_t bootinfo)
+{
+ return (_L4_generic_boot_rec_t) (((_L4_word_t) bootinfo) + bootinfo->first_entry);
+}
+
+static inline _L4_word_t
+_L4_attribute_always_inline
+_L4_generic_bootinfo_entries (_L4_generic_bootinfo_t bootinfo)
+{
+ return bootinfo->num_entries;
+}
+
+static inline _L4_word_t
+_L4_attribute_always_inline
+_L4_generic_boot_rec_type (_L4_generic_boot_rec_t boot_rec)
+{
+ return boot_rec->type;
+}
+
+static inline _L4_generic_boot_rec_t
+_L4_attribute_always_inline
+_L4_generic_boot_rec_next (_L4_generic_boot_rec_t boot_rec)
+{
+ return (_L4_generic_boot_rec_t) (((_L4_word_t) boot_rec) + boot_rec->offset_next);
+}
+
+
+/*
+ * Bootinfo type: Multiboot info (type 0x0102)
+ * Delivers location of the first byte of the mutiboot structure
+ */
+
+struct _L4_generic_bootinfo_MBI
+{
+ _L4_word_t type;
+ _L4_word_t version;
+ _L4_word_t offset_next;
+ _L4_word_t address;
+};
+
+typedef struct _L4_generic_bootinfo_MBI *_L4_generic_bootinfo_MBI_t;
+
+static inline _L4_word_t
+_L4_attribute_always_inline
+_L4_MBI_address (_L4_generic_bootinfo_MBI_t mbi)
+{
+ return mbi->address;
+}
+
+static inline _L4_word_t
+_L4_attribute_always_inline
+_L4_MBI_address_from_bootinfo (_L4_generic_bootinfo_t bi)
+{
+ _L4_generic_boot_rec_t boot_rec;
+ int num_entries = (int) bi->num_entries;
+ for (boot_rec = (_L4_generic_boot_rec_t) _L4_generic_bootinfo_first_entry (bi);
+ boot_rec->type != _L4_BOOTINFO_MULTIBOOT && num_entries-- > 0;
+ boot_rec += boot_rec->offset_next);
+ if (!num_entries)
+ return 0;
+ return _L4_MBI_address ((_L4_generic_bootinfo_MBI_t) boot_rec);
+}
+
+
+
+/*
+ * Module Type (type 0x0001)
+ * Binary file inserted in the memory by the bootloader
+ */
+
+struct _L4_generic_bootinfo_module
+{
+ _L4_word_t type;
+ _L4_word_t version;
+ _L4_word_t offset_next;
+ _L4_word_t start;
+ _L4_word_t size;
+ _L4_word_t cmdline_offset;
+};
+
+typedef struct _L4_generic_bootinfo_module *_L4_generic_bootinfo_module_t;
+
+static inline _L4_word_t
+_L4_attribute_always_inline
+_L4_module_start (_L4_generic_bootinfo_module_t mod)
+{
+ return mod->start;
+}
+
+static inline _L4_word_t
+_L4_attribute_always_inline
+_L4_module_size (_L4_generic_bootinfo_module_t mod)
+{
+ return mod->size;
+}
+
+static inline _L4_word_t
+_L4_attribute_always_inline
+_L4_module_cmdline_offset (_L4_generic_bootinfo_module_t mod)
+{
+ return mod->cmdline_offset;
+}
+
+
+static inline _L4_word_t
+_L4_attribute_always_inline
+_L4_module_cmdline (_L4_generic_bootinfo_module_t mod)
+{
+ return ((l4_word_t) mod + mod->cmdline_offset);
+}
+
+
+
+#ifdef _L4_INTERFACE_GNU
+#include
+#endif
+
+#endif /* l4/bootinfo.h */
+
diff -ruN ../contrib/ref/hurd-l4/libl4/l4/gnu/bootinfo.h libl4/l4/gnu/bootinfo.h
--- ../contrib/ref/hurd-l4/libl4/l4/gnu/bootinfo.h 1970-01-01 01:00:00.000000000 +0100
+++ libl4/l4/gnu/bootinfo.h 2005-02-17 12:03:09.000000000 +0100
@@ -0,0 +1,126 @@
+/* l4/bootinfo.h - Public GNU interface to the L4 bootinfo structures.
+ Copyright (C) 2005 Free Software Foundation, Inc.
+ Written by Alexandre Buisse .
+
+ This file is part of the GNU L4 library.
+
+ The GNU L4 library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public License
+ as published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ The GNU L4 library 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 Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU L4 library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ 02111-1307, USA. */
+
+
+#ifndef _L4_BOOTINFO_H
+# error "Never use directly; include instead."
+#endif
+
+typedef struct _L4_generic_bootinfo l4_generic_bootinfo;
+
+typedef _L4_generic_bootinfo_t l4_generic_bootinfo_t;
+
+typedef struct _L4_generic_boot_rec l4_generic_boot_rec;
+
+typedef _L4_generic_boot_rec_t l4_generic_boot_rec_t;
+
+static inline l4_word_t
+_L4_attribute_always_inline
+l4_generic_bootinfo_valid (l4_generic_bootinfo_t bootinfo)
+{
+ return _L4_generic_bootinfo_valid (bootinfo);
+}
+
+static inline l4_word_t
+_L4_attribute_always_inline
+l4_generic_bootinfo_size (l4_generic_bootinfo_t bootinfo)
+{
+ return _L4_generic_bootinfo_size (bootinfo);
+}
+
+static inline l4_generic_boot_rec_t
+_L4_attribute_always_inline
+l4_generic_bootinfo_first_entry (l4_generic_bootinfo_t bootinfo)
+{
+ return _L4_generic_bootinfo_first_entry (bootinfo);
+}
+
+static inline l4_word_t
+_L4_attribute_always_inline
+l4_generic_bootinfo_entries (l4_generic_bootinfo_t bootinfo)
+{
+ return _L4_generic_bootinfo_entries (bootinfo);
+}
+
+static inline l4_word_t
+_L4_attribute_always_inline
+l4_generic_boot_rec_type (l4_generic_boot_rec_t boot_rec)
+{
+ return _L4_generic_boot_rec_type (boot_rec);
+}
+
+static inline l4_generic_boot_rec_t
+_L4_attribute_always_inline
+l4_generic_boot_rec_next (l4_generic_boot_rec_t boot_rec)
+{
+ return _L4_generic_boot_rec_next (boot_rec);
+}
+
+typedef struct _L4_generic_bootinfo_MBI l4_generic_bootinfo_MBI;
+
+typedef _L4_generic_bootinfo_MBI_t l4_generic_bootinfo_MBI_t;
+
+static inline l4_word_t
+_L4_attribute_always_inline
+l4_MBI_address (l4_generic_bootinfo_MBI_t mbi)
+{
+ return _L4_MBI_address (mbi);
+}
+
+static inline l4_word_t
+_L4_attribute_always_inline
+l4_MBI_address_from_bootinfo (l4_generic_bootinfo_t bootinfo)
+{
+ return _L4_MBI_address_from_bootinfo (bootinfo);
+}
+
+
+typedef struct _L4_generic_bootinfo_module l4_generic_bootinfo_module;
+
+typedef _L4_generic_bootinfo_module_t l4_generic_bootinfo_module_t;
+
+static inline l4_word_t
+_L4_attribute_always_inline
+l4_module_start (l4_generic_bootinfo_module_t mod)
+{
+ return _L4_module_start (mod);
+}
+
+static inline l4_word_t
+_L4_attribute_always_inline
+l4_module_size (l4_generic_bootinfo_module_t mod)
+{
+ return _L4_module_size (mod);
+}
+
+static inline l4_word_t
+_L4_attribute_always_inline
+l4_module_cmdline_offset (l4_generic_bootinfo_module_t mod)
+{
+ return _L4_module_cmdline_offset (mod);
+}
+
+static inline l4_word_t
+_L4_attribute_always_inline
+l4_module_cmdline(l4_generic_bootinfo_module_t mod)
+{
+ return _L4_module_cmdline (mod);
+}
diff -ruN ../contrib/ref/hurd-l4/libl4/l4.h libl4/l4.h
--- ../contrib/ref/hurd-l4/libl4/l4.h 2005-02-14 16:32:34.000000000 +0100
+++ libl4/l4.h 2005-02-17 11:59:00.000000000 +0100
@@ -31,5 +31,6 @@
#include
#include
#include
+#include
#endif /* l4.h */