Lines Matching refs:event
52 struct udev_event *event;
54 event = new0(struct udev_event, 1);
55 if (event == NULL)
57 event->dev = dev;
58 event->udev = udev;
59 udev_list_init(udev, &event->run_list, false);
60 udev_list_init(udev, &event->seclabel_list, false);
61 event->birth_usec = clock_boottime_or_monotonic();
62 return event;
65 void udev_event_unref(struct udev_event *event) {
66 if (event == NULL)
68 sd_netlink_unref(event->rtnl);
69 udev_list_cleanup(&event->run_list);
70 udev_list_cleanup(&event->seclabel_list);
71 free(event->program_result);
72 free(event->name);
73 free(event);
76 size_t udev_event_apply_format(struct udev_event *event, const char *src, char *dest, size_t size) {
77 struct udev_device *dev = event->dev;
216 if (event->dev_parent == NULL)
218 l = strpcpy(&s, l, udev_device_get_sysname(event->dev_parent));
223 if (event->dev_parent == NULL)
226 driver = udev_device_get_driver(event->dev_parent);
250 if (event->program_result == NULL)
261 strscpy(result, sizeof(result), event->program_result);
284 l = strpcpy(&s, l, event->program_result);
300 if (util_resolve_subsys_kernel(event->udev, attr, vbuf, sizeof(vbuf), 1) == 0)
305 value = udev_device_get_sysattr_value(event->dev, attr);
308 if (value == NULL && event->dev_parent != NULL && event->dev_parent != event->dev)
309 value = udev_device_get_sysattr_value(event->dev_parent, attr);
330 dev_parent = udev_device_get_parent(event->dev);
343 if (event->name != NULL)
344 l = strpcpy(&s, l, event->name);
373 value = udev_device_get_property_value(event->dev, attr);
390 static int spawn_exec(struct udev_event *event,
446 static void spawn_read(struct udev_event *event,
499 age_usec = clock_boottime_or_monotonic() - event->birth_usec;
630 static int spawn_wait(struct udev_event *event,
651 age_usec = usec - event->birth_usec;
720 int udev_event_spawn(struct udev_event *event,
758 udev_build_argv(event->udev, arg, NULL, argv);
768 spawn_exec(event, cmd, argv, udev_device_get_properties_envp(event->dev),
782 spawn_read(event,
788 err = spawn_wait(event, timeout_usec, timeout_warn_usec, cmd, pid, accept_failure);
803 static int rename_netif(struct udev_event *event) {
804 struct udev_device *dev = event->dev;
811 strscpy(name, IFNAMSIZ, event->name);
813 r = rtnl_set_link_name(&event->rtnl, udev_device_get_ifindex(dev), name);
822 void udev_event_execute_rules(struct udev_event *event,
826 struct udev_device *dev = event->dev;
837 udev_watch_end(event->udev, dev);
839 udev_rules_apply_to_event(rules, event,
846 event->dev_db = udev_device_clone_with_db(dev);
847 if (event->dev_db != NULL) {
848 /* disable watch during event processing */
850 udev_watch_end(event->udev, event->dev_db);
854 udev_device_copy_properties(dev, event->dev_db);
857 udev_rules_apply_to_event(rules, event,
863 event->name != NULL && !streq(event->name, udev_device_get_sysname(dev))) {
866 r = rename_netif(event);
869 udev_device_get_sysname(dev), event->name);
871 r = udev_device_rename(dev, event->name);
874 udev_device_get_ifindex(dev), udev_device_get_sysname(dev), event->name);
884 if (event->dev_db != NULL)
885 udev_node_update_old_links(dev, event->dev_db);
887 if (!event->owner_set)
888 event->uid = udev_device_get_devnode_uid(dev);
890 if (!event->group_set)
891 event->gid = udev_device_get_devnode_gid(dev);
893 if (!event->mode_set) {
896 event->mode = udev_device_get_devnode_mode(dev);
897 } else if (event->gid > 0) {
899 event->mode = 0660;
902 event->mode = 0600;
906 apply = streq(udev_device_get_action(dev), "add") || event->owner_set || event->group_set || event->mode_set;
907 udev_node_add(dev, apply, event->mode, event->uid, event->gid, &event->seclabel_list);
911 udev_device_ensure_usec_initialized(event->dev, event->dev_db);
914 udev_device_tag_index(dev, event->dev_db, true);
918 event->dev_db = udev_device_unref(event->dev_db);
922 void udev_event_execute_run(struct udev_event *event, usec_t timeout_usec, usec_t timeout_warn_usec) {
925 udev_list_entry_foreach(list_entry, udev_list_get_entry(&event->run_list)) {
930 udev_event_apply_format(event, cmd, command, sizeof(command));
933 udev_builtin_run(event->dev, builtin_cmd, command, false);
935 if (event->exec_delay > 0) {
937 sleep(event->exec_delay);
940 udev_event_spawn(event, timeout_usec, timeout_warn_usec, false, command, NULL, 0);