chiark / gitweb /
udevadm: merge all udev tools into a single binary
authorKay Sievers <kay.sievers@vrfy.org>
Thu, 8 Nov 2007 16:51:59 +0000 (17:51 +0100)
committerKay Sievers <kay.sievers@vrfy.org>
Thu, 8 Nov 2007 16:51:59 +0000 (17:51 +0100)
30 files changed:
.gitignore
Makefile
RELEASE-NOTES
udev.7
udev.h
udev.xml
udevadm.8 [new file with mode: 0644]
udevadm.c [new file with mode: 0644]
udevadm.xml [new file with mode: 0644]
udevcontrol.c
udevd.8
udevd.c
udevd.xml
udevinfo.8 [deleted file]
udevinfo.c
udevinfo.xml [deleted file]
udevmonitor.8 [deleted file]
udevmonitor.c
udevmonitor.xml [deleted file]
udevsettle.8 [deleted file]
udevsettle.c
udevsettle.xml [deleted file]
udevstart.8 [deleted file]
udevstart.xml [deleted file]
udevtest.8 [deleted file]
udevtest.c
udevtest.xml [deleted file]
udevtrigger.8 [deleted file]
udevtrigger.c
udevtrigger.xml [deleted file]

index db03272a774ac34eba3aca1da3a4ab3ce857e354..d21eb7bf0344798d46fd3e7ea09054e4dfdde425 100644 (file)
@@ -1,14 +1,8 @@
 *.o
 *.a
 udevd
 *.o
 *.a
 udevd
-udevcontrol
-udevtrigger
-udevsettle
-udevsend
-udevinfo
-udevmonitor
+udevadm
 udevstart
 udevstart
-udevtest
 udev_version.h
 test-udev
 
 udev_version.h
 test-udev
 
index 0c143d6d015c4202d490f5924b03c648de1be59a..3b254f122678d549bf184db931450090d6b5da83 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -16,7 +16,7 @@
 # 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 #
 
 # 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 #
 
-VERSION = 116
+VERSION = 118
 
 # set this to make use of syslog
 USE_LOG = true
 
 # set this to make use of syslog
 USE_LOG = true
@@ -44,14 +44,9 @@ V =
 
 PROGRAMS = \
        udevd                           \
 
 PROGRAMS = \
        udevd                           \
-       udevtrigger                     \
-       udevsettle                      \
-       udevcontrol                     \
-       udevmonitor                     \
-       udevinfo                        \
-       udevtest                        \
-       test-udev                       \
-       udevstart
+       udevadm                         \
+       udevstart                       \
+       test-udev
 
 HEADERS = \
        udev.h                          \
 
 HEADERS = \
        udev.h                          \
@@ -73,18 +68,19 @@ UDEV_OBJS = \
        udev_utils.o                    \
        udev_utils_string.o             \
        udev_utils_file.o               \
        udev_utils.o                    \
        udev_utils_string.o             \
        udev_utils_file.o               \
+       udevmonitor.o                   \
+       udevinfo.o                      \
+       udevcontrol.o                   \
+       udevtrigger.o                   \
+       udevsettle.o                    \
+       udevtest.o                      \
        udev_sysdeps.o
 LIBUDEV = libudev.a
 
 MAN_PAGES = \
        udev.7                          \
        udev_sysdeps.o
 LIBUDEV = libudev.a
 
 MAN_PAGES = \
        udev.7                          \
-       udevmonitor.8                   \
        udevd.8                         \
        udevd.8                         \
-       udevtrigger.8                   \
-       udevsettle.8                    \
-       udevtest.8                      \
-       udevinfo.8                      \
-       udevstart.8
+       udevadm.8
 
 GEN_HEADERS = \
        udev_version.h
 
 GEN_HEADERS = \
        udev_version.h
@@ -242,13 +238,14 @@ install-config:
 
 install-man:
        $(INSTALL_DATA) -D udev.7 $(DESTDIR)$(mandir)/man7/udev.7
 
 install-man:
        $(INSTALL_DATA) -D udev.7 $(DESTDIR)$(mandir)/man7/udev.7
-       $(INSTALL_DATA) -D udevinfo.8 $(DESTDIR)$(mandir)/man8/udevinfo.8
-       $(INSTALL_DATA) -D udevtest.8 $(DESTDIR)$(mandir)/man8/udevtest.8
        $(INSTALL_DATA) -D udevd.8 $(DESTDIR)$(mandir)/man8/udevd.8
        $(INSTALL_DATA) -D udevd.8 $(DESTDIR)$(mandir)/man8/udevd.8
-       $(INSTALL_DATA) -D udevtrigger.8 $(DESTDIR)$(mandir)/man8/udevtrigger.8
-       $(INSTALL_DATA) -D udevsettle.8 $(DESTDIR)$(mandir)/man8/udevsettle.8
-       $(INSTALL_DATA) -D udevmonitor.8 $(DESTDIR)$(mandir)/man8/udevmonitor.8
-       - ln -f -s udevd.8 $(DESTDIR)$(mandir)/man8/udevcontrol.8
+       $(INSTALL_DATA) -D udevadm.8 $(DESTDIR)$(mandir)/man8/udevadm.8
+       ln -f -s udevadm.8 $(DESTDIR)$(mandir)/man8/udevinfo.8
+       ln -f -s udevadm.8 $(DESTDIR)$(mandir)/man8/udevtest.8
+       ln -f -s udevadm.8 $(DESTDIR)$(mandir)/man8/udevtrigger.8
+       ln -f -s udevadm.8 $(DESTDIR)$(mandir)/man8/udevsettle.8
+       ln -f -s udevadm.8 $(DESTDIR)$(mandir)/man8/udevmonitor.8
+       ln -f -s udevadm.8 $(DESTDIR)$(mandir)/man8/udevcontrol.8
        @extras="$(EXTRAS)"; for target in $$extras; do \
                $(MAKE) -C $$target $@ || exit 1; \
        done;
        @extras="$(EXTRAS)"; for target in $$extras; do \
                $(MAKE) -C $$target $@ || exit 1; \
        done;
@@ -256,6 +253,7 @@ install-man:
 
 uninstall-man:
        - rm -f $(DESTDIR)$(mandir)/man7/udev.7
 
 uninstall-man:
        - rm -f $(DESTDIR)$(mandir)/man7/udev.7
+       - rm -f $(DESTDIR)$(mandir)/man8/udevadm.8
        - rm -f $(DESTDIR)$(mandir)/man8/udevinfo.8
        - rm -f $(DESTDIR)$(mandir)/man8/udevtest.8
        - rm -f $(DESTDIR)$(mandir)/man8/udevd.8
        - rm -f $(DESTDIR)$(mandir)/man8/udevinfo.8
        - rm -f $(DESTDIR)$(mandir)/man8/udevtest.8
        - rm -f $(DESTDIR)$(mandir)/man8/udevd.8
@@ -271,12 +269,15 @@ uninstall-man:
 install-bin:
        $(INSTALL) -d $(DESTDIR)$(udevdir)
        $(INSTALL_PROGRAM) -D udevd $(DESTDIR)$(sbindir)/udevd
 install-bin:
        $(INSTALL) -d $(DESTDIR)$(udevdir)
        $(INSTALL_PROGRAM) -D udevd $(DESTDIR)$(sbindir)/udevd
-       $(INSTALL_PROGRAM) -D udevtrigger $(DESTDIR)$(sbindir)/udevtrigger
-       $(INSTALL_PROGRAM) -D udevsettle $(DESTDIR)$(sbindir)/udevsettle
-       $(INSTALL_PROGRAM) -D udevcontrol $(DESTDIR)$(sbindir)/udevcontrol
-       $(INSTALL_PROGRAM) -D udevmonitor $(DESTDIR)$(usrsbindir)/udevmonitor
-       $(INSTALL_PROGRAM) -D udevinfo $(DESTDIR)$(usrbindir)/udevinfo
-       $(INSTALL_PROGRAM) -D udevtest $(DESTDIR)$(usrbindir)/udevtest
+       $(INSTALL_PROGRAM) -D udevadm $(DESTDIR)$(sbindir)/udevadm
+       ln -f -s udevadm $(DESTDIR)$(sbindir)/udevtrigger
+       ln -f -s udevadm $(DESTDIR)$(sbindir)/udevsettle
+       ln -f -s udevadm $(DESTDIR)$(sbindir)/udevcontrol
+       mkdir -p -m 0755 $(DESTDIR)$(usrsbindir)
+       ln -f -s $(sbindir)/udevadm $(DESTDIR)$(usrsbindir)/udevmonitor
+       mkdir -p -m 0755 $(DESTDIR)$(usrbindir)
+       ln -f -s $(sbindir)/udevadm $(DESTDIR)$(usrbindir)/udevinfo
+       ln -f -s $(sbindir)/udevadm $(DESTDIR)$(usrbindir)/udevtest
        @extras="$(EXTRAS)"; for target in $$extras; do \
                $(MAKE) -C $$target $@ || exit 1; \
        done;
        @extras="$(EXTRAS)"; for target in $$extras; do \
                $(MAKE) -C $$target $@ || exit 1; \
        done;
@@ -289,6 +290,7 @@ endif
 
 uninstall-bin:
        - rm -f $(DESTDIR)$(sbindir)/udevd
 
 uninstall-bin:
        - rm -f $(DESTDIR)$(sbindir)/udevd
