X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=ui%2Fncurses%2Fnc-cui.h;h=3bdbcfca2eaf8e4423aa6ec218d3f336d1f19398;hp=668776ebfc5ecbfd003e9991dce51448ce719594;hb=6b842bb2559116a949c6a569ac39f5c56ebc1be1;hpb=3752d1949cd3fb15593b2397d6af14b83a4aa6b4 diff --git a/ui/ncurses/nc-cui.h b/ui/ncurses/nc-cui.h index 668776e..3bdbcfc 100644 --- a/ui/ncurses/nc-cui.h +++ b/ui/ncurses/nc-cui.h @@ -21,15 +21,19 @@ #include +#include "ui/common/joystick.h" +#include "ui/common/timer.h" #include "nc-menu.h" -#include "nc-ked.h" - +#include "nc-boot-editor.h" struct cui_opt_data { + const char *name; + struct pb_boot_data *bd; + + /* optional data */ const struct device *dev; const struct boot_option *opt; uint32_t opt_hash; - struct pb_kexec_data *kd; }; /** @@ -47,24 +51,30 @@ struct cui { enum pb_nc_sig c_sig; sig_atomic_t abort; sig_atomic_t resize; + int dry_run; struct nc_scr *current; struct pmenu *main; + struct ui_timer timer; + struct waitset *waitset; + struct pjs *pjs; void *platform_info; unsigned int default_item; int (*on_kexec)(struct cui *cui, struct cui_opt_data *cod); }; struct cui *cui_init(void* platform_info, - int (*on_kexec)(struct cui *, struct cui_opt_data *)); + int (*on_kexec)(struct cui *, struct cui_opt_data *), + int (*js_map)(const struct js_event *e), int start_deamon, int dry_run); 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_boot_editor_run(struct pmenu_item *item); /* convenience routines */ void cui_abort(struct cui *cui); void cui_resize(struct cui *cui); void cui_on_exit(struct pmenu *menu); +void cui_on_open(struct pmenu *menu); int cui_run_cmd(struct pmenu_item *item); static inline struct cui *cui_from_arg(void *arg) @@ -85,4 +95,15 @@ static inline struct cui *cui_from_item(struct pmenu_item *item) return cui_from_pmenu(item->pmenu); } +static inline struct cui *cui_from_timer(struct ui_timer *timer) +{ + struct cui *cui; + + cui = (struct cui *)((char *)timer + - (size_t)&((struct cui *)0)->timer); + assert(cui->c_sig == pb_cui_sig); + + return cui; +} + #endif