int device_set_syspath(sd_device *device, const char *_syspath, bool verify);
int device_set_ifindex(sd_device *device, const char *ifindex);
+int device_set_devuid(sd_device *device, const char *uid);
+int device_set_devgid(sd_device *device, const char *gid);
int device_set_devmode(sd_device *device, const char *devmode);
int device_set_devname(sd_device *device, const char *devname);
int device_set_devtype(sd_device *device, const char *devtype);
assert(device);
+ r = device_read_uevent_file(device);
+ if (r < 0)
+ return r;
+
r = device_read_db(device);
if (r < 0)
return r;
assert(device);
+ r = device_read_uevent_file(device);
+ if (r < 0)
+ return r;
+
r = device_read_db(device);
if (r < 0)
return r;
return 0;
}
-static int device_set_devuid(sd_device *device, const char *uid) {
+int device_set_devuid(sd_device *device, const char *uid) {
uid_t u;
int r;
assert(device);
+ r = device_read_uevent_file(device);
+ if (r < 0)
+ return r;
+
r = device_read_db(device);
if (r < 0)
return r;
return 0;
}
-static int device_set_devgid(sd_device *device, const char *gid) {
+int device_set_devgid(sd_device *device, const char *gid) {
gid_t g;
int r;
assert(major);
assert(minor);
+ if (streq(key, "SUBSYSTEM"))
+ return device_set_subsystem(device, value);
if (streq(key, "DEVTYPE"))
return device_set_devtype(device, value);
if (streq(key, "IFINDEX"))
return device_set_ifindex(device, value);
if (streq(key, "DEVNAME"))
return device_set_devname(device, value);
+ if (streq(key, "DEVUID"))
+ return device_set_devuid(device, value);
+ if (streq(key, "DEVGID"))
+ return device_set_devgid(device, value);
if (streq(key, "DEVMODE"))
return device_set_devmode(device, value);
if (streq(key, "DISKSEQ"))
return device_set_diskseq(device, value);
+ if (streq(key, "DRIVER"))
+ return device_set_driver(device, value);
if (streq(key, "MAJOR"))
*major = value;
else if (streq(key, "MINOR"))
major, strna(minor));
}
+ if (device_in_subsystem(device, "drivers")) {
+ r = device_set_drivers_subsystem(device);
+ if (r < 0)
+ log_device_debug_errno(device, r,
+ "sd-device: Failed to set driver subsystem, ignoring: %m");
+ }
+
return 0;
}
assert_return(device, -EINVAL);
+ r = device_read_uevent_file(device);
+ if (r < 0)
+ return r;
+
if (!device->subsystem_set) {
const char *subsystem;
assert_return(device, -EINVAL);
+ r = device_read_uevent_file(device);
+ if (r < 0)
+ return r;
+
if (!device->driver_set) {
const char *driver = NULL;