diff options
Diffstat (limited to 'share/man/man4/smb.4')
-rw-r--r-- | share/man/man4/smb.4 | 204 |
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 . |