diff options
Diffstat (limited to 'static/freebsd/man4/nlsysevent.4 3.html')
| -rw-r--r-- | static/freebsd/man4/nlsysevent.4 3.html | 184 |
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> — + <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="YES"</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 + “<code class="Li">nlsysevent</code>”. 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., + “<code class="Li">ACPI</code>, + “<code class="Li">IFNET</code>, + “<code class="Li">USB</code>”””).</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> + <<a class="Mt" href="mailto:bapt@FreeBSD.org">bapt@FreeBSD.org</a>>.</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> |
