/* * libosinfo: an operating system * * Copyright (C) 2009-2020 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see * . */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define OSINFO_TYPE_OS (osinfo_os_get_type ()) OSINFO_DECLARE_TYPE_WITH_PRIVATE_AND_CLASS(OsinfoOs, osinfo_os, OSINFO, OS, OsinfoProduct) #define OSINFO_OS_PROP_FAMILY "family" #define OSINFO_OS_PROP_DISTRO "distro" #define OSINFO_OS_PROP_RELEASE_STATUS "release-status" #define OSINFO_OS_PROP_KERNEL_URL_ARGUMENT "kernel-url-argument" #define OSINFO_OS_PROP_CLOUD_IMAGE_USERNAME "cloud-image-username" /** * OsinfoReleaseStatus: * @OSINFO_RELEASE_STATUS_RELEASED: A released OS. (Since: 0.2.9) * @OSINFO_RELEASE_STATUS_SNAPSHOT: A continuous integration snapshot and not * an actual released product yet. For example, gnome-continuous images for * development snapshots of GNOME and nightly build ISOs of Fedora etc. * (Since: 0.2.9) * @OSINFO_RELEASE_STATUS_PRERELEASE: A pre-release. For example, alpha and * beta pre-releases of Fedora etc. (Since: 0.2.9) * @OSINFO_RELEASE_STATUS_ROLLING: A rolling version of an OS and thus with no * actual releases. For example, Gentoo, Arch Linux, etc. (Since: 1.4.0) */ typedef enum { OSINFO_RELEASE_STATUS_RELEASED, OSINFO_RELEASE_STATUS_SNAPSHOT, OSINFO_RELEASE_STATUS_PRERELEASE, OSINFO_RELEASE_STATUS_ROLLING } OsinfoReleaseStatus; OsinfoOs *osinfo_os_new(const gchar *id); OsinfoDeviceList *osinfo_os_get_devices(OsinfoOs *os, OsinfoFilter *filter); OsinfoDeviceList *osinfo_os_get_all_devices(OsinfoOs *os, OsinfoFilter *filter); OsinfoDeviceList *osinfo_os_get_devices_by_property(OsinfoOs *os, const char *property, const char *value, gboolean inherited); OsinfoDeviceLinkList *osinfo_os_get_device_links(OsinfoOs *os, OsinfoFilter *filter); OsinfoDeviceLinkList *osinfo_os_get_all_device_links(OsinfoOs *os, OsinfoFilter *filter); OsinfoDeviceLink *osinfo_os_add_device(OsinfoOs *os, OsinfoDevice *dev); const gchar *osinfo_os_get_family(OsinfoOs *os); const gchar *osinfo_os_get_distro(OsinfoOs *os); int osinfo_os_get_release_status(OsinfoOs *os); OsinfoMediaList *osinfo_os_get_media_list(OsinfoOs *os); void osinfo_os_add_media(OsinfoOs *os, OsinfoMedia *media); OsinfoTreeList *osinfo_os_get_tree_list(OsinfoOs *os); void osinfo_os_add_tree(OsinfoOs *os, OsinfoTree *tree); OsinfoImageList *osinfo_os_get_image_list(OsinfoOs *os); void osinfo_os_add_image(OsinfoOs *os, OsinfoImage *image); OsinfoOsVariantList *osinfo_os_get_variant_list(OsinfoOs *os); void osinfo_os_add_variant(OsinfoOs *os, OsinfoOsVariant *variant); OsinfoResourcesList *osinfo_os_get_network_install_resources(OsinfoOs *os); OsinfoResourcesList *osinfo_os_get_minimum_resources(OsinfoOs *os); OsinfoResourcesList *osinfo_os_get_recommended_resources(OsinfoOs *os); OsinfoResourcesList *osinfo_os_get_maximum_resources(OsinfoOs *os); void osinfo_os_add_network_install_resources(OsinfoOs *os, OsinfoResources *resources); void osinfo_os_add_minimum_resources(OsinfoOs *os, OsinfoResources *resources); void osinfo_os_add_recommended_resources(OsinfoOs *os, OsinfoResources *resources); void osinfo_os_add_maximum_resources(OsinfoOs *os, OsinfoResources *resources); OsinfoInstallScript *osinfo_os_find_install_script(OsinfoOs *os, const gchar *profile); 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); OsinfoDeviceDriverList *osinfo_os_get_device_drivers_prioritized(OsinfoOs *os); void osinfo_os_add_device_driver(OsinfoOs *os, OsinfoDeviceDriver *driver); const gchar *osinfo_os_get_kernel_url_argument(OsinfoOs *os); OsinfoFirmwareList *osinfo_os_get_firmware_list(OsinfoOs *os, OsinfoFilter *filter); OsinfoFirmwareList *osinfo_os_get_complete_firmware_list(OsinfoOs *os, OsinfoFilter *filter); void osinfo_os_add_firmware(OsinfoOs *os, OsinfoFirmware *firmware); const gchar *osinfo_os_get_cloud_image_username(OsinfoOs *os);