static void drvctl_dev_branch(gchar *name) { HAL_INFO (("branch_remove: %s", name)); devinfo_remove_branch (name, NULL); hotplug_event_process_queue (); }
void hotplug_event_end (void *end_token) { HotplugEvent *hotplug_event = (HotplugEvent *) end_token; hotplug_events_in_progress = g_slist_remove (hotplug_events_in_progress, hotplug_event); g_free (hotplug_event); hotplug_event_process_queue (); }
static void drvctl_dev_add(gchar *name) { HalDevice *parent, *d; gchar pdevnode[512]; if (drvctl_find_parent (name, pdevnode) == FALSE) { HAL_INFO (("dev_add: name=%s orphan", name)); parent = NULL; } else { parent = hal_device_store_match_key_value_string ( hald_get_gdl(), "netbsd.device", pdevnode); if (parent == NULL) HAL_INFO (("dev_add: name=%s but netbsd.device=%s not found",name, pdevnode)); } d = devinfo_add_node (parent, name); if (d == NULL) HAL_WARNING (("dev_add: couldn't add %s node (parent=%p)", name, parent)); hotplug_event_process_queue (); }
static void drvctl_lofi_add(gchar *devfs_path, gchar *name) { di_node_t node; const char *parent_udi; HalDevice *d, *parent; HAL_INFO (("lofi_add: %s %s", name, devfs_path)); if ((d = hal_device_store_match_key_value_string (hald_get_gdl (), "solaris.devfs_path", devfs_path)) == NULL) { HAL_INFO (("device not found in GDL %s", devfs_path)); return; } parent_udi = hal_device_property_get_string (d, "info.parent"); if ((parent_udi == NULL) || (strlen(parent_udi) == 0)) { HAL_INFO (("parent not found in GDL %s", parent_udi)); return; } if ((parent = hal_device_store_match_key_value_string (hald_get_gdl (), "info.udi", parent_udi)) == NULL) { HAL_INFO (("parent not found in GDL %s", parent_udi)); return; } if ((node = di_init (devfs_path, DINFOCPYALL)) == DI_NODE_NIL) { HAL_INFO (("device not found in devinfo %s", devfs_path)); return; } HAL_INFO (("device %s parent %s", hal_device_get_udi (d), parent_udi)); devinfo_lofi_add_major (parent, node, devfs_path, NULL, TRUE, d); di_fini (node); hotplug_event_process_queue (); }
static void drvctl_lofi_remove(gchar *parent_devfs_path, gchar *name) { devinfo_lofi_remove_minor(parent_devfs_path, name); hotplug_event_process_queue (); }