chiark / gitweb /
remove debug output during rules parsing
[elogind.git] / udev / udev.xml
index 41941c820f5e2ed326964e5a1b28da17adfa2fc9..d2277c93d0d60e3b4b84ba3138237968ff9f5826 100644 (file)
               </listitem>
             </varlistentry>
 
               </listitem>
             </varlistentry>
 
+            <varlistentry>
+              <term><option>TAG</option></term>
+              <listitem>
+                <para>Match against a device tag.</para>
+              </listitem>
+            </varlistentry>
+
             <varlistentry>
               <term><option>TEST{<replaceable>octal mode mask</replaceable>}</option></term>
               <listitem>
             <varlistentry>
               <term><option>TEST{<replaceable>octal mode mask</replaceable>}</option></term>
               <listitem>
             <varlistentry>
               <term><option>NAME</option></term>
               <listitem>
             <varlistentry>
               <term><option>NAME</option></term>
               <listitem>
-                <para>The name of the node to be created, or the name the network interface
-                should be renamed to.</para>
+                <para>The name, a network interface should be renamed to, or the name
+                a device node should be named. Usually the kernel provides the defined
+                node name, or even creates and removes the node before udev receives
+                any event. Changing the node name from the kernel's default may result
+                in unexpected behavior and is not supported. Udev is only expected to
+                handle device node permissions and to create additional symlinks, which
+                do not conflict with the kernel device node names.</para>
               </listitem>
             </varlistentry>
 
               </listitem>
             </varlistentry>
 
               <term><option>SYMLINK</option></term>
               <listitem>
                 <para>The name of a symlink targeting the node. Every matching rule will add
               <term><option>SYMLINK</option></term>
               <listitem>
                 <para>The name of a symlink targeting the node. Every matching rule will add
-                this value to the list of symlinks to be created along with the device  node.
+                this value to the list of symlinks to be created along with the device node.
                 Multiple symlinks may be specified by separating the names by the space
                 Multiple symlinks may be specified by separating the names by the space
-                character.</para>
+                character. In case multiple devices claim the same name, the link will
+                always point to the device with the highest link_priority. If the current device
+                goes away, the links will be re-evaluated and the device with the next highest
+                link_priority will own the link. If no link_priority is specified, the order
+                of the devices, and which of them will own the link, is undefined. Claiming
+                the same name for a node and links may result in unexpected behavior and is
+                not supported.
+                </para>
               </listitem>
             </varlistentry>
 
               </listitem>
             </varlistentry>
 
               </listitem>
             </varlistentry>
 
               </listitem>
             </varlistentry>
 
+            <varlistentry>
+              <term><option>TAG</option></term>
+              <listitem>
+                <para>Attach a tag to a device. This is used to filter events for users
+                of libudev's monitor functionality, or to enumerate a group of tagged
+                devices. The implementation can only work efficiently if only a few
+                tags are attached to a device. It is only meant to be used in
+                contexts with specific device filter requirements, and not as a
+                general-purpose flag. Excessive use might result in inefficient event
+                handling.</para>
+              </listitem>
+            </varlistentry>
+
             <varlistentry>
               <term><option>RUN</option></term>
               <listitem>
             <varlistentry>
               <term><option>RUN</option></term>
               <listitem>
                 <option>RUN{<replaceable>fail_event_on_error</replaceable>}</option> is
                 specified, and the executed program returns non-zero, the event will be
                 marked as failed for a possible later handling.</para>
                 <option>RUN{<replaceable>fail_event_on_error</replaceable>}</option> is
                 specified, and the executed program returns non-zero, the event will be
                 marked as failed for a possible later handling.</para>
+                <para>If no path is given, the program must be in 
+                <filename>/lib/udev</filename>, otherwise the full path must be
+                specified.</para>
                 <para>If the specified string starts with
                 <option>socket:<replaceable>path</replaceable></option>, all current event
                 values will be passed to the specified socket, as a message in the same
                 format the kernel sends an uevent. If the first character of the specified path
                 is an @ character, an abstract namespace socket is used, instead of an existing
                 socket file.</para>
                 <para>If the specified string starts with
                 <option>socket:<replaceable>path</replaceable></option>, all current event
                 values will be passed to the specified socket, as a message in the same
                 format the kernel sends an uevent. If the first character of the specified path
                 is an @ character, an abstract namespace socket is used, instead of an existing
                 socket file.</para>
