<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.16"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>UbixOS: arch/i386/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&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(initResizable); /* @license-end */</script> <link href="../../doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">UbixOS  <span id="projectnumber">2.0</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.16 --> <script type="text/javascript" src="../../menudata.js"></script> <script type="text/javascript" src="../../menu.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(function() { initMenu('../../',false,false,'search.php','Search'); }); /* @license-end */</script> <div id="main-nav"></div> </div><!-- top --> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> <div id="nav-sync" class="sync"></div> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(document).ready(function(){initNavTree('de/d18/i386__exec_8c.html','../../');}); /* @license-end */ </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#define-members">Macros</a> | <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 <<a class="el" href="../../de/dac/__null_8h_source.html">sys/_null.h</a>></code><br /> <code>#include <<a class="el" href="../../d0/d27/include_2sys_2types_8h_source.html">sys/types.h</a>></code><br /> <code>#include <<a class="el" href="../../d4/de4/sys_2elf_8h_source.html">sys/elf.h</a>></code><br /> <code>#include <<a class="el" href="../../d5/d4a/gdt_8h_source.html">sys/gdt.h</a>></code><br /> <code>#include <<a class="el" href="../../df/d37/exec_8h_source.html">ubixos/exec.h</a>></code><br /> <code>#include <<a class="el" href="../../d9/d37/ld_8h_source.html">ubixos/ld.h</a>></code><br /> <code>#include <<a class="el" href="../../d3/d24/kpanic_8h_source.html">ubixos/kpanic.h</a>></code><br /> <code>#include <<a class="el" href="../../dc/d0c/endtask_8h_source.html">ubixos/endtask.h</a>></code><br /> <code>#include <<a class="el" href="../../d1/d21/vmm_8h_source.html">vmm/vmm.h</a>></code><br /> <code>#include <<a class="el" href="../../d4/d03/kmalloc_8h_source.html">lib/kmalloc.h</a>></code><br /> <code>#include <<a class="el" href="../../da/d28/kprintf_8h_source.html">lib/kprintf.h</a>></code><br /> <code>#include <<a class="el" href="../../d6/db4/include_2vfs_2file_8h_source.html">vfs/file.h</a>></code><br /> <code>#include <<a class="el" href="../../dc/da7/assert_8h_source.html">assert.h</a>></code><br /> <code>#include <<a class="el" href="../../da/d66/string_8h_source.html">string.h</a>></code><br /> <code>#include <<a class="el" href="../../d3/df4/descrip_8h_source.html">sys/descrip.h</a>></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="../../d4/d63/i386__exec_8c__incl.png" border="0" usemap="#arch_2i386_2i386__exec_8c" alt=""/></div> <map name="arch_2i386_2i386__exec_8c" id="arch_2i386_2i386__exec_8c"> <area shape="rect" title=" " alt="" coords="885,5,1035,32"/> <area shape="rect" href="../../de/dac/__null_8h.html" title=" " alt="" coords="192,80,277,107"/> <area shape="rect" href="../../d0/d27/include_2sys_2types_8h.html" title=" " alt="" coords="933,603,1024,629"/> <area shape="rect" href="../../d4/de4/sys_2elf_8h.html" title=" " alt="" coords="302,80,373,107"/> <area shape="rect" href="../../d6/db4/include_2vfs_2file_8h.html" title=" " alt="" coords="1206,304,1274,331"/> <area shape="rect" href="../../d5/d4a/gdt_8h.html" title=" " alt="" coords="701,80,777,107"/> <area shape="rect" href="../../df/d37/exec_8h.html" title=" " alt="" coords="523,155,626,181"/> <area shape="rect" href="../../d9/d37/ld_8h.html" title=" " alt="" coords="629,304,715,331"/> <area shape="rect" href="../../d3/d24/kpanic_8h.html" title=" " alt="" coords="903,80,1017,107"/> <area shape="rect" href="../../dc/d0c/endtask_8h.html" title=" " alt="" coords="702,155,823,181"/> <area shape="rect" href="../../d1/d21/vmm_8h.html" title=" " alt="" coords="1317,80,1408,107"/> <area shape="rect" href="../../d4/d03/kmalloc_8h.html" title=" " alt="" coords="1931,229,2026,256"/> <area shape="rect" href="../../da/d28/kprintf_8h.html" title=" " alt="" coords="1648,80,1733,107"/> <area shape="rect" href="../../dc/da7/assert_8h.html" title=" " alt="" coords="1757,80,1827,107"/> <area shape="rect" href="../../da/d66/string_8h.html" title=" " alt="" coords="2031,453,2097,480"/> <area shape="rect" href="../../d3/df4/descrip_8h.html" title=" " alt="" coords="1529,155,1629,181"/> <area shape="rect" href="../../d0/d6f/__types_8h.html" title=" " alt="" coords="1018,827,1115,853"/> <area shape="rect" href="../../d9/dab/select_8h.html" title=" " alt="" coords="1020,677,1113,704"/> <area shape="rect" href="../../d6/d92/cdefs_8h.html" title=" " alt="" coords="1278,752,1367,779"/> <area shape="rect" href="../../d6/d30/__timespec_8h.html" title=" " alt="" coords="778,752,897,779"/> <area shape="rect" href="../../df/dc5/__timeval_8h.html" title=" " alt="" coords="1149,752,1254,779"/> <area shape="rect" href="../../d6/da4/__sigset_8h.html" title=" " alt="" coords="973,752,1073,779"/> <area shape="rect" href="../../d0/d39/i386_2elf_8h.html" title=" " alt="" coords="424,155,499,181"/> <area shape="rect" href="../../d2/d5c/elf32_8h.html" title=" " alt="" coords="5,155,91,181"/> <area shape="rect" href="../../dc/d26/elf64_8h.html" title=" " alt="" coords="115,155,200,181"/> <area shape="rect" href="../../dd/d1b/ubthread_8h.html" title=" " alt="" coords="275,155,400,181"/> <area shape="rect" href="../../dd/d58/elf__common_8h.html" title=" " alt="" coords="28,229,156,256"/> <area shape="rect" href="../../d7/d00/sched_8h.html" title=" " alt="" coords="514,229,625,256"/> <area shape="rect" href="../../de/df7/time_8h.html" title=" " alt="" coords="125,528,225,555"/> <area shape="rect" href="../../db/dd5/thread_8h.html" title=" " alt="" coords="1507,379,1602,405"/> <area shape="rect" href="../../dd/d71/tty_8h.html" title=" " alt="" coords="477,379,568,405"/> <area shape="rect" href="../../de/d9a/tss_8h.html" title=" " alt="" coords="529,304,605,331"/> <area shape="rect" href="../../d1/de9/dirCache_8h.html" title=" " alt="" coords="1309,528,1432,555"/> <area shape="rect" href="../../d3/d73/inode_8h.html" title=" " alt="" coords="1041,379,1124,405"/> <area shape="rect" href="../../df/d42/ufs_8h.html" title=" " alt="" coords="846,453,917,480"/> <area shape="rect" href="../../d2/d29/mount_8h.html" title=" " alt="" coords="1244,379,1332,405"/> <area shape="rect" href="../../d7/d0b/trap_8h.html" title=" " alt="" coords="1557,453,1637,480"/> <area shape="rect" href="../../df/d92/sys_2signal_8h.html" title=" " alt="" coords="1662,453,1754,480"/> <area shape="rect" href="../../d8/d01/resource_8h.html" title=" " alt="" coords="1958,677,2066,704"/> <area shape="rect" href="../../d1/df2/wait_8h.html" title=" " alt="" coords="1232,453,1331,480"/> <area shape="rect" href="../../d1/d7d/pipe__fs_8h.html" title=" " alt="" coords="992,453,1080,480"/> <area shape="rect" href="../../d8/dff/msdos__fs_8h.html" title=" " alt="" coords="1105,453,1207,480"/> <area shape="rect" href="../../d4/d7e/include_2sys_2device_8h.html" title=" " alt="" coords="846,528,941,555"/> <area shape="rect" href="../../dc/dac/io_8h.html" title=" " alt="" coords="141,603,209,629"/> <area shape="rect" href="../../d4/df4/paging_8h.html" title=" " alt="" coords="1311,155,1414,181"/> <area shape="rect" href="../../d3/d7e/sysproto__posix_8h.html" title=" " alt="" coords="1451,229,1597,256"/> <area shape="rect" href="../../d1/d2d/stdarg_8h.html" title=" " alt="" coords="1787,155,1856,181"/> <area shape="rect" href="../../d6/d90/strings_8h.html" title=" " alt="" coords="2032,528,2104,555"/> <area shape="rect" href="../../d2/d1b/stat_8h.html" title=" " alt="" coords="1701,304,1776,331"/> <area shape="rect" href="../../d7/d9f/fcntl_8h.html" title=" " alt="" coords="1723,229,1805,256"/> </map> </div> </div> <p><a href="../../de/d18/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 </td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d18/i386__exec_8c.html#a2f29812bcfd1b9ad2a0b165a3b3c6d4a">ARGV_PAGE</a>   0x100</td></tr> <tr class="separator:a2f29812bcfd1b9ad2a0b165a3b3c6d4a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9b8e51a44a47d7ea827c570ffdca14e5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d18/i386__exec_8c.html#a9b8e51a44a47d7ea827c570ffdca14e5">AT_BASE</a>   7 /* Interpreter's base address. */</td></tr> <tr class="separator:a9b8e51a44a47d7ea827c570ffdca14e5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a80f2ea99241a6afdc4718d3c4318c871"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d18/i386__exec_8c.html#a80f2ea99241a6afdc4718d3c4318c871">AT_ENTRY</a>   9 /* Where interpreter should transfer control. */</td></tr> <tr class="separator:a80f2ea99241a6afdc4718d3c4318c871"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8a3070773d3f9231c9390172ae3fd2e7"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d18/i386__exec_8c.html#a8a3070773d3f9231c9390172ae3fd2e7">AT_EXECFD</a>   2 /* File descriptor of program to load. */</td></tr> <tr class="separator:a8a3070773d3f9231c9390172ae3fd2e7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a08c6bdc11224c9d17fbde19666c332cc"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d18/i386__exec_8c.html#a08c6bdc11224c9d17fbde19666c332cc">AT_FLAGS</a>   8 /* Flags (unused for i386). */</td></tr> <tr class="separator:a08c6bdc11224c9d17fbde19666c332cc"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab11dfd4fb71c15a128c3f70a310b53d1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d18/i386__exec_8c.html#ab11dfd4fb71c15a128c3f70a310b53d1">AT_IGNORE</a>   1 /* Ignored entry. */</td></tr> <tr class="separator:ab11dfd4fb71c15a128c3f70a310b53d1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa893f7231479240d49c660c5649cac5b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d18/i386__exec_8c.html#aa893f7231479240d49c660c5649cac5b">AT_NULL</a>   0 /* Terminates the vector. */</td></tr> <tr class="separator:aa893f7231479240d49c660c5649cac5b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7269f0c135d4bd3f9bc074d18fb30f9d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d18/i386__exec_8c.html#a7269f0c135d4bd3f9bc074d18fb30f9d">AT_PAGESZ</a>   6 /* Page size in bytes. */</td></tr> <tr class="separator:a7269f0c135d4bd3f9bc074d18fb30f9d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3de7ec7b5cee2d34208387ab97dc0642"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d18/i386__exec_8c.html#a3de7ec7b5cee2d34208387ab97dc0642">AT_PHDR</a>   3 /* Program header of program already loaded. */</td></tr> <tr class="separator:a3de7ec7b5cee2d34208387ab97dc0642"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a56f1f9975d88f768d7928b0ed587ef38"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d18/i386__exec_8c.html#a56f1f9975d88f768d7928b0ed587ef38">AT_PHENT</a>   4 /* <a class="el" href="../../de/d9a/elf__generic_8h.html#a8f083052502d1aead5adf3f980dede7a">Size</a> of each program header entry. */</td></tr> <tr class="separator:a56f1f9975d88f768d7928b0ed587ef38"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abc712c67bee059574b4e3c096538d5bd"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d18/i386__exec_8c.html#abc712c67bee059574b4e3c096538d5bd">AT_PHNUM</a>   5 /* Number of program header entries. */</td></tr> <tr class="separator:abc712c67bee059574b4e3c096538d5bd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afa8ddb544ff5a7ec07bbe00b16927559"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d18/i386__exec_8c.html#afa8ddb544ff5a7ec07bbe00b16927559">AUXARGS_ENTRY</a>(pos, <a class="el" href="../../d5/d8b/kernel_2elf_8c.html#affd99ec09f321a630ec19d0333e291cd">id</a>, val)   {*pos = <a class="el" href="../../d5/d8b/kernel_2elf_8c.html#affd99ec09f321a630ec19d0333e291cd">id</a>;pos++; *pos = val;pos++;}</td></tr> <tr class="separator:afa8ddb544ff5a7ec07bbe00b16927559"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af47d51fffc4c46a034ec9a821ecfb7d0"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d18/i386__exec_8c.html#af47d51fffc4c46a034ec9a821ecfb7d0">ELF_AUX</a>   0x100</td></tr> <tr class="separator:af47d51fffc4c46a034ec9a821ecfb7d0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4d0b1b435ec441e7d50a430b83df5832"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d18/i386__exec_8c.html#a4d0b1b435ec441e7d50a430b83df5832">ENOEXEC</a>   -1</td></tr> <tr class="separator:a4d0b1b435ec441e7d50a430b83df5832"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a04dd67a9a0ea56bb6cf7943ac00a1626"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d18/i386__exec_8c.html#a04dd67a9a0ea56bb6cf7943ac00a1626">ENVP_PAGE</a>   0x100</td></tr> <tr class="separator:a04dd67a9a0ea56bb6cf7943ac00a1626"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a43c6dc010a1eea4fbe8de72a0826195b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d18/i386__exec_8c.html#a43c6dc010a1eea4fbe8de72a0826195b">STACK_PAD</a>   0x1000</td></tr> <tr class="separator:a43c6dc010a1eea4fbe8de72a0826195b"><td class="memSeparator" colspan="2"> </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 </td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d18/i386__exec_8c.html#aaff6720506bf63686b0c962ea31439d3">execFile</a> (char *<a class="el" href="../../d7/d3a/structfile.html">file</a>, char **argv, char **envp, int console)</td></tr> <tr class="separator:aaff6720506bf63686b0c962ea31439d3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2d25af2b05aa5dc4392daf1d97a3aa94"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../d0/d27/include_2sys_2types_8h.html#a0238af00180b6d9278fa1c6aa790fdf4">uint32_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d18/i386__exec_8c.html#a2d25af2b05aa5dc4392daf1d97a3aa94">execThread</a> (void(*tproc)(void), <a class="el" href="../../d0/d27/include_2sys_2types_8h.html#a0238af00180b6d9278fa1c6aa790fdf4">uint32_t</a> stack, char *arg)</td></tr> <tr class="separator:a2d25af2b05aa5dc4392daf1d97a3aa94"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8ca0db98ca165b1662f4b37b2d27b265"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../de/d18/i386__exec_8c.html#a8ca0db98ca165b1662f4b37b2d27b265">sys_exec</a> (struct <a class="el" href="../../d3/dc5/structthread.html">thread</a> *td, char *<a class="el" href="../../d7/d3a/structfile.html">file</a>, char **argv, char **envp)</td></tr> <tr class="separator:a8ca0db98ca165b1662f4b37b2d27b265"><td class="memSeparator" colspan="2"> </td></tr> </table> <h2 class="groupheader">Macro Definition Documentation</h2> <a id="a2f29812bcfd1b9ad2a0b165a3b3c6d4a"></a> <h2 class="memtitle"><span class="permalink"><a href="#a2f29812bcfd1b9ad2a0b165a3b3c6d4a">◆ </a></span>ARGV_PAGE</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ARGV_PAGE   0x100</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../de/d18/i386__exec_8c_source.html#l00046">46</a> of file <a class="el" href="../../de/d18/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">◆ </a></span>AT_BASE</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define AT_BASE   7 /* Interpreter's base address. */</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../de/d18/i386__exec_8c_source.html#l00059">59</a> of file <a class="el" href="../../de/d18/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">◆ </a></span>AT_ENTRY</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define AT_ENTRY   9 /* Where interpreter should transfer control. */</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../de/d18/i386__exec_8c_source.html#l00061">61</a> of file <a class="el" href="../../de/d18/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">◆ </a></span>AT_EXECFD</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define AT_EXECFD   2 /* File descriptor of program to load. */</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../de/d18/i386__exec_8c_source.html#l00054">54</a> of file <a class="el" href="../../de/d18/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">◆ </a></span>AT_FLAGS</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define AT_FLAGS   8 /* Flags (unused for i386). */</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../de/d18/i386__exec_8c_source.html#l00060">60</a> of file <a class="el" href="../../de/d18/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">◆ </a></span>AT_IGNORE</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define AT_IGNORE   1 /* Ignored entry. */</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../de/d18/i386__exec_8c_source.html#l00053">53</a> of file <a class="el" href="../../de/d18/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">◆ </a></span>AT_NULL</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define AT_NULL   0 /* Terminates the vector. */</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../de/d18/i386__exec_8c_source.html#l00052">52</a> of file <a class="el" href="../../de/d18/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">◆ </a></span>AT_PAGESZ</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define AT_PAGESZ   6 /* Page size in bytes. */</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../de/d18/i386__exec_8c_source.html#l00058">58</a> of file <a class="el" href="../../de/d18/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">◆ </a></span>AT_PHDR</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define AT_PHDR   3 /* Program header of program already loaded. */</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../de/d18/i386__exec_8c_source.html#l00055">55</a> of file <a class="el" href="../../de/d18/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">◆ </a></span>AT_PHENT</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define AT_PHENT   4 /* <a class="el" href="../../de/d9a/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="../../de/d18/i386__exec_8c_source.html#l00056">56</a> of file <a class="el" href="../../de/d18/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">◆ </a></span>AT_PHNUM</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define AT_PHNUM   5 /* Number of program header entries. */</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../de/d18/i386__exec_8c_source.html#l00057">57</a> of file <a class="el" href="../../de/d18/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">◆ </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"> </td> <td class="paramname">pos, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname"><a class="el" href="../../d5/d8b/kernel_2elf_8c.html#affd99ec09f321a630ec19d0333e291cd">id</a>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">val </td> </tr> <tr> <td></td> <td>)</td> <td></td><td>   {*pos = <a class="el" href="../../d5/d8b/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="../../de/d18/i386__exec_8c_source.html#l00063">63</a> of file <a class="el" href="../../de/d18/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">◆ </a></span>ELF_AUX</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ELF_AUX   0x100</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../de/d18/i386__exec_8c_source.html#l00047">47</a> of file <a class="el" href="../../de/d18/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">◆ </a></span>ENOEXEC</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ENOEXEC   -1</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../de/d18/i386__exec_8c_source.html#l00050">50</a> of file <a class="el" href="../../de/d18/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">◆ </a></span>ENVP_PAGE</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define ENVP_PAGE   0x100</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../de/d18/i386__exec_8c_source.html#l00045">45</a> of file <a class="el" href="../../de/d18/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">◆ </a></span>STACK_PAD</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define STACK_PAD   0x1000</td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="../../de/d18/i386__exec_8c_source.html#l00048">48</a> of file <a class="el" href="../../de/d18/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">◆ </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 * </td> <td class="paramname"><em>file</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char ** </td> <td class="paramname"><em>argv</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char ** </td> <td class="paramname"><em>envp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>console</em> </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="../../de/d18/i386__exec_8c_source.html#l00244">244</a> of file <a class="el" href="../../de/d18/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">◆ </a></span>execThread()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="../../d0/d27/include_2sys_2types_8h.html#a0238af00180b6d9278fa1c6aa790fdf4">uint32_t</a> execThread </td> <td>(</td> <td class="paramtype">void(*)(void) </td> <td class="paramname"><em>tproc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="../../d0/d27/include_2sys_2types_8h.html#a0238af00180b6d9278fa1c6aa790fdf4">uint32_t</a> </td> <td class="paramname"><em>stack</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>arg</em> </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="../../de/d18/i386__exec_8c_source.html#l00148">148</a> of file <a class="el" href="../../de/d18/i386__exec_8c_source.html">i386_exec.c</a>.</p> <p class="reference">References <a class="el" href="../../dc/da7/assert_8h_source.html#l00064">assert</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00035">tssStruct::back_link</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00046">tssStruct::cr3</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00056">tssStruct::cs</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00060">tssStruct::ds</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00051">tssStruct::ebp</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00053">tssStruct::edi</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00048">tssStruct::eflags</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00047">tssStruct::eip</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00054">tssStruct::es</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00052">tssStruct::esi</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00050">tssStruct::esp</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00037">tssStruct::esp0</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00040">tssStruct::esp1</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00043">tssStruct::esp2</a>, <a class="el" href="../../d7/d00/sched_8h_source.html#l00071">taskStruct::files</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00062">tssStruct::fs</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00064">tssStruct::gs</a>, <a class="el" href="../../d7/d00/sched_8h_source.html#l00063">taskStruct::id</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00069">tssStruct::io_map</a>, <a class="el" href="../../de/d38/paging_8c_source.html#l00041">kernelPageDirectory</a>, <a class="el" href="../../dc/d94/armv6_2kpanic_8c_source.html#l00041">kpanic()</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00066">tssStruct::ldt</a>, <a class="el" href="../../d7/d00/sched_8h_source.html#l00069">taskStruct::oInfo</a>, <a class="el" href="../../d4/df4/paging_8h_source.html#l00037">PAGE_SIZE</a>, <a class="el" href="../../d7/d00/sched_8h_source.html#l00047">READY</a>, <a class="el" href="../../d3/d02/armv6_2sched_8c_source.html#l00265">sched_setStatus()</a>, <a class="el" href="../../d3/d02/armv6_2sched_8c_source.html#l00135">schedNewTask()</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00058">tssStruct::ss</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00038">tssStruct::ss0</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00041">tssStruct::ss1</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00044">tssStruct::ss2</a>, <a class="el" href="../../de/d9a/tss_8h_source.html#l00068">tssStruct::trace_bitmap</a>, <a class="el" href="../../d7/d00/sched_8h_source.html#l00067">taskStruct::tss</a>, <a class="el" href="../../de/d38/paging_8c_source.html#l00291">vmm_getFreeKernelPage()</a>, and <a class="el" href="../../d7/d00/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="../../de/d18/i386__exec_8c_a2d25af2b05aa5dc4392daf1d97a3aa94_cgraph.png" border="0" usemap="#de/d18/i386__exec_8c_a2d25af2b05aa5dc4392daf1d97a3aa94_cgraph" alt=""/></div> <map name="de/d18/i386__exec_8c_a2d25af2b05aa5dc4392daf1d97a3aa94_cgraph" id="de/d18/i386__exec_8c_a2d25af2b05aa5dc4392daf1d97a3aa94_cgraph"> <area shape="rect" title=" " alt="" coords="5,163,95,190"/> <area shape="rect" href="../../dc/d94/armv6_2kpanic_8c.html#adb9a182aa071791a306163d50d653deb" title="print panic message and halt system" alt="" coords="743,163,803,190"/> <area shape="rect" href="../../d3/d02/armv6_2sched_8c.html#a2cbadd034400c65dbd11fd4892ddf26e" title=" " alt="" coords="166,189,286,215"/> <area shape="rect" href="../../d3/d02/armv6_2sched_8c.html#a92458df2063761371869cdfe0c9b4ee3" title=" " alt="" coords="171,239,281,266"/> <area shape="rect" href="../../d4/df4/paging_8h.html#a3615feeeee9f4038cd1070372ccba22e" title=" " alt="" coords="143,138,309,165"/> <area shape="rect" href="../../dc/d88/armv6_2spinlock_8c.html#a71f03d2ba55111c715b6068254847a53" title=" " alt="" coords="736,265,811,291"/> <area shape="rect" href="../../dc/d88/armv6_2spinlock_8c.html#ae29ab191c93f9ead066cb462dd2e7247" title=" " alt="" coords="389,62,476,89"/> <area shape="rect" href="../../d1/d21/vmm_8h.html#acba8d9cc298370338bc5bea5187183b2" title=" " alt="" coords="361,163,505,190"/> <area shape="rect" href="../../d1/d21/vmm_8h.html#ab8e4e189a7b1df2a03072ce5b75c89fe" title=" " alt="" coords="556,214,688,241"/> <area shape="rect" href="../../de/d38/paging_8c.html#a8350aa43ff69829ba667ca34d9bcaa7a" title=" " alt="" coords="357,113,508,139"/> <area shape="rect" href="../../de/d38/paging_8c.html#ad6c3897473d837504f3d1415fb8ab796" title=" " alt="" coords="561,265,683,291"/> <area shape="rect" href="../../d3/d02/armv6_2sched_8c.html#a08933fe6d593a1c78b9080359f15a0b7" title=" " alt="" coords="859,239,950,266"/> <area shape="rect" href="../../dc/d88/armv6_2spinlock_8c.html#a740766af5da58616f700fffab6768a78" title=" " alt="" coords="859,290,951,317"/> </map> </div> </div> </div> <a id="a8ca0db98ca165b1662f4b37b2d27b265"></a> <h2 class="memtitle"><span class="permalink"><a href="#a8ca0db98ca165b1662f4b37b2d27b265">◆ </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="../../d3/dc5/structthread.html">thread</a> * </td> <td class="paramname"><em>td</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>file</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char ** </td> <td class="paramname"><em>argv</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char ** </td> <td class="paramname"><em>envp</em> </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="../../de/d18/i386__exec_8c_source.html#l00491">491</a> of file <a class="el" href="../../de/d18/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_ea9599923402ca8ab47fc3e495999dea.html">arch</a></li><li class="navelem"><a class="el" href="../../dir_e3f47f52fcd882b8ed14fae2e3a37090.html">i386</a></li><li class="navelem"><a class="el" href="../../de/d18/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>