Newer
Older
UbixOS / doc / html / kmalloc_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/lib/kmalloc.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_d9dcf62a8e8b4cc91cbf2445d76a799b.html">lib</a></div>
<h1>kmalloc.c File Reference</h1><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="kpanic_8h-source.html">ubixos/kpanic.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="sched_8h-source.html">ubixos/sched.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="spinlock_8h-source.html">ubixos/spinlock.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="vmm_8h-source.html">vmm/vmm.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="assert_8h-source.html">assert.h</a>&gt;</code><br>

<p>
Include dependency graph for kmalloc.c:<p><center><img src="kmalloc_8c__incl.png" border="0" usemap="#src/sys/lib/kmalloc.c_map" alt=""></center>
<map name="src/sys/lib/kmalloc.c_map">
<area href="kmalloc_8h.html" shape="rect" coords="403,25,509,52" alt="">
<area href="kprintf_8h.html" shape="rect" coords="407,113,505,140" alt="">
<area href="kpanic_8h.html" shape="rect" coords="211,487,339,513" alt="">
<area href="sched_8h.html" shape="rect" coords="395,240,517,267" alt="">
<area href="spinlock_8h.html" shape="rect" coords="387,461,525,488" alt="">
<area href="vmm_8h.html" shape="rect" coords="221,335,328,361" alt="">
<area href="string_8h.html" shape="rect" coords="239,436,311,463" alt="">
<area href="assert_8h.html" shape="rect" coords="237,537,312,564" alt="">
<area href="types_8h.html" shape="rect" coords="729,259,849,285" alt="">
<area href="tty_8h.html" shape="rect" coords="577,107,676,133" alt="">
<area href="file_8h.html" shape="rect" coords="587,157,667,184" alt="">
<area href="tss_8h.html" shape="rect" coords="587,208,667,235" alt="">
<area href="thread_8h.html" shape="rect" coords="575,309,679,336" alt="">
<area href="paging_8h.html" shape="rect" coords="396,335,516,361" alt="">
</map>

<p>
<a href="kmalloc_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>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="kmalloc_8c.html#f6c4ea5cb961c72548d92ff65d7e33a4">getEmptyDesc</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="kmalloc_8c.html#eb1c3f1ef8eb9063c2e5c4af488dd2d0">insertFreeDesc</a> (struct <a class="el" href="structmemDescriptor.html">memDescriptor</a> *freeDesc)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="kmalloc_8c.html#aa9ed6886459604cf73ccdbf6410e487">kfree</a> (void *baseAddr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="kmalloc_8c.html#150eab2ac4ce4553e21ca10e7f441762">kmalloc</a> (<a class="el" href="types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a> len)</td></tr>

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

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

<tr><td class="memItemLeft" nowrap align="right" valign="top">static struct <a class="el" href="structmemDescriptor.html">memDescriptor</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="kmalloc_8c.html#33325db110e0782930deda9b52e7224b">emptyKernDesc</a> = 0x0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static struct <a class="el" href="structmemDescriptor.html">memDescriptor</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="kmalloc_8c.html#a0c5be194ccb3f36a4ea8e666fbd2dac">freeKernDesc</a> = 0x0</td></tr>

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

<tr><td class="memItemLeft" nowrap align="right" valign="top">static struct <a class="el" href="structmemDescriptor.html">memDescriptor</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="kmalloc_8c.html#f60f75b69fa71f90b84c0dd58f0040a5">usedKernDesc</a> = 0x0</td></tr>

