Newer
Older
UbixOS / doc / html / exec_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/exec.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>exec.c File Reference</h1><code>#include &lt;<a class="el" href="exec_8h-source.html">ubixos/exec.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="elf_8h-source.html">ubixos/elf.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="ld_8h-source.html">ubixos/ld.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="endtask_8h-source.html">ubixos/endtask.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="vmm_8h-source.html">vmm/vmm.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="kmalloc_8h-source.html">lib/kmalloc.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="assert_8h-source.html">assert.h</a>&gt;</code><br>

<p>
Include dependency graph for exec.c:<p><center><img src="exec_8c__incl.png" border="0" usemap="#src/sys/kernel/exec.c_map" alt=""></center>
<map name="src/sys/kernel/exec.c_map">
<area href="exec_8h.html" shape="rect" coords="228,57,343,84" alt="">
<area href="elf_8h.html" shape="rect" coords="236,108,335,135" alt="">
<area href="ld_8h.html" shape="rect" coords="417,209,513,236" alt="">
<area href="kpanic_8h.html" shape="rect" coords="221,463,349,489" alt="">
<area href="endtask_8h.html" shape="rect" coords="217,159,353,185" alt="">
<area href="vmm_8h.html" shape="rect" coords="232,260,339,287" alt="">
<area href="kmalloc_8h.html" shape="rect" coords="412,361,519,388" alt="">
<area href="kprintf_8h.html" shape="rect" coords="416,412,515,439" alt="">
<area href="lib_2string_8h.html" shape="rect" coords="419,463,512,489" alt="">
<area href="assert_8h.html" shape="rect" coords="248,513,323,540" alt="">
<area href="types_8h.html" shape="rect" coords="577,235,697,261" alt="">
<area href="sched_8h.html" shape="rect" coords="404,57,527,84" alt="">
<area href="paging_8h.html" shape="rect" coords="405,311,525,337" alt="">
</map>

<p>
<a href="exec_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>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="exec_8c.html#d93dccba62fb5241c0b7cebcd097794a">STACK_ADDR</a>&nbsp;&nbsp;&nbsp;0xC800000</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="exec_8c.html#f80d4412d42ed1b5bf9a1b9774230f33">execFile</a> (char *<a class="el" href="structfile.html">file</a>, int argc, char **argv, int console)</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="exec_8c.html#4b86d28d8fd56197042aef174de2fd58">execThread</a> (void(*tproc)(void), <a class="el" href="types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> stack, char *arg)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="exec_8c.html#094c23346b6d226a03866a54b755ed64">sys_exec</a> (char *<a class="el" href="structfile.html">file</a>, char *ap)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">New exec...  <a href="#094c23346b6d226a03866a54b755ed64"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="exec_8c.html#219681612352232186a0f568457d851d">sysExec</a> (char *<a class="el" href="structfile.html">file</a>, char *ap)</td></tr>

</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="d93dccba62fb5241c0b7cebcd097794a"></a><!-- doxytag: member="exec.c::STACK_ADDR" ref="d93dccba62fb5241c0b7cebcd097794a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define STACK_ADDR&nbsp;&nbsp;&nbsp;0xC800000          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="exec_8c-source.html#l00042">42</a> of file <a class="el" href="exec_8c-source.html">exec.c</a>.
<p>
Referenced by <a class="el" href="exec_8c-source.html#l00143">execFile()</a>, and <a class="el" href="exec_8c-source.html#l00334">sysExec()</a>.
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="f80d4412d42ed1b5bf9a1b9774230f33"></a><!-- doxytag: member="exec.c::execFile" ref="f80d4412d42ed1b5bf9a1b9774230f33" args="(char *file, int argc, char **argv, int console)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void execFile           </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&nbsp;</td>
          <td class="paramname"> <em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>console</em></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>

