summaryrefslogtreecommitdiff
path: root/libnm-glib/nm-device.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnm-glib/nm-device.c')
-rw-r--r--libnm-glib/nm-device.c67
1 files changed, 57 insertions, 10 deletions
diff --git a/libnm-glib/nm-device.c b/libnm-glib/nm-device.c
index a24eb06efa..b07c9b0dcb 100644
--- a/libnm-glib/nm-device.c
+++ b/libnm-glib/nm-device.c
@@ -18,7 +18,7 @@
* Boston, MA 02110-1301 USA.
*
* Copyright (C) 2007 - 2008 Novell, Inc.
- * Copyright (C) 2007 - 2008 Red Hat, Inc.
+ * Copyright (C) 2007 - 2010 Red Hat, Inc.
*/
#include <string.h>
@@ -53,6 +53,7 @@ typedef struct {
char *driver;
guint32 capabilities;
gboolean managed;
+ gboolean firmware_missing;
NMIP4Config *ip4_config;
gboolean null_ip4_config;
NMDHCP4Config *dhcp4_config;
@@ -75,6 +76,7 @@ enum {
PROP_DRIVER,
PROP_CAPABILITIES,
PROP_MANAGED,
+ PROP_FIRMWARE_MISSING,
PROP_IP4_CONFIG,
PROP_DHCP4_CONFIG,
PROP_IP6_CONFIG,
@@ -268,15 +270,16 @@ register_for_property_changed (NMDevice *device)
{
NMDevicePrivate *priv = NM_DEVICE_GET_PRIVATE (device);
const NMPropertiesChangedInfo property_changed_info[] = {
- { NM_DEVICE_UDI, _nm_object_demarshal_generic, &priv->udi },
- { NM_DEVICE_INTERFACE, _nm_object_demarshal_generic, &priv->iface },
- { NM_DEVICE_DRIVER, _nm_object_demarshal_generic, &priv->driver },
- { NM_DEVICE_CAPABILITIES, _nm_object_demarshal_generic, &priv->capabilities },
- { NM_DEVICE_MANAGED, _nm_object_demarshal_generic, &priv->managed },
- { NM_DEVICE_IP4_CONFIG, demarshal_ip4_config, &priv->ip4_config },
- { NM_DEVICE_DHCP4_CONFIG, demarshal_dhcp4_config, &priv->dhcp4_config },
- { NM_DEVICE_IP6_CONFIG, demarshal_ip6_config, &priv->ip6_config },
- { NM_DEVICE_DHCP6_CONFIG, demarshal_dhcp6_config, &priv->dhcp6_config },
+ { NM_DEVICE_UDI, _nm_object_demarshal_generic, &priv->udi },
+ { NM_DEVICE_INTERFACE, _nm_object_demarshal_generic, &priv->iface },
+ { NM_DEVICE_DRIVER, _nm_object_demarshal_generic, &priv->driver },
+ { NM_DEVICE_CAPABILITIES, _nm_object_demarshal_generic, &priv->capabilities },
+ { NM_DEVICE_MANAGED, _nm_object_demarshal_generic, &priv->managed },
+ { NM_DEVICE_FIRMWARE_MISSING, _nm_object_demarshal_generic, &priv->firmware_missing },
+ { NM_DEVICE_IP4_CONFIG, demarshal_ip4_config, &priv->ip4_config },
+ { NM_DEVICE_DHCP4_CONFIG, demarshal_dhcp4_config, &priv->dhcp4_config },
+ { NM_DEVICE_IP6_CONFIG, demarshal_ip6_config, &priv->ip6_config },
+ { NM_DEVICE_DHCP6_CONFIG, demarshal_dhcp6_config, &priv->dhcp6_config },
{ NULL },
};
@@ -408,6 +411,9 @@ get_property (GObject *object,
case PROP_MANAGED:
g_value_set_boolean (value, nm_device_get_managed (device));
break;
+ case PROP_FIRMWARE_MISSING:
+ g_value_set_boolean (value, nm_device_get_firmware_missing (device));
+ break;
case PROP_IP4_CONFIG:
g_value_set_object (value, nm_device_get_ip4_config (device));
break;
@@ -516,6 +522,20 @@ nm_device_class_init (NMDeviceClass *device_class)
G_PARAM_READABLE));
/**
+ * NMDevice:firmware-missing:
+ *
+ * When %TRUE indicates the device is likely missing firmware required
+ * for its operation.
+ **/
+ g_object_class_install_property
+ (object_class, PROP_FIRMWARE_MISSING,
+ g_param_spec_boolean (NM_DEVICE_FIRMWARE_MISSING,
+ "FirmwareMissing",
+ "Firmware missing",
+ FALSE,
+ G_PARAM_READABLE));
+
+ /**
* NMDevice:ip4-config:
*
* The #NMIP4Config of the device.
@@ -830,6 +850,33 @@ nm_device_get_managed (NMDevice *device)
}
/**
+ * nm_device_get_firmware_missing:
+ * @device: a #NMDevice
+ *
+ * Indicates that firmware required for the device's operation is likely
+ * to be missing.
+ *
+ * Returns: %TRUE if firmware required for the device's operation is likely
+ * to be missing.
+ **/
+gboolean
+nm_device_get_firmware_missing (NMDevice *device)
+{
+ NMDevicePrivate *priv;
+
+ g_return_val_if_fail (NM_IS_DEVICE (device), 0);
+
+ priv = NM_DEVICE_GET_PRIVATE (device);
+ if (!priv->firmware_missing) {
+ priv->firmware_missing = _nm_object_get_boolean_property (NM_OBJECT (device),
+ NM_DBUS_INTERFACE_DEVICE,
+ "FirmwareMissing");
+ }
+
+ return priv->firmware_missing;
+}
+
+/**
* nm_device_get_ip4_config:
* @device: a #NMDevice
*