2019-07-09 03:15:34 +03:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2019-06-22 20:30:09 +03:00
< 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" / >
2019-07-09 03:15:34 +03:00
< meta name = "generator" content = "Doxygen 1.8.15" / >
2019-06-22 20:30:09 +03:00
< meta name = "viewport" content = "width=device-width, initial-scale=1" / >
< title > mi-malloc: Aligned Allocation< / 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 = "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" >
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3& dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function() { init_search(); });
/* @license-end */
< / script >
< link href = "doxygen.css" rel = "stylesheet" type = "text/css" / >
< link href = "mimalloc-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 = "mimalloc-logo.svg" / > < / td >
< td id = "projectalign" style = "padding-left: 0.5em;" >
< div id = "projectname" > mi-malloc
  < span id = "projectnumber" > 1.0< / span >
< / div >
< / td >
< td > < 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 >
< / td >
< / tr >
< / tbody >
< / table >
< / div >
<!-- end header part -->
2019-07-09 03:15:34 +03:00
<!-- Generated by Doxygen 1.8.15 -->
2019-06-22 20:30:09 +03:00
< script type = "text/javascript" >
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3& dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
< / script >
< / 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('group__aligned.html','');});
/* @license-end */
< / script >
< div id = "doc-content" >
<!-- 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 class = "header" >
< div class = "summary" >
< a href = "#func-members" > Functions< / a > < / div >
< div class = "headertitle" >
< div class = "title" > Aligned Allocation< / div > < / div >
< / div > <!-- header -->
< div class = "contents" >
< p > Allocating aligned memory blocks.
< a href = "#details" > More...< / a > < / p >
< table class = "memberdecls" >
< tr class = "heading" > < td colspan = "2" > < h2 class = "groupheader" > < a name = "func-members" > < / a >
Functions< / h2 > < / td > < / tr >
< tr class = "memitem:ga68930196751fa2cca9e1fd0d71bade56" > < td class = "memItemLeft" align = "right" valign = "top" > void *  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__aligned.html#ga68930196751fa2cca9e1fd0d71bade56" > mi_malloc_aligned< / a > (size_t size, size_t alignment)< / td > < / tr >
< tr class = "memdesc:ga68930196751fa2cca9e1fd0d71bade56" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Allocate < em > size< / em > bytes aligned by < em > alignment< / em > . < a href = "#ga68930196751fa2cca9e1fd0d71bade56" > More...< / a > < br / > < / td > < / tr >
< tr class = "separator:ga68930196751fa2cca9e1fd0d71bade56" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ga0cadbcf5b89a7b6fb171bc8df8734819" > < td class = "memItemLeft" align = "right" valign = "top" > void *  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__aligned.html#ga0cadbcf5b89a7b6fb171bc8df8734819" > mi_zalloc_aligned< / a > (size_t size, size_t alignment)< / td > < / tr >
< tr class = "separator:ga0cadbcf5b89a7b6fb171bc8df8734819" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ga53dddb4724042a90315b94bc268fb4c9" > < td class = "memItemLeft" align = "right" valign = "top" > void *  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__aligned.html#ga53dddb4724042a90315b94bc268fb4c9" > mi_calloc_aligned< / a > (size_t count, size_t size, size_t alignment)< / td > < / tr >
< tr class = "separator:ga53dddb4724042a90315b94bc268fb4c9" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ga4028d1cf4aa4c87c880747044a8322ae" > < td class = "memItemLeft" align = "right" valign = "top" > void *  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__aligned.html#ga4028d1cf4aa4c87c880747044a8322ae" > mi_realloc_aligned< / a > (void *p, size_t newsize, size_t alignment)< / td > < / tr >
< tr class = "separator:ga4028d1cf4aa4c87c880747044a8322ae" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ga5850da130c936bd77db039dcfbc8295d" > < td class = "memItemLeft" align = "right" valign = "top" > void *  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__aligned.html#ga5850da130c936bd77db039dcfbc8295d" > mi_malloc_aligned_at< / a > (size_t size, size_t alignment, size_t offset)< / td > < / tr >
< tr class = "memdesc:ga5850da130c936bd77db039dcfbc8295d" > < td class = "mdescLeft" >   < / td > < td class = "mdescRight" > Allocate < em > size< / em > bytes aligned by < em > alignment< / em > at a specified < em > offset< / em > . < a href = "#ga5850da130c936bd77db039dcfbc8295d" > More...< / a > < br / > < / td > < / tr >
< tr class = "separator:ga5850da130c936bd77db039dcfbc8295d" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ga5f8c2353766db522565e642fafd8a3f8" > < td class = "memItemLeft" align = "right" valign = "top" > void *  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__aligned.html#ga5f8c2353766db522565e642fafd8a3f8" > mi_zalloc_aligned_at< / a > (size_t size, size_t alignment, size_t offset)< / td > < / tr >
< tr class = "separator:ga5f8c2353766db522565e642fafd8a3f8" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:ga08647c4593f3b2eef24a919a73eba3a3" > < td class = "memItemLeft" align = "right" valign = "top" > void *  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__aligned.html#ga08647c4593f3b2eef24a919a73eba3a3" > mi_calloc_aligned_at< / a > (size_t count, size_t size, size_t alignment, size_t offset)< / td > < / tr >
< tr class = "separator:ga08647c4593f3b2eef24a919a73eba3a3" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< tr class = "memitem:gaf66a9ae6c6f08bd6be6fb6ea771faffb" > < td class = "memItemLeft" align = "right" valign = "top" > void *  < / td > < td class = "memItemRight" valign = "bottom" > < a class = "el" href = "group__aligned.html#gaf66a9ae6c6f08bd6be6fb6ea771faffb" > mi_realloc_aligned_at< / a > (void *p, size_t newsize, size_t alignment, size_t offset)< / td > < / tr >
< tr class = "separator:gaf66a9ae6c6f08bd6be6fb6ea771faffb" > < td class = "memSeparator" colspan = "2" >   < / td > < / tr >
< / table >
< a name = "details" id = "details" > < / a > < h2 class = "groupheader" > Detailed Description< / h2 >
< p > Allocating aligned memory blocks. < / p >
< h2 class = "groupheader" > Function Documentation< / h2 >
< a id = "ga53dddb4724042a90315b94bc268fb4c9" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ga53dddb4724042a90315b94bc268fb4c9" > ◆ < / a > < / span > mi_calloc_aligned()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void* mi_calloc_aligned < / td >
< td > (< / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > count< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > size< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > alignment< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "ga08647c4593f3b2eef24a919a73eba3a3" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ga08647c4593f3b2eef24a919a73eba3a3" > ◆ < / a > < / span > mi_calloc_aligned_at()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void* mi_calloc_aligned_at < / td >
< td > (< / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > count< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > size< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > alignment< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > offset< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "ga68930196751fa2cca9e1fd0d71bade56" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ga68930196751fa2cca9e1fd0d71bade56" > ◆ < / a > < / span > mi_malloc_aligned()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void* mi_malloc_aligned < / td >
< td > (< / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > size< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > alignment< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Allocate < em > size< / em > bytes aligned by < em > alignment< / em > . < / p >
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > size< / td > < td > number of bytes to allocate. < / td > < / tr >
< tr > < td class = "paramname" > alignment< / td > < td > the minimal alignment of the allocated memory. < / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "section return" > < dt > Returns< / dt > < dd > pointer to the allocated memory or < em > NULL< / em > if out of memory. The returned pointer is aligned by < em > alignment< / em > , i.e. < code > (uintptr_t)p % alignment == 0< / code > .< / dd > < / dl >
< p > Returns a unique pointer if called with < em > size< / em > 0. < / p > < dl class = "section see" > < dt > See also< / dt > < dd > < a href = "https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/aligned-malloc?view=vs-2017" > _aligned_malloc< / a > (on Windows) < / dd >
< dd >
< a href = "http://man.openbsd.org/reallocarray" > aligned_alloc< / a > (on BSD, with switched arguments!) < / dd >
< dd >
< a href = "https://linux.die.net/man/3/posix_memalign" > posix_memalign< / a > (on Posix, with switched arguments!) < / dd >
< dd >
< a href = "https://linux.die.net/man/3/posix_memalign" > memalign< / a > (on Linux, with switched arguments!) < / dd > < / dl >
< / div >
< / div >
< a id = "ga5850da130c936bd77db039dcfbc8295d" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ga5850da130c936bd77db039dcfbc8295d" > ◆ < / a > < / span > mi_malloc_aligned_at()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void* mi_malloc_aligned_at < / td >
< td > (< / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > size< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > alignment< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > offset< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< p > Allocate < em > size< / em > bytes aligned by < em > alignment< / em > at a specified < em > offset< / em > . < / p >
< dl class = "params" > < dt > Parameters< / dt > < dd >
< table class = "params" >
< tr > < td class = "paramname" > size< / td > < td > number of bytes to allocate. < / td > < / tr >
< tr > < td class = "paramname" > alignment< / td > < td > the minimal alignment of the allocated memory at < em > offset< / em > . < / td > < / tr >
< tr > < td class = "paramname" > offset< / td > < td > the offset that should be aligned. < / td > < / tr >
< / table >
< / dd >
< / dl >
< dl class = "section return" > < dt > Returns< / dt > < dd > pointer to the allocated memory or < em > NULL< / em > if out of memory. The returned pointer is aligned by < em > alignment< / em > at < em > offset< / em > , i.e. < code > ((uintptr_t)p + offset) % alignment == 0< / code > .< / dd > < / dl >
< p > Returns a unique pointer if called with < em > size< / em > 0. < / p > < dl class = "section see" > < dt > See also< / dt > < dd > < a href = "https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/aligned-offset-malloc?view=vs-2017" > _aligned_offset_malloc< / a > (on Windows) < / dd > < / dl >
< / div >
< / div >
< a id = "ga4028d1cf4aa4c87c880747044a8322ae" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ga4028d1cf4aa4c87c880747044a8322ae" > ◆ < / a > < / span > mi_realloc_aligned()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void* mi_realloc_aligned < / td >
< td > (< / td >
< td class = "paramtype" > void *  < / td >
< td class = "paramname" > < em > p< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > newsize< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > alignment< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "gaf66a9ae6c6f08bd6be6fb6ea771faffb" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#gaf66a9ae6c6f08bd6be6fb6ea771faffb" > ◆ < / a > < / span > mi_realloc_aligned_at()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void* mi_realloc_aligned_at < / td >
< td > (< / td >
< td class = "paramtype" > void *  < / td >
< td class = "paramname" > < em > p< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > newsize< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > alignment< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > offset< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "ga0cadbcf5b89a7b6fb171bc8df8734819" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ga0cadbcf5b89a7b6fb171bc8df8734819" > ◆ < / a > < / span > mi_zalloc_aligned()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void* mi_zalloc_aligned < / td >
< td > (< / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > size< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > alignment< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / div >
< / div >
< a id = "ga5f8c2353766db522565e642fafd8a3f8" > < / a >
< h2 class = "memtitle" > < span class = "permalink" > < a href = "#ga5f8c2353766db522565e642fafd8a3f8" > ◆ < / a > < / span > mi_zalloc_aligned_at()< / h2 >
< div class = "memitem" >
< div class = "memproto" >
< table class = "memname" >
< tr >
< td class = "memname" > void* mi_zalloc_aligned_at < / td >
< td > (< / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > size< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > alignment< / em > , < / td >
< / tr >
< tr >
< td class = "paramkey" > < / td >
< td > < / td >
< td class = "paramtype" > size_t  < / td >
< td class = "paramname" > < em > offset< / em >   < / td >
< / tr >
< tr >
< td > < / td >
< td > )< / td >
< td > < / td > < td > < / td >
< / tr >
< / table >
< / div > < div class = "memdoc" >
< / 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 = "footer" > Generated by
< a href = "http://www.doxygen.org/index.html" >
2019-07-09 03:15:34 +03:00
< img class = "footer" src = "doxygen.png" alt = "doxygen" / > < / a > 1.8.15 < / li >
2019-06-22 20:30:09 +03:00
< / ul >
< / div >
< / body >
< / html >