</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="f6c4ea5cb961c72548d92ff65d7e33a4"></a><!-- doxytag: member="kmalloc.c::getEmptyDesc" ref="f6c4ea5cb961c72548d92ff65d7e33a4" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void* getEmptyDesc           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="kmalloc_8c-source.html#l00067">67</a> of file <a class="el" href="kmalloc_8c-source.html">kmalloc.c</a>.
<p>
References <a class="el" href="kmalloc_8c-source.html#l00055">emptyDescSpinLock</a>, <a class="el" href="kmalloc_8c-source.html#l00049">emptyKernDesc</a>, <a class="el" href="kpanic_8c-source.html#l00042">kpanic()</a>, <a class="el" href="memset_8c-source.html#l00037">memset()</a>, <a class="el" href="kmalloc_8h-source.html#l00045">memDescriptor::next</a>, <a class="el" href="kmalloc_8h-source.html#l00044">memDescriptor::prev</a>, <a class="el" href="spinlock_8c-source.html#l00056">spinLock()</a>, <a class="el" href="spinlock_8c-source.html#l00037">spinUnlock()</a>, <a class="el" href="paging_8c-source.html#l00401">vmm_getFreeMallocPage()</a>, and <a class="el" href="ap-boot_8S-source.html#l00006">x1</a>.
<p>
Referenced by <a class="el" href="kmalloc_8c-source.html#l00247">kmalloc()</a>.
<p>
Here is the call graph for this function:<p><center><img src="kmalloc_8c_f6c4ea5cb961c72548d92ff65d7e33a4_cgraph.png" border="0" usemap="#kmalloc_8c_f6c4ea5cb961c72548d92ff65d7e33a4_cgraph_map" alt=""></center>
<map name="kmalloc_8c_f6c4ea5cb961c72548d92ff65d7e33a4_cgraph_map">
<area href="kpanic_8h.html#db9a182aa071791a306163d50d653deb" shape="rect" coords="238,5,304,32" alt="">
<area href="lib_2string_8h.html#ce4b911463887af5e748326323e99a23" shape="rect" coords="232,56,310,83" alt="">
<area href="spinlock_8h.html#2cd9a4502680fb8e7f0fe6b029e558b1" shape="rect" coords="422,132,502,159" alt="">
<area href="spinlock_8h.html#dd996cbbb3b9826dd9c8cf02b66a4c65" shape="rect" coords="414,195,510,221" alt="">
<area href="paging_8h.html#541f0b43826a40b9e978f5479080bb0e" shape="rect" coords="176,157,366,184" alt="">
</map>

</div>
</div><p>
<a class="anchor" name="eb1c3f1ef8eb9063c2e5c4af488dd2d0"></a><!-- doxytag: member="kmalloc.c::insertFreeDesc" ref="eb1c3f1ef8eb9063c2e5c4af488dd2d0" args="(struct memDescriptor *freeDesc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int insertFreeDesc           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structmemDescriptor.html">memDescriptor</a> *&nbsp;</td>
          <td class="paramname"> <em>freeDesc</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="kmalloc_8c-source.html#l00124">124</a> of file <a class="el" href="kmalloc_8c-source.html">kmalloc.c</a>.
<p>
References <a class="el" href="assert_8h-source.html#l00064">assert</a>, <a class="el" href="kmalloc_8c-source.html#l00048">freeKernDesc</a>, <a class="el" href="kpanic_8c-source.html#l00042">kpanic()</a>, <a class="el" href="kmalloc_8h-source.html#l00047">memDescriptor::limit</a>, <a class="el" href="kmalloc_8h-source.html#l00045">memDescriptor::next</a>, and <a class="el" href="kmalloc_8h-source.html#l00044">memDescriptor::prev</a>.
<p>
Referenced by <a class="el" href="kmalloc_8c-source.html#l00351">kfree()</a>, and <a class="el" href="kmalloc_8c-source.html#l00247">kmalloc()</a>.
<p>
Here is the call graph for this function:<p><center><img src="kmalloc_8c_eb1c3f1ef8eb9063c2e5c4af488dd2d0_cgraph.png" border="0" usemap="#kmalloc_8c_eb1c3f1ef8eb9063c2e5c4af488dd2d0_cgraph_map" alt=""></center>
<map name="kmalloc_8c_eb1c3f1ef8eb9063c2e5c4af488dd2d0_cgraph_map">
<area href="kpanic_8h.html#db9a182aa071791a306163d50d653deb" shape="rect" coords="176,56,243,83" alt="">
<area href="8259_8h.html#2b9ec30943ddb0a2ef3bd7ccfd2026c0" shape="rect" coords="291,5,381,32" alt="">
<area href="kprint_8h.html#b2761bdf0cca73ad0fb5880895210cd8" shape="rect" coords="303,56,369,83" alt="">
<area href="stdarg_8h.html#621577c2df0ad5faa281223c56eeb7a5" shape="rect" coords="300,107,372,133" alt="">
<area href="vsprintf_8c.html#c2f4c669c6f6aa6caa5ab8adb1b07dd0" shape="rect" coords="433,81,508,108" alt="">
<area href="vsprintf_8c.html#3fa7c8ef8597579301cb4b5c59bc6d9a" shape="rect" coords="431,132,511,159" alt="">
</map>

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

