diff options
Diffstat (limited to 'static/netbsd/man9/cnmagic.9 3.html')
| -rw-r--r-- | static/netbsd/man9/cnmagic.9 3.html | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/static/netbsd/man9/cnmagic.9 3.html b/static/netbsd/man9/cnmagic.9 3.html deleted file mode 100644 index ea61d72b..00000000 --- a/static/netbsd/man9/cnmagic.9 3.html +++ /dev/null @@ -1,164 +0,0 @@ -<table class="head"> - <tr> - <td class="head-ltitle">CNMAGIC(9)</td> - <td class="head-vol">Kernel Developer's Manual</td> - <td class="head-rtitle">CNMAGIC(9)</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">cn_init_magic</code>, - <code class="Nm">cn_trap</code>, <code class="Nm">cn_isconsole</code>, - <code class="Nm">cn_check_magic</code>, - <code class="Nm">cn_destroy_magic</code>, - <code class="Nm">cn_set_magic</code>, <code class="Nm">cn_get_magic</code> - — <span class="Nd">console magic key sequence management</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 - <<a class="In">sys/systm.h</a>></code></p> -<p class="Pp"><var class="Ft">void</var> - <br/> - <code class="Fn">cn_init_magic</code>(<var class="Fa" style="white-space: nowrap;">cnm_state_t - *cnms</var>);</p> -<p class="Pp"><var class="Ft">void</var> - <br/> - <code class="Fn">cn_trap</code>();</p> -<p class="Pp"><var class="Ft">int</var> - <br/> - <code class="Fn">cn_isconsole</code>(<var class="Fa" style="white-space: nowrap;">dev_t - dev</var>);</p> -<p class="Pp"><var class="Ft">void</var> - <br/> - <code class="Fn">cn_check_magic</code>(<var class="Fa" style="white-space: nowrap;">dev_t - dev</var>, <var class="Fa" style="white-space: nowrap;">int k</var>, - <var class="Fa" style="white-space: nowrap;">cnm_state_t *cnms</var>);</p> -<p class="Pp"><var class="Ft">void</var> - <br/> - <code class="Fn">cn_destroy_magic</code>(<var class="Fa" style="white-space: nowrap;">cnm_state_t - *cnms</var>);</p> -<p class="Pp"><var class="Ft">int</var> - <br/> - <code class="Fn">cn_set_magic</code>(<var class="Fa" style="white-space: nowrap;">char - *magic</var>);</p> -<p class="Pp"><var class="Ft">int</var> - <br/> - <code class="Fn">cn_get_magic</code>(<var class="Fa" style="white-space: nowrap;">char - *magic</var>, <var class="Fa" style="white-space: nowrap;">int - len</var>);</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> -<p class="Pp">The <span class="Ux">NetBSD</span> console magic key sequence - management framework is designed to provide flexible methods to set, change, - and detect magic key sequences on console devices and break into the - debugger or ROM monitor with a minimum of interrupt latency.</p> -<p class="Pp" id="cn_init_magic">Drivers that generate console input should make - use of these routines. A different <var class="Va">cnm_state_t</var> should - be used for each separate input stream. Multiple devices that share the same - input stream, such as USB keyboards, can share the same - <var class="Va">cnm_state_t</var>. Once a <var class="Va">cnm_state_t</var> - is allocated, it should be initialized with - <a class="permalink" href="#cn_init_magic"><code class="Fn">cn_init_magic</code></a>() - so it can be used by - <a class="permalink" href="#cn_check_magic"><code class="Fn" id="cn_check_magic">cn_check_magic</code></a>(). - If a driver thinks it might be the console input device it can set the magic - sequence with <code class="Fn">cn_set_magic</code>() to any arbitrary - string. Whenever the driver receives input, it should call - <code class="Fn">cn_check_magic</code>() to process the data and determine - whether the magic sequence has been hit.</p> -<p class="Pp">The magic key sequence can be accessed through the - <var class="Va">hw.cnmagic</var> <code class="Ic">sysctl</code> variable. - This is the raw data and may be keycodes rather than processed characters, - depending on the console device.</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="FUNCTIONS"><a class="permalink" href="#FUNCTIONS">FUNCTIONS</a></h1> -<p class="Pp">The following functions describe the console magic interface.</p> -<dl class="Bl-tag"> - <dt id="cn_init_magic~2"><a class="permalink" href="#cn_init_magic~2"><code class="Fn">cn_init_magic</code></a>(<var class="Fa">cnm</var>)</dt> - <dd>Initialize the console magic state pointed to by <var class="Fa">cnm</var> - to a usable state.</dd> - <dt id="cn_trap"><a class="permalink" href="#cn_trap"><code class="Fn">cn_trap</code></a>()</dt> - <dd>Trap into the kernel debugger or ROM monitor. By default this routine is - defined to be - <a class="permalink" href="#console_debugger"><code class="Fn" id="console_debugger">console_debugger</code></a>() - but can be overridden in MI header files.</dd> - <dt id="cn_isconsole"><a class="permalink" href="#cn_isconsole"><code class="Fn">cn_isconsole</code></a>(<var class="Fa">dev</var>)</dt> - <dd>Determine whether a given <var class="Fa">dev</var> is the system console. - This macro tests to see if <var class="Fa">dev</var> is the same as - <var class="Va">cn_tab->cn_dev</var> but can be overridden in MI header - files.</dd> - <dt><code class="Fn">cn_check_magic</code>(<var class="Fa">dev</var>, - <var class="Fa">k</var>, <var class="Fa">cnms</var>)</dt> - <dd>All input should be passed through - <code class="Fn">cn_check_magic</code>() so the state machine remains in a - consistent state. <code class="Fn">cn_check_magic</code>() calls - <code class="Fn">cn_isconsole</code>() with <var class="Fa">dev</var> to - determine if this is the console. If that returns true then it runs the - input value <var class="Fa">k</var> through the state machine. If the - state machine completes a match of the current console magic sequence - <code class="Fn">cn_trap</code>() is called. Some input may need to be - translated to state machine values such as the serial line - <code class="Li">BREAK</code> sequence.</dd> - <dt id="cn_destroy_magic"><a class="permalink" href="#cn_destroy_magic"><code class="Fn">cn_destroy_magic</code></a>(<var class="Fa">cnms</var>)</dt> - <dd>This should be called once what <var class="Fa">cnms</var> points to is no - longer needed.</dd> - <dt><code class="Fn">cn_set_magic</code>(<var class="Fa">magic</var>)</dt> - <dd><code class="Fn">cn_set_magic</code>() encodes a - <code class="Li">nul</code> terminated arbitrary string into values that - can be used by the state machine and installs it as the global magic - sequence. The escape sequence is character value - <code class="Li">0x27</code> and can be used to encode special values: - <p class="Pp"></p> - <div class="Bd-indent"> - <dl class="Bl-tag Bl-compact"> - <dt>0x27</dt> - <dd>The literal value <code class="Li">0x27</code>.</dd> - <dt>0x01</dt> - <dd>Serial <code class="Li">BREAK</code> sequence.</dd> - <dt id="Nul">0x02</dt> - <dd><a class="permalink" href="#Nul"><code class="Li">Nul</code></a> - character.</dd> - </dl> - </div> - <p class="Pp">Returns <code class="Li">0</code> on success or a non-zero - error value.</p> - </dd> - <dt id="cn_get_magic"><a class="permalink" href="#cn_get_magic"><code class="Fn">cn_get_magic</code></a>(<var class="Fa">magic</var>, - <var class="Fa">len</var>)</dt> - <dd>Extract the current magic sequence from the state machine and return up to - <var class="Fa">len</var> bytes of it in the buffer pointed to by - <var class="Fa">magic</var>. It uses the same encoding accepted by - <a class="permalink" href="#cn_set_magic"><code class="Fn" id="cn_set_magic">cn_set_magic</code></a>(). - Returns <code class="Li">0</code> on success or a non-zero error - value.</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">ddb(4)</a>, <a class="Xr">sysctl(8)</a>, - <a class="Xr">cons(9)</a></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1> -<p class="Pp">The <span class="Ux">NetBSD</span> console magic key sequence - management framework first appeared in <span class="Ux">NetBSD - 1.6</span>.</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1> -<p class="Pp">The <span class="Ux">NetBSD</span> console magic key sequence - management framework was designed and implemented by - <span class="An">Eduardo Horvath</span> ⟨eeh@NetBSD.org⟩.</p> -</section> -</div> -<table class="foot"> - <tr> - <td class="foot-date">July 7, 2019</td> - <td class="foot-os">NetBSD 10.1</td> - </tr> -</table> |
