summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/efidev.4 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/efidev.4 3.html')
-rw-r--r--static/freebsd/man4/efidev.4 3.html142
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>
+ &#x2014; <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=&quot;YES&quot;</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
+ &#x201C;<code class="Li">1</code>&#x201D;.</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">&lt;<a class="In">sys/efiio.h</a>&gt;</code>
+ with supplemental structures and constants defined in
+ <code class="In">&lt;<a class="In">sys/efi.h</a>&gt;</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;">&#x00A0;</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>