diff options
Diffstat (limited to 'static/freebsd/man4/efidev.4 3.html')
| -rw-r--r-- | static/freebsd/man4/efidev.4 3.html | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/static/freebsd/man4/efidev.4 3.html b/static/freebsd/man4/efidev.4 3.html new file mode 100644 index 00000000..015c7084 --- /dev/null +++ b/static/freebsd/man4/efidev.4 3.html @@ -0,0 +1,142 @@ +<table class="head"> + <tr> + <td class="head-ltitle">EFIDEV(4)</td> + <td class="head-vol">Device Drivers Manual</td> + <td class="head-rtitle">EFIDEV(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">efidev</code>, <code class="Nm">efirtc</code> + — <span class="Nd">user-mode access to UEFI runtime + services</span></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1> +<p class="Pp">To compile this driver into the kernel, place the following lines + in your kernel configuration file:</p> +<div class="Bd Pp Bd-indent"><code class="Cd">options EFIRT</code></div> +<p class="Pp">Alternatively, 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>efirt_load="YES"</pre> +</div> +<p class="Pp">The driver may be disabled by setting the + <a class="Xr">loader(8)</a> tunable <var class="Va">efi.rt.disabled</var> to + “<code class="Li">1</code>”.</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> +<p class="Pp">The <code class="Nm">efidev</code> device provides user-mode + access to UEFI runtime services. <code class="Nm">efidev</code> also + includes a driver to provide a time-of-day clock using the UEFI real time + clock (RTC). However, the RTC may not always be available, based on the UEFI + firmware. If the RTC is not available, it will not be registered as a + time-of-day clock and the time related ioctls below will not be + functional.</p> +<p class="Pp"><code class="Nm">efidev</code> provides the following ioctls + defined in <code class="In"><<a class="In">sys/efiio.h</a>></code> + with supplemental structures and constants defined in + <code class="In"><<a class="In">sys/efi.h</a>></code>:</p> +<dl class="Bl-tag"> + <dt id="EFIIOC_GET_TABLE"><a class="permalink" href="#EFIIOC_GET_TABLE"><code class="Dv">EFIIOC_GET_TABLE</code></a> + (<var class="Vt">struct efi_get_table_ioc</var>)</dt> + <dd>Copy the UEFI table specified by the <var class="Va">uuid</var> field of + the <var class="Vt">struct efi_get_table_ioc</var> into the + <var class="Va">buf</var> field. The memory size for the buf field can be + queried by passing <code class="Dv">NULL</code> pointer as a buf value. + The required size will be stored in the <var class="Va">table_len</var> + field. The size of the allocated memory must be specified in the + <var class="Va">buf_len</var> field. + <div class="Bd Pp Bd-indent Li"> + <pre>struct efi_get_table_ioc { + void *buf; + struct uuid uuid; + size_t table_len; + size_t buf_len; +};</pre> + </div> + </dd> + <dt id="EFIIOC_GET_TIME"><a class="permalink" href="#EFIIOC_GET_TIME"><code class="Dv">EFIIOC_GET_TIME</code></a> + (<var class="Vt">struct efi_tm</var>)</dt> + <dd>Get the time from the RTC, if the RTC is available. The + <var class="Vt">struct efi_tm</var> passed is populated with the current + time, unless an error occurs. + <div class="Bd Pp Bd-indent Li"> + <pre>struct efi_tm { + uint16_t tm_year; + uint8_t tm_mon + uint8_t tm_mday + uint8_t tm_hour; + uint8_t tm_min; + uint8_t tm_sec; + uint8_t __pad1; + uint32_t tm_nsec; + int16_t tm_tz; + uint8_t tm_dst; + uint8_t __pad2; +};</pre> + </div> + </dd> + <dt id="EFIIOC_SET_TIME"><a class="permalink" href="#EFIIOC_SET_TIME"><code class="Dv">EFIIOC_SET_TIME</code></a> + (<var class="Vt">struct efi_tm</var>)</dt> + <dd>Sets the time stored by the RTC, if the RTC is available.</dd> + <dt id="EFIIOC_VAR_GET"><a class="permalink" href="#EFIIOC_VAR_GET"><code class="Dv">EFIIOC_VAR_GET</code></a> + (<var class="Vt">struct efi_var_ioc</var>)</dt> + <dd>Gets data from the variable described by the vendor and name fields of the + <var class="Vt">struct efi_var_ioc</var> into the + <var class="Fa">data</var> field. <code class="Dv">EFIIOC_VAR_GET</code> + (<var class="Vt">struct efi_var_ioc</var>) will also populate the + <var class="Fa">attrib</var> field. + <div class="Bd Pp Li"> + <pre>struct efi_var_ioc { + efi_char *name; + size_t namesize; + struct uuid vendor; + uint32_t attrib; + void *data; + size_t datasize; +};</pre> + </div> + </dd> + <dt id="EFIIOC_VAR_NEXT"><a class="permalink" href="#EFIIOC_VAR_NEXT"><code class="Dv">EFIIOC_VAR_NEXT</code></a> + (<var class="Vt">struct efi_var_ioc</var>)</dt> + <dd>Used for enumerating all UEFI variables. The initial call should use an + empty string for the name attribute. Subsequent calls should supply the + vendor uuid and name of the last variable returned.</dd> + <dt id="EFIIOC_VAR_SET"><a class="permalink" href="#EFIIOC_VAR_SET"><code class="Dv">EFIIOC_VAR_SET</code></a> + (<var class="Vt">struct efi_var_ioc</var>)</dt> + <dd>Sets data and attributes for the variable described by the name and vendor + in the <var class="Vt">struct efi_var_ioc</var>.</dd> +</dl> +</section> +<section class="Sh"> +<h1 class="Sh" id="FILES"><a class="permalink" href="#FILES">FILES</a></h1> +<dl class="Bl-tag"> + <dt><span class="Pa">/dev/efi</span></dt> + <dd style="width: auto;"> </dd> +</dl> +</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">efivar(3)</a>, <a class="Xr">efirt(9)</a></p> +</section> +<section class="Sh"> +<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1> +<p class="Pp">A <code class="Nm">efidev</code> device first appeared in + <span class="Ux">FreeBSD 11.1</span>.</p> +</section> +<section class="Sh"> +<h1 class="Sh" id="BUGS"><a class="permalink" href="#BUGS">BUGS</a></h1> +<p class="Pp"><code class="Nm">efidev</code> is currently only available on + amd64 and arm64.</p> +</section> +</div> +<table class="foot"> + <tr> + <td class="foot-date">June 18, 2021</td> + <td class="foot-os">FreeBSD 15.0</td> + </tr> +</table> |
