chiark / gitweb /
remove left-over from ignore_remove and all_partitions
[elogind.git] / udev / udevadm-monitor.c
index df1459ae17d5f8bb7b4379fd123efd4330c0fd5c..d136c6070abe5604b32333eaf6e0c5b2cfb26e9a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004-2008 Kay Sievers <kay.sievers@vrfy.org>
+ * Copyright (C) 2004-2010 Kay Sievers <kay.sievers@vrfy.org>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -67,6 +67,7 @@ static void print_device(struct udev_device *device, const char *source, int pro
 int udevadm_monitor(struct udev *udev, int argc, char *argv[])
 {
        struct sigaction act;
+       sigset_t mask;
        int option;
        int prop = 0;
        int print_kernel = 0;
@@ -110,7 +111,7 @@ int udevadm_monitor(struct udev *udev, int argc, char *argv[])
                                char *devtype;
 
                                util_strscpy(subsys, sizeof(subsys), optarg);
-                               devtype = strchr(subsys, ':');
+                               devtype = strchr(subsys, '/');
                                if (devtype != NULL) {
                                        devtype[0] = '\0';
                                        devtype++;
@@ -120,10 +121,10 @@ int udevadm_monitor(struct udev *udev, int argc, char *argv[])
                        }
                case 'h':
                        printf("Usage: udevadm monitor [--property] [--kernel] [--udev] [--help]\n"
-                              "  --property                    print the event properties\n"
-                              "  --kernel                      print kernel uevents\n"
-                              "  --udev                        print udev events\n"
-                              "  --subsystem-match=<subsystem> filter events\n"
+                              "  --property                              print the event properties\n"
+                              "  --kernel                                print kernel uevents\n"
+                              "  --udev                                  print udev events\n"
+                              "  --subsystem-match=<subsystem[/devtype]> filter events by subsystem\n"
                               "  --help\n\n");
                default:
                        goto out;
@@ -142,6 +143,10 @@ int udevadm_monitor(struct udev *udev, int argc, char *argv[])
        act.sa_flags = SA_RESTART;
        sigaction(SIGINT, &act, NULL);
        sigaction(SIGTERM, &act, NULL);
+       sigemptyset(&mask);
+       sigaddset(&mask, SIGINT);
+       sigaddset(&mask, SIGTERM);
+       sigprocmask(SIG_UNBLOCK, &mask, NULL);
 
        printf("monitor will print the received events for:\n");
        if (print_udev) {
@@ -153,6 +158,7 @@ int udevadm_monitor(struct udev *udev, int argc, char *argv[])
                        rc = 1;
                        goto out;
                }
+               udev_monitor_set_receive_buffer_size(udev_monitor, 128*1024*1024);
 
                udev_list_entry_foreach(entry, udev_list_get_entry(&subsystem_match_list)) {
                        const char *subsys = udev_list_entry_get_name(entry);
@@ -178,6 +184,7 @@ int udevadm_monitor(struct udev *udev, int argc, char *argv[])
                        rc = 3;
                        goto out;
                }
+               udev_monitor_set_receive_buffer_size(kernel_monitor, 128*1024*1024);
 
                udev_list_entry_foreach(entry, udev_list_get_entry(&subsystem_match_list)) {
                        const char *subsys = udev_list_entry_get_name(entry);