Files
ipxe/src/include/usr/autoboot.h
T
Michael Brown 636ccb4ca5 [block] Allow for additional SAN boot parameters alongside filename
The drive specification alone does not necessarily contain enough
information to perform a SAN boot (or local disk boot) under UEFI.  If
the next-stage bootloader is installed in the EFI system partition
under a non-standard name (e.g. "\EFI\debian\grubx64.efi") then this
explicit boot filename must also be specified.

Generalise this concept to use a "SAN boot configuration parameters"
structure (currently containing only the optional explicit boot
filename), to allow for easy expansion to provide other parameters
such as the partition UUID or volume label.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
2024-03-06 12:19:22 +00:00

46 lines
1.1 KiB
C

#ifndef _USR_AUTOBOOT_H
#define _USR_AUTOBOOT_H
/** @file
*
* Automatic booting
*
*/
FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
#include <ipxe/device.h>
struct net_device;
struct uri;
struct settings;
struct san_boot_config;
/** 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 void set_autoboot_busloc ( unsigned int bus_type,
unsigned int location );
extern void set_autoboot_ll_addr ( const void *ll_addr, size_t len,
unsigned int vlan );
extern int uriboot ( struct uri *filename, struct uri **root_paths,
unsigned int root_path_count, int drive,
struct san_boot_config *san_config, unsigned int flags );
extern struct uri *
fetch_next_server_and_filename ( struct settings *settings );
extern int netboot ( struct net_device *netdev );
extern int ipxe ( struct net_device *netdev );
extern int pxe_menu_boot ( struct net_device *netdev );
#endif /* _USR_AUTOBOOT_H */