+                <para>Program name and arguments are separated with spaces. To
+                include spaces in an argument, use single quotes. Please note
+                that this does not run through a shell.</para>
               </listitem>
             </varlistentry>
 
               </listitem>
             </varlistentry>
 
                     <term><option>program</option></term>
                     <listitem>
                       <para>Execute an external program specified as the assigned value and
                     <term><option>program</option></term>
                     <listitem>
                       <para>Execute an external program specified as the assigned value and
-                      import its output, which must be in environment key format.</para>
+                      import its output, which must be in environment key
+                      format. Path specification, command/argument separation,
+                      and quoting work like in <option>RUN</option>.</para>
                     </listitem>
                   </varlistentry>
                   <varlistentry>
                     </listitem>
                   </varlistentry>
                   <varlistentry>
                       environment key format.</para>
                     </listitem>
                   </varlistentry>
                       environment key format.</para>
                     </listitem>
                   </varlistentry>
+                  <varlistentry>
+                    <term><option>db</option></term>
+                    <listitem>
+                      <para>Import a single property specified as the assigned value from the
+                      current device database. This works only if the database is already populated
+                      by an earlier event.</para>
+                    </listitem>
+                  </varlistentry>
                   <varlistentry>
                     <term><option>parent</option></term>
                     <listitem>
                   <varlistentry>
                     <term><option>parent</option></term>
                     <listitem>
             <varlistentry>
               <term><option>WAIT_FOR</option></term>
               <listitem>
             <varlistentry>
               <term><option>WAIT_FOR</option></term>
               <listitem>
-                <para>Wait for a file to become available.</para>
+                <para>Wait for a file to become available or until a 10
+                seconds timeout expires.</para>
               </listitem>
             </varlistentry>
 
               </listitem>
             </varlistentry>
 
               <listitem>
                 <para>Rule and device options:</para>
                 <variablelist>
               <listitem>
                 <para>Rule and device options:</para>
                 <variablelist>
-                  <varlistentry>
-                    <term><option>ignore_device</option></term>
-                    <listitem>
-                      <para>Ignore this event completely.</para>
-                    </listitem>
-                  </varlistentry>
-                  <varlistentry>
-                    <term><option>ignore_remove</option></term>
-                    <listitem>
-                      <para>Do not remove the device node when the device goes away. This may be
-                      useful as a workaround for broken device drivers.</para>
-                    </listitem>
-                  </varlistentry>
                   <varlistentry>
                     <term><option>link_priority=<replaceable>value</replaceable></option></term>
                     <listitem>
                   <varlistentry>
                     <term><option>link_priority=<replaceable>value</replaceable></option></term>
                     <listitem>
                       priorities overwrite existing symlinks of other devices. The default is 0.</para>
                     </listitem>
                   </varlistentry>
                       priorities overwrite existing symlinks of other devices. The default is 0.</para>
                     </listitem>
                   </varlistentry>
-                  <varlistentry>
-                    <term><option>all_partitions</option></term>
-                    <listitem>
-                      <para>Create the device nodes for all available partitions of a block device.
-                      This may be useful for removable media devices where media changes are not
-                      detected.</para>
-                    </listitem>
-                  </varlistentry>
                   <varlistentry>
                     <term><option>event_timeout=</option></term>
                     <listitem>
                   <varlistentry>
                     <term><option>event_timeout=</option></term>
                     <listitem>
                     <term><option>watch</option></term>
                     <listitem>
                       <para>Watch the device node with inotify, when closed after being opened for
                     <term><option>watch</option></term>
                     <listitem>
                       <para>Watch the device node with inotify, when closed after being opened for
-                     writing, a change uevent will be synthesised.</para>
+                      writing, a change uevent will be synthesised.</para>
                     </listitem>
                   </varlistentry>
                 </variablelist>
                     </listitem>
                   </varlistentry>
                 </variablelist>