+       - rm -f $(DESTDIR)$(sbindir)/udevadm
        - rm -f $(DESTDIR)$(sbindir)/udevtrigger
        - rm -f $(DESTDIR)$(sbindir)/udevsettle
        - rm -f $(DESTDIR)$(sbindir)/udevcontrol
        - rm -f $(DESTDIR)$(sbindir)/udevtrigger
        - rm -f $(DESTDIR)$(sbindir)/udevsettle
        - rm -f $(DESTDIR)$(sbindir)/udevcontrol
index fb1f1fd10b2e08498cb9753ab58899a12af34c7e..6fadd2baf0a1d305528219af088dcc52e9819fce 100644 (file)
@@ -1,3 +1,12 @@
+udev 117
+========
+Bugfixes.
+
+All udev tools are merged into a single binary called udevadm now.
+The old names of the binary are commands for udevadm now. Symlinks
+provide the functionality of the standalone tools. There is only a
+single udevadm.8 man page for all tools left.
+
 udev 116
 ========
 Bugfixes.
 udev 116
 ========
 Bugfixes.
diff --git a/udev.7 b/udev.7
index 874c9abe3809b2ff1956e1f528c35bab428b580a..e237ba7d46a38b46cfc1444af2f8a1bf80ff6189 100644 (file)
--- a/udev.7
+++ b/udev.7
@@ -415,5 +415,4 @@ and many others\.
 .SH "SEE ALSO"
 .PP
 \fBudevd\fR(8),
 .SH "SEE ALSO"
 .PP
 \fBudevd\fR(8),
-\fBudevinfo\fR(8),
-\fBudevmonitor\fR(8)
+\fBudevadm\fR(8)
diff --git a/udev.h b/udev.h
index 33b39aaa531969f890e694adb647b6eaf5fc9e7d..e6e953b25dfa21fd5c8027ea5134831c26762997 100644 (file)
--- a/udev.h
+++ b/udev.h
@@ -169,4 +169,12 @@ extern void file_unmap(void *buf, size_t bufsize);
 extern int unlink_secure(const char *filename);
 extern size_t buf_get_line(const char *buf, size_t buflen, size_t cur);
 
 extern int unlink_secure(const char *filename);
 extern size_t buf_get_line(const char *buf, size_t buflen, size_t cur);
 
+/* udev commands */
+extern int udevmonitor(int argc, char *argv[], char *envp[]);
+extern int udevinfo(int argc, char *argv[], char *envp[]);
+extern int udevcontrol(int argc, char *argv[], char *envp[]);
+extern int udevtrigger(int argc, char *argv[], char *envp[]);
+extern int udevsettle(int argc, char *argv[], char *envp[]);
+extern int udevtest(int argc, char *argv[], char *envp[]);
+
 #endif
 #endif
index 83a9d754ca0abaf8cd505239a4eff1161619c6b9..71832a2fe5977115e60497874c1a502bea12aca1 100644 (file)
--- a/udev.xml
+++ b/udev.xml
             <refentrytitle>udevd</refentrytitle><manvolnum>8</manvolnum>
           </citerefentry>, 
           <citerefentry>
             <refentrytitle>udevd</refentrytitle><manvolnum>8</manvolnum>
           </citerefentry>, 
           <citerefentry>
-            <refentrytitle>udevinfo</refentrytitle><manvolnum>8</manvolnum>
-          </citerefentry>, 
-          <citerefentry>
-            <refentrytitle>udevmonitor</refentrytitle><manvolnum>8</manvolnum>
+            <refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum>
         </citerefentry></para>
       </refsect1>
     </refentry>
         </citerefentry></para>
       </refsect1>
     </refentry>
