Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 0b420d0fce195cf4115dc6a3be5c2da2 > files > 387

sphinxbase-devel-0.7-1.fc14.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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"/>
<title>SphinxBase: listelem_alloc_s Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.3 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">SphinxBase&#160;<span id="projectnumber">0.6</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('structlistelem__alloc__s.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-attribs">Data Fields</a>  </div>
  <div class="headertitle">
<h1>listelem_alloc_s Struct Reference</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="listelem_alloc_s" -->
<p>Fast linked list allocator.  
<a href="#_details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2c3be8623c5bb2d4afb3ad888790a4eb"></a><!-- doxytag: member="listelem_alloc_s::freelist" ref="a2c3be8623c5bb2d4afb3ad888790a4eb" args="" -->
char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlistelem__alloc__s.html#a2c3be8623c5bb2d4afb3ad888790a4eb">freelist</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">ptr to first element in freelist <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgnode__s.html">glist_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlistelem__alloc__s.html#a1216578b1d5416dc0a03c802cfa1def9">blocks</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Linked list of blocks allocated.  <a href="#a1216578b1d5416dc0a03c802cfa1def9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ada7b3fcd2f878e67e07e4bb185bb3015"></a><!-- doxytag: member="listelem_alloc_s::blocksize" ref="ada7b3fcd2f878e67e07e4bb185bb3015" args="" -->
<a class="el" href="structgnode__s.html">glist_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlistelem__alloc__s.html#ada7b3fcd2f878e67e07e4bb185bb3015">blocksize</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of elements in each block. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9e27c7163c45a43f8dfd667cbc014f49"></a><!-- doxytag: member="listelem_alloc_s::elemsize" ref="a9e27c7163c45a43f8dfd667cbc014f49" args="" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlistelem__alloc__s.html#a9e27c7163c45a43f8dfd667cbc014f49">elemsize</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of (char *) in element. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab96fd1e097105a34d6ae2e79ae8e2520"></a><!-- doxytag: member="listelem_alloc_s::blk_alloc" ref="ab96fd1e097105a34d6ae2e79ae8e2520" args="" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlistelem__alloc__s.html#ab96fd1e097105a34d6ae2e79ae8e2520">blk_alloc</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of alloc operations before increasing blocksize. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a90c7d399a72d00cdb476bd5f518b4711"></a><!-- doxytag: member="listelem_alloc_s::n_blocks" ref="a90c7d399a72d00cdb476bd5f518b4711" args="" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>n_blocks</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2a2fa0a7a1e03d6aee2f685dbc1db774"></a><!-- doxytag: member="listelem_alloc_s::n_alloc" ref="a2a2fa0a7a1e03d6aee2f685dbc1db774" args="" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>n_alloc</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adde313f665b6f2be9ea22f4d209e576d"></a><!-- doxytag: member="listelem_alloc_s::n_freed" ref="adde313f665b6f2be9ea22f4d209e576d" args="" -->
size_t&#160;</td><td class="memItemRight" valign="bottom"><b>n_freed</b></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Fast linked list allocator. </p>
<p>We keep a separate linked list for each element-size. Element-size must be a multiple of pointer-size.</p>
<p>Initially a block of empty elements is allocated, where the first machine word in each element points to the next available element. To allocate, we use this pointer to move the freelist to the next element, then return the current element.</p>
<p>The last element in the list starts with a NULL pointer, which is used as a signal to allocate a new block of elements.</p>
<p>In order to be able to actually release the memory allocated, we have to add a linked list of block pointers. This shouldn't create much overhead since we never access it except when freeing the allocator. </p>

<p>Definition at line <a class="el" href="listelem__alloc_8c_source.html#l00065">65</a> of file <a class="el" href="listelem__alloc_8c_source.html">listelem_alloc.c</a>.</p>
</div><hr/><h2>Field Documentation</h2>
<a class="anchor" id="a1216578b1d5416dc0a03c802cfa1def9"></a><!-- doxytag: member="listelem_alloc_s::blocks" ref="a1216578b1d5416dc0a03c802cfa1def9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structgnode__s.html">glist_t</a> <a class="el" href="structlistelem__alloc__s.html#a1216578b1d5416dc0a03c802cfa1def9">listelem_alloc_s::blocks</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Linked list of blocks allocated. </p>

<p>Definition at line <a class="el" href="listelem__alloc_8c_source.html#l00067">67</a> of file <a class="el" href="listelem__alloc_8c_source.html">listelem_alloc.c</a>.</p>

<p>Referenced by <a class="el" href="listelem__alloc_8c_source.html#l00121">listelem_alloc_free()</a>, <a class="el" href="listelem__alloc_8c_source.html#l00087">listelem_alloc_init()</a>, <a class="el" href="listelem__alloc_8c_source.html#l00233">listelem_get_item()</a>, and <a class="el" href="listelem__alloc_8c_source.html#l00273">listelem_stats()</a>.</p>

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li>src/libsphinxbase/util/<a class="el" href="listelem__alloc_8c_source.html">listelem_alloc.c</a></li>
</ul>
</div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="structlistelem__alloc__s.html">listelem_alloc_s</a>      </li>
      <li class="footer">Generated on Tue Apr 19 2011 for SphinxBase by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </li>
    </ul>
  </div>

</body>
</html>