1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html>
3
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
6<META http-equiv="Content-Style-Type" content="text/css">
7<LINK rel="stylesheet" type="text/css" href="../CSS/revolution.css">
8<title>RSOLinkJump</title>
9</head>
10
11<body>
12
13<h1>RSOLinkJump</h1>
14
15<h2>C Specification</h2>
16<dl><dd><pre><code>
17#include &lt;revolution/rso.h&gt;
18#include &lt;revolution/RSOLink.h&gt;
19
20int RSOLinkJump(RSOObjectHeader* rsoImp,const RSOObjectHeader* rsoExp,void *buff);
21</code></pre></dd></dl>
22
23<h2>Arguments</h2>
24<p>
25<TABLE border="1" >
26  <tr>
27<TD valign="top" width="120" bgcolor="#ffffe8"><CODE><STRONG><EM>rsoImp</EM></STRONG></CODE></TD>
28<TD width="520">Pointer to the module information to link.</TD>
29  </tr>
30
31  <tr>
32<TD valign="top" width="120" bgcolor="#ffffe8"><CODE><STRONG><EM>rsoExp</EM></STRONG></CODE></TD>
33<TD width="520">Pointer to the module information to reference.</TD>
34  </tr>
35  <tr>
36<TD valign="top" width="120" bgcolor="#ffffe8"><CODE><STRONG><EM>buff</EM></STRONG></CODE></TD>
37    <TD width="520">Jump code for the referenced module.</TD>
38  </tr>
39
40</TABLE>
41</p>
42
43<h2>Return Values</h2>
44<p>
45Number of processed codes.
46</p>
47
48
49<H2>Description</H2>
50<p>
51Typically, the branch instructions (<CODE>bx</CODE>) have only the 28-bit offset (&plusmn; 32 MB). Therefore, when a dynamic module is placed in external main memory (<CODE>MEM2</CODE>), functions in internal main memory (<CODE>MEM1</CODE>) cannot be accessed.<br> Use <code>RSOLinkJump</code> to link between the two.<br> The <code>LinkJump</code> function in the demo outputs a relay jump code <code>buff</code>. The external module is then accessed through this by linking from <CODE>rsoImp</CODE>.<br> The required buffer size is obtained through <code><a href="./RSOGetJumpCodeSize.html">RSOGetJumpCodeSize</a></code> to create a relay jump code, using <code><a href="./RSOMakeJumpCode.html">RSOMakeJumpCode</a></code>.<br> <br> <B>Note:</B> Allocate the buffer from the same main memory (<CODE>MEM2</CODE> or <CODE>MEM1</CODE>) as the referencing module (<CODE>rsoImp</CODE>). <br>
52 However, there is no need for the relay code if this is the same memory as the referenced module (<CODE>rsoExp</CODE>).</p>
53<H2>Differences from RSOLinkFar</H2>
54<p>
55Whereas in the <code><a href="./RSOLinkFar.html">RSOLinkFar</a></code>, the relay jump code is dependent on the module that is referred to, <code>RSOLinkJump</code> is dependent on the referring module.<br> This is an effective method when the module being referenced across the memory is known.
56</p>
57<h2>See Also</h2>
58<p>
59<code><a href="./intro.html">RSO API Introduction</a></code><br> <code><a href="./RSOGetJumpCodeSize.html">RSOGetJumpCodeSize</a></code> <code><a href="./RSOMakeJumpCode.html">RSOMakeJumpCode</a></code>
60</p>
61<H2>Revision History</H2>
62<p>12/19/2006 Initial version. </p>
63
64<HR>
65<P>CONFIDENTIAL</P>
66</BODY>
67</HTML>
68