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 name="GENERATOR" content="Microsoft FrontPage 5.0"> 7<META http-equiv="Content-Style-Type" content="text/css"> 8<LINK rel="stylesheet" type="text/css" href="../../CSS/revolution.css"> 9<title>DCStoreRange</title> 10</head> 11 12<body> 13 14<h1>DCStoreRange</h1> 15 16 17<h2>C Specification</h2> 18<BLOCKQUOTE> 19<pre><CODE>#include <revolution/os.h> 20 21void DCStoreRange(void* startAddr, u32 nBytes);</CODE></pre> 22</BLOCKQUOTE> 23<h2>Arguments</h2> 24<TABLE border="1" cellpadding="3" cellspacing="0.1"> 25 <tr> 26<TD width="120" bgcolor="#ffffe8"><em><strong><code><STRONG><EM><CODE>startAddr</CODE></EM></STRONG></code></strong></em></TD> 27<TD width="520">Effective address (not the physical address) .</TD> 28 </tr> 29 <tr> 30<TD width="120" bgcolor="#ffffe8"><strong><em><code><STRONG><EM><CODE>nBytes</CODE></EM></STRONG></code></em></strong></TD> 31<TD width="520">Size of range to store.</TD> 32 </tr> 33</TABLE> 34<h2>Return Values</h2> 35 36<p>None.</p> 37 38<h2>Description</h2> 39 40<p>Securely updates specified memory range with modified data in cache. The <code><strong><em>startAddr</em></strong></code> argument is rounded down to a 32-byte boundary. The end address ( i.e., <code><strong><em>startAddr</em></strong></code><i>+ </i><strong><em><code>nBytes</code></em></strong>) is rounded up to the 32-byte boundary.</p> 41 42<p>This command will still execute even if the cache is disabled or frozen by the <code><a href="DCFreeze.html">DCFreeze</a></code> function.</p> 43 44<p>This function invokes a sync after storing the specified range. This means that this function will stall until the CPU knows that the data has been written to main memory. Since this operation can be costly, consider calling the <code><a href="DCStoreRangeNoSync.html">DCStoreRangeNoSync</a></code> function on several ranges followed by a separate call to the <a href="../Synchronization/PPCSync.html"><code>PPCSync</code></a> function. DMA transfers with locked caches are not affected by the <a href="../Synchronization/PPCSync.html"><code>PPCSync</code></a> function.</p> 45 46<p></p> 47 48<h2>See Also</h2> 49 50<p><a href="../list.html#Cache" target="contents">Cache Functions</a>, <code><a href="DCStoreRangeNoSync.html">DCStoreRangeNoSync</a>, <a href="DCFlushRange.html">DCFlushRange</a></code>, <a href="DCFlushRange.html"><code>DCFlushRangeNoSync</code></a>, <a href="DCInvalidateRange.html"><code>DCInvalidateRange</code></a>, <code><a href="ICInvalidateRange.html">ICInvalidateRange</a>, <a href="../Synchronization/PPCSync.html">PPCSync</a></code></p> 51 52<h2>Revision History</h2><p></p> 53 54<P>03/01/2006 Initial version.</p> 55 56</body> 57</html>