X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=ui%2Fncurses%2Fnc-cui.h;h=039aa922dd6d233bc4353bf98f28006705395485;hp=d8a5f8b5f5a16e99ca62dc79eecccca1a2b606aa;hb=1ad18bf128c4edfae76adaffd9c7801355f29b91;hpb=d90efe9e2bbfb18ee05ec2032b5723dbfa902d82 diff --git a/ui/ncurses/nc-cui.h b/ui/ncurses/nc-cui.h index d8a5f8b..039aa92 100644 --- a/ui/ncurses/nc-cui.h +++ b/ui/ncurses/nc-cui.h @@ -26,8 +26,11 @@ #include "nc-helpscreen.h" struct cui_opt_data { - const char *name; - struct pb_boot_data *bd; + char *name; + union { + struct pb_boot_data *bd; + struct pb_plugin_data *pd; + }; /* optional data */ const struct device *dev; @@ -49,10 +52,13 @@ struct cui_opt_data { struct cui { enum pb_nc_sig c_sig; bool has_input; + struct autoboot_option *autoboot_opt; sig_atomic_t abort; sig_atomic_t resize; struct nc_scr *current; struct pmenu *main; + struct pmenu *plugin_menu; + unsigned int n_plugins; struct waitset *waitset; struct discover_client *client; struct system_info *sysinfo; @@ -61,15 +67,18 @@ struct cui { struct config *config; struct config_screen *config_screen; struct add_url_screen *add_url_screen; + struct plugin_screen *plugin_screen; struct boot_editor *boot_editor; struct lang_screen *lang_screen; struct help_screen *help_screen; struct subset_screen *subset_screen; struct statuslog_screen *statuslog_screen; + struct auth_screen *auth_screen; struct pjs *pjs; void *platform_info; unsigned int default_item; int (*on_boot)(struct cui *cui, struct cui_opt_data *cod); + bool preboot_mode; }; struct cui *cui_init(void* platform_info, @@ -88,8 +97,18 @@ void cui_show_help(struct cui *cui, const char *title, void cui_show_subset(struct cui *cui, const char *title, void *arg); void cui_show_add_url(struct cui *cui); +void cui_show_plugin(struct pmenu_item *item); +void cui_show_plugin_menu(struct cui *cui); +void cui_show_auth(struct cui *cui, WINDOW *parent, bool set_password, + void (*callback)(struct nc_scr *)); +void cui_show_open_luks(struct cui *cui, WINDOW *parent, + const struct device *dev); int cui_send_config(struct cui *cui, struct config *config); int cui_send_url(struct cui *cui, char *url); +int cui_send_plugin_install(struct cui *cui, char *file); +int cui_send_authenticate(struct cui *cui, char *password); +int cui_send_set_password(struct cui *cui, char *password, char *new_password); +int cui_send_open_luks_device(struct cui *cui, char *password, char *device_id); void cui_send_reinit(struct cui *cui); /* convenience routines */ @@ -97,9 +116,11 @@ void cui_send_reinit(struct cui *cui); void cui_abort(struct cui *cui); void cui_resize(struct cui *cui); void cui_on_exit(struct pmenu *menu); +void cui_abort_on_exit(struct pmenu *menu); void cui_on_open(struct pmenu *menu); int cui_run_cmd(struct cui *cui, const char **cmd_argv); int cui_run_cmd_from_item(struct pmenu_item *item); +void cui_update_language(struct cui *cui, const char *lang); static inline struct cui *cui_from_arg(void *arg) {