Newer
Older
UbixOS / doc / html / smp_8c.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>UbixOS V2: src/sys/kernel/smp.c File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
  <ul>
    <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
    <li id="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="dirs.html"><span>Directories</span></a></li>
    <li>
      <form action="search.php" method="get">
        <table cellspacing="0" cellpadding="0" border="0">
          <tr>
            <td><label>&nbsp;<u>S</u>earch&nbsp;for&nbsp;</label></td>
            <td><input type="text" name="query" value="" size="20" accesskey="s"/></td>
          </tr>
        </table>
      </form>
    </li>
  </ul></div>
<div class="tabs">
  <ul>
    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
    <li><a href="globals.html"><span>Globals</span></a></li>
  </ul></div>
<div class="nav">
<a class="el" href="dir_897b6a2d7bab147dd1db58381aad3984.html">src</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_832905b1f7f5feaf61a306b40c0ac817.html">sys</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_7efffd2b1fae7bb6f2aa85845c863494.html">kernel</a></div>
<h1>smp.c File Reference</h1><code>#include &lt;<a class="el" href="smp_8h-source.html">ubixos/smp.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="spinlock_8h-source.html">ubixos/spinlock.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="kpanic_8h-source.html">ubixos/kpanic.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="kprintf_8h-source.html">lib/kprintf.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="lib_2string_8h-source.html">lib/string.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="io_8h-source.html">sys/io.h</a>&gt;</code><br>

<p>
Include dependency graph for smp.c:<p><center><img src="smp_8c__incl.png" border="0" usemap="#src/sys/kernel/smp.c_map" alt=""></center>
<map name="src/sys/kernel/smp.c_map">
<area href="smp_8h.html" shape="rect" coords="227,6,339,32" alt="">
<area href="spinlock_8h.html" shape="rect" coords="214,56,352,83" alt="">
<area href="kpanic_8h.html" shape="rect" coords="219,107,347,134" alt="">
<area href="kprintf_8h.html" shape="rect" coords="234,158,332,184" alt="">
<area href="lib_2string_8h.html" shape="rect" coords="236,208,330,235" alt="">
<area href="io_8h.html" shape="rect" coords="247,259,319,286" alt="">
<area href="types_8h.html" shape="rect" coords="402,107,522,134" alt="">
<area href="__types_8h.html" shape="rect" coords="572,107,676,134" alt="">
</map>

<p>
<a href="smp_8c-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgdt__descr.html">gdt_descr</a></td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#e4dc28abba9d6b02a779ca1b8ffecd98">ap_trampoline_end</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#f4f760b6cb0a871253009bb20d70657d">ap_trampoline_start</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#70e557cb01aee676855cee05b0769288">apicMagic</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#98935271c68a482c194d4c784d814ddd">apicRead</a> (address)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#ab4a831897afae67446bf78c88123749">apicWrite</a> (unsigned int address, unsigned int data)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#8325315e2d1f564d9777ebd849c3296c">asm</a> (&quot;.globl cpuid            \n&quot;&quot;cpuid:                  \n&quot;&quot;  pushl   %<a class="el" href="ap-boot_8S.html#1c50f544178eb7e0af39bd078c5a986f">ebx</a>          \n&quot;&quot;  pushl   %<a class="el" href="start_8S.html#f701de0cc799320aaf54092dda7b54d2">edi</a>          \n&quot;&quot;  movl    12(%<a class="el" href="start_8S.html#fba1069006eb01caca2f78a33f379594">esp</a>),%<a class="el" href="strlen_8S.html#0d9c430c9a9cb6a66e192946a5554e3b">eax</a> \n&quot;&quot;  movl    16(%<a class="el" href="start_8S.html#fba1069006eb01caca2f78a33f379594">esp</a>),%<a class="el" href="start_8S.html#f701de0cc799320aaf54092dda7b54d2">edi</a> \n&quot;&quot;  cpuid                 \n&quot;&quot;  movl    %<a class="el" href="strlen_8S.html#0d9c430c9a9cb6a66e192946a5554e3b">eax</a>,0(%<a class="el" href="start_8S.html#f701de0cc799320aaf54092dda7b54d2">edi</a>)  \n&quot;&quot;  movl    %<a class="el" href="ap-boot_8S.html#1c50f544178eb7e0af39bd078c5a986f">ebx</a>,4(%<a class="el" href="start_8S.html#f701de0cc799320aaf54092dda7b54d2">edi</a>)  \n&quot;&quot;  movl    %ecx,8(%<a class="el" href="start_8S.html#f701de0cc799320aaf54092dda7b54d2">edi</a>)  \n&quot;&quot;  movl    %<a class="el" href="timer_8S.html#aa1f83238047e62298e33bed5682d71c">edx</a>,12(%<a class="el" href="start_8S.html#f701de0cc799320aaf54092dda7b54d2">edi</a>) \n&quot;&quot;  popl    %<a class="el" href="start_8S.html#f701de0cc799320aaf54092dda7b54d2">edi</a>          \n&quot;&quot;  popl    %<a class="el" href="ap-boot_8S.html#1c50f544178eb7e0af39bd078c5a986f">ebx</a>          \n&quot;&quot;  ret                   \n&quot;)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#c7cb5b4b2fbc61966a6dfc8044a7b800">c_ap_boot</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#66c37e11ba7abfcafc63146553b2cd16">cpu0_thread</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#5e82e9f1e0fec1ac5db2ebd16652a043">cpu1_thread</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#cfec913213194039ad31b2602bf8af4f">cpu2_thread</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#13735e9644e3c9a01bfc7785b31691ab">cpu3_thread</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#c89d80447fce7d622c7dfc6620039600">cpuidDetect</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#452f210aee65a2a30cbc5cb8923a9881">cpuInfo</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#b9f1e8692e06eb164641f50aa4d7aed6">GDT_fixer</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static __inline__ <a class="el" href="types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#0f6e384fb3ad325aa2406af715ff341d">getDr3</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#abe8182d15984977e87831f32527ff78">getEflags</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#0844b0ab23ee41899fc5d622078d20d6">kernel_function</a> (void)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static __inline__ void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#5607ecf06fd77905053dbb15eaf0ff6b">setDr3</a> (void *dr3)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#133d6aaf4635e4585ee54a0438d0bf36">setEflags</a> (<a class="el" href="types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> eflags)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#ce31619db109aa8b20a916d48969928d">smpInit</a> ()</td></tr>

