1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
/*
* 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
* <http://www.gnu.org/licenses/>.
*/
#pragma once
#include <glib-object.h>
#include <osinfo/osinfo_product.h>
#include <osinfo/osinfo_device.h>
#include <osinfo/osinfo_devicelist.h>
#include <osinfo/osinfo_medialist.h>
#include <osinfo/osinfo_media.h>
#include <osinfo/osinfo_treelist.h>
#include <osinfo/osinfo_os_variant.h>
#include <osinfo/osinfo_os_variantlist.h>
#include <osinfo/osinfo_tree.h>
#include <osinfo/osinfo_resources.h>
#include <osinfo/osinfo_resourceslist.h>
#include <osinfo/osinfo_image.h>
#include <osinfo/osinfo_imagelist.h>
#include <osinfo/osinfo_macros.h>
#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);
|