[libosinfo 09/10] install-config: API to specify drivers disk & location

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Virtualization]     [KVM Development]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux