Newer
Older
UbixOS / doc / html / i386__exec_8c.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 V2: C:/Dev/git/UbixOS/sys/arch/i386/i386_exec.c File Reference</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="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></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 V2
   &#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">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<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('',true,false,'search.php','Search');
  $(document).ready(function() { init_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('i386__exec_8c.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">i386_exec.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;<a class="el" href="__null_8h_source.html">sys/_null.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="include_2sys_2types_8h_source.html">sys/types.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="sys_2elf_8h_source.html">sys/elf.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="gdt_8h_source.html">sys/gdt.h</a>&gt;</code><br />
<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="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="include_2vfs_2file_8h_source.html">vfs/file.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="assert_8h_source.html">assert.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="string_8h_source.html">string.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="descrip_8h_source.html">sys/descrip.h</a>&gt;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for i386_exec.c:</div>
<div class="dyncontent">
<div class="center"><img src="i386__exec_8c__incl.png" border="0" usemap="#C_1_2Dev_2git_2UbixOS_2sys_2arch_2i386_2i386__exec_8c" alt=""/></div>
</div>
</div>
<p><a href="i386__exec_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a2f29812bcfd1b9ad2a0b165a3b3c6d4a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="i386__exec_8c.html#a2f29812bcfd1b9ad2a0b165a3b3c6d4a">ARGV_PAGE</a>&#160;&#160;&#160;0x100</td></tr>
<tr class="separator:a2f29812bcfd1b9ad2a0b165a3b3c6d4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b8e51a44a47d7ea827c570ffdca14e5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="i386__exec_8c.html#a9b8e51a44a47d7ea827c570ffdca14e5">AT_BASE</a>&#160;&#160;&#160;7       /* Interpreter's base address. */</td></tr>
<tr class="separator:a9b8e51a44a47d7ea827c570ffdca14e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80f2ea99241a6afdc4718d3c4318c871"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="i386__exec_8c.html#a80f2ea99241a6afdc4718d3c4318c871">AT_ENTRY</a>&#160;&#160;&#160;9       /* Where interpreter should transfer control. */</td></tr>
<tr class="separator:a80f2ea99241a6afdc4718d3c4318c871"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a3070773d3f9231c9390172ae3fd2e7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="i386__exec_8c.html#a8a3070773d3f9231c9390172ae3fd2e7">AT_EXECFD</a>&#160;&#160;&#160;2       /* File descriptor of program to load. */</td></tr>
<tr class="separator:a8a3070773d3f9231c9390172ae3fd2e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08c6bdc11224c9d17fbde19666c332cc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="i386__exec_8c.html#a08c6bdc11224c9d17fbde19666c332cc">AT_FLAGS</a>&#160;&#160;&#160;8       /* Flags (unused for i386). */</td></tr>
<tr class="separator:a08c6bdc11224c9d17fbde19666c332cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab11dfd4fb71c15a128c3f70a310b53d1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="i386__exec_8c.html#ab11dfd4fb71c15a128c3f70a310b53d1">AT_IGNORE</a>&#160;&#160;&#160;1       /* Ignored entry. */</td></tr>
<tr class="separator:ab11dfd4fb71c15a128c3f70a310b53d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa893f7231479240d49c660c5649cac5b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="i386__exec_8c.html#aa893f7231479240d49c660c5649cac5b">AT_NULL</a>&#160;&#160;&#160;0       /* Terminates the vector. */</td></tr>
<tr class="separator:aa893f7231479240d49c660c5649cac5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7269f0c135d4bd3f9bc074d18fb30f9d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="i386__exec_8c.html#a7269f0c135d4bd3f9bc074d18fb30f9d">AT_PAGESZ</a>&#160;&#160;&#160;6       /* Page size in bytes. */</td></tr>
<tr class="separator:a7269f0c135d4bd3f9bc074d18fb30f9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3de7ec7b5cee2d34208387ab97dc0642"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="i386__exec_8c.html#a3de7ec7b5cee2d34208387ab97dc0642">AT_PHDR</a>&#160;&#160;&#160;3       /* Program header of program already loaded. */</td></tr>
<tr class="separator:a3de7ec7b5cee2d34208387ab97dc0642"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56f1f9975d88f768d7928b0ed587ef38"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="i386__exec_8c.html#a56f1f9975d88f768d7928b0ed587ef38">AT_PHENT</a>&#160;&#160;&#160;4       /* <a class="el" href="elf__generic_8h.html#a8f083052502d1aead5adf3f980dede7a">Size</a> of each program header entry. */</td></tr>
<tr class="separator:a56f1f9975d88f768d7928b0ed587ef38"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc712c67bee059574b4e3c096538d5bd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="i386__exec_8c.html#abc712c67bee059574b4e3c096538d5bd">AT_PHNUM</a>&#160;&#160;&#160;5       /* Number of program header entries. */</td></tr>
<tr class="separator:abc712c67bee059574b4e3c096538d5bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa8ddb544ff5a7ec07bbe00b16927559"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="i386__exec_8c.html#afa8ddb544ff5a7ec07bbe00b16927559">AUXARGS_ENTRY</a>(pos,  <a class="el" href="kernel_2elf_8c.html#affd99ec09f321a630ec19d0333e291cd">id</a>,  val)&#160;&#160;&#160;{*pos = <a class="el" href="kernel_2elf_8c.html#affd99ec09f321a630ec19d0333e291cd">id</a>;pos++; *pos = val;pos++;}</td></tr>
<tr class="separator:afa8ddb544ff5a7ec07bbe00b16927559"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af47d51fffc4c46a034ec9a821ecfb7d0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="i386__exec_8c.html#af47d51fffc4c46a034ec9a821ecfb7d0">ELF_AUX</a>&#160;&#160;&#160;0x100</td></tr>
<tr class="separator:af47d51fffc4c46a034ec9a821ecfb7d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d0b1b435ec441e7d50a430b83df5832"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="i386__exec_8c.html#a4d0b1b435ec441e7d50a430b83df5832">ENOEXEC</a>&#160;&#160;&#160;-1</td></tr>
<tr class="separator:a4d0b1b435ec441e7d50a430b83df5832"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04dd67a9a0ea56bb6cf7943ac00a1626"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="i386__exec_8c.html#a04dd67a9a0ea56bb6cf7943ac00a1626">ENVP_PAGE</a>&#160;&#160;&#160;0x100</td></tr>
<tr class="separator:a04dd67a9a0ea56bb6cf7943ac00a1626"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43c6dc010a1eea4fbe8de72a0826195b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="i386__exec_8c.html#a43c6dc010a1eea4fbe8de72a0826195b">STACK_PAD</a>&#160;&#160;&#160;0x1000</td></tr>
<tr class="separator:a43c6dc010a1eea4fbe8de72a0826195b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aaff6720506bf63686b0c962ea31439d3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="i386__exec_8c.html#aaff6720506bf63686b0c962ea31439d3">execFile</a> (char *<a class="el" href="structfile.html">file</a>, char **argv, char **envp, int console)</td></tr>
<tr class="separator:aaff6720506bf63686b0c962ea31439d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d25af2b05aa5dc4392daf1d97a3aa94"><td class="memItemLeft" align="right" valign="top"><a class="el" href="include_2sys_2types_8h.html#a0238af00180b6d9278fa1c6aa790fdf4">uint32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="i386__exec_8c.html#a2d25af2b05aa5dc4392daf1d97a3aa94">execThread</a> (void(*tproc)(void), <a class="el" href="include_2sys_2types_8h.html#a0238af00180b6d9278fa1c6aa790fdf4">uint32_t</a> stack, char *arg)</td></tr>
<tr class="separator:a2d25af2b05aa5dc4392daf1d97a3aa94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ca0db98ca165b1662f4b37b2d27b265"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="i386__exec_8c.html#a8ca0db98ca165b1662f4b37b2d27b265">sys_exec</a> (struct <a class="el" href="structthread.html">thread</a> *td, char *<a class="el" href="structfile.html">file</a>, char **argv, char **envp)</td></tr>
<tr class="separator:a8ca0db98ca165b1662f4b37b2d27b265"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a2f29812bcfd1b9ad2a0b165a3b3c6d4a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f29812bcfd1b9ad2a0b165a3b3c6d4a">&#9670;&nbsp;</a></span>ARGV_PAGE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ARGV_PAGE&#160;&#160;&#160;0x100</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="i386__exec_8c_source.html#l00046">46</a> of file <a class="el" href="i386__exec_8c_source.html">i386_exec.c</a>.</p>

</div>
</div>
<a id="a9b8e51a44a47d7ea827c570ffdca14e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9b8e51a44a47d7ea827c570ffdca14e5">&#9670;&nbsp;</a></span>AT_BASE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AT_BASE&#160;&#160;&#160;7       /* Interpreter's base address. */</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="i386__exec_8c_source.html#l00059">59</a> of file <a class="el" href="i386__exec_8c_source.html">i386_exec.c</a>.</p>

</div>
</div>
<a id="a80f2ea99241a6afdc4718d3c4318c871"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80f2ea99241a6afdc4718d3c4318c871">&#9670;&nbsp;</a></span>AT_ENTRY</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AT_ENTRY&#160;&#160;&#160;9       /* Where interpreter should transfer control. */</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="i386__exec_8c_source.html#l00061">61</a> of file <a class="el" href="i386__exec_8c_source.html">i386_exec.c</a>.</p>

</div>
</div>
<a id="a8a3070773d3f9231c9390172ae3fd2e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a3070773d3f9231c9390172ae3fd2e7">&#9670;&nbsp;</a></span>AT_EXECFD</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AT_EXECFD&#160;&#160;&#160;2       /* File descriptor of program to load. */</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="i386__exec_8c_source.html#l00054">54</a> of file <a class="el" href="i386__exec_8c_source.html">i386_exec.c</a>.</p>

</div>
</div>
<a id="a08c6bdc11224c9d17fbde19666c332cc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a08c6bdc11224c9d17fbde19666c332cc">&#9670;&nbsp;</a></span>AT_FLAGS</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AT_FLAGS&#160;&#160;&#160;8       /* Flags (unused for i386). */</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="i386__exec_8c_source.html#l00060">60</a> of file <a class="el" href="i386__exec_8c_source.html">i386_exec.c</a>.</p>

</div>
</div>
<a id="ab11dfd4fb71c15a128c3f70a310b53d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab11dfd4fb71c15a128c3f70a310b53d1">&#9670;&nbsp;</a></span>AT_IGNORE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AT_IGNORE&#160;&#160;&#160;1       /* Ignored entry. */</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="i386__exec_8c_source.html#l00053">53</a> of file <a class="el" href="i386__exec_8c_source.html">i386_exec.c</a>.</p>

</div>
</div>
<a id="aa893f7231479240d49c660c5649cac5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa893f7231479240d49c660c5649cac5b">&#9670;&nbsp;</a></span>AT_NULL</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AT_NULL&#160;&#160;&#160;0       /* Terminates the vector. */</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="i386__exec_8c_source.html#l00052">52</a> of file <a class="el" href="i386__exec_8c_source.html">i386_exec.c</a>.</p>

</div>
</div>
<a id="a7269f0c135d4bd3f9bc074d18fb30f9d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7269f0c135d4bd3f9bc074d18fb30f9d">&#9670;&nbsp;</a></span>AT_PAGESZ</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AT_PAGESZ&#160;&#160;&#160;6       /* Page size in bytes. */</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="i386__exec_8c_source.html#l00058">58</a> of file <a class="el" href="i386__exec_8c_source.html">i386_exec.c</a>.</p>

</div>
</div>
<a id="a3de7ec7b5cee2d34208387ab97dc0642"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3de7ec7b5cee2d34208387ab97dc0642">&#9670;&nbsp;</a></span>AT_PHDR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AT_PHDR&#160;&#160;&#160;3       /* Program header of program already loaded. */</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="i386__exec_8c_source.html#l00055">55</a> of file <a class="el" href="i386__exec_8c_source.html">i386_exec.c</a>.</p>

</div>
</div>
<a id="a56f1f9975d88f768d7928b0ed587ef38"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a56f1f9975d88f768d7928b0ed587ef38">&#9670;&nbsp;</a></span>AT_PHENT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AT_PHENT&#160;&#160;&#160;4       /* <a class="el" href="elf__generic_8h.html#a8f083052502d1aead5adf3f980dede7a">Size</a> of each program header entry. */</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="i386__exec_8c_source.html#l00056">56</a> of file <a class="el" href="i386__exec_8c_source.html">i386_exec.c</a>.</p>

</div>
</div>
<a id="abc712c67bee059574b4e3c096538d5bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abc712c67bee059574b4e3c096538d5bd">&#9670;&nbsp;</a></span>AT_PHNUM</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AT_PHNUM&#160;&#160;&#160;5       /* Number of program header entries. */</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="i386__exec_8c_source.html#l00057">57</a> of file <a class="el" href="i386__exec_8c_source.html">i386_exec.c</a>.</p>

</div>
</div>
<a id="afa8ddb544ff5a7ec07bbe00b16927559"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afa8ddb544ff5a7ec07bbe00b16927559">&#9670;&nbsp;</a></span>AUXARGS_ENTRY</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AUXARGS_ENTRY</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">pos, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><a class="el" href="kernel_2elf_8c.html#affd99ec09f321a630ec19d0333e291cd">id</a>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">val&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;{*pos = <a class="el" href="kernel_2elf_8c.html#affd99ec09f321a630ec19d0333e291cd">id</a>;pos++; *pos = val;pos++;}</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="i386__exec_8c_source.html#l00063">63</a> of file <a class="el" href="i386__exec_8c_source.html">i386_exec.c</a>.</p>

</div>
</div>
<a id="af47d51fffc4c46a034ec9a821ecfb7d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af47d51fffc4c46a034ec9a821ecfb7d0">&#9670;&nbsp;</a></span>ELF_AUX</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ELF_AUX&#160;&#160;&#160;0x100</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="i386__exec_8c_source.html#l00047">47</a> of file <a class="el" href="i386__exec_8c_source.html">i386_exec.c</a>.</p>

</div>
</div>
<a id="a4d0b1b435ec441e7d50a430b83df5832"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4d0b1b435ec441e7d50a430b83df5832">&#9670;&nbsp;</a></span>ENOEXEC</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ENOEXEC&#160;&#160;&#160;-1</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="i386__exec_8c_source.html#l00050">50</a> of file <a class="el" href="i386__exec_8c_source.html">i386_exec.c</a>.</p>

</div>
</div>
<a id="a04dd67a9a0ea56bb6cf7943ac00a1626"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a04dd67a9a0ea56bb6cf7943ac00a1626">&#9670;&nbsp;</a></span>ENVP_PAGE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define ENVP_PAGE&#160;&#160;&#160;0x100</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="i386__exec_8c_source.html#l00045">45</a> of file <a class="el" href="i386__exec_8c_source.html">i386_exec.c</a>.</p>

</div>
</div>
<a id="a43c6dc010a1eea4fbe8de72a0826195b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a43c6dc010a1eea4fbe8de72a0826195b">&#9670;&nbsp;</a></span>STACK_PAD</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define STACK_PAD&#160;&#160;&#160;0x1000</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="i386__exec_8c_source.html#l00048">48</a> of file <a class="el" href="i386__exec_8c_source.html">i386_exec.c</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="aaff6720506bf63686b0c962ea31439d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaff6720506bf63686b0c962ea31439d3">&#9670;&nbsp;</a></span>execFile()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void execFile </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>envp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>console</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="i386__exec_8c_source.html#l00244">244</a> of file <a class="el" href="i386__exec_8c_source.html">i386_exec.c</a>.</p>

</div>
</div>
<a id="a2d25af2b05aa5dc4392daf1d97a3aa94"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2d25af2b05aa5dc4392daf1d97a3aa94">&#9670;&nbsp;</a></span>execThread()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="include_2sys_2types_8h.html#a0238af00180b6d9278fa1c6aa790fdf4">uint32_t</a> execThread </td>
          <td>(</td>
          <td class="paramtype">void(*)(void)&#160;</td>
          <td class="paramname"><em>tproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="include_2sys_2types_8h.html#a0238af00180b6d9278fa1c6aa790fdf4">uint32_t</a>&#160;</td>
          <td class="paramname"><em>stack</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="i386__exec_8c_source.html#l00148">148</a> of file <a class="el" href="i386__exec_8c_source.html">i386_exec.c</a>.</p>

<p class="reference">References <a class="el" href="assert_8h_source.html#l00064">assert</a>, <a class="el" href="tss_8h_source.html#l00035">tssStruct::back_link</a>, <a class="el" href="tss_8h_source.html#l00046">tssStruct::cr3</a>, <a class="el" href="tss_8h_source.html#l00056">tssStruct::cs</a>, <a class="el" href="tss_8h_source.html#l00060">tssStruct::ds</a>, <a class="el" href="tss_8h_source.html#l00051">tssStruct::ebp</a>, <a class="el" href="tss_8h_source.html#l00053">tssStruct::edi</a>, <a class="el" href="tss_8h_source.html#l00048">tssStruct::eflags</a>, <a class="el" href="tss_8h_source.html#l00047">tssStruct::eip</a>, <a class="el" href="tss_8h_source.html#l00054">tssStruct::es</a>, <a class="el" href="tss_8h_source.html#l00052">tssStruct::esi</a>, <a class="el" href="tss_8h_source.html#l00050">tssStruct::esp</a>, <a class="el" href="tss_8h_source.html#l00037">tssStruct::esp0</a>, <a class="el" href="tss_8h_source.html#l00040">tssStruct::esp1</a>, <a class="el" href="tss_8h_source.html#l00043">tssStruct::esp2</a>, <a class="el" href="sched_8h_source.html#l00071">taskStruct::files</a>, <a class="el" href="tss_8h_source.html#l00062">tssStruct::fs</a>, <a class="el" href="tss_8h_source.html#l00064">tssStruct::gs</a>, <a class="el" href="sched_8h_source.html#l00063">taskStruct::id</a>, <a class="el" href="tss_8h_source.html#l00069">tssStruct::io_map</a>, <a class="el" href="paging_8c_source.html#l00041">kernelPageDirectory</a>, <a class="el" href="armv6_2kpanic_8c_source.html#l00041">kpanic()</a>, <a class="el" href="tss_8h_source.html#l00066">tssStruct::ldt</a>, <a class="el" href="sched_8h_source.html#l00069">taskStruct::oInfo</a>, <a class="el" href="paging_8h_source.html#l00037">PAGE_SIZE</a>, <a class="el" href="sched_8h_source.html#l00047">READY</a>, <a class="el" href="armv6_2sched_8c_source.html#l00265">sched_setStatus()</a>, <a class="el" href="armv6_2sched_8c_source.html#l00135">schedNewTask()</a>, <a class="el" href="tss_8h_source.html#l00058">tssStruct::ss</a>, <a class="el" href="tss_8h_source.html#l00038">tssStruct::ss0</a>, <a class="el" href="tss_8h_source.html#l00041">tssStruct::ss1</a>, <a class="el" href="tss_8h_source.html#l00044">tssStruct::ss2</a>, <a class="el" href="tss_8h_source.html#l00068">tssStruct::trace_bitmap</a>, <a class="el" href="sched_8h_source.html#l00067">taskStruct::tss</a>, <a class="el" href="paging_8c_source.html#l00291">vmm_getFreeKernelPage()</a>, and <a class="el" href="sched_8h_source.html#l00054">osInfo::vmStart</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="i386__exec_8c_a2d25af2b05aa5dc4392daf1d97a3aa94_cgraph.png" border="0" usemap="#i386__exec_8c_a2d25af2b05aa5dc4392daf1d97a3aa94_cgraph" alt=""/></div>
</div>

</div>
</div>
<a id="a8ca0db98ca165b1662f4b37b2d27b265"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8ca0db98ca165b1662f4b37b2d27b265">&#9670;&nbsp;</a></span>sys_exec()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int sys_exec </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structthread.html">thread</a> *&#160;</td>
          <td class="paramname"><em>td</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>envp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Clean the virtual of COW pages left over from the fork</p>

<p class="definition">Definition at line <a class="el" href="i386__exec_8c_source.html#l00491">491</a> of file <a class="el" href="i386__exec_8c_source.html">i386_exec.c</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_e6bb53534ac0e427887cf7a94c0c004e.html">C:</a></li><li class="navelem"><a class="el" href="dir_d99d5d4662bf24521eef49da6a8cd34d.html">Dev</a></li><li class="navelem"><a class="el" href="dir_474a4b306371cf7e7f6fa12cb0b77df6.html">git</a></li><li class="navelem"><a class="el" href="dir_849109bbd106d461b128d63e5babcedf.html">UbixOS</a></li><li class="navelem"><a class="el" href="dir_6ec99f6d7d5182ba8913209ab70c9f18.html">sys</a></li><li class="navelem"><a class="el" href="dir_316bf5fdacfa44a7db12b020a0d9ab19.html">arch</a></li><li class="navelem"><a class="el" href="dir_256d947363de5d2e978c467334167a28.html">i386</a></li><li class="navelem"><a class="el" href="i386__exec_8c.html">i386_exec.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>