summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
authorMichael Brown2016-11-16 23:22:22 +0100
committerMichael Brown2016-11-17 00:03:37 +0100
commitfd95c780b6ad39ab55344c0e4b9c2125c2c2f5ad (patch)
tree9a6c7415ba176cdd6224a30ca72d3461d572290d /src/include
parent[iscsi] Avoid potential infinite loops during shutdown (diff)
downloadipxe-fd95c780b6ad39ab55344c0e4b9c2125c2c2f5ad.tar.gz
ipxe-fd95c780b6ad39ab55344c0e4b9c2125c2c2f5ad.tar.xz
ipxe-fd95c780b6ad39ab55344c0e4b9c2125c2c2f5ad.zip
[efi] Add basic EFI SAN booting capability
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include')
-rw-r--r--src/include/ipxe/efi/efi_block.h27
-rw-r--r--src/include/ipxe/errfile.h1
-rw-r--r--src/include/ipxe/sanboot.h1
3 files changed, 29 insertions, 0 deletions
diff --git a/src/include/ipxe/efi/efi_block.h b/src/include/ipxe/efi/efi_block.h
new file mode 100644
index 00000000..ea28230b
--- /dev/null
+++ b/src/include/ipxe/efi/efi_block.h
@@ -0,0 +1,27 @@
+#ifndef _IPXE_EFI_BLOCK_H
+#define _IPXE_EFI_BLOCK_H
+
+/** @block
+ *
+ * EFI block device protocols
+ *
+ */
+
+FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
+
+#ifdef SANBOOT_EFI
+#define SANBOOT_PREFIX_efi
+#else
+#define SANBOOT_PREFIX_efi __efi_
+#endif
+
+static inline __always_inline unsigned int
+SANBOOT_INLINE ( efi, san_default_drive ) ( void ) {
+ /* Drive numbers don't exist as a concept under EFI. We
+ * arbitarily choose to use drive 0x80 to minimise differences
+ * with a standard BIOS.
+ */
+ return 0x80;
+}
+
+#endif /* _IPXE_EFI_BLOCK_H */
diff --git a/src/include/ipxe/errfile.h b/src/include/ipxe/errfile.h
index 08e166ce..d0b93d02 100644
--- a/src/include/ipxe/errfile.h
+++ b/src/include/ipxe/errfile.h
@@ -71,6 +71,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
#define ERRFILE_fault ( ERRFILE_CORE | 0x001f0000 )
#define ERRFILE_blocktrans ( ERRFILE_CORE | 0x00200000 )
#define ERRFILE_pixbuf ( ERRFILE_CORE | 0x00210000 )
+#define ERRFILE_efi_block ( ERRFILE_CORE | 0x00220000 )
#define ERRFILE_eisa ( ERRFILE_DRIVER | 0x00000000 )
#define ERRFILE_isa ( ERRFILE_DRIVER | 0x00010000 )
diff --git a/src/include/ipxe/sanboot.h b/src/include/ipxe/sanboot.h
index 041e1893..c651364c 100644
--- a/src/include/ipxe/sanboot.h
+++ b/src/include/ipxe/sanboot.h
@@ -54,6 +54,7 @@ struct uri;
/* Include all architecture-independent sanboot API headers */
#include <ipxe/null_sanboot.h>
+#include <ipxe/efi/efi_block.h>
/* Include all architecture-dependent sanboot API headers */
#include <bits/sanboot.h>