~ubuntu-branches/ubuntu/precise/network-manager/precise

« back to all changes in this revision

Viewing changes to libnm-glib/nm-device-infiniband.c

  • Committer: Package Import Robot
  • Author(s): Mathieu Trudel-Lapierre
  • Date: 2012-02-09 16:45:41 UTC
  • mfrom: (1.1.53)
  • Revision ID: package-import@ubuntu.com-20120209164541-4h90zknlsfdb7x35
Tags: 0.9.2.0+git201202091925.c721477-0ubuntu1
* upstream snapshot 2012-02-09 19:25:59 (GMT)
  + c721477d11d4fe144111d6d2eec8f93f2e9186c9
* debian/patches/avoid-periodic-disk-wakeups.patch: refreshed.
* debian/patches/nl3-default-ip6-route.patch: refreshed.
* debian/libnm-glib4.symbols: add symbols:
  + nm_active_connection_get_master@Base
  + nm_client_new_async@Base
  + nm_client_new_finish@Base
  + nm_remote_settings_new_async@Base
  + nm_remote_settings_new_finish@Base
  + nm_device_get_state_reason@Base
* debian/libnm-util2.symbols: add symbols:
  + nm_setting_802_1x_get_pac_file@Base
  + nm_setting_infiniband_get_transport_mode@Base

Show diffs side-by-side

added added

removed removed

Lines of Context:
34
34
#include "nm-device-private.h"
35
35
#include "nm-object-private.h"
36
36
 
37
 
#include "nm-device-infiniband-bindings.h"
38
 
 
39
37
G_DEFINE_TYPE (NMDeviceInfiniband, nm_device_infiniband, NM_TYPE_DEVICE)
40
38
 
41
39
#define NM_DEVICE_INFINIBAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_INFINIBAND, NMDeviceInfinibandPrivate))
45
43
 
46
44
        char *hw_address;
47
45
        gboolean carrier;
48
 
        gboolean carrier_valid;
49
46
} NMDeviceInfinibandPrivate;
50
47
 
