summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/sys/multiboot2_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/sys/multiboot2_impl.h')
-rw-r--r--usr/src/uts/common/sys/multiboot2_impl.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/usr/src/uts/common/sys/multiboot2_impl.h b/usr/src/uts/common/sys/multiboot2_impl.h
new file mode 100644
index 0000000000..d90ed0e8ee
--- /dev/null
+++ b/usr/src/uts/common/sys/multiboot2_impl.h
@@ -0,0 +1,53 @@
+/*
+ * This file and its contents are supplied under the terms of the
+ * Common Development and Distribution License ("CDDL"), version 1.0.
+ * You may only use this file in accordance with the terms of version
+ * 1.0 of the CDDL.
+ *
+ * A full copy of the text of the CDDL should have accompanied this
+ * source. A copy of the CDDL is also available via the Internet at
+ * http://www.illumos.org/license/CDDL.
+ */
+
+/*
+ * Copyright 2016 Toomas Soome <tsoome@me.com>
+ */
+
+#ifndef _SYS_MULTIBOOT2_IMPL_H
+#define _SYS_MULTIBOOT2_IMPL_H
+
+/*
+ * Multiboot 2 protocol implementation for dboot.
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <sys/multiboot2.h>
+
+extern void *dboot_multiboot2_find_tag(multiboot2_info_header_t *, uint32_t);
+extern char *dboot_multiboot2_cmdline(multiboot2_info_header_t *);
+extern int dboot_multiboot2_modcount(multiboot2_info_header_t *);
+extern uint32_t dboot_multiboot2_modstart(multiboot2_info_header_t *, int);
+extern uint32_t dboot_multiboot2_modend(multiboot2_info_header_t *, int);
+extern char *dboot_multiboot2_modcmdline(multiboot2_info_header_t *, int);
+extern multiboot_tag_mmap_t *
+ dboot_multiboot2_get_mmap_tagp(multiboot2_info_header_t *);
+extern boolean_t dboot_multiboot2_basicmeminfo(multiboot2_info_header_t *,
+ uint32_t *, uint32_t *);
+extern uint64_t dboot_multiboot2_mmap_get_length(multiboot2_info_header_t *,
+ multiboot_tag_mmap_t *, int);
+extern uint64_t dboot_multiboot2_mmap_get_base(multiboot2_info_header_t *,
+ multiboot_tag_mmap_t *, int);
+extern uint32_t dboot_multiboot2_mmap_get_type(multiboot2_info_header_t *,
+ multiboot_tag_mmap_t *, int);
+extern int dboot_multiboot2_mmap_nentries(multiboot2_info_header_t *,
+ multiboot_tag_mmap_t *);
+extern paddr_t dboot_multiboot2_highest_addr(multiboot2_info_header_t *);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _SYS_MULTIBOOT2_IMPL_H */