<p>

<p>
Definition at line <a class="el" href="kmalloc_8c-source.html#l00351">351</a> of file <a class="el" href="kmalloc_8c-source.html">kmalloc.c</a>.
<p>
References <a class="el" href="assert_8h-source.html#l00064">assert</a>, <a class="el" href="kmalloc_8h-source.html#l00046">memDescriptor::baseAddr</a>, <a class="el" href="kmalloc_8c-source.html#l00124">insertFreeDesc()</a>, <a class="el" href="kprintf_8c-source.html#l00038">kprintf()</a>, <a class="el" href="kmalloc_8h-source.html#l00047">memDescriptor::limit</a>, <a class="el" href="kmalloc_8c-source.html#l00054">mallocSpinLock</a>, <a class="el" href="memset_8c-source.html#l00037">memset()</a>, <a class="el" href="kmalloc_8h-source.html#l00045">memDescriptor::next</a>, <a class="el" href="kmalloc_8h-source.html#l00044">memDescriptor::prev</a>, <a class="el" href="spinlock_8c-source.html#l00056">spinLock()</a>, <a class="el" href="spinlock_8c-source.html#l00037">spinUnlock()</a>, and <a class="el" href="kmalloc_8c-source.html#l00047">usedKernDesc</a>.
<p>
Referenced by <a class="el" href="kern__descrip_8c-source.html#l00090">close()</a>, <a class="el" href="device_8c-source.html#l00110">device_remove()</a>, <a class="el" href="elf_8c-source.html#l00111">elf_loadfile()</a>, <a class="el" href="exec_8c-source.html#l00143">execFile()</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="kmod_8c-source.html#l00075">kmod_load()</a>, <a class="el" href="ld_8c-source.html#l00042">ldEnable()</a>, <a class="el" href="system_8c-source.html#l00234">mpi_destroyMbox()</a>, <a class="el" href="system_8c-source.html#l00189">mpi_fetchMessage()</a>, <a class="el" href="ne2k_8c-source.html#l00353">ne2kFreeBuffer()</a>, <a class="el" href="libcpp_8cc-source.html#l00064">operator delete()</a>, <a class="el" href="libcpp_8cc-source.html#l00051">operator delete[]()</a>, <a class="el" href="exec_8c-source.html#l00552">sys_exec()</a>, <a class="el" href="gen__calls_8c-source.html#l00067">sys_write()</a>, <a class="el" href="exec_8c-source.html#l00334">sysExec()</a>, <a class="el" href="systemtask_8c-source.html#l00048">systemTask()</a>, <a class="el" href="dirCache_8c-source.html#l00202">ubixfs_cacheDelete()</a>, <a class="el" href="directory_8c-source.html#l00094">ubixFSmkDir()</a>, <a class="el" href="ubthread_8c-source.html#l00064">ubthread_cond_destroy()</a>, <a class="el" href="ubthread_8c-source.html#l00070">ubthread_mutex_destroy()</a>, <a class="el" href="mount_8c-source.html#l00047">vfs_mount()</a>, and <a class="el" href="ubixfs_8c-source.html#l00232">writeUbixFS()</a>.
<p>
Here is the call graph for this function:<p><center><img src="kmalloc_8c_aa9ed6886459604cf73ccdbf6410e487_cgraph.png" border="0" usemap="#kmalloc_8c_aa9ed6886459604cf73ccdbf6410e487_cgraph_map" alt=""></center>
<map name="kmalloc_8c_aa9ed6886459604cf73ccdbf6410e487_cgraph_map">
<area href="kmalloc_8c.html#eb1c3f1ef8eb9063c2e5c4af488dd2d0" shape="rect" coords="109,56,232,83" alt="">
<area href="kprint_8h.html#b2761bdf0cca73ad0fb5880895210cd8" shape="rect" coords="441,107,508,134" alt="">
<area href="lib_2string_8h.html#ce4b911463887af5e748326323e99a23" shape="rect" coords="132,158,209,184" alt="">
<area href="spinlock_8h.html#2cd9a4502680fb8e7f0fe6b029e558b1" shape="rect" coords="131,208,211,235" alt="">
<area href="spinlock_8h.html#dd996cbbb3b9826dd9c8cf02b66a4c65" shape="rect" coords="123,259,219,286" alt="">
<area href="kpanic_8h.html#db9a182aa071791a306163d50d653deb" shape="rect" coords="297,56,364,83" alt="">
<area href="8259_8h.html#2b9ec30943ddb0a2ef3bd7ccfd2026c0" shape="rect" coords="429,6,520,32" alt="">
<area href="stdarg_8h.html#621577c2df0ad5faa281223c56eeb7a5" shape="rect" coords="439,56,511,83" alt="">
<area href="vsprintf_8c.html#c2f4c669c6f6aa6caa5ab8adb1b07dd0" shape="rect" coords="604,31,679,58" alt="">
<area href="vsprintf_8c.html#3fa7c8ef8597579301cb4b5c59bc6d9a" shape="rect" coords="601,82,681,108" alt="">
<area href="sched_8h.html#08933fe6d593a1c78b9080359f15a0b7" shape="rect" coords="280,183,381,210" alt="">
<area href="spinlock_8h.html#8f9173fadeddafa01754d6cbcc630198" shape="rect" coords="592,234,691,260" alt="">
<area href="sched_8h.html#549a0c1cc47933fa045b200690965cbd" shape="rect" coords="444,183,505,210" alt="">
<area href="sched_8h.html#e969273d772018d111e1f0344eb550f8" shape="rect" coords="568,132,715,159" alt="">
<area href="sched_8h.html#086cc0adc0b6a3860ceeeb5bc5ea94ea" shape="rect" coords="572,183,711,210" alt="">
</map>

