X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udev%2Fudevadm-monitor.c;h=7ea7aa0f7067f76ba470036bb0f84b8714494584;hb=ce0119d98af6d8306f0877bd30adda945d1a3621;hp=0852fe301b5686ef69c6f145da20e89d2ec9c3cb;hpb=d971228752cb6f2993f6609c9a07d49037d36806;p=elogind.git diff --git a/udev/udevadm-monitor.c b/udev/udevadm-monitor.c index 0852fe301..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; @@ -289,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", +};