From: "Zeeshan Ali (Khattak)" <zeeshanak@xxxxxxxxx> --- osinfo/libosinfo.syms | 3 +++ osinfo/osinfo_os.c | 29 +++++++++++++++++++++++++++++ osinfo/osinfo_os.h | 3 +++ 3 files changed, 35 insertions(+) diff --git a/osinfo/libosinfo.syms b/osinfo/libosinfo.syms index 0f1d751..1d7b983 100644 --- a/osinfo/libosinfo.syms +++ b/osinfo/libosinfo.syms @@ -358,6 +358,9 @@ LIBOSINFO_0.2.2 { osinfo_install_script_get_path_format; osinfo_install_script_get_product_key_format; + + osinfo_os_get_device_drivers; + osinfo_os_add_device_driver; } LIBOSINFO_0.2.1; /* Symbols in next release... diff --git a/osinfo/osinfo_os.c b/osinfo/osinfo_os.c index 18a1458..b91c4d9 100644 --- a/osinfo/osinfo_os.c +++ b/osinfo/osinfo_os.c @@ -54,6 +54,8 @@ struct _OsinfoOsPrivate OsinfoResourcesList *recommended; OsinfoInstallScriptList *scripts; + + OsinfoDeviceDriverList *device_drivers; }; struct _OsinfoOsDeviceLink { @@ -114,6 +116,8 @@ osinfo_os_finalize (GObject *object) g_object_unref(os->priv->scripts); + g_object_unref(os->priv->device_drivers); + /* Chain up to the parent class */ G_OBJECT_CLASS (osinfo_os_parent_class)->finalize (object); } @@ -179,6 +183,7 @@ osinfo_os_init (OsinfoOs *os) os->priv->minimum = osinfo_resourceslist_new (); os->priv->recommended = osinfo_resourceslist_new (); os->priv->scripts = osinfo_install_scriptlist_new (); + os->priv->device_drivers = osinfo_device_driverlist_new (); } /** @@ -572,6 +577,30 @@ void osinfo_os_add_install_script(OsinfoOs *os, OsinfoInstallScript *script) osinfo_list_add(OSINFO_LIST(os->priv->scripts), OSINFO_ENTITY(script)); } +/** + * osinfo_os_get_device_drivers: + * @os: an operating system + * + * Gets list of all available device drivers for OS @os. + * + * Returns: (transfer none): A list of device drivers + */ +OsinfoDeviceDriverList *osinfo_os_get_device_drivers(OsinfoOs *os) +{ + g_return_val_if_fail(OSINFO_IS_OS(os), NULL); + + return os->priv->device_drivers; +} + +void osinfo_os_add_device_driver(OsinfoOs *os, OsinfoDeviceDriver *driver) +{ + g_return_if_fail(OSINFO_IS_OS(os)); + g_return_if_fail(OSINFO_IS_DEVICE_DRIVER(driver)); + + osinfo_list_add(OSINFO_LIST(os->priv->device_drivers), + OSINFO_ENTITY(driver)); +} + /* * Local variables: * indent-tabs-mode: nil diff --git a/osinfo/osinfo_os.h b/osinfo/osinfo_os.h index 4ca9c68..ae4f0e9 100644 --- a/osinfo/osinfo_os.h +++ b/osinfo/osinfo_os.h @@ -105,6 +105,9 @@ OsinfoInstallScript *osinfo_os_find_install_script(OsinfoOs *os, const gchar *pr OsinfoInstallScriptList *osinfo_os_get_install_script_list(OsinfoOs *os); void osinfo_os_add_install_script(OsinfoOs *os, OsinfoInstallScript *script); +OsinfoDeviceDriverList *osinfo_os_get_device_drivers(OsinfoOs *os); +void osinfo_os_add_device_driver(OsinfoOs *os, OsinfoDeviceDriver *driver); + #endif /* __OSINFO_OS_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