aboutsummaryrefslogtreecommitdiff
path: root/share/man/man4/smb.4
diff options
context:
space:
mode:
Diffstat (limited to 'share/man/man4/smb.4')
-rw-r--r--share/man/man4/smb.4204
1 files changed, 204 insertions, 0 deletions
diff --git a/share/man/man4/smb.4 b/share/man/man4/smb.4
new file mode 100644
index 000000000000..afe4605b449f
--- /dev/null
+++ b/share/man/man4/smb.4
@@ -0,0 +1,204 @@
+.\" Copyright (c) 1998, Nicolas Souchu
+.\" Copyright (c) 2004, Joerg Wunsch
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd February 6, 2009
+.Dt SMB 4
+.Os
+.Sh NAME
+.Nm smb
+.Nd SMB generic I/O device driver
+.Sh SYNOPSIS
+.Cd "device smb"
+.Sh DESCRIPTION
+The
+.Em smb
+character device driver provides generic i/o to any
+.Xr smbus 4
+instance.
+In order to control SMB devices, use
+.Pa /dev/smb?
+with the ioctls described below.
+Any of these ioctl commands takes a pointer to
+.Vt struct smbcmd
+as its argument.
+.Bd -literal
+#include <sys/types.h>
+
+struct smbcmd {
+ char cmd;
+ int count;
+ u_char slave;
+ union {
+ char byte;
+ short word;
+
+ char *byte_ptr;
+ short *word_ptr;
+
+ struct {
+ short sdata;
+ short *rdata;
+ } process;
+ } data;
+};
+.Ed
+.Pp
+The
+.Fa slave
+field is always used, and provides the address of the
+SMBus slave device to talk to.
+The slave address is specified in the seven most significant bits
+.Pq i.e. Dq "left-justified" .
+The least significant bit of the slave address must be zero.
+.Pp
+.Bl -column ".Dv SMB_QUICK_WRITE" -compact
+.It Em Ioctl Ta Em Description
+.Pp
+.It Dv SMB_QUICK_WRITE Ta
+The
+.Em QuickWrite
+command just issues the device address with write intent
+to the bus, without transferring any data.
+.It Dv SMB_QUICK_READ Ta
+The
+.Em QuickRead
+command just issues the device address with read intent
+to the bus, without transferring any data.
+.It Dv SMB_SENDB Ta
+The
+.Em SendByte
+command sends the byte provided in the
+.Fa cmd
+field to the device.
+.It Dv SMB_RECVB Ta
+The
+.Em ReceiveByte
+command reads a single byte from the device which will
+be returned in the
+.Fa cmd
+field.
+.It Dv SMB_WRITEB Ta
+The
+.Em WriteByte
+command first sends the byte from the
+.Fa cmd
+field to the device, followed by the byte given in
+.Fa data.byte .
+.It Dv SMB_WRITEW Ta
+The
+.Em WriteWord
+command first sends the byte from the
+.Fa cmd
+field to the device, followed by the word given in
+.Fa data.word .
+Note that the SMBus byte-order is little-endian by definition.
+.It Dv SMB_READB Ta
+The
+.Em ReadByte
+command first sends the byte from the
+.Fa cmd
+field to the device, and then reads one byte of data from
+the device.
+The returned data will be stored in the location pointed to by
+.Fa data.byte_ptr .
+.It Dv SMB_READW Ta
+The
+.Em ReadWord
+command first sends the byte from the
+.Fa cmd
+field to the device, and then reads one word of data from
+the device.
+The returned data will be stored in the location pointed to by
+.Fa data.word_ptr .
+.It Dv SMB_PCALL Ta
+The
+.Em ProcedureCall
+command first sends the byte from the
+.Fa cmd
+field to the device, followed by the word provided in
+.Fa data.process.sdata .
+It then reads one word of data from the device, and returns it
+in the location pointed to by
+.Fa data.process.rdata .
+.It Dv SMB_BWRITE Ta
+The
+.Em BlockWrite
+command first sends the byte from the
+.Fa cmd
+field to the device, followed by
+.Fa count
+bytes of data that are taken from the buffer pointed to by
+.Fa data.byte_ptr .
+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 is available in the constant
+.Dv SMB_MAXBLOCKSIZE .
+.It Dv SMB_BREAD Ta
+The
+.Em BlockRead
+command first sends the byte from the
+.Fa cmd
+field to the device, and then reads
+.Fa count
+bytes of data that from the device.
+These data will be returned in the buffer pointed to by
+.Fa data.byte_ptr .
+.El
+.Pp
+The
+.Xr read 2
+and
+.Xr write 2
+system calls are not implemented by this driver.
+.Sh ERRORS
+The
+.Xr ioctl 2
+commands can cause the following driver-specific errors:
+.Bl -tag -width Er
+.It Bq Er ENXIO
+Device did not respond to selection.
+.It Bq Er EBUSY
+Device still in use.
+.It Bq Er ENODEV
+Operation not supported by device (not supposed to happen).
+.It Bq Er EINVAL
+General argument error.
+.It Bq Er EWOULDBLOCK
+SMBus transaction timed out.
+.El
+.Sh SEE ALSO
+.Xr ioctl 2 ,
+.Xr smbus 4
+.Sh HISTORY
+The
+.Nm
+manual page first appeared in
+.Fx 3.0 .
+.Sh AUTHORS
+This
+manual page was written by
+.An Nicolas Souchu .