<p>
Definition at line <a class="el" href="exec_8c-source.html#l00143">143</a> of file <a class="el" href="exec_8c-source.html">exec.c</a>.
<p>
References <a class="el" href="sched_8c-source.html#l00051">_current</a>, <a class="el" href="assert_8h-source.html#l00064">assert</a>, <a class="el" href="tss_8h-source.html#l00036">tssStruct::back_link</a>, <a class="el" href="tss_8h-source.html#l00047">tssStruct::cr3</a>, <a class="el" href="tss_8h-source.html#l00057">tssStruct::cs</a>, <a class="el" href="tss_8h-source.html#l00061">tssStruct::ds</a>, <a class="el" href="tss_8h-source.html#l00052">tssStruct::ebp</a>, <a class="el" href="tss_8h-source.html#l00054">tssStruct::edi</a>, <a class="el" href="elf_8h-source.html#l00102">elfHeader::eEntry</a>, <a class="el" href="tss_8h-source.html#l00049">tssStruct::eflags</a>, <a class="el" href="elf_8h-source.html#l00098">elfHeader::eIdent</a>, <a class="el" href="tss_8h-source.html#l00048">tssStruct::eip</a>, <a class="el" href="elf_8h-source.html#l00108">elfHeader::ePhnum</a>, <a class="el" href="elf_8h-source.html#l00103">elfHeader::ePhoff</a>, <a class="el" href="tss_8h-source.html#l00055">tssStruct::es</a>, <a class="el" href="tss_8h-source.html#l00053">tssStruct::esi</a>, <a class="el" href="tss_8h-source.html#l00051">tssStruct::esp</a>, <a class="el" href="tss_8h-source.html#l00038">tssStruct::esp0</a>, <a class="el" href="tss_8h-source.html#l00041">tssStruct::esp1</a>, <a class="el" href="tss_8h-source.html#l00044">tssStruct::esp2</a>, <a class="el" href="elf_8h-source.html#l00099">elfHeader::eType</a>, <a class="el" href="file_8c-source.html#l00398">fclose()</a>, <a class="el" href="file_8c-source.html#l00274">fopen()</a>, <a class="el" href="file_8c-source.html#l00178">fread()</a>, <a class="el" href="tss_8h-source.html#l00063">tssStruct::fs</a>, <a class="el" href="file_8c-source.html#l00208">fseek()</a>, <a class="el" href="sched_8h-source.html#l00063">taskStruct::gid</a>, <a class="el" href="tss_8h-source.html#l00065">tssStruct::gs</a>, <a class="el" href="sched_8h-source.html#l00055">taskStruct::id</a>, <a class="el" href="tss_8h-source.html#l00070">tssStruct::io_map</a>, <a class="el" href="kpanic_8h-source.html#l00033">K_PANIC</a>, <a class="el" href="paging_8h-source.html#l00053">KERNEL_PAGE_DEFAULT</a>, <a class="el" href="paging_8c-source.html#l00040">kernelPageDirectory</a>, <a class="el" href="kmalloc_8c-source.html#l00351">kfree()</a>, <a class="el" href="kmalloc_8c-source.html#l00247">kmalloc()</a>, <a class="el" href="kpanic_8c-source.html#l00042">kpanic()</a>, <a class="el" href="kprintf_8c-source.html#l00038">kprintf()</a>, <a class="el" href="tss_8h-source.html#l00067">tssStruct::ldt</a>, <a class="el" href="memset_8c-source.html#l00037">memset()</a>, <a class="el" href="sched_8h-source.html#l00060">taskStruct::oInfo</a>, <a class="el" href="tty_8h-source.html#l00043">tty_termNode::owner</a>, <a class="el" href="paging_8h-source.html#l00052">PAGE_DEFAULT</a>, <a class="el" href="paging_8h-source.html#l00049">PAGE_PRESENT</a>, <a class="el" href="paging_8h-source.html#l00047">PAGE_STACK</a>, <a class="el" href="paging_8h-source.html#l00051">PAGE_USER</a>, <a class="el" href="file_8h-source.html#l00060">fileDescriptorStruct::perms</a>, <a class="el" href="elf_8h-source.html#l00120">elfProgramHeader::phMemsz</a>, <a class="el" href="elf_8h-source.html#l00117">elfProgramHeader::phVaddr</a>, <a class="el" href="sched_8h.html#3fb333b67375561d327e9b5a8ffa03b96564f2f3e15be06b670547bbcaaf0798">READY</a>, <a class="el" href="sched_8c-source.html#l00281">sched_setStatus()</a>, <a class="el" href="sched_8c-source.html#l00143">schedNewTask()</a>, <a class="el" href="tss_8h-source.html#l00059">tssStruct::ss</a>, <a class="el" href="tss_8h-source.html#l00039">tssStruct::ss0</a>, <a class="el" href="tss_8h-source.html#l00042">tssStruct::ss1</a>, <a class="el" href="tss_8h-source.html#l00045">tssStruct::ss2</a>, <a class="el" href="exec_8c-source.html#l00042">STACK_ADDR</a>, <a class="el" href="sched_8h-source.html#l00067">taskStruct::td</a>, <a class="el" href="sched_8h-source.html#l00066">taskStruct::term</a>, <a class="el" href="tss_8h-source.html#l00069">tssStruct::trace_bitmap</a>, <a class="el" href="sched_8h-source.html#l00058">taskStruct::tss</a>, <a class="el" href="tty_8c-source.html#l00170">tty_find()</a>, <a class="el" href="sched_8h-source.html#l00064">taskStruct::uid</a>, <a class="el" href="thread_8h-source.html#l00040">thread::vm_daddr</a>, <a class="el" href="paging_8c-source.html#l00160">vmm_remapPage()</a>, <a class="el" href="setpageattributes_8c-source.html#l00041">vmm_setPageAttributes()</a>, <a class="el" href="createvirtualspace_8c-source.html#l00081">vmmCreateVirtualSpace()</a>, <a class="el" href="vmm__memory_8c-source.html#l00186">vmmFindFreePage()</a>, <a class="el" href="sched_8h-source.html#l00047">osInfo::vmStart</a>, <a class="el" href="ap-boot_8S-source.html#l00052">x1000</a>, <a class="el" href="start_8S-source.html#l00051">x18</a>, and <a class="el" href="ap-boot_8S-source.html#l00052">x30</a>.
<p>
Referenced by <a class="el" href="main_8c-source.html#l00097">kmain()</a>.
<p>
Here is the call graph for this function:<p><center><img src="exec_8c_f80d4412d42ed1b5bf9a1b9774230f33_cgraph.png" border="0" usemap="#exec_8c_f80d4412d42ed1b5bf9a1b9774230f33_cgraph_map" alt=""></center>
<map name="exec_8c_f80d4412d42ed1b5bf9a1b9774230f33_cgraph_map">
<area href="file_8h.html#872c22366b4c63f4bdb10cd3b7980b11" shape="rect" coords="194,209,255,236" alt="">
<area href="kmalloc_8h.html#aa9ed6886459604cf73ccdbf6410e487" shape="rect" coords="430,159,486,185" alt="">
<area href="kprint_8h.html#b2761bdf0cca73ad0fb5880895210cd8" shape="rect" coords="723,260,790,287" alt="">
<area href="lib_2string_8h.html#ce4b911463887af5e748326323e99a23" shape="rect" coords="598,260,675,287" alt="">
<area href="file_8h.html#d6a41ac88a7d46d574e8a675fdde136c" shape="rect" coords="194,260,255,287" alt="">
<area href="kmalloc_8h.html#150eab2ac4ce4553e21ca10e7f441762" shape="rect" coords="420,311,495,337" alt="">
<area href="file_8h.html#3b06878a03209e88c008c77234b89359" shape="rect" coords="196,665,252,692" alt="">
<area href="file_8h.html#80528d8335cd52755f5d6a92e4f08391" shape="rect" coords="195,716,254,743" alt="">
<area href="kpanic_8h.html#db9a182aa071791a306163d50d653deb" shape="rect" coords="603,513,670,540" alt="">
<area href="sched_8h.html#51101e12c9236ea1286477695c110482" shape="rect" coords="159,767,290,793" alt="">
<area href="sched_8h.html#92458df2063761371869cdfe0c9b4ee3" shape="rect" coords="164,412,284,439" alt="">
<area href="tty_8h.html#4f96ccac7e60296ef496008d8cbed0ff" shape="rect" coords="188,817,260,844" alt="">
<area href="paging_8h.html#a05f8d8947fb5bcec87fc6661f83243e" shape="rect" coords="155,463,294,489" alt="">
<area href="vmm_8h.html#976cf3919bf7c77c868021ec9374593b" shape="rect" coords="386,513,530,540" alt="">
<area href="paging_8h.html#1913e8607a69ecf446b18fa1cd36c9cc" shape="rect" coords="367,615,548,641" alt="">
<area href="paging_8h.html#39ac9b6ea58fc8b6f129775642077c99" shape="rect" coords="131,868,318,895" alt="">
</map>

