summaryrefslogtreecommitdiffstats
path: root/share/man/man9/own.9
diff options
context:
space:
mode:
Diffstat (limited to 'share/man/man9/own.9')
-rw-r--r--share/man/man9/own.9230
1 files changed, 230 insertions, 0 deletions
diff --git a/share/man/man9/own.9 b/share/man/man9/own.9
new file mode 100644
index 0000000..8609eb7
--- /dev/null
+++ b/share/man/man9/own.9
@@ -0,0 +1,230 @@
+.\"
+.\" Copyright (c) 2015 M. Warner Losh
+.\" 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. The name of the author may not be used to endorse or promote products
+.\" derived from this software without specific prior written permission.
+.\"
+.\" 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 July 20, 2015
+.Dt OWN 9
+.Os
+.Sh NAME
+.Nm own ,
+.Nm own_send_command ,
+.Nm own_commmand_wait ,
+.Nm own_self_command ,
+.Nm own_acquire_bus ,
+.Nm own crc ,
+.Nm own_release_bus ,
+.Nm OWN_ACQUIRE_BUS ,
+.Nm OWN_CRC ,
+.Nm OWN_RELEASE_BUS ,
+.Nm OWN_SEND_COMMAND
+.Nd Dallas Semiconductor 1-Wire Network and Transport Interface
+.Sh SYNOPSIS
+.In sys/bus.h
+.In dev/ow/own.h
+.Ft int
+.Fn own_send_command "device_t pdev" "struct ow_cmd *cmd"
+.Ft int
+.Fn own_command_wait "device_t pdev" "struct ow_cmd *cmd"
+.Ft int
+.Fn own_self_command "device_t pdev" "struct ow_cmd *cmd" "uint8_t xpt_cmd"
+.Ft int
+.Fn own_acquire_bus "device_t pdev" "int how"
+.Ft int
+.Fn own_release_bus "device_t pdev"
+.Ft int
+.Fn own_crc "device_t pdev" "uint8_t *buffer" "size_t len"
+.Ft int
+.Fn OWN_SEND_COMMAND "device_t ndev" "device_t pdev" "struct ow_cmd *cmd"
+.Ft int
+.Fn OWN_ACQUIRE_BUS "device_t ndev" "device_t pdev" "int how"
+.Ft void
+.Fn OWN_RELEASE_BUS "device_t ndev" "device_t pdev"
+.Ft uint8_t
+.Fn OWN_CRC "device_t ndev" "device_t pdev" "uint8_t *buffer" "size_t len"
+.Sh DESCRIPTION
+The
+.Nm
+interface defines three sets of functions for interacting with 1-Wire
+devices:
+sending commands,
+reserving the bus,
+and
+ensuring data integrity.
+Wrappers are provided for the raw
+.Nm OWN
+.Xr kobj 9
+interfaces and should be used for improved safety over the
+.Xr kobj 9
+ones.
+.Ss Bus Commands
+The 1-Wire bus defines different layers of access to the devices on
+the bus.
+The
+.Nm
+functions provide access to the network and transport layers.
+The network layer designates the next command as being either for all
+devices on the bus, or for a specific device.
+The network layer also specifies the speed used by the link layer.
+.Pp
+.Vt "struct ow_cmd"
+encapsulates network access, speed, and timing information.
+It specifies the commands to send and whether or not to read data.
+Its members are:
+.Bl -tag -width ".Va xxxx"
+.It Va flags
+Flags controlling the interpretation of the structure.
+These flags are defined in
+.In dev/ow/ow.h :
+.Bl -tag -width indent
+.It OW_FLAG_OVERDRIVE
+Send
+.Va xpt_cmd
+bytes and read
+.Va xpt_read
+bytes at overdrive speed.
+.It OW_FLAG_READ_BIT
+Interpret
+.Va xpt_read_len
+to be in bits to be read after
+.Va xpt_cmd
+rather than bytes.
+.El
+.It Va rom_cmd
+ROM command bytes to send.
+.It Va rom_len
+Number of ROM command bytes to send.
+.It Va rom_read_len
+Number of bytes to read after sending the ROM command.
+.It Va rom_read
+Buffer for bytes read after the ROM command.
+.It Va xpt_cmd
+Transport command to send.
+.It Va xpt_len
+Length of the transport command bytes to send.
+Specify 0 for no transport command.
+.It Va xpt_read_len
+Number of bytes to read after
+.Va xpt_cmd
+bytes are sent.
+If the
+.Dv OW_FLAG_READ_BIT
+bit is set in
+.Va flags ,
+then it is the number of bits to read.
+Bits read are packed into bytes.
+.It Va xpt_read
+Buffer for data read.
+.El
+.Pp
+.Fn own_command_wait
+acquires the 1-Wire bus, waiting if necessary,
+sends the command,
+and
+then releases the bus.
+.Fn own_send_command
+sends the command without bus reservation.
+.Fa pdev
+is the client device (the presentation layer device) sending the command.
+The
+.Fa cmd
+argument describes the transaction to send to the 1-Wire bus.
+.Pp
+.Fn own_self_command
+fills in
+.Fa cmd
+with a MATCH_ROM ROM command, the ROM address of
+.Fa pdev
+and the
+.Fa xpt_cmd
+as a convenient way to create directed commands.
+.Ss Bus Reservation
+The 1-Wire system includes an advisory lock for the bus that
+presentation layer devices can use to coordinate access.
+Locking is purely advisory at this time.
+.Pp
+.Fn own_acquire_bus
+reserves the bus.
+It waits indefinitely if the
+.Fa how
+argument is
+.Dv OWN_WAIT
+and returns the error
+.Dv EWOULDBLOCK
+if passed
+.Dv OWN_DONTWAIT
+when the bus is owned by another client.
+.Pp
+.Fn own_release_bus
+releases the bus.
+.Ss Data Integrity
+.Fn own_crc
+computes the 1-Wire standard CRC function over the data
+passed in
+.Fa buffer
+and
+.Fa len
+and returns the result.
+.Ss Notes
+The 1-Wire standard (Maxim AN937) defines layers that are akin to ISO
+networking layers.
+The lowest relevant layer, the link layer, defines the polling windows
+and the timing of the signaling of different modes.
+The network layer is built on top of the link layer
+and is used to address devices in a unicast or multicast manner.
+The transport layer defines commands and responses from the devices.
+The presentation layer is composed of the device specific commands and
+actions used to control the specific 1-Wire devices on bus.
+.Pp
+These interfaces are implemented by the
+.Xr ow 4
+device.
+Presentation layer devices (children of the newbus
+.Xr ow 4
+device) should only call the functions described here.
+The functionality provided by the
+.Xr owc 4
+device (specifically the
+.Xr owll 9
+interface) should only be called by the
+.Xr ow 4
+driver.
+.Sh SEE ALSO
+.Xr ow 4 ,
+.Xr owc 4 ,
+.Xr owll 9
+.Pa http://pdfserv.maximintegrated.com/en/an/AN937.pdf
+.Sh LEGAL
+.Tn 1-Wire
+is a registered trademark of Maxim Integrated Products, Inc.
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Fx 11.0 .
+.Sh AUTHORS
+The
+.Nm
+device driver and this manual page were written by
+.An Warner Losh .
OpenPOWER on IntegriCloud