Newer
Older
UbixOS / doc / html / dc / d6f / trap_8c_source.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>UbixOS: arch/i386/trap.c Source File</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../resize.js"></script>
<script type="text/javascript" src="../../navtreedata.js"></script>
<script type="text/javascript" src="../../navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">UbixOS
   &#160;<span id="projectnumber">2.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('../../',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('dc/d6f/trap_8c_source.html','../../');});
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
  <div class="headertitle">
<div class="title">trap.c</div>  </div>
</div><!--header-->
<div class="contents">
<a href="../../dc/d6f/trap_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*-</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright (c) 2002-2018 The UbixOS Project.</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * All rights reserved.</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * This was developed by Christopher W. Olsen for the UbixOS Project.</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without modification, are permitted</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * provided that the following conditions are met:</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * 1) Redistributions of source code must retain the above copyright notice, this list of</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *    conditions, the following disclaimer and the list of authors.</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * 2) Redistributions in binary form must reproduce the above copyright notice, this list of</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> *    conditions, the following disclaimer and the list of authors in the documentation and/or</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> *    other materials provided with the distribution.</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * 3) Neither the name of the UbixOS Project nor the names of its contributors may be used to</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *    endorse or promote products derived from this software without specific prior written</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> *    permission.</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS</span></div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS</span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES</span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT</span></div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="../../d5/d65/i386_2signal_8h.html">i386/signal.h</a>&gt;</span></div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="../../d7/d0b/trap_8h.html">sys/trap.h</a>&gt;</span></div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="../../d5/d4a/gdt_8h.html">sys/gdt.h</a>&gt;</span></div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="../../d7/d00/sched_8h.html">ubixos/sched.h</a>&gt;</span></div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="../../da/d28/kprintf_8h.html">lib/kprintf.h</a>&gt;</span></div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="../../d1/d21/vmm_8h.html">vmm/vmm.h</a>&gt;</span></div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="../../dc/d0c/endtask_8h.html">ubixos/endtask.h</a>&gt;</span></div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="../../dc/d6f/trap_8c.html#aefe0cea87f00996e61511690b95362aa">   37</a></span>&#160;<span class="preprocessor">#define FIRST_TSS_ENTRY 6</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="../../dc/d6f/trap_8c.html#a2967a70f08cf27f4ea79270553a45a0f">   38</a></span>&#160;<span class="preprocessor">#define VM_MASK 0x00020000</span></div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; </div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="../../dc/d6f/trap_8c.html#ad26479cc84d63a1a560eff2799d77b90">   40</a></span>&#160;<span class="preprocessor">#define store_TR(n) \</span></div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">  __asm__(&quot;str %%ax\n\t&quot; \</span></div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">          &quot;subl %2,%%eax\n\t&quot; \</span></div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">          &quot;shrl $4,%%eax&quot; \</span></div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">          :&quot;=a&quot; (n) \</span></div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">          :&quot;0&quot; (0),&quot;i&quot; (FIRST_TSS_ENTRY&lt;&lt;3))</span></div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160; </div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="../../dc/d6f/trap_8c.html#ae4ebce0c29ce64d93c66271ccfb3555c">   47</a></span>&#160;<span class="preprocessor">#define get_seg_long(seg,addr) ({ \</span></div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">  register unsigned long __res; \</span></div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">  __asm__(&quot;push %%fs;mov %%ax,%%fs;movl %%fs:%2,%%eax;pop %%fs&quot; \</span></div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">                  :&quot;=a&quot; (__res):&quot;0&quot; (seg),&quot;m&quot; (*(addr))); \</span></div>
<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">          __res;})</span></div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="../../dc/d6f/trap_8c.html#a3ce3d7cb45f8ab8e423a59da88b9c29f">   53</a></span>&#160;<span class="preprocessor">#define get_seg_byte(seg,addr) ({ \</span></div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">register char __res; \</span></div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">__asm__(&quot;push %%fs;mov %%ax,%%fs;movb %%fs:%2,%%al;pop %%fs&quot; \</span></div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">        :&quot;=a&quot; (__res):&quot;0&quot; (seg),&quot;m&quot; (*(addr))); \</span></div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">__res;})</span></div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160; </div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="../../d7/d0b/trap_8h.html#a62b4617f9a2800b1e9baf8d6f93835bd">   59</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../dc/d6f/trap_8c.html#a62b4617f9a2800b1e9baf8d6f93835bd">die_if_kernel</a>(<span class="keywordtype">char</span> *str, <span class="keyword">struct</span> <a class="code" href="../../df/d05/structtrapframe.html">trapframe</a> *regs, <span class="keywordtype">long</span> err) {</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;  <span class="keywordtype">int</span> i;</div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> esp;</div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;  <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> ss;</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *stack;</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;  esp = (<span class="keywordtype">unsigned</span> long) &amp;regs-&gt;<a class="code" href="../../df/d05/structtrapframe.html#acbc06b1642fabea71bfa8ddbba3ede44">tf_esp</a>;</div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160; </div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;  ss = 0x10; <span class="comment">//KERNEL_DS</span></div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160; </div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;  <span class="comment">//if ((regs-&gt;tf_eflags &amp; VM_MASK) || (3 &amp; regs-&gt;tf_cs) == 3)</span></div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;  <span class="comment">//  return;</span></div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;  if ((regs-&gt;<a class="code" href="../../df/d05/structtrapframe.html#a13dfa06d7f06bd0f2495fa57e5e957fd">tf_cs</a> &amp; 3) == 3) {</div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;    esp = regs-&gt;<a class="code" href="../../df/d05/structtrapframe.html#acbc06b1642fabea71bfa8ddbba3ede44">tf_esp</a>;</div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    ss = regs-&gt;<a class="code" href="../../df/d05/structtrapframe.html#abfb070fe3681a0ccc49ea3bd62b24be7">tf_ss</a>;</div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    <a class="code" href="../../da/d28/kprintf_8h.html#a20b56810edb62a6fe59917015c30848f">kprintf</a>(<span class="stringliteral">&quot;USER TASK!&quot;</span>);</div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;  }</div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;  <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    ss = 0x10;</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;  }</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160; </div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;  <a class="code" href="../../da/d28/kprintf_8h.html#a20b56810edb62a6fe59917015c30848f">kprintf</a>(<span class="stringliteral">&quot;\n%s: 0x%X:%i, CPU %d, EIP: 0x%X, EFLAGS: 0x%X\n&quot;</span>, str, regs-&gt;<a class="code" href="../../df/d05/structtrapframe.html#a9e4fa072056d86cd7516e9445822ef34">tf_err</a>, regs-&gt;<a class="code" href="../../df/d05/structtrapframe.html#ad22f14869aa03a440119420cd9d5017f">tf_trapno</a>, 0x0, regs-&gt;<a class="code" href="../../df/d05/structtrapframe.html#a5d510dabbcd29cf981b17a4c08234c3b">tf_eip</a>, regs-&gt;<a class="code" href="../../df/d05/structtrapframe.html#adafa69a2f56db6fef99c33bc17c947ba">tf_eflags</a>);</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;  <a class="code" href="../../da/d28/kprintf_8h.html#a20b56810edb62a6fe59917015c30848f">kprintf</a>(<span class="stringliteral">&quot;eax: %08lx   ebx: %08lx   ecx: %08lx   edx: %08lx\n&quot;</span>, regs-&gt;<a class="code" href="../../df/d05/structtrapframe.html#afb020a5162b2fe71f4f8fa641f7dd5f2">tf_eax</a>, regs-&gt;<a class="code" href="../../df/d05/structtrapframe.html#a86b2120d33a523294045c7b137bff664">tf_ebx</a>, regs-&gt;<a class="code" href="../../df/d05/structtrapframe.html#adb6f2caefa3b0fc4d33f7f3ed03e3a36">tf_ecx</a>, regs-&gt;<a class="code" href="../../df/d05/structtrapframe.html#a4e14d725fc1185125f65d8812737c3d4">tf_edx</a>);</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;  <a class="code" href="../../da/d28/kprintf_8h.html#a20b56810edb62a6fe59917015c30848f">kprintf</a>(<span class="stringliteral">&quot;esi: %08lx   edi: %08lx   ebp: %08lx   esp: %08lx\n&quot;</span>, regs-&gt;<a class="code" href="../../df/d05/structtrapframe.html#aadba6abdd3ec0afc7ac61ecbec42d2bc">tf_esi</a>, regs-&gt;<a class="code" href="../../df/d05/structtrapframe.html#ab859bce7daebd16272a36cfcf03004bf">tf_edi</a>, regs-&gt;<a class="code" href="../../df/d05/structtrapframe.html#a994aa3af57422c8b5b06e80baaa53ed3">tf_ebp</a>, esp);</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;  <a class="code" href="../../da/d28/kprintf_8h.html#a20b56810edb62a6fe59917015c30848f">kprintf</a>(<span class="stringliteral">&quot;cs:  0x%X ds: 0x%X  es:  0x%X fs: 0x%X gs: 0x%X ss: 0x%X\n&quot;</span>, regs-&gt;<a class="code" href="../../df/d05/structtrapframe.html#a13dfa06d7f06bd0f2495fa57e5e957fd">tf_cs</a>, regs-&gt;<a class="code" href="../../df/d05/structtrapframe.html#abcc5a426a24512b99e1dd346a10df215">tf_ds</a>, regs-&gt;<a class="code" href="../../df/d05/structtrapframe.html#a8d3e79fb11d18c0707d4d791d72abb36">tf_es</a>, regs-&gt;<a class="code" href="../../df/d05/structtrapframe.html#a0f51b8660d4ae038cf4273208dde6320">tf_fs</a>, regs-&gt;<a class="code" href="../../df/d05/structtrapframe.html#a8877cc21777e7b9feb19b2dc7440b636">tf_gs</a>, ss);</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;  <a class="code" href="../../da/d28/kprintf_8h.html#a20b56810edb62a6fe59917015c30848f">kprintf</a>(<span class="stringliteral">&quot;cr0: 0x%X, cr2: 0x%X, cr3: 0x%X, cr4: 0x%X\n&quot;</span>, rcr0(), rcr2(), rcr3(), rcr4());</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;  <a class="code" href="../../dc/d6f/trap_8c.html#ad26479cc84d63a1a560eff2799d77b90">store_TR</a>(i);</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;  <a class="code" href="../../da/d28/kprintf_8h.html#a20b56810edb62a6fe59917015c30848f">kprintf</a>(<span class="stringliteral">&quot;Process %s (pid: %i, process nr: %d, stackpage=%08lx)\nStack:&quot;</span>, <a class="code" href="../../d3/d02/armv6_2sched_8c.html#a54397bfe18d5da4d50ff03b15f540858">_current</a>-&gt;<a class="code" href="../../d1/dff/structtaskStruct.html#af9287e6221da3f32c0575426e6d7c8c5">name</a>, <a class="code" href="../../d3/d02/armv6_2sched_8c.html#a54397bfe18d5da4d50ff03b15f540858">_current</a>-&gt;<a class="code" href="../../d1/dff/structtaskStruct.html#a30966587a60db6b40c8be6c387e11d81">id</a>, 0xffff &amp; i, esp);</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160; </div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;  stack = (<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> *) esp;</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160; </div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;  <span class="keywordflow">for</span> (i = 0; i &lt; 16; i++) {</div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="keywordflow">if</span> (i &amp;&amp; ((i % 8) == 0))</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;      <a class="code" href="../../da/d28/kprintf_8h.html#a20b56810edb62a6fe59917015c30848f">kprintf</a>(<span class="stringliteral">&quot;\n      &quot;</span>);</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <a class="code" href="../../da/d28/kprintf_8h.html#a20b56810edb62a6fe59917015c30848f">kprintf</a>(<span class="stringliteral">&quot;%08lx &quot;</span>, <a class="code" href="../../dc/d6f/trap_8c.html#ae4ebce0c29ce64d93c66271ccfb3555c">get_seg_long</a>(ss, stack++));</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;  }</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160; </div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;  <a class="code" href="../../dc/d0c/endtask_8h.html#a152c1859ada097cc21071f471bfa2e67">endTask</a>(<a class="code" href="../../d3/d02/armv6_2sched_8c.html#a54397bfe18d5da4d50ff03b15f540858">_current</a>-&gt;<a class="code" href="../../d1/dff/structtaskStruct.html#a30966587a60db6b40c8be6c387e11d81">id</a>);</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;}</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="../../d7/d0b/trap_8h.html#a50e545f26a0fed346d9d0ed1d585cbfe">  101</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="../../dc/d6f/trap_8c.html#a5f98f53372b6ed5127fb064d1ede1743">trap</a>(<span class="keyword">struct</span> <a class="code" href="../../df/d05/structtrapframe.html">trapframe</a> *frame) {</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;  <a class="code" href="../../d0/d27/include_2sys_2types_8h.html#ac319c165d52643e43249fe003e18bdf3">u_int</a> trap_code;</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;  <a class="code" href="../../d0/d27/include_2sys_2types_8h.html#ac319c165d52643e43249fe003e18bdf3">u_int</a> cr2 = 0;</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160; </div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;  trap_code = frame-&gt;<a class="code" href="../../df/d05/structtrapframe.html#ad22f14869aa03a440119420cd9d5017f">tf_trapno</a>;</div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160; </div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;  cr2 = rcr2();</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;  <a class="code" href="../../da/d28/kprintf_8h.html#a20b56810edb62a6fe59917015c30848f">kprintf</a>(<span class="stringliteral">&quot;CR2: 0x%X(0x%X)[0x%X]&quot;</span>, cr2, <a class="code" href="../../d3/d02/armv6_2sched_8c.html#a54397bfe18d5da4d50ff03b15f540858">_current</a>-&gt;<a class="code" href="../../d1/dff/structtaskStruct.html#a4c8accd7c0d5bb5ce426dc982bfc8519">tss</a>.<a class="code" href="../../d1/d27/structtssStruct.html#a3e758f2138799d63fc803f7e4db4f5b4">eip</a>, <a class="code" href="../../d3/d02/armv6_2sched_8c.html#a54397bfe18d5da4d50ff03b15f540858">_current</a>-&gt;<a class="code" href="../../d1/dff/structtaskStruct.html#a4c8accd7c0d5bb5ce426dc982bfc8519">tss</a>.<a class="code" href="../../d1/d27/structtssStruct.html#ad7b6a367e1c2a38e1ee6c8e5dad955f7">ldt</a>);</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="../../d3/d02/armv6_2sched_8c.html#a54397bfe18d5da4d50ff03b15f540858">_current</a>-&gt;<a class="code" href="../../d1/dff/structtaskStruct.html#a30966587a60db6b40c8be6c387e11d81">id</a> == 7)</div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;    <span class="keywordflow">while</span> (1)</div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;      <span class="keyword">asm</span>(<span class="stringliteral">&quot;nop&quot;</span>);</div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160; </div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;  <span class="keywordflow">if</span> ((frame-&gt;<a class="code" href="../../df/d05/structtrapframe.html#adafa69a2f56db6fef99c33bc17c947ba">tf_eflags</a> &amp; <a class="code" href="../../d6/d35/i386_2cpu_8h.html#a98c39d27d67812ede94f5038a3cef419">PSL_I</a>) == 0) {</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="../../d5/d4a/gdt_8h.html#a6f509410b22ba7d33df9c9d6c8c6e9a5">SEL_GET_PL</a>(frame-&gt;<a class="code" href="../../df/d05/structtrapframe.html#a13dfa06d7f06bd0f2495fa57e5e957fd">tf_cs</a>) == <a class="code" href="../../d5/d4a/gdt_8h.html#ace58b790221d5655a214dadd230a9af2">SEL_PL_USER</a> || (frame-&gt;<a class="code" href="../../df/d05/structtrapframe.html#adafa69a2f56db6fef99c33bc17c947ba">tf_eflags</a> &amp; <a class="code" href="../../d6/d35/i386_2cpu_8h.html#aa3631c6b312a0753c8d31a74858d812f">PSL_VM</a>)) {</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;      <a class="code" href="../../dc/d94/armv6_2kpanic_8c.html#adb9a182aa071791a306163d50d653deb">kpanic</a>(<span class="stringliteral">&quot;INT OFF! USER&quot;</span>);</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;      <a class="code" href="../../dc/d6f/trap_8c.html#a62b4617f9a2800b1e9baf8d6f93835bd">die_if_kernel</a>(<span class="stringliteral">&quot;TEST&quot;</span>, frame, 0x100);</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;    }</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;      <a class="code" href="../../dc/d94/armv6_2kpanic_8c.html#adb9a182aa071791a306163d50d653deb">kpanic</a>(<span class="stringliteral">&quot;INT OFF! KERN[0x%X]&quot;</span>, trap_code);</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;      <a class="code" href="../../dc/d6f/trap_8c.html#a62b4617f9a2800b1e9baf8d6f93835bd">die_if_kernel</a>(<span class="stringliteral">&quot;TEST&quot;</span>, frame, 0x200);</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;    }</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;  }</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; </div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;  <a class="code" href="../../da/d28/kprintf_8h.html#a20b56810edb62a6fe59917015c30848f">kprintf</a>(<span class="stringliteral">&quot;trap_code: %i(0x%X), EIP: 0x%X, CR2: 0x%X\n&quot;</span>, frame-&gt;<a class="code" href="../../df/d05/structtrapframe.html#ad22f14869aa03a440119420cd9d5017f">tf_trapno</a>, frame-&gt;<a class="code" href="../../df/d05/structtrapframe.html#ad22f14869aa03a440119420cd9d5017f">tf_trapno</a>, frame-&gt;<a class="code" href="../../df/d05/structtrapframe.html#a5d510dabbcd29cf981b17a4c08234c3b">tf_eip</a>, cr2);</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;  <span class="keywordflow">if</span> (frame-&gt;<a class="code" href="../../df/d05/structtrapframe.html#ad22f14869aa03a440119420cd9d5017f">tf_trapno</a> == 0xc) {</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    <a class="code" href="../../d4/df4/paging_8h.html#aa1e1475b5bc5c935c2dfc9907c95bf96">vmm_pageFault</a>(frame, cr2);</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;  }</div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;  <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    <a class="code" href="../../dc/d94/armv6_2kpanic_8c.html#adb9a182aa071791a306163d50d653deb">kpanic</a>(<span class="stringliteral">&quot;TRAPCODE&quot;</span>);</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    <a class="code" href="../../dc/d6f/trap_8c.html#a62b4617f9a2800b1e9baf8d6f93835bd">die_if_kernel</a>(<span class="stringliteral">&quot;trapCode&quot;</span>, frame, frame-&gt;<a class="code" href="../../df/d05/structtrapframe.html#ad22f14869aa03a440119420cd9d5017f">tf_trapno</a>);</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;    <a class="code" href="../../dc/d0c/endtask_8h.html#a152c1859ada097cc21071f471bfa2e67">endTask</a>(<a class="code" href="../../d3/d02/armv6_2sched_8c.html#a54397bfe18d5da4d50ff03b15f540858">_current</a>-&gt;<a class="code" href="../../d1/dff/structtaskStruct.html#a30966587a60db6b40c8be6c387e11d81">id</a>);</div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <a class="code" href="../../d3/d02/armv6_2sched_8c.html#a08933fe6d593a1c78b9080359f15a0b7">sched_yield</a>();</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;  }</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;}</div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="astructtrapframe_html_a8877cc21777e7b9feb19b2dc7440b636"><div class="ttname"><a href="../../df/d05/structtrapframe.html#a8877cc21777e7b9feb19b2dc7440b636">trapframe::tf_gs</a></div><div class="ttdeci">int tf_gs</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d0b/trap_8h_source.html#l00035">trap.h:35</a></div></div>
<div class="ttc" id="astructtrapframe_html_abcc5a426a24512b99e1dd346a10df215"><div class="ttname"><a href="../../df/d05/structtrapframe.html#abcc5a426a24512b99e1dd346a10df215">trapframe::tf_ds</a></div><div class="ttdeci">int tf_ds</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d0b/trap_8h_source.html#l00038">trap.h:38</a></div></div>
<div class="ttc" id="astructtrapframe_html_a5d510dabbcd29cf981b17a4c08234c3b"><div class="ttname"><a href="../../df/d05/structtrapframe.html#a5d510dabbcd29cf981b17a4c08234c3b">trapframe::tf_eip</a></div><div class="ttdeci">int tf_eip</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d0b/trap_8h_source.html#l00050">trap.h:50</a></div></div>
<div class="ttc" id="agdt_8h_html"><div class="ttname"><a href="../../d5/d4a/gdt_8h.html">gdt.h</a></div></div>
<div class="ttc" id="astructtssStruct_html_a3e758f2138799d63fc803f7e4db4f5b4"><div class="ttname"><a href="../../d1/d27/structtssStruct.html#a3e758f2138799d63fc803f7e4db4f5b4">tssStruct::eip</a></div><div class="ttdeci">long eip</div><div class="ttdef"><b>Definition:</b> <a href="../../de/d9a/tss_8h_source.html#l00047">tss.h:47</a></div></div>
<div class="ttc" id="atrap_8h_html"><div class="ttname"><a href="../../d7/d0b/trap_8h.html">trap.h</a></div></div>
<div class="ttc" id="astructtssStruct_html_ad7b6a367e1c2a38e1ee6c8e5dad955f7"><div class="ttname"><a href="../../d1/d27/structtssStruct.html#ad7b6a367e1c2a38e1ee6c8e5dad955f7">tssStruct::ldt</a></div><div class="ttdeci">short ldt</div><div class="ttdef"><b>Definition:</b> <a href="../../de/d9a/tss_8h_source.html#l00066">tss.h:66</a></div></div>
<div class="ttc" id="astructtrapframe_html_aadba6abdd3ec0afc7ac61ecbec42d2bc"><div class="ttname"><a href="../../df/d05/structtrapframe.html#aadba6abdd3ec0afc7ac61ecbec42d2bc">trapframe::tf_esi</a></div><div class="ttdeci">int tf_esi</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d0b/trap_8h_source.html#l00040">trap.h:40</a></div></div>
<div class="ttc" id="avmm_8h_html"><div class="ttname"><a href="../../d1/d21/vmm_8h.html">vmm.h</a></div></div>
<div class="ttc" id="astructtrapframe_html_a994aa3af57422c8b5b06e80baaa53ed3"><div class="ttname"><a href="../../df/d05/structtrapframe.html#a994aa3af57422c8b5b06e80baaa53ed3">trapframe::tf_ebp</a></div><div class="ttdeci">int tf_ebp</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d0b/trap_8h_source.html#l00041">trap.h:41</a></div></div>
<div class="ttc" id="aendtask_8h_html"><div class="ttname"><a href="../../dc/d0c/endtask_8h.html">endtask.h</a></div></div>
<div class="ttc" id="astructtaskStruct_html_a4c8accd7c0d5bb5ce426dc982bfc8519"><div class="ttname"><a href="../../d1/dff/structtaskStruct.html#a4c8accd7c0d5bb5ce426dc982bfc8519">taskStruct::tss</a></div><div class="ttdeci">struct tssStruct tss</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d00/sched_8h_source.html#l00067">sched.h:67</a></div></div>
<div class="ttc" id="agdt_8h_html_ace58b790221d5655a214dadd230a9af2"><div class="ttname"><a href="../../d5/d4a/gdt_8h.html#ace58b790221d5655a214dadd230a9af2">SEL_PL_USER</a></div><div class="ttdeci">#define SEL_PL_USER</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/d4a/gdt_8h_source.html#l00037">gdt.h:37</a></div></div>
<div class="ttc" id="asched_8h_html"><div class="ttname"><a href="../../d7/d00/sched_8h.html">sched.h</a></div></div>
<div class="ttc" id="aarmv6_2kpanic_8c_html_adb9a182aa071791a306163d50d653deb"><div class="ttname"><a href="../../dc/d94/armv6_2kpanic_8c.html#adb9a182aa071791a306163d50d653deb">kpanic</a></div><div class="ttdeci">void kpanic(const char *fmt,...)</div><div class="ttdoc">print panic message and halt system</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/d94/armv6_2kpanic_8c_source.html#l00041">kpanic.c:41</a></div></div>
<div class="ttc" id="astructtrapframe_html_adafa69a2f56db6fef99c33bc17c947ba"><div class="ttname"><a href="../../df/d05/structtrapframe.html#adafa69a2f56db6fef99c33bc17c947ba">trapframe::tf_eflags</a></div><div class="ttdeci">int tf_eflags</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d0b/trap_8h_source.html#l00052">trap.h:52</a></div></div>
<div class="ttc" id="astructtrapframe_html_ad22f14869aa03a440119420cd9d5017f"><div class="ttname"><a href="../../df/d05/structtrapframe.html#ad22f14869aa03a440119420cd9d5017f">trapframe::tf_trapno</a></div><div class="ttdeci">int tf_trapno</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d0b/trap_8h_source.html#l00047">trap.h:47</a></div></div>
<div class="ttc" id="astructtrapframe_html_a8d3e79fb11d18c0707d4d791d72abb36"><div class="ttname"><a href="../../df/d05/structtrapframe.html#a8d3e79fb11d18c0707d4d791d72abb36">trapframe::tf_es</a></div><div class="ttdeci">int tf_es</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d0b/trap_8h_source.html#l00037">trap.h:37</a></div></div>
<div class="ttc" id="astructtaskStruct_html_a30966587a60db6b40c8be6c387e11d81"><div class="ttname"><a href="../../d1/dff/structtaskStruct.html#a30966587a60db6b40c8be6c387e11d81">taskStruct::id</a></div><div class="ttdeci">pidType id</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d00/sched_8h_source.html#l00063">sched.h:63</a></div></div>
<div class="ttc" id="astructtrapframe_html_a9e4fa072056d86cd7516e9445822ef34"><div class="ttname"><a href="../../df/d05/structtrapframe.html#a9e4fa072056d86cd7516e9445822ef34">trapframe::tf_err</a></div><div class="ttdeci">int tf_err</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d0b/trap_8h_source.html#l00049">trap.h:49</a></div></div>
<div class="ttc" id="astructtrapframe_html_afb020a5162b2fe71f4f8fa641f7dd5f2"><div class="ttname"><a href="../../df/d05/structtrapframe.html#afb020a5162b2fe71f4f8fa641f7dd5f2">trapframe::tf_eax</a></div><div class="ttdeci">int tf_eax</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d0b/trap_8h_source.html#l00046">trap.h:46</a></div></div>
<div class="ttc" id="akprintf_8h_html"><div class="ttname"><a href="../../da/d28/kprintf_8h.html">kprintf.h</a></div></div>
<div class="ttc" id="agdt_8h_html_a6f509410b22ba7d33df9c9d6c8c6e9a5"><div class="ttname"><a href="../../d5/d4a/gdt_8h.html#a6f509410b22ba7d33df9c9d6c8c6e9a5">SEL_GET_PL</a></div><div class="ttdeci">#define SEL_GET_PL(sel)</div><div class="ttdef"><b>Definition:</b> <a href="../../d5/d4a/gdt_8h_source.html#l00032">gdt.h:32</a></div></div>
<div class="ttc" id="apaging_8h_html_aa1e1475b5bc5c935c2dfc9907c95bf96"><div class="ttname"><a href="../../d4/df4/paging_8h.html#aa1e1475b5bc5c935c2dfc9907c95bf96">vmm_pageFault</a></div><div class="ttdeci">void vmm_pageFault(struct trapframe *, uint32_t)</div><div class="ttdef"><b>Definition:</b> <a href="../../d4/d48/pagefault_8c_source.html#l00053">pagefault.c:53</a></div></div>
<div class="ttc" id="astructtrapframe_html_a0f51b8660d4ae038cf4273208dde6320"><div class="ttname"><a href="../../df/d05/structtrapframe.html#a0f51b8660d4ae038cf4273208dde6320">trapframe::tf_fs</a></div><div class="ttdeci">int tf_fs</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d0b/trap_8h_source.html#l00036">trap.h:36</a></div></div>
<div class="ttc" id="ai386_2cpu_8h_html_a98c39d27d67812ede94f5038a3cef419"><div class="ttname"><a href="../../d6/d35/i386_2cpu_8h.html#a98c39d27d67812ede94f5038a3cef419">PSL_I</a></div><div class="ttdeci">#define PSL_I</div><div class="ttdef"><b>Definition:</b> <a href="../../d6/d35/i386_2cpu_8h_source.html#l00043">cpu.h:43</a></div></div>
<div class="ttc" id="astructtrapframe_html_adb6f2caefa3b0fc4d33f7f3ed03e3a36"><div class="ttname"><a href="../../df/d05/structtrapframe.html#adb6f2caefa3b0fc4d33f7f3ed03e3a36">trapframe::tf_ecx</a></div><div class="ttdeci">int tf_ecx</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d0b/trap_8h_source.html#l00045">trap.h:45</a></div></div>
<div class="ttc" id="astructtrapframe_html"><div class="ttname"><a href="../../df/d05/structtrapframe.html">trapframe</a></div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d0b/trap_8h_source.html#l00034">trap.h:34</a></div></div>
<div class="ttc" id="aendtask_8h_html_a152c1859ada097cc21071f471bfa2e67"><div class="ttname"><a href="../../dc/d0c/endtask_8h.html#a152c1859ada097cc21071f471bfa2e67">endTask</a></div><div class="ttdeci">void endTask(pidType)</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/d86/endtask_8c_source.html#l00044">endtask.c:44</a></div></div>
<div class="ttc" id="atrap_8c_html_a5f98f53372b6ed5127fb064d1ede1743"><div class="ttname"><a href="../../dc/d6f/trap_8c.html#a5f98f53372b6ed5127fb064d1ede1743">trap</a></div><div class="ttdeci">void trap(struct trapframe *frame)</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/d6f/trap_8c_source.html#l00101">trap.c:101</a></div></div>
<div class="ttc" id="astructtaskStruct_html_af9287e6221da3f32c0575426e6d7c8c5"><div class="ttname"><a href="../../d1/dff/structtaskStruct.html#af9287e6221da3f32c0575426e6d7c8c5">taskStruct::name</a></div><div class="ttdeci">char name[256]</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d00/sched_8h_source.html#l00064">sched.h:64</a></div></div>
<div class="ttc" id="atrap_8c_html_ad26479cc84d63a1a560eff2799d77b90"><div class="ttname"><a href="../../dc/d6f/trap_8c.html#ad26479cc84d63a1a560eff2799d77b90">store_TR</a></div><div class="ttdeci">#define store_TR(n)</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/d6f/trap_8c_source.html#l00040">trap.c:40</a></div></div>
<div class="ttc" id="aarmv6_2sched_8c_html_a54397bfe18d5da4d50ff03b15f540858"><div class="ttname"><a href="../../d3/d02/armv6_2sched_8c.html#a54397bfe18d5da4d50ff03b15f540858">_current</a></div><div class="ttdeci">kTask_t * _current</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d02/armv6_2sched_8c_source.html#l00050">sched.c:50</a></div></div>
<div class="ttc" id="atrap_8c_html_a62b4617f9a2800b1e9baf8d6f93835bd"><div class="ttname"><a href="../../dc/d6f/trap_8c.html#a62b4617f9a2800b1e9baf8d6f93835bd">die_if_kernel</a></div><div class="ttdeci">void die_if_kernel(char *str, struct trapframe *regs, long err)</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/d6f/trap_8c_source.html#l00059">trap.c:59</a></div></div>
<div class="ttc" id="astructtrapframe_html_abfb070fe3681a0ccc49ea3bd62b24be7"><div class="ttname"><a href="../../df/d05/structtrapframe.html#abfb070fe3681a0ccc49ea3bd62b24be7">trapframe::tf_ss</a></div><div class="ttdeci">int tf_ss</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d0b/trap_8h_source.html#l00055">trap.h:55</a></div></div>
<div class="ttc" id="astructtrapframe_html_acbc06b1642fabea71bfa8ddbba3ede44"><div class="ttname"><a href="../../df/d05/structtrapframe.html#acbc06b1642fabea71bfa8ddbba3ede44">trapframe::tf_esp</a></div><div class="ttdeci">int tf_esp</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d0b/trap_8h_source.html#l00054">trap.h:54</a></div></div>
<div class="ttc" id="astructtrapframe_html_a4e14d725fc1185125f65d8812737c3d4"><div class="ttname"><a href="../../df/d05/structtrapframe.html#a4e14d725fc1185125f65d8812737c3d4">trapframe::tf_edx</a></div><div class="ttdeci">int tf_edx</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d0b/trap_8h_source.html#l00044">trap.h:44</a></div></div>
<div class="ttc" id="akprintf_8h_html_a20b56810edb62a6fe59917015c30848f"><div class="ttname"><a href="../../da/d28/kprintf_8h.html#a20b56810edb62a6fe59917015c30848f">kprintf</a></div><div class="ttdeci">int kprintf(const char *,...)</div><div class="ttdef"><b>Definition:</b> <a href="../../df/d87/kprintf_8c_source.html#l00259">kprintf.c:259</a></div></div>
<div class="ttc" id="ai386_2cpu_8h_html_aa3631c6b312a0753c8d31a74858d812f"><div class="ttname"><a href="../../d6/d35/i386_2cpu_8h.html#aa3631c6b312a0753c8d31a74858d812f">PSL_VM</a></div><div class="ttdeci">#define PSL_VM</div><div class="ttdef"><b>Definition:</b> <a href="../../d6/d35/i386_2cpu_8h_source.html#l00049">cpu.h:49</a></div></div>
<div class="ttc" id="ainclude_2sys_2types_8h_html_ac319c165d52643e43249fe003e18bdf3"><div class="ttname"><a href="../../d0/d27/include_2sys_2types_8h.html#ac319c165d52643e43249fe003e18bdf3">u_int</a></div><div class="ttdeci">unsigned int u_int</div><div class="ttdef"><b>Definition:</b> <a href="../../d0/d27/include_2sys_2types_8h_source.html#l00072">types.h:72</a></div></div>
<div class="ttc" id="astructtrapframe_html_ab859bce7daebd16272a36cfcf03004bf"><div class="ttname"><a href="../../df/d05/structtrapframe.html#ab859bce7daebd16272a36cfcf03004bf">trapframe::tf_edi</a></div><div class="ttdeci">int tf_edi</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d0b/trap_8h_source.html#l00039">trap.h:39</a></div></div>
<div class="ttc" id="atrap_8c_html_ae4ebce0c29ce64d93c66271ccfb3555c"><div class="ttname"><a href="../../dc/d6f/trap_8c.html#ae4ebce0c29ce64d93c66271ccfb3555c">get_seg_long</a></div><div class="ttdeci">#define get_seg_long(seg, addr)</div><div class="ttdef"><b>Definition:</b> <a href="../../dc/d6f/trap_8c_source.html#l00047">trap.c:47</a></div></div>
<div class="ttc" id="astructtrapframe_html_a13dfa06d7f06bd0f2495fa57e5e957fd"><div class="ttname"><a href="../../df/d05/structtrapframe.html#a13dfa06d7f06bd0f2495fa57e5e957fd">trapframe::tf_cs</a></div><div class="ttdeci">int tf_cs</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d0b/trap_8h_source.html#l00051">trap.h:51</a></div></div>
<div class="ttc" id="ai386_2signal_8h_html"><div class="ttname"><a href="../../d5/d65/i386_2signal_8h.html">signal.h</a></div></div>
<div class="ttc" id="aarmv6_2sched_8c_html_a08933fe6d593a1c78b9080359f15a0b7"><div class="ttname"><a href="../../d3/d02/armv6_2sched_8c.html#a08933fe6d593a1c78b9080359f15a0b7">sched_yield</a></div><div class="ttdeci">void sched_yield()</div><div class="ttdef"><b>Definition:</b> <a href="../../d3/d02/armv6_2sched_8c_source.html#l00244">sched.c:244</a></div></div>
<div class="ttc" id="astructtrapframe_html_a86b2120d33a523294045c7b137bff664"><div class="ttname"><a href="../../df/d05/structtrapframe.html#a86b2120d33a523294045c7b137bff664">trapframe::tf_ebx</a></div><div class="ttdeci">int tf_ebx</div><div class="ttdef"><b>Definition:</b> <a href="../../d7/d0b/trap_8h_source.html#l00043">trap.h:43</a></div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="../../dir_ea9599923402ca8ab47fc3e495999dea.html">arch</a></li><li class="navelem"><a class="el" href="../../dir_e3f47f52fcd882b8ed14fae2e3a37090.html">i386</a></li><li class="navelem"><a class="el" href="../../dc/d6f/trap_8c.html">trap.c</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="../../doxygen.png" alt="doxygen"/></a> 1.8.16 </li>
  </ul>
</div>
</body>
</html>