From 5d2802e4030ed9177c01e751fd89c898eaf90f88 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Sat, 23 Apr 2011 09:50:38 +0100 Subject: [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 --- src/include/ipxe/null_sanboot.h | 5 +++++ src/include/ipxe/sanboot.h | 11 +++++++++-- src/include/usr/autoboot.h | 14 +++++++++++++- 3 files changed, 27 insertions(+), 3 deletions(-) (limited to 'src/include') 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 @@ -58,12 +58,19 @@ struct uri; /* Include all architecture-dependent sanboot API headers */ #include +/** + * 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 ); -- cgit v1.2.3-55-g7522