X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=lib%2Ftypes%2Ftypes.h;h=e5c7e3e00225daa162c7850eb1d302da63074f7a;hp=25bf556e8ee1c931625777a5dee2ba818dbbd057;hb=fa5c9dfa37957d45b13424ade53d477f0b123102;hpb=71da0c6cb80e3708213a08c06e71f099534bcd2a diff --git a/lib/types/types.h b/lib/types/types.h index 25bf556..e5c7e3e 100644 --- a/lib/types/types.h +++ b/lib/types/types.h @@ -13,6 +13,21 @@ enum device_type { DEVICE_TYPE_UNKNOWN, }; +enum ipmi_bootdev { + IPMI_BOOTDEV_NONE = 0x00, + IPMI_BOOTDEV_NETWORK = 0x01, + IPMI_BOOTDEV_DISK = 0x2, + IPMI_BOOTDEV_SAFE = 0x3, + IPMI_BOOTDEV_CDROM = 0x5, + IPMI_BOOTDEV_SETUP = 0x6, + IPMI_BOOTDEV_INVALID = 0xff, +}; + +const char *ipmi_bootdev_display_name(enum ipmi_bootdev bootdev); +const char *device_type_display_name(enum device_type type); +const char *device_type_name(enum device_type type); +enum device_type find_device_type(const char *str); + struct device { char *id; enum device_type type; @@ -109,22 +124,28 @@ struct network_config { unsigned int n_dns_servers; }; -struct boot_priority { - /* Boot options with higher priority values will take precedence over - * lower values. Negative priorities signify "don't boot this by - * default". - */ - int priority; - enum device_type type; +struct autoboot_option { + enum { + BOOT_DEVICE_TYPE, + BOOT_DEVICE_UUID + } boot_type; + union { + enum device_type type; + char *uuid; + }; }; struct config { bool autoboot_enabled; unsigned int autoboot_timeout_sec; struct network_config network; - struct boot_priority *boot_priorities; - unsigned int n_boot_priorities; - char *boot_device; + + struct autoboot_option *autoboot_opts; + unsigned int n_autoboot_opts; + + unsigned int ipmi_bootdev; + bool ipmi_bootdev_persistent; + char *lang; /* not user-settable */