X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udev%2Fudevadm-monitor.c;h=7ea7aa0f7067f76ba470036bb0f84b8714494584;hb=1985c76e48753c200b5a15630b00245c3f60775b;hp=f3a72cf17e3d283a4d2a5ced43d06934567a4995;hpb=cbfad6af1fdc73c6f3c6b001047ff4a86c8a6efd;p=elogind.git diff --git a/udev/udevadm-monitor.c b/udev/udevadm-monitor.c index f3a72cf17..7ea7aa0f7 100644 --- a/udev/udevadm-monitor.c +++ b/udev/udevadm-monitor.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -43,13 +44,12 @@ static void sig_handler(int signum) static void print_device(struct udev_device *device, const char *source, int prop) { - struct timeval tv; - struct timezone tz; + struct timespec ts; - gettimeofday(&tv, &tz); + clock_gettime(CLOCK_MONOTONIC, &ts); printf("%-6s[%llu.%06u] %-8s %s (%s)\n", source, - (unsigned long long) tv.tv_sec, (unsigned int) tv.tv_usec, + (unsigned long long) ts.tv_sec, (unsigned int) ts.tv_nsec/1000, udev_device_get_action(device), udev_device_get_devpath(device), udev_device_get_subsystem(device)); @@ -64,7 +64,7 @@ static void print_device(struct udev_device *device, const char *source, int pro } } -int udevadm_monitor(struct udev *udev, int argc, char *argv[]) +static int adm_monitor(struct udev *udev, int argc, char *argv[]) { struct sigaction act; sigset_t mask; @@ -137,6 +137,9 @@ int udevadm_monitor(struct udev *udev, int argc, char *argv[]) " --tag-match= filter events by tag\n" " --help\n\n"); goto out; + default: + rc = 1; + goto out; } } @@ -286,3 +289,9 @@ out: udev_list_cleanup_entries(udev, &tag_match_list); return rc; } + +const struct udevadm_cmd udevadm_monitor = { + .name = "monitor", + .cmd = adm_monitor, + .help = "listen to kernel and udev events", +};