diff --git a/udevadm.8 b/udevadm.8
new file mode 100644 (file)
index 0000000..2350221
--- /dev/null
+++ b/udevadm.8
@@ -0,0 +1,255 @@
+.\"     Title: udevadm
+.\"    Author: 
+.\" Generator: DocBook XSL Stylesheets v1.73.1 <http://docbook.sf.net/>
+.\"      Date: November 2007
+.\"    Manual: udevadm
+.\"    Source: udev
+.\"
+.TH "UDEVADM" "8" "November 2007" "udev" "udevadm"
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.SH "NAME"
+udevadm - udev management tool
+.SH "SYNOPSIS"
+.HP 21
+\fBudevadm info \fR\fB[options]\fR
+.HP 24
+\fBudevadm trigger \fR\fB[options]\fR
+.HP 23
+\fBudevadm settle \fR\fB[options]\fR
+.HP 36
+\fBudevadm control \fR\fB[options]\fR\fB \fR\fB\fIinstruction\fR\fR
+.HP 24
+\fBudevadm monitor \fR\fB[options]\fR
+.HP 29
+\fBudevadm test \fR\fB[options]\fR\fB \fR\fB\fIdevpath\fR\fR
+.HP 16
+\fBudevadm version\fR
+.HP 13
+\fBudevadm help\fR
+.SH "DESCRIPTION"
+.PP
+udevadm expects a command and command specific options\. It controls the runtime behavior of udev, request kernel events, manages the event queue, and provides simple debugging mechanisms\.
+.SH "OPTIONS"
+.SS "udevadm info"
+.PP
+Queries the udev database for device information stored in the udev database\. It can also query the properties of a device from its sysfs representation to help creating udev rules that match this device\.
+.PP
+\fB\-\-query=\fR\fB\fItype\fR\fR
+.RS 4
+Query the database for specified type of device data\. It needs the
+\fB\-\-path\fR
+or
+\fB\-\-name\fR
+to identify the specified device\. Valid queries are:
+\fBname\fR,
+\fBsymlink\fR,
+\fBpath\fR,
+\fBenv\fR,
+\fBall\fR\.
+.RE
+.PP
+\fB\-\-path=\fR\fB\fIdevpath\fR\fR
+.RS 4
+The devpath of the device to query\.
+.RE
+.PP
+\fB\-\-name=\fR\fB\fInode\fR\fR
+.RS 4
+The name of the device node or a symlink to query
+.RE
+.PP
+\fB\-\-root\fR
+.RS 4
+The udev root directory:
+\fI/dev\fR\. If used in conjunction with a
+\fBname\fR
+or
+\fBsymlink\fR
+query, the query returns the absolute path including the root directory\.
+.RE
+.PP
+\fB\-\-attribute\-walk\fR
+.RS 4
+Print all sysfs properties of the specified device that can be used in udev rules to match the specified device\. It prints all devices along the chain, up to the root of sysfs that can be used in udev rules\.
+.RE
+.PP
+\fB\-\-export\-db\fR
+.RS 4
+Export the content of the udev database\.
+.RE
+.PP
+\fB\-\-version\fR
+.RS 4
+Print version\.
+.RE
+.PP
+\fB\-\-help\fR
+.RS 4
+Print help text\.
+.RE
+.SS "udevadm trigger"
+.PP
+Request kernel device uevents, usually used to replay events at system coldplug\.
+.PP
+\fB\-\-verbose\fR
+.RS 4
+Print the list of devices which will be triggered\.
+.RE
+.PP
+\fB\-\-dry\-run\fR
+.RS 4
+Do not actually trigger the event\.
+.RE
+.PP
+\fB\-\-retry\-failed\fR
+.RS 4
+Trigger only the events which are failed during a previous run\.
+.RE
+.PP
+\fB\-\-action=\fR\fB\fIaction\fR\fR
+.RS 4
+Type of event to be triggered\. The default value is "add"\.
+.RE
+.PP
+\fB\-\-subsystem\-match=\fR\fB\fIsubsystem\fR\fR
+.RS 4
+Trigger events for devices which belong to a matching subsystem\. This option can be specified multiple times and supports shell style pattern matching\.
+.RE
+.PP
+\fB\-\-subsystem\-nomatch=\fR\fB\fIsubsystem\fR\fR
+.RS 4
+Do not trigger events for devices which belong to a matching subsystem\. This option can be specified multiple times and supports shell style pattern matching\.
+.RE
+.PP
+\fB\-\-attr\-match=\fR\fB\fIattribute=value\fR\fR
+.RS 4
+Trigger events for devices with a matching sysfs attribute\. If a value is specified along with the attribute name, the content of the attribute is matched against the given value using shell style pattern matching\. If no value is specified, the existence of the sysfs attribute is checked\. This option can be specified multiple times\.
+.RE
+.PP
+\fB\-\-attr\-nomatch\fR\fB\fIattribute=value\fR\fR
+.RS 4
+Do not trigger events for devices with a matching sysfs attribute\. If a value is specified along with the attribute name, the content of the attribute is matched against the given value using shell style pattern matching\. If no value is specified, the existence of the sysfs attribute is checked\. This option can be specified multiple times\.
+.RE
+.SS "udevadm settle"
+.PP
+Watches the udev event queue, and exits if all current events are handled\.
+.PP
+\fB\-\-timeout=\fR\fB\fIseconds\fR\fR
+.RS 4
+Maximum seconds to wait for the queue to become empty\.
+.RE
+.PP
+\fB\-\-help\fR
+.RS 4
+Print help text\.
+.RE
+.SS "udevadm control \fIinstruction\fR"
+.PP
+Modify the internal state of the running udev daemon\.
+.PP
+\fBlog_priority=\fR\fB\fIvalue\fR\fR
+.RS 4
+Set the internal log level of udevd\. Valid values are the numerical syslog priorities or their textual representations:
+\fBerr\fR,
+\fBinfo\fR
+and
+\fBdebug\fR\.
+.RE
+.PP
+\fBstop_exec_queue\fR
+.RS 4
+Signal udevd to stop executing new events\. Incoming events will be queued\.
+.RE
+.PP
+\fBstart_exec_queue\fR
+.RS 4
+Signal udevd to enable the execution of events\.
+.RE
+.PP
+\fBreload_rules\fR
+.RS 4
+Signal udevd to reload the rules from the config\.
+.RE
+.PP
+\fBenv \fR\fB\fIvar\fR\fR\fB=\fR\fB\fIvalue\fR\fR
+.RS 4
+Set global variable\.
+.RE
+.PP
+\fBmax_childs\fR
+.RS 4
+Set the maximum number of events, udevd will handle at the same time\.
+.RE
+.PP
+\fBmax_childs_running\fR
+.RS 4
+Set the maximum number of events, which are allowed to run at the same time\.
+.RE
+.PP
+\fBhelp\fR
+.RS 4
+Print help text\.
+.RE
+.SS "udevadm monitor"
+.PP
+Listens to the kernel uevents and events sent out by a udev rule and prints the devpath of the event to the console\. It can be used to analyze the event timing, by comparing the timestamps of the kernel uevent and the udev event\.
+.PP
+\fB\-\-environment\fR
+.RS 4
+Print the complete environment for all events\. Can be used to compare the kernel supplied and the udev added environment values\.
+.RE
+.PP
+\fB\-\-kernel\fR
+.RS 4
+Print the kernel uevents\.
+.RE
+.PP
+\fB\-\-udev\fR
+.RS 4
+Print the udev event after the rule processing\.
+.RE
+.PP
+\fB\-\-help\fR
+.RS 4
+Print help text\.
+.RE
+.SS "udevadm test"
+.PP
+Simulate a udev event run for the given device, and print out debug output\. Unless forced to, no device node or symlink will be created\.
+.PP
+\fB\-\-action=\fR\fB\fIstring\fR\fR
+.RS 4
+The action string\.
+.RE
+.PP
+\fB\-\-subsystem=\fR\fB\fIstring\fR\fR
+.RS 4
+The subsystem string\.
+.RE
+.PP
+\fB\-\-force\fR
+.RS 4
+Force the creation of a device node or symlink\. Usually the test run prints only debug output\.
+.RE
+.PP
+\fB\-\-help\fR
+.RS 4
+Print help text\.
+.RE
+.SS "udevadm version"
+.PP
+Print version number\.
+.SS "udevadm help"
+.PP
+Print help text\.
+.SH "AUTHOR"
+.PP
+Written by Kay Sievers
+<kay\.sievers@vrfy\.org>\.
+.SH "SEE ALSO"
+.PP
+\fBudev\fR(7)
+\fBudevd\fR(8)
diff --git a/udevadm.c b/udevadm.c
new file mode 100644 (file)
index 0000000..24e4d99
--- /dev/null
+++ b/udevadm.c
@@ -0,0 +1,165 @@
+/*
+ * Copyright (C) 2007 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 the
+ *     Free Software Foundation version 2 of the License.
+ * 
+ *     This program is distributed in the hope that it will be useful, but
+ *     WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *     General Public License for more details.
+ * 
+ *     You should have received a copy of the GNU General Public License along
+ *     with this program; if not, write to the Free Software Foundation, Inc.,
+ *     51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ */
+
+#include <unistd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <string.h>
+#include <errno.h>
+#include <getopt.h>
+
+#include "udev.h"
+
+static int verbose;
+
+#ifdef USE_LOG
+void log_message(int priority, const char *format, ...)
+{
+       va_list args;
+
+       if (priority > udev_log_priority)
+               return;
+
+       va_start(args, format);
+       if (verbose) {
+               vprintf(format, args);
+               printf("\n");
+       } else
+               vsyslog(priority, format, args);
+       va_end(args);
+}
+#endif
+
+struct command {
+       const char *name;
+       int (*cmd)(int argc, char *argv[], char *envp[]);
+       const char *help;
+       int verbose;
+};
+
+static const struct command cmds[];
+
+static int version(int argc, char *argv[], char *envp[])
+{
+       printf("%s\n", UDEV_VERSION);
+       return 0;
+}
+
+static int help(int argc, char *argv[], char *envp[])
+{
+       const struct command *cmd;
+
+       printf("Usage: udev COMMAND [OPTIONS]\n");
+       for (cmd = cmds; cmd->name != NULL; cmd++)
+               printf("  %-12s %s\n", cmd->name, cmd->help);
+       printf("\n");
+       return 0;
+}
+
+static const struct command cmds[] = {
+       {
+               .name = "info",
+               .cmd = udevinfo,
+               .help = "query sysfs or the udev database",
+       },
+       {
+               .name = "trigger",
+               .cmd = udevtrigger,
+               .help = "request events from the kernel",
+       },
+       {
+               .name = "settle",
+               .cmd = udevsettle, "",
+               .help = "wait for the event queue to finish",
+       },
+       {
+               .name = "control",
+               .cmd = udevcontrol,
+               .help = "control the udev daemon",
+       },
+       {
+               .name = "monitor",
+               .cmd = udevmonitor,
+               .help = "listen to kernel and udev events",
+       },
+       {
+               .name = "test",
+               .cmd = udevtest,
+               .help = "simulation run",
+               .verbose = 1,
+       },
+       {
+               .name = "version",
+               .cmd = version,
+               .help = "print the version number",
+       },
+       {
+               .name = "help",
+               .cmd = help,
+               .help = "print this help text",
+       },
+       {}
+};
+
+int main(int argc, char *argv[], char *envp[])
+{
+       const char *command;
+       const char *pos;
+       const struct command *cmd;
+       int rc;
+
+       /* get binary or symlink name */
+       pos = strrchr(argv[0], '/');
+       if (pos != NULL)
+               command = &pos[1];
+       else
+               command = argv[0];
+
+       /* the trailing part of the binary or symlink name is the command */
+       if (strncmp(command, "udev", 4) == 0)
+               command = &command[4];
+
+       if (command == NULL || command[0] == '\0')
+               goto err_unknown;
+
+       /* udevadm itself needs to strip its name from the passed options */
+       if (strcmp(command, "adm") == 0) {
+               command = argv[1];
+               argv++;
+               argc--;
+       }
+
+       if (command == NULL || command[0] == '\0')
+               goto err_unknown;
+
+       /* find and execute command */
+       for (cmd = cmds; cmd->name != NULL; cmd++) {
+               if (strcmp(cmd->name, command) == 0) {
+                       verbose = cmd->verbose;
+                       rc = cmd->cmd(argc, argv, envp);
+                       goto out;
+               }
+       }
+
+err_unknown:
+       fprintf(stderr, "unknown command, try help\n\n");
+       rc = 2;
+out:
+       return rc;
+}
diff --git a/udevadm.xml b/udevadm.xml
new file mode 100644 (file)
index 0000000..0dd1570
--- /dev/null
@@ -0,0 +1,354 @@
+<?xml version='1.0'?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
+
+<article>
+  <section>
+    <title>udevadm</title>
+    <refentry>
+      <refentryinfo>
+        <title>udevd</title>
+        <date>November 2007</date>
+        <productname>udev</productname>
+      </refentryinfo>
+
+      <refmeta>
+        <refentrytitle>udevadm</refentrytitle>
+        <manvolnum>8</manvolnum>
+        <refmiscinfo class="version"></refmiscinfo>
+      </refmeta>
+
+      <refnamediv>
+        <refname>udevadm</refname><refpurpose>udev management tool</refpurpose>
+      </refnamediv>
+
+      <refsynopsisdiv>
+        <cmdsynopsis>
+          <command>udevadm info <optional>options</optional></command>
+        </cmdsynopsis>
+        <cmdsynopsis>
+          <command>udevadm trigger <optional>options</optional></command>
+        </cmdsynopsis>
+        <cmdsynopsis>
+          <command>udevadm settle <optional>options</optional></command>
+        </cmdsynopsis>
+        <cmdsynopsis>
+          <command>udevadm control <optional>options</optional> <replaceable>instruction</replaceable></command>
+        </cmdsynopsis>
+        <cmdsynopsis>
+          <command>udevadm monitor <optional>options</optional></command>
+        </cmdsynopsis>
+        <cmdsynopsis>
+          <command>udevadm test <optional>options</optional> <replaceable>devpath</replaceable></command>
+        </cmdsynopsis>
+        <cmdsynopsis>
+          <command>udevadm version</command>
+        </cmdsynopsis>
+        <cmdsynopsis>
+          <command>udevadm help</command>
+        </cmdsynopsis>
+      </refsynopsisdiv>
+
+      <refsect1><title>DESCRIPTION</title>
+        <para>udevadm expects a command and command specific options.  It
+        controls the runtime behavior of udev, request kernel events,
+        manages the event queue, and provides simple debugging mechanisms.</para>
+      </refsect1>
+
+      <refsect1><title>OPTIONS</title>
+
+        <refsect2><title>udevadm info</title>
+          <para>Queries the udev database for device information
+          stored in the udev database. It can also query the properties
+          of a device from its sysfs representation to help creating udev
+          rules that match this device.</para>
+          <variablelist>
+            <varlistentry>
+              <term><option>--query=<replaceable>type</replaceable></option></term>
+              <listitem>
+                <para>Query the database for specified type of device data. It needs the
+                <option>--path</option> or <option>--name</option> to identify the specified
+                device. Valid queries are:
+                <command>name</command>, <command>symlink</command>, <command>path</command>,
+                <command>env</command>, <command>all</command>.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>--path=<replaceable>devpath</replaceable></option></term>
+              <listitem>
+                <para>The devpath of the device to query.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>--name=<replaceable>node</replaceable></option></term>
+              <listitem>
+                <para>The name of the device node or a symlink to query</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>--root</option></term>
+              <listitem>
+                <para>The udev root directory: <filename>/dev</filename>. If used in conjunction
+                with a <command>name</command> or <command>symlink</command> query, the
+                query returns the absolute path including the root directory.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>--attribute-walk</option></term>
+              <listitem>
+                <para>Print all sysfs properties of the specified device that can be used
+                in udev rules to match the specified device. It prints all devices
+                along the chain, up to the root of sysfs that can be used in udev rules.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>--export-db</option></term>
+              <listitem>
+                <para>Export the content of the udev database.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>--version</option></term>
+              <listitem>
+                <para>Print version.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>--help</option></term>
+              <listitem>
+                <para>Print help text.</para>
+              </listitem>
+            </varlistentry>
+          </variablelist>
+        </refsect2>
+
+        <refsect2><title>udevadm trigger</title>
+          <para>Request kernel device uevents, usually used to replay events at system coldplug.</para>
+          <variablelist>
+            <varlistentry>
+              <term><option>--verbose</option></term>
+              <listitem>
+                <para>Print the list of devices which will be triggered.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>--dry-run</option></term>
+              <listitem>
+                <para>Do not actually trigger the event.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>--retry-failed</option></term>
+              <listitem>
+                <para>Trigger only the events which are failed during a previous run.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>--action=<replaceable>action</replaceable></option></term>
+              <listitem>
+                <para>Type of event to be triggered. The default value is "add".</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>--subsystem-match=<replaceable>subsystem</replaceable></option></term>
+              <listitem>
+                <para>Trigger events for devices which belong to a matching subsystem. This option
+                can be specified multiple times and supports shell style pattern matching.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>--subsystem-nomatch=<replaceable>subsystem</replaceable></option></term>
+              <listitem>
+                <para>Do not trigger events for devices which belong to a matching subsystem. This option
+                can be specified multiple times and supports shell style pattern matching.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>--attr-match=<replaceable>attribute=value</replaceable></option></term>
+              <listitem>
+                <para>Trigger events for devices with a matching sysfs attribute. If a value is specified
+                along with the attribute name, the content of the attribute is matched against the given
+                value using shell style pattern matching. If no value is specified, the existence of the
+                sysfs attribute is checked. This option can be specified multiple times.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>--attr-nomatch<replaceable>attribute=value</replaceable></option></term>
+              <listitem>
+                <para>Do not trigger events for devices with a matching sysfs attribute. If a value is
+                specified along with the attribute name, the content of the attribute is matched against
+                the given value using shell style pattern matching. If no value is specified, the existence
+                of the sysfs attribute is checked. This option can be specified multiple times.</para>
+              </listitem>
+            </varlistentry>
+          </variablelist>
+        </refsect2>
+
+        <refsect2><title>udevadm settle</title>
+          <para>Watches the udev event queue, and exits if all current events are handled.</para>
+          <variablelist>
+            <varlistentry>
+              <term><option>--timeout=<replaceable>seconds</replaceable></option></term>
+              <listitem>
+                <para>Maximum seconds to wait for the queue to become empty.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>--help</option></term>
+              <listitem>
+                <para>Print help text.</para>
+              </listitem>
+            </varlistentry>
+          </variablelist>
+        </refsect2>
+
+        <refsect2><title>udevadm control <replaceable>instruction</replaceable></title>
+          <para>Modify the internal state of the running udev daemon.</para>
+          <variablelist>
+            <varlistentry>
+              <term><option>log_priority=<replaceable>value</replaceable></option></term>
+              <listitem>
+                <para>Set the internal log level of udevd. Valid values are the numerical
+                syslog priorities or their textual representations: <option>err</option>,
+                <option>info</option> and <option>debug</option>.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>stop_exec_queue</option></term>
+              <listitem>
+                <para>Signal udevd to stop executing new events. Incoming events
+                will be queued.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>start_exec_queue</option></term>
+              <listitem>
+                <para>Signal udevd to enable the execution of events.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>reload_rules</option></term>
+              <listitem>
+                <para>Signal udevd to reload the rules from the config.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>env <replaceable>var</replaceable>=<replaceable>value</replaceable></option></term>
+              <listitem>
+                <para>Set global variable.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>max_childs</option></term>
+              <listitem>
+                <para>Set the maximum number of events, udevd will handle at the
+                same time.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>max_childs_running</option></term>
+              <listitem>
+                <para>Set the maximum number of events, which are allowed to run at the
+                same time.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>help</option></term>
+              <listitem>
+                <para>Print help text.</para>
+              </listitem>
+            </varlistentry>
+          </variablelist>
+        </refsect2>
+
+        <refsect2><title>udevadm monitor</title>
+          <para>Listens to the kernel uevents and events sent out by a udev rule
+          and prints the devpath of the event to the console. It can be used to analyze the
+          event timing, by comparing the timestamps of the kernel uevent and the udev event.
+          </para>
+          <variablelist>
+            <varlistentry>
+              <term><option>--environment</option></term>
+              <listitem>
+                <para>Print the complete environment for all events. Can be used to compare the
+                kernel supplied and the udev added environment values.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>--kernel</option></term>
+              <listitem>
+                <para>Print the kernel uevents.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>--udev</option></term>
+              <listitem>
+                <para>Print the udev event after the rule processing.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>--help</option></term>
+              <listitem>
+                <para>Print help text.</para>
+              </listitem>
+            </varlistentry>
+          </variablelist>
+        </refsect2>
+
+        <refsect2><title>udevadm test</title>
+          <para>Simulate a udev event run for the given device, and print out debug
+          output. Unless forced to, no device node or symlink will be created.</para>
+          <variablelist>
+            <varlistentry>
+              <term><option>--action=<replaceable>string</replaceable></option></term>
+              <listitem>
+                <para>The action string.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>--subsystem=<replaceable>string</replaceable></option></term>
+              <listitem>
+                <para>The subsystem string.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>--force</option></term>
+              <listitem>
+                <para>Force the creation of a device node or symlink. Usually the test run
+                prints only debug output.</para>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term><option>--help</option></term>
+              <listitem>
+                <para>Print help text.</para>
+              </listitem>
+            </varlistentry>
+          </variablelist>
+        </refsect2>
+
+        <refsect2><title>udevadm version</title>
+          <para>Print version number.</para>
+        </refsect2>
+
+        <refsect2><title>udevadm help</title>
+          <para>Print help text.</para>
+        </refsect2>
+      </refsect1>
+
+      <refsect1><title>AUTHOR</title>
+        <para>Written by Kay Sievers <email>kay.sievers@vrfy.org</email>.</para>
+      </refsect1>
+
+      <refsect1>
+        <title>SEE ALSO</title>
+        <para><citerefentry>
+            <refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum>
+        </citerefentry>
+        <citerefentry>
+            <refentrytitle>udevd</refentrytitle><manvolnum>8</manvolnum>
+        </citerefentry></para>
+      </refsect1>
+    </refentry>
+  </section>
+</article>
index b20ce2e0717359aa99c1b204d95c098e9f93a1d2..54a0744683e505cfc81645ddecdd829eccd742ad 100644 (file)
 static int sock = -1;
 static int udev_log = 0;
 
 static int sock = -1;
 static int udev_log = 0;
 