</div>
</div><p>
<a class="anchor" name="4b86d28d8fd56197042aef174de2fd58"></a><!-- doxytag: member="exec.c::execThread" ref="4b86d28d8fd56197042aef174de2fd58" args="(void(*tproc)(void), uInt32 stack, char *arg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> execThread           </td>
          <td>(</td>
          <td class="paramtype">void(*)(void)&nbsp;</td>
          <td class="paramname"> <em>tproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a>&nbsp;</td>
          <td class="paramname"> <em>stack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>arg</em></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>

<p>
Definition at line <a class="el" href="exec_8c-source.html#l00055">55</a> of file <a class="el" href="exec_8c-source.html">exec.c</a>.
<p>
References <a class="el" href="assert_8h-source.html#l00064">assert</a>, <a class="el" href="tss_8h-source.html#l00036">tssStruct::back_link</a>, <a class="el" href="tss_8h-source.html#l00047">tssStruct::cr3</a>, <a class="el" href="tss_8h-source.html#l00057">tssStruct::cs</a>, <a class="el" href="tss_8h-source.html#l00061">tssStruct::ds</a>, <a class="el" href="tss_8h-source.html#l00052">tssStruct::ebp</a>, <a class="el" href="tss_8h-source.html#l00054">tssStruct::edi</a>, <a class="el" href="tss_8h-source.html#l00049">tssStruct::eflags</a>, <a class="el" href="tss_8h-source.html#l00048">tssStruct::eip</a>, <a class="el" href="tss_8h-source.html#l00055">tssStruct::es</a>, <a class="el" href="tss_8h-source.html#l00053">tssStruct::esi</a>, <a class="el" href="tss_8h-source.html#l00051">tssStruct::esp</a>, <a class="el" href="tss_8h-source.html#l00038">tssStruct::esp0</a>, <a class="el" href="tss_8h-source.html#l00041">tssStruct::esp1</a>, <a class="el" href="tss_8h-source.html#l00044">tssStruct::esp2</a>, <a class="el" href="tss_8h-source.html#l00063">tssStruct::fs</a>, <a class="el" href="tss_8h-source.html#l00065">tssStruct::gs</a>, <a class="el" href="sched_8h-source.html#l00055">taskStruct::id</a>, <a class="el" href="sched_8h-source.html#l00061">taskStruct::imageFd</a>, <a class="el" href="tss_8h-source.html#l00070">tssStruct::io_map</a>, <a class="el" href="paging_8c-source.html#l00040">kernelPageDirectory</a>, <a class="el" href="kpanic_8c-source.html#l00042">kpanic()</a>, <a class="el" href="tss_8h-source.html#l00067">tssStruct::ldt</a>, <a class="el" href="sched_8h-source.html#l00060">taskStruct::oInfo</a>, <a class="el" href="sched_8h.html#3fb333b67375561d327e9b5a8ffa03b96564f2f3e15be06b670547bbcaaf0798">READY</a>, <a class="el" href="sched_8c-source.html#l00281">sched_setStatus()</a>, <a class="el" href="sched_8c-source.html#l00143">schedNewTask()</a>, <a class="el" href="tss_8h-source.html#l00059">tssStruct::ss</a>, <a class="el" href="tss_8h-source.html#l00039">tssStruct::ss0</a>, <a class="el" href="tss_8h-source.html#l00042">tssStruct::ss1</a>, <a class="el" href="tss_8h-source.html#l00045">tssStruct::ss2</a>, <a class="el" href="tss_8h-source.html#l00069">tssStruct::trace_bitmap</a>, <a class="el" href="sched_8h-source.html#l00058">taskStruct::tss</a>, and <a class="el" href="sched_8h-source.html#l00047">osInfo::vmStart</a>.
<p>
Referenced by <a class="el" href="main_8c-source.html#l00097">kmain()</a>, and <a class="el" href="ubthread_8c-source.html#l00076">ubthread_create()</a>.
<p>
Here is the call graph for this function:<p><center><img src="exec_8c_4b86d28d8fd56197042aef174de2fd58_cgraph.png" border="0" usemap="#exec_8c_4b86d28d8fd56197042aef174de2fd58_cgraph_map" alt=""></center>
<map name="exec_8c_4b86d28d8fd56197042aef174de2fd58_cgraph_map">
<area href="kpanic_8h.html#db9a182aa071791a306163d50d653deb" shape="rect" coords="363,50,429,76" alt="">
<area href="sched_8h.html#51101e12c9236ea1286477695c110482" shape="rect" coords="156,252,287,279" alt="">
<area href="sched_8h.html#92458df2063761371869cdfe0c9b4ee3" shape="rect" coords="161,151,281,178" alt="">
<area href="8259_8h.html#2b9ec30943ddb0a2ef3bd7ccfd2026c0" shape="rect" coords="507,56,597,83" alt="">
<area href="kprint_8h.html#b2761bdf0cca73ad0fb5880895210cd8" shape="rect" coords="519,132,585,159" alt="">
<area href="stdarg_8h.html#621577c2df0ad5faa281223c56eeb7a5" shape="rect" coords="516,6,588,32" alt="">
<area href="sched_8h.html#9cf37ade4c1f6184b33014ac2015e8ed" shape="rect" coords="337,303,455,330" alt="">
<area href="kmalloc_8h.html#150eab2ac4ce4553e21ca10e7f441762" shape="rect" coords="359,202,433,228" alt="">
<area href="spinlock_8h.html#2cd9a4502680fb8e7f0fe6b029e558b1" shape="rect" coords="512,252,592,279" alt="">
<area href="spinlock_8h.html#dd996cbbb3b9826dd9c8cf02b66a4c65" shape="rect" coords="504,195,600,222" alt="">
<area href="lib_2string_8h.html#ce4b911463887af5e748326323e99a23" shape="rect" coords="357,151,435,178" alt="">
</map>

</div>
</div><p>
<a class="anchor" name="094c23346b6d226a03866a54b755ed64"></a><!-- doxytag: member="exec.c::sys_exec" ref="094c23346b6d226a03866a54b755ed64" args="(char *file, char *ap)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sys_exec           </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>ap</em></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>
New exec... 
<p>

<p>
Clean the virtual of COW pages left over from the fork<p>
Adjust iframe<p>
build argc and argv[]<p>
Start of Env 
<p>
Definition at line <a class="el" href="exec_8c-source.html#l00552">552</a> of file <a class="el" href="exec_8c-source.html">exec.c</a>.
<p>
References <a class="el" href="sched_8c-source.html#l00051">_current</a>, <a class="el" href="elf_8h-source.html#l00102">elfHeader::eEntry</a>, <a class="el" href="elf_8h-source.html#l00098">elfHeader::eIdent</a>, <a class="el" href="tss_8h-source.html#l00103">i386_frame::eip</a>, <a class="el" href="elf_8h-source.html#l00108">elfHeader::ePhnum</a>, <a class="el" href="elf_8h-source.html#l00103">elfHeader::ePhoff</a>, <a class="el" href="elf_8h-source.html#l00055">ET_EXEC</a>, <a class="el" href="elf_8h-source.html#l00099">elfHeader::eType</a>, <a class="el" href="file_8c-source.html#l00398">fclose()</a>, <a class="el" href="file_8c-source.html#l00274">fopen()</a>, <a class="el" href="file_8c-source.html#l00178">fread()</a>, <a class="el" href="file_8c-source.html#l00208">fseek()</a>, <a class="el" href="sched_8h-source.html#l00055">taskStruct::id</a>, <a class="el" href="sched_8h-source.html#l00061">taskStruct::imageFd</a>, <a class="el" href="kpanic_8h-source.html#l00033">K_PANIC</a>, <a class="el" href="kmalloc_8c-source.html#l00351">kfree()</a>, <a class="el" href="kmalloc_8c-source.html#l00247">kmalloc()</a>, <a class="el" href="kprintf_8c-source.html#l00038">kprintf()</a>, <a class="el" href="memset_8c-source.html#l00037">memset()</a>, <a class="el" href="sched_8h-source.html#l00060">taskStruct::oInfo</a>, <a class="el" href="paging_8h-source.html#l00052">PAGE_DEFAULT</a>, <a class="el" href="paging_8h-source.html#l00049">PAGE_PRESENT</a>, <a class="el" href="paging_8h-source.html#l00055">PAGE_SHIFT</a>, <a class="el" href="paging_8h-source.html#l00051">PAGE_USER</a>, <a class="el" href="elf_8h-source.html#l00120">elfProgramHeader::phMemsz</a>, <a class="el" href="elf_8h-source.html#l00116">elfProgramHeader::phOffset</a>, <a class="el" href="elf_8h-source.html#l00117">elfProgramHeader::phVaddr</a>, <a class="el" href="elf_8h-source.html#l00082">PT_INTERP</a>, <a class="el" href="elf_8h-source.html#l00080">PT_LOAD</a>, <a class="el" href="elf_8h-source.html#l00085">PT_PHDR</a>, <a class="el" href="paging_8h-source.html#l00060">round_page</a>, <a class="el" href="sched_8h-source.html#l00067">taskStruct::td</a>, <a class="el" href="paging_8h-source.html#l00059">trunc_page</a>, <a class="el" href="thread_8h-source.html#l00040">thread::vm_daddr</a>, <a class="el" href="thread_8h-source.html#l00041">thread::vm_dsize</a>, <a class="el" href="paging_8c-source.html#l00160">vmm_remapPage()</a>, <a class="el" href="setpageattributes_8c-source.html#l00041">vmm_setPageAttributes()</a>, <a class="el" href="vmm__memory_8c-source.html#l00186">vmmFindFreePage()</a>, <a class="el" href="sched_8h-source.html#l00047">osInfo::vmStart</a>, and <a class="el" href="ap-boot_8S-source.html#l00052">x1000</a>.
<p>
Referenced by <a class="el" href="exec_8c-source.html#l00334">sysExec()</a>.
<p>
Here is the call graph for this function:<p><center><img src="exec_8c_094c23346b6d226a03866a54b755ed64_cgraph.png" border="0" usemap="#exec_8c_094c23346b6d226a03866a54b755ed64_cgraph_map" alt=""></center>
<map name="exec_8c_094c23346b6d226a03866a54b755ed64_cgraph_map">
<area href="file_8h.html#872c22366b4c63f4bdb10cd3b7980b11" shape="rect" coords="198,411,259,437" alt="">
<area href="kmalloc_8h.html#aa9ed6886459604cf73ccdbf6410e487" shape="rect" coords="414,461,470,488" alt="">
<area href="kprint_8h.html#b2761bdf0cca73ad0fb5880895210cd8" shape="rect" coords="707,411,774,437" alt="">
<area href="lib_2string_8h.html#ce4b911463887af5e748326323e99a23" shape="rect" coords="572,715,650,741" alt="">
<area href="file_8h.html#d6a41ac88a7d46d574e8a675fdde136c" shape="rect" coords="198,537,259,564" alt="">
<area href="kmalloc_8h.html#150eab2ac4ce4553e21ca10e7f441762" shape="rect" coords="404,360,479,387" alt="">
<area href="file_8h.html#3b06878a03209e88c008c77234b89359" shape="rect" coords="200,917,256,944" alt="">
<area href="file_8h.html#80528d8335cd52755f5d6a92e4f08391" shape="rect" coords="199,968,258,995" alt="">
<area href="paging_8h.html#a05f8d8947fb5bcec87fc6661f83243e" shape="rect" coords="159,157,298,184" alt="">
<area href="vmm_8h.html#976cf3919bf7c77c868021ec9374593b" shape="rect" coords="370,157,514,184" alt="">
<area href="paging_8h.html#1913e8607a69ecf446b18fa1cd36c9cc" shape="rect" coords="138,81,319,108" alt="">
<area href="spinlock_8h.html#2cd9a4502680fb8e7f0fe6b029e558b1" shape="rect" coords="571,259,651,285" alt="">
<area href="spinlock_8h.html#dd996cbbb3b9826dd9c8cf02b66a4c65" shape="rect" coords="563,411,659,437" alt="">
<area href="lib_2string_8h.html#c38cd16373d98782e1465bd3d5aba470" shape="rect" coords="410,613,474,640" alt="">
<area href="lib_2string_8h.html#dcec9a82a6a276e8edb0fd4fc26fe8f2" shape="rect" coords="414,664,470,691" alt="">
<area href="lib_2string_8h.html#9af7251f0c1b875e0e34b8e2b94dda39" shape="rect" coords="411,715,472,741" alt="">
<area href="mount_8h.html#a8cc926aa9badb781158b6738b1b0f2d" shape="rect" coords="383,765,500,792" alt="">
<area href="kpanic_8h.html#db9a182aa071791a306163d50d653deb" shape="rect" coords="578,157,644,184" alt="">
</map>

</div>
</div><p>
<a class="anchor" name="219681612352232186a0f568457d851d"></a><!-- doxytag: member="exec.c::sysExec" ref="219681612352232186a0f568457d851d" args="(char *file, char *ap)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void sysExec           </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>ap</em></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>

<p>
Definition at line <a class="el" href="exec_8c-source.html#l00334">334</a> of file <a class="el" href="exec_8c-source.html">exec.c</a>.
<p>
References <a class="el" href="sched_8c-source.html#l00051">_current</a>, <a class="el" href="assert_8h-source.html#l00064">assert</a>, <a class="el" href="tss_8h-source.html#l00093">i386_frame::ebp</a>, <a class="el" href="elf_8h-source.html#l00102">elfHeader::eEntry</a>, <a class="el" href="elf_8h-source.html#l00098">elfHeader::eIdent</a>, <a class="el" href="tss_8h-source.html#l00103">i386_frame::eip</a>, <a class="el" href="endtask_8c-source.html#l00046">endTask()</a>, <a class="el" href="elf_8h-source.html#l00108">elfHeader::ePhnum</a>, <a class="el" href="elf_8h-source.html#l00103">elfHeader::ePhoff</a>, <a class="el" href="elf_8h-source.html#l00110">elfHeader::eShnum</a>, <a class="el" href="elf_8h-source.html#l00104">elfHeader::eShoff</a>, <a class="el" href="tss_8h-source.html#l00038">tssStruct::esp0</a>, <a class="el" href="elf_8h-source.html#l00099">elfHeader::eType</a>, <a class="el" href="file_8c-source.html#l00398">fclose()</a>, <a class="el" href="file_8c-source.html#l00274">fopen()</a>, <a class="el" href="file_8c-source.html#l00178">fread()</a>, <a class="el" href="file_8c-source.html#l00208">fseek()</a>, <a class="el" href="sched_8h-source.html#l00055">taskStruct::id</a>, <a class="el" href="sched_8h-source.html#l00061">taskStruct::imageFd</a>, <a class="el" href="kpanic_8h-source.html#l00033">K_PANIC</a>, <a class="el" href="kmalloc_8c-source.html#l00351">kfree()</a>, <a class="el" href="kmalloc_8c-source.html#l00247">kmalloc()</a>, <a class="el" href="kpanic_8c-source.html#l00042">kpanic()</a>, <a class="el" href="kprintf_8c-source.html#l00038">kprintf()</a>, <a class="el" href="ld_8c-source.html#l00042">ldEnable()</a>, <a class="el" href="memset_8c-source.html#l00037">memset()</a>, <a class="el" href="sched_8h-source.html#l00060">taskStruct::oInfo</a>, <a class="el" href="paging_8h-source.html#l00052">PAGE_DEFAULT</a>, <a class="el" href="paging_8h-source.html#l00049">PAGE_PRESENT</a>, <a class="el" href="paging_8h-source.html#l00055">PAGE_SHIFT</a>, <a class="el" href="paging_8h-source.html#l00056">PAGE_SIZE</a>, <a class="el" href="paging_8h-source.html#l00051">PAGE_USER</a>, <a class="el" href="file_8h-source.html#l00060">fileDescriptorStruct::perms</a>, <a class="el" href="elf_8h-source.html#l00120">elfProgramHeader::phMemsz</a>, <a class="el" href="elf_8h-source.html#l00117">elfProgramHeader::phVaddr</a>, <a class="el" href="elf_8h-source.html#l00081">PT_DYNAMIC</a>, <a class="el" href="elf_8h-source.html#l00082">PT_INTERP</a>, <a class="el" href="elf_8h-source.html#l00080">PT_LOAD</a>, <a class="el" href="paging_8h-source.html#l00060">round_page</a>, <a class="el" href="exec_8c-source.html#l00042">STACK_ADDR</a>, <a class="el" href="strcpy_8S-source.html#l00003">strcpy</a>, <a class="el" href="strlen_8S-source.html#l00004">strlen</a>, <a class="el" href="exec_8c-source.html#l00552">sys_exec()</a>, <a class="el" href="sched_8h-source.html#l00067">taskStruct::td</a>, <a class="el" href="paging_8h-source.html#l00059">trunc_page</a>, <a class="el" href="sched_8h-source.html#l00058">taskStruct::tss</a>, <a class="el" href="tss_8h-source.html#l00106">i386_frame::user_esp</a>, <a class="el" href="thread_8h-source.html#l00040">thread::vm_daddr</a>, <a class="el" href="thread_8h-source.html#l00041">thread::vm_dsize</a>, <a class="el" href="paging_8h-source.html#l00038">VM_TASK</a>, <a class="el" href="paging_8c-source.html#l00522">vmm_cleanVirtualSpace()</a>, <a class="el" href="paging_8c-source.html#l00160">vmm_remapPage()</a>, <a class="el" href="setpageattributes_8c-source.html#l00041">vmm_setPageAttributes()</a>, <a class="el" href="vmm__memory_8c-source.html#l00186">vmmFindFreePage()</a>, <a class="el" href="getfreevirtualpage_8c-source.html#l00047">vmmGetFreeVirtualPage()</a>, <a class="el" href="sched_8h-source.html#l00047">osInfo::vmStart</a>, and <a class="el" href="ap-boot_8S-source.html#l00052">x1000</a>.
<p>
Here is the call graph for this function:<p><center><img src="exec_8c_219681612352232186a0f568457d851d_cgraph.png" border="0" usemap="#exec_8c_219681612352232186a0f568457d851d_cgraph_map" alt=""></center>
<map name="exec_8c_219681612352232186a0f568457d851d_cgraph_map">
<area href="endtask_8h.html#152c1859ada097cc21071f471bfa2e67" shape="rect" coords="186,5,263,32" alt="">
<area href="file_8h.html#872c22366b4c63f4bdb10cd3b7980b11" shape="rect" coords="427,309,488,336" alt="">
<area href="kmalloc_8h.html#aa9ed6886459604cf73ccdbf6410e487" shape="rect" coords="643,360,699,387" alt="">
<area href="kprint_8h.html#b2761bdf0cca73ad0fb5880895210cd8" shape="rect" coords="1027,689,1094,716" alt="">
<area href="lib_2string_8h.html#ce4b911463887af5e748326323e99a23" shape="rect" coords="847,284,924,311" alt="">
<area href="file_8h.html#d6a41ac88a7d46d574e8a675fdde136c" shape="rect" coords="427,715,488,741" alt="">
<area href="kmalloc_8h.html#150eab2ac4ce4553e21ca10e7f441762" shape="rect" coords="634,664,708,691" alt="">
<area href="file_8h.html#3b06878a03209e88c008c77234b89359" shape="rect" coords="430,563,486,589" alt="">
<area href="file_8h.html#80528d8335cd52755f5d6a92e4f08391" shape="rect" coords="428,613,487,640" alt="">
<area href="kpanic_8h.html#db9a182aa071791a306163d50d653deb" shape="rect" coords="852,1069,919,1096" alt="">
<area href="ld_8h.html#b0622e93915d1824df770950e425875f" shape="rect" coords="184,512,264,539" alt="">
<area href="paging_8h.html#a05f8d8947fb5bcec87fc6661f83243e" shape="rect" coords="388,1019,527,1045" alt="">
<area href="vmm_8h.html#976cf3919bf7c77c868021ec9374593b" shape="rect" coords="599,1019,743,1045" alt="">
<area href="exec_8h.html#094c23346b6d226a03866a54b755ed64" shape="rect" coords="183,791,266,817" alt="">
<area href="paging_8h.html#1913e8607a69ecf446b18fa1cd36c9cc" shape="rect" coords="367,1069,548,1096" alt="">
<area href="paging_8c.html#0444c8635648fabdbd6e702137aa1723" shape="rect" coords="794,56,978,83" alt="">
<area href="paging_8h.html#4b324672c4b25064eb8db1e3419337b1" shape="rect" coords="132,1171,316,1197" alt="">
</map>

</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 15 11:23:32 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>