</div>
</div><p>
<a class="anchor" name="150eab2ac4ce4553e21ca10e7f441762"></a><!-- doxytag: member="kmalloc.c::kmalloc" ref="150eab2ac4ce4553e21ca10e7f441762" args="(uInt32 len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* kmalloc           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="types_8h.html#5847ea0262a5aa61eee48cbe95544a78">uInt32</a>&nbsp;</td>
          <td class="paramname"> <em>len</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="kmalloc_8c-source.html#l00247">247</a> of file <a class="el" href="kmalloc_8c-source.html">kmalloc.c</a>.
<p>
References <a class="el" href="assert_8h-source.html#l00064">assert</a>, <a class="el" href="kmalloc_8h-source.html#l00046">memDescriptor::baseAddr</a>, <a class="el" href="kmalloc_8c-source.html#l00048">freeKernDesc</a>, <a class="el" href="kmalloc_8c-source.html#l00067">getEmptyDesc()</a>, <a class="el" href="kmalloc_8c-source.html#l00124">insertFreeDesc()</a>, <a class="el" href="kprintf_8c-source.html#l00038">kprintf()</a>, <a class="el" href="kmalloc_8h-source.html#l00047">memDescriptor::limit</a>, <a class="el" href="kmalloc_8h-source.html#l00041">MALLOC_ALIGN</a>, <a class="el" href="kmalloc_8c-source.html#l00054">mallocSpinLock</a>, <a class="el" href="kmalloc_8h-source.html#l00045">memDescriptor::next</a>, <a class="el" href="kmalloc_8h-source.html#l00044">memDescriptor::prev</a>, <a class="el" href="spinlock_8c-source.html#l00056">spinLock()</a>, <a class="el" href="spinlock_8c-source.html#l00037">spinUnlock()</a>, and <a class="el" href="kmalloc_8c-source.html#l00047">usedKernDesc</a>.
<p>
Referenced by <a class="el" href="directory_8c-source.html#l00066">addDirEntry()</a>, <a class="el" href="bioscall_8c-source.html#l00050">biosCall()</a>, <a class="el" href="devfs_8c-source.html#l00050">devfs_initialize()</a>, <a class="el" href="devfs_8c-source.html#l00178">devfs_makeNode()</a>, <a class="el" href="device_8c-source.html#l00051">device_add()</a>, <a class="el" href="elf_8c-source.html#l00111">elf_loadfile()</a>, <a class="el" href="exec_8c-source.html#l00143">execFile()</a>, <a class="el" href="kern__descrip_8c-source.html#l00067">falloc()</a>, <a class="el" href="fdc_8c-source.html#l00063">fdc_init()</a>, <a class="el" href="file_8c-source.html#l00274">fopen()</a>, <a class="el" href="hd_8c-source.html#l00039">initHardDisk()</a>, <a class="el" href="lnc_8c-source.html#l00104">initLNC()</a>, <a class="el" href="main_8c-source.html#l00097">kmain()</a>, <a class="el" href="kmod_8c-source.html#l00046">kmod_add()</a>, <a class="el" href="kmod_8c-source.html#l00075">kmod_load()</a>, <a class="el" href="ld_8c-source.html#l00042">ldEnable()</a>, <a class="el" href="lnc_8c-source.html#l00246">lncAttach()</a>, <a class="el" href="system_8c-source.html#l00069">mpi_createMbox()</a>, <a class="el" href="system_8c-source.html#l00143">mpi_postMessage()</a>, <a class="el" href="system_8c-source.html#l00108">mpi_spam()</a>, <a class="el" href="ne2k_8c-source.html#l00070">ne2k_init()</a>, <a class="el" href="ne2k_8c-source.html#l00313">ne2kAllocBuffer()</a>, <a class="el" href="ubixfs_8c-source.html#l00046">openFileUbixFS()</a>, <a class="el" href="libcpp_8cc-source.html#l00058">operator new()</a>, <a class="el" href="libcpp_8cc-source.html#l00046">operator new[]()</a>, <a class="el" href="sched_8c-source.html#l00069">sched_init()</a>, <a class="el" href="sched_8c-source.html#l00143">schedNewTask()</a>, <a class="el" href="exec_8c-source.html#l00552">sys_exec()</a>, <a class="el" href="gen__calls_8c-source.html#l00067">sys_write()</a>, <a class="el" href="kern__sysctl_8c-source.html#l00205">sysctl_add()</a>, <a class="el" href="kern__sysctl_8c-source.html#l00065">sysctl_init()</a>, <a class="el" href="exec_8c-source.html#l00334">sysExec()</a>, <a class="el" href="tty_8c-source.html#l00042">tty_init()</a>, <a class="el" href="dirCache_8c-source.html#l00185">ubixfs_cacheNew()</a>, <a class="el" href="ubixfs_8c-source.html#l00376">ubixfs_initialize()</a>, <a class="el" href="directory_8c-source.html#l00041">ubixFSLoadDir()</a>, <a class="el" href="directory_8c-source.html#l00094">ubixFSmkDir()</a>, <a class="el" href="ubixfs_8c-source.html#l00309">ubixFSUnlink()</a>, <a class="el" href="ubthread_8c-source.html#l00048">ubthread_cond_init()</a>, <a class="el" href="ubthread_8c-source.html#l00076">ubthread_create()</a>, <a class="el" href="ubthread_8c-source.html#l00056">ubthread_mutex_init()</a>, <a class="el" href="ufs_8c-source.html#l00272">ufs_openFile()</a>, <a class="el" href="mount_8c-source.html#l00047">vfs_mount()</a>, <a class="el" href="vfs_8c-source.html#l00081">vfsRegisterFS()</a>, <a class="el" href="vitals_8c-source.html#l00048">vitals_init()</a>, and <a class="el" href="ubixfs_8c-source.html#l00232">writeUbixFS()</a>.
<p>
Here is the call graph for this function:<p><center><img src="kmalloc_8c_150eab2ac4ce4553e21ca10e7f441762_cgraph.png" border="0" usemap="#kmalloc_8c_150eab2ac4ce4553e21ca10e7f441762_cgraph_map" alt=""></center>
<map name="kmalloc_8c_150eab2ac4ce4553e21ca10e7f441762_cgraph_map">
<area href="kmalloc_8c.html#f6c4ea5cb961c72548d92ff65d7e33a4" shape="rect" coords="129,198,249,224" alt="">
<area href="kprint_8h.html#b2761bdf0cca73ad0fb5880895210cd8" shape="rect" coords="551,46,617,72" alt="">
<area href="spinlock_8h.html#2cd9a4502680fb8e7f0fe6b029e558b1" shape="rect" coords="544,324,624,351" alt="">
<area href="spinlock_8h.html#dd996cbbb3b9826dd9c8cf02b66a4c65" shape="rect" coords="536,223,632,250" alt="">
<area href="kmalloc_8c.html#eb1c3f1ef8eb9063c2e5c4af488dd2d0" shape="rect" coords="128,71,251,98" alt="">
<area href="kpanic_8h.html#db9a182aa071791a306163d50d653deb" shape="rect" coords="360,71,427,98" alt="">
<area href="lib_2string_8h.html#ce4b911463887af5e748326323e99a23" shape="rect" coords="355,172,432,199" alt="">
<area href="paging_8h.html#541f0b43826a40b9e978f5479080bb0e" shape="rect" coords="299,274,488,300" alt="">
</map>

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

