udev_device
struct udev_device *udev_monitor_receive_device(struct udev_monitor *udev_monitor);
struct udev_device;
struct udev_device *udev_device_new_from_dictionary(struct udev *udev_ctx, prop_dictionary_t dict);
struct udev_device *udev_device_ref(struct udev_device *udev_device);
void udev_device_unref(struct udev_device *udev_device);
prop_dictionary_t udev_device_get_dictionary(struct udev_device *udev_device);
struct udev *udev_device_get_udev(struct udev_device *udev_device);
void udev_device_set_action(struct udev_device *udev_device, int action);
const char *udev_device_get_action(struct udev_device *udev_device);
dev_t udev_device_get_devnum(struct udev_device *udev_device);
const char *udev_device_get_devnode(struct udev_device *udev_device);
const char *udev_device_get_property_value(struct udev_device *udev_device,
const char *udev_device_get_subsystem(struct udev_device *udev_device);
const char *udev_device_get_driver(struct udev_device *udev_device);
uint64_t udev_device_get_kptr(struct udev_device *udev_device);
int32_t udev_device_get_major(struct udev_device *udev_device);
int32_t udev_device_get_minor(struct udev_device *udev_device);
struct udev_device *udev_list_entry_get_device(struct udev_list_entry *list_entry);
udev_device_unref(struct udev_device *udev_device)
refcount = atomic_fetchadd_int(&udev_device->refs, -1);
atomic_subtract_int(&udev_device->refs, 0x400); /* in destruction */
if (udev_device->dict != NULL)
prop_object_release(udev_device->dict);
udev_unref(udev_device->udev_ctx);
free(udev_device);
udev_device_set_action(struct udev_device *udev_device, int action)
udev_device->ev_type = action;
udev_device_get_action(struct udev_device *udev_device)
switch (udev_device->ev_type) {
udev_device_get_devnum(struct udev_device *udev_device)
if (udev_device->dict == NULL)
pn = prop_dictionary_get(udev_device->dict, "devnum");
udev_device_get_kptr(struct udev_device *udev_device)
if (udev_device->dict == NULL)
pn = prop_dictionary_get(udev_device->dict, "kptr");
udev_device_get_major(struct udev_device *udev_device)
if (udev_device->dict == NULL)
pn = prop_dictionary_get(udev_device->dict, "major");
udev_device_get_minor(struct udev_device *udev_device)
if (udev_device->dict == NULL)
pn = prop_dictionary_get(udev_device->dict, "minor");
udev_device_get_devnode(struct udev_device *udev_device)
devnum = udev_device_get_devnum(udev_device);
udev_device_get_property_value(struct udev_device *udev_device,
if (udev_device->dict == NULL)
if ((po = prop_dictionary_get(udev_device->dict, key)) == NULL)
udev_device_get_subsystem(struct udev_device *udev_device)
return udev_device_get_property_value(udev_device, "subsystem");
udev_device_get_driver(struct udev_device *udev_device)
return udev_device_get_property_value(udev_device, "driver");
udev_device_get_dictionary(struct udev_device *udev_device)
return udev_device->dict;
udev_device_get_udev(struct udev_device *udev_device)
return udev_device->udev_ctx;
struct udev_device *
struct udev_device *udev_dev;
udev_dev = malloc(sizeof(struct udev_device));
struct udev_device *
udev_device_ref(struct udev_device *udev_device)
atomic_add_int(&udev_device->refs, 1);
return udev_device;
struct udev_device *
struct udev_device *udev_dev;
struct udev_device *
struct udev_device *udev_dev;
struct udev_device *udev_dev;
struct udev_device *dev;
struct udev_device *udev_dev;
struct udev_device *
struct udev_device *udev_dev;
struct udev_device *
udev_device_ref(struct udev_device *udev_device)
atomic_add_int(&udev_device->refs, 1);
return udev_device;
udev_device_unref(struct udev_device *udev_device)
refcount = atomic_fetchadd_int(&udev_device->refs, -1);
atomic_subtract_int(&udev_device->refs, 0x400); /* in destruction */
if (udev_device->dict != NULL)
prop_object_release(udev_device->dict);
udev_unref(udev_device->udev_ctx);
free(udev_device);
udev_device_get_dictionary(struct udev_device *udev_device)
return udev_device->dict;
udev_device_get_udev(struct udev_device *udev_device)
return udev_device->udev_ctx;
struct udev_device *udev_dev;