far__ptr_8h.html (24491B)
1<!-- HTML header for doxygen 1.8.14--> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3<html xmlns="http://www.w3.org/1999/xhtml"> 4<head> 5<meta http-equiv="cache-control" content="max-age=86400"/> 6<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> 7<meta http-equiv="X-UA-Compatible" content="IE=9"/> 8<meta name="generator" content="Doxygen 1.8.20"/> 9<meta name="viewport" content="width=device-width, initial-scale=1"/> 10<title>GBDK 2020 Docs: gbdk/far_ptr.h File Reference</title> 11<link href="tabs.css" rel="stylesheet" type="text/css"/> 12<script type="text/javascript" src="jquery.js"></script> 13<script type="text/javascript" src="dynsections.js"></script> 14<link href="navtree.css" rel="stylesheet" type="text/css"/> 15<script type="text/javascript" src="resize.js"></script> 16<script type="text/javascript" src="navtreedata.js"></script> 17<script type="text/javascript" src="navtree.js"></script> 18<link href="search/search.css" rel="stylesheet" type="text/css"/> 19<script type="text/javascript" src="search/searchdata.js"></script> 20<script type="text/javascript" src="search/search.js"></script> 21<link href="doxygen.css" rel="stylesheet" type="text/css" /> 22<link href="doxygen_extra.css" rel="stylesheet" type="text/css"/> 23</head> 24<body> 25<div id="top"><!-- do not remove this div, it is closed by doxygen! --> 26<div id="titlearea"> 27<table cellspacing="0" cellpadding="0"> 28 <tbody> 29 <tr style="height: 56px;"> 30 <td id="projectalign" style="padding-left: 0.5em;"> 31 <div id="projectname">GBDK 2020 Docs 32  <span id="projectnumber">4.0.6</span> 33 </div> 34 <div id="projectbrief">API Documentation for GBDK 2020</div> 35 </td> 36 </tr> 37 </tbody> 38</table> 39</div> 40<!-- end header part --> 41<!-- Generated by Doxygen 1.8.20 --> 42<script type="text/javascript"> 43/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ 44var searchBox = new SearchBox("searchBox", "search",false,'Search'); 45/* @license-end */ 46</script> 47<script type="text/javascript" src="menudata.js"></script> 48<script type="text/javascript" src="menu.js"></script> 49<script type="text/javascript"> 50/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ 51$(function() { 52 initMenu('',true,false,'search.php','Search'); 53 $(document).ready(function() { init_search(); }); 54}); 55/* @license-end */</script> 56<div id="main-nav"></div> 57</div><!-- top --> 58<div id="side-nav" class="ui-resizable side-nav-resizable"> 59 <div id="nav-tree"> 60 <div id="nav-tree-contents"> 61 <div id="nav-sync" class="sync"></div> 62 </div> 63 </div> 64 <div id="splitbar" style="-moz-user-select:none;" 65 class="ui-resizable-handle"> 66 </div> 67</div> 68<script type="text/javascript"> 69/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ 70$(document).ready(function(){initNavTree('far__ptr_8h.html',''); initResizable(); }); 71/* @license-end */ 72</script> 73<div id="doc-content"> 74<!-- window showing the filter options --> 75<div id="MSearchSelectWindow" 76 onmouseover="return searchBox.OnSearchSelectShow()" 77 onmouseout="return searchBox.OnSearchSelectHide()" 78 onkeydown="return searchBox.OnSearchSelectKey(event)"> 79</div> 80 81<!-- iframe showing the search results (closed by default) --> 82<div id="MSearchResultsWindow"> 83<iframe src="javascript:void(0)" frameborder="0" 84 name="MSearchResults" id="MSearchResults"> 85</iframe> 86</div> 87 88<div class="header"> 89 <div class="summary"> 90<a href="#nested-classes">Data Structures</a> | 91<a href="#define-members">Macros</a> | 92<a href="#typedef-members">Typedefs</a> | 93<a href="#func-members">Functions</a> | 94<a href="#var-members">Variables</a> </div> 95 <div class="headertitle"> 96<div class="title">far_ptr.h File Reference</div> </div> 97</div><!--header--> 98<div class="contents"> 99<div class="textblock"><code>#include <types.h></code><br /> 100<code>#include <<a class="el" href="stdint_8h_source.html">stdint.h</a>></code><br /> 101</div> 102<p><a href="far__ptr_8h_source.html">Go to the source code of this file.</a></p> 103<table class="memberdecls"> 104<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> 105Data Structures</h2></td></tr> 106<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union  </td><td class="memItemRight" valign="bottom"><a class="el" href="union____far__ptr.html">__far_ptr</a></td></tr> 107<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> 108</table><table class="memberdecls"> 109<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> 110Macros</h2></td></tr> 111<tr class="memitem:a0c227677a96f9bf7e84a90922f2f8708"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="far__ptr_8h.html#a0c227677a96f9bf7e84a90922f2f8708">TO_FAR_PTR</a>(ofs, seg)   (((<a class="el" href="far__ptr_8h.html#a7c6f52121dd07af29b477f4e64314842">FAR_PTR</a>)seg << 16) | (<a class="el" href="far__ptr_8h.html#a7c6f52121dd07af29b477f4e64314842">FAR_PTR</a>)ofs)</td></tr> 112<tr class="separator:a0c227677a96f9bf7e84a90922f2f8708"><td class="memSeparator" colspan="2"> </td></tr> 113<tr class="memitem:a5bebc5322a1bba1c60c8d60e9b58be14"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="far__ptr_8h.html#a5bebc5322a1bba1c60c8d60e9b58be14">FAR_SEG</a>(ptr)   (((union <a class="el" href="union____far__ptr.html">__far_ptr</a> *)&ptr)->segofs.seg)</td></tr> 114<tr class="separator:a5bebc5322a1bba1c60c8d60e9b58be14"><td class="memSeparator" colspan="2"> </td></tr> 115<tr class="memitem:ab79586d8cc3cb926f363f4d0cf7143d5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="far__ptr_8h.html#ab79586d8cc3cb926f363f4d0cf7143d5">FAR_OFS</a>(ptr)   (((union <a class="el" href="union____far__ptr.html">__far_ptr</a> *)&ptr)->segofs.ofs)</td></tr> 116<tr class="separator:ab79586d8cc3cb926f363f4d0cf7143d5"><td class="memSeparator" colspan="2"> </td></tr> 117<tr class="memitem:a048cfacb5d37ab758a74f44e86c1dbc6"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="far__ptr_8h.html#a048cfacb5d37ab758a74f44e86c1dbc6">FAR_FUNC</a>(ptr, typ)   ((typ)(((union <a class="el" href="union____far__ptr.html">__far_ptr</a> *)&ptr)->segfn.fn))</td></tr> 118<tr class="separator:a048cfacb5d37ab758a74f44e86c1dbc6"><td class="memSeparator" colspan="2"> </td></tr> 119<tr class="memitem:a7f4ab1893ea392f8bf042a3b97de4730"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="far__ptr_8h.html#a7f4ab1893ea392f8bf042a3b97de4730">FAR_CALL</a>(ptr, typ, ...)   (<a class="el" href="far__ptr_8h.html#a27792b7fc3796a1e1828d4c5812e5b21">__call_banked_ptr</a>=ptr,((typ)(&<a class="el" href="far__ptr_8h.html#aa45a2312a2584abb8733a052f66b4a90">__call__banked</a>))(__VA_ARGS__))</td></tr> 120<tr class="separator:a7f4ab1893ea392f8bf042a3b97de4730"><td class="memSeparator" colspan="2"> </td></tr> 121</table><table class="memberdecls"> 122<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> 123Typedefs</h2></td></tr> 124<tr class="memitem:a7c6f52121dd07af29b477f4e64314842"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="stdint_8h.html#a33594304e786b158f3fb30289278f5af">uint32_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="far__ptr_8h.html#a7c6f52121dd07af29b477f4e64314842">FAR_PTR</a></td></tr> 125<tr class="separator:a7c6f52121dd07af29b477f4e64314842"><td class="memSeparator" colspan="2"> </td></tr> 126</table><table class="memberdecls"> 127<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> 128Functions</h2></td></tr> 129<tr class="memitem:aa45a2312a2584abb8733a052f66b4a90"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="far__ptr_8h.html#aa45a2312a2584abb8733a052f66b4a90">__call__banked</a> ()</td></tr> 130<tr class="separator:aa45a2312a2584abb8733a052f66b4a90"><td class="memSeparator" colspan="2"> </td></tr> 131<tr class="memitem:a23ab15f7eb85a48d72f717183badb110"><td class="memItemLeft" align="right" valign="top"><a class="el" href="stdint_8h.html#a33594304e786b158f3fb30289278f5af">uint32_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="far__ptr_8h.html#a23ab15f7eb85a48d72f717183badb110">to_far_ptr</a> (void *ofs, <a class="el" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> seg) <a class="el" href="asm_2types_8h.html#a0971918860055db2e50dacea4da8f3bc">OLDCALL</a></td></tr> 132<tr class="separator:a23ab15f7eb85a48d72f717183badb110"><td class="memSeparator" colspan="2"> </td></tr> 133</table><table class="memberdecls"> 134<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a> 135Variables</h2></td></tr> 136<tr class="memitem:a27792b7fc3796a1e1828d4c5812e5b21"><td class="memItemLeft" align="right" valign="top">volatile <a class="el" href="far__ptr_8h.html#a7c6f52121dd07af29b477f4e64314842">FAR_PTR</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="far__ptr_8h.html#a27792b7fc3796a1e1828d4c5812e5b21">__call_banked_ptr</a></td></tr> 137<tr class="separator:a27792b7fc3796a1e1828d4c5812e5b21"><td class="memSeparator" colspan="2"> </td></tr> 138<tr class="memitem:a1344c26ca298a9eadea4bcfea6442ae3"><td class="memItemLeft" align="right" valign="top">volatile void * </td><td class="memItemRight" valign="bottom"><a class="el" href="far__ptr_8h.html#a1344c26ca298a9eadea4bcfea6442ae3">__call_banked_addr</a></td></tr> 139<tr class="separator:a1344c26ca298a9eadea4bcfea6442ae3"><td class="memSeparator" colspan="2"> </td></tr> 140<tr class="memitem:a892433d652420445a9a6aebf1a256623"><td class="memItemLeft" align="right" valign="top">volatile <a class="el" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="far__ptr_8h.html#a892433d652420445a9a6aebf1a256623">__call_banked_bank</a></td></tr> 141<tr class="separator:a892433d652420445a9a6aebf1a256623"><td class="memSeparator" colspan="2"> </td></tr> 142</table> 143<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> 144<div class="textblock"><p>Far pointers include a segment (bank) selector so they are able to point to addresses (functions or data) outside of the current bank (unlike normal pointers which are not bank-aware).</p> 145<p>See the <code>banks_farptr</code> example project included with gbdk.</p> 146<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>Add link to a discussion about banking (such as, how to assign code and variables to banks) </dd></dl> 147</div><h2 class="groupheader">Macro Definition Documentation</h2> 148<a id="a0c227677a96f9bf7e84a90922f2f8708"></a> 149<h2 class="memtitle"><span class="permalink"><a href="#a0c227677a96f9bf7e84a90922f2f8708">◆ </a></span>TO_FAR_PTR</h2> 150 151<div class="memitem"> 152<div class="memproto"> 153 <table class="memname"> 154 <tr> 155 <td class="memname">#define TO_FAR_PTR</td> 156 <td>(</td> 157 <td class="paramtype"> </td> 158 <td class="paramname">ofs, </td> 159 </tr> 160 <tr> 161 <td class="paramkey"></td> 162 <td></td> 163 <td class="paramtype"> </td> 164 <td class="paramname">seg </td> 165 </tr> 166 <tr> 167 <td></td> 168 <td>)</td> 169 <td></td><td>   (((<a class="el" href="far__ptr_8h.html#a7c6f52121dd07af29b477f4e64314842">FAR_PTR</a>)seg << 16) | (<a class="el" href="far__ptr_8h.html#a7c6f52121dd07af29b477f4e64314842">FAR_PTR</a>)ofs)</td> 170 </tr> 171 </table> 172</div><div class="memdoc"> 173<p>Macro to obtain a far pointer at compile-time </p><dl class="params"><dt>Parameters</dt><dd> 174 <table class="params"> 175 <tr><td class="paramname">ofs</td><td>Memory address within the given Segment (Bank) </td></tr> 176 <tr><td class="paramname">seg</td><td>Segment (Bank) number</td></tr> 177 </table> 178 </dd> 179</dl> 180<dl class="section return"><dt>Returns</dt><dd>A far pointer (type <a class="el" href="far__ptr_8h.html#a7c6f52121dd07af29b477f4e64314842">FAR_PTR</a>) </dd></dl> 181 182</div> 183</div> 184<a id="a5bebc5322a1bba1c60c8d60e9b58be14"></a> 185<h2 class="memtitle"><span class="permalink"><a href="#a5bebc5322a1bba1c60c8d60e9b58be14">◆ </a></span>FAR_SEG</h2> 186 187<div class="memitem"> 188<div class="memproto"> 189 <table class="memname"> 190 <tr> 191 <td class="memname">#define FAR_SEG</td> 192 <td>(</td> 193 <td class="paramtype"> </td> 194 <td class="paramname">ptr</td><td>)</td> 195 <td>   (((union <a class="el" href="union____far__ptr.html">__far_ptr</a> *)&ptr)->segofs.seg)</td> 196 </tr> 197 </table> 198</div><div class="memdoc"> 199<p>Macro to get the Segment (Bank) number of a far pointer </p><dl class="params"><dt>Parameters</dt><dd> 200 <table class="params"> 201 <tr><td class="paramname">ptr</td><td>A far pointer (type <a class="el" href="far__ptr_8h.html#a7c6f52121dd07af29b477f4e64314842">FAR_PTR</a>)</td></tr> 202 </table> 203 </dd> 204</dl> 205<dl class="section return"><dt>Returns</dt><dd>Segment (Bank) of the far pointer (type uint16_t) </dd></dl> 206 207</div> 208</div> 209<a id="ab79586d8cc3cb926f363f4d0cf7143d5"></a> 210<h2 class="memtitle"><span class="permalink"><a href="#ab79586d8cc3cb926f363f4d0cf7143d5">◆ </a></span>FAR_OFS</h2> 211 212<div class="memitem"> 213<div class="memproto"> 214 <table class="memname"> 215 <tr> 216 <td class="memname">#define FAR_OFS</td> 217 <td>(</td> 218 <td class="paramtype"> </td> 219 <td class="paramname">ptr</td><td>)</td> 220 <td>   (((union <a class="el" href="union____far__ptr.html">__far_ptr</a> *)&ptr)->segofs.ofs)</td> 221 </tr> 222 </table> 223</div><div class="memdoc"> 224<p>Macro to get the Offset (address) of a far pointer </p><dl class="params"><dt>Parameters</dt><dd> 225 <table class="params"> 226 <tr><td class="paramname">ptr</td><td>A far pointer (type <a class="el" href="far__ptr_8h.html#a7c6f52121dd07af29b477f4e64314842">FAR_PTR</a>)</td></tr> 227 </table> 228 </dd> 229</dl> 230<dl class="section return"><dt>Returns</dt><dd>Offset (address) of the far pointer (type void *) </dd></dl> 231 232</div> 233</div> 234<a id="a048cfacb5d37ab758a74f44e86c1dbc6"></a> 235<h2 class="memtitle"><span class="permalink"><a href="#a048cfacb5d37ab758a74f44e86c1dbc6">◆ </a></span>FAR_FUNC</h2> 236 237<div class="memitem"> 238<div class="memproto"> 239 <table class="memname"> 240 <tr> 241 <td class="memname">#define FAR_FUNC</td> 242 <td>(</td> 243 <td class="paramtype"> </td> 244 <td class="paramname">ptr, </td> 245 </tr> 246 <tr> 247 <td class="paramkey"></td> 248 <td></td> 249 <td class="paramtype"> </td> 250 <td class="paramname">typ </td> 251 </tr> 252 <tr> 253 <td></td> 254 <td>)</td> 255 <td></td><td>   ((typ)(((union <a class="el" href="union____far__ptr.html">__far_ptr</a> *)&ptr)->segfn.fn))</td> 256 </tr> 257 </table> 258</div><div class="memdoc"> 259 260</div> 261</div> 262<a id="a7f4ab1893ea392f8bf042a3b97de4730"></a> 263<h2 class="memtitle"><span class="permalink"><a href="#a7f4ab1893ea392f8bf042a3b97de4730">◆ </a></span>FAR_CALL</h2> 264 265<div class="memitem"> 266<div class="memproto"> 267 <table class="memname"> 268 <tr> 269 <td class="memname">#define FAR_CALL</td> 270 <td>(</td> 271 <td class="paramtype"> </td> 272 <td class="paramname">ptr, </td> 273 </tr> 274 <tr> 275 <td class="paramkey"></td> 276 <td></td> 277 <td class="paramtype"> </td> 278 <td class="paramname">typ, </td> 279 </tr> 280 <tr> 281 <td class="paramkey"></td> 282 <td></td> 283 <td class="paramtype"> </td> 284 <td class="paramname"><em>...</em> </td> 285 </tr> 286 <tr> 287 <td></td> 288 <td>)</td> 289 <td></td><td>   (<a class="el" href="far__ptr_8h.html#a27792b7fc3796a1e1828d4c5812e5b21">__call_banked_ptr</a>=ptr,((typ)(&<a class="el" href="far__ptr_8h.html#aa45a2312a2584abb8733a052f66b4a90">__call__banked</a>))(__VA_ARGS__))</td> 290 </tr> 291 </table> 292</div><div class="memdoc"> 293<p>Macro to call a function at far pointer <b>ptr</b> of type <b>typ</b> </p><dl class="params"><dt>Parameters</dt><dd> 294 <table class="params"> 295 <tr><td class="paramname">ptr</td><td>Far pointer of a function to call (type <a class="el" href="far__ptr_8h.html#a7c6f52121dd07af29b477f4e64314842">FAR_PTR</a>) </td></tr> 296 <tr><td class="paramname">typ</td><td>Type to cast the function far pointer to. </td></tr> 297 <tr><td class="paramname">...</td><td>VA Args list of parameters for the function</td></tr> 298 </table> 299 </dd> 300</dl> 301<p><b>type</b> should match the definition of the function being called. For example: </p><div class="fragment"><div class="line"><span class="comment">// A function in bank 2</span></div> 302<div class="line"><span class="preprocessor">#pragma bank 2</span></div> 303<div class="line"><a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> some_function(<a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> param1, <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> param2) __banked { <span class="keywordflow">return</span> 1; };</div> 304<div class="line"> </div> 305<div class="line">...</div> 306<div class="line"><span class="comment">// Code elsewhere, such as unbanked main()</span></div> 307<div class="line"><span class="comment">// This type declaration should match the above function</span></div> 308<div class="line">typedef <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> (*some_function_t)(<a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a>, <a class="code" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a>) __banked;</div> 309<div class="line"> </div> 310<div class="line"><span class="comment">// Using FAR_CALL() with the above as *ptr*, *typ*, and two parameters.</span></div> 311<div class="line">result = <a class="code" href="far__ptr_8h.html#a7f4ab1893ea392f8bf042a3b97de4730">FAR_CALL</a>(some_function, some_function_t, 100, 50);</div> 312</div><!-- fragment --><dl class="section return"><dt>Returns</dt><dd>Value returned by the function (if present) </dd></dl> 313 314</div> 315</div> 316<h2 class="groupheader">Typedef Documentation</h2> 317<a id="a7c6f52121dd07af29b477f4e64314842"></a> 318<h2 class="memtitle"><span class="permalink"><a href="#a7c6f52121dd07af29b477f4e64314842">◆ </a></span>FAR_PTR</h2> 319 320<div class="memitem"> 321<div class="memproto"> 322 <table class="memname"> 323 <tr> 324 <td class="memname">typedef <a class="el" href="stdint_8h.html#a33594304e786b158f3fb30289278f5af">uint32_t</a> <a class="el" href="far__ptr_8h.html#a7c6f52121dd07af29b477f4e64314842">FAR_PTR</a></td> 325 </tr> 326 </table> 327</div><div class="memdoc"> 328<p>Type for storing a FAR_PTR </p> 329 330</div> 331</div> 332<h2 class="groupheader">Function Documentation</h2> 333<a id="aa45a2312a2584abb8733a052f66b4a90"></a> 334<h2 class="memtitle"><span class="permalink"><a href="#aa45a2312a2584abb8733a052f66b4a90">◆ </a></span>__call__banked()</h2> 335 336<div class="memitem"> 337<div class="memproto"> 338 <table class="memname"> 339 <tr> 340 <td class="memname">void __call__banked </td> 341 <td>(</td> 342 <td class="paramname"></td><td>)</td> 343 <td></td> 344 </tr> 345 </table> 346</div><div class="memdoc"> 347 348</div> 349</div> 350<a id="a23ab15f7eb85a48d72f717183badb110"></a> 351<h2 class="memtitle"><span class="permalink"><a href="#a23ab15f7eb85a48d72f717183badb110">◆ </a></span>to_far_ptr()</h2> 352 353<div class="memitem"> 354<div class="memproto"> 355 <table class="memname"> 356 <tr> 357 <td class="memname"><a class="el" href="stdint_8h.html#a33594304e786b158f3fb30289278f5af">uint32_t</a> to_far_ptr </td> 358 <td>(</td> 359 <td class="paramtype">void * </td> 360 <td class="paramname"><em>ofs</em>, </td> 361 </tr> 362 <tr> 363 <td class="paramkey"></td> 364 <td></td> 365 <td class="paramtype"><a class="el" href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a> </td> 366 <td class="paramname"><em>seg</em> </td> 367 </tr> 368 <tr> 369 <td></td> 370 <td>)</td> 371 <td></td><td></td> 372 </tr> 373 </table> 374</div><div class="memdoc"> 375<p>Obtain a far pointer at runtime </p><dl class="params"><dt>Parameters</dt><dd> 376 <table class="params"> 377 <tr><td class="paramname">ofs</td><td>Memory address within the given Segment (Bank) </td></tr> 378 <tr><td class="paramname">seg</td><td>Segment (Bank) number</td></tr> 379 </table> 380 </dd> 381</dl> 382<dl class="section return"><dt>Returns</dt><dd>A far pointer (type <a class="el" href="far__ptr_8h.html#a7c6f52121dd07af29b477f4e64314842">FAR_PTR</a>) </dd></dl> 383 384</div> 385</div> 386<h2 class="groupheader">Variable Documentation</h2> 387<a id="a27792b7fc3796a1e1828d4c5812e5b21"></a> 388<h2 class="memtitle"><span class="permalink"><a href="#a27792b7fc3796a1e1828d4c5812e5b21">◆ </a></span>__call_banked_ptr</h2> 389 390<div class="memitem"> 391<div class="memproto"> 392<table class="mlabels"> 393 <tr> 394 <td class="mlabels-left"> 395 <table class="memname"> 396 <tr> 397 <td class="memname">volatile <a class="el" href="far__ptr_8h.html#a7c6f52121dd07af29b477f4e64314842">FAR_PTR</a> __call_banked_ptr</td> 398 </tr> 399 </table> 400 </td> 401 <td class="mlabels-right"> 402<span class="mlabels"><span class="mlabel">extern</span></span> </td> 403 </tr> 404</table> 405</div><div class="memdoc"> 406 407</div> 408</div> 409<a id="a1344c26ca298a9eadea4bcfea6442ae3"></a> 410<h2 class="memtitle"><span class="permalink"><a href="#a1344c26ca298a9eadea4bcfea6442ae3">◆ </a></span>__call_banked_addr</h2> 411 412<div class="memitem"> 413<div class="memproto"> 414<table class="mlabels"> 415 <tr> 416 <td class="mlabels-left"> 417 <table class="memname"> 418 <tr> 419 <td class="memname">volatile void* __call_banked_addr</td> 420 </tr> 421 </table> 422 </td> 423 <td class="mlabels-right"> 424<span class="mlabels"><span class="mlabel">extern</span></span> </td> 425 </tr> 426</table> 427</div><div class="memdoc"> 428 429</div> 430</div> 431<a id="a892433d652420445a9a6aebf1a256623"></a> 432<h2 class="memtitle"><span class="permalink"><a href="#a892433d652420445a9a6aebf1a256623">◆ </a></span>__call_banked_bank</h2> 433 434<div class="memitem"> 435<div class="memproto"> 436<table class="mlabels"> 437 <tr> 438 <td class="mlabels-left"> 439 <table class="memname"> 440 <tr> 441 <td class="memname">volatile <a class="el" href="stdint_8h.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> __call_banked_bank</td> 442 </tr> 443 </table> 444 </td> 445 <td class="mlabels-right"> 446<span class="mlabels"><span class="mlabel">extern</span></span> </td> 447 </tr> 448</table> 449</div><div class="memdoc"> 450 451</div> 452</div> 453</div><!-- contents --> 454</div><!-- doc-content --> 455<div class="ttc" id="astdint_8h_html_adf4d876453337156dde61095e1f20223"><div class="ttname"><a href="stdint_8h.html#adf4d876453337156dde61095e1f20223">uint16_t</a></div><div class="ttdeci">unsigned short int uint16_t</div><div class="ttdef"><b>Definition:</b> stdint.h:52</div></div> 456<div class="ttc" id="afar__ptr_8h_html_a7f4ab1893ea392f8bf042a3b97de4730"><div class="ttname"><a href="far__ptr_8h.html#a7f4ab1893ea392f8bf042a3b97de4730">FAR_CALL</a></div><div class="ttdeci">#define FAR_CALL(ptr, typ,...)</div><div class="ttdef"><b>Definition:</b> far_ptr.h:65</div></div> 457<!-- HTML footer for doxygen 1.8.14--> 458<!-- start footer part --> 459<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> 460</div> 461</body> 462</html>