<p>

<p>
Definition at line <a class="el" href="kmalloc_8c-source.html#l00185">185</a> of file <a class="el" href="kmalloc_8c-source.html">kmalloc.c</a>.
<p>
References <a class="el" href="kmalloc_8h-source.html#l00046">memDescriptor::baseAddr</a>, <a class="el" href="kmalloc_8c-source.html#l00049">emptyKernDesc</a>, <a class="el" href="kmalloc_8c-source.html#l00048">freeKernDesc</a>, <a class="el" href="kmalloc_8h-source.html#l00047">memDescriptor::limit</a>, <a class="el" href="kmalloc_8h-source.html#l00045">memDescriptor::next</a>, and <a class="el" href="kmalloc_8h-source.html#l00044">memDescriptor::prev</a>.
</div>
</div><p>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="2d89e65292e7be33cb2424224396ee2d"></a><!-- doxytag: member="kmalloc.c::emptyDescSpinLock" ref="2d89e65292e7be33cb2424224396ee2d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="spinlock_8h.html#a240e9404b4ede1e0d714610080d1176">spinLock_t</a> <a class="el" href="kmalloc_8c.html#2d89e65292e7be33cb2424224396ee2d">emptyDescSpinLock</a> = SPIN_LOCK_INITIALIZER<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="kmalloc_8c-source.html#l00055">55</a> of file <a class="el" href="kmalloc_8c-source.html">kmalloc.c</a>.
<p>
Referenced by <a class="el" href="kmalloc_8c-source.html#l00067">getEmptyDesc()</a>.
</div>
</div><p>
<a class="anchor" name="33325db110e0782930deda9b52e7224b"></a><!-- doxytag: member="kmalloc.c::emptyKernDesc" ref="33325db110e0782930deda9b52e7224b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structmemDescriptor.html">memDescriptor</a>* <a class="el" href="kmalloc_8c.html#33325db110e0782930deda9b52e7224b">emptyKernDesc</a> = 0x0<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="kmalloc_8c-source.html#l00049">49</a> of file <a class="el" href="kmalloc_8c-source.html">kmalloc.c</a>.
<p>
Referenced by <a class="el" href="kmalloc_8c-source.html#l00067">getEmptyDesc()</a>, and <a class="el" href="kmalloc_8c-source.html#l00185">mergeMemBlocks()</a>.
</div>
</div><p>
<a class="anchor" name="a0c5be194ccb3f36a4ea8e666fbd2dac"></a><!-- doxytag: member="kmalloc.c::freeKernDesc" ref="a0c5be194ccb3f36a4ea8e666fbd2dac" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structmemDescriptor.html">memDescriptor</a>* <a class="el" href="kmalloc_8c.html#a0c5be194ccb3f36a4ea8e666fbd2dac">freeKernDesc</a> = 0x0<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="kmalloc_8c-source.html#l00048">48</a> of file <a class="el" href="kmalloc_8c-source.html">kmalloc.c</a>.
<p>
Referenced by <a class="el" href="kmalloc_8c-source.html#l00124">insertFreeDesc()</a>, <a class="el" href="kmalloc_8c-source.html#l00247">kmalloc()</a>, and <a class="el" href="kmalloc_8c-source.html#l00185">mergeMemBlocks()</a>.
</div>
</div><p>
<a class="anchor" name="6f529a6db980782464a6c1bb7eddd09c"></a><!-- doxytag: member="kmalloc.c::mallocSpinLock" ref="6f529a6db980782464a6c1bb7eddd09c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="spinlock_8h.html#a240e9404b4ede1e0d714610080d1176">spinLock_t</a> <a class="el" href="kmalloc_8c.html#6f529a6db980782464a6c1bb7eddd09c">mallocSpinLock</a> = SPIN_LOCK_INITIALIZER<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="kmalloc_8c-source.html#l00054">54</a> of file <a class="el" href="kmalloc_8c-source.html">kmalloc.c</a>.
<p>
Referenced by <a class="el" href="kmalloc_8c-source.html#l00351">kfree()</a>, and <a class="el" href="kmalloc_8c-source.html#l00247">kmalloc()</a>.
</div>
</div><p>
<a class="anchor" name="f60f75b69fa71f90b84c0dd58f0040a5"></a><!-- doxytag: member="kmalloc.c::usedKernDesc" ref="f60f75b69fa71f90b84c0dd58f0040a5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structmemDescriptor.html">memDescriptor</a>* <a class="el" href="kmalloc_8c.html#f60f75b69fa71f90b84c0dd58f0040a5">usedKernDesc</a> = 0x0<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>
Definition at line <a class="el" href="kmalloc_8c-source.html#l00047">47</a> of file <a class="el" href="kmalloc_8c-source.html">kmalloc.c</a>.
<p>
Referenced by <a class="el" href="kmalloc_8c-source.html#l00351">kfree()</a>, and <a class="el" href="kmalloc_8c-source.html#l00247">kmalloc()</a>.
</div>
</div><p>
<hr size="1"><address style="align: right;"><small>Generated on Fri Dec 15 11:24:40 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>