<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="spinlock_8h.html#a240e9404b4ede1e0d714610080d1176">spinLock_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#71085af55092ee7b25d4bd346169ce89">bkl</a> = SPIN_LOCK_INITIALIZER</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structcpuinfo__t.html">cpuinfo_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#963def6fffd92dece6dd156abbcf4fa0">cpuinfo</a> [8]</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="spinlock_8h.html#a240e9404b4ede1e0d714610080d1176">spinLock_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#d5f78a3dc61e0ca7819dc3d5d5794419">cpuInfoLock</a> = SPIN_LOCK_INITIALIZER</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#29c1aa6c61dfac505825b96920fa447d">cpus</a> = 0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="spinlock_8h.html#a240e9404b4ede1e0d714610080d1176">spinLock_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#9a5fd10dce49f2fe147d346b8de71902">initSpinLock</a> = SPIN_LOCK_INITIALIZER</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="smp_8c.html#5f2d0854cc28b4f2ef16a03061d9d237">vram</a> = (<a class="el" href="types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a> *)0xB8000</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="e4dc28abba9d6b02a779ca1b8ffecd98"></a><!-- doxytag: member="smp.c::ap_trampoline_end" ref="e4dc28abba9d6b02a779ca1b8ffecd98" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ap_trampoline_end           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Referenced by <a class="el" href="smp_8c-source.html#l00234">apicMagic()</a>.
</div>
</div><p>
<a class="anchor" name="f4f760b6cb0a871253009bb20d70657d"></a><!-- doxytag: member="smp.c::ap_trampoline_start" ref="f4f760b6cb0a871253009bb20d70657d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ap_trampoline_start           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="70e557cb01aee676855cee05b0769288"></a><!-- doxytag: member="smp.c::apicMagic" ref="70e557cb01aee676855cee05b0769288" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void apicMagic           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00234">234</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
<p>
References <a class="el" href="smp_8c.html#e4dc28abba9d6b02a779ca1b8ffecd98">ap_trampoline_end()</a>, <a class="el" href="ap-boot_8S-source.html#l00006">ap_trampoline_start</a>, <a class="el" href="smp_8c-source.html#l00045">apicRead()</a>, <a class="el" href="smp_8c-source.html#l00049">apicWrite()</a>, <a class="el" href="kprintf_8c-source.html#l00038">kprintf()</a>, and <a class="el" href="lib_2string_8h.html#e33b18edb618c656b9b795b9fce2316c">memcpy()</a>.
<p>
Referenced by <a class="el" href="smp_8c-source.html#l00161">smpInit()</a>.
<p>
Here is the call graph for this function:<p><center><img src="smp_8c_70e557cb01aee676855cee05b0769288_cgraph.png" border="0" usemap="#smp_8c_70e557cb01aee676855cee05b0769288_cgraph_map" alt=""></center>
<map name="smp_8c_70e557cb01aee676855cee05b0769288_cgraph_map">
<area href="smp_8c.html#e4dc28abba9d6b02a779ca1b8ffecd98" shape="rect" coords="144,5,296,32" alt="">
<area href="smp_8c.html#98935271c68a482c194d4c784d814ddd" shape="rect" coords="179,56,261,83" alt="">
<area href="smp_8c.html#ab4a831897afae67446bf78c88123749" shape="rect" coords="177,107,263,133" alt="">
<area href="kprint_8h.html#b2761bdf0cca73ad0fb5880895210cd8" shape="rect" coords="187,157,253,184" alt="">
<area href="lib_2string_8h.html#e33b18edb618c656b9b795b9fce2316c" shape="rect" coords="180,208,260,235" alt="">
</map>

