Lines Matching refs:device

10 #include "device.h"
37 init_device(device_t device, driver_t *driver)
39 list_init_etc(&device->children, offsetof(struct device, link));
40 device->unit = sNextUnit++;
42 if (driver != NULL && device_set_driver(device, driver) < 0)
45 return device;
52 device_t dev = malloc(sizeof(struct device));
56 memset(dev, 0, sizeof(struct device));
354 device_is_alive(device_t device)
356 return (device->flags & DEVICE_ATTACHED) != 0;
400 list_init_etc(&sRootDevices, offsetof(struct device, link));
431 // the children, and will then detach the device.
445 // detach device
455 // delete device
469 device_is_attached(device_t device)
471 return (device->flags & DEVICE_ATTACHED) != 0;
476 device_attach(device_t device)
480 if (device->driver == NULL
481 || device->methods.attach == NULL)
484 result = device->methods.attach(device);
487 atomic_or(&device->flags, DEVICE_ATTACHED);
490 result = start_wlan(device);
497 device_detach(device_t device)
499 if (device->driver == NULL)
502 if ((atomic_and(&device->flags, ~DEVICE_ATTACHED) & DEVICE_ATTACHED) != 0
503 && device->methods.detach != NULL) {
506 result = stop_wlan(device);
508 atomic_or(&device->flags, DEVICE_ATTACHED);
512 result = device->methods.detach(device);
514 atomic_or(&device->flags, DEVICE_ATTACHED);
553 bus_generic_detach(device_t device)
557 if ((device->flags & DEVICE_ATTACHED) == 0)
561 child = list_get_next_item(&device->children, child);
578 device_t device = NULL;
580 while ((device = list_get_next_item(&sRootDevices, device)) != NULL) {
581 if (device->unit <= unit)
582 return device;