summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/nlsysevent.4 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/nlsysevent.4 3.html')
-rw-r--r--static/freebsd/man4/nlsysevent.4 3.html184
1 files changed, 184 insertions, 0 deletions
diff --git a/static/freebsd/man4/nlsysevent.4 3.html b/static/freebsd/man4/nlsysevent.4 3.html
new file mode 100644
index 00000000..02fa82ae
--- /dev/null
+++ b/static/freebsd/man4/nlsysevent.4 3.html
@@ -0,0 +1,184 @@
+<table class="head">
+ <tr>
+ <td class="head-ltitle">NLSYSEVENT(4)</td>
+ <td class="head-vol">Device Drivers Manual</td>
+ <td class="head-rtitle">NLSYSEVENT(4)</td>
+ </tr>
+</table>
+<div class="manual-text">
+<section class="Sh">
+<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
+<p class="Pp"><code class="Nm">nlsysevent</code> &#x2014;
+ <span class="Nd">Netlink-based kernel event notification module</span></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
+<p class="Pp">To load the driver as a module at boot time, place the following
+ line in <a class="Xr">loader.conf(5)</a>:</p>
+<div class="Bd Pp Bd-indent Li">
+<pre>nlsysevent_load=&quot;YES&quot;</pre>
+</div>
+<p class="Pp">Alternatively, to load the module at runtime:</p>
+<div class="Bd Pp Bd-indent Li">
+<pre>kldload nlsysevent</pre>
+</div>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
+<p class="Pp">The <code class="Nm">nlsysevent</code> kernel module provides a
+ <a class="Xr">netlink(4)</a> Generic Netlink interface for receiving kernel
+ device events. It hooks into the <a class="Xr">devctl(4)</a> notification
+ system and re-publishes all kernel events as Generic Netlink multicast
+ messages under the <code class="Dv">NETLINK_GENERIC</code> protocol
+ family.</p>
+<p class="Pp">This provides an alternative to reading events from
+ <span class="Pa">/dev/devctl</span> (used by <a class="Xr">devd(8)</a>),
+ with the advantage that multiple consumers can subscribe to events
+ simultaneously, and consumers can selectively subscribe to specific event
+ groups.</p>
+<section class="Ss">
+<h2 class="Ss" id="Generic_Netlink_Family"><a class="permalink" href="#Generic_Netlink_Family">Generic
+ Netlink Family</a></h2>
+<p class="Pp">The module registers a Generic Netlink family named
+ &#x201C;<code class="Li">nlsysevent</code>&#x201D;. The dynamically-assigned
+ family identifier can be resolved using the standard
+ <code class="Dv">CTRL_CMD_GETFAMILY</code> request as described in
+ <a class="Xr">genetlink(4)</a>.</p>
+</section>
+<section class="Ss">
+<h2 class="Ss" id="Commands"><a class="permalink" href="#Commands">Commands</a></h2>
+<p class="Pp">The following command is defined:</p>
+<dl class="Bl-tag">
+ <dt id="NLSE_CMD_NEWEVENT"><a class="permalink" href="#NLSE_CMD_NEWEVENT"><code class="Dv">NLSE_CMD_NEWEVENT</code></a></dt>
+ <dd>Sent when a kernel event occurs. This message is never solicited by
+ userland; it is only delivered to sockets that have subscribed to one or
+ more multicast groups.</dd>
+</dl>
+</section>
+<section class="Ss">
+<h2 class="Ss" id="Attributes"><a class="permalink" href="#Attributes">Attributes</a></h2>
+<p class="Pp">Each <code class="Dv">NLSE_CMD_NEWEVENT</code> message contains
+ the following TLV attributes:</p>
+<dl class="Bl-tag">
+ <dt id="NLSE_ATTR_SYSTEM"><a class="permalink" href="#NLSE_ATTR_SYSTEM"><code class="Dv">NLSE_ATTR_SYSTEM</code></a></dt>
+ <dd>(string) The system name that generated the event (e.g.,
+ &#x201C;<code class="Li">ACPI</code>,
+ &#x201C;<code class="Li">IFNET</code>,
+ &#x201C;<code class="Li">USB</code>&#x201D;&#x201D;&#x201D;).</dd>
+ <dt id="NLSE_ATTR_SUBSYSTEM"><a class="permalink" href="#NLSE_ATTR_SUBSYSTEM"><code class="Dv">NLSE_ATTR_SUBSYSTEM</code></a></dt>
+ <dd>(string) The subsystem name within the system.</dd>
+ <dt id="NLSE_ATTR_TYPE"><a class="permalink" href="#NLSE_ATTR_TYPE"><code class="Dv">NLSE_ATTR_TYPE</code></a></dt>
+ <dd>(string) The type of the event.</dd>
+ <dt id="NLSE_ATTR_DATA"><a class="permalink" href="#NLSE_ATTR_DATA"><code class="Dv">NLSE_ATTR_DATA</code></a></dt>
+ <dd>(string) Optional extra data associated with the event. This attribute may
+ be absent if no extra data was provided.</dd>
+</dl>
+</section>
+<section class="Ss">
+<h2 class="Ss" id="Multicast_Groups"><a class="permalink" href="#Multicast_Groups">Multicast
+ Groups</a></h2>
+<p class="Pp">The module creates one multicast group per system name. The
+ following groups are pre-registered when the module is loaded:</p>
+<p class="Pp"></p>
+<table class="Bl-column Bd-indent Bl-compact">
+ <tr id="ACPI">
+ <td><a class="permalink" href="#ACPI"><code class="Li">ACPI</code></a></td>
+ </tr>
+ <tr id="AEON">
+ <td><a class="permalink" href="#AEON"><code class="Li">AEON</code></a></td>
+ </tr>
+ <tr id="CAM">
+ <td><a class="permalink" href="#CAM"><code class="Li">CAM</code></a></td>
+ </tr>
+ <tr id="CARP">
+ <td><a class="permalink" href="#CARP"><code class="Li">CARP</code></a></td>
+ </tr>
+ <tr id="coretemp">
+ <td><a class="permalink" href="#coretemp"><code class="Li">coretemp</code></a></td>
+ </tr>
+ <tr id="DEVFS">
+ <td><a class="permalink" href="#DEVFS"><code class="Li">DEVFS</code></a></td>
+ </tr>
+ <tr id="device">
+ <td><a class="permalink" href="#device"><code class="Li">device</code></a></td>
+ </tr>
+ <tr id="ETHERNET">
+ <td><a class="permalink" href="#ETHERNET"><code class="Li">ETHERNET</code></a></td>
+ </tr>
+ <tr id="GEOM">
+ <td><a class="permalink" href="#GEOM"><code class="Li">GEOM</code></a></td>
+ </tr>
+ <tr id="HYPERV_NIC_VF">
+ <td><a class="permalink" href="#HYPERV_NIC_VF"><code class="Li">HYPERV_NIC_VF</code></a></td>
+ </tr>
+ <tr id="IFNET">
+ <td><a class="permalink" href="#IFNET"><code class="Li">IFNET</code></a></td>
+ </tr>
+ <tr id="INFINIBAND">
+ <td><a class="permalink" href="#INFINIBAND"><code class="Li">INFINIBAND</code></a></td>
+ </tr>
+ <tr id="KERNEL">
+ <td><a class="permalink" href="#KERNEL"><code class="Li">KERNEL</code></a></td>
+ </tr>
+ <tr id="nvme">
+ <td><a class="permalink" href="#nvme"><code class="Li">nvme</code></a></td>
+ </tr>
+ <tr id="PMU">
+ <td><a class="permalink" href="#PMU"><code class="Li">PMU</code></a></td>
+ </tr>
+ <tr id="RCTL">
+ <td><a class="permalink" href="#RCTL"><code class="Li">RCTL</code></a></td>
+ </tr>
+ <tr id="USB">
+ <td><a class="permalink" href="#USB"><code class="Li">USB</code></a></td>
+ </tr>
+ <tr id="VFS">
+ <td><a class="permalink" href="#VFS"><code class="Li">VFS</code></a></td>
+ </tr>
+ <tr id="VT">
+ <td><a class="permalink" href="#VT"><code class="Li">VT</code></a></td>
+ </tr>
+ <tr id="ZFS">
+ <td><a class="permalink" href="#ZFS"><code class="Li">ZFS</code></a></td>
+ </tr>
+</table>
+<p class="Pp">Additional groups are created dynamically as new system names
+ appear in kernel events, up to a maximum of 64 groups.</p>
+<p class="Pp">The group identifier for a given system name can be resolved via
+ <code class="Dv">CTRL_CMD_GETFAMILY</code> and then subscribed to using the
+ <code class="Dv">NETLINK_ADD_MEMBERSHIP</code> socket option.</p>
+</section>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h1>
+<p class="Pp">The <a class="Xr">genl(1)</a> utility can be used to monitor
+ events:</p>
+<div class="Bd Pp Bd-indent Li">
+<pre>genl monitor nlsysevent</pre>
+</div>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
+ ALSO</a></h1>
+<p class="Pp"><a class="Xr">genl(1)</a>, <a class="Xr">snl(3)</a>,
+ <a class="Xr">devctl(4)</a>, <a class="Xr">genetlink(4)</a>,
+ <a class="Xr">netlink(4)</a>, <a class="Xr">devd(8)</a></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
+<p class="Pp">The <code class="Nm">nlsysevent</code> module first appeared in
+ <span class="Ux">FreeBSD 15.0</span>.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
+<p class="Pp">The <code class="Nm">nlsysevent</code> kernel module and this
+ manual page were written by <span class="An">Baptiste Daroussin</span>
+ &lt;<a class="Mt" href="mailto:bapt@FreeBSD.org">bapt@FreeBSD.org</a>&gt;.</p>
+</section>
+</div>
+<table class="foot">
+ <tr>
+ <td class="foot-date">April 9, 2026</td>
+ <td class="foot-os">FreeBSD 15.0</td>
+ </tr>
+</table>