</div>
</div><p>
<a class="anchor" name="98935271c68a482c194d4c784d814ddd"></a><!-- doxytag: member="smp.c::apicRead" ref="98935271c68a482c194d4c784d814ddd" args="(address)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static unsigned int apicRead           </td>
          <td>(</td>
          <td class="paramtype">address&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00045">45</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
<p>
Referenced by <a class="el" href="smp_8c-source.html#l00234">apicMagic()</a>, and <a class="el" href="smp_8c-source.html#l00182">cpuInfo()</a>.
</div>
</div><p>
<a class="anchor" name="ab4a831897afae67446bf78c88123749"></a><!-- doxytag: member="smp.c::apicWrite" ref="ab4a831897afae67446bf78c88123749" args="(unsigned int address, unsigned int data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void apicWrite           </td>
          <td>(</td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00049">49</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
<p>
Referenced by <a class="el" href="smp_8c-source.html#l00234">apicMagic()</a>.
</div>
</div><p>
<a class="anchor" name="8325315e2d1f564d9777ebd849c3296c"></a><!-- doxytag: member="smp.c::asm" ref="8325315e2d1f564d9777ebd849c3296c" args="(&quot;.globl cpuid            \n&quot;&quot;cpuid:                  \n&quot;&quot;  pushl   %ebx          \n&quot;&quot;  pushl   %edi          \n&quot;&quot;  movl    12(%esp),%eax \n&quot;&quot;  movl    16(%esp),%edi \n&quot;&quot;  cpuid                 \n&quot;&quot;  movl    %eax,0(%edi)  \n&quot;&quot;  movl    %ebx,4(%edi)  \n&quot;&quot;  movl    %ecx,8(%edi)  \n&quot;&quot;  movl    %edx,12(%edi) \n&quot;&quot;  popl    %edi          \n&quot;&quot;  popl    %ebx          \n&quot;&quot;  ret                   \n&quot;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">asm           </td>
          <td>(</td>
          <td class="paramtype">&quot;.globl cpuid \n&quot;&quot;cpuid: \n&quot;&quot; pushl %<a class="el" href="ap-boot_8S.html#1c50f544178eb7e0af39bd078c5a986f">ebx</a> \n&quot;&quot; pushl %<a class="el" href="start_8S.html#f701de0cc799320aaf54092dda7b54d2">edi</a> \n&quot;&quot; movl &nbsp;</td>
          <td class="paramname"> <em>12</em>(%esp), </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">%<a class="el" href="strlen_8S.html#0d9c430c9a9cb6a66e192946a5554e3b">eax</a>\n&quot;&quot;movl &nbsp;</td>
          <td class="paramname"> <em>16</em>(%esp), </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">%<a class="el" href="start_8S.html#f701de0cc799320aaf54092dda7b54d2">edi</a>\n&quot;&quot;cpuid\n&quot;&quot;movl%&nbsp;</td>
          <td class="paramname"> <em>eax</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">0(%<a class="el" href="start_8S.html#f701de0cc799320aaf54092dda7b54d2">edi</a>)\n&quot;&quot;movl%&nbsp;</td>
          <td class="paramname"> <em>ebx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">4(%<a class="el" href="start_8S.html#f701de0cc799320aaf54092dda7b54d2">edi</a>)\n&quot;&quot;movl%&nbsp;</td>
          <td class="paramname"> <em>ecx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">8(%<a class="el" href="start_8S.html#f701de0cc799320aaf54092dda7b54d2">edi</a>)\n&quot;&quot;movl%&nbsp;</td>
          <td class="paramname"> <em>edx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">12(%<a class="el" href="start_8S.html#f701de0cc799320aaf54092dda7b54d2">edi</a>)\n&quot;&quot;popl%<a class="el" href="start_8S.html#f701de0cc799320aaf54092dda7b54d2">edi</a>\n&quot;&quot;popl%<a class="el" href="ap-boot_8S.html#1c50f544178eb7e0af39bd078c5a986f">ebx</a>\n&quot;&quot;ret\n&quot;&nbsp;</td>
          <td class="paramname"></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="c7cb5b4b2fbc61966a6dfc8044a7b800"></a><!-- doxytag: member="smp.c::c_ap_boot" ref="c7cb5b4b2fbc61966a6dfc8044a7b800" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void c_ap_boot           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00137">137</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
<p>
References <a class="el" href="smp_8c-source.html#l00103">cpu1_thread()</a>, <a class="el" href="smp_8c-source.html#l00109">cpu2_thread()</a>, <a class="el" href="smp_8c-source.html#l00115">cpu3_thread()</a>, <a class="el" href="smp_8c-source.html#l00182">cpuInfo()</a>, <a class="el" href="smp_8c-source.html#l00037">initSpinLock</a>, <a class="el" href="io_8c-source.html#l00073">outportByte()</a>, <a class="el" href="spinlock_8c-source.html#l00070">spinLockLocked()</a>, and <a class="el" href="ap-boot_8S-source.html#l00006">xe9</a>.
<p>
Here is the call graph for this function:<p><center><img src="smp_8c_c7cb5b4b2fbc61966a6dfc8044a7b800_cgraph.png" border="0" usemap="#smp_8c_c7cb5b4b2fbc61966a6dfc8044a7b800_cgraph_map" alt=""></center>
<map name="smp_8c_c7cb5b4b2fbc61966a6dfc8044a7b800_cgraph_map">
<area href="smp_8c.html#5e82e9f1e0fec1ac5db2ebd16652a043" shape="rect" coords="155,43,261,70" alt="">
<area href="smp_8c.html#cfec913213194039ad31b2602bf8af4f" shape="rect" coords="155,94,261,120" alt="">
<area href="smp_8c.html#13735e9644e3c9a01bfc7785b31691ab" shape="rect" coords="155,144,261,171" alt="">
<area href="smp_8h.html#452f210aee65a2a30cbc5cb8923a9881" shape="rect" coords="347,208,419,235" alt="">
<area href="io_8h.html#8acc1a06073db2e7b92ffbd00fbd0cf1" shape="rect" coords="157,246,259,272" alt="">
<area href="spinlock_8h.html#cba75fe5ed894dc88030f7458b114a94" shape="rect" coords="144,296,272,323" alt="">
<area href="smp_8c.html#0844b0ab23ee41899fc5d622078d20d6" shape="rect" coords="320,82,445,108" alt="">
<area href="smp_8c.html#0f6e384fb3ad325aa2406af715ff341d" shape="rect" coords="508,6,575,32" alt="">
<area href="spinlock_8h.html#2cd9a4502680fb8e7f0fe6b029e558b1" shape="rect" coords="501,107,581,134" alt="">
<area href="spinlock_8h.html#dd996cbbb3b9826dd9c8cf02b66a4c65" shape="rect" coords="493,56,589,83" alt="">
<area href="sched_8h.html#08933fe6d593a1c78b9080359f15a0b7" shape="rect" coords="637,56,739,83" alt="">
<area href="spinlock_8h.html#8f9173fadeddafa01754d6cbcc630198" shape="rect" coords="919,82,1017,108" alt="">
<area href="sched_8h.html#549a0c1cc47933fa045b200690965cbd" shape="rect" coords="797,56,859,83" alt="">
<area href="smp_8c.html#98935271c68a482c194d4c784d814ddd" shape="rect" coords="500,310,583,336" alt="">
<area href="smp_8h.html#8e797e0b8a36194fca8fa45767974c2f" shape="rect" coords="512,360,571,387" alt="">
<area href="smp_8h.html#abe8182d15984977e87831f32527ff78" shape="rect" coords="499,411,584,438" alt="">
<area href="kpanic_8h.html#db9a182aa071791a306163d50d653deb" shape="rect" coords="508,158,575,184" alt="">
<area href="smp_8c.html#5607ecf06fd77905053dbb15eaf0ff6b" shape="rect" coords="508,208,575,235" alt="">
<area href="smp_8h.html#d58e8f36b58bd7c198307a1f012fd975" shape="rect" coords="500,259,583,286" alt="">
<area href="8259_8h.html#2b9ec30943ddb0a2ef3bd7ccfd2026c0" shape="rect" coords="643,158,733,184" alt="">
<area href="kprint_8h.html#b2761bdf0cca73ad0fb5880895210cd8" shape="rect" coords="655,208,721,235" alt="">
<area href="stdarg_8h.html#621577c2df0ad5faa281223c56eeb7a5" shape="rect" coords="652,259,724,286" alt="">
<area href="vsprintf_8c.html#c2f4c669c6f6aa6caa5ab8adb1b07dd0" shape="rect" coords="791,234,865,260" alt="">
<area href="vsprintf_8c.html#3fa7c8ef8597579301cb4b5c59bc6d9a" shape="rect" coords="788,284,868,311" alt="">
</map>

</div>
</div><p>
<a class="anchor" name="66c37e11ba7abfcafc63146553b2cd16"></a><!-- doxytag: member="smp.c::cpu0_thread" ref="66c37e11ba7abfcafc63146553b2cd16" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cpu0_thread           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00097">97</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
<p>
References <a class="el" href="smp_8c-source.html#l00123">kernel_function()</a>, and <a class="el" href="smp_8c-source.html#l00043">vram</a>.
<p>
Here is the call graph for this function:<p><center><img src="smp_8c_66c37e11ba7abfcafc63146553b2cd16_cgraph.png" border="0" usemap="#smp_8c_66c37e11ba7abfcafc63146553b2cd16_cgraph_map" alt=""></center>
<map name="smp_8c_66c37e11ba7abfcafc63146553b2cd16_cgraph_map">
<area href="smp_8c.html#0844b0ab23ee41899fc5d622078d20d6" shape="rect" coords="160,81,286,108" alt="">
<area href="smp_8c.html#0f6e384fb3ad325aa2406af715ff341d" shape="rect" coords="348,31,415,57" alt="">
<area href="spinlock_8h.html#2cd9a4502680fb8e7f0fe6b029e558b1" shape="rect" coords="342,81,422,108" alt="">
<area href="spinlock_8h.html#dd996cbbb3b9826dd9c8cf02b66a4c65" shape="rect" coords="334,132,430,159" alt="">
<area href="sched_8h.html#08933fe6d593a1c78b9080359f15a0b7" shape="rect" coords="478,56,579,83" alt="">
<area href="spinlock_8h.html#8f9173fadeddafa01754d6cbcc630198" shape="rect" coords="763,107,862,133" alt="">
<area href="sched_8h.html#549a0c1cc47933fa045b200690965cbd" shape="rect" coords="628,56,690,83" alt="">
<area href="sched_8h.html#e969273d772018d111e1f0344eb550f8" shape="rect" coords="739,5,886,32" alt="">
<area href="sched_8h.html#086cc0adc0b6a3860ceeeb5bc5ea94ea" shape="rect" coords="743,56,882,83" alt="">
</map>

</div>
</div><p>
<a class="anchor" name="5e82e9f1e0fec1ac5db2ebd16652a043"></a><!-- doxytag: member="smp.c::cpu1_thread" ref="5e82e9f1e0fec1ac5db2ebd16652a043" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cpu1_thread           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00103">103</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
<p>
References <a class="el" href="smp_8c-source.html#l00123">kernel_function()</a>, and <a class="el" href="smp_8c-source.html#l00043">vram</a>.
<p>
Referenced by <a class="el" href="smp_8c-source.html#l00137">c_ap_boot()</a>.
<p>
Here is the call graph for this function:<p><center><img src="smp_8c_5e82e9f1e0fec1ac5db2ebd16652a043_cgraph.png" border="0" usemap="#smp_8c_5e82e9f1e0fec1ac5db2ebd16652a043_cgraph_map" alt=""></center>
<map name="smp_8c_5e82e9f1e0fec1ac5db2ebd16652a043_cgraph_map">
<area href="smp_8c.html#0844b0ab23ee41899fc5d622078d20d6" shape="rect" coords="160,81,286,108" alt="">
<area href="smp_8c.html#0f6e384fb3ad325aa2406af715ff341d" shape="rect" coords="348,31,415,57" alt="">
<area href="spinlock_8h.html#2cd9a4502680fb8e7f0fe6b029e558b1" shape="rect" coords="342,81,422,108" alt="">
<area href="spinlock_8h.html#dd996cbbb3b9826dd9c8cf02b66a4c65" shape="rect" coords="334,132,430,159" alt="">
<area href="sched_8h.html#08933fe6d593a1c78b9080359f15a0b7" shape="rect" coords="478,56,579,83" alt="">
<area href="spinlock_8h.html#8f9173fadeddafa01754d6cbcc630198" shape="rect" coords="763,107,862,133" alt="">
<area href="sched_8h.html#549a0c1cc47933fa045b200690965cbd" shape="rect" coords="628,56,690,83" alt="">
<area href="sched_8h.html#e969273d772018d111e1f0344eb550f8" shape="rect" coords="739,5,886,32" alt="">
<area href="sched_8h.html#086cc0adc0b6a3860ceeeb5bc5ea94ea" shape="rect" coords="743,56,882,83" alt="">
</map>

</div>
</div><p>
<a class="anchor" name="cfec913213194039ad31b2602bf8af4f"></a><!-- doxytag: member="smp.c::cpu2_thread" ref="cfec913213194039ad31b2602bf8af4f" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cpu2_thread           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00109">109</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
<p>
References <a class="el" href="smp_8c-source.html#l00123">kernel_function()</a>, and <a class="el" href="smp_8c-source.html#l00043">vram</a>.
<p>
Referenced by <a class="el" href="smp_8c-source.html#l00137">c_ap_boot()</a>.
<p>
Here is the call graph for this function:<p><center><img src="smp_8c_cfec913213194039ad31b2602bf8af4f_cgraph.png" border="0" usemap="#smp_8c_cfec913213194039ad31b2602bf8af4f_cgraph_map" alt=""></center>
<map name="smp_8c_cfec913213194039ad31b2602bf8af4f_cgraph_map">
<area href="smp_8c.html#0844b0ab23ee41899fc5d622078d20d6" shape="rect" coords="160,81,286,108" alt="">
<area href="smp_8c.html#0f6e384fb3ad325aa2406af715ff341d" shape="rect" coords="348,31,415,57" alt="">
<area href="spinlock_8h.html#2cd9a4502680fb8e7f0fe6b029e558b1" shape="rect" coords="342,81,422,108" alt="">
<area href="spinlock_8h.html#dd996cbbb3b9826dd9c8cf02b66a4c65" shape="rect" coords="334,132,430,159" alt="">
<area href="sched_8h.html#08933fe6d593a1c78b9080359f15a0b7" shape="rect" coords="478,56,579,83" alt="">
<area href="spinlock_8h.html#8f9173fadeddafa01754d6cbcc630198" shape="rect" coords="763,107,862,133" alt="">
<area href="sched_8h.html#549a0c1cc47933fa045b200690965cbd" shape="rect" coords="628,56,690,83" alt="">
<area href="sched_8h.html#e969273d772018d111e1f0344eb550f8" shape="rect" coords="739,5,886,32" alt="">
<area href="sched_8h.html#086cc0adc0b6a3860ceeeb5bc5ea94ea" shape="rect" coords="743,56,882,83" alt="">
</map>

</div>
</div><p>
<a class="anchor" name="13735e9644e3c9a01bfc7785b31691ab"></a><!-- doxytag: member="smp.c::cpu3_thread" ref="13735e9644e3c9a01bfc7785b31691ab" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cpu3_thread           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00115">115</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
<p>
References <a class="el" href="smp_8c-source.html#l00123">kernel_function()</a>, and <a class="el" href="smp_8c-source.html#l00043">vram</a>.
<p>
Referenced by <a class="el" href="smp_8c-source.html#l00137">c_ap_boot()</a>.
<p>
Here is the call graph for this function:<p><center><img src="smp_8c_13735e9644e3c9a01bfc7785b31691ab_cgraph.png" border="0" usemap="#smp_8c_13735e9644e3c9a01bfc7785b31691ab_cgraph_map" alt=""></center>
<map name="smp_8c_13735e9644e3c9a01bfc7785b31691ab_cgraph_map">
<area href="smp_8c.html#0844b0ab23ee41899fc5d622078d20d6" shape="rect" coords="160,81,286,108" alt="">
<area href="smp_8c.html#0f6e384fb3ad325aa2406af715ff341d" shape="rect" coords="348,31,415,57" alt="">
<area href="spinlock_8h.html#2cd9a4502680fb8e7f0fe6b029e558b1" shape="rect" coords="342,81,422,108" alt="">
<area href="spinlock_8h.html#dd996cbbb3b9826dd9c8cf02b66a4c65" shape="rect" coords="334,132,430,159" alt="">
<area href="sched_8h.html#08933fe6d593a1c78b9080359f15a0b7" shape="rect" coords="478,56,579,83" alt="">
<area href="spinlock_8h.html#8f9173fadeddafa01754d6cbcc630198" shape="rect" coords="763,107,862,133" alt="">
<area href="sched_8h.html#549a0c1cc47933fa045b200690965cbd" shape="rect" coords="628,56,690,83" alt="">
<area href="sched_8h.html#e969273d772018d111e1f0344eb550f8" shape="rect" coords="739,5,886,32" alt="">
<area href="sched_8h.html#086cc0adc0b6a3860ceeeb5bc5ea94ea" shape="rect" coords="743,56,882,83" alt="">
</map>

</div>
</div><p>
<a class="anchor" name="c89d80447fce7d622c7dfc6620039600"></a><!-- doxytag: member="smp.c::cpuidDetect" ref="c89d80447fce7d622c7dfc6620039600" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cpuidDetect           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00173">173</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
<p>
References <a class="el" href="smp_8c-source.html#l00252">getEflags()</a>, <a class="el" href="kpanic_8c-source.html#l00042">kpanic()</a>, and <a class="el" href="smp_8c-source.html#l00262">setEflags()</a>.
<p>
Referenced by <a class="el" href="smp_8c-source.html#l00161">smpInit()</a>.
<p>
Here is the call graph for this function:<p><center><img src="smp_8c_c89d80447fce7d622c7dfc6620039600_cgraph.png" border="0" usemap="#smp_8c_c89d80447fce7d622c7dfc6620039600_cgraph_map" alt=""></center>
<map name="smp_8c_c89d80447fce7d622c7dfc6620039600_cgraph_map">
<area href="smp_8h.html#abe8182d15984977e87831f32527ff78" shape="rect" coords="157,5,243,32" alt="">
<area href="kpanic_8h.html#db9a182aa071791a306163d50d653deb" shape="rect" coords="167,56,233,83" alt="">
<area href="smp_8h.html#d58e8f36b58bd7c198307a1f012fd975" shape="rect" coords="159,107,241,133" alt="">
<area href="8259_8h.html#2b9ec30943ddb0a2ef3bd7ccfd2026c0" shape="rect" coords="291,5,381,32" alt="">
<area href="kprint_8h.html#b2761bdf0cca73ad0fb5880895210cd8" shape="rect" coords="303,56,369,83" alt="">
<area href="stdarg_8h.html#621577c2df0ad5faa281223c56eeb7a5" shape="rect" coords="300,107,372,133" alt="">
<area href="vsprintf_8c.html#c2f4c669c6f6aa6caa5ab8adb1b07dd0" shape="rect" coords="433,81,508,108" alt="">
<area href="vsprintf_8c.html#3fa7c8ef8597579301cb4b5c59bc6d9a" shape="rect" coords="431,132,511,159" alt="">
</map>

</div>
</div><p>
<a class="anchor" name="452f210aee65a2a30cbc5cb8923a9881"></a><!-- doxytag: member="smp.c::cpuInfo" ref="452f210aee65a2a30cbc5cb8923a9881" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a> cpuInfo           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00182">182</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
<p>
References <a class="el" href="smp_8h-source.html#l00038">cpuinfo_t::apic_id</a>, <a class="el" href="smp_8h-source.html#l00038">cpuinfo_t::apic_ver</a>, <a class="el" href="smp_8c-source.html#l00045">apicRead()</a>, <a class="el" href="smp_8h-source.html#l00042">cpuinfo_t::brand</a>, <a class="el" href="smp_8h.html#8e797e0b8a36194fca8fa45767974c2f">cpuid()</a>, <a class="el" href="smp_8c-source.html#l00040">cpuinfo</a>, <a class="el" href="smp_8c-source.html#l00038">cpuInfoLock</a>, <a class="el" href="smp_8c-source.html#l00039">cpus</a>, <a class="el" href="smp_8h-source.html#l00040">cpuinfo_t::feature</a>, <a class="el" href="smp_8c-source.html#l00252">getEflags()</a>, <a class="el" href="smp_8h-source.html#l00036">cpuinfo_t::id</a>, <a class="el" href="smp_8h-source.html#l00043">cpuinfo_t::ident</a>, <a class="el" href="kpanic_8c-source.html#l00042">kpanic()</a>, <a class="el" href="smp_8h-source.html#l00041">cpuinfo_t::max</a>, <a class="el" href="smp_8h-source.html#l00037">cpuinfo_t::ok</a>, <a class="el" href="smp_8c-source.html#l00053">setDr3()</a>, <a class="el" href="smp_8c-source.html#l00262">setEflags()</a>, <a class="el" href="smp_8h-source.html#l00039">cpuinfo_t::signature</a>, <a class="el" href="spinlock_8c-source.html#l00056">spinLock()</a>, <a class="el" href="spinlock_8c-source.html#l00037">spinUnlock()</a>, <a class="el" href="start_8S-source.html#l00051">x20</a>, and <a class="el" href="ap-boot_8S-source.html#l00052">x30</a>.
<p>
Referenced by <a class="el" href="smp_8c-source.html#l00137">c_ap_boot()</a>, and <a class="el" href="smp_8c-source.html#l00161">smpInit()</a>.
<p>
Here is the call graph for this function:<p><center><img src="smp_8c_452f210aee65a2a30cbc5cb8923a9881_cgraph.png" border="0" usemap="#smp_8c_452f210aee65a2a30cbc5cb8923a9881_cgraph_map" alt=""></center>
<map name="smp_8c_452f210aee65a2a30cbc5cb8923a9881_cgraph_map">
<area href="smp_8c.html#98935271c68a482c194d4c784d814ddd" shape="rect" coords="132,5,215,32" alt="">
<area href="smp_8h.html#8e797e0b8a36194fca8fa45767974c2f" shape="rect" coords="144,56,203,83" alt="">
<area href="smp_8h.html#abe8182d15984977e87831f32527ff78" shape="rect" coords="131,107,216,133" alt="">
<area href="kpanic_8h.html#db9a182aa071791a306163d50d653deb" shape="rect" coords="140,157,207,184" alt="">
<area href="smp_8c.html#5607ecf06fd77905053dbb15eaf0ff6b" shape="rect" coords="140,208,207,235" alt="">
<area href="smp_8h.html#d58e8f36b58bd7c198307a1f012fd975" shape="rect" coords="132,259,215,285" alt="">
<area href="spinlock_8h.html#2cd9a4502680fb8e7f0fe6b029e558b1" shape="rect" coords="133,309,213,336" alt="">
<area href="spinlock_8h.html#dd996cbbb3b9826dd9c8cf02b66a4c65" shape="rect" coords="125,360,221,387" alt="">
<area href="8259_8h.html#2b9ec30943ddb0a2ef3bd7ccfd2026c0" shape="rect" coords="275,107,365,133" alt="">
<area href="kprint_8h.html#b2761bdf0cca73ad0fb5880895210cd8" shape="rect" coords="287,157,353,184" alt="">
<area href="stdarg_8h.html#621577c2df0ad5faa281223c56eeb7a5" shape="rect" coords="284,208,356,235" alt="">
<area href="vsprintf_8c.html#c2f4c669c6f6aa6caa5ab8adb1b07dd0" shape="rect" coords="423,171,497,197" alt="">
<area href="vsprintf_8c.html#3fa7c8ef8597579301cb4b5c59bc6d9a" shape="rect" coords="420,221,500,248" alt="">
<area href="sched_8h.html#08933fe6d593a1c78b9080359f15a0b7" shape="rect" coords="269,284,371,311" alt="">
<area href="spinlock_8h.html#8f9173fadeddafa01754d6cbcc630198" shape="rect" coords="573,335,672,361" alt="">
<area href="sched_8h.html#549a0c1cc47933fa045b200690965cbd" shape="rect" coords="429,284,491,311" alt="">
<area href="sched_8h.html#e969273d772018d111e1f0344eb550f8" shape="rect" coords="549,233,696,260" alt="">
<area href="sched_8h.html#086cc0adc0b6a3860ceeeb5bc5ea94ea" shape="rect" coords="553,284,692,311" alt="">
</map>

</div>
</div><p>
<a class="anchor" name="b9f1e8692e06eb164641f50aa4d7aed6"></a><!-- doxytag: member="smp.c::GDT_fixer" ref="b9f1e8692e06eb164641f50aa4d7aed6" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void GDT_fixer           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00069">69</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
<p>
References <a class="el" href="smp_8c-source.html#l00065">gdt_descr::limit</a>.
<p>
Referenced by <a class="el" href="smp_8c-source.html#l00161">smpInit()</a>.
</div>
</div><p>
<a class="anchor" name="0f6e384fb3ad325aa2406af715ff341d"></a><!-- doxytag: member="smp.c::getDr3" ref="0f6e384fb3ad325aa2406af715ff341d" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static __inline__ <a class="el" href="types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> getDr3           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00058">58</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
<p>
Referenced by <a class="el" href="smp_8c-source.html#l00123">kernel_function()</a>.
</div>
</div><p>
<a class="anchor" name="abe8182d15984977e87831f32527ff78"></a><!-- doxytag: member="smp.c::getEflags" ref="abe8182d15984977e87831f32527ff78" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> getEflags           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00252">252</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
<p>
Referenced by <a class="el" href="smp_8c-source.html#l00173">cpuidDetect()</a>, and <a class="el" href="smp_8c-source.html#l00182">cpuInfo()</a>.
</div>
</div><p>
<a class="anchor" name="0844b0ab23ee41899fc5d622078d20d6"></a><!-- doxytag: member="smp.c::kernel_function" ref="0844b0ab23ee41899fc5d622078d20d6" args="(void)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a> kernel_function           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00123">123</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
<p>
References <a class="el" href="smp_8c-source.html#l00058">getDr3()</a>, <a class="el" href="smp_8h-source.html#l00036">cpuinfo_t::id</a>, <a class="el" href="spinlock_8c-source.html#l00056">spinLock()</a>, and <a class="el" href="spinlock_8c-source.html#l00037">spinUnlock()</a>.
<p>
Referenced by <a class="el" href="smp_8c-source.html#l00097">cpu0_thread()</a>, <a class="el" href="smp_8c-source.html#l00103">cpu1_thread()</a>, <a class="el" href="smp_8c-source.html#l00109">cpu2_thread()</a>, and <a class="el" href="smp_8c-source.html#l00115">cpu3_thread()</a>.
<p>
Here is the call graph for this function:<p><center><img src="smp_8c_0844b0ab23ee41899fc5d622078d20d6_cgraph.png" border="0" usemap="#smp_8c_0844b0ab23ee41899fc5d622078d20d6_cgraph_map" alt=""></center>
<map name="smp_8c_0844b0ab23ee41899fc5d622078d20d6_cgraph_map">
<area href="smp_8c.html#0f6e384fb3ad325aa2406af715ff341d" shape="rect" coords="193,31,260,57" alt="">
<area href="spinlock_8h.html#2cd9a4502680fb8e7f0fe6b029e558b1" shape="rect" coords="187,81,267,108" alt="">
<area href="spinlock_8h.html#dd996cbbb3b9826dd9c8cf02b66a4c65" shape="rect" coords="179,132,275,159" alt="">
<area href="sched_8h.html#08933fe6d593a1c78b9080359f15a0b7" shape="rect" coords="323,56,424,83" alt="">
<area href="spinlock_8h.html#8f9173fadeddafa01754d6cbcc630198" shape="rect" coords="608,107,707,133" alt="">
<area href="sched_8h.html#549a0c1cc47933fa045b200690965cbd" shape="rect" coords="473,56,535,83" alt="">
<area href="sched_8h.html#e969273d772018d111e1f0344eb550f8" shape="rect" coords="584,5,731,32" alt="">
<area href="sched_8h.html#086cc0adc0b6a3860ceeeb5bc5ea94ea" shape="rect" coords="588,56,727,83" alt="">
</map>

</div>
</div><p>
<a class="anchor" name="5607ecf06fd77905053dbb15eaf0ff6b"></a><!-- doxytag: member="smp.c::setDr3" ref="5607ecf06fd77905053dbb15eaf0ff6b" args="(void *dr3)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static __inline__ void setDr3           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>dr3</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00053">53</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
<p>
Referenced by <a class="el" href="smp_8c-source.html#l00182">cpuInfo()</a>.
</div>
</div><p>
<a class="anchor" name="133d6aaf4635e4585ee54a0438d0bf36"></a><!-- doxytag: member="smp.c::setEflags" ref="133d6aaf4635e4585ee54a0438d0bf36" args="(uInt32 eflags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void setEflags           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a>&nbsp;</td>
          <td class="paramname"> <em>eflags</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00262">262</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
<p>
Referenced by <a class="el" href="smp_8c-source.html#l00173">cpuidDetect()</a>, and <a class="el" href="smp_8c-source.html#l00182">cpuInfo()</a>.
</div>
</div><p>
<a class="anchor" name="ce31619db109aa8b20a916d48969928d"></a><!-- doxytag: member="smp.c::smpInit" ref="ce31619db109aa8b20a916d48969928d" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void smpInit           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00161">161</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
<p>
References <a class="el" href="smp_8c-source.html#l00234">apicMagic()</a>, <a class="el" href="smp_8c-source.html#l00173">cpuidDetect()</a>, <a class="el" href="smp_8c-source.html#l00182">cpuInfo()</a>, <a class="el" href="smp_8c-source.html#l00069">GDT_fixer()</a>, <a class="el" href="smp_8c-source.html#l00037">initSpinLock</a>, <a class="el" href="spinlock_8c-source.html#l00056">spinLock()</a>, and <a class="el" href="spinlock_8c-source.html#l00037">spinUnlock()</a>.
<p>
Here is the call graph for this function:<p><center><img src="smp_8c_ce31619db109aa8b20a916d48969928d_cgraph.png" border="0" usemap="#smp_8c_ce31619db109aa8b20a916d48969928d_cgraph_map" alt=""></center>
<map name="smp_8c_ce31619db109aa8b20a916d48969928d_cgraph_map">
<area href="smp_8h.html#fb282ad2f10cfff4d0da79689e6dfc82" shape="rect" coords="132,132,223,159" alt="">
<area href="smp_8h.html#c89d80447fce7d622c7dfc6620039600" shape="rect" coords="125,323,229,349" alt="">
<area href="smp_8h.html#452f210aee65a2a30cbc5cb8923a9881" shape="rect" coords="141,399,213,425" alt="">
<area href="spinlock_8h.html#2cd9a4502680fb8e7f0fe6b029e558b1" shape="rect" coords="313,512,393,539" alt="">
<area href="spinlock_8h.html#dd996cbbb3b9826dd9c8cf02b66a4c65" shape="rect" coords="305,563,401,589" alt="">
<area href="smp_8c.html#b9f1e8692e06eb164641f50aa4d7aed6" shape="rect" coords="133,551,221,577" alt="">
<area href="smp_8c.html#e4dc28abba9d6b02a779ca1b8ffecd98" shape="rect" coords="277,5,429,32" alt="">
<area href="smp_8c.html#98935271c68a482c194d4c784d814ddd" shape="rect" coords="312,208,395,235" alt="">
<area href="smp_8c.html#ab4a831897afae67446bf78c88123749" shape="rect" coords="311,107,396,133" alt="">
<area href="kprint_8h.html#b2761bdf0cca73ad0fb5880895210cd8" shape="rect" coords="495,132,561,159" alt="">
<area href="lib_2string_8h.html#e33b18edb618c656b9b795b9fce2316c" shape="rect" coords="313,157,393,184" alt="">
<area href="smp_8h.html#abe8182d15984977e87831f32527ff78" shape="rect" coords="311,259,396,285" alt="">
<area href="kpanic_8h.html#db9a182aa071791a306163d50d653deb" shape="rect" coords="320,309,387,336" alt="">
<area href="smp_8h.html#d58e8f36b58bd7c198307a1f012fd975" shape="rect" coords="312,360,395,387" alt="">
<area href="8259_8h.html#2b9ec30943ddb0a2ef3bd7ccfd2026c0" shape="rect" coords="483,335,573,361" alt="">
<area href="stdarg_8h.html#621577c2df0ad5faa281223c56eeb7a5" shape="rect" coords="492,284,564,311" alt="">
<area href="vsprintf_8c.html#c2f4c669c6f6aa6caa5ab8adb1b07dd0" shape="rect" coords="631,259,705,285" alt="">
<area href="vsprintf_8c.html#3fa7c8ef8597579301cb4b5c59bc6d9a" shape="rect" coords="628,309,708,336" alt="">
<area href="smp_8h.html#8e797e0b8a36194fca8fa45767974c2f" shape="rect" coords="324,411,383,437" alt="">
<area href="smp_8c.html#5607ecf06fd77905053dbb15eaf0ff6b" shape="rect" coords="320,461,387,488" alt="">
<area href="sched_8h.html#08933fe6d593a1c78b9080359f15a0b7" shape="rect" coords="477,537,579,564" alt="">
<area href="spinlock_8h.html#8f9173fadeddafa01754d6cbcc630198" shape="rect" coords="781,487,880,513" alt="">
<area href="sched_8h.html#549a0c1cc47933fa045b200690965cbd" shape="rect" coords="637,537,699,564" alt="">
<area href="sched_8h.html#e969273d772018d111e1f0344eb550f8" shape="rect" coords="757,588,904,615" alt="">
<area href="sched_8h.html#086cc0adc0b6a3860ceeeb5bc5ea94ea" shape="rect" coords="761,537,900,564" alt="">
</map>

</div>
</div><p>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="71085af55092ee7b25d4bd346169ce89"></a><!-- doxytag: member="smp.c::bkl" ref="71085af55092ee7b25d4bd346169ce89" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="spinlock_8h.html#a240e9404b4ede1e0d714610080d1176">spinLock_t</a> <a class="el" href="smp_8c.html#71085af55092ee7b25d4bd346169ce89">bkl</a> = SPIN_LOCK_INITIALIZER<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00122">122</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
</div>
</div><p>
<a class="anchor" name="963def6fffd92dece6dd156abbcf4fa0"></a><!-- doxytag: member="smp.c::cpuinfo" ref="963def6fffd92dece6dd156abbcf4fa0" args="[8]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structcpuinfo__t.html">cpuinfo_t</a> <a class="el" href="smp_8c.html#963def6fffd92dece6dd156abbcf4fa0">cpuinfo</a>[8]          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00040">40</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
<p>
Referenced by <a class="el" href="smp_8c-source.html#l00182">cpuInfo()</a>.
</div>
</div><p>
<a class="anchor" name="d5f78a3dc61e0ca7819dc3d5d5794419"></a><!-- doxytag: member="smp.c::cpuInfoLock" ref="d5f78a3dc61e0ca7819dc3d5d5794419" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="spinlock_8h.html#a240e9404b4ede1e0d714610080d1176">spinLock_t</a> <a class="el" href="smp_8c.html#d5f78a3dc61e0ca7819dc3d5d5794419">cpuInfoLock</a> = SPIN_LOCK_INITIALIZER<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00038">38</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
<p>
Referenced by <a class="el" href="smp_8c-source.html#l00182">cpuInfo()</a>.
</div>
</div><p>
<a class="anchor" name="29c1aa6c61dfac505825b96920fa447d"></a><!-- doxytag: member="smp.c::cpus" ref="29c1aa6c61dfac505825b96920fa447d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> <a class="el" href="smp_8c.html#29c1aa6c61dfac505825b96920fa447d">cpus</a> = 0<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00039">39</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
<p>
Referenced by <a class="el" href="smp_8c-source.html#l00182">cpuInfo()</a>.
</div>
</div><p>
<a class="anchor" name="9a5fd10dce49f2fe147d346b8de71902"></a><!-- doxytag: member="smp.c::initSpinLock" ref="9a5fd10dce49f2fe147d346b8de71902" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="spinlock_8h.html#a240e9404b4ede1e0d714610080d1176">spinLock_t</a> <a class="el" href="smp_8c.html#9a5fd10dce49f2fe147d346b8de71902">initSpinLock</a> = SPIN_LOCK_INITIALIZER<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00037">37</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
<p>
Referenced by <a class="el" href="smp_8c-source.html#l00137">c_ap_boot()</a>, and <a class="el" href="smp_8c-source.html#l00161">smpInit()</a>.
</div>
</div><p>
<a class="anchor" name="5f2d0854cc28b4f2ef16a03061d9d237"></a><!-- doxytag: member="smp.c::vram" ref="5f2d0854cc28b4f2ef16a03061d9d237" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a>* <a class="el" href="smp_8c.html#5f2d0854cc28b4f2ef16a03061d9d237">vram</a> = (<a class="el" href="types_8h.html#a4e0f27a9aca905e340c06d2dcae843c">uInt8</a> *)0xB8000          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="smp_8c-source.html#l00043">43</a> of file <a class="el" href="smp_8c-source.html">smp.c</a>.
<p>
Referenced by <a class="el" href="smp_8c-source.html#l00097">cpu0_thread()</a>, <a class="el" href="smp_8c-source.html#l00103">cpu1_thread()</a>, <a class="el" href="smp_8c-source.html#l00109">cpu2_thread()</a>, and <a class="el" href="smp_8c-source.html#l00115">cpu3_thread()</a>.
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 15 11:24:04 2006 for UbixOS V2 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
</body>
</html>