]> git.ozlabs.org Git - petitboot/blobdiff - lib/types/types.h
lib/security: Fix broken if statements in gpg_validate_boot_files()
[petitboot] / lib / types / types.h
index 6a2c25810fff5c80a07ad2f11af44924b225f469..9ab2a43497602d22507e65602132930a20d52f0f 100644 (file)
@@ -52,11 +52,32 @@ struct boot_option {
        char            *initrd_file;
        char            *dtb_file;
        char            *boot_args;
+       char            *args_sig_file;
        bool            is_default;
 
        struct list_item        list;
 
        void            *ui_info;
+
+       enum {
+               DISCOVER_BOOT_OPTION,
+               DISCOVER_PLUGIN_OPTION,
+       } type;
+};
+
+struct plugin_option {
+       char            *id;
+       char            *name;
+       char            *vendor;
+       char            *vendor_id;
+       char            *version;
+       char            *date;
+       char            *plugin_file;
+
+       unsigned int    n_executables;
+       char            **executables;
+
+       void            *ui_info;
 };
 
 struct boot_command {
@@ -65,16 +86,22 @@ struct boot_command {
        char *initrd_file;
        char *dtb_file;
        char *boot_args;
+       char *args_sig_file;
+       char *console;
 };
 
-struct boot_status {
-       enum {
-               BOOT_STATUS_INFO,
-               BOOT_STATUS_ERROR,
+struct status {
+       enum status_type {
+               STATUS_INFO,
+               STATUS_ERROR,
        } type;
        char    *message;
-       char    *detail;
-       int     progress;
+       bool    backlog;
+};
+
+struct statuslog_entry {
+       struct status           *status;
+       struct list_item        list;
 };
 
 struct interface_info {
@@ -82,6 +109,7 @@ struct interface_info {
        uint8_t         *hwaddr;
        char            *name;
        bool            link;
+       char            *address;
 };
 
 struct blockdev_info {
@@ -93,6 +121,15 @@ struct blockdev_info {
 struct system_info {
        char                    *type;
        char                    *identifier;
+       char                    **platform_primary;
+       char                    **platform_other;
+       unsigned int            n_primary;
+       unsigned int            n_other;
+       char                    **bmc_current;
+       char                    **bmc_golden;
+       unsigned int            n_bmc_current;
+       unsigned int            n_bmc_golden;
+       uint8_t                 *bmc_mac;
        struct interface_info   **interfaces;
        unsigned int            n_interfaces;
        struct blockdev_info    **blockdevs;
@@ -114,8 +151,10 @@ struct interface_config {
                struct {
                        char *address;
                        char *gateway;
+                       char *url;
                } static_config;
        };
+       bool    override;
 };
 
 struct network_config {
@@ -147,14 +186,23 @@ struct config {
        unsigned int            ipmi_bootdev;
        bool                    ipmi_bootdev_persistent;
 
+       char                    *http_proxy;
+       char                    *https_proxy;
+
        bool                    allow_writes;
 
+       char                    *boot_console;
+       bool                    manual_console;
        char                    *lang;
 
        /* not user-settable */
+       unsigned int            n_consoles;
+       char                    **consoles;
        bool                    disable_snapshots;
        bool                    safe_mode;
        bool                    debug;
 };
 
+bool config_autoboot_active(const struct config *config);
+
 #endif /* _TYPES_H */