summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
authorMichael Brown2011-04-23 10:50:38 +0200
committerMichael Brown2011-04-24 17:44:34 +0200
commit5d2802e4030ed9177c01e751fd89c898eaf90f88 (patch)
tree40d2468fd50c4ea6f39ee165536eb782e7ec0376 /src/include
parent[parseopt] Allow for pre-initialised option sets (diff)
downloadipxe-5d2802e4030ed9177c01e751fd89c898eaf90f88.tar.gz
ipxe-5d2802e4030ed9177c01e751fd89c898eaf90f88.tar.xz
ipxe-5d2802e4030ed9177c01e751fd89c898eaf90f88.zip
[sanboot] Add "sanhook" and "sanunhook" commands
Expose the multiple-SAN-drive capability of the iPXE core via the iPXE command line by adding commands to hook and unhook additional drives. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include')
-rw-r--r--src/include/ipxe/null_sanboot.h5
-rw-r--r--src/include/ipxe/sanboot.h11
-rw-r--r--src/include/usr/autoboot.h14
3 files changed, 27 insertions, 3 deletions
diff --git a/src/include/ipxe/null_sanboot.h b/src/include/ipxe/null_sanboot.h
index 341a9a1d2..2b3a2c74d 100644
--- a/src/include/ipxe/null_sanboot.h
+++ b/src/include/ipxe/null_sanboot.h
@@ -15,4 +15,9 @@ FILE_LICENCE ( GPL2_OR_LATER );
#define SANBOOT_PREFIX_null __null_
#endif
+static inline __always_inline unsigned int
+SANBOOT_INLINE ( null, san_default_drive ) ( void ) {
+ return 0;
+}
+
#endif /* _IPXE_NULL_SANBOOT_H */
diff --git a/src/include/ipxe/sanboot.h b/src/include/ipxe/sanboot.h
index 913282eb5..14c8a5da4 100644
--- a/src/include/ipxe/sanboot.h
+++ b/src/include/ipxe/sanboot.h
@@ -59,11 +59,18 @@ struct uri;
#include <bits/sanboot.h>
/**
+ * Get default SAN drive number
+ *
+ * @ret drive Default drive number
+ */
+unsigned int san_default_drive ( void );
+
+/**
* Hook SAN device
*
* @v uri URI
- * @v drive Requested drive number
- * @ret drive Assigned drive number, or negative error
+ * @v drive Drive number
+ * @ret rc Return status code
*/
int san_hook ( struct uri *uri, unsigned int drive );
diff --git a/src/include/usr/autoboot.h b/src/include/usr/autoboot.h
index a608b3dce..25b9f073d 100644
--- a/src/include/usr/autoboot.h
+++ b/src/include/usr/autoboot.h
@@ -14,7 +14,19 @@ struct net_device;
struct uri;
struct settings;
-extern int uriboot ( struct uri *filename, struct uri *root_path );
+/** uriboot() flags */
+enum uriboot_flags {
+ URIBOOT_NO_SAN_DESCRIBE = 0x0001,
+ URIBOOT_NO_SAN_BOOT = 0x0002,
+ URIBOOT_NO_SAN_UNHOOK = 0x0004,
+};
+
+#define URIBOOT_NO_SAN ( URIBOOT_NO_SAN_DESCRIBE | \
+ URIBOOT_NO_SAN_BOOT | \
+ URIBOOT_NO_SAN_UNHOOK )
+
+extern int uriboot ( struct uri *filename, struct uri *root_path, int drive,
+ unsigned int flags );
extern struct uri *
fetch_next_server_and_filename ( struct settings *settings );
extern int netboot ( struct net_device *netdev );