X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=ui%2Fncurses%2Fnc-cui.h;h=8fa27aa7e7d78a37480629d0ba1c9c194c1c161c;hp=668776ebfc5ecbfd003e9991dce51448ce719594;hb=07f6db7fc29a93fae3213af18371cccb17e0276a;hpb=3752d1949cd3fb15593b2397d6af14b83a4aa6b4 diff --git a/ui/ncurses/nc-cui.h b/ui/ncurses/nc-cui.h index 668776e..8fa27aa 100644 --- a/ui/ncurses/nc-cui.h +++ b/ui/ncurses/nc-cui.h @@ -21,15 +21,21 @@ #include +#include "ui/common/joystick.h" #include "nc-menu.h" -#include "nc-ked.h" - +#include "nc-helpscreen.h" struct cui_opt_data { + char *name; + union { + struct pb_boot_data *bd; + struct pb_plugin_data *pd; + }; + + /* optional data */ const struct device *dev; const struct boot_option *opt; uint32_t opt_hash; - struct pb_kexec_data *kd; }; /** @@ -45,27 +51,73 @@ 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; + struct statuslog *statuslog; + struct sysinfo_screen *sysinfo_screen; + 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_kexec)(struct cui *cui, struct cui_opt_data *cod); + int (*on_boot)(struct cui *cui, struct cui_opt_data *cod); + bool preboot_mode; }; struct cui *cui_init(void* platform_info, - int (*on_kexec)(struct cui *, struct cui_opt_data *)); + int (*js_map)(const struct js_event *e), + int start_daemon, int timeout); struct nc_scr *cui_set_current(struct cui *cui, struct nc_scr *scr); -int cui_run(struct cui *cui, struct pmenu *main, unsigned int default_item); -int cui_ked_run(struct pmenu_item *item); +int cui_run(struct cui *cui); +void cui_item_edit(struct pmenu_item *item); +void cui_item_new(struct pmenu *menu); +void cui_show_sysinfo(struct cui *cui); +void cui_show_config(struct cui *cui); +void cui_show_lang(struct cui *cui); +void cui_show_statuslog(struct cui *cui); +void cui_show_help(struct cui *cui, const char *title, + const struct help_text *text); +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 *)); +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); +void cui_send_reinit(struct cui *cui); /* convenience routines */ void cui_abort(struct cui *cui); void cui_resize(struct cui *cui); void cui_on_exit(struct pmenu *menu); -int cui_run_cmd(struct pmenu_item *item); +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) {