mirror of
https://github.com/troglobit/finit.git
synced 2026-11-03 13:28:27 +00:00
keventd: add class/<subsystem>/<name> and driver/<name> conditions
dev/<X> only fires when a device gets a /dev node, which leaves a lot of
embedded-relevant hardware uncoverable: DSA switch cores, IIO sensors,
LEDs, backlight, PHYs, regulators -- all live purely under sysfs.
Two new condition namespaces:
class/<subsystem>/<sysname> asserted on every sysfs class device add
(e.g. <class/leds/blue>)
driver/<name> asserted while the driver is bound to at
least one device (e.g. <driver/mt7530>)
A driver can bind to several devices, so driver/ conditions are
refcounted: asserted on first bind, cleared when the last device is
unbound.
dev_cond() is generalized into a static cond_emit(prefix, rel, set) so
class_cond() and driver_cond() share the same mkpath + symlink/erase
code. The name avoids colliding with src/cond.h's public cond_path()
helper (unrelated function that returns a condition's filesystem path).
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
6 files changed
+174
-13
No files matched your search
@@ -149,6 +149,9 @@ int devnode_add (struct uevent *ev);
|
||||
int devnode_del (struct uevent *ev);
|
||||
int netdev_add (struct uevent *ev);
|
||||
|
||||
void class_cond (const struct uevent *ev, int set);
|
||||
void driver_cond (const struct uevent *ev, int set);
|
||||
|
||||
int symlink_add (struct uevent *ev);
|
||||
int symlink_del (struct uevent *ev);
|
||||
void symlink_write_db (const char *devpath, FILE *fp);
|
||||
|
||||
Reference in new issue
Block a user