X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udev%2Fudev-builtin-kmod.c;h=7f2faee261995fd1ee74769d8964960028afb2e3;hb=4f1795cca7060030461c8f3429e5a62f143f74a9;hp=e6c4d95109f365076c35175f57d8252c2c0a2024;hpb=57f4ef67aa4e517e4ee1b79360169f5544f72379;p=elogind.git diff --git a/udev/udev-builtin-kmod.c b/udev/udev-builtin-kmod.c index e6c4d9510..7f2faee26 100644 --- a/udev/udev-builtin-kmod.c +++ b/udev/udev-builtin-kmod.c @@ -316,6 +316,13 @@ static int insmod(struct kmod_ctx *ctx, const char *name, const char *extra_opti return insmod_alias(ctx, name, extra_options); } +static void udev_kmod_log(void *data, int priority, const char *file, int line, + const char *fn, const char *format, va_list args) +{ + udev_main_log(data, priority, file, line, fn, format, args); +} + +/* needs to re-instantiate the context after a reload */ static int builtin_kmod(struct udev_device *dev, int argc, char *argv[], bool test) { struct udev *udev = udev_device_get_udev(dev); @@ -327,6 +334,7 @@ static int builtin_kmod(struct udev_device *dev, int argc, char *argv[], bool te return -ENOMEM; info(udev, "load module index\n"); + kmod_set_log_fn(ctx, udev_kmod_log, udev); kmod_load_resources(ctx); } @@ -343,6 +351,7 @@ static int builtin_kmod(struct udev_device *dev, int argc, char *argv[], bool te return EXIT_SUCCESS; } +/* called at udev startup */ static int builtin_kmod_init(struct udev *udev) { if (ctx) @@ -353,15 +362,23 @@ static int builtin_kmod_init(struct udev *udev) return -ENOMEM; info(udev, "load module index\n"); + kmod_set_log_fn(ctx, udev_kmod_log, udev); kmod_load_resources(ctx); return 0; } -static int builtin_kmod_exit(struct udev *udev) +/* called on udev shutdown and reload request */ +static void builtin_kmod_exit(struct udev *udev) { ctx = kmod_unref(ctx); info(udev, "unload module index\n"); - return 0; +} + +/* called every couple of seconds during event activity; 'true' if config has changed */ +static bool builtin_kmod_validate(struct udev *udev) +{ + info(udev, "validate module index\n"); + return false; } const struct udev_builtin udev_builtin_kmod = { @@ -369,6 +386,7 @@ const struct udev_builtin udev_builtin_kmod = { .cmd = builtin_kmod, .init = builtin_kmod_init, .exit = builtin_kmod_exit, + .validate = builtin_kmod_validate, .help = "kernel module loader", .run_once = false, };