From: "Zeeshan Ali (Khattak)" <zeeshanak@xxxxxxxxx> Add API for apps to be able to tell where pre- and post-installation drivers are available. --- osinfo/libosinfo.syms | 8 +++ osinfo/osinfo_install_config.c | 143 +++++++++++++++++++++++++++++++++++++++++ osinfo/osinfo_install_config.h | 20 ++++++ 3 files changed, 171 insertions(+) diff --git a/osinfo/libosinfo.syms b/osinfo/libosinfo.syms index 6a8f725..fe1ac16 100644 --- a/osinfo/libosinfo.syms +++ b/osinfo/libosinfo.syms @@ -353,6 +353,14 @@ LIBOSINFO_0.2.2 { osinfo_install_config_set_target_disk; osinfo_install_config_get_script_disk; osinfo_install_config_set_script_disk; + osinfo_install_config_set_pre_install_drivers_disk; + osinfo_install_config_get_pre_install_drivers_disk; + osinfo_install_config_set_pre_install_drivers_location; + osinfo_install_config_get_pre_install_drivers_location; + osinfo_install_config_set_post_install_drivers_disk; + osinfo_install_config_get_post_install_drivers_disk; + osinfo_install_config_set_post_install_drivers_location; + osinfo_install_config_get_post_install_drivers_location; osinfo_install_script_get_avatar_format; osinfo_install_script_get_path_format; diff --git a/osinfo/osinfo_install_config.c b/osinfo/osinfo_install_config.c index adbf9df..16faed9 100644 --- a/osinfo/osinfo_install_config.c +++ b/osinfo/osinfo_install_config.c @@ -461,6 +461,149 @@ const gchar *osinfo_install_config_get_avatar_disk(OsinfoInstallConfig *config) OSINFO_INSTALL_CONFIG_PROP_AVATAR_DISK); } +/** + * osinfo_install_config_set_pre_install_drivers_disk: + * @config: the install config + * + * Specify the disk on which drivers to be installed at the very beginning of + * installation, are available. This is usually needed for devices for which the + * OS in question does not have out of the box support for and devices are + * required/prefered to be available during actual installation. + * + * Please read documentation on #osinfo_install_config_set_target_disk() for + * explanation on the format of @disk string. + * + * NOTE: Not every install script supports pre-installation of drivers. Use + * #osinfo_install_script_get_can_pre_install_drivers() to find out if an + * installer script supports it. + * + * NOTE: Microsoft Windows XP requires pre-installation driver files to be + * present in the script disk under the toplevel directory. + */ +void osinfo_install_config_set_pre_install_drivers_disk(OsinfoInstallConfig *config, + const gchar *disk) +{ + osinfo_entity_set_param(OSINFO_ENTITY(config), + OSINFO_INSTALL_CONFIG_PROP_PRE_INSTALL_DRIVERS_DISK, + disk); +} + +/** + * osinfo_install_config_get_pre_install_drivers_disk: + * + * Returns: The disk on which pre-installation drivers are located, or NULL if + * its not set using #osinfo_install_config_set_pre_install_drivers_disk(). + */ +const gchar *osinfo_install_config_get_pre_install_drivers_disk(OsinfoInstallConfig *config) +{ + return osinfo_entity_get_param_value + (OSINFO_ENTITY(config), + OSINFO_INSTALL_CONFIG_PROP_PRE_INSTALL_DRIVERS_DISK); +} + +/** + * osinfo_install_config_set_pre_install_drivers_location: + * @config: the install config + * + * Specify the location on which drivers to be installed at the very beginning of + * installation, are available. Please read documentation on + * #osinfo_install_config_set_pre_install_drivers_disk() for more information + * about pre-installation of drivers. + * + * Please read documentation on #osinfo_install_config_set_avatar_location() for + * explanation on the format of @location string. + */ +void osinfo_install_config_set_pre_install_drivers_location(OsinfoInstallConfig *config, + const gchar *location) +{ + osinfo_entity_set_param(OSINFO_ENTITY(config), + OSINFO_INSTALL_CONFIG_PROP_PRE_INSTALL_DRIVERS_LOCATION, + location); +} + +/** + * osinfo_install_config_get_pre_install_drivers_location: + * + * Returns: The location on which pre-installation drivers are located, or NULL if + * its not set using #osinfo_install_config_set_pre_install_drivers_location(). + */ +const gchar *osinfo_install_config_get_pre_install_drivers_location(OsinfoInstallConfig *config) +{ + return osinfo_entity_get_param_value + (OSINFO_ENTITY(config), + OSINFO_INSTALL_CONFIG_PROP_PRE_INSTALL_DRIVERS_LOCATION); +} + +/** + * osinfo_install_config_set_post_install_drivers_disk: + * @config: the install config + * + * Specify the disk on which drivers to be installed at the end of installation, + * are available. + * + * Please read documentation on #osinfo_install_config_set_target_disk() for + * explanation on the format of @disk string. + * + * NOTE: Not every install script supports post-installation of drivers. Use + * #osinfo_install_script_get_can_post_install_drivers() to find out if an + * install script supports it. + */ +void osinfo_install_config_set_post_install_drivers_disk(OsinfoInstallConfig *config, + const gchar *disk) +{ + osinfo_entity_set_param(OSINFO_ENTITY(config), + OSINFO_INSTALL_CONFIG_PROP_POST_INSTALL_DRIVERS_DISK, + disk); +} + +/** + * osinfo_install_config_get_post_install_drivers_disk: + * + * Returns: The disk on which post-installation drivers are located, or NULL if + * its not set using #osinfo_install_config_set_post_install_drivers_disk(). + */ +const gchar *osinfo_install_config_get_post_install_drivers_disk(OsinfoInstallConfig *config) +{ + return osinfo_entity_get_param_value + (OSINFO_ENTITY(config), + OSINFO_INSTALL_CONFIG_PROP_POST_INSTALL_DRIVERS_DISK); +} + +/** + * osinfo_install_config_set_post_install_drivers_location: + * @config: the install config + * + * Specify the disk on which drivers to be installed at the end of installation, + * are available. + * + * Please read documentation on #osinfo_install_config_set_avatar_location() for + * explanation on the format of @location string. + * + * NOTE: Not every install script supports post-installation of drivers. Use + * #osinfo_install_script_get_can_post_install_drivers() to find out if an + * install script supports it. + */ +void osinfo_install_config_set_post_install_drivers_location(OsinfoInstallConfig *config, + const gchar *location) +{ + osinfo_entity_set_param(OSINFO_ENTITY(config), + OSINFO_INSTALL_CONFIG_PROP_POST_INSTALL_DRIVERS_LOCATION, + location); +} + +/** + * osinfo_install_config_get_post_install_drivers_location: + * + * Returns: The disk on which post-installation drivers are located, or NULL if + * its not set using #osinfo_install_config_set_post_install_drivers_location(). + */ +const gchar *osinfo_install_config_get_post_install_drivers_location(OsinfoInstallConfig *config) +{ + return osinfo_entity_get_param_value + (OSINFO_ENTITY(config), + OSINFO_INSTALL_CONFIG_PROP_POST_INSTALL_DRIVERS_LOCATION); +} + /* * Local variables: * indent-tabs-mode: nil diff --git a/osinfo/osinfo_install_config.h b/osinfo/osinfo_install_config.h index 788d464..18c2c2f 100644 --- a/osinfo/osinfo_install_config.h +++ b/osinfo/osinfo_install_config.h @@ -61,6 +61,12 @@ #define OSINFO_INSTALL_CONFIG_PROP_AVATAR_LOCATION "avatar-location" #define OSINFO_INSTALL_CONFIG_PROP_AVATAR_DISK "avatar-disk" +#define OSINFO_INSTALL_CONFIG_PROP_PRE_INSTALL_DRIVERS_DISK "pre-install-drivers-disk" +#define OSINFO_INSTALL_CONFIG_PROP_PRE_INSTALL_DRIVERS_LOCATION "pre-install-drivers-location" + +#define OSINFO_INSTALL_CONFIG_PROP_POST_INSTALL_DRIVERS_DISK "post-install-drivers-disk" +#define OSINFO_INSTALL_CONFIG_PROP_POST_INSTALL_DRIVERS_LOCATION "post-install-drivers-location" + typedef struct _OsinfoInstallConfig OsinfoInstallConfig; typedef struct _OsinfoInstallConfigClass OsinfoInstallConfigClass; typedef struct _OsinfoInstallConfigPrivate OsinfoInstallConfigPrivate; @@ -172,6 +178,20 @@ void osinfo_install_config_set_avatar_disk(OsinfoInstallConfig *config, const gchar *disk); const gchar *osinfo_install_config_get_avatar_disk(OsinfoInstallConfig *config); +void osinfo_install_config_set_pre_install_drivers_disk(OsinfoInstallConfig *config, + const gchar *disk); +const gchar *osinfo_install_config_get_pre_install_drivers_disk(OsinfoInstallConfig *config); +void osinfo_install_config_set_pre_install_drivers_location(OsinfoInstallConfig *config, + const gchar *location); +const gchar *osinfo_install_config_get_pre_install_drivers_location(OsinfoInstallConfig *config); + +void osinfo_install_config_set_post_install_drivers_disk(OsinfoInstallConfig *config, + const gchar *disk); +const gchar *osinfo_install_config_get_post_install_drivers_disk(OsinfoInstallConfig *config); +void osinfo_install_config_set_post_install_drivers_location(OsinfoInstallConfig *config, + const gchar *location); +const gchar *osinfo_install_config_get_post_install_drivers_location(OsinfoInstallConfig *config); + #endif /* __OSINFO_INSTALL_CONFIG_H__ */ /* * Local variables: -- 1.8.0.1 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list