summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/smb.4 3.html
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man4/smb.4 3.html')
-rw-r--r--static/freebsd/man4/smb.4 3.html185
1 files changed, 185 insertions, 0 deletions
diff --git a/static/freebsd/man4/smb.4 3.html b/static/freebsd/man4/smb.4 3.html
new file mode 100644
index 00000000..de9aba1e
--- /dev/null
+++ b/static/freebsd/man4/smb.4 3.html
@@ -0,0 +1,185 @@
+<table class="head">
+ <tr>
+ <td class="head-ltitle">SMB(4)</td>
+ <td class="head-vol">Device Drivers Manual</td>
+ <td class="head-rtitle">SMB(4)</td>
+ </tr>
+</table>
+<div class="manual-text">
+<section class="Sh">
+<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
+<p class="Pp"><code class="Nm">smb</code> &#x2014; <span class="Nd">System
+ Management Bus (SMBus) generic I/O device driver</span></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
+<p class="Pp"><code class="Cd">device smb</code></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
+<p class="Pp">The
+ <a class="permalink" href="#smb"><i class="Em" id="smb">smb</i></a>
+ character device driver provides generic I/O to any
+ <a class="Xr">smbus(4)</a> instance. To control SMB devices, use
+ <span class="Pa">/dev/smb?</span> with the ioctls described below. Any of
+ these ioctl commands takes a pointer to <var class="Vt">struct smbcmd</var>
+ as its argument.</p>
+<div class="Bd Pp Li">
+<pre>#include &lt;sys/types.h&gt;
+
+struct smbcmd {
+ u_char cmd;
+ u_char reserved;
+ u_short op;
+ union {
+ char byte;
+ char buf[2];
+ short word;
+ } wdata;
+ union {
+ char byte;
+ char buf[2];
+ short word;
+ } rdata;
+ int slave;
+ char *wbuf; /* use wdata if NULL */
+ int wcount;
+ char *rbuf; /* use rdata if NULL */
+ int rcount;
+};</pre>
+</div>
+<p class="Pp">The <var class="Fa">slave</var> field is always used, and provides
+ the address of the SMBus slave device. The slave address is specified in the
+ seven most significant bits (i.e., &#x201C;left-justified&#x201D;). The
+ least significant bit of the slave address must be zero.</p>
+<p class="Pp"></p>
+<table class="Bl-column Bl-compact">
+ <tr id="Ioctl">
+ <td><a class="permalink" href="#Ioctl"><i class="Em">Ioctl</i></a></td>
+ <td><a class="permalink" href="#Description"><i class="Em" id="Description">Description</i></a>
+ <p class="Pp"></p>
+ </td>
+ </tr>
+ <tr id="SMB_QUICK_WRITE">
+ <td><a class="permalink" href="#SMB_QUICK_WRITE"><code class="Dv">SMB_QUICK_WRITE</code></a></td>
+ <td><a class="permalink" href="#QuickWrite"><i class="Em" id="QuickWrite">QuickWrite</i></a>
+ does not transfer any data. It just issues the device address with write
+ intent to the bus.</td>
+ </tr>
+ <tr id="SMB_QUICK_READ">
+ <td><a class="permalink" href="#SMB_QUICK_READ"><code class="Dv">SMB_QUICK_READ</code></a></td>
+ <td><a class="permalink" href="#QuickRead"><i class="Em" id="QuickRead">QuickRead</i></a>
+ does not transfer any data. It just issues the device address with read
+ intent to the bus.</td>
+ </tr>
+ <tr id="SMB_SENDB">
+ <td><a class="permalink" href="#SMB_SENDB"><code class="Dv">SMB_SENDB</code></a></td>
+ <td><a class="permalink" href="#SendByte"><i class="Em" id="SendByte">SendByte</i></a>
+ sends the byte provided in <var class="Fa">cmd</var> to the device.</td>
+ </tr>
+ <tr id="SMB_RECVB">
+ <td><a class="permalink" href="#SMB_RECVB"><code class="Dv">SMB_RECVB</code></a></td>
+ <td><a class="permalink" href="#ReceiveByte"><i class="Em" id="ReceiveByte">ReceiveByte</i></a>
+ reads a single byte from the device which is returned in
+ <var class="Fa">cmd</var>.</td>
+ </tr>
+ <tr id="SMB_WRITEB">
+ <td><a class="permalink" href="#SMB_WRITEB"><code class="Dv">SMB_WRITEB</code></a></td>
+ <td><a class="permalink" href="#WriteByte"><i class="Em" id="WriteByte">WriteByte</i></a>
+ first sends the byte from <var class="Fa">cmd</var> to the device,
+ followed by the byte given in <var class="Fa">wdata.byte</var>.</td>
+ </tr>
+ <tr id="SMB_WRITEW">
+ <td><a class="permalink" href="#SMB_WRITEW"><code class="Dv">SMB_WRITEW</code></a></td>
+ <td><a class="permalink" href="#WriteWord"><i class="Em" id="WriteWord">WriteWord</i></a>
+ first sends the byte from <var class="Fa">cmd</var> to the device,
+ followed by the word given in <var class="Fa">wdata.word</var>. Note that
+ the SMBus byte-order is little-endian by definition.</td>
+ </tr>
+ <tr id="SMB_READB">
+ <td><a class="permalink" href="#SMB_READB"><code class="Dv">SMB_READB</code></a></td>
+ <td><a class="permalink" href="#ReadByte"><i class="Em" id="ReadByte">ReadByte</i></a>
+ first sends the byte from <var class="Fa">cmd</var> to the device, then
+ reads one byte of data from the device. Returned data is stored in
+ <var class="Fa">rdata.byte</var>.</td>
+ </tr>
+ <tr id="SMB_READW">
+ <td><a class="permalink" href="#SMB_READW"><code class="Dv">SMB_READW</code></a></td>
+ <td><a class="permalink" href="#ReadWord"><i class="Em" id="ReadWord">ReadWord</i></a>
+ first sends the byte from <var class="Fa">cmd</var> to the device, then
+ reads one word of data from the device. Returned data is stored in
+ <var class="Fa">rdata.word</var>.</td>
+ </tr>
+ <tr id="SMB_PCALL">
+ <td><a class="permalink" href="#SMB_PCALL"><code class="Dv">SMB_PCALL</code></a></td>
+ <td><a class="permalink" href="#ProcedureCall"><i class="Em" id="ProcedureCall">ProcedureCall</i></a>
+ first sends the byte from <var class="Fa">cmd</var> to the device,
+ followed by the word provided in <var class="Fa">wdata.word</var>. It then
+ reads one word of data from the device and returns it in
+ <var class="Fa">rdata.word</var>.</td>
+ </tr>
+ <tr id="SMB_BWRITE">
+ <td><a class="permalink" href="#SMB_BWRITE"><code class="Dv">SMB_BWRITE</code></a></td>
+ <td><a class="permalink" href="#BlockWrite"><i class="Em" id="BlockWrite">BlockWrite</i></a>
+ first sends the byte from <var class="Fa">cmd</var> to the device, then
+ the byte from <var class="Fa">wcount</var> followed by
+ <var class="Fa">wcount</var> bytes of data that are taken from the buffer
+ pointed to by <var class="Fa">wbuf</var>. The SMBus specification mandates
+ that no more than 32 bytes of data can be transferred in a single block
+ read or write command. This value can be read from the constant
+ <code class="Dv">SMB_MAXBLOCKSIZE</code>.</td>
+ </tr>
+ <tr id="SMB_BREAD">
+ <td><a class="permalink" href="#SMB_BREAD"><code class="Dv">SMB_BREAD</code></a></td>
+ <td><a class="permalink" href="#BlockRead"><i class="Em" id="BlockRead">BlockRead</i></a>
+ first sends the byte from <var class="Fa">cmd</var> to the device, then
+ reads a count of data bytes that the device is going to provide and then
+ reads that many bytes. The count is returned in
+ <var class="Fa">rcount</var>. The data is returned in the buffer pointed
+ to by <var class="Fa">rbuf</var>.</td>
+ </tr>
+</table>
+<p class="Pp">The <a class="Xr">read(2)</a> and <a class="Xr">write(2)</a>
+ system calls are not implemented by this driver.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="ERRORS"><a class="permalink" href="#ERRORS">ERRORS</a></h1>
+<p class="Pp">The <a class="Xr">ioctl(2)</a> commands can cause the following
+ driver-specific errors:</p>
+<dl class="Bl-tag">
+ <dt id="ENXIO">[<a class="permalink" href="#ENXIO"><code class="Er">ENXIO</code></a>]</dt>
+ <dd>Device did not respond to selection.</dd>
+ <dt id="EBUSY">[<a class="permalink" href="#EBUSY"><code class="Er">EBUSY</code></a>]</dt>
+ <dd>Device still in use.</dd>
+ <dt id="ENODEV">[<a class="permalink" href="#ENODEV"><code class="Er">ENODEV</code></a>]</dt>
+ <dd>Operation not supported by device (not supposed to happen).</dd>
+ <dt id="EINVAL">[<a class="permalink" href="#EINVAL"><code class="Er">EINVAL</code></a>]</dt>
+ <dd>General argument error.</dd>
+ <dt id="EWOULDBLOCK">[<a class="permalink" href="#EWOULDBLOCK"><code class="Er">EWOULDBLOCK</code></a>]</dt>
+ <dd>SMBus transaction timed out.</dd>
+</dl>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
+ ALSO</a></h1>
+<p class="Pp"><a class="Xr">ioctl(2)</a>, <a class="Xr">smbus(4)</a></p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
+<p class="Pp">The <code class="Nm">smb</code> manual page first appeared in
+ <span class="Ux">FreeBSD 3.0</span>.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
+<p class="Pp">This manual page was written by <span class="An">Nicolas
+ Souchu</span> and extended by
+ <br/>
+ <span class="An">Michael Gmelin</span> &#x27E8;freebsd@grem.de&#x27E9;.</p>
+</section>
+</div>
+<table class="foot">
+ <tr>
+ <td class="foot-date">April 25, 2015</td>
+ <td class="foot-os">FreeBSD 15.0</td>
+ </tr>
+</table>