1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>mtrr_add</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="The Linux Kernel API"><link rel="up" href="ch09s04.html" title="MTRR Handling"><link rel="prev" href="ch09s04.html" title="MTRR Handling"><link rel="next" href="API-mtrr-del.html" title="mtrr_del"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">mtrr_add</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch09s04.html">Prev</a>&#160;</td><th width="60%" align="center">MTRR Handling</th><td width="20%" align="right">&#160;<a accesskey="n" href="API-mtrr-del.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-mtrr-add"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>mtrr_add &#8212; 
2  Add a memory type region
3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">mtrr_add </b>(</code></td><td>unsigned long <var class="pdparam">base</var>, </td></tr><tr><td>&#160;</td><td>unsigned long <var class="pdparam">size</var>, </td></tr><tr><td>&#160;</td><td>unsigned int <var class="pdparam">type</var>, </td></tr><tr><td>&#160;</td><td>bool <var class="pdparam">increment</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer">&#160;</div></div></div><div class="refsect1"><a name="idp1126028180"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>base</code></em></span></dt><dd><p>
4     Physical base address of region
5    </p></dd><dt><span class="term"><em class="parameter"><code>size</code></em></span></dt><dd><p>
6     Physical size of region
7    </p></dd><dt><span class="term"><em class="parameter"><code>type</code></em></span></dt><dd><p>
8     Type of MTRR desired
9    </p></dd><dt><span class="term"><em class="parameter"><code>increment</code></em></span></dt><dd><p>
10     If this is true do usage counting on the region
11    </p></dd></dl></div></div><div class="refsect1"><a name="idp1126032900"></a><h2>Description</h2><p>
12   Memory type region registers control the caching on newer Intel and
13   non Intel processors. This function allows drivers to request an
14   MTRR is added. The details and hardware specifics of each processor's
15   implementation are hidden from the caller, but nevertheless the
16   caller should expect to need to provide a power of two size on an
17   equivalent power of two boundary.
18   </p><p>
19
20   If the region cannot be added either because all regions are in use
21   or the CPU cannot support it a negative value is returned. On success
22   the register number for this entry is returned, but should be treated
23   as a cookie only.
24   </p><p>
25
26   On a multiprocessor machine the changes are made to all processors.
27   This is required on x86 by the Intel processors.
28   </p><p>
29
30   The available types are
31   </p><p>
32
33   <code class="constant">MTRR_TYPE_UNCACHABLE</code> - No caching
34   </p><p>
35
36   <code class="constant">MTRR_TYPE_WRBACK</code> - Write data back in bursts whenever
37   </p><p>
38
39   <code class="constant">MTRR_TYPE_WRCOMB</code> - Write data back soon but allow bursts
40   </p><p>
41
42   <code class="constant">MTRR_TYPE_WRTHROUGH</code> - Cache reads but not writes
43</p></div><div class="refsect1"><a name="idp1126036252"></a><h2>BUGS</h2><p>
44   Needs a quiet flag for the cases where drivers do not mind
45   failures and do not wish system log messages to be sent.
46</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch09s04.html">Prev</a>&#160;</td><td width="20%" align="center"><a accesskey="u" href="ch09s04.html">Up</a></td><td width="40%" align="right">&#160;<a accesskey="n" href="API-mtrr-del.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">MTRR Handling&#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;<span class="phrase">mtrr_del</span></td></tr></table></div></body></html>
47