cyclone/c-api/gc_8c_a49cae07e0e8f45e855b0c4ce624b3f13.html
2018-08-24 11:58:33 -04:00

233 lines
18 KiB
HTML

<!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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Cyclone Scheme: gc_try_alloc_fixed_size</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="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>
<script type="text/javascript">
$(document).ready(function() { init_search(); });
</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="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Cyclone Scheme
&#160;<span id="projectnumber">0.9</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<!-- 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 id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="gc_8c.html">gc.c</a></li> </ul>
</div>
</div><!-- top -->
<div class="contents">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top">
<div class="navtab">
<table>
<tr><td class="navtab"><a class="qindex" href="gc_8c_ab38f9f6afa83d20b2d0957e276b044a7.html#ab38f9f6afa83d20b2d0957e276b044a7">collector_main</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_acbfb210eb1275ad8c29b9937862eede5.html#acbfb210eb1275ad8c29b9937862eede5">Cyc_apply_from_buf</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_a00c70068e04e0c88edd8709db8abcfc2.html#a00c70068e04e0c88edd8709db8abcfc2">Cyc_mutators</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_a5ed330ac347699255d102945660d030b.html#a5ed330ac347699255d102945660d030b">debug_dump_globals</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_gadd82bcff4895bd4ca335a45109597102.html#gadd82bcff4895bd4ca335a45109597102">gc_add_mutator</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_aaadcbfc1097af52c1820459c56a5682e.html#aaadcbfc1097af52c1820459c56a5682e">gc_align</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga976021ebdbed6eb538d78c744c1ef931.html#ga976021ebdbed6eb538d78c744c1ef931">gc_alloc</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_gaec0fd25a5b345b9ad50842b08bed4027.html#gaec0fd25a5b345b9ad50842b08bed4027">gc_alloc_bignum</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_a9f542dda06a1a342304c570baf6347a0.html#a9f542dda06a1a342304c570baf6347a0">gc_alloc_from_bignum</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga2f62288e6f57fe9fbff4bae5bd782e44.html#ga2f62288e6f57fe9fbff4bae5bd782e44">gc_allocated_bytes</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_a212e525686d81386c8d047f63e1c8b88.html#a212e525686d81386c8d047f63e1c8b88">GC_BLOCK_BITS</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_a1ac66c95bfd99ebbe41ffc01bc9cad6a.html#a1ac66c95bfd99ebbe41ffc01bc9cad6a">GC_BLOCK_SIZE</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_ad8f6f6f44acdb47b0ef6451f9822377e.html#ad8f6f6f44acdb47b0ef6451f9822377e">gc_collector</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_a098c8f133063f61acf0ea4f61e02f759.html#a098c8f133063f61acf0ea4f61e02f759">gc_collector_mark_gray</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_ab08135ec4278369570fa94a56283bbb1.html#ab08135ec4278369570fa94a56283bbb1">gc_collector_sweep</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_gadd73c9a0b9b1112d6d941dee642893e7.html#gadd73c9a0b9b1112d6d941dee642893e7">gc_collector_trace</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_a2df4a8daf59317e2f3170110e9d4463a.html#a2df4a8daf59317e2f3170110e9d4463a">gc_convert_heap_page_to_free_list</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga15186c504a0fb0727cd7d405b0b2d9a5.html#ga15186c504a0fb0727cd7d405b0b2d9a5">gc_copy_obj</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga4c76104f4bb633c0594334508f8a19b1.html#ga4c76104f4bb633c0594334508f8a19b1">gc_empty_collector_stack</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_ae4614992ada9d196d382758884faebc3.html#ae4614992ada9d196d382758884faebc3">gc_find_heap_with_chunk_size</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_aa4acc565d76fb74488e23f45d762aada.html#aa4acc565d76fb74488e23f45d762aada">gc_free_chunk_size</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_a474b19188d154daf757fbe51ba078f4d.html#a474b19188d154daf757fbe51ba078f4d">gc_free_old_thread_data</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_gacc34220240fa78aaed5482565c8952e6.html#gacc34220240fa78aaed5482565c8952e6">gc_grow_heap</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga20cf7c4fac92c3cb1adb025813ea2a99.html#ga20cf7c4fac92c3cb1adb025813ea2a99">gc_handshake</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_a8a23f461bddb011176f88973fe68ef8a.html#a8a23f461bddb011176f88973fe68ef8a">gc_heap_align</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga977b02989cc5091ac256ca154f5e78ee.html#ga977b02989cc5091ac256ca154f5e78ee">gc_heap_create</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_aaf4dff9f8ddf206982cfb0478f6cad86.html#aaf4dff9f8ddf206982cfb0478f6cad86">gc_heap_end</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_ad87edea22c1cba9beebb70ca62dc17bf.html#ad87edea22c1cba9beebb70ca62dc17bf">gc_heap_first_block</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_gab4c9dba3c0f373c7a74e89e35b919fe8.html#gab4c9dba3c0f373c7a74e89e35b919fe8">gc_heap_free</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_ac523f279b0046926d76d1a56a031ef06.html#ac523f279b0046926d76d1a56a031ef06">gc_heap_free_size</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga7f1dfa939185ca0cf6d194c991000185.html#ga7f1dfa939185ca0cf6d194c991000185">gc_heap_last</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_a0694b4391145f3e5aac7c12e7d42c16c.html#a0694b4391145f3e5aac7c12e7d42c16c">gc_heap_last_block</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_gabebf61106ee21a438dcb21fc8a9fb05b.html#gabebf61106ee21a438dcb21fc8a9fb05b">gc_heap_merge</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_a78b7bfab29a50206bfe75ff070e65749.html#a78b7bfab29a50206bfe75ff070e65749">gc_heap_pad_size</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga6168132cb99647f6fb0efe2fca12d3d0.html#ga6168132cb99647f6fb0efe2fca12d3d0">gc_init_fixed_size_free_list</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga21e9a50a7de06a81cbcc934bd8e4809c.html#ga21e9a50a7de06a81cbcc934bd8e4809c">gc_initialize</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_gafd0f39f1b19d4c634b807a97079be4fd.html#gafd0f39f1b19d4c634b807a97079be4fd">gc_is_heap_empty</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga452874caf46453570916da23c202eaff.html#ga452874caf46453570916da23c202eaff">gc_is_mutator_active</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga6490c2be516744d1cdc225b9ef2688ca.html#ga6490c2be516744d1cdc225b9ef2688ca">gc_is_stack_obj</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_a726f6a7a6d07b58bbca64258fd1358e4.html#a726f6a7a6d07b58bbca64258fd1358e4">gc_mark_black</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_gabbaa9e82df175595165b5309ffb360b5.html#gabbaa9e82df175595165b5309ffb360b5">gc_mark_globals</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_gaa8776e5cc0c3bf309c76dc61f0c7f838.html#gaa8776e5cc0c3bf309c76dc61f0c7f838">gc_mark_gray</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga7fac46df80136375f0aabd3af30a8874.html#ga7fac46df80136375f0aabd3af30a8874">gc_mark_gray2</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga2031d7ff5d1678d2aa7954c5fa3b989e.html#ga2031d7ff5d1678d2aa7954c5fa3b989e">gc_merge_all_heaps</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga6a88578b8802b9bca9f56e0ccfdff435.html#ga6a88578b8802b9bca9f56e0ccfdff435">gc_mut_cooperate</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_gaa1745070eb682d926f656f3017ccedda.html#gaa1745070eb682d926f656f3017ccedda">gc_mut_update</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_gadf94b852782bd0108138e3b97fc1113b.html#gadf94b852782bd0108138e3b97fc1113b">gc_mutator_thread_blocked</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga518020a5c7aeb3cdc0ad1d2155217c7d.html#ga518020a5c7aeb3cdc0ad1d2155217c7d">gc_mutator_thread_runnable</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_a054bcac795a4872ffd3ef3012887e35a.html#a054bcac795a4872ffd3ef3012887e35a">gc_num_unswept_heaps</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga63112677a59a58464bc08d5ef2a91c6c.html#ga63112677a59a58464bc08d5ef2a91c6c">gc_post_handshake</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_ade0df17c8cbb93ba9fad250fc98144c0.html#ade0df17c8cbb93ba9fad250fc98144c0">gc_print_fixed_size_free_list</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga2118e3b31300a7ddcd96c95e218f862e.html#ga2118e3b31300a7ddcd96c95e218f862e">gc_print_stats</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_a969dac99c3e0290a9221d7fe78003f29.html#a969dac99c3e0290a9221d7fe78003f29">gc_recopy_obj</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga1091a8b18fc274af25f5155e3bf7a1ff.html#ga1091a8b18fc274af25f5155e3bf7a1ff">gc_remove_mutator</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga9f71e43bf607339bc52398fb7ba3ec7d.html#ga9f71e43bf607339bc52398fb7ba3ec7d">gc_sleep_ms</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_gacdd780abddd9b089bc19771035890bf5.html#gacdd780abddd9b089bc19771035890bf5">gc_start_collector</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_ab9a89146d6ef1bcd00e0aa5f370dcebf.html#ab9a89146d6ef1bcd00e0aa5f370dcebf">gc_start_major_collection</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_ae989c655a69c574af497e996f27e6cae.html#ae989c655a69c574af497e996f27e6cae">gc_sum_pending_writes</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_gab3d11226cf9d3e067df4c42c9f1b8572.html#gab3d11226cf9d3e067df4c42c9f1b8572">gc_sweep</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_a48112bef4de7861eeb24119dac84bf7e.html#a48112bef4de7861eeb24119dac84bf7e">gc_sweep_fixed_size</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga34834cdbd4e4f511ad8e918f0fb2d765.html#ga34834cdbd4e4f511ad8e918f0fb2d765">gc_thr_add_to_move_buffer</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga46bc54c66f56b0006420ce310c2729c1.html#ga46bc54c66f56b0006420ce310c2729c1">gc_thr_grow_move_buffer</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_gabf9a3adddd986f1f953d4ddc1c795491.html#gabf9a3adddd986f1f953d4ddc1c795491">gc_thread_data_free</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga9c86247beb6521f42271c87685c41288.html#ga9c86247beb6521f42271c87685c41288">gc_thread_data_init</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga6934bc689d9c64df40d96fbd4db8cbd7.html#ga6934bc689d9c64df40d96fbd4db8cbd7">gc_try_alloc</a></td></tr>
<tr><td class="navtab"><a class="qindexHL" href="gc_8c_a49cae07e0e8f45e855b0c4ce624b3f13.html#a49cae07e0e8f45e855b0c4ce624b3f13">gc_try_alloc_fixed_size</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_gaa5990197c58d7b1f3894e1bb5a7fc835.html#gaa5990197c58d7b1f3894e1bb5a7fc835">gc_try_alloc_slow</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_a7b449d62be677afb4ca6f1d22ffe03c1.html#a7b449d62be677afb4ca6f1d22ffe03c1">gc_try_alloc_slow_fixed_size</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="group__gc__major_ga51690b332091995ffd5c7318f569f934.html#ga51690b332091995ffd5c7318f569f934">gc_wait_handshake</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_a3fd0cf1889f90874133c0eb94866180c.html#a3fd0cf1889f90874133c0eb94866180c">gc_zero_read_write_counts</a></td></tr>
<tr><td class="navtab"><a class="qindex" href="gc_8c_a3e7330901306445b76b458a2d43d42e6.html#a3e7330901306445b76b458a2d43d42e6">old_mutators</a></td></tr>
</table>
</div>
</td>
<td valign="top" class="mempage">
<a class="anchor" id="a49cae07e0e8f45e855b0c4ce624b3f13"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* gc_try_alloc_fixed_size </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__gc__major_ga734c99799a64ad0450ca6879900640f5.html#ga734c99799a64ad0450ca6879900640f5">gc_heap</a> *&#160;</td>
<td class="paramname"><em>h</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>heap_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__gc__major_gad107cf5b38c74e2cd84a8159940b6579.html#gad107cf5b38c74e2cd84a8159940b6579">gc_thread_data</a> *&#160;</td>
<td class="paramname"><em>thd</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Same as <code>gc_try_alloc</code> but optimized for heaps for fixed-sized objects. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">h</td><td>Heap to allocate from </td></tr>
<tr><td class="paramname">heap_type</td><td>Define the size of objects that will be allocated on this heap </td></tr>
<tr><td class="paramname">size</td><td>Size of the requested object, in bytes </td></tr>
<tr><td class="paramname">obj</td><td>Object containing data that will be copied to the heap </td></tr>
<tr><td class="paramname">thd</td><td>Thread data for the mutator using this heap </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to the newly-allocated object, or <code>NULL</code> if allocation failed</dd></dl>
<p>This function will fail if there is no space on the heap for the requested object. </p>
</div>
</div>
</td>
</tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>