mirror of
https://git.proxmox.com/git/systemd
synced 2025-05-25 20:19:54 +00:00
559 lines
23 KiB
HTML
559 lines
23 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||
<html>
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||
<title>libudev Reference Manual: udev_monitor</title>
|
||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||
<link rel="home" href="index.html" title="libudev Reference Manual">
|
||
<link rel="up" href="ch01.html" title="API Reference">
|
||
<link rel="prev" href="libudev-udev-device.html" title="udev_device">
|
||
<link rel="next" href="libudev-udev-enumerate.html" title="udev_enumerate">
|
||
<meta name="generator" content="GTK-Doc V1.21 (XML mode)">
|
||
<link rel="stylesheet" href="style.css" type="text/css">
|
||
</head>
|
||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
|
||
<td width="100%" align="left" class="shortcuts">
|
||
<a href="#" class="shortcut">Top</a><span id="nav_description"> <span class="dim">|</span>
|
||
<a href="#libudev-udev-monitor.description" class="shortcut">Description</a></span>
|
||
</td>
|
||
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
|
||
<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
|
||
<td><a accesskey="p" href="libudev-udev-device.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
|
||
<td><a accesskey="n" href="libudev-udev-enumerate.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
|
||
</tr></table>
|
||
<div class="refentry">
|
||
<a name="libudev-udev-monitor"></a><div class="titlepage"></div>
|
||
<div class="refnamediv"><table width="100%"><tr>
|
||
<td valign="top">
|
||
<h2><span class="refentrytitle"><a name="libudev-udev-monitor.top_of_page"></a>udev_monitor</span></h2>
|
||
<p>udev_monitor — device event source</p>
|
||
</td>
|
||
<td class="gallery_image" valign="top" align="right"></td>
|
||
</tr></table></div>
|
||
<div class="refsect1">
|
||
<a name="libudev-udev-monitor.functions"></a><h2>Functions</h2>
|
||
<div class="informaltable"><table width="100%" border="0">
|
||
<colgroup>
|
||
<col width="150px" class="functions_return">
|
||
<col class="functions_name">
|
||
</colgroup>
|
||
<tbody>
|
||
<tr>
|
||
<td class="function_type">struct <a class="link" href="libudev-udev-monitor.html#udev-monitor" title="struct udev_monitor"><span class="returnvalue">udev_monitor</span></a> *
|
||
</td>
|
||
<td class="function_name">
|
||
<a class="link" href="libudev-udev-monitor.html#udev-monitor-ref" title="udev_monitor_ref ()">udev_monitor_ref</a> <span class="c_punctuation">()</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="function_type">struct <a class="link" href="libudev-udev-monitor.html#udev-monitor" title="struct udev_monitor"><span class="returnvalue">udev_monitor</span></a> *
|
||
</td>
|
||
<td class="function_name">
|
||
<a class="link" href="libudev-udev-monitor.html#udev-monitor-unref" title="udev_monitor_unref ()">udev_monitor_unref</a> <span class="c_punctuation">()</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="function_type">struct <a class="link" href="libudev-udev.html#udev" title="struct udev"><span class="returnvalue">udev</span></a> *
|
||
</td>
|
||
<td class="function_name">
|
||
<a class="link" href="libudev-udev-monitor.html#udev-monitor-get-udev" title="udev_monitor_get_udev ()">udev_monitor_get_udev</a> <span class="c_punctuation">()</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="function_type">struct <a class="link" href="libudev-udev-monitor.html#udev-monitor" title="struct udev_monitor"><span class="returnvalue">udev_monitor</span></a> *
|
||
</td>
|
||
<td class="function_name">
|
||
<a class="link" href="libudev-udev-monitor.html#udev-monitor-new-from-netlink" title="udev_monitor_new_from_netlink ()">udev_monitor_new_from_netlink</a> <span class="c_punctuation">()</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="function_type">
|
||
<span class="returnvalue">int</span>
|
||
</td>
|
||
<td class="function_name">
|
||
<a class="link" href="libudev-udev-monitor.html#udev-monitor-enable-receiving" title="udev_monitor_enable_receiving ()">udev_monitor_enable_receiving</a> <span class="c_punctuation">()</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="function_type">
|
||
<span class="returnvalue">int</span>
|
||
</td>
|
||
<td class="function_name">
|
||
<a class="link" href="libudev-udev-monitor.html#udev-monitor-set-receive-buffer-size" title="udev_monitor_set_receive_buffer_size ()">udev_monitor_set_receive_buffer_size</a> <span class="c_punctuation">()</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="function_type">
|
||
<span class="returnvalue">int</span>
|
||
</td>
|
||
<td class="function_name">
|
||
<a class="link" href="libudev-udev-monitor.html#udev-monitor-get-fd" title="udev_monitor_get_fd ()">udev_monitor_get_fd</a> <span class="c_punctuation">()</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="function_type">struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device"><span class="returnvalue">udev_device</span></a> *
|
||
</td>
|
||
<td class="function_name">
|
||
<a class="link" href="libudev-udev-monitor.html#udev-monitor-receive-device" title="udev_monitor_receive_device ()">udev_monitor_receive_device</a> <span class="c_punctuation">()</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="function_type">
|
||
<span class="returnvalue">int</span>
|
||
</td>
|
||
<td class="function_name">
|
||
<a class="link" href="libudev-udev-monitor.html#udev-monitor-filter-add-match-subsystem-devtype" title="udev_monitor_filter_add_match_subsystem_devtype ()">udev_monitor_filter_add_match_subsystem_devtype</a> <span class="c_punctuation">()</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="function_type">
|
||
<span class="returnvalue">int</span>
|
||
</td>
|
||
<td class="function_name">
|
||
<a class="link" href="libudev-udev-monitor.html#udev-monitor-filter-add-match-tag" title="udev_monitor_filter_add_match_tag ()">udev_monitor_filter_add_match_tag</a> <span class="c_punctuation">()</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="function_type">
|
||
<span class="returnvalue">int</span>
|
||
</td>
|
||
<td class="function_name">
|
||
<a class="link" href="libudev-udev-monitor.html#udev-monitor-filter-update" title="udev_monitor_filter_update ()">udev_monitor_filter_update</a> <span class="c_punctuation">()</span>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td class="function_type">
|
||
<span class="returnvalue">int</span>
|
||
</td>
|
||
<td class="function_name">
|
||
<a class="link" href="libudev-udev-monitor.html#udev-monitor-filter-remove" title="udev_monitor_filter_remove ()">udev_monitor_filter_remove</a> <span class="c_punctuation">()</span>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table></div>
|
||
</div>
|
||
<div class="refsect1">
|
||
<a name="libudev-udev-monitor.other"></a><h2>Types and Values</h2>
|
||
<div class="informaltable"><table width="100%" border="0">
|
||
<colgroup>
|
||
<col width="150px" class="name">
|
||
<col class="description">
|
||
</colgroup>
|
||
<tbody><tr>
|
||
<td class="datatype_keyword">struct</td>
|
||
<td class="function_name"><a class="link" href="libudev-udev-monitor.html#udev-monitor" title="struct udev_monitor">udev_monitor</a></td>
|
||
</tr></tbody>
|
||
</table></div>
|
||
</div>
|
||
<div class="refsect1">
|
||
<a name="libudev-udev-monitor.description"></a><h2>Description</h2>
|
||
<p>Connects to a device event source.</p>
|
||
</div>
|
||
<div class="refsect1">
|
||
<a name="libudev-udev-monitor.functions_details"></a><h2>Functions</h2>
|
||
<div class="refsect2">
|
||
<a name="udev-monitor-ref"></a><h3>udev_monitor_ref ()</h3>
|
||
<pre class="programlisting">struct <a class="link" href="libudev-udev-monitor.html#udev-monitor" title="struct udev_monitor"><span class="returnvalue">udev_monitor</span></a> *
|
||
udev_monitor_ref (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);</pre>
|
||
<p>Take a reference of a udev monitor.</p>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.2.5"></a><h4>Parameters</h4>
|
||
<div class="informaltable"><table width="100%" border="0">
|
||
<colgroup>
|
||
<col width="150px" class="parameters_name">
|
||
<col class="parameters_description">
|
||
<col width="200px" class="parameters_annotations">
|
||
</colgroup>
|
||
<tbody><tr>
|
||
<td class="parameter_name"><p>udev_monitor</p></td>
|
||
<td class="parameter_description"><p>udev monitor</p></td>
|
||
<td class="parameter_annotations"> </td>
|
||
</tr></tbody>
|
||
</table></div>
|
||
</div>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.2.6"></a><h4>Returns</h4>
|
||
<p> the passed udev monitor</p>
|
||
<p></p>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="refsect2">
|
||
<a name="udev-monitor-unref"></a><h3>udev_monitor_unref ()</h3>
|
||
<pre class="programlisting">struct <a class="link" href="libudev-udev-monitor.html#udev-monitor" title="struct udev_monitor"><span class="returnvalue">udev_monitor</span></a> *
|
||
udev_monitor_unref (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);</pre>
|
||
<p>Drop a reference of a udev monitor. If the refcount reaches zero,
|
||
the bound socket will be closed, and the resources of the monitor
|
||
will be released.</p>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.3.5"></a><h4>Parameters</h4>
|
||
<div class="informaltable"><table width="100%" border="0">
|
||
<colgroup>
|
||
<col width="150px" class="parameters_name">
|
||
<col class="parameters_description">
|
||
<col width="200px" class="parameters_annotations">
|
||
</colgroup>
|
||
<tbody><tr>
|
||
<td class="parameter_name"><p>udev_monitor</p></td>
|
||
<td class="parameter_description"><p>udev monitor</p></td>
|
||
<td class="parameter_annotations"> </td>
|
||
</tr></tbody>
|
||
</table></div>
|
||
</div>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.3.6"></a><h4>Returns</h4>
|
||
<p> <span class="type">NULL</span></p>
|
||
<p></p>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="refsect2">
|
||
<a name="udev-monitor-get-udev"></a><h3>udev_monitor_get_udev ()</h3>
|
||
<pre class="programlisting">struct <a class="link" href="libudev-udev.html#udev" title="struct udev"><span class="returnvalue">udev</span></a> *
|
||
udev_monitor_get_udev (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);</pre>
|
||
<p>Retrieve the udev library context the monitor was created with.</p>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.4.5"></a><h4>Parameters</h4>
|
||
<div class="informaltable"><table width="100%" border="0">
|
||
<colgroup>
|
||
<col width="150px" class="parameters_name">
|
||
<col class="parameters_description">
|
||
<col width="200px" class="parameters_annotations">
|
||
</colgroup>
|
||
<tbody><tr>
|
||
<td class="parameter_name"><p>udev_monitor</p></td>
|
||
<td class="parameter_description"><p>udev monitor</p></td>
|
||
<td class="parameter_annotations"> </td>
|
||
</tr></tbody>
|
||
</table></div>
|
||
</div>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.4.6"></a><h4>Returns</h4>
|
||
<p> the udev library context</p>
|
||
<p></p>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="refsect2">
|
||
<a name="udev-monitor-new-from-netlink"></a><h3>udev_monitor_new_from_netlink ()</h3>
|
||
<pre class="programlisting">struct <a class="link" href="libudev-udev-monitor.html#udev-monitor" title="struct udev_monitor"><span class="returnvalue">udev_monitor</span></a> *
|
||
udev_monitor_new_from_netlink (<em class="parameter"><code><span class="type">struct udev</span> *udev</code></em>,
|
||
<em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
|
||
<p>Create new udev monitor and connect to a specified event
|
||
source. Valid sources identifiers are "udev" and "kernel".</p>
|
||
<p>Applications should usually not connect directly to the
|
||
"kernel" events, because the devices might not be useable
|
||
at that time, before udev has configured them, and created
|
||
device nodes. Accessing devices at the same time as udev,
|
||
might result in unpredictable behavior. The "udev" events
|
||
are sent out after udev has finished its event processing,
|
||
all rules have been processed, and needed device nodes are
|
||
created.</p>
|
||
<p>The initial refcount is 1, and needs to be decremented to
|
||
release the resources of the udev monitor.</p>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.5.7"></a><h4>Parameters</h4>
|
||
<div class="informaltable"><table width="100%" border="0">
|
||
<colgroup>
|
||
<col width="150px" class="parameters_name">
|
||
<col class="parameters_description">
|
||
<col width="200px" class="parameters_annotations">
|
||
</colgroup>
|
||
<tbody>
|
||
<tr>
|
||
<td class="parameter_name"><p>udev</p></td>
|
||
<td class="parameter_description"><p>udev library context</p></td>
|
||
<td class="parameter_annotations"> </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="parameter_name"><p>name</p></td>
|
||
<td class="parameter_description"><p>name of event source</p></td>
|
||
<td class="parameter_annotations"> </td>
|
||
</tr>
|
||
</tbody>
|
||
</table></div>
|
||
</div>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.5.8"></a><h4>Returns</h4>
|
||
<p> a new udev monitor, or <span class="type">NULL</span>, in case of an error</p>
|
||
<p></p>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="refsect2">
|
||
<a name="udev-monitor-enable-receiving"></a><h3>udev_monitor_enable_receiving ()</h3>
|
||
<pre class="programlisting"><span class="returnvalue">int</span>
|
||
udev_monitor_enable_receiving (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);</pre>
|
||
<p>Binds the <em class="parameter"><code>udev_monitor</code></em>
|
||
socket to the event source.</p>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.6.5"></a><h4>Parameters</h4>
|
||
<div class="informaltable"><table width="100%" border="0">
|
||
<colgroup>
|
||
<col width="150px" class="parameters_name">
|
||
<col class="parameters_description">
|
||
<col width="200px" class="parameters_annotations">
|
||
</colgroup>
|
||
<tbody><tr>
|
||
<td class="parameter_name"><p>udev_monitor</p></td>
|
||
<td class="parameter_description"><p>the monitor which should receive events</p></td>
|
||
<td class="parameter_annotations"> </td>
|
||
</tr></tbody>
|
||
</table></div>
|
||
</div>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.6.6"></a><h4>Returns</h4>
|
||
<p> 0 on success, otherwise a negative error value.</p>
|
||
<p></p>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="refsect2">
|
||
<a name="udev-monitor-set-receive-buffer-size"></a><h3>udev_monitor_set_receive_buffer_size ()</h3>
|
||
<pre class="programlisting"><span class="returnvalue">int</span>
|
||
udev_monitor_set_receive_buffer_size (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>,
|
||
<em class="parameter"><code><span class="type">int</span> size</code></em>);</pre>
|
||
<p>Set the size of the kernel socket buffer. This call needs the
|
||
appropriate privileges to succeed.</p>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.7.5"></a><h4>Parameters</h4>
|
||
<div class="informaltable"><table width="100%" border="0">
|
||
<colgroup>
|
||
<col width="150px" class="parameters_name">
|
||
<col class="parameters_description">
|
||
<col width="200px" class="parameters_annotations">
|
||
</colgroup>
|
||
<tbody>
|
||
<tr>
|
||
<td class="parameter_name"><p>udev_monitor</p></td>
|
||
<td class="parameter_description"><p>the monitor which should receive events</p></td>
|
||
<td class="parameter_annotations"> </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="parameter_name"><p>size</p></td>
|
||
<td class="parameter_description"><p>the size in bytes</p></td>
|
||
<td class="parameter_annotations"> </td>
|
||
</tr>
|
||
</tbody>
|
||
</table></div>
|
||
</div>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.7.6"></a><h4>Returns</h4>
|
||
<p> 0 on success, otherwise -1 on error.</p>
|
||
<p></p>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="refsect2">
|
||
<a name="udev-monitor-get-fd"></a><h3>udev_monitor_get_fd ()</h3>
|
||
<pre class="programlisting"><span class="returnvalue">int</span>
|
||
udev_monitor_get_fd (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);</pre>
|
||
<p>Retrieve the socket file descriptor associated with the monitor.</p>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.8.5"></a><h4>Parameters</h4>
|
||
<div class="informaltable"><table width="100%" border="0">
|
||
<colgroup>
|
||
<col width="150px" class="parameters_name">
|
||
<col class="parameters_description">
|
||
<col width="200px" class="parameters_annotations">
|
||
</colgroup>
|
||
<tbody><tr>
|
||
<td class="parameter_name"><p>udev_monitor</p></td>
|
||
<td class="parameter_description"><p>udev monitor</p></td>
|
||
<td class="parameter_annotations"> </td>
|
||
</tr></tbody>
|
||
</table></div>
|
||
</div>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.8.6"></a><h4>Returns</h4>
|
||
<p> the socket file descriptor</p>
|
||
<p></p>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="refsect2">
|
||
<a name="udev-monitor-receive-device"></a><h3>udev_monitor_receive_device ()</h3>
|
||
<pre class="programlisting">struct <a class="link" href="libudev-udev-device.html#udev-device" title="struct udev_device"><span class="returnvalue">udev_device</span></a> *
|
||
udev_monitor_receive_device (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);</pre>
|
||
<p>Receive data from the udev monitor socket, allocate a new udev
|
||
device, fill in the received data, and return the device.</p>
|
||
<p>Only socket connections with uid=0 are accepted.</p>
|
||
<p>The monitor socket is by default set to NONBLOCK. A variant of <code class="function">poll()</code> on
|
||
the file descriptor returned by <a class="link" href="libudev-udev-monitor.html#udev-monitor-get-fd" title="udev_monitor_get_fd ()"><code class="function">udev_monitor_get_fd()</code></a> should to be used to
|
||
wake up when new devices arrive, or alternatively the file descriptor
|
||
switched into blocking mode.</p>
|
||
<p>The initial refcount is 1, and needs to be decremented to
|
||
release the resources of the udev device.</p>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.9.8"></a><h4>Parameters</h4>
|
||
<div class="informaltable"><table width="100%" border="0">
|
||
<colgroup>
|
||
<col width="150px" class="parameters_name">
|
||
<col class="parameters_description">
|
||
<col width="200px" class="parameters_annotations">
|
||
</colgroup>
|
||
<tbody><tr>
|
||
<td class="parameter_name"><p>udev_monitor</p></td>
|
||
<td class="parameter_description"><p>udev monitor</p></td>
|
||
<td class="parameter_annotations"> </td>
|
||
</tr></tbody>
|
||
</table></div>
|
||
</div>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.9.9"></a><h4>Returns</h4>
|
||
<p> a new udev device, or <span class="type">NULL</span>, in case of an error</p>
|
||
<p></p>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="refsect2">
|
||
<a name="udev-monitor-filter-add-match-subsystem-devtype"></a><h3>udev_monitor_filter_add_match_subsystem_devtype ()</h3>
|
||
<pre class="programlisting"><span class="returnvalue">int</span>
|
||
udev_monitor_filter_add_match_subsystem_devtype
|
||
(<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>,
|
||
<em class="parameter"><code>const <span class="type">char</span> *subsystem</code></em>,
|
||
<em class="parameter"><code>const <span class="type">char</span> *devtype</code></em>);</pre>
|
||
<p>This filter is efficiently executed inside the kernel, and libudev subscribers
|
||
will usually not be woken up for devices which do not match.</p>
|
||
<p>The filter must be installed before the monitor is switched to listening mode.</p>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.10.6"></a><h4>Parameters</h4>
|
||
<div class="informaltable"><table width="100%" border="0">
|
||
<colgroup>
|
||
<col width="150px" class="parameters_name">
|
||
<col class="parameters_description">
|
||
<col width="200px" class="parameters_annotations">
|
||
</colgroup>
|
||
<tbody>
|
||
<tr>
|
||
<td class="parameter_name"><p>udev_monitor</p></td>
|
||
<td class="parameter_description"><p>the monitor</p></td>
|
||
<td class="parameter_annotations"> </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="parameter_name"><p>subsystem</p></td>
|
||
<td class="parameter_description"><p>the subsystem value to match the incoming devices against</p></td>
|
||
<td class="parameter_annotations"> </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="parameter_name"><p>devtype</p></td>
|
||
<td class="parameter_description"><p>the devtype value to match the incoming devices against</p></td>
|
||
<td class="parameter_annotations"> </td>
|
||
</tr>
|
||
</tbody>
|
||
</table></div>
|
||
</div>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.10.7"></a><h4>Returns</h4>
|
||
<p> 0 on success, otherwise a negative error value.</p>
|
||
<p></p>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="refsect2">
|
||
<a name="udev-monitor-filter-add-match-tag"></a><h3>udev_monitor_filter_add_match_tag ()</h3>
|
||
<pre class="programlisting"><span class="returnvalue">int</span>
|
||
udev_monitor_filter_add_match_tag (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>,
|
||
<em class="parameter"><code>const <span class="type">char</span> *tag</code></em>);</pre>
|
||
<p>This filter is efficiently executed inside the kernel, and libudev subscribers
|
||
will usually not be woken up for devices which do not match.</p>
|
||
<p>The filter must be installed before the monitor is switched to listening mode.</p>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.11.6"></a><h4>Parameters</h4>
|
||
<div class="informaltable"><table width="100%" border="0">
|
||
<colgroup>
|
||
<col width="150px" class="parameters_name">
|
||
<col class="parameters_description">
|
||
<col width="200px" class="parameters_annotations">
|
||
</colgroup>
|
||
<tbody>
|
||
<tr>
|
||
<td class="parameter_name"><p>udev_monitor</p></td>
|
||
<td class="parameter_description"><p>the monitor</p></td>
|
||
<td class="parameter_annotations"> </td>
|
||
</tr>
|
||
<tr>
|
||
<td class="parameter_name"><p>tag</p></td>
|
||
<td class="parameter_description"><p>the name of a tag</p></td>
|
||
<td class="parameter_annotations"> </td>
|
||
</tr>
|
||
</tbody>
|
||
</table></div>
|
||
</div>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.11.7"></a><h4>Returns</h4>
|
||
<p> 0 on success, otherwise a negative error value.</p>
|
||
<p></p>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="refsect2">
|
||
<a name="udev-monitor-filter-update"></a><h3>udev_monitor_filter_update ()</h3>
|
||
<pre class="programlisting"><span class="returnvalue">int</span>
|
||
udev_monitor_filter_update (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);</pre>
|
||
<p>Update the installed socket filter. This is only needed,
|
||
if the filter was removed or changed.</p>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.12.5"></a><h4>Parameters</h4>
|
||
<div class="informaltable"><table width="100%" border="0">
|
||
<colgroup>
|
||
<col width="150px" class="parameters_name">
|
||
<col class="parameters_description">
|
||
<col width="200px" class="parameters_annotations">
|
||
</colgroup>
|
||
<tbody><tr>
|
||
<td class="parameter_name"><p>udev_monitor</p></td>
|
||
<td class="parameter_description"><p>monitor</p></td>
|
||
<td class="parameter_annotations"> </td>
|
||
</tr></tbody>
|
||
</table></div>
|
||
</div>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.12.6"></a><h4>Returns</h4>
|
||
<p> 0 on success, otherwise a negative error value.</p>
|
||
<p></p>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="refsect2">
|
||
<a name="udev-monitor-filter-remove"></a><h3>udev_monitor_filter_remove ()</h3>
|
||
<pre class="programlisting"><span class="returnvalue">int</span>
|
||
udev_monitor_filter_remove (<em class="parameter"><code><span class="type">struct udev_monitor</span> *udev_monitor</code></em>);</pre>
|
||
<p>Remove all filters from monitor.</p>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.13.5"></a><h4>Parameters</h4>
|
||
<div class="informaltable"><table width="100%" border="0">
|
||
<colgroup>
|
||
<col width="150px" class="parameters_name">
|
||
<col class="parameters_description">
|
||
<col width="200px" class="parameters_annotations">
|
||
</colgroup>
|
||
<tbody><tr>
|
||
<td class="parameter_name"><p>udev_monitor</p></td>
|
||
<td class="parameter_description"><p>monitor</p></td>
|
||
<td class="parameter_annotations"> </td>
|
||
</tr></tbody>
|
||
</table></div>
|
||
</div>
|
||
<div class="refsect3">
|
||
<a name="id-1.2.5.6.13.6"></a><h4>Returns</h4>
|
||
<p> 0 on success, otherwise a negative error value.</p>
|
||
<p></p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="refsect1">
|
||
<a name="libudev-udev-monitor.other_details"></a><h2>Types and Values</h2>
|
||
<div class="refsect2">
|
||
<a name="udev-monitor"></a><h3>struct udev_monitor</h3>
|
||
<pre class="programlisting">struct udev_monitor;</pre>
|
||
<p>Opaque object handling an event source.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="footer">
|
||
<hr>
|
||
Generated by GTK-Doc V1.21</div>
|
||
</body>
|
||
</html> |