+const char *udev_get_run_config_path(struct udev *udev)
+{
+ return udev->run_config_path;
+}
+
+/**
+ * udev_get_run_path:
+ * @udev: udev library context
+ *
+ * Retrieve the udev runtime directory path. The default is "/run/udev".
+ *
+ * Returns: the runtime directory path
+ **/
+const char *udev_get_run_path(struct udev *udev)
+{
+ if (udev->run_path != NULL)
+ return udev->run_path;
+
+ /* check if configured path exists */
+ if (access(udev->run_config_path, F_OK) < 0) {
+ char filename[UTIL_PATH_SIZE];
+
+ /* fall back to /dev/.udev if that exists */
+ util_strscpyl(filename, sizeof(filename), udev_get_dev_path(udev), "/.udev", NULL);
+ if (access(filename, F_OK) >= 0)
+ if (set_value(&udev->run_path, filename) != NULL)
+ return udev->run_path;
+ }
+
+ /* use default path */
+ set_value(&udev->run_path, udev->run_config_path);
+ if (udev->run_path == NULL)
+ return udev->run_config_path;
+ return udev->run_path;
+}
+
+const char *udev_set_run_path(struct udev *udev, const char *path)
+{
+ return set_value(&udev->run_path, path);
+}
+