51
48
enum {
71
68
GObject *
72
69
nm_device_infiniband_new (DBusGConnection *connection, const char *path)
73
70
{
 
71
        GObject *device;
 
72
 
74
73
        g_return_val_if_fail (connection != NULL, NULL);
75
74
        g_return_val_if_fail (path != NULL, NULL);
76
75
 
77
 
        return g_object_new (NM_TYPE_DEVICE_INFINIBAND,
78
 
                             NM_OBJECT_DBUS_CONNECTION, connection,
79
 
                             NM_OBJECT_DBUS_PATH, path,
80
 
                             NULL);
 
76
        device = g_object_new (NM_TYPE_DEVICE_INFINIBAND,
 
77
                                                   NM_OBJECT_DBUS_CONNECTION, connection,
 
78
                                                   NM_OBJECT_DBUS_PATH, path,
 
79
                                                   NULL);
 
80
        _nm_object_ensure_inited (NM_OBJECT (device));
 
81
        return device;
81
82
}
82
83
 
83
84
/**
92
93
const char *
93
94
nm_device_infiniband_get_hw_address (NMDeviceInfiniband *device)
94
95
{
95
 
        NMDeviceInfinibandPrivate *priv;
96
 
 
97
96
        g_return_val_if_fail (NM_IS_DEVICE_INFINIBAND (device), NULL);
98
97
 
99
 
        priv = NM_DEVICE_INFINIBAND_GET_PRIVATE (device);
100
 
        if (!priv->hw_address) {
101
 
                priv->hw_address = _nm_object_get_string_property (NM_OBJECT (device),
102
 
                                                                   NM_DBUS_INTERFACE_DEVICE_INFINIBAND,
103
 
                                                                   DBUS_PROP_HW_ADDRESS,
104
 
                                                                   NULL);
105
 
        }
106
 
 
107
 
        return priv->hw_address;
 
98
        _nm_object_ensure_inited (NM_OBJECT (device));
 
99
        return NM_DEVICE_INFINIBAND_GET_PRIVATE (device)->hw_address;
108
100
}
109
101
 
110
102
/**
118
110
gboolean
119
111
nm_device_infiniband_get_carrier (NMDeviceInfiniband *device)
120
112
{
121
 
        NMDeviceInfinibandPrivate *priv;
122
 
 
123
113
        g_return_val_if_fail (NM_IS_DEVICE_INFINIBAND (device), FALSE);
124
114
 
125
 
        priv = NM_DEVICE_INFINIBAND_GET_PRIVATE (device);
126
 
        if (!priv->carrier_valid) {
127
 
                priv->carrier = _nm_object_get_boolean_property (NM_OBJECT (device),
128
 
                                                                 NM_DBUS_INTERFACE_DEVICE_INFINIBAND,
129
 
                                                                 DBUS_PROP_CARRIER,
130
 
                                                                 NULL);
131
 
                priv->carrier_valid = TRUE;
132
 
        }
133
 
 
134
 
        return priv->carrier;
 
115
        _nm_object_ensure_inited (NM_OBJECT (device));
 
116
        return NM_DEVICE_INFINIBAND_GET_PRIVATE (device)->carrier;
135
117
}
136
118
 
137
119
static gboolean
173
155
        NMDeviceInfinibandPrivate *priv = NM_DEVICE_INFINIBAND_GET_PRIVATE (device);
174
156
 
175
157
        priv->carrier = FALSE;
176
 
        priv->carrier_valid = FALSE;
177
158
}
178
159
 
179
160
static void
180
 
register_for_property_changed (NMDeviceInfiniband *device)
 
161
register_properties (NMDeviceInfiniband *device)
181
162
{
182
163
        NMDeviceInfinibandPrivate *priv = NM_DEVICE_INFINIBAND_GET_PRIVATE (device);
183
 
        const NMPropertiesChangedInfo property_changed_info[] = {
184
 
                { NM_DEVICE_INFINIBAND_HW_ADDRESS, _nm_object_demarshal_generic, &priv->hw_address },
185
 
                { NM_DEVICE_INFINIBAND_CARRIER,    _nm_object_demarshal_generic, &priv->carrier },
 
164
        const NMPropertiesInfo property_info[] = {
 
165
                { NM_DEVICE_INFINIBAND_HW_ADDRESS, &priv->hw_address },
 
166
                { NM_DEVICE_INFINIBAND_CARRIER,    &priv->carrier },
186
167
                { NULL },
187
168
        };
188
169
 
189
 
        _nm_object_handle_properties_changed (NM_OBJECT (device),
190
 
                                              priv->proxy,
191
 
                                              property_changed_info);
 
170
        _nm_object_register_properties (NM_OBJECT (device),
 
171
                                        priv->proxy,
 
172
                                        property_info);
192
173
}
193
174
 
194
 
static GObject*
195
 
constructor (GType type,
196
 
             guint n_construct_params,
197
 
             GObjectConstructParam *construct_params)
 
175
static void
 
176
constructed (GObject *object)
198
177
{
199
 
        GObject *object;
200
178
        NMDeviceInfinibandPrivate *priv;
201
179
 
202
 
        object = G_OBJECT_CLASS (nm_device_infiniband_parent_class)->constructor (type,
203
 
                                                                                                                                                          n_construct_params,
204
 
                                                                                                                                                          construct_params);
205
 
        if (!object)
206
 
                return NULL;
 
180
        G_OBJECT_CLASS (nm_device_infiniband_parent_class)->constructed (object);
207
181
 
208
182
        priv = NM_DEVICE_INFINIBAND_GET_PRIVATE (object);
209
183
 
212
186
                                                 nm_object_get_path (NM_OBJECT (object)),
213
187
                                                 NM_DBUS_INTERFACE_DEVICE_INFINIBAND);
214
188
 
215
 
        register_for_property_changed (NM_DEVICE_INFINIBAND (object));
216
 
 
217
 
        return object;
 
189
        register_properties (NM_DEVICE_INFINIBAND (object));
218
190
}
219
191
 
220
192
static void
270
242
        g_type_class_add_private (eth_class, sizeof (NMDeviceInfinibandPrivate));
271
243
 
272
244
        /* virtual methods */
273
 
        object_class->constructor = constructor;
 
245
        object_class->constructed = constructed;
274
246
        object_class->dispose = dispose;
275
247
        object_class->finalize = finalize;
276
248
        object_class->get_property = get_property;