| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.9.1"/> |
| <meta name="viewport" content="width=device-width, initial-scale=1"/> |
| <title>API Reference Manual: ODP SHARED MEMORY</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> |
| <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> |
| <link href="doxygen.css" rel="stylesheet" type="text/css" /> |
| <link href="odpdoxygen.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="ODP-Logo-HQ.svg"/></td> |
| <td id="projectalign" style="padding-left: 0.5em;"> |
| <div id="projectname">API Reference Manual |
|  <span id="projectnumber">1.47.0</span> |
| </div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <!-- end header part --> |
| <!-- Generated by Doxygen 1.9.1 --> |
| <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','.html'); |
| /* @license-end */ |
| </script> |
| <script type="text/javascript" src="menudata.js"></script> |
| <script type="text/javascript" src="menu.js"></script> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ |
| $(function() { |
| initMenu('',true,false,'search.php','Search'); |
| $(document).ready(function() { init_search(); }); |
| }); |
| /* @license-end */</script> |
| <div id="main-nav"></div> |
| </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__odp__shared__memory.html',''); initResizable(); }); |
| /* @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="#nested-classes">Data Structures</a> | |
| <a href="#define-members">Macros</a> | |
| <a href="#typedef-members">Typedefs</a> | |
| <a href="#func-members">Functions</a> </div> |
| <div class="headertitle"> |
| <div class="title">ODP SHARED MEMORY</div> </div> |
| </div><!--header--> |
| <div class="contents"> |
| <a name="details" id="details"></a><h2 class="groupheader">API Description</h2> |
| <p>Shared memory blocks. </p> |
| <table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> |
| Data Structures</h2></td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structodp__shm__info__t.html">odp_shm_info_t</a></td></tr> |
| <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Shared memory block info. <a href="structodp__shm__info__t.html#details">More...</a><br /></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structodp__shm__segment__info__t.html">odp_shm_segment_info_t</a></td></tr> |
| <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">SHM memory segment info. <a href="structodp__shm__segment__info__t.html#details">More...</a><br /></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structodp__shm__capability__t.html">odp_shm_capability_t</a></td></tr> |
| <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Shared memory capabilities. <a href="structodp__shm__capability__t.html#details">More...</a><br /></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> |
| Macros</h2></td></tr> |
| <tr class="memitem:ga6e4289975efc279bb9f31880613a9d60"><td class="memItemLeft" align="right" valign="top"><a id="ga6e4289975efc279bb9f31880613a9d60"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#ga6e4289975efc279bb9f31880613a9d60">ODP_SHM_INVALID</a>   ((<a class="el" href="group__odp__shared__memory.html#gae3879036ca8d946c48a994c6550ecd8c">odp_shm_t</a>)0)</td></tr> |
| <tr class="memdesc:ga6e4289975efc279bb9f31880613a9d60"><td class="mdescLeft"> </td><td class="mdescRight">Invalid shared memory block. <br /></td></tr> |
| <tr class="separator:ga6e4289975efc279bb9f31880613a9d60"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga13e55ef5a65af31315030b7656d9c3e8"><td class="memItemLeft" align="right" valign="top"><a id="ga13e55ef5a65af31315030b7656d9c3e8"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#ga13e55ef5a65af31315030b7656d9c3e8">ODP_SHM_NAME_LEN</a>   64</td></tr> |
| <tr class="memdesc:ga13e55ef5a65af31315030b7656d9c3e8"><td class="mdescLeft"> </td><td class="mdescRight">Maximum shared memory block name length, including the null character. <br /></td></tr> |
| <tr class="separator:ga13e55ef5a65af31315030b7656d9c3e8"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga8614b7d7d8770139e897833c9c393ea8"><td class="memItemLeft" align="right" valign="top"><a id="ga8614b7d7d8770139e897833c9c393ea8"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#ga8614b7d7d8770139e897833c9c393ea8">ODP_SHM_IOVA_INVALID</a>   ((uint64_t)-1)</td></tr> |
| <tr class="memdesc:ga8614b7d7d8770139e897833c9c393ea8"><td class="mdescLeft"> </td><td class="mdescRight">Invalid IOVA address. <br /></td></tr> |
| <tr class="separator:ga8614b7d7d8770139e897833c9c393ea8"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gae0bba623457114f080f31ad16a63b12d"><td class="memItemLeft" align="right" valign="top"><a id="gae0bba623457114f080f31ad16a63b12d"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#gae0bba623457114f080f31ad16a63b12d">ODP_SHM_PA_INVALID</a>   <a class="el" href="group__odp__shared__memory.html#ga8614b7d7d8770139e897833c9c393ea8">ODP_SHM_IOVA_INVALID</a></td></tr> |
| <tr class="memdesc:gae0bba623457114f080f31ad16a63b12d"><td class="mdescLeft"> </td><td class="mdescRight">Invalid physical address. <br /></td></tr> |
| <tr class="separator:gae0bba623457114f080f31ad16a63b12d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga8447c079c2a9d28860d749c6c4acbc11"><td class="memItemLeft" align="right" valign="top"><a id="ga8447c079c2a9d28860d749c6c4acbc11"></a> |
| #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#ga8447c079c2a9d28860d749c6c4acbc11">ODP_SHM_PROC</a>   0x2</td></tr> |
| <tr class="memdesc:ga8447c079c2a9d28860d749c6c4acbc11"><td class="mdescLeft"> </td><td class="mdescRight">Share with external processes. <br /></td></tr> |
| <tr class="separator:ga8447c079c2a9d28860d749c6c4acbc11"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga66061e2fe7d62dd124b0bfd0b19ff159"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#ga66061e2fe7d62dd124b0bfd0b19ff159">ODP_SHM_SINGLE_VA</a>   0x4</td></tr> |
| <tr class="memdesc:ga66061e2fe7d62dd124b0bfd0b19ff159"><td class="mdescLeft"> </td><td class="mdescRight">Single virtual address. <a href="group__odp__shared__memory.html#ga66061e2fe7d62dd124b0bfd0b19ff159">More...</a><br /></td></tr> |
| <tr class="separator:ga66061e2fe7d62dd124b0bfd0b19ff159"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga63179e0d567a80ad65efca2e68775743"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#ga63179e0d567a80ad65efca2e68775743">ODP_SHM_EXPORT</a>   0x08</td></tr> |
| <tr class="memdesc:ga63179e0d567a80ad65efca2e68775743"><td class="mdescLeft"> </td><td class="mdescRight">Export memory. <a href="group__odp__shared__memory.html#ga63179e0d567a80ad65efca2e68775743">More...</a><br /></td></tr> |
| <tr class="separator:ga63179e0d567a80ad65efca2e68775743"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga8df26dd665c70d4cfddef1f9a4c05a9c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#ga8df26dd665c70d4cfddef1f9a4c05a9c">ODP_SHM_HP</a>   0x10</td></tr> |
| <tr class="memdesc:ga8df26dd665c70d4cfddef1f9a4c05a9c"><td class="mdescLeft"> </td><td class="mdescRight">Use huge pages. <a href="group__odp__shared__memory.html#ga8df26dd665c70d4cfddef1f9a4c05a9c">More...</a><br /></td></tr> |
| <tr class="separator:ga8df26dd665c70d4cfddef1f9a4c05a9c"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gacb7c23de2a4243f0465ef508c89b99c8"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#gacb7c23de2a4243f0465ef508c89b99c8">ODP_SHM_HW_ACCESS</a>   0x20</td></tr> |
| <tr class="memdesc:gacb7c23de2a4243f0465ef508c89b99c8"><td class="mdescLeft"> </td><td class="mdescRight">Share memory with HW accelerators. <a href="group__odp__shared__memory.html#gacb7c23de2a4243f0465ef508c89b99c8">More...</a><br /></td></tr> |
| <tr class="separator:gacb7c23de2a4243f0465ef508c89b99c8"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga97f807e2a30b532c9c9276f38e94da49"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#ga97f807e2a30b532c9c9276f38e94da49">ODP_SHM_NO_HP</a>   0x40</td></tr> |
| <tr class="memdesc:ga97f807e2a30b532c9c9276f38e94da49"><td class="mdescLeft"> </td><td class="mdescRight">Don't use huge pages. <a href="group__odp__shared__memory.html#ga97f807e2a30b532c9c9276f38e94da49">More...</a><br /></td></tr> |
| <tr class="separator:ga97f807e2a30b532c9c9276f38e94da49"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> |
| Typedefs</h2></td></tr> |
| <tr class="memitem:gae3879036ca8d946c48a994c6550ecd8c"><td class="memItemLeft" align="right" valign="top"><a id="gae3879036ca8d946c48a994c6550ecd8c"></a> |
| typedef <a class="el" href="struct__odp__abi__shm__t.html">_odp_abi_shm_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#gae3879036ca8d946c48a994c6550ecd8c">odp_shm_t</a></td></tr> |
| <tr class="memdesc:gae3879036ca8d946c48a994c6550ecd8c"><td class="mdescLeft"> </td><td class="mdescRight">ODP shared memory block. <br /></td></tr> |
| <tr class="separator:gae3879036ca8d946c48a994c6550ecd8c"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga3d2964cf54f91a1c947c57bccc8cc257"><td class="memItemLeft" align="right" valign="top"><a id="ga3d2964cf54f91a1c947c57bccc8cc257"></a> |
| typedef struct <a class="el" href="structodp__shm__info__t.html">odp_shm_info_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#ga3d2964cf54f91a1c947c57bccc8cc257">odp_shm_info_t</a></td></tr> |
| <tr class="memdesc:ga3d2964cf54f91a1c947c57bccc8cc257"><td class="mdescLeft"> </td><td class="mdescRight">Shared memory block info. <br /></td></tr> |
| <tr class="separator:ga3d2964cf54f91a1c947c57bccc8cc257"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga70f43b6493f7ef0b8ac035132737f6bb"><td class="memItemLeft" align="right" valign="top"><a id="ga70f43b6493f7ef0b8ac035132737f6bb"></a> |
| typedef struct <a class="el" href="structodp__shm__segment__info__t.html">odp_shm_segment_info_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#ga70f43b6493f7ef0b8ac035132737f6bb">odp_shm_segment_info_t</a></td></tr> |
| <tr class="memdesc:ga70f43b6493f7ef0b8ac035132737f6bb"><td class="mdescLeft"> </td><td class="mdescRight">SHM memory segment info. <br /></td></tr> |
| <tr class="separator:ga70f43b6493f7ef0b8ac035132737f6bb"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga5443d169420009d887d15546cf9468ff"><td class="memItemLeft" align="right" valign="top"><a id="ga5443d169420009d887d15546cf9468ff"></a> |
| typedef struct <a class="el" href="structodp__shm__capability__t.html">odp_shm_capability_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#ga5443d169420009d887d15546cf9468ff">odp_shm_capability_t</a></td></tr> |
| <tr class="memdesc:ga5443d169420009d887d15546cf9468ff"><td class="mdescLeft"> </td><td class="mdescRight">Shared memory capabilities. <br /></td></tr> |
| <tr class="separator:ga5443d169420009d887d15546cf9468ff"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> |
| Functions</h2></td></tr> |
| <tr class="memitem:ga805bcd6ed13ec6477bf31bebdcadbc5e"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#ga805bcd6ed13ec6477bf31bebdcadbc5e">odp_shm_capability</a> (<a class="el" href="structodp__shm__capability__t.html">odp_shm_capability_t</a> *capa)</td></tr> |
| <tr class="memdesc:ga805bcd6ed13ec6477bf31bebdcadbc5e"><td class="mdescLeft"> </td><td class="mdescRight">Query shared memory capabilities. <a href="group__odp__shared__memory.html#ga805bcd6ed13ec6477bf31bebdcadbc5e">More...</a><br /></td></tr> |
| <tr class="separator:ga805bcd6ed13ec6477bf31bebdcadbc5e"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gacc441b0e100ec1c54e21f1745939a2d8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__shared__memory.html#gae3879036ca8d946c48a994c6550ecd8c">odp_shm_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#gacc441b0e100ec1c54e21f1745939a2d8">odp_shm_reserve</a> (const char *name, uint64_t size, uint64_t align, uint32_t flags)</td></tr> |
| <tr class="memdesc:gacc441b0e100ec1c54e21f1745939a2d8"><td class="mdescLeft"> </td><td class="mdescRight">Reserve a contiguous block of shared memory. <a href="group__odp__shared__memory.html#gacc441b0e100ec1c54e21f1745939a2d8">More...</a><br /></td></tr> |
| <tr class="separator:gacc441b0e100ec1c54e21f1745939a2d8"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga0b02991b512acc119206b44c95a86ed6"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#ga0b02991b512acc119206b44c95a86ed6">odp_shm_free</a> (<a class="el" href="group__odp__shared__memory.html#gae3879036ca8d946c48a994c6550ecd8c">odp_shm_t</a> shm)</td></tr> |
| <tr class="memdesc:ga0b02991b512acc119206b44c95a86ed6"><td class="mdescLeft"> </td><td class="mdescRight">Free a contiguous block of shared memory. <a href="group__odp__shared__memory.html#ga0b02991b512acc119206b44c95a86ed6">More...</a><br /></td></tr> |
| <tr class="separator:ga0b02991b512acc119206b44c95a86ed6"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga090e9d9d3076bfeb3d2cb60793829453"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__shared__memory.html#gae3879036ca8d946c48a994c6550ecd8c">odp_shm_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#ga090e9d9d3076bfeb3d2cb60793829453">odp_shm_lookup</a> (const char *name)</td></tr> |
| <tr class="memdesc:ga090e9d9d3076bfeb3d2cb60793829453"><td class="mdescLeft"> </td><td class="mdescRight">Lookup for a block of shared memory. <a href="group__odp__shared__memory.html#ga090e9d9d3076bfeb3d2cb60793829453">More...</a><br /></td></tr> |
| <tr class="separator:ga090e9d9d3076bfeb3d2cb60793829453"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gacd49c877d4200862691f8990ae9b2c04"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__odp__shared__memory.html#gae3879036ca8d946c48a994c6550ecd8c">odp_shm_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#gacd49c877d4200862691f8990ae9b2c04">odp_shm_import</a> (const char *remote_name, <a class="el" href="group__odp__initialization.html#ga8d362bd3c7c87ab5892ca63b15c375c0">odp_instance_t</a> odp_inst, const char *local_name)</td></tr> |
| <tr class="memdesc:gacd49c877d4200862691f8990ae9b2c04"><td class="mdescLeft"> </td><td class="mdescRight">Import a block of shared memory, exported by another ODP instance. <a href="group__odp__shared__memory.html#gacd49c877d4200862691f8990ae9b2c04">More...</a><br /></td></tr> |
| <tr class="separator:gacd49c877d4200862691f8990ae9b2c04"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gac94c4232f7cd64039bbaef601ff2c05e"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#gac94c4232f7cd64039bbaef601ff2c05e">odp_shm_addr</a> (<a class="el" href="group__odp__shared__memory.html#gae3879036ca8d946c48a994c6550ecd8c">odp_shm_t</a> shm)</td></tr> |
| <tr class="memdesc:gac94c4232f7cd64039bbaef601ff2c05e"><td class="mdescLeft"> </td><td class="mdescRight">Shared memory block address. <a href="group__odp__shared__memory.html#gac94c4232f7cd64039bbaef601ff2c05e">More...</a><br /></td></tr> |
| <tr class="separator:gac94c4232f7cd64039bbaef601ff2c05e"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga17feacc83c5c51a447d0f848120a6a59"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#ga17feacc83c5c51a447d0f848120a6a59">odp_shm_info</a> (<a class="el" href="group__odp__shared__memory.html#gae3879036ca8d946c48a994c6550ecd8c">odp_shm_t</a> shm, <a class="el" href="structodp__shm__info__t.html">odp_shm_info_t</a> *info)</td></tr> |
| <tr class="memdesc:ga17feacc83c5c51a447d0f848120a6a59"><td class="mdescLeft"> </td><td class="mdescRight">Shared memory block info. <a href="group__odp__shared__memory.html#ga17feacc83c5c51a447d0f848120a6a59">More...</a><br /></td></tr> |
| <tr class="separator:ga17feacc83c5c51a447d0f848120a6a59"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gaa5bf4248d79088c0c2f98f21df028364"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#gaa5bf4248d79088c0c2f98f21df028364">odp_shm_segment_info</a> (<a class="el" href="group__odp__shared__memory.html#gae3879036ca8d946c48a994c6550ecd8c">odp_shm_t</a> shm, uint32_t index, uint32_t num, <a class="el" href="structodp__shm__segment__info__t.html">odp_shm_segment_info_t</a> info[])</td></tr> |
| <tr class="memdesc:gaa5bf4248d79088c0c2f98f21df028364"><td class="mdescLeft"> </td><td class="mdescRight">SHM block segmentation information. <a href="group__odp__shared__memory.html#gaa5bf4248d79088c0c2f98f21df028364">More...</a><br /></td></tr> |
| <tr class="separator:gaa5bf4248d79088c0c2f98f21df028364"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga0257a416aacd98f9a25dd0685518c553"><td class="memItemLeft" align="right" valign="top"><a id="ga0257a416aacd98f9a25dd0685518c553"></a> |
| void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#ga0257a416aacd98f9a25dd0685518c553">odp_shm_print_all</a> (void)</td></tr> |
| <tr class="memdesc:ga0257a416aacd98f9a25dd0685518c553"><td class="mdescLeft"> </td><td class="mdescRight">Print all shared memory blocks. <br /></td></tr> |
| <tr class="separator:ga0257a416aacd98f9a25dd0685518c553"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ga379b09c16ca8735a4948496f4cab4ddd"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#ga379b09c16ca8735a4948496f4cab4ddd">odp_shm_print</a> (<a class="el" href="group__odp__shared__memory.html#gae3879036ca8d946c48a994c6550ecd8c">odp_shm_t</a> shm)</td></tr> |
| <tr class="memdesc:ga379b09c16ca8735a4948496f4cab4ddd"><td class="mdescLeft"> </td><td class="mdescRight">Print shared memory block info. <a href="group__odp__shared__memory.html#ga379b09c16ca8735a4948496f4cab4ddd">More...</a><br /></td></tr> |
| <tr class="separator:ga379b09c16ca8735a4948496f4cab4ddd"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:gae6ddd033897d1df9bc826a423fc910d5"><td class="memItemLeft" align="right" valign="top">uint64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__odp__shared__memory.html#gae6ddd033897d1df9bc826a423fc910d5">odp_shm_to_u64</a> (<a class="el" href="group__odp__shared__memory.html#gae3879036ca8d946c48a994c6550ecd8c">odp_shm_t</a> shm)</td></tr> |
| <tr class="memdesc:gae6ddd033897d1df9bc826a423fc910d5"><td class="mdescLeft"> </td><td class="mdescRight">Get printable value for an odp_shm_t. <a href="group__odp__shared__memory.html#gae6ddd033897d1df9bc826a423fc910d5">More...</a><br /></td></tr> |
| <tr class="separator:gae6ddd033897d1df9bc826a423fc910d5"><td class="memSeparator" colspan="2"> </td></tr> |
| </table> |
| <h2 class="groupheader">Macro Definition Documentation</h2> |
| <a id="ga66061e2fe7d62dd124b0bfd0b19ff159"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga66061e2fe7d62dd124b0bfd0b19ff159">◆ </a></span>ODP_SHM_SINGLE_VA</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define ODP_SHM_SINGLE_VA   0x4</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Single virtual address. </p> |
| <p>When set, this flag guarantees that all ODP threads sharing this memory block will see the block at the same address - regardless of ODP thread type (e.g. pthread vs. process (or fork process time)). </p> |
| <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="odp_sysinfo_8c-example.html#a390">odp_sysinfo.c</a>, and <a class="el" href="odp_timer_accuracy_8c-example.html#a155">odp_timer_accuracy.c</a>.</dd> |
| </dl> |
| |
| <p class="definition">Definition at line <a class="el" href="api_2spec_2shared__memory_8h_source.html#l00063">63</a> of file <a class="el" href="api_2spec_2shared__memory_8h_source.html">api/spec/shared_memory.h</a>.</p> |
| |
| </div> |
| </div> |
| <a id="ga63179e0d567a80ad65efca2e68775743"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga63179e0d567a80ad65efca2e68775743">◆ </a></span>ODP_SHM_EXPORT</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define ODP_SHM_EXPORT   0x08</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Export memory. </p> |
| <p>When set, the memory block becomes visible to other ODP instances through <a class="el" href="group__odp__shared__memory.html#gacd49c877d4200862691f8990ae9b2c04" title="Import a block of shared memory, exported by another ODP instance.">odp_shm_import()</a>. </p> |
| <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="odp_sysinfo_8c-example.html#a391">odp_sysinfo.c</a>.</dd> |
| </dl> |
| |
| <p class="definition">Definition at line <a class="el" href="api_2spec_2shared__memory_8h_source.html#l00071">71</a> of file <a class="el" href="api_2spec_2shared__memory_8h_source.html">api/spec/shared_memory.h</a>.</p> |
| |
| </div> |
| </div> |
| <a id="ga8df26dd665c70d4cfddef1f9a4c05a9c"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga8df26dd665c70d4cfddef1f9a4c05a9c">◆ </a></span>ODP_SHM_HP</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define ODP_SHM_HP   0x10</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Use huge pages. </p> |
| <p>When set, this flag guarantees that the memory reserved by <a class="el" href="group__odp__shared__memory.html#gacc441b0e100ec1c54e21f1745939a2d8" title="Reserve a contiguous block of shared memory.">odp_shm_reserve()</a> is allocated from huge pages. The reserve call will return failure if enough huge page memory is not available. </p> |
| <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="odp_sysinfo_8c-example.html#a392">odp_sysinfo.c</a>.</dd> |
| </dl> |
| |
| <p class="definition">Definition at line <a class="el" href="api_2spec_2shared__memory_8h_source.html#l00080">80</a> of file <a class="el" href="api_2spec_2shared__memory_8h_source.html">api/spec/shared_memory.h</a>.</p> |
| |
| </div> |
| </div> |
| <a id="gacb7c23de2a4243f0465ef508c89b99c8"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gacb7c23de2a4243f0465ef508c89b99c8">◆ </a></span>ODP_SHM_HW_ACCESS</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define ODP_SHM_HW_ACCESS   0x20</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Share memory with HW accelerators. </p> |
| <p>When set, this flag guarantees that the reserved memory is accessible by both CPUs and HW accelerators of the device. This may require e.g. that the <a class="el" href="group__odp__shared__memory.html#gacc441b0e100ec1c54e21f1745939a2d8" title="Reserve a contiguous block of shared memory.">odp_shm_reserve()</a> call configures the memory to be accessible through an Input-Output Memory Management Unit (IOMMU). </p> |
| <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="odp_sysinfo_8c-example.html#a393">odp_sysinfo.c</a>.</dd> |
| </dl> |
| |
| <p class="definition">Definition at line <a class="el" href="api_2spec_2shared__memory_8h_source.html#l00090">90</a> of file <a class="el" href="api_2spec_2shared__memory_8h_source.html">api/spec/shared_memory.h</a>.</p> |
| |
| </div> |
| </div> |
| <a id="ga97f807e2a30b532c9c9276f38e94da49"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga97f807e2a30b532c9c9276f38e94da49">◆ </a></span>ODP_SHM_NO_HP</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define ODP_SHM_NO_HP   0x40</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Don't use huge pages. </p> |
| <p>When set, this flag guarantees that the memory reserved by <a class="el" href="group__odp__shared__memory.html#gacc441b0e100ec1c54e21f1745939a2d8" title="Reserve a contiguous block of shared memory.">odp_shm_reserve()</a> is not allocated from huge pages. This flag must not be combined with ODP_SHM_HP. </p> |
| <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="odp_sysinfo_8c-example.html#a394">odp_sysinfo.c</a>.</dd> |
| </dl> |
| |
| <p class="definition">Definition at line <a class="el" href="api_2spec_2shared__memory_8h_source.html#l00099">99</a> of file <a class="el" href="api_2spec_2shared__memory_8h_source.html">api/spec/shared_memory.h</a>.</p> |
| |
| </div> |
| </div> |
| <h2 class="groupheader">Function Documentation</h2> |
| <a id="ga805bcd6ed13ec6477bf31bebdcadbc5e"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga805bcd6ed13ec6477bf31bebdcadbc5e">◆ </a></span>odp_shm_capability()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_shm_capability </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="structodp__shm__capability__t.html">odp_shm_capability_t</a> * </td> |
| <td class="paramname"><em>capa</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Query shared memory capabilities. </p> |
| <p>Outputs shared memory capabilities on success.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir">[out]</td><td class="paramname">capa</td><td>Pointer to capability structure for output</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>on success </td></tr> |
| <tr><td class="paramname"><0</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="odp_dma_perf_8c-example.html#a55">odp_dma_perf.c</a>, <a class="el" href="odp_mem_perf_8c-example.html#a7">odp_mem_perf.c</a>, <a class="el" href="odp_pool_latency_8c-example.html#a39">odp_pool_latency.c</a>, <a class="el" href="odp_sysinfo_8c-example.html#a353">odp_sysinfo.c</a>, and <a class="el" href="odp_timer_stress_8c-example.html#a38">odp_timer_stress.c</a>.</dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gacc441b0e100ec1c54e21f1745939a2d8"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gacc441b0e100ec1c54e21f1745939a2d8">◆ </a></span>odp_shm_reserve()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__shared__memory.html#gae3879036ca8d946c48a994c6550ecd8c">odp_shm_t</a> odp_shm_reserve </td> |
| <td>(</td> |
| <td class="paramtype">const char * </td> |
| <td class="paramname"><em>name</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint64_t </td> |
| <td class="paramname"><em>size</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint64_t </td> |
| <td class="paramname"><em>align</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>flags</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Reserve a contiguous block of shared memory. </p> |
| <p>Reserve a contiguous block of shared memory that fulfills size, alignment and shareability (ODP_SHM_* flags) requirements. By default (without flags), the memory block can be shared between all threads of the ODP instance. Memory address (<a class="el" href="group__odp__shared__memory.html#gac94c4232f7cd64039bbaef601ff2c05e" title="Shared memory block address.">odp_shm_addr()</a>) shareability depends on application memory model and <a class="el" href="group__odp__shared__memory.html#ga66061e2fe7d62dd124b0bfd0b19ff159" title="Single virtual address.">ODP_SHM_SINGLE_VA</a> flag usage.</p> |
| <p>Name is optional and does not need to be unique. However, if the block will be searched with <a class="el" href="group__odp__shared__memory.html#ga090e9d9d3076bfeb3d2cb60793829453" title="Lookup for a block of shared memory.">odp_shm_lookup()</a> or <a class="el" href="group__odp__shared__memory.html#gacd49c877d4200862691f8990ae9b2c04" title="Import a block of shared memory, exported by another ODP instance.">odp_shm_import()</a>, a unique name is needed for correct match.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">name</td><td>Name of the block or NULL. Maximum string length is ODP_SHM_NAME_LEN, including the null character. </td></tr> |
| <tr><td class="paramname">size</td><td>Block size in bytes </td></tr> |
| <tr><td class="paramname">align</td><td>Block alignment in bytes </td></tr> |
| <tr><td class="paramname">flags</td><td>Shared memory parameter flags (ODP_SHM_*). Default value is 0.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Handle of the reserved block </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">ODP_SHM_INVALID</td><td>on failure</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section see"><dt>See also</dt><dd><a class="el" href="group__odp__initialization.html#ga5ad1297f8908f1da9ef40ead2fe6f39e" title="Application memory model.">odp_mem_model_t</a> </dd></dl> |
| <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="ipsec_api_2odp_ipsec_8c-example.html#a141">ipsec_api/odp_ipsec.c</a>, <a class="el" href="ipsec_crypto_2odp_ipsec_8c-example.html#a113">ipsec_crypto/odp_ipsec.c</a>, <a class="el" href="odp_atomic_perf_8c-example.html#a131">odp_atomic_perf.c</a>, <a class="el" href="odp_bench_buffer_8c-example.html#a48">odp_bench_buffer.c</a>, <a class="el" href="odp_bench_misc_8c-example.html#a68">odp_bench_misc.c</a>, <a class="el" href="odp_bench_packet_8c-example.html#a120">odp_bench_packet.c</a>, <a class="el" href="odp_bench_pktio_sp_8c-example.html#a127">odp_bench_pktio_sp.c</a>, <a class="el" href="odp_bench_timer_8c-example.html#a103">odp_bench_timer.c</a>, <a class="el" href="odp_classifier_8c-example.html#a107">odp_classifier.c</a>, <a class="el" href="odp_cpu_bench_8c-example.html#a64">odp_cpu_bench.c</a>, <a class="el" href="odp_debug_8c-example.html#a2">odp_debug.c</a>, <a class="el" href="odp_dma_perf_8c-example.html#a82">odp_dma_perf.c</a>, <a class="el" href="odp_dmafwd_8c-example.html#a216">odp_dmafwd.c</a>, <a class="el" href="odp_icache_perf_8c-example.html#a26">odp_icache_perf.c</a>, <a class="el" href="odp_ipfragreass_8c-example.html#a24">odp_ipfragreass.c</a>, <a class="el" href="odp_ipsecfwd_8c-example.html#a207">odp_ipsecfwd.c</a>, <a class="el" href="odp_l2fwd_8c-example.html#a219">odp_l2fwd.c</a>, <a class="el" href="odp_l2fwd_perf_8c-example.html#a129">odp_l2fwd_perf.c</a>, <a class="el" href="odp_l3fwd_8c-example.html#a71">odp_l3fwd.c</a>, <a class="el" href="odp_lock_perf_8c-example.html#a59">odp_lock_perf.c</a>, <a class="el" href="odp_mem_perf_8c-example.html#a10">odp_mem_perf.c</a>, <a class="el" href="odp_ml_perf_8c-example.html#a12">odp_ml_perf.c</a>, <a class="el" href="odp_packet_gen_8c-example.html#a244">odp_packet_gen.c</a>, <a class="el" href="odp_pktio_8c-example.html#a55">odp_pktio.c</a>, <a class="el" href="odp_pktio_ordered_8c-example.html#a107">odp_pktio_ordered.c</a>, <a class="el" href="odp_pktio_perf_8c-example.html#a108">odp_pktio_perf.c</a>, <a class="el" href="odp_pool_latency_8c-example.html#a76">odp_pool_latency.c</a>, <a class="el" href="odp_pool_perf_8c-example.html#a86">odp_pool_perf.c</a>, <a class="el" href="odp_queue_perf_8c-example.html#a77">odp_queue_perf.c</a>, <a class="el" href="odp_random_8c-example.html#a39">odp_random.c</a>, <a class="el" href="odp_sched_latency_8c-example.html#a82">odp_sched_latency.c</a>, <a class="el" href="odp_sched_perf_8c-example.html#a130">odp_sched_perf.c</a>, <a class="el" href="odp_sched_pktio_8c-example.html#a173">odp_sched_pktio.c</a>, <a class="el" href="odp_simple_pipeline_8c-example.html#a71">odp_simple_pipeline.c</a>, <a class="el" href="odp_stash_perf_8c-example.html#a45">odp_stash_perf.c</a>, <a class="el" href="odp_stress_8c-example.html#a113">odp_stress.c</a>, <a class="el" href="odp_switch_8c-example.html#a78">odp_switch.c</a>, <a class="el" href="odp_timer_accuracy_8c-example.html#a154">odp_timer_accuracy.c</a>, <a class="el" href="odp_timer_perf_8c-example.html#a121">odp_timer_perf.c</a>, and <a class="el" href="odp_timer_stress_8c-example.html#a84">odp_timer_stress.c</a>.</dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga0b02991b512acc119206b44c95a86ed6"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga0b02991b512acc119206b44c95a86ed6">◆ </a></span>odp_shm_free()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_shm_free </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__shared__memory.html#gae3879036ca8d946c48a994c6550ecd8c">odp_shm_t</a> </td> |
| <td class="paramname"><em>shm</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Free a contiguous block of shared memory. </p> |
| <p>Frees a previously reserved block of shared memory. Freeing memory that is in use will result in UNDEFINED behavior</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">shm</td><td>Block handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>on success </td></tr> |
| <tr><td class="paramname"><0</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="ipsec_api_2odp_ipsec_8c-example.html#a171">ipsec_api/odp_ipsec.c</a>, <a class="el" href="ipsec_crypto_2odp_ipsec_8c-example.html#a133">ipsec_crypto/odp_ipsec.c</a>, <a class="el" href="odp_atomic_perf_8c-example.html#a135">odp_atomic_perf.c</a>, <a class="el" href="odp_bench_buffer_8c-example.html#a81">odp_bench_buffer.c</a>, <a class="el" href="odp_bench_misc_8c-example.html#a80">odp_bench_misc.c</a>, <a class="el" href="odp_bench_packet_8c-example.html#a150">odp_bench_packet.c</a>, <a class="el" href="odp_bench_pktio_sp_8c-example.html#a136">odp_bench_pktio_sp.c</a>, <a class="el" href="odp_bench_timer_8c-example.html#a117">odp_bench_timer.c</a>, <a class="el" href="odp_classifier_8c-example.html#a124">odp_classifier.c</a>, <a class="el" href="odp_cpu_bench_8c-example.html#a116">odp_cpu_bench.c</a>, <a class="el" href="odp_debug_8c-example.html#a5">odp_debug.c</a>, <a class="el" href="odp_dma_perf_8c-example.html#a86">odp_dma_perf.c</a>, <a class="el" href="odp_dmafwd_8c-example.html#a221">odp_dmafwd.c</a>, <a class="el" href="odp_icache_perf_8c-example.html#a30">odp_icache_perf.c</a>, <a class="el" href="odp_ipfragreass_8c-example.html#a65">odp_ipfragreass.c</a>, <a class="el" href="odp_ipsecfwd_8c-example.html#a212">odp_ipsecfwd.c</a>, <a class="el" href="odp_l2fwd_8c-example.html#a258">odp_l2fwd.c</a>, <a class="el" href="odp_l2fwd_perf_8c-example.html#a131">odp_l2fwd_perf.c</a>, <a class="el" href="odp_l3fwd_8c-example.html#a93">odp_l3fwd.c</a>, <a class="el" href="odp_lock_perf_8c-example.html#a63">odp_lock_perf.c</a>, <a class="el" href="odp_mem_perf_8c-example.html#a14">odp_mem_perf.c</a>, <a class="el" href="odp_ml_perf_8c-example.html#a91">odp_ml_perf.c</a>, <a class="el" href="odp_packet_gen_8c-example.html#a249">odp_packet_gen.c</a>, <a class="el" href="odp_pktio_8c-example.html#a80">odp_pktio.c</a>, <a class="el" href="odp_pktio_ordered_8c-example.html#a110">odp_pktio_ordered.c</a>, <a class="el" href="odp_pktio_perf_8c-example.html#a99">odp_pktio_perf.c</a>, <a class="el" href="odp_pool_latency_8c-example.html#a85">odp_pool_latency.c</a>, <a class="el" href="odp_pool_perf_8c-example.html#a91">odp_pool_perf.c</a>, <a class="el" href="odp_queue_perf_8c-example.html#a82">odp_queue_perf.c</a>, <a class="el" href="odp_random_8c-example.html#a44">odp_random.c</a>, <a class="el" href="odp_sched_latency_8c-example.html#a99">odp_sched_latency.c</a>, <a class="el" href="odp_sched_perf_8c-example.html#a137">odp_sched_perf.c</a>, <a class="el" href="odp_sched_pktio_8c-example.html#a181">odp_sched_pktio.c</a>, <a class="el" href="odp_simple_pipeline_8c-example.html#a110">odp_simple_pipeline.c</a>, <a class="el" href="odp_stash_perf_8c-example.html#a49">odp_stash_perf.c</a>, <a class="el" href="odp_stress_8c-example.html#a124">odp_stress.c</a>, <a class="el" href="odp_switch_8c-example.html#a103">odp_switch.c</a>, <a class="el" href="odp_timer_accuracy_8c-example.html#a165">odp_timer_accuracy.c</a>, <a class="el" href="odp_timer_perf_8c-example.html#a129">odp_timer_perf.c</a>, and <a class="el" href="odp_timer_stress_8c-example.html#a137">odp_timer_stress.c</a>.</dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga090e9d9d3076bfeb3d2cb60793829453"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga090e9d9d3076bfeb3d2cb60793829453">◆ </a></span>odp_shm_lookup()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__shared__memory.html#gae3879036ca8d946c48a994c6550ecd8c">odp_shm_t</a> odp_shm_lookup </td> |
| <td>(</td> |
| <td class="paramtype">const char * </td> |
| <td class="paramname"><em>name</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Lookup for a block of shared memory. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">name</td><td>Name of the block</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>A handle to the block if it is found by name </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">ODP_SHM_INVALID</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="ipsec_api_2odp_ipsec_8c-example.html#a170">ipsec_api/odp_ipsec.c</a>, <a class="el" href="ipsec_crypto_2odp_ipsec_8c-example.html#a132">ipsec_crypto/odp_ipsec.c</a>, <a class="el" href="odp_l3fwd_8c-example.html#a92">odp_l3fwd.c</a>, <a class="el" href="odp_pktio_perf_8c-example.html#a26">odp_pktio_perf.c</a>, and <a class="el" href="odp_sched_latency_8c-example.html#a39">odp_sched_latency.c</a>.</dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gacd49c877d4200862691f8990ae9b2c04"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gacd49c877d4200862691f8990ae9b2c04">◆ </a></span>odp_shm_import()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="group__odp__shared__memory.html#gae3879036ca8d946c48a994c6550ecd8c">odp_shm_t</a> odp_shm_import </td> |
| <td>(</td> |
| <td class="paramtype">const char * </td> |
| <td class="paramname"><em>remote_name</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="group__odp__initialization.html#ga8d362bd3c7c87ab5892ca63b15c375c0">odp_instance_t</a> </td> |
| <td class="paramname"><em>odp_inst</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char * </td> |
| <td class="paramname"><em>local_name</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Import a block of shared memory, exported by another ODP instance. </p> |
| <p>This call creates a new handle for accessing a shared memory block created (with ODP_SHM_EXPORT flag) by another ODP instance. An instance may have only a single handle to the same block. Application must not access the block after freeing the handle. When an imported handle is freed, only the calling instance is affected. The exported block may be freed only after all other instances have stopped accessing the block.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">remote_name</td><td>Name of the block, in the remote ODP instance </td></tr> |
| <tr><td class="paramname">odp_inst</td><td>Remote ODP instance, as returned by <a class="el" href="group__odp__initialization.html#ga68d81088e65ef66180fb51076905e34d" title="Global ODP initialization.">odp_init_global()</a> </td></tr> |
| <tr><td class="paramname">local_name</td><td>Name given to the block, in the local ODP instance May be NULL, if the application doesn't need a name (for a lookup). Maximum string length is ODP_SHM_NAME_LEN, including the null character.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>A handle to access a block exported by another ODP instance. </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">ODP_SHM_INVALID</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gac94c4232f7cd64039bbaef601ff2c05e"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gac94c4232f7cd64039bbaef601ff2c05e">◆ </a></span>odp_shm_addr()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void* odp_shm_addr </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__shared__memory.html#gae3879036ca8d946c48a994c6550ecd8c">odp_shm_t</a> </td> |
| <td class="paramname"><em>shm</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Shared memory block address. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">shm</td><td>Block handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Memory block address </dd></dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">NULL</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="ipsec_api_2odp_ipsec_8c-example.html#a143">ipsec_api/odp_ipsec.c</a>, <a class="el" href="ipsec_crypto_2odp_ipsec_8c-example.html#a115">ipsec_crypto/odp_ipsec.c</a>, <a class="el" href="odp_atomic_perf_8c-example.html#a133">odp_atomic_perf.c</a>, <a class="el" href="odp_bench_buffer_8c-example.html#a50">odp_bench_buffer.c</a>, <a class="el" href="odp_bench_misc_8c-example.html#a70">odp_bench_misc.c</a>, <a class="el" href="odp_bench_packet_8c-example.html#a122">odp_bench_packet.c</a>, <a class="el" href="odp_bench_pktio_sp_8c-example.html#a129">odp_bench_pktio_sp.c</a>, <a class="el" href="odp_bench_timer_8c-example.html#a105">odp_bench_timer.c</a>, <a class="el" href="odp_classifier_8c-example.html#a109">odp_classifier.c</a>, <a class="el" href="odp_cpu_bench_8c-example.html#a66">odp_cpu_bench.c</a>, <a class="el" href="odp_dma_perf_8c-example.html#a83">odp_dma_perf.c</a>, <a class="el" href="odp_dmafwd_8c-example.html#a217">odp_dmafwd.c</a>, <a class="el" href="odp_icache_perf_8c-example.html#a27">odp_icache_perf.c</a>, <a class="el" href="odp_ipfragreass_8c-example.html#a26">odp_ipfragreass.c</a>, <a class="el" href="odp_ipsecfwd_8c-example.html#a208">odp_ipsecfwd.c</a>, <a class="el" href="odp_l2fwd_8c-example.html#a221">odp_l2fwd.c</a>, <a class="el" href="odp_l2fwd_perf_8c-example.html#a130">odp_l2fwd_perf.c</a>, <a class="el" href="odp_l3fwd_8c-example.html#a73">odp_l3fwd.c</a>, <a class="el" href="odp_lock_perf_8c-example.html#a61">odp_lock_perf.c</a>, <a class="el" href="odp_mem_perf_8c-example.html#a12">odp_mem_perf.c</a>, <a class="el" href="odp_ml_perf_8c-example.html#a14">odp_ml_perf.c</a>, <a class="el" href="odp_packet_gen_8c-example.html#a246">odp_packet_gen.c</a>, <a class="el" href="odp_pktio_8c-example.html#a57">odp_pktio.c</a>, <a class="el" href="odp_pktio_ordered_8c-example.html#a109">odp_pktio_ordered.c</a>, <a class="el" href="odp_pktio_perf_8c-example.html#a25">odp_pktio_perf.c</a>, <a class="el" href="odp_pool_latency_8c-example.html#a77">odp_pool_latency.c</a>, <a class="el" href="odp_pool_perf_8c-example.html#a88">odp_pool_perf.c</a>, <a class="el" href="odp_queue_perf_8c-example.html#a79">odp_queue_perf.c</a>, <a class="el" href="odp_random_8c-example.html#a41">odp_random.c</a>, <a class="el" href="odp_sched_latency_8c-example.html#a40">odp_sched_latency.c</a>, <a class="el" href="odp_sched_perf_8c-example.html#a48">odp_sched_perf.c</a>, <a class="el" href="odp_sched_pktio_8c-example.html#a175">odp_sched_pktio.c</a>, <a class="el" href="odp_simple_pipeline_8c-example.html#a73">odp_simple_pipeline.c</a>, <a class="el" href="odp_stash_perf_8c-example.html#a47">odp_stash_perf.c</a>, <a class="el" href="odp_stress_8c-example.html#a114">odp_stress.c</a>, <a class="el" href="odp_switch_8c-example.html#a80">odp_switch.c</a>, <a class="el" href="odp_timer_accuracy_8c-example.html#a156">odp_timer_accuracy.c</a>, <a class="el" href="odp_timer_perf_8c-example.html#a123">odp_timer_perf.c</a>, and <a class="el" href="odp_timer_stress_8c-example.html#a85">odp_timer_stress.c</a>.</dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga17feacc83c5c51a447d0f848120a6a59"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga17feacc83c5c51a447d0f848120a6a59">◆ </a></span>odp_shm_info()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_shm_info </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__shared__memory.html#gae3879036ca8d946c48a994c6550ecd8c">odp_shm_t</a> </td> |
| <td class="paramname"><em>shm</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="structodp__shm__info__t.html">odp_shm_info_t</a> * </td> |
| <td class="paramname"><em>info</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Shared memory block info. </p> |
| <p>Get information about the specified shared memory block.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir"></td><td class="paramname">shm</td><td>Block handle </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">info</td><td>Block info pointer for output</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>on success </td></tr> |
| <tr><td class="paramname"><0</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gaa5bf4248d79088c0c2f98f21df028364"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gaa5bf4248d79088c0c2f98f21df028364">◆ </a></span>odp_shm_segment_info()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int odp_shm_segment_info </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__shared__memory.html#gae3879036ca8d946c48a994c6550ecd8c">odp_shm_t</a> </td> |
| <td class="paramname"><em>shm</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>index</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">uint32_t </td> |
| <td class="paramname"><em>num</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="structodp__shm__segment__info__t.html">odp_shm_segment_info_t</a> </td> |
| <td class="paramname"><em>info</em>[] </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>SHM block segmentation information. </p> |
| <p>Retrieve information about each memory segment of an SHM block. SHM info call outputs the number of memory segments (<a class="el" href="structodp__shm__info__t.html#a4a942041ab42ad1b6c05016c95eff68a" title="Number of memory segments.">odp_shm_info_t::num_seg</a>). A single segment info call may be used to request information for all the segments, or for a subset of those. Use 'index' and 'num' parameters to specify the segments. Segment indexing starts from zero and continues to <a class="el" href="structodp__shm__info__t.html#a4a942041ab42ad1b6c05016c95eff68a" title="Number of memory segments.">odp_shm_info_t.num_seg</a> - 1. Segment infos are written in virtual memory address order and without address overlaps. Segment info array must have at least 'num' elements.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramdir"></td><td class="paramname">shm</td><td>SHM block handle </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">index</td><td>Index of the first segment to retrieve information </td></tr> |
| <tr><td class="paramdir"></td><td class="paramname">num</td><td>Number of segments to retrieve information </td></tr> |
| <tr><td class="paramdir">[out]</td><td class="paramname">info</td><td>Segment info array for output</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="retval"><dt>Return values</dt><dd> |
| <table class="retval"> |
| <tr><td class="paramname">0</td><td>on success </td></tr> |
| <tr><td class="paramname"><0</td><td>on failure </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ga379b09c16ca8735a4948496f4cab4ddd"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ga379b09c16ca8735a4948496f4cab4ddd">◆ </a></span>odp_shm_print()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void odp_shm_print </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__shared__memory.html#gae3879036ca8d946c48a994c6550ecd8c">odp_shm_t</a> </td> |
| <td class="paramname"><em>shm</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Print shared memory block info. </p> |
| <p>Print implementation defined information about the specified shared memory block to the ODP log. The information is intended to be used for debugging.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">shm</td><td>Block handle </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="odp_debug_8c-example.html#a4">odp_debug.c</a>.</dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="gae6ddd033897d1df9bc826a423fc910d5"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#gae6ddd033897d1df9bc826a423fc910d5">◆ </a></span>odp_shm_to_u64()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">uint64_t odp_shm_to_u64 </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="group__odp__shared__memory.html#gae3879036ca8d946c48a994c6550ecd8c">odp_shm_t</a> </td> |
| <td class="paramname"><em>shm</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Get printable value for an odp_shm_t. </p> |
| <p>This routine is intended to be used for diagnostic purposes to enable applications to generate a printable value that represents an odp_shm_t handle.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">shm</td><td>Block handle</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>uint64_t value that can be used to print this handle </dd></dl> |
| |
| </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="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li> |
| </ul> |
| </div> |
| </body> |
| </html> |