diff options
Diffstat (limited to 'static/freebsd/man4/smb.4 3.html')
| -rw-r--r-- | static/freebsd/man4/smb.4 3.html | 185 |
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> — <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 <sys/types.h> + +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., “left-justified”). 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> ⟨freebsd@grem.de⟩.</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> |
