aboutsummaryrefslogtreecommitdiff
path: root/doc/opal-api/opal-sensor-read-88.html
blob: d2c01fc15c323d096fa9382d6da7d7ef4afcbad4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>OPAL_SENSOR_READ &#8212; skiboot 4d27f03
 documentation</title>
    <link rel="stylesheet" href="../_static/classic.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    
    <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/underscore.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <script type="text/javascript" src="../_static/language_data.js"></script>
    
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="OPAL_SET_XIVE" href="opal-set-xive-19.html" />
    <link rel="prev" title="OPAL Sensor Groups" href="opal-sensor-group-enable-clear-163-156.html" /> 
  </head><body>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="opal-set-xive-19.html" title="OPAL_SET_XIVE"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="opal-sensor-group-enable-clear-163-156.html" title="OPAL Sensor Groups"
             accesskey="P">previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../index.html">skiboot 4d27f03
 documentation</a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">OPAL API Documentation</a> &#187;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <div class="section" id="opal-sensor-read">
<span id="id1"></span><h1>OPAL_SENSOR_READ<a class="headerlink" href="#opal-sensor-read" title="Permalink to this headline"></a></h1>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#define OPAL_SENSOR_READ                     88</span>

<span class="kt">int64_t</span> <span class="nf">opal_sensor_read</span><span class="p">(</span><span class="kt">uint32_t</span> <span class="n">sensor_hndl</span><span class="p">,</span> <span class="kt">int</span> <span class="n">token</span><span class="p">,</span> <span class="kt">uint32_t</span> <span class="o">*</span><span class="n">sensor_data</span><span class="p">);</span>
</pre></div>
</div>
<p>The OPAL sensor call reads a sensor data using a unique handler to
identity the targeted sensor. The <cite>sensor_handle</cite> is provided
via the device tree and is opaque to the OS (although we currently
do use an encoding scheme).</p>
<p>This call can be asynchronous, when a message needs to be sent to a
service processor for example.  In this case, the call will return
OPAL_ASYNC_COMPLETION and the token parameter will be used to wait for
the completion of the request.</p>
<p>The OPAL API doesn’t enforce alimit on the number of sensor calls that can
be in flight.</p>
<p>Internally, <a class="reference internal" href="#opal-sensor-read"><span class="std std-ref">OPAL_SENSOR_READ</span></a> is implemented as a wrapper around
<a class="reference internal" href="#opal-sensor-read-u64"><span class="std std-ref">OPAL_SENSOR_READ_U64</span></a>. Any code targeting processor generations prior
to POWER9 will need to use <a class="reference internal" href="opal-check-token-80.html#opal-check-token"><span class="std std-ref">OPAL_CHECK_TOKEN</span></a> to ensure <a class="reference internal" href="#opal-sensor-read-u64"><span class="std std-ref">OPAL_SENSOR_READ_U64</span></a>
is present and gracefully fall back to <a class="reference internal" href="#opal-sensor-read"><span class="std std-ref">OPAL_SENSOR_READ</span></a> if it is not.</p>
<div class="section" id="parameters">
<h2>Parameters<a class="headerlink" href="#parameters" title="Permalink to this headline"></a></h2>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">uint32_t</span> <span class="n">sensor_handle</span>
<span class="nb">int</span>      <span class="n">token</span>
<span class="n">uint32_t</span> <span class="o">*</span><span class="n">sensor_data</span>
</pre></div>
</div>
</div>
<div class="section" id="return-values">
<h2>Return values<a class="headerlink" href="#return-values" title="Permalink to this headline"></a></h2>
<dl class="docutils">
<dt><a class="reference internal" href="return-codes.html#opal-success"><span class="std std-ref">OPAL_SUCCESS</span></a></dt>
<dd>Success!</dd>
<dt><a class="reference internal" href="return-codes.html#opal-parameter"><span class="std std-ref">OPAL_PARAMETER</span></a></dt>
<dd>invalid sensor handle</dd>
<dt><a class="reference internal" href="return-codes.html#opal-unsupported"><span class="std std-ref">OPAL_UNSUPPORTED</span></a></dt>
<dd>platform does not support reading sensors.</dd>
<dt><a class="reference internal" href="return-codes.html#opal-async-completion"><span class="std std-ref">OPAL_ASYNC_COMPLETION</span></a></dt>
<dd>a request was sent and an async completion will
be triggered with the &#64;token argument</dd>
<dt><a class="reference internal" href="return-codes.html#opal-partial"><span class="std std-ref">OPAL_PARTIAL</span></a></dt>
<dd>the request completed but the data returned is invalid</dd>
<dt><a class="reference internal" href="return-codes.html#opal-busy-event"><span class="std std-ref">OPAL_BUSY_EVENT</span></a></dt>
<dd>a previous request is still pending</dd>
<dt><a class="reference internal" href="return-codes.html#opal-no-mem"><span class="std std-ref">OPAL_NO_MEM</span></a></dt>
<dd>allocation failed</dd>
<dt><a class="reference internal" href="return-codes.html#opal-internal-error"><span class="std std-ref">OPAL_INTERNAL_ERROR</span></a></dt>
<dd>communication failure with the FSP</dd>
<dt><a class="reference internal" href="return-codes.html#opal-hardware"><span class="std std-ref">OPAL_HARDWARE</span></a></dt>
<dd>FSP is not available</dd>
</dl>
</div>
</div>
<div class="section" id="opal-sensor-read-u64">
<span id="id2"></span><h1>OPAL_SENSOR_READ_U64<a class="headerlink" href="#opal-sensor-read-u64" title="Permalink to this headline"></a></h1>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#define OPAL_SENSOR_READ_U64                 162</span>

