X-Git-Url: http://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=discover%2Fplatform.h;h=294056263782e7f72020a52b4d4aeaa4cfc9da41;hp=5601b61bbd2165e3d544bdf66606e3e33721c9bd;hb=fed2c4da36c2708f2a5a7a09eba61d014b9339d6;hpb=4d5a57a73cbfa29ad2c8672f157294f733726f90;ds=sidebyside diff --git a/discover/platform.h b/discover/platform.h index 5601b61..2940562 100644 --- a/discover/platform.h +++ b/discover/platform.h @@ -2,13 +2,15 @@ #define PLATFORM_H #include +#include struct platform { const char *name; bool (*probe)(struct platform *, void *); int (*load_config)(struct platform *, struct config *); int (*save_config)(struct platform *, struct config *); - void (*finalise_config)(struct platform *); + void (*pre_boot)(struct platform *, + const struct config *); int (*get_sysinfo)(struct platform *, struct system_info *); uint16_t dhcp_arch_id; void *platform_data; @@ -18,15 +20,19 @@ int platform_init(void *ctx); int platform_fini(void); const struct platform *platform_get(void); int platform_get_sysinfo(struct system_info *info); -void platform_finalise_config(void); +void platform_pre_boot(void); /* configuration interface */ const struct config *config_get(void); int config_set(struct config *config); +void config_set_defaults(struct config *config); void config_set_autoboot(bool autoboot_enabled); +void config_populate_all(struct config *config, const struct param_list *pl); -/* for use by the platform-specific storage code */ -void config_set_defaults(struct config *config); +void params_update_network_values(struct param_list *pl, + const char *param_name, const struct config *config); +void params_update_bootdev_values(struct param_list *pl, + const char *param_name, const struct config *config); #define __platform_ptrname(_n) __platform_ ## _n #define _platform_ptrname(_n) __platform_ptrname(_n)