diff options
author | Geoff Levand <geoffrey.levand@am.sony.com> | 2009-04-12 15:11:40 +0000 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2009-06-30 15:29:03 +0800 |
commit | 7eb1d21503768c849e2d4b8c455a182d82cdc966 (patch) | |
tree | 0cc09f7cb0904c852a1b4d29324bb2d68c715bc8 | |
parent | ce8a340bffd224290ad5219baa5f0466fcd9fd55 (diff) | |
download | petitboot-7eb1d21503768c849e2d4b8c455a182d82cdc966.zip petitboot-7eb1d21503768c849e2d4b8c455a182d82cdc966.tar.gz |
Add udev trigger
Add a new routine udev_trigger() that requests a replay of
system udev events.
Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
-rw-r--r-- | discover/pb-discover.c | 2 | ||||
-rw-r--r-- | discover/udev.c | 10 | ||||
-rw-r--r-- | discover/udev.h | 1 |
3 files changed, 13 insertions, 0 deletions
diff --git a/discover/pb-discover.c b/discover/pb-discover.c index 2b04e62..4d61814 100644 --- a/discover/pb-discover.c +++ b/discover/pb-discover.c @@ -52,6 +52,8 @@ int main(void) if (!udev) return EXIT_FAILURE; + udev_trigger(udev); + for (running = 1; running;) { if (waiter_poll()) break; diff --git a/discover/udev.c b/discover/udev.c index b93c1a5..5496712 100644 --- a/discover/udev.c +++ b/discover/udev.c @@ -208,6 +208,16 @@ out_err: return NULL; } +int udev_trigger(struct udev __attribute__((unused)) *udev) +{ + int rc = system("/sbin/udevadm trigger --subsystem-match=block"); + + if (rc) + pb_log("udev trigger failed: %d (%d)\n", rc, WEXITSTATUS(rc)); + + return WEXITSTATUS(rc); +} + void udev_destroy(struct udev *udev) { talloc_free(udev); diff --git a/discover/udev.h b/discover/udev.h index 250273f..afdbbe1 100644 --- a/discover/udev.h +++ b/discover/udev.h @@ -21,6 +21,7 @@ struct udev; struct device_handler; struct udev *udev_init(struct device_handler *handler); +int udev_trigger(struct udev *udev); void udev_destroy(struct udev *udev); |