<span class="n">s64</span> <span class="nf">opal_sensor_read_u64</span><span class="p">(</span><span class="n">u32</span> <span class="n">sensor_hndl</span><span class="p">,</span> <span class="kt">int</span> <span class="n">token</span><span class="p">,</span> <span class="n">u64</span> <span class="o">*</span><span class="n">sensor_data</span><span class="p">);</span>
</pre></div>
</div>
<p>The OPAL sensor call to read sensor data of type u64. Unlike
opal_sensor_read which reads upto u32 this call can be used to
read values of sensors upto 64bits. The calling conventions and
return values are same as <a class="reference internal" href="#opal-sensor-read"><span class="std std-ref">OPAL_SENSOR_READ</span></a>.</p>
<p>All sensors can be read through the <a class="reference internal" href="#opal-sensor-read-u64"><span class="std std-ref">OPAL_SENSOR_READ_U64</span></a> call that
can be read using the <a class="reference internal" href="#opal-sensor-read"><span class="std std-ref">OPAL_SENSOR_READ</span></a> call. Internally,
<a class="reference internal" href="#opal-sensor-read"><span class="std std-ref">OPAL_SENSOR_READ</span></a> is a wrapper around <a class="reference internal" href="#opal-sensor-read-u64"><span class="std std-ref">OPAL_SENSOR_READ_U64</span></a>.
Any code targeting processor generations prior to POWER9 will need to use
<a class="reference internal" href="opal-check-token-80.html#opal-check-token"><span class="std std-ref">OPAL_CHECK_TOKEN</span></a> to ensure <a class="reference internal" href="#opal-sensor-read-u64"><span class="std std-ref">OPAL_SENSOR_READ_U64</span></a>
is present and gracefully fall back to <a class="reference internal" href="#opal-sensor-read"><span class="std std-ref">OPAL_SENSOR_READ</span></a> if it is not.</p>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
  <h3><a href="../index.html">Table of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">OPAL_SENSOR_READ</a><ul>
<li><a class="reference internal" href="#parameters">Parameters</a></li>
<li><a class="reference internal" href="#return-values">Return values</a></li>
</ul>
</li>
<li><a class="reference internal" href="#opal-sensor-read-u64">OPAL_SENSOR_READ_U64</a></li>
</ul>

  <h4>Previous topic</h4>
  <p class="topless"><a href="opal-sensor-group-enable-clear-163-156.html"
                        title="previous chapter">OPAL Sensor Groups</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="opal-set-xive-19.html"
                        title="next chapter">OPAL_SET_XIVE</a></p>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/opal-api/opal-sensor-read-88.rst.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
<div id="searchbox" style="display: none" role="search">
  <h3>Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" />
      <input type="submit" value="Go" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    </div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="opal-set-xive-19.html" title="OPAL_SET_XIVE"
             >next</a> |</li>
        <li class="right" >
          <a href="opal-sensor-group-enable-clear-163-156.html" title="OPAL Sensor Groups"
             >previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../index.html">skiboot 4d27f03
 documentation</a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="index.html" >OPAL API Documentation</a> &#187;</li> 
      </ul>
    </div>
    <div class="footer" role="contentinfo">
        &#169; Copyright 2016-2017, IBM, others.
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.8.5.
    </div>
  </body>
</html>