Lines Matching defs:event
42 struct udev_event *event;
44 event = new0(struct udev_event, 1);
45 if (event == NULL)
47 event->dev = dev;
48 event->udev = udev;
49 udev_list_init(udev, &event->run_list, false);
50 udev_list_init(udev, &event->seclabel_list, false);
51 event->fd_signal = -1;
52 event->birth_usec = now(CLOCK_MONOTONIC);
53 return event;
56 void udev_event_unref(struct udev_event *event) {
57 if (event == NULL)
59 udev_list_cleanup(&event->run_list);
60 udev_list_cleanup(&event->seclabel_list);
61 free(event->program_result);
62 free(event->name);
63 free(event);
66 size_t udev_event_apply_format(struct udev_event *event,
69 struct udev_device *dev = event->dev;
221 if (event->dev_parent == NULL)
223 l = strpcpy(&s, l, udev_device_get_sysname(event->dev_parent));
228 if (event->dev_parent == NULL)
231 driver = udev_device_get_driver(event->dev_parent);
255 if (event->program_result == NULL)
266 strscpy(result, sizeof(result), event->program_result);
289 l = strpcpy(&s, l, event->program_result);
305 if (util_resolve_subsys_kernel(event->udev, attr, vbuf, sizeof(vbuf), 1) == 0)
310 value = udev_device_get_sysattr_value(event->dev, attr);
313 if (value == NULL && event->dev_parent != NULL && event->dev_parent != event->dev)
314 value = udev_device_get_sysattr_value(event->dev_parent, attr);
335 dev_parent = udev_device_get_parent(event->dev);
348 if (event->name != NULL)
349 l = strpcpy(&s, l, event->name);
378 value = udev_device_get_property_value(event->dev, attr);
409 static int spawn_exec(struct udev_event *event,
450 static void spawn_read(struct udev_event *event,
503 age_usec = now(CLOCK_MONOTONIC) - event->birth_usec;
576 static int spawn_wait(struct udev_event *event,
584 pfd[0].fd = event->fd_signal;
594 age_usec = now(CLOCK_MONOTONIC) - event->birth_usec;
637 size = read(event->fd_signal, &fdsi, sizeof(struct signalfd_siginfo));
643 event->sigterm = true;
707 int udev_event_spawn(struct udev_event *event,
721 udev_build_argv(event->udev, arg, NULL, argv);
766 spawn_exec(event, cmd, argv, envp, sigmask,
785 spawn_read(event,
791 err = spawn_wait(event, timeout_usec, timeout_warn_usec, cmd, pid);
870 static int rename_netif(struct udev_event *event) {
871 return rename_netif_dev_fromname_toname(event->dev,udev_device_get_sysname(event->dev),event->name);
874 void udev_event_execute_rules(struct udev_event *event,
879 struct udev_device *dev = event->dev;
890 udev_watch_end(event->udev, dev);
892 udev_rules_apply_to_event(rules, event,
900 event->dev_db = udev_device_clone_with_db(dev);
901 if (event->dev_db != NULL) {
902 /* disable watch during event processing */
904 udev_watch_end(event->udev, event->dev_db);
909 udev_device_copy_properties(dev, event->dev_db);
911 udev_rules_apply_to_event(rules, event,
919 * if this is a net iface, and it is an add event,
926 * note - udev_rules_assigning_name_to is run when event->name is NULL to ensure renames happen,
927 * but also on its own to check if a temp-rename is necessary when event->name exists.
938 (event->name == NULL && (r=udev_rules_assigning_name_to(rules,udev_device_get_sysname(dev))) > 0 ||
939 event->name != NULL && !streq(event->name, udev_device_get_sysname(dev)))) {
942 char *finalifname = event->name;
973 if (event->name != NULL && !streq(event->name, newifname)) {
974 r = rename_netif_dev_fromname_toname(dev,newifname,event->name);
976 finalifname = event->name;
979 } else { /* no need to rename to a tempname first, do a regular direct rename to event->name */
982 if (!streq(event->name, udev_device_get_sysname(dev)))
983 r = rename_netif(event);
991 event->name != NULL && !streq(event->name, udev_device_get_sysname(dev))) {
994 r = rename_netif(event);
997 udev_device_get_sysname(dev), event->name);
999 r = udev_device_rename(dev, event->name);
1003 udev_device_get_ifindex(dev), udev_device_get_sysname(dev), event->name);
1013 if (event->dev_db != NULL)
1014 udev_node_update_old_links(dev, event->dev_db);
1016 if (!event->owner_set)
1017 event->uid = udev_device_get_devnode_uid(dev);
1019 if (!event->group_set)
1020 event->gid = udev_device_get_devnode_gid(dev);
1022 if (!event->mode_set) {
1025 event->mode = udev_device_get_devnode_mode(dev);
1026 } else if (event->gid > 0) {
1028 event->mode = 0660;
1031 event->mode = 0600;
1035 apply = streq(udev_device_get_action(dev), "add") || event->owner_set || event->group_set || event->mode_set;
1036 udev_node_add(dev, apply, event->mode, event->uid, event->gid, &event->seclabel_list);
1040 udev_device_ensure_usec_initialized(event->dev, event->dev_db);
1043 udev_device_tag_index(dev, event->dev_db, true);
1047 event->dev_db = udev_device_unref(event->dev_db);
1051 void udev_event_execute_run(struct udev_event *event, usec_t timeout_usec, usec_t timeout_warn_usec, const sigset_t *sigmask) {
1054 udev_list_entry_foreach(list_entry, udev_list_get_entry(&event->run_list)) {
1061 udev_event_apply_format(event, cmd, command, sizeof(command), false);
1062 udev_builtin_run(event->dev, builtin_cmd, command, false);
1067 if (event->exec_delay > 0) {
1069 sleep(event->exec_delay);
1072 udev_event_apply_format(event, cmd, program, sizeof(program), false);
1073 envp = udev_device_get_properties_envp(event->dev);
1074 udev_event_spawn(event, timeout_usec, timeout_warn_usec, program, envp, sigmask, NULL, 0);