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=e1bb6fe18e7e00bc57bdabe6c0b45bd996ffd61f;hpb=1e47c28bc575cfed063be7df6bbb822422e2db75;p=elogind.git diff --git a/udev/udevadm-monitor.c b/udev/udevadm-monitor.c index e1bb6fe18..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; @@ -122,11 +122,11 @@ int udevadm_monitor(struct udev *udev, int argc, char *argv[]) devtype[0] = '\0'; devtype++; } - udev_list_entry_add(udev, &subsystem_match_list, subsys, devtype, 0, 0); + udev_list_entry_add(udev, &subsystem_match_list, subsys, devtype, 0); break; } case 't': - udev_list_entry_add(udev, &tag_match_list, optarg, NULL, 0, 0); + udev_list_entry_add(udev, &tag_match_list, optarg, NULL, 0); break; case 'h': printf("Usage: udevadm monitor [--property] [--kernel] [--udev] [--help]\n" @@ -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", +};