]> git.ozlabs.org Git - petitboot/blobdiff - lib/types/types.h
petitboot: Implement ordered boot options
[petitboot] / lib / types / types.h
index f543b7f7ea3295d39a91783897663152e5350f5d..3bb8c9be456a6030028bb7569f4b256fa2066a3e 100644 (file)
@@ -13,6 +13,10 @@ enum device_type {
        DEVICE_TYPE_UNKNOWN,
 };
 
+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,13 +113,15 @@ 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 {
@@ -123,10 +129,8 @@ struct config {
        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;