NMDevice * nm_device_wimax_new (NMPlatformLink *platform_device) { NMDevice *device; g_return_val_if_fail (platform_device != NULL, NULL); device = (NMDevice *) g_object_new (NM_TYPE_DEVICE_WIMAX, NM_DEVICE_PLATFORM_DEVICE, platform_device, NM_DEVICE_TYPE_DESC, "WiMAX", NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_WIMAX, NM_DEVICE_RFKILL_TYPE, RFKILL_TYPE_WIMAX, NULL); if (device) { struct wmxsdk *sdk; nm_wimax_util_sdk_ref (); /* See if the SDK already knows about this interface */ sdk = iwmx_sdk_get_wmxsdk_for_iface (platform_device->name); if (sdk) wmx_new_sdk_cb (sdk, device); /* If it doesn't, we want to be notified when it does */ iwmx_sdk_new_callback_register (wmx_new_sdk_cb, device); } return device; }
NMDevice * nm_device_wimax_new (const char *udi, const char *iface, const char *driver) { NMDevice *device; g_return_val_if_fail (udi != NULL, NULL); g_return_val_if_fail (iface != NULL, NULL); g_return_val_if_fail (driver != NULL, NULL); device = (NMDevice *) g_object_new (NM_TYPE_DEVICE_WIMAX, NM_DEVICE_INTERFACE_UDI, udi, NM_DEVICE_INTERFACE_IFACE, iface, NM_DEVICE_INTERFACE_DRIVER, driver, NM_DEVICE_INTERFACE_TYPE_DESC, "WiMAX", NM_DEVICE_INTERFACE_DEVICE_TYPE, NM_DEVICE_TYPE_WIMAX, NM_DEVICE_INTERFACE_RFKILL_TYPE, RFKILL_TYPE_WIMAX, NULL); if (device) { struct wmxsdk *sdk; nm_wimax_util_sdk_ref (); g_signal_connect (device, "state-changed", G_CALLBACK (device_state_changed), NULL); /* See if the SDK already knows about this interface */ sdk = iwmx_sdk_get_wmxsdk_for_iface (iface); if (sdk) wmx_new_sdk_cb (sdk, device); /* If it doesn't, we want to be notified when it does */ iwmx_sdk_new_callback_register (wmx_new_sdk_cb, device); } return device; }