summaryrefslogtreecommitdiff
path: root/static/freebsd/man3/siginfo.3 3.html
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:55:43 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:55:43 -0400
commitac5e55f5f2af5b92794c2aded46c6bae85b5f5ed (patch)
tree9367490586c84cba28652e443e3166d66c33b0d9 /static/freebsd/man3/siginfo.3 3.html
parent253e67c8b3a72b3a4757fdbc5845297628db0a4a (diff)
docs: Added All FreeBSD Manuals
Diffstat (limited to 'static/freebsd/man3/siginfo.3 3.html')
-rw-r--r--static/freebsd/man3/siginfo.3 3.html528
1 files changed, 528 insertions, 0 deletions
diff --git a/static/freebsd/man3/siginfo.3 3.html b/static/freebsd/man3/siginfo.3 3.html
new file mode 100644
index 00000000..fb0a09d2
--- /dev/null
+++ b/static/freebsd/man3/siginfo.3 3.html
@@ -0,0 +1,528 @@
+<table class="head">
+ <tr>
+ <td class="head-ltitle">SIGINFO(3)</td>
+ <td class="head-vol">Library Functions Manual</td>
+ <td class="head-rtitle">SIGINFO(3)</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">siginfo</code> &#x2014; <span class="Nd">signal
+ generation information</span></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
+<p class="Pp"><code class="In">#include
+ &lt;<a class="In">signal.h</a>&gt;</code></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
+<p class="Pp">A process may request signal information when it is catching a
+ signal. The information specifies why the system generated that signal. To
+ request signal information in a signal handler, the user can set
+ <code class="Dv">SA_SIGINFO</code> in <var class="Va">sa_flags</var> before
+ <a class="Xr">sigaction(2)</a> is called, otherwise the user can use
+ <a class="Xr">sigwaitinfo(2)</a> and <a class="Xr">sigtimedwait(2)</a> to
+ get signal information. In either case, the system returns the information
+ in a structure of type <var class="Vt">siginfo_t</var>, which includes the
+ following information:</p>
+<table class="Bl-column">
+ <tr id="Type">
+ <td><a class="permalink" href="#Type"><b class="Sy">Type</b></a></td>
+ <td><a class="permalink" href="#Member"><b class="Sy" id="Member">Member</b></a></td>
+ <td><a class="permalink" href="#Description"><b class="Sy" id="Description">Description</b></a></td>
+ </tr>
+ <tr id="si_signo">
+ <td><var class="Vt">int</var></td>
+ <td><var class="Va">si_signo</var></td>
+ <td>signal number</td>
+ </tr>
+ <tr id="si_errno">
+ <td><var class="Vt">int</var></td>
+ <td><var class="Va">si_errno</var></td>
+ <td>error number</td>
+ </tr>
+ <tr id="si_code">
+ <td><var class="Vt">int</var></td>
+ <td><var class="Va">si_code</var></td>
+ <td>signal code</td>
+ </tr>
+ <tr id="si_value">
+ <td><var class="Vt">union sigval</var></td>
+ <td><var class="Va">si_value</var></td>
+ <td>signal value</td>
+ </tr>
+ <tr id="si_pid">
+ <td><var class="Vt">pid_t</var></td>
+ <td><var class="Va">si_pid</var></td>
+ <td>sending process ID</td>
+ </tr>
+ <tr id="si_uid">
+ <td><var class="Vt">uid_t</var></td>
+ <td><var class="Va">si_uid</var></td>
+ <td>sending process's real user ID</td>
+ </tr>
+ <tr id="*si_addr">
+ <td><var class="Vt">void</var></td>
+ <td><var class="Va">*si_addr</var></td>
+ <td>virtual address</td>
+ </tr>
+ <tr id="si_status">
+ <td><var class="Vt">int</var></td>
+ <td><var class="Va">si_status</var></td>
+ <td>exit value or signal</td>
+ </tr>
+ <tr id="si_band">
+ <td><var class="Vt">long</var></td>
+ <td><var class="Va">si_band</var></td>
+ <td>band event for <code class="Dv">SIGPOLL</code></td>
+ </tr>
+ <tr id="si_trapno">
+ <td><var class="Vt">int</var></td>
+ <td><var class="Va">si_trapno</var></td>
+ <td>machine trap code</td>
+ </tr>
+ <tr id="si_timerid">
+ <td><var class="Vt">int</var></td>
+ <td><var class="Va">si_timerid</var></td>
+ <td>POSIX timer ID</td>
+ </tr>
+ <tr id="si_overrun">
+ <td><var class="Vt">int</var></td>
+ <td><var class="Va">si_overrun</var></td>
+ <td>POSIX timer overrun count</td>
+ </tr>
+ <tr id="si_mqd">
+ <td><var class="Vt">int</var></td>
+ <td><var class="Va">si_mqd</var></td>
+ <td>POSIX message queue ID</td>
+ </tr>
+ <tr id="si_syscall">
+ <td><var class="Vt">int</var></td>
+ <td><var class="Va">si_syscall</var></td>
+ <td>system-call number for system calls blocked by Capsicum</td>
+ </tr>
+</table>
+<p class="Pp">The <var class="Va">si_signo</var> member contains the signal
+ number.</p>
+<p class="Pp">The <var class="Va">si_errno</var> member contains an error number
+ defined in the file
+ <code class="In">&lt;<a class="In">errno.h</a>&gt;</code>.</p>
+<p class="Pp">The <var class="Va">si_code</var> member contains a code which
+ describes the cause of the signal. The macros specified in the
+ <b class="Sy">Code</b> column of the following table are defined for use as
+ values of <var class="Va">si_code</var> that are signal-specific or
+ non-signal-specific reasons why the signal was generated:</p>
+<table class="Bl-column">
+ <tr id="Signal">
+ <td><a class="permalink" href="#Signal"><b class="Sy">Signal</b></a></td>
+ <td><a class="permalink" href="#Code"><b class="Sy" id="Code">Code</b></a></td>
+ <td><a class="permalink" href="#Reason"><b class="Sy" id="Reason">Reason</b></a></td>
+ </tr>
+ <tr id="SIGILL">
+ <td><a class="permalink" href="#SIGILL"><code class="Dv">SIGILL</code></a></td>
+ <td><a class="permalink" href="#ILL_ILLOPC"><code class="Dv" id="ILL_ILLOPC">ILL_ILLOPC</code></a></td>
+ <td>illegal opcode</td>
+ </tr>
+ <tr id="ILL_ILLOPN">
+ <td></td>
+ <td><a class="permalink" href="#ILL_ILLOPN"><code class="Dv">ILL_ILLOPN</code></a></td>
+ <td>illegal operand</td>
+ </tr>
+ <tr id="ILL_ILLADR">
+ <td></td>
+ <td><a class="permalink" href="#ILL_ILLADR"><code class="Dv">ILL_ILLADR</code></a></td>
+ <td>illegal addressing mode</td>
+ </tr>
+ <tr id="ILL_ILLTRP">
+ <td></td>
+ <td><a class="permalink" href="#ILL_ILLTRP"><code class="Dv">ILL_ILLTRP</code></a></td>
+ <td>illegal trap</td>
+ </tr>
+ <tr id="ILL_PRVOPC">
+ <td></td>
+ <td><a class="permalink" href="#ILL_PRVOPC"><code class="Dv">ILL_PRVOPC</code></a></td>
+ <td>illegal privileged opcode</td>
+ </tr>
+ <tr id="ILL_PRVREG">
+ <td></td>
+ <td><a class="permalink" href="#ILL_PRVREG"><code class="Dv">ILL_PRVREG</code></a></td>
+ <td>illegal privileged register</td>
+ </tr>
+ <tr id="ILL_COPROC">
+ <td></td>
+ <td><a class="permalink" href="#ILL_COPROC"><code class="Dv">ILL_COPROC</code></a></td>
+ <td>coprocessor error</td>
+ </tr>
+ <tr id="ILL_BADSTK">
+ <td></td>
+ <td><a class="permalink" href="#ILL_BADSTK"><code class="Dv">ILL_BADSTK</code></a></td>
+ <td>internal stack error</td>
+ </tr>
+ <tr id="SIGFPE">
+ <td><a class="permalink" href="#SIGFPE"><code class="Dv">SIGFPE</code></a></td>
+ <td><a class="permalink" href="#FPE_INTDIV"><code class="Dv" id="FPE_INTDIV">FPE_INTDIV</code></a></td>
+ <td>integer divide by zero</td>
+ </tr>
+ <tr id="FPE_INTOVF">
+ <td></td>
+ <td><a class="permalink" href="#FPE_INTOVF"><code class="Dv">FPE_INTOVF</code></a></td>
+ <td>integer overflow</td>
+ </tr>
+ <tr id="FPE_FLTDIV">
+ <td></td>
+ <td><a class="permalink" href="#FPE_FLTDIV"><code class="Dv">FPE_FLTDIV</code></a></td>
+ <td>floating-point divide by zero</td>
+ </tr>
+ <tr id="FPE_FLTOVF">
+ <td></td>
+ <td><a class="permalink" href="#FPE_FLTOVF"><code class="Dv">FPE_FLTOVF</code></a></td>
+ <td>floating-point overflow</td>
+ </tr>
+ <tr id="FPE_FLTUND">
+ <td></td>
+ <td><a class="permalink" href="#FPE_FLTUND"><code class="Dv">FPE_FLTUND</code></a></td>
+ <td>floating-point underflow</td>
+ </tr>
+ <tr id="FPE_FLTRES">
+ <td></td>
+ <td><a class="permalink" href="#FPE_FLTRES"><code class="Dv">FPE_FLTRES</code></a></td>
+ <td>floating-point inexact result</td>
+ </tr>
+ <tr id="FPE_FLTINV">
+ <td></td>
+ <td><a class="permalink" href="#FPE_FLTINV"><code class="Dv">FPE_FLTINV</code></a></td>
+ <td>invalid floating-point operation</td>
+ </tr>
+ <tr id="FPE_FLTSUB">
+ <td></td>
+ <td><a class="permalink" href="#FPE_FLTSUB"><code class="Dv">FPE_FLTSUB</code></a></td>
+ <td>subscript out of range</td>
+ </tr>
+ <tr id="SIGSEGV">
+ <td><a class="permalink" href="#SIGSEGV"><code class="Dv">SIGSEGV</code></a></td>
+ <td><a class="permalink" href="#SEGV_MAPERR"><code class="Dv" id="SEGV_MAPERR">SEGV_MAPERR</code></a></td>
+ <td>address not mapped to object</td>
+ </tr>
+ <tr id="SEGV_ACCERR">
+ <td></td>
+ <td><a class="permalink" href="#SEGV_ACCERR"><code class="Dv">SEGV_ACCERR</code></a></td>
+ <td>invalid permissions for mapped object</td>
+ </tr>
+ <tr id="SIGBUS">
+ <td><a class="permalink" href="#SIGBUS"><code class="Dv">SIGBUS</code></a></td>
+ <td><a class="permalink" href="#BUS_ADRALN"><code class="Dv" id="BUS_ADRALN">BUS_ADRALN</code></a></td>
+ <td>invalid address alignment</td>
+ </tr>
+ <tr id="BUS_ADRERR">
+ <td></td>
+ <td><a class="permalink" href="#BUS_ADRERR"><code class="Dv">BUS_ADRERR</code></a></td>
+ <td>nonexistent physical address</td>
+ </tr>
+ <tr id="BUS_OBJERR">
+ <td></td>
+ <td><a class="permalink" href="#BUS_OBJERR"><code class="Dv">BUS_OBJERR</code></a></td>
+ <td>object-specific hardware error</td>
+ </tr>
+ <tr id="BUS_OOMERR">
+ <td></td>
+ <td><a class="permalink" href="#BUS_OOMERR"><code class="Dv">BUS_OOMERR</code></a></td>
+ <td>cannot alloc a page to map at fault</td>
+ </tr>
+ <tr id="SIGTRAP">
+ <td><a class="permalink" href="#SIGTRAP"><code class="Dv">SIGTRAP</code></a></td>
+ <td><a class="permalink" href="#TRAP_BRKPT"><code class="Dv" id="TRAP_BRKPT">TRAP_BRKPT</code></a></td>
+ <td>process breakpoint</td>
+ </tr>
+ <tr id="TRAP_TRACE">
+ <td></td>
+ <td><a class="permalink" href="#TRAP_TRACE"><code class="Dv">TRAP_TRACE</code></a></td>
+ <td>process trace trap</td>
+ </tr>
+ <tr id="TRAP_DTRACE">
+ <td></td>
+ <td><a class="permalink" href="#TRAP_DTRACE"><code class="Dv">TRAP_DTRACE</code></a></td>
+ <td>DTrace induced trap</td>
+ </tr>
+ <tr id="TRAP_CAP">
+ <td></td>
+ <td><a class="permalink" href="#TRAP_CAP"><code class="Dv">TRAP_CAP</code></a></td>
+ <td>capabilities protective trap</td>
+ </tr>
+ <tr id="SIGCHLD">
+ <td><a class="permalink" href="#SIGCHLD"><code class="Dv">SIGCHLD</code></a></td>
+ <td><a class="permalink" href="#CLD_EXITED"><code class="Dv" id="CLD_EXITED">CLD_EXITED</code></a></td>
+ <td>child has exited</td>
+ </tr>
+ <tr id="CLD_KILLED">
+ <td></td>
+ <td><a class="permalink" href="#CLD_KILLED"><code class="Dv">CLD_KILLED</code></a></td>
+ <td>child has terminated abnormally and did not create a core file</td>
+ </tr>
+ <tr id="CLD_DUMPED">
+ <td></td>
+ <td><a class="permalink" href="#CLD_DUMPED"><code class="Dv">CLD_DUMPED</code></a></td>
+ <td>child has terminated abnormally and created a core file</td>
+ </tr>
+ <tr id="CLD_TRAPPED">
+ <td></td>
+ <td><a class="permalink" href="#CLD_TRAPPED"><code class="Dv">CLD_TRAPPED</code></a></td>
+ <td>traced child has trapped</td>
+ </tr>
+ <tr id="CLD_STOPPED">
+ <td></td>
+ <td><a class="permalink" href="#CLD_STOPPED"><code class="Dv">CLD_STOPPED</code></a></td>
+ <td>child has stopped</td>
+ </tr>
+ <tr id="CLD_CONTINUED">
+ <td></td>
+ <td><a class="permalink" href="#CLD_CONTINUED"><code class="Dv">CLD_CONTINUED</code></a></td>
+ <td>stopped child has continued</td>
+ </tr>
+ <tr id="SIGPOLL">
+ <td><a class="permalink" href="#SIGPOLL"><code class="Dv">SIGPOLL</code></a></td>
+ <td><a class="permalink" href="#POLL_IN"><code class="Dv" id="POLL_IN">POLL_IN</code></a></td>
+ <td>data input available</td>
+ </tr>
+ <tr id="POLL_OUT">
+ <td></td>
+ <td><a class="permalink" href="#POLL_OUT"><code class="Dv">POLL_OUT</code></a></td>
+ <td>output buffers available</td>
+ </tr>
+ <tr id="POLL_MSG">
+ <td></td>
+ <td><a class="permalink" href="#POLL_MSG"><code class="Dv">POLL_MSG</code></a></td>
+ <td>input message available</td>
+ </tr>
+ <tr id="POLL_ERR">
+ <td></td>
+ <td><a class="permalink" href="#POLL_ERR"><code class="Dv">POLL_ERR</code></a></td>
+ <td>I/O error</td>
+ </tr>
+ <tr id="POLL_PRI">
+ <td></td>
+ <td><a class="permalink" href="#POLL_PRI"><code class="Dv">POLL_PRI</code></a></td>
+ <td>high priority input available</td>
+ </tr>
+ <tr id="POLL_HUP">
+ <td></td>
+ <td><a class="permalink" href="#POLL_HUP"><code class="Dv">POLL_HUP</code></a></td>
+ <td>device disconnected</td>
+ </tr>
+ <tr id="SI_NOINFO">
+ <td>Any</td>
+ <td><a class="permalink" href="#SI_NOINFO"><code class="Dv">SI_NOINFO</code></a></td>
+ <td>Only the <var class="Va">si_signo</var> member is meaningful; the value
+ of all other members is unspecified.</td>
+ </tr>
+ <tr id="SI_USER">
+ <td></td>
+ <td><a class="permalink" href="#SI_USER"><code class="Dv">SI_USER</code></a></td>
+ <td>signal sent by <a class="Xr">kill(2)</a></td>
+ </tr>
+ <tr id="SI_QUEUE">
+ <td></td>
+ <td><a class="permalink" href="#SI_QUEUE"><code class="Dv">SI_QUEUE</code></a></td>
+ <td>signal sent by <a class="Xr">sigqueue(2)</a></td>
+ </tr>
+ <tr id="SI_TIMER">
+ <td></td>
+ <td><a class="permalink" href="#SI_TIMER"><code class="Dv">SI_TIMER</code></a></td>
+ <td>signal generated by expiration of a timer set by
+ <a class="Xr">timer_settime(2)</a></td>
+ </tr>
+ <tr id="SI_ASYNCIO">
+ <td></td>
+ <td><a class="permalink" href="#SI_ASYNCIO"><code class="Dv">SI_ASYNCIO</code></a></td>
+ <td>signal generated by completion of an asynchronous I/O request</td>
+ </tr>
+ <tr id="SI_MESGQ">
+ <td></td>
+ <td><a class="permalink" href="#SI_MESGQ"><code class="Dv">SI_MESGQ</code></a></td>
+ <td>signal generated by arrival of a message on an empty message queue</td>
+ </tr>
+ <tr id="SI_KERNEL">
+ <td></td>
+ <td><a class="permalink" href="#SI_KERNEL"><code class="Dv">SI_KERNEL</code></a></td>
+ <td>signal generated by miscellaneous parts of the kernel</td>
+ </tr>
+ <tr id="SI_LWP">
+ <td></td>
+ <td><a class="permalink" href="#SI_LWP"><code class="Dv">SI_LWP</code></a></td>
+ <td>signal sent by <a class="Xr">pthread_kill(3)</a></td>
+ </tr>
+</table>
+<p class="Pp">For synchronous signals, <var class="Va">si_addr</var> is
+ generally set to the address of the faulting instruction. However,
+ synchronous signals raised by a faulting memory access such as
+ <code class="Dv">SIGSEGV</code> and <code class="Dv">SIGBUS</code> may
+ report the address of the faulting memory access (if available) in
+ <var class="Va">si_addr</var> instead. Additionally
+ <code class="Dv">SIGTRAP</code> raised by a hardware watchpoint exception
+ may report the data address that triggered the watchpoint in
+ <var class="Va">si_addr</var>.</p>
+<p class="Pp">Synchronous signals set <var class="Va">si_trapno</var> to a
+ machine-dependent trap number.</p>
+<p class="Pp">In addition, the following signal-specific information is
+ available:</p>
+<table class="Bl-column">
+ <tr id="Signal~2">
+ <td><a class="permalink" href="#Signal~2"><b class="Sy">Signal</b></a></td>
+ <td><a class="permalink" href="#Member~2"><b class="Sy" id="Member~2">Member</b></a></td>
+ <td><a class="permalink" href="#Value"><b class="Sy" id="Value">Value</b></a></td>
+ </tr>
+ <tr id="SIGCHLD~2">
+ <td><a class="permalink" href="#SIGCHLD~2"><code class="Dv">SIGCHLD</code></a></td>
+ <td><var class="Va">si_pid</var></td>
+ <td>child process ID</td>
+ </tr>
+ <tr id="si_status~2">
+ <td></td>
+ <td><var class="Va">si_status</var></td>
+ <td>exit value or signal; if <var class="Va">si_code</var> is equal to
+ <code class="Dv">CLD_EXITED</code>, then it is equal to the exit value of
+ the child process, otherwise, it is equal to a signal that caused the
+ child process to change state.</td>
+ </tr>
+ <tr id="si_uid~2">
+ <td></td>
+ <td><var class="Va">si_uid</var></td>
+ <td>real user ID of the process that sent the signal</td>
+ </tr>
+ <tr id="SIGPOLL~2">
+ <td><a class="permalink" href="#SIGPOLL~2"><code class="Dv">SIGPOLL</code></a></td>
+ <td><var class="Va">si_band</var></td>
+ <td>band event for <code class="Dv">POLL_IN</code>,
+ <code class="Dv">POLL_OUT</code>, or <code class="Dv">POLL_MSG</code></td>
+ </tr>
+</table>
+<p class="Pp">Finally, the following code-specific information is available:</p>
+<table class="Bl-column">
+ <tr id="Code~2">
+ <td><a class="permalink" href="#Code~2"><b class="Sy">Code</b></a></td>
+ <td><a class="permalink" href="#Member~3"><b class="Sy" id="Member~3">Member</b></a></td>
+ <td><a class="permalink" href="#Value~2"><b class="Sy" id="Value~2">Value</b></a></td>
+ </tr>
+ <tr id="SI_USER~2">
+ <td><a class="permalink" href="#SI_USER~2"><code class="Dv">SI_USER</code></a></td>
+ <td><var class="Va">si_pid</var></td>
+ <td>the process ID that sent the signal</td>
+ </tr>
+ <tr id="si_uid~3">
+ <td></td>
+ <td><var class="Va">si_uid</var></td>
+ <td>real user ID of the process that sent the signal</td>
+ </tr>
+ <tr id="SI_QUEUE~2">
+ <td><a class="permalink" href="#SI_QUEUE~2"><code class="Dv">SI_QUEUE</code></a></td>
+ <td><var class="Va">si_value</var></td>
+ <td>the value passed to <a class="Xr">sigqueue(2)</a> system call</td>
+ </tr>
+ <tr id="si_pid~2">
+ <td></td>
+ <td><var class="Va">si_pid</var></td>
+ <td>the process ID that sent the signal</td>
+ </tr>
+ <tr id="si_uid~4">
+ <td></td>
+ <td><var class="Va">si_uid</var></td>
+ <td>real user ID of the process that sent the signal</td>
+ </tr>
+ <tr id="SI_TIMER~2">
+ <td><a class="permalink" href="#SI_TIMER~2"><code class="Dv">SI_TIMER</code></a></td>
+ <td><var class="Va">si_value</var></td>
+ <td>the value passed to <a class="Xr">timer_create(2)</a> system call</td>
+ </tr>
+ <tr id="si_timerid~2">
+ <td></td>
+ <td><var class="Va">si_timerid</var></td>
+ <td>the timer ID returned by <a class="Xr">timer_create(2)</a> system
+ call</td>
+ </tr>
+ <tr id="si_overrun~2">
+ <td></td>
+ <td><var class="Va">si_overrun</var></td>
+ <td>timer overrun count corresponding to the signal</td>
+ </tr>
+ <tr id="si_errno~2">
+ <td></td>
+ <td><var class="Va">si_errno</var></td>
+ <td>If timer overrun will be {<code class="Dv">DELAYTIMER_MAX</code>}, an
+ error code defined in
+ <code class="In">&lt;<a class="In">errno.h</a>&gt;</code> is set</td>
+ </tr>
+ <tr id="SI_ASYNCIO~2">
+ <td><a class="permalink" href="#SI_ASYNCIO~2"><code class="Dv">SI_ASYNCIO</code></a></td>
+ <td><var class="Va">si_value</var></td>
+ <td>the value passed to aio system calls</td>
+ </tr>
+ <tr id="SI_MESGQ~2">
+ <td><a class="permalink" href="#SI_MESGQ~2"><code class="Dv">SI_MESGQ</code></a></td>
+ <td><var class="Va">si_value</var></td>
+ <td>the value passed to <a class="Xr">mq_notify(2)</a> system call</td>
+ </tr>
+ <tr id="si_mqd~2">
+ <td></td>
+ <td><var class="Va">si_mqd</var></td>
+ <td>the ID of the message queue which generated the signal</td>
+ </tr>
+ <tr id="SI_LWP~2">
+ <td><a class="permalink" href="#SI_LWP~2"><code class="Dv">SI_LWP</code></a></td>
+ <td><var class="Va">si_pid</var></td>
+ <td>the process ID that sent the signal</td>
+ </tr>
+ <tr id="si_uid~5">
+ <td></td>
+ <td><var class="Va">si_uid</var></td>
+ <td>real user ID of the process that sent the signal</td>
+ </tr>
+</table>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="NOTES"><a class="permalink" href="#NOTES">NOTES</a></h1>
+<p class="Pp">Currently, the kernel never generates the
+ <code class="Dv">SIGPOLL</code> signal. <code class="Dv">SIGCHLD</code>
+ signal is queued when a process changed its status or exited. POSIX Realtime
+ Extensions like aio, timer, and message queue also queue signals. Signals
+ with code <code class="Dv">SI_USER</code>, <code class="Dv">SI_KERNEL</code>
+ or <code class="Dv">SI_LWP</code> are only queued if there are sufficient
+ resources; otherwise, <code class="Dv">SI_NOINFO</code> results. For some
+ hardware architectures, the exact value of <var class="Va">si_addr</var>
+ might not be available.</p>
+</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">aio_read(2)</a>, <a class="Xr">kill(2)</a>,
+ <a class="Xr">mq_notify(2)</a>, <a class="Xr">sigaction(2)</a>,
+ <a class="Xr">sigqueue(2)</a>, <a class="Xr">sigwaitinfo(2)</a>,
+ <a class="Xr">timer_create(2)</a>, <a class="Xr">timer_settime(2)</a>,
+ <a class="Xr">waitpid(2)</a>, <a class="Xr">pthread_kill(3)</a></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="STANDARDS"><a class="permalink" href="#STANDARDS">STANDARDS</a></h1>
+<p class="Pp">The <var class="Vt">siginfo_t</var> type conforms to
+ <span class="St">IEEE Std 1003.1-2004 (&#x201C;POSIX.1&#x201D;)</span>.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
+<p class="Pp">Full support for POSIX signal information first appeared in
+ <span class="Ux">FreeBSD 7.0</span>. The codes
+ <code class="Dv">SI_USER</code> and <code class="Dv">SI_KERNEL</code> can be
+ generated as of <span class="Ux">FreeBSD 8.1</span>. The code
+ <code class="Dv">SI_LWP</code> can be generated as of
+ <span class="Ux">FreeBSD 9.0</span>.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
+<p class="Pp">This manual page was written by <span class="An">David Xu</span>
+ &lt;<a class="Mt" href="mailto:davidxu@FreeBSD.org">davidxu@FreeBSD.org</a>&gt;.</p>
+</section>
+</div>
+<table class="foot">
+ <tr>
+ <td class="foot-date">February 17, 2021</td>
+ <td class="foot-os">FreeBSD 15.0</td>
+ </tr>
+</table>