1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
<!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"/>
<title>C Standard Library Extensions: cxmemory.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">C Standard Library Extensions
 <span id="projectnumber">1.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.8.0 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li><a href="dirs.html"><span>Directories</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File List</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_c2959b2ad5731f3b356ab222d87e802c.html">cext</a> </li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">cxmemory.h</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: cxmemory.h,v 1.5 2011/02/21 14:15:31 rpalsa Exp $</span>
<a name="l00002"></a>00002 <span class="comment"> *</span>
<a name="l00003"></a>00003 <span class="comment"> * This file is part of the ESO C Extension Library</span>
<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2001-2011 European Southern Observatory</span>
<a name="l00005"></a>00005 <span class="comment"> *</span>
<a name="l00006"></a>00006 <span class="comment"> * This program is free software; you can redistribute it and/or modify</span>
<a name="l00007"></a>00007 <span class="comment"> * it under the terms of the GNU General Public License as published by</span>
<a name="l00008"></a>00008 <span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span>
<a name="l00009"></a>00009 <span class="comment"> * (at your option) any later version.</span>
<a name="l00010"></a>00010 <span class="comment"> *</span>
<a name="l00011"></a>00011 <span class="comment"> * This program is distributed in the hope that it will be useful,</span>
<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
<a name="l00014"></a>00014 <span class="comment"> * GNU General Public License for more details.</span>
<a name="l00015"></a>00015 <span class="comment"> *</span>
<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU General Public License</span>
<a name="l00017"></a>00017 <span class="comment"> * along with this program; if not, write to the Free Software</span>
<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA</span>
<a name="l00019"></a>00019 <span class="comment"> */</span>
<a name="l00020"></a>00020
<a name="l00021"></a>00021 <span class="comment">/*</span>
<a name="l00022"></a>00022 <span class="comment"> * $Author: rpalsa $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2011/02/21 14:15:31 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.5 $</span>
<a name="l00025"></a>00025 <span class="comment"> * $Name: cpl-6_1_1 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef CX_MEMORY_H</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#define CX_MEMORY_H</span>
<a name="l00030"></a>00030 <span class="preprocessor"></span>
<a name="l00031"></a>00031 <span class="preprocessor">#include <cxtypes.h></span>
<a name="l00032"></a>00032
<a name="l00033"></a>00033
<a name="l00034"></a>00034 CX_BEGIN_DECLS
<a name="l00035"></a>00035
<a name="l00036"></a>00036 <span class="keyword">struct </span>_cx_memory_vtable_ {
<a name="l00037"></a>00037 cxptr (*malloc) (cxsize);
<a name="l00038"></a>00038 cxptr (*calloc) (cxsize, cxsize);
<a name="l00039"></a>00039 cxptr (*realloc) (cxptr, cxsize);
<a name="l00040"></a>00040 void (*free) (cxptr);
<a name="l00041"></a>00041 };
<a name="l00042"></a>00042
<a name="l00043"></a>00043 <span class="keyword">typedef</span> <span class="keyword">struct </span>_cx_memory_vtable_ cx_memory_vtable;
<a name="l00044"></a>00044
<a name="l00045"></a>00045
<a name="l00046"></a>00046
<a name="l00047"></a>00047 <span class="comment">/*</span>
<a name="l00048"></a>00048 <span class="comment"> * Memory allocation functions</span>
<a name="l00049"></a>00049 <span class="comment"> */</span>
<a name="l00050"></a>00050
<a name="l00051"></a>00051 <span class="keywordtype">void</span> <a class="code" href="group__cxmemory.html#ga0c60a509c010b61711b01103ae030b4c" title="Install a new set of memory managmement functions.">cx_memory_vtable_set</a>(<span class="keyword">const</span> cx_memory_vtable *);
<a name="l00052"></a>00052 cxbool <a class="code" href="group__cxmemory.html#gae489c929c01055ebf1fd49b2148c2f92" title="Check if the system's defaults are used for memory allocation.">cx_memory_is_system_malloc</a>(<span class="keywordtype">void</span>);
<a name="l00053"></a>00053
<a name="l00054"></a>00054 cxptr <a class="code" href="group__cxmemory.html#ga7ae1df2916d7231b1959cebcf4acafab" title="Allocate nbytes bytes.">cx_malloc</a>(cxsize);
<a name="l00055"></a>00055 cxptr <a class="code" href="group__cxmemory.html#ga0bc6a6f776bf144d1e5305e447da3631" title="Allocate nbytes bytes and clear them.">cx_malloc_clear</a>(cxsize);
<a name="l00056"></a>00056 cxptr <a class="code" href="group__cxmemory.html#gad6e24975b7161a4d3f5fe49fd84df740" title="Allocate memory for natoms elements of size size.">cx_calloc</a>(cxsize, cxsize);
<a name="l00057"></a>00057 cxptr <a class="code" href="group__cxmemory.html#ga9bba647812fb989479d1cb2291ae3bdf" title="Change the size of a memory block.">cx_realloc</a>(cxptr, cxsize);
<a name="l00058"></a>00058 <span class="keywordtype">void</span> <a class="code" href="group__cxmemory.html#ga535a509573c6617da8f0dccdb2710bc9" title="Memory block deallocation.">cx_free</a>(cxptr);
<a name="l00059"></a>00059
<a name="l00060"></a>00060 CX_END_DECLS
<a name="l00061"></a>00061
<a name="l00062"></a>00062 <span class="preprocessor">#endif </span><span class="comment">/* CX_MEMORY_H */</span>
</pre></div></div><!-- contents -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue May 22 2012 06:56:06 for C Standard Library Extensions by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.0
</small></address>
</body>
</html>
|