-#ifdef USE_LOG
-void log_message (int priority, const char *format, ...)
-{
-       va_list args;
-
-       if (priority > udev_log)
-               return;
-
-       va_start(args, format);
-       vsyslog(priority, format, args);
-       va_end(args);
-}
-#endif
-
-int main(int argc, char *argv[], char *envp[])
+int udevcontrol(int argc, char *argv[], char *envp[])
 {
        static struct udevd_ctrl_msg ctrl_msg;
        struct sockaddr_un saddr;
 {
        static struct udevd_ctrl_msg ctrl_msg;
        struct sockaddr_un saddr;
@@ -124,7 +110,7 @@ int main(int argc, char *argv[], char *envp[])
                strlcpy(ctrl_msg.buf, val, sizeof(ctrl_msg.buf));
                info("send env '%s'", val);
        } else if (strcmp(arg, "help") == 0  || strcmp(arg, "--help") == 0  || strcmp(arg, "-h") == 0) {
                strlcpy(ctrl_msg.buf, val, sizeof(ctrl_msg.buf));
                info("send env '%s'", val);
        } else if (strcmp(arg, "help") == 0  || strcmp(arg, "--help") == 0  || strcmp(arg, "-h") == 0) {
-               printf("Usage: udevcontrol COMMAND\n"
+               printf("Usage: udevadm control COMMAND\n"
                        "  log_priority=<level>   set the udev log level for the daemon\n"
                        "  stop_exec_queue        keep udevd from executing events, queue only\n"
                        "  start_exec_queue       execute events, flush queue\n"
                        "  log_priority=<level>   set the udev log level for the daemon\n"
                        "  stop_exec_queue        keep udevd from executing events, queue only\n"
                        "  start_exec_queue       execute events, flush queue\n"
diff --git a/udevd.8 b/udevd.8
index 46edde43565bbfca22ce7590f191dcc1bae8b9d6..8c20daeba285bf3552b45575f31e134d94583282 100644 (file)
--- a/udevd.8
+++ b/udevd.8
@@ -102,4 +102,5 @@ Written by Kay Sievers
 <kay\.sievers@vrfy\.org>\.
 .SH "SEE ALSO"
 .PP
 <kay\.sievers@vrfy\.org>\.
 .SH "SEE ALSO"
 .PP
-\fBudev\fR(7)
+\fBudev\fR(8),
+\fBudevadm\fR(8)
diff --git a/udevd.c b/udevd.c
index eb311dfba72e7e5e7ce29b0fd2c9d21c785b819a..7f32a2aa7926b5f58ea0a6b0b7fb27cf0baa9c50 100644 (file)
--- a/udevd.c
+++ b/udevd.c
@@ -76,17 +76,14 @@ void log_message(int priority, const char *format, ...)
        if (priority > udev_log_priority)
                return;
 
        if (priority > udev_log_priority)
                return;
 
+       va_start(args, format);
        if (verbose) {
                printf("[%d] ", (int) getpid());
        if (verbose) {
                printf("[%d] ", (int) getpid());
-               va_start(args, format);
                vprintf(format, args);
                vprintf(format, args);
-               va_end(args);
                printf("\n");
                printf("\n");
-       } else {
-               va_start(args, format);
+       } else
                vsyslog(priority, format, args);
                vsyslog(priority, format, args);
-               va_end(args);
-       }
+       va_end(args);
 }
 
 #endif
 }
 
 #endif
index cf033a06b20b8d15f8ca52823aa9f28fc3aeae62..21e1c21f522713383a41aab7193b267fc5583f23 100644 (file)
--- a/udevd.xml
+++ b/udevd.xml
       <refsect1>
         <title>SEE ALSO</title>
         <para><citerefentry>
       <refsect1>
         <title>SEE ALSO</title>
         <para><citerefentry>
-            <refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum>
+            <refentrytitle>udev</refentrytitle><manvolnum>8</manvolnum>
+          </citerefentry>, 
+          <citerefentry>
+            <refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum>
         </citerefentry></para>
       </refsect1>
     </refentry>
         </citerefentry></para>
       </refsect1>
     </refentry>
diff --git a/udevinfo.8 b/udevinfo.8
deleted file mode 100644 (file)
index 6115f29..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-.\"     Title: udevinfo
-.\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.73.1 <http://docbook.sf.net/>
-.\"      Date: August 2005
-.\"    Manual: udevinfo
-.\"    Source: udev
-.\"
-.TH "UDEVINFO" "8" "August 2005" "udev" "udevinfo"
-.\" disable hyphenation
-.nh
-.\" disable justification (adjust text to left margin only)
-.ad l
-.SH "NAME"
-udevinfo - query udev device information
-.SH "SYNOPSIS"
-.HP 9
-\fBudevinfo\fR [\fB\-\-query=\fR\fB\fIquery\-type\fR\fR] [\fB\-\-path=\fR\fB\fIdevpath\fR\fR] [\fB\-\-name=\fR\fB\fInode\fR\fR] [\fB\-\-root\fR] [\fB\-\-attribute\-walk\fR] [\fB\-\-export\-db\fR] [\fB\-\-version\fR] [\fB\-\-help\fR]
-.SH "DESCRIPTION"
-.PP
-udevinfo queries the udev database for device information stored in the udev database\. It can also query the properties of a device from its sysfs representation to help creating udev rules that match this device\.
-.SH "OPTIONS"
-.PP
-\fB\-\-query=\fR\fB\fItype\fR\fR
-.RS 4
-Query the database for specified type of device data\. It needs the
-\fB\-\-path\fR
-or
-\fB\-\-name\fR
-to identify the specified device\. Valid queries are:
-\fBname\fR,
-\fBsymlink\fR,
-\fBpath\fR,
-\fBenv\fR,
-\fBall\fR\.
-.RE
-.PP
-\fB\-\-path=\fR\fB\fIdevpath\fR\fR
-.RS 4
-The devpath of the device to query\.
-.RE
-.PP
-\fB\-\-name=\fR\fB\fInode\fR\fR
-.RS 4
-The name of the device node or a symlink to query
-.RE
-.PP
-\fB\-\-root\fR
-.RS 4
-The udev root directory:
-\fI/dev\fR\. If used in conjunction with a
-\fBname\fR
-or
-\fBsymlink\fR
-query, the query returns the absolute path including the root directory\.
-.RE
-.PP
-\fB\-\-attribute\-walk\fR
-.RS 4
-Print all sysfs properties of the specified device that can be used in udev rules to match the specified device\. It prints all devices along the chain, up to the root of sysfs that can be used in udev rules\.
-.RE
-.PP
-\fB\-\-export\-db\fR
-.RS 4
-Export the content of the udev database\.
-.RE
-.PP
-\fB\-\-version\fR
-.RS 4
-Print version\.
-.RE
-.PP
-\fB\-\-help\fR
-.RS 4
-Print help text\.
-.RE
-.SH "AUTHOR"
-.PP
-Written by Kay Sievers
-<kay\.sievers@vrfy\.org>\.
-.SH "SEE ALSO"
-.PP
-\fBudev\fR(7)
index a2bc0136913070d569a62cf87a77d07181ab8977..fc45f7565d192e778173b15bc9d293c69ce62dd8 100644 (file)
 
 #include "udev.h"
 
 
 #include "udev.h"
 
-
-#ifdef USE_LOG
-void log_message (int priority, const char *format, ...)
-{
-       va_list args;
-
-       if (priority > udev_log_priority)
-               return;
-
-       va_start(args, format);
-       vsyslog(priority, format, args);
-       va_end(args);
-}
-#endif
-
 static void print_all_attributes(const char *devpath, const char *key)
 {
        char path[PATH_SIZE];
 static void print_all_attributes(const char *devpath, const char *key)
 {
        char path[PATH_SIZE];
@@ -221,7 +206,7 @@ out:
        return rc;
 }
 
        return rc;
 }
 
-int main(int argc, char *argv[], char *envp[])
+int udevinfo(int argc, char *argv[], char *envp[])
 {
        int option;
        struct udevice *udev;
 {
        int option;
        struct udevice *udev;
@@ -336,7 +321,7 @@ int main(int argc, char *argv[], char *envp[])
                        printf("udevinfo, version %s\n", UDEV_VERSION);
                        goto exit;
                case 'h':
                        printf("udevinfo, version %s\n", UDEV_VERSION);
                        goto exit;
                case 'h':
-                       printf("Usage: udevinfo OPTIONS\n"
+                       printf("Usage: udevadm info OPTIONS\n"
                               "  --query=<type>    query database for the specified value:\n"
                               "    name            name of device node\n"
                               "    symlink         pointing to node\n"
                               "  --query=<type>    query database for the specified value:\n"
                               "    name            name of device node\n"
                               "    symlink         pointing to node\n"
diff --git a/udevinfo.xml b/udevinfo.xml
deleted file mode 100644 (file)
index bb3571c..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
-  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-
-<article>
-  <section>
-    <title>udevinfo</title>
-    <refentry>
-      <refentryinfo>
-        <title>udevinfo</title>
-        <date>August 2005</date>
-        <productname>udev</productname>
-      </refentryinfo>
-
-      <refmeta>
-        <refentrytitle>udevinfo</refentrytitle>
-        <manvolnum>8</manvolnum>
-        <refmiscinfo class="version"></refmiscinfo>
-      </refmeta>
-
-      <refnamediv>
-        <refname>udevinfo</refname>
-        <refpurpose>query udev device information</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>udevinfo</command>
-          <arg><option>--query=<replaceable>query-type</replaceable></option></arg>
-          <arg><option>--path=<replaceable>devpath</replaceable></option></arg>
-          <arg><option>--name=<replaceable>node</replaceable></option></arg>
-          <arg><option>--root</option></arg>
-          <arg><option>--attribute-walk</option></arg>
-          <arg><option>--export-db</option></arg>
-          <arg><option>--version</option></arg>
-          <arg><option>--help</option></arg>
-        </cmdsynopsis>
-      </refsynopsisdiv>
-
-      <refsect1><title>DESCRIPTION</title>
-        <para>udevinfo queries the udev database for device information
-        stored in the udev database. It can also query the properties
-        of a device from its sysfs representation to help creating udev
-        rules that match this device.</para>
-      </refsect1>
-
-      <refsect1><title>OPTIONS</title>
-        <variablelist>
-          <varlistentry>
-            <term><option>--query=<replaceable>type</replaceable></option></term>
-            <listitem>
-              <para>Query the database for specified type of device data. It needs the
-              <option>--path</option> or <option>--name</option> to identify the specified
-              device. Valid queries are:
-              <command>name</command>, <command>symlink</command>, <command>path</command>,
-              <command>env</command>, <command>all</command>.</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term><option>--path=<replaceable>devpath</replaceable></option></term>
-            <listitem>
-              <para>The devpath of the device to query.</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term><option>--name=<replaceable>node</replaceable></option></term>
-            <listitem>
-              <para>The name of the device node or a symlink to query</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term><option>--root</option></term>
-            <listitem>
-              <para>The udev root directory: <filename>/dev</filename>. If used in conjunction
-              with a <command>name</command> or <command>symlink</command> query, the
-              query returns the absolute path including the root directory.</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term><option>--attribute-walk</option></term>
-            <listitem>
-              <para>Print all sysfs properties of the specified device that can be used
-              in udev rules to match the specified device. It prints all devices
-              along the chain, up to the root of sysfs that can be used in udev rules.</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term><option>--export-db</option></term>
-            <listitem>
-              <para>Export the content of the udev database.</para>
-            </listitem>
-          </varlistentry>
-
-          <varlistentry>
-            <term><option>--version</option></term>
-            <listitem>
-              <para>Print version.</para>
-            </listitem>
-          </varlistentry>
-
-          <varlistentry>
-            <term><option>--help</option></term>
-            <listitem>
-              <para>Print help text.</para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-      </refsect1>
-
-      <refsect1><title>AUTHOR</title>
-        <para>Written by Kay Sievers <email>kay.sievers@vrfy.org</email>.</para>
-      </refsect1>
-
-      <refsect1>
-        <title>SEE ALSO</title>
-        <para><citerefentry>
-            <refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum>
-        </citerefentry></para>
-      </refsect1>
-    </refentry>
-  </section>
-</article>
diff --git a/udevmonitor.8 b/udevmonitor.8
deleted file mode 100644 (file)
index 5b624a7..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-.\"     Title: udevmonitor
-.\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.73.1 <http://docbook.sf.net/>
-.\"      Date: August 2005
-.\"    Manual: udevmonitor
-.\"    Source: udev
-.\"
-.TH "UDEVMONITOR" "8" "August 2005" "udev" "udevmonitor"
-.\" disable hyphenation
-.nh
-.\" disable justification (adjust text to left margin only)
-.ad l
-.SH "NAME"
-udevmonitor - print the kernel and udev event sequence to the console
-.SH "SYNOPSIS"
-.HP 12
-\fBudevmonitor\fR [\fB\-\-environment\fR] [\fB\-\-kernel\fR] [\fB\-\-udev\fR] [\fB\-\-help\fR]
-.SH "DESCRIPTION"
-.PP
-udevmonitor listens to the kernel uevents and events sent out by a udev rule and prints the devpath of the event to the console\. It can be used to analyze the event timing, by comparing the timestamps of the kernel uevent and the udev event\.
-.SH "OPTIONS"
-.PP
-\fB\-\-environment\fR
-.RS 4
-Print the complete environment for all events\. Can be used to compare the kernel supplied and the udev added environment values\.
-.RE
-.PP
-\fB\-\-kernel\fR
-.RS 4
-Print the kernel uevents\.
-.RE
-.PP
-\fB\-\-udev\fR
-.RS 4
-Print the udev event after the rule processing\.
-.RE
-.PP
-\fB\-\-help\fR
-.RS 4
-Print usage\.
-.RE
-.SH "AUTHOR"
-.PP
-Written by Kay Sievers
-<kay\.sievers@vrfy\.org>\.
-.SH "SEE ALSO"
-.PP
-\fBudev\fR(7)
index 644a955090e22e69b47ce295180574422e3abe47..75e39481a02a3ff3773b215a6741766745acd0e0 100644 (file)
@@ -123,7 +123,7 @@ static const char *search_key(const char *searchkey, const char *buf, size_t buf
        return NULL;
 }
 
        return NULL;
 }
 
-int main(int argc, char *argv[])
+int udevmonitor(int argc, char *argv[], char *envp[])
 {
        struct sigaction act;
        int option;
 {
        struct sigaction act;
        int option;
@@ -157,7 +157,7 @@ int main(int argc, char *argv[])
                        udev = 1;
                        break;
                case 'h':
                        udev = 1;
                        break;
                case 'h':
-                       printf("Usage: udevmonitor [--environment] [--kernel] [--udev] [--help]\n"
+                       printf("Usage: udevadm monitor [--environment] [--kernel] [--udev] [--help]\n"
                               "  --env    print the whole event environment\n"
                               "  --kernel print kernel uevents\n"
                               "  --udev   print udev events\n"
                               "  --env    print the whole event environment\n"
                               "  --kernel print kernel uevents\n"
                               "  --udev   print udev events\n"
diff --git a/udevmonitor.xml b/udevmonitor.xml
deleted file mode 100644 (file)
index 1ab87ab..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
-  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-
-<article>
-  <section>
-    <title>udevmonitor</title>
-    <refentry>
-      <refentryinfo>
-        <title>udevmonitor</title>
-        <date>August 2005</date>
-        <productname>udev</productname>
-      </refentryinfo>
-
-      <refmeta>
-        <refentrytitle>udevmonitor</refentrytitle>
-        <manvolnum>8</manvolnum>
-        <refmiscinfo class="version"></refmiscinfo>
-      </refmeta>
-
-      <refnamediv>
-        <refname>udevmonitor</refname>
-        <refpurpose>print the kernel and udev event sequence to the console</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>udevmonitor</command>
-          <arg><option>--environment</option></arg>
-          <arg><option>--kernel</option></arg>
-          <arg><option>--udev</option></arg>
-          <arg><option>--help</option></arg>
-        </cmdsynopsis>
-      </refsynopsisdiv>
-
-      <refsect1><title>DESCRIPTION</title>
-        <para>udevmonitor listens to the kernel uevents and events sent out by a udev rule
-        and prints the devpath of the event to the console. It can be used to analyze the
-        event timing, by comparing the timestamps of the kernel uevent and the udev event.
-        </para>
-      </refsect1>
-
-      <refsect1><title>OPTIONS</title>
-        <variablelist>
-          <varlistentry>
-            <term><option>--environment</option></term>
-            <listitem>
-              <para>Print the complete environment for all events. Can be used to compare the
-              kernel supplied and the udev added environment values.</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term><option>--kernel</option></term>
-            <listitem>
-              <para>Print the kernel uevents.</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term><option>--udev</option></term>
-            <listitem>
-              <para>Print the udev event after the rule processing.</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term><option>--help</option></term>
-            <listitem>
-              <para>Print usage.</para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-      </refsect1>
-
-      <refsect1><title>AUTHOR</title>
-        <para>Written by Kay Sievers <email>kay.sievers@vrfy.org</email>.</para>
-      </refsect1>
-
-      <refsect1>
-        <title>SEE ALSO</title>
-        <para><citerefentry>
-            <refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum>
-        </citerefentry></para>
-      </refsect1>
-    </refentry>
-  </section>
-</article>
diff --git a/udevsettle.8 b/udevsettle.8
deleted file mode 100644 (file)
index 39054d9..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-.\"     Title: udevsettle
-.\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.73.1 <http://docbook.sf.net/>
-.\"      Date: March 2006
-.\"    Manual: udevsettle
-.\"    Source: udev
-.\"
-.TH "UDEVSETTLE" "8" "March 2006" "udev" "udevsettle"
-.\" disable hyphenation
-.nh
-.\" disable justification (adjust text to left margin only)
-.ad l
-.SH "NAME"
-udevsettle - wait until queued kernel/udev events are handled
-.SH "SYNOPSIS"
-.HP 11
-\fBudevsettle\fR [\fB\-\-timeout=\fR\fB\fIseconds\fR\fR]
-.SH "DESCRIPTION"
-.PP
-Waits watching the udev event queue and exits if all current events are handled\.
-.SH "OPTIONS"
-.PP
-\fB\-\-timeout=\fR\fB\fIseconds\fR\fR
-.RS 4
-maximum seconds to wait for the queue to become empty\.
-.RE
-.SH "ENVIRONMENT"
-.PP
-\fBUDEV_LOG\fR
-.RS 4
-Overrides the syslog priority specified in the config file\.
-.RE
-.SH "AUTHOR"
-.PP
-Written by Kay Sievers
-<kay\.sievers@vrfy\.org>\.
-.SH "SEE ALSO"
-.PP
-\fBudev\fR(7)
index 42a03bafe38cd15452b0a63061eead1b44319e6d..e3982a42b0d69bf4f160acf2e49976d47eccd77a 100644 (file)
 #define DEFAULT_TIMEOUT                        180
 #define LOOP_PER_SECOND                        20
 
 #define DEFAULT_TIMEOUT                        180
 #define LOOP_PER_SECOND                        20
 
-
-#ifdef USE_LOG
-void log_message(int priority, const char *format, ...)
-{
-       va_list args;
-
-       if (priority > udev_log_priority)
-               return;
-
-       va_start(args, format);
-       vsyslog(priority, format, args);
-       va_end(args);
-}
-#endif
-
-int main(int argc, char *argv[], char *envp[])
+int udevsettle(int argc, char *argv[], char *envp[])
 {
        char queuename[PATH_SIZE];
        char filename[PATH_SIZE];
 {
        char queuename[PATH_SIZE];
        char filename[PATH_SIZE];
@@ -90,7 +75,7 @@ int main(int argc, char *argv[], char *envp[])
                        dbg("timeout=%i", timeout);
                        break;
                case 'h':
                        dbg("timeout=%i", timeout);
                        break;
                case 'h':
-                       printf("Usage: udevsettle [--help] [--timeout=<seconds>]\n\n");
+                       printf("Usage: udevadm settle [--help] [--timeout=<seconds>]\n\n");
                        goto exit;
                }
        }
                        goto exit;
                }
        }
diff --git a/udevsettle.xml b/udevsettle.xml
deleted file mode 100644 (file)
index 8eb8cbd..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
-  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-
-<article>
-  <section>
-    <title>udevsettle</title>
-    <refentry>
-      <refentryinfo>
-        <title>udevsettle</title>
-        <date>March 2006</date>
-        <productname>udev</productname>
-      </refentryinfo>
-
-      <refmeta>
-        <refentrytitle>udevsettle</refentrytitle>
-        <manvolnum>8</manvolnum>
-        <refmiscinfo class="version"></refmiscinfo>
-      </refmeta>
-
-      <refnamediv>
-        <refname>udevsettle</refname><refpurpose>wait until queued kernel/udev events are handled</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>udevsettle</command>
-          <arg><option>--timeout=<replaceable>seconds</replaceable></option></arg>
-        </cmdsynopsis>
-      </refsynopsisdiv>
-
-      <refsect1><title>DESCRIPTION</title>
-        <para>Waits watching the udev event queue and exits if all current events are handled.</para>
-      </refsect1>
-
-      <refsect1><title>OPTIONS</title>
-        <variablelist>
-          <varlistentry>
-            <term><option>--timeout=<replaceable>seconds</replaceable></option></term>
-            <listitem>
-              <para>maximum seconds to wait for the queue to become empty.</para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-      </refsect1>
-
-      <refsect1><title>ENVIRONMENT</title>
-        <variablelist>
-          <varlistentry>
-            <term><option>UDEV_LOG</option></term>
-            <listitem>
-              <para>Overrides the syslog priority specified in the config file.</para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-     </refsect1>
-
-      <refsect1><title>AUTHOR</title>
-        <para>Written by Kay Sievers <email>kay.sievers@vrfy.org</email>.</para>
-      </refsect1>
-
-      <refsect1>
-        <title>SEE ALSO</title>
-        <para><citerefentry>
-            <refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum>
-        </citerefentry></para>
-      </refsect1>
-    </refentry>
-  </section>
-</article>
diff --git a/udevstart.8 b/udevstart.8
deleted file mode 100644 (file)
index 6b463cf..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-.\"     Title: udevstart
-.\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.73.1 <http://docbook.sf.net/>
-.\"      Date: August 2005
-.\"    Manual: udevstart
-.\"    Source: udev
-.\"
-.TH "UDEVSTART" "8" "August 2005" "udev" "udevstart"
-.\" disable hyphenation
-.nh
-.\" disable justification (adjust text to left margin only)
-.ad l
-.SH "NAME"
-udevstart - populate initial device directory
-.SH "SYNOPSIS"
-.HP 10
-\fBudevstart\fR
-.SH "DESCRIPTION"
-.PP
-udevstart scans the kernel exported device information available in sysfs for devices which require a device node to operate and creates the node using the specified udev rules\. udevstart is used to create the initial device directory after system bootup\.
-.SH "AUTHOR"
-.PP
-Written by Harald Hoyer
-<harald@redhat\.com>\.
-.SH "SEE ALSO"
-.PP
-\fBudev\fR(7)
diff --git a/udevstart.xml b/udevstart.xml
deleted file mode 100644 (file)
index c48de7c..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
-  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-
-<article>
-  <section>
-    <title>udevstart</title>
-    <refentry>
-      <refentryinfo>
-        <title>udevstart</title>
-        <date>August 2005</date>
-        <productname>udev</productname>
-      </refentryinfo>
-
-      <refmeta>
-        <refentrytitle>udevstart</refentrytitle>
-        <manvolnum>8</manvolnum>
-        <refmiscinfo class="version"></refmiscinfo>
-      </refmeta>
-
-      <refnamediv>
-        <refname>udevstart</refname><refpurpose>populate initial device directory</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>udevstart</command>
-        </cmdsynopsis>
-      </refsynopsisdiv>
-
-      <refsect1><title>DESCRIPTION</title>
-        <para>udevstart scans the kernel exported device information available in
-        sysfs for devices which require a device node to operate and creates the node
-        using the specified udev rules. udevstart is used to create the initial
-        device directory after system bootup.</para>
-      </refsect1>
-
-      <refsect1><title>AUTHOR</title>
-        <para>Written by Harald Hoyer <email>harald@redhat.com</email>.</para>
-      </refsect1>
-
-      <refsect1>
-        <title>SEE ALSO</title>
-        <para><citerefentry>
-            <refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum>
-        </citerefentry></para>
-      </refsect1>
-    </refentry>
-  </section>
-</article>
diff --git a/udevtest.8 b/udevtest.8
deleted file mode 100644 (file)
index a090465..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-.\"     Title: udevtest
-.\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.73.1 <http://docbook.sf.net/>
-.\"      Date: August 2005
-.\"    Manual: udevtest
-.\"    Source: udev
-.\"
-.TH "UDEVTEST" "8" "August 2005" "udev" "udevtest"
-.\" disable hyphenation
-.nh
-.\" disable justification (adjust text to left margin only)
-.ad l
-.SH "NAME"
-udevtest - simulate a udev run and print the action to the console
-.SH "SYNOPSIS"
-.HP 21
-\fBudevtest \fR\fB\fIdevice\-path\fR\fR
-.SH "DESCRIPTION"
-.PP
-udevtest simulates a udev run for the given device and prints out the name of the node udev would have created, or the name of the network interface, that would have been renamed\.
-.SH "AUTHOR"
-.PP
-Written by Greg Kroah\-Hartman
-<greg@kroah\.com>\.
-.SH "SEE ALSO"
-.PP
-\fBudev\fR(7)
index 7b3ea6311d4c2a2178464affa0f54cd53b70cc8b..a36e503fd41112b339127022e04930f9943d181a 100644 (file)
 #include "udev.h"
 #include "udev_rules.h"
 
 #include "udev.h"
 #include "udev_rules.h"
 
-
-#ifdef USE_LOG
-void log_message (int priority, const char *format, ...)
-{
-       va_list args;
-
-       if (priority > udev_log_priority)
-               return;
-
-       va_start(args, format);
-       vprintf(format, args);
-       va_end(args);
-       printf("\n");
-}
-#endif
-
 static int import_uevent_var(const char *devpath)
 {
        char path[PATH_SIZE];
 static int import_uevent_var(const char *devpath)
 {
        char path[PATH_SIZE];
@@ -87,7 +71,7 @@ out:
        return rc;
 }
 
        return rc;
 }
 
-int main(int argc, char *argv[], char *envp[])
+int udevtest(int argc, char *argv[], char *envp[])
 {
        int force = 0;
        const char *action = "add";
 {
        int force = 0;
        const char *action = "add";
@@ -136,7 +120,7 @@ int main(int argc, char *argv[], char *envp[])
                        force = 1;
                        break;
                case 'h':
                        force = 1;
                        break;
                case 'h':
-                       printf("Usage: udevtest OPTIONS <devpath>\n"
+                       printf("Usage: udevadm test OPTIONS <devpath>\n"
                               "  --action=<string>     set action string\n"
                               "  --subsystem=<string>  set subsystem string\n"
                               "  --force               don't skip node/link creation\n"
                               "  --action=<string>     set action string\n"
                               "  --subsystem=<string>  set subsystem string\n"
                               "  --force               don't skip node/link creation\n"
diff --git a/udevtest.xml b/udevtest.xml
deleted file mode 100644 (file)
index 259558d..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
-  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-
-<article>
-  <section>
-    <title>udevtest</title>
-    <refentry>
-      <refentryinfo>
-        <title>udevtest</title>
-        <date>August 2005</date>
-        <productname>udev</productname>
-      </refentryinfo>
-
-      <refmeta>
-        <refentrytitle>udevtest</refentrytitle>
-        <manvolnum>8</manvolnum>
-        <refmiscinfo class="version"></refmiscinfo>
-      </refmeta>
-
-      <refnamediv>
-        <refname>udevtest</refname>
-        <refpurpose>simulate a udev run and print the action to the console</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>udevtest <filename>device-path</filename></command>
-        </cmdsynopsis>
-      </refsynopsisdiv>
-
-      <refsect1><title>DESCRIPTION</title>
-        <para>udevtest simulates a udev run for the given device and prints out the
-        name of the node udev would have created, or the name of the network interface,
-        that would have been renamed.</para>
-      </refsect1>
-
-      <refsect1><title>AUTHOR</title>
-        <para>Written by Greg Kroah-Hartman <email>greg@kroah.com</email>.</para>
-      </refsect1>
-
-      <refsect1>
-        <title>SEE ALSO</title>
-        <para><citerefentry>
-            <refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum>
-        </citerefentry></para>
-      </refsect1>
-    </refentry>
-  </section>
-</article>
diff --git a/udevtrigger.8 b/udevtrigger.8
deleted file mode 100644 (file)
index 06c7e45..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-.\"     Title: udevtrigger
-.\"    Author: 
-.\" Generator: DocBook XSL Stylesheets v1.73.1 <http://docbook.sf.net/>
-.\"      Date: March 2006
-.\"    Manual: udevtrigger
-.\"    Source: udev
-.\"
-.TH "UDEVTRIGGER" "8" "March 2006" "udev" "udevtrigger"
-.\" disable hyphenation
-.nh
-.\" disable justification (adjust text to left margin only)
-.ad l
-.SH "NAME"
-udevtrigger - request kernel devices events for coldplug
-.SH "SYNOPSIS"
-.HP 12
-\fBudevtrigger\fR [\fB\-\-verbose\fR] [\fB\-\-dry\-run\fR] [\fB\-\-retry\-failed\fR] [\fB\-\-help\fR] [\fB\-\-action=\fR\fB\fIaction\fR\fR] [\fB\-\-subsystem\-match=\fR\fB\fIsubsystem\fR\fR] [\fB\-\-subsystem\-nomatch=\fR\fB\fIsubsystem\fR\fR] [\fB\-\-attr\-match=\fR\fB\fIattribute=value\fR\fR] [\fB\-\-attr\-nomatch=\fR\fB\fIattribute=value\fR\fR]
-.SH "DESCRIPTION"
-.PP
-Trigger kernel device uevents to replay missing events at system coldplug\.
-.SH "OPTIONS"
-.PP
-\fB\-\-verbose\fR
-.RS 4
-Print the list of devices which will be triggered\.
-.RE
-.PP
-\fB\-\-dry\-run\fR
-.RS 4
-Do not actually trigger the event\.
-.RE
-.PP
-\fB\-\-retry\-failed\fR
-.RS 4
-Trigger only the events which are failed during a previous run\.
-.RE
-.PP
-\fB\-\-action=\fR\fB\fIaction\fR\fR
-.RS 4
-Type of event to be triggered\. The default value is "add"\.
-.RE
-.PP
-\fB\-\-subsystem\-match=\fR\fB\fIsubsystem\fR\fR
-.RS 4
-Trigger events for devices which belong to a matching subsystem\. This option can be specified multiple times and supports shell style pattern matching\.
-.RE
-.PP
-\fB\-\-subsystem\-nomatch=\fR\fB\fIsubsystem\fR\fR
-.RS 4
-Do not trigger events for devices which belong to a matching subsystem\. This option can be specified multiple times and supports shell style pattern matching\.
-.RE
-.PP
-\fB\-\-attr\-match=\fR\fB\fIattribute=value\fR\fR
-.RS 4
-Trigger events for devices with a matching sysfs attribute\. If a value is specified along with the attribute name, the content of the attribute is matched against the given value using shell style pattern matching\. If no value is specified, the existence of the sysfs attribute is checked\. This option can be specified multiple times\.
-.RE
-.PP
-\fB\-\-attr\-nomatch\fR\fB\fIattribute=value\fR\fR
-.RS 4
-Do not trigger events for devices with a matching sysfs attribute\. If a value is specified along with the attribute name, the content of the attribute is matched against the given value using shell style pattern matching\. If no value is specified, the existence of the sysfs attribute is checked\. This option can be specified multiple times\.
-.RE
-.SH "ENVIRONMENT"
-.PP
-\fBUDEV_LOG\fR
-.RS 4
-Overrides the syslog priority specified in the config file\.
-.RE
-.SH "AUTHOR"
-.PP
-Written by Kay Sievers
-<kay\.sievers@vrfy\.org>
-and Hannes Reinecke
-<hare@suse\.de>\.
-.SH "SEE ALSO"
-.PP
-\fBudev\fR(7)
index 309c54ab68b3f41fd0e4c68b1eb77798f8621734..0a9dc669097c286bac02104816947e8c6b08dbff 100644 (file)
@@ -42,20 +42,6 @@ LIST_HEAD(filter_subsystem_nomatch_list);
 LIST_HEAD(filter_attr_match_list);
 LIST_HEAD(filter_attr_nomatch_list);
 
 LIST_HEAD(filter_attr_match_list);
 LIST_HEAD(filter_attr_nomatch_list);
 
-#ifdef USE_LOG
-void log_message(int priority, const char *format, ...)
-{
-       va_list args;
-
-       if (priority > udev_log_priority)
-               return;
-
-       va_start(args, format);
-       vsyslog(priority, format, args);
-       va_end(args);
-}
-#endif
-
 /* devices that should run last cause of their dependencies */
 static int delay_device(const char *devpath)
 {
 /* devices that should run last cause of their dependencies */
 static int delay_device(const char *devpath)
 {
@@ -445,7 +431,7 @@ static void scan_failed(void)
        }
 }
 
        }
 }
 
-int main(int argc, char *argv[], char *envp[])
+int udevtrigger(int argc, char *argv[], char *envp[])
 {
        int failed = 0;
        int option;
 {
        int failed = 0;
        int option;
@@ -499,7 +485,7 @@ int main(int argc, char *argv[], char *envp[])
                        name_list_add(&filter_attr_nomatch_list, optarg, 0);
                        break;
                case 'h':
                        name_list_add(&filter_attr_nomatch_list, optarg, 0);
                        break;
                case 'h':
-                       printf("Usage: udevtrigger OPTIONS\n"
+                       printf("Usage: udevadm trigger OPTIONS\n"
                               "  --verbose                       print the list of devices while running\n"
                               "  --dry-run                       do not actually trigger the events\n"
                               "  --retry-failed                  trigger only the events which have been\n"
                               "  --verbose                       print the list of devices while running\n"
                               "  --dry-run                       do not actually trigger the events\n"
                               "  --retry-failed                  trigger only the events which have been\n"
diff --git a/udevtrigger.xml b/udevtrigger.xml
deleted file mode 100644 (file)
index eb2b985..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
-  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-
-<article>
-  <section>
-    <title>udevtrigger</title>
-    <refentry>
-      <refentryinfo>
-        <title>udevtrigger</title>
-        <date>March 2006</date>
-        <productname>udev</productname>
-      </refentryinfo>
-
-      <refmeta>
-        <refentrytitle>udevtrigger</refentrytitle>
-        <manvolnum>8</manvolnum>
-        <refmiscinfo class="version"></refmiscinfo>
-      </refmeta>
-
-      <refnamediv>
-        <refname>udevtrigger</refname><refpurpose>request kernel devices events for coldplug</refpurpose>
-      </refnamediv>
-
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>udevtrigger</command>
-          <arg><option>--verbose</option></arg>
-          <arg><option>--dry-run</option></arg>
-          <arg><option>--retry-failed</option></arg>
-          <arg><option>--help</option></arg>
-          <arg><option>--action=<replaceable>action</replaceable></option></arg>
-          <arg><option>--subsystem-match=<replaceable>subsystem</replaceable></option></arg>
-          <arg><option>--subsystem-nomatch=<replaceable>subsystem</replaceable></option></arg>
-          <arg><option>--attr-match=<replaceable>attribute=value</replaceable></option></arg>
-          <arg><option>--attr-nomatch=<replaceable>attribute=value</replaceable></option></arg>
-        </cmdsynopsis>
-      </refsynopsisdiv>
-
-      <refsect1><title>DESCRIPTION</title>
-        <para>Trigger kernel device uevents to replay missing events at system coldplug.</para>
-      </refsect1>
-
-      <refsect1><title>OPTIONS</title>
-        <variablelist>
-          <varlistentry>
-            <term><option>--verbose</option></term>
-            <listitem>
-              <para>Print the list of devices which will be triggered.</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term><option>--dry-run</option></term>
-            <listitem>
-              <para>Do not actually trigger the event.</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term><option>--retry-failed</option></term>
-            <listitem>
-              <para>Trigger only the events which are failed during a previous run.</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term><option>--action=<replaceable>action</replaceable></option></term>
-            <listitem>
-              <para>Type of event to be triggered. The default value is "add".</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term><option>--subsystem-match=<replaceable>subsystem</replaceable></option></term>
-            <listitem>
-              <para>Trigger events for devices which belong to a matching subsystem. This option
-              can be specified multiple times and supports shell style pattern matching.</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term><option>--subsystem-nomatch=<replaceable>subsystem</replaceable></option></term>
-            <listitem>
-              <para>Do not trigger events for devices which belong to a matching subsystem. This option
-              can be specified multiple times and supports shell style pattern matching.</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term><option>--attr-match=<replaceable>attribute=value</replaceable></option></term>
-            <listitem>
-              <para>Trigger events for devices with a matching sysfs attribute. If a value is specified
-              along with the attribute name, the content of the attribute is matched against the given
-              value using shell style pattern matching. If no value is specified, the existence of the
-              sysfs attribute is checked. This option can be specified multiple times.</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term><option>--attr-nomatch<replaceable>attribute=value</replaceable></option></term>
-            <listitem>
-              <para>Do not trigger events for devices with a matching sysfs attribute. If a value is
-              specified along with the attribute name, the content of the attribute is matched against
-              the given value using shell style pattern matching. If no value is specified, the existence
-              of the sysfs attribute is checked. This option can be specified multiple times.</para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-      </refsect1>
-
-      <refsect1><title>ENVIRONMENT</title>
-        <variablelist>
-          <varlistentry>
-            <term><option>UDEV_LOG</option></term>
-            <listitem>
-              <para>Overrides the syslog priority specified in the config file.</para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
-     </refsect1>
-
-      <refsect1><title>AUTHOR</title>
-        <para>Written by Kay Sievers <email>kay.sievers@vrfy.org</email> and
-        Hannes Reinecke <email>hare@suse.de</email>.</para>
-      </refsect1>
-
-      <refsect1>
-        <title>SEE ALSO</title>
-        <para><citerefentry>
-            <refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum>
-        </citerefentry></para>
-      </refsect1>
-    </refentry>
-  </section>
-</article>