summaryrefslogtreecommitdiff
path: root/usr
diff options
context:
space:
mode:
authorJason King <jason.king@joyent.com>2018-07-09 01:56:21 -0500
committerJason King <jason.king@joyent.com>2019-12-17 09:53:37 -0600
commit427723622c44f91d933c66b35e3de35f4ccd4669 (patch)
tree06b57f219c0d6dfa3f82f01f3c966506b9f71084 /usr
parentc8236ea6ad6caec3ccd52d13b0345b7881f0c12c (diff)
downloadillumos-joyent-427723622c44f91d933c66b35e3de35f4ccd4669.tar.gz
12060 Convert Intro(9S) to mandoc
12061 Convert cb_ops(9S) to mandoc 12062 Convert buf(9S) to mandoc 12063 Convert free_rtn(9S) to mandoc 12064 Convert iovec(9S) to mandoc 12065 Convert aio_req(9S) to mandoc 12066 Convert copyreq(9S) to mandoc Reviewed by: Robert Mustacchi <rm@fingolfin.org> Approved by: Dan McDonald <danmcd@joyent.com>
Diffstat (limited to 'usr')
-rw-r--r--usr/src/man/man9s/Intro.9s299
-rw-r--r--usr/src/man/man9s/aio_req.9s90
-rw-r--r--usr/src/man/man9s/buf.9s430
-rw-r--r--usr/src/man/man9s/cb_ops.9s261
-rw-r--r--usr/src/man/man9s/copyreq.9s77
-rw-r--r--usr/src/man/man9s/free_rtn.9s91
-rw-r--r--usr/src/man/man9s/iovec.9s74
7 files changed, 691 insertions, 631 deletions
diff --git a/usr/src/man/man9s/Intro.9s b/usr/src/man/man9s/Intro.9s
index e2968197f1..45aabc5549 100644
--- a/usr/src/man/man9s/Intro.9s
+++ b/usr/src/man/man9s/Intro.9s
@@ -1,189 +1,130 @@
-'\" te
+.\" Copyright 2018, Joyent Inc.
.\" Copyright 2014 Garrett D'Amore <garrett@damore.org>
.\" Copyright (c) 2001, Sun Microsystems, Inc., All Rights Reserved.
.\" Copyright 1989 AT&T
-.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
-.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
-.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH INTRO 9S "May 24, 2014"
-.SH NAME
-Intro, intro \- introduction to kernel data structures and properties
-.SH DESCRIPTION
-.sp
-.LP
-Section 9P describes kernel properties used by device drivers. Section 9S
+.\" The contents of this file are subject to the terms of the
+.\" Common Development and Distribution License (the "License").
+.\" You may not use this file except in compliance with the License.
+.\"
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+.\" or http://www.opensolaris.org/os/licensing.
+.\" See the License for the specific language governing permissions
+.\" and limitations under the License.
+.\"
+.\" When distributing Covered Code, include this CDDL HEADER in each
+.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+.\" If applicable, add the following below this CDDL HEADER, with the
+.\" fields enclosed by brackets "[]" replaced with your own identifying
+.\" information: Portions Copyright [yyyy] [name of copyright owner]
+.Dd July 9, 2018
+.Dt INTRO 9S
+.Os
+.Sh NAME
+.Nm Intro ,
+.Nm intro
+.Nd introduction to kernel data structures and properties
+.Sh DESCRIPTION
+Section 9P describes kernel properties used by device drivers.
+Section 9S
describes the data structures used by drivers to share information between the
-driver and the kernel. See \fBIntro\fR(9E) for an overview of device driver
+driver and the kernel.
+See
+.Xr Intro 9E
+for an overview of device driver
interfaces.
-.sp
-.LP
+.Pp
In Section 9S, reference pages contain the following headings:
-.RS +4
-.TP
-.ie t \(bu
-.el o
-\fBNAME\fR summarizes the purpose of the structure or property.
-.RE
-.RS +4
-.TP
-.ie t \(bu
-.el o
-\fBSYNOPSIS\fR lists the include file that defines the structure or property.
-.RE
-.RS +4
-.TP
-.ie t \(bu
-.el o
-\fBINTERFACE\fR \fBLEVEL\fR describes any architecture dependencies.
-.RE
-.RS +4
-.TP
-.ie t \(bu
-.el o
-\fBDESCRIPTION\fR provides general information about the structure or property.
-.RE
-.RS +4
-.TP
-.ie t \(bu
-.el o
-\fBSTRUCTURE\fR \fBMEMBERS\fR lists all accessible structure members (for
-Section 9S).
-.RE
-.RS +4
-.TP
-.ie t \(bu
-.el o
-\fBSEE\fR \fBALSO\fR gives sources for further information.
-.RE
-.sp
-.LP
-Of the preceding headings, Section 9P reference pages contain the \fBNAME\fR,
-\fBDESCRIPTION\fR, and \fBSEE\fR \fBALSO\fR fields.
-.sp
-.LP
-Every driver MUST include <\fBsys/ddi.h\fR> and <\fBsys/sunddi.h\fR>, in that
-order, and as final entries.
-.sp
-.LP
+.Bl -bullet -offset indent
+.It
+.Sy NAME
+summarizes the purpose of the structure or property.
+.It
+.Sy SYNOPSIS
+lists the include file that defines the structure or property.
+.It
+.Sy "INTERFACE LEVEL"
+describes any architecture dependencies.
+.It
+.Sy DESCRIPTION
+provides general information about the structure or property.
+.It
+.Sy "STRUCTURE MEMBERS"
+lists all accessible structure members (for Section 9S).
+.It
+.Sy "SEE ALSO"
+gives sources for further information.
+.El
+.Pp
+Of the preceding headings, Section 9P reference pages contain the
+.Sy NAME ,
+.Sy DESCRIPTION ,
+and
+.Sy "SEE ALSO"
+fields.
+.Pp
+Every driver MUST include
+.In sys/ddi.h
+and
+.In sys/sunddi.h ,
+in that order, and as final entries.
+.Pp
The following table summarizes the STREAMS structures described in Section 9S.
-.sp
-
-.sp
-.TS
-box;
-c | c
-l | l .
-Structure Type
-_
-\fBcopyreq\fR DDI/DKI
-_
-\fBcopyresp\fR DDI/DKI
-_
-\fBdatab\fR DDI/DKI
-_
-\fBfmodsw\fR Solaris DDI
-_
-\fBfree_rtn\fR DDI/DKI
-_
-\fBiocblk\fR DDI/DKI
-_
-\fBlinkblk\fR DDI/DKI
-_
-\fBmodule_info\fR DDI/DKI
-_
-\fBmsgb\fR DDI/DKI
-_
-\fBqband\fR DDI/DKI
-_
-\fBqinit\fR DDI/DKI
-_
-\fBqueclass\fR Solaris DDI
-_
-\fBqueue\fR DDI/DKI
-_
-\fBstreamtab\fR DDI/DKI
-_
-\fBstroptions\fR DDI/DKI
-.TE
-
-.sp
-.LP
+.Bl -column "module_info" "Solaris DDI" -offset indent
+.It Structure Ta Type
+.It Vt copyreq Ta DDI/DKI
+.It Vt copyresp Ta DDI/DKI
+.It Vt datab Ta DDI/DKI
+.It Vt fmodsw Ta Solaris DDI
+.It Vt free_rtn Ta DDI/DKI
+.It Vt iocblk Ta DDI/DKI
+.It Vt linkblk Ta DDI/DKI
+.It Vt module_info Ta DDI/DKI
+.It Vt msgb Ta DDI/DKI
+.It Vt qband Ta DDI/DKI
+.It Vt qinit Ta DDI/DKI
+.It Vt queclass Ta Solaris DDI
+.It Vt queue Ta DDI/DKI
+.It Vt streamtab Ta DDI/DKI
+.It Vt stroptions Ta DDI/DKI
+.El
+.Pp
The following table summarizes structures that are not specific to STREAMS I/O.
-.sp
-
-.sp
-.TS
-box;
-c | c
-l | l .
-Structure Type
-_
-\fBaio_req\fR Solaris DDI
-_
-\fBbuf\fR DDI/DKI
-_
-\fBcb_ops\fR Solaris DDI
-_
-\fBddi_device_acc_attr\fR Solaris DDI
-_
-\fBddi_dma_attr\fR Solaris DDI
-_
-\fBddi_dma_cookie\fR Solaris DDI
-_
-\fBddi_dmae_req\fR Solaris x86 DDI
-_
-\fBddi_idevice_cookie\fR Solaris DDI
-_
-\fBddi_mapdev_ctl\fR Solaris DDI
-_
-\fBdevmap_callback_ctl\fR Solaris DDI
-_
-\fBdev_ops\fR Solaris DDI
-_
-\fBiovec\fR DDI/DKI
-_
-\fBkstat\fR Solaris DDI
-_
-\fBkstat_intr\fR Solaris DDI
-_
-\fBkstat_io\fR Solaris DDI
-_
-\fBkstat_named\fR Solaris DDI
-_
-\fBmap\fR DDI/DKI
-_
-\fBmodldrv\fR Solaris DDI
-_
-\fBmodlinkage\fR Solaris DDI
-_
-\fBmodlstrmod\fR Solaris DDI
-_
-\fBscsi_address\fR Solaris DDI
-_
-\fBscsi_arq_status\fR Solaris DDI
-_
-\fBscsi_device\fR Solaris DDI
-_
-\fBscsi_extended_sense\fR Solaris DDI
-_
-\fBscsi_hba_tran\fR Solaris DDI
-_
-\fBscsi_inquiry\fR Solaris DDI
-_
-\fBscsi_pkt\fR Solaris DDI
-_
-\fBscsi_status\fR Solaris DDI
-_
-\fBuio\fR DDI/DKI
-.TE
-
-.SH SEE ALSO
-.sp
-.LP
-\fBIntro\fR(9E)
-.SH NOTES
-.sp
-.LP
+.Bl -column "ddi_device_acc_attr" "Solaris x86 DDI" -offset indent
+.It Structure Type
+.It Vt aio_req Ta Solaris DDI
+.It Vt buf Ta DDI/DKI
+.It Vt cb_ops Ta Solaris DDI
+.It Vt ddi_device_acc_attr Ta Solaris DDI
+.It Vt ddi_dma_attr Ta Solaris DDI
+.It Vt ddi_dma_cookie Ta Solaris DDI
+.It Vt ddi_dmae_req Ta Solaris x86 DDI
+.It Vt ddi_idevice_cookie Ta Solaris DDI
+.It Vt ddi_mapdev_ctl Ta Solaris DDI
+.It Vt devmap_callback_ctl Ta Solaris DDI
+.It Vt dev_ops Ta Solaris DDI
+.It Vt iovec Ta DDI/DKI
+.It Vt kstat Ta Solaris DDI
+.It Vt kstat_intr Ta Solaris DDI
+.It Vt kstat_io Ta Solaris DDI
+.It Vt kstat_named Ta Solaris DDI
+.It Vt map Ta DDI/DKI
+.It Vt modldrv Ta Solaris DDI
+.It Vt modlinkage Ta Solaris DDI
+.It Vt modlstrmod Ta Solaris DDI
+.It Vt scsi_address Ta Solaris DDI
+.It Vt scsi_arq_status Ta Solaris DDI
+.It Vt scsi_device Ta Solaris DDI
+.It Vt scsi_extended_sense Ta Solaris DDI
+.It Vt scsi_hba_tran Ta Solaris DDI
+.It Vt scsi_inquiry Ta Solaris DDI
+.It Vt scsi_pkt Ta Solaris DDI
+.It Vt scsi_status Ta Solaris DDI
+.It Vt uio Ta DDI/DKI
+.El
+.Sh SEE ALSO
+.Xr Intro 9E
+.Sh NOTES
Do not declare arrays of structures as the size of the structures can change
-between releases. Rely only on the structure members listed in this chapter and
+between releases.
+Rely only on the structure members listed in this chapter and
not on unlisted members or the position of a member in a structure.
diff --git a/usr/src/man/man9s/aio_req.9s b/usr/src/man/man9s/aio_req.9s
index 980e32556d..808b2b406a 100644
--- a/usr/src/man/man9s/aio_req.9s
+++ b/usr/src/man/man9s/aio_req.9s
@@ -1,42 +1,54 @@
-'\" te
+.\" Copyright 2018, Joyent, Inc.
.\" Copyright 1989 AT&T
.\" Copyright (c) 1997, Sun Microsystems, Inc. All Rights Reserved
-.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
-.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
-.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH AIO_REQ 9S "Mar 28, 1997"
-.SH NAME
-aio_req \- asynchronous I/O request structure
-.SH SYNOPSIS
-.LP
-.nf
-#include <sys/uio.h>
-#include <sys/aio_req.h>
-#include <sys/ddi.h>
-#include <sys/sunddi.h>
-.fi
-
-.SH INTERFACE LEVEL
-.sp
-.LP
+.\" The contents of this file are subject to the terms of the
+.\" Common Development and Distribution License (the "License").
+.\" You may not use this file except in compliance with the License.
+.\"
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+.\" or http://www.opensolaris.org/os/licensing.
+.\" See the License for the specific language governing permissions
+.\" and limitations under the License.
+.\"
+.\" When distributing Covered Code, include this CDDL HEADER in each
+.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+.\" If applicable, add the following below this CDDL HEADER, with the
+.\" fields enclosed by brackets "[]" replaced with your own identifying
+.\" information: Portions Copyright [yyyy] [name of copyright owner]
+.Dd July 9, 2018
+.Dt AIO_REQ 9S
+.Os
+.Sh NAME
+.Nm aio_req
+.Nd asynchronous I/O request structure
+.Sh SYNOPSIS
+.In sys/uio.h
+.In sys/aio_req.h
+.In sys/ddi.h
+.In sys/sunddi.h
+.Sh INTERFACE LEVEL
Solaris DDI specific (Solaris DDI)
-.SH DESCRIPTION
-.sp
-.LP
-An \fBaio_req\fR structure describes an asynchronous \fBI/O \fRrequest.
-.SH STRUCTURE MEMBERS
-.sp
-.in +2
-.nf
-struct uio*aio_uio; /* uio structure describing the I/O request */
-.fi
-.in -2
-
-.sp
-.LP
-The \fBaio_uio\fR member is a pointer to a \fBuio\fR(9S) structure, describing
-the \fBI/O \fRtransfer request.
-.SH SEE ALSO
-.sp
-.LP
-\fBaread\fR(9E), \fBawrite\fR(9E), \fBaphysio\fR(9F), \fBuio\fR(9S)
+.Sh DESCRIPTION
+An
+.Vt aio_req
+structure describes an asynchronous
+.Sy I/O
+request.
+.Sh STRUCTURE MEMBERS
+.Bd -literal -offset 2n
+struct uio *aio_uio; /* uio structure describing the I/O request */
+.Ed
+.Pp
+The
+.Fa aio_uio
+member is a pointer to a
+.Xr uio 9S
+structure, describing
+the
+.Sy I/O
+transfer request.
+.Sh SEE ALSO
+.Xr aread 9E ,
+.Xr awrite 9E ,
+.Xr aphysio 9F ,
+.Xr uio 9S
diff --git a/usr/src/man/man9s/buf.9s b/usr/src/man/man9s/buf.9s
index bb85a8b67d..e73282ea2b 100644
--- a/usr/src/man/man9s/buf.9s
+++ b/usr/src/man/man9s/buf.9s
@@ -1,228 +1,264 @@
-'\" te
.\" Copyright (c) 2002 Sun Microsystems, Inc. All Rights Reserved.
.\" Copyright 1989 AT&T
-.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
-.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
-.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH BUF 9S "Sep 19, 2002"
-.SH NAME
-buf \- block I/O data transfer structure
-.SH SYNOPSIS
-.LP
-.nf
-#include <sys/ddi.h>
-#include <sys/sunddi.h>
-.fi
-
-.SH INTERFACE LEVEL
-.sp
-.LP
+.\" The contents of this file are subject to the terms of the
+.\" Common Development and Distribution License (the "License").
+.\" You may not use this file except in compliance with the License.
+.\"
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+.\" or http://www.opensolaris.org/os/licensing.
+.\" See the License for the specific language governing permissions
+.\" and limitations under the License.
+.\"
+.\" When distributing Covered Code, include this CDDL HEADER in each
+.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+.\" If applicable, add the following below this CDDL HEADER, with the
+.\" fields enclosed by brackets "[]" replaced with your own identifying
+.\" information: Portions Copyright [yyyy] [name of copyright owner]
+.Dd July 9, 2018
+.Dt BUF 9S
+.Os
+.Sh NAME
+.Nm buf
+.Nd block I/O data transfer structure
+.Sh SYNOPSIS
+.In sys/ddi.h
+.In sys/sunddi.h
+.Sh INTERFACE LEVEL
Architecture independent level 1 (DDI/DKI)
-.SH DESCRIPTION
-.sp
-.LP
-The \fBbuf\fR structure is the basic data structure for block \fBI/O\fR
-transfers. Each block \fBI/O\fR transfer has an associated buffer header. The
-header contains all the buffer control and status information. For drivers, the
-buffer header pointer is the sole argument to a block driver \fBstrategy\fR(9E)
-routine. Do not depend on the size of the \fBbuf\fR structure when writing a
-driver.
-.sp
-.LP
-A buffer header can be linked in multiple lists simultaneously. Because of
+.Sh DESCRIPTION
+The
+.Vt buf
+structure is the basic data structure for block
+.Sy I/O
+transfers.
+Each block
+.Sy I/O
+transfer has an associated buffer header.
+The header contains all the buffer control and status information.
+For drivers, the buffer header pointer is the sole argument to a block driver
+.Xr strategy 9E
+routine.
+Do not depend on the size of the
+.Vt buf
+structure when writing a driver.
+.Pp
+A buffer header can be linked in multiple lists simultaneously.
+Because of
this, most of the members in the buffer header cannot be changed by the driver,
even when the buffer header is in one of the driver's work lists.
-.sp
-.LP
-Buffer headers are also used by the system for unbuffered or physical \fBI/O\fR
-for block drivers. In this case, the buffer describes a portion of user data
+.Pp
+Buffer headers are also used by the system for unbuffered or physical
+.Sy I/O
+for block drivers.
+In this case, the buffer describes a portion of user data
space that is locked into memory.
-.sp
-.LP
+.Pp
Block drivers often chain block requests so that overall throughput for the
-device is maximized. The \fBav_forw\fR and the \fBav_back\fR members of the
-\fBbuf\fR structure can serve as link pointers for chaining block requests.
-.SH STRUCTURE MEMBERS
-.sp
-.in +2
-.nf
+device is maximized.
+The
+.Fa av_forw
+and the
+.Fa av_back
+members of the
+.Vt buf
+structure can serve as link pointers for chaining block requests.
+.Sh STRUCTURE MEMBERS
+.Bd -literal -offset 2n
int b_flags; /* Buffer status */
struct buf *av_forw; /* Driver work list link */
struct buf *av_back; /* Driver work list link */
size_t b_bcount; /* # of bytes to transfer */
union {
- caddr_t b_addr; /* Buffer's virtual address */
+ caddr_t b_addr; /* Buffer's virtual address */
} b_un;
daddr_t b_blkno; /* Block number on device */
-diskaddr_t b_lblkno; /* Expanded block number on dev. */
+diskaddr_t b_lblkno; /* Expanded block number on dev. */
size_t b_resid; /* # of bytes not xferred */
size_t b_bufsize; /* size of alloc. buffer */
int (*b_iodone)(struct buf *); /* function called */
- /* by biodone */
+ /* by biodone */
int b_error; /* expanded error field */
void *b_private; /* "opaque" driver private area */
dev_t b_edev; /* expanded dev field */
-\fI\fR
-.fi
-.in -2
-
-.sp
-.LP
+.Ed
+.Pp
The members of the buffer header available to test or set by a driver are as
follows:
-.sp
-.LP
-\fBb_flags\fR stores the buffer status and indicates to the driver whether to
-read or write to the device. The driver must never clear the \fBb_flags\fR
-member. If this is done, unpredictable results can occur including loss of disk
+.Pp
+.Fa b_flags
+stores the buffer status and indicates to the driver whether to
+read or write to the device.
+The driver must never clear the
+.Fa b_flags
+member.
+If this is done, unpredictable results can occur including loss of disk
sanity and the possible failure of other kernel processes.
-.sp
-.LP
-All \fBb_flags\fR bit values not otherwise specified above are reserved by the
+.Pp
+All
+.Fa b_flags
+bit values not otherwise specified above are reserved by the
kernel and may not be used.
-.sp
-.LP
+.Pp
Valid flags are as follows:
-.sp
-.ne 2
-.na
-\fB\fBB_BUSY\fR \fR
-.ad
-.RS 13n
-Indicates the buffer is in use. The driver must not change this flag unless it
-allocated the buffer with \fBgetrbuf\fR(9F) and no \fBI/O\fR operation is in
-progress.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBB_DONE\fR \fR
-.ad
-.RS 13n
-Indicates the data transfer has completed. This flag is read-only.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBB_ERROR\fR \fR
-.ad
-.RS 13n
-Indicates an \fBI/O\fR transfer error. It is set in conjunction with the
-\fBb_error\fR field. \fBbioerror\fR(9F) should be used in preference to setting
-the \fBB_ERROR\fR bit.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBB_PAGEIO\fR \fR
-.ad
-.RS 13n
-Indicates the buffer is being used in a paged \fBI/O\fR request. See the
-description of the \fBb_un.b_addr\fR field for more information. This flag is
-read-only.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBB_PHYS\fR \fR
-.ad
-.RS 13n
-indicates the buffer header is being used for physical (direct) \fBI/O\fR to a
-user data area. See the description of the \fBb_un.b_addr\fR field for more
-information. This flag is read-only.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBB_READ\fR \fR
-.ad
-.RS 13n
+.Bl -tag -width "B_PAGEIO"
+.It Dv B_BUSY
+Indicates the buffer is in use.
+The driver must not change this flag unless it allocated the buffer with
+.Xr getrbuf 9F
+and no
+.Sy I/O
+operation is in progress.
+.It Dv B_DONE
+Indicates the data transfer has completed.
+This flag is read-only.
+.It Dv B_ERROR
+Indicates an
+.Sy I/O
+transfer error.
+It is set in conjunction with the
+.Fa b_error
+field.
+.Xr bioerror 9F
+should be used in preference to setting the
+.Dv B_ERROR
+bit.
+.It Dv B_PAGEIO
+Indicates the buffer is being used in a paged
+.Sy I/O
+request.
+See the description of the
+.Fa b_un.b_addr
+field for more information.
+This flag is read-only.
+.It Dv B_PHYS
+indicates the buffer header is being used for physical (direct)
+.Sy I/O
+to a user data area.
+See the description of the
+.Fa b_un.b_addr
+field for more information.
+This flag is read-only.
+.It Dv B_READ
Indicates that data is to be read from the peripheral device into main memory.
-.RE
-
-.sp
-.ne 2
-.na
-\fB\fBB_WRITE\fR \fR
-.ad
-.RS 13n
+.It Dv B_WRITE
Indicates that the data is to be transferred from main memory to the peripheral
-device. \fBB_WRITE\fR is a pseudo flag and cannot be directly tested; it is
-only detected as the NOT form of \fBB_READ\fR.
-.RE
-
-.sp
-.LP
-\fBav_forw\fR and \fBav_back\fR can be used by the driver to link the buffer
-into driver work lists.
-.sp
-.LP
-\fBb_bcount\fR specifies the number of bytes to be transferred in both a paged
-and a non-paged \fBI/O\fR request.
-.sp
-.LP
-\fBb_un.b_addr\fR is the virtual address of the \fBI/O\fR request, unless
-\fBB_PAGEIO\fR is set. The address is a kernel virtual address, unless
-\fBB_PHYS\fR is set, in which case it is a user virtual address. If
-\fBB_PAGEIO\fR is set, \fBb_un.b_addr\fR contains kernel private data. Note
-that either one of \fBB_PHYS\fR and \fBB_PAGEIO\fR, or neither, can be set, but
+device.
+.Dv B_WRITE
+is a pseudo flag and cannot be directly tested; it is
+only detected as the NOT form of
+.Dv B_READ .
+.El
+.Pp
+.Fa av_forw
+and
+.Fa av_back
+can be used by the driver to link the buffer into driver work lists.
+.Pp
+.Fa b_bcount
+specifies the number of bytes to be transferred in both a paged and a non-paged
+.Sy I/O
+request.
+.Pp
+.Fa b_un.b_addr
+is the virtual address of the
+.Sy I/O
+request, unless
+.Dv B_PAGEIO
+is set.
+The address is a kernel virtual address, unless
+.Dv B_PHYS
+is set, in which case it is a user virtual address.
+If
+.Dv B_PAGEIO
+is set,
+.Fa b_un.b_addr
+contains kernel private data.
+Note that either one of
+.Dv B_PHYS
+and
+.Dv B_PAGEIO ,
+or neither, can be set, but
not both.
-.sp
-.LP
-\fBb_blkno\fR identifies which logical block on the device (the device is
-defined by the device number) is to be accessed. The driver might have to
+.Pp
+.Fa b_blkno
+identifies which logical block on the device (the device is
+defined by the device number) is to be accessed.
+The driver might have to
convert this logical block number to a physical location such as a cylinder,
-track, and sector of a disk. This is a 32-bit value. The driver should use
-\fBb_blkno\fR or \fBb_lblkno\fR, but not both.
-.sp
-.LP
-\fBb_lblkno\fR identifies which logical block on the device (the device is
-defined by the device number) is to be accessed. The driver might have to
+track, and sector of a disk.
+This is a 32-bit value.
+The driver should use
+.Fa b_blkno
+or
+.Fa b_lblkno ,
+but not both.
+.Pp
+.Fa b_lblkno
+identifies which logical block on the device (the device is
+defined by the device number) is to be accessed.
+The driver might have to
convert this logical block number to a physical location such as a cylinder,
-track, and sector of a disk. This is a 64-bit value. The driver should use
-\fBb_lblkno\fR or \fBb_blkno\fR, but not both.
-.sp
-.LP
-\fBb_resid\fR should be set to the number of bytes not transferred because of
-an error.
-.sp
-.LP
-\fBb_bufsize\fR contains the size of the allocated buffer.
-.sp
-.LP
-\fBb_iodone\fR identifies a specific \fBbiodone\fR routine to be called by the
-driver when the \fBI/O\fR is complete.
-.sp
-.LP
-\fBb_error\fR can hold an error code that should be passed as a return code
-from the driver. \fBb_error\fR is set in conjunction with the \fBB_ERROR\fR bit
-set in the \fBb_flags\fR member. \fBbioerror\fR(9F) should be used in
-preference to setting the \fBb_error\fR field.
-.sp
-.LP
-\fBb_private\fR is for the private use of the device driver.
-.sp
-.LP
-\fBb_edev\fR contains the major and minor device numbers of the device
+track, and sector of a disk.
+This is a 64-bit value.
+The driver should use
+.Fa b_lblkno
+or
+.Fa b_blkno ,
+but not both.
+.Pp
+.Fa b_resid
+should be set to the number of bytes not transferred because of an error.
+.Pp
+.Fa b_bufsize
+contains the size of the allocated buffer.
+.Pp
+.Fa b_iodone
+identifies a specific
+.Xr biodone 9F
+routine to be called by the driver when the
+.Sy I/O
+is complete.
+.Pp
+.Fa b_error
+can hold an error code that should be passed as a return code
+from the driver.
+.Fa b_error
+is set in conjunction with the
+.Dv B_ERROR
+bit
+set in the
+.Fa b_flags
+member.
+.Xr bioerror 9F
+should be used in
+preference to setting the
+.Fa b_error
+field.
+.Pp
+.Fa b_private
+is for the private use of the device driver.
+.Pp
+.Fa b_edev
+contains the major and minor device numbers of the device
accessed.
-.SH SEE ALSO
-.sp
-.LP
-\fBstrategy\fR(9E), \fBaphysio\fR(9F), \fBbioclone\fR(9F), \fBbiodone\fR(9F),
-\fBbioerror\fR(9F), \fBbioinit\fR(9F), \fBclrbuf\fR(9F), \fBgetrbuf\fR(9F),
-\fBphysio\fR(9F), \fBiovec\fR(9S), \fBuio\fR(9S)
-.sp
-.LP
-\fIWriting Device Drivers\fR
-.SH WARNINGS
-.sp
-.LP
-Buffers are a shared resource within the kernel. Drivers should read or write
-only the members listed in this section. Drivers that attempt to use
-undocumented members of the \fBbuf\fR structure risk corrupting data in the
-kernel or on the device.
+.Sh SEE ALSO
+.Xr strategy 9E ,
+.Xr aphysio 9F ,
+.Xr bioclone 9F ,
+.Xr biodone 9F ,
+.Xr bioerror 9F ,
+.Xr bioinit 9F ,
+.Xr clrbuf 9F ,
+.Xr getrbuf 9F ,
+.Xr physio 9F ,
+.Xr iovec 9S ,
+.Xr uio 9S
+.Rs
+.%T Writing Device Drivers
+.Re
+.Sh WARNINGS
+Buffers are a shared resource within the kernel.
+Drivers should read or write only the members listed in this section.
+Drivers that attempt to use undocumented members of the
+.Fa buf
+structure risk corrupting data in the kernel or on the device.
diff --git a/usr/src/man/man9s/cb_ops.9s b/usr/src/man/man9s/cb_ops.9s
index 5366974b64..07e9f3bb53 100644
--- a/usr/src/man/man9s/cb_ops.9s
+++ b/usr/src/man/man9s/cb_ops.9s
@@ -1,90 +1,127 @@
-'\" te
.\" Copyright (c) 2009, Sun Microsystems, Inc., All Rights Reserved
-.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
-.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
-.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH CB_OPS 9S "Apr 24, 2008"
-.SH NAME
-cb_ops \- character/block entry points structure
-.SH SYNOPSIS
-.LP
-.nf
-#include <sys/conf.h>
-#include <sys/ddi.h>
-#include <sys/sunddi.h>
-.fi
-
-.SH INTERFACE LEVEL
-.sp
-.LP
+.\" Copyright 2018, Joyent, Inc.
+.\" The contents of this file are subject to the terms of the
+.\" Common Development and Distribution License (the "License").
+.\" You may not use this file except in compliance with the License.
+.\"
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+.\" or http://www.opensolaris.org/os/licensing.
+.\" See the License for the specific language governing permissions
+.\" and limitations under the License.
+.\"
+.\" When distributing Covered Code, include this CDDL HEADER in each
+.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+.\" If applicable, add the following below this CDDL HEADER, with the
+.\" fields enclosed by brackets "[]" replaced with your own identifying
+.\" information: Portions Copyright [yyyy] [name of copyright owner]
+.Dd July 9, 2018
+.Dt CB_OPS 9S
+.Os
+.Sh NAME
+.Nm cb_ops
+.Nd character/block entry points structure
+.Sh SYNOPSIS
+.In sys/conf.h
+.In sys/ddi.h
+.In sys/sunddi.h
+.Sh INTERFACE LEVEL
Solaris DDI specific (Solaris DDI)
-.SH DESCRIPTION
-.sp
-.LP
-The \fBcb_ops\fR structure contains all entry points for drivers that support
-both character and block entry points. All leaf device drivers that support
-direct user process access to a device should declare a \fBcb_ops\fR structure.
-.sp
-.LP
+.Sh DESCRIPTION
+The
+.Nm
+structure contains all entry points for drivers that support
+both character and block entry points.
+All leaf device drivers that support
+direct user process access to a device should declare a
+.Nm
+structure.
+.Pp
All drivers that safely allow multiple threads of execution in the driver at
-the same time must set the \fBD_MP\fR flag in the \fBcb_flag\fR field. See
-\fBopen\fR(9E).
-.sp
-.LP
+the same time must set the
+.Dv D_MP
+flag in the
+.Fa cb_flag
+field.
+See
+.Xr open 9E .
+.Pp
If the driver properly handles 64-bit offsets, it should also set the
-\fBD_64BIT\fR flag in the \fBcb_flag\fR field. This specifies that the driver
-will use the \fBuio_loffset\fR field of the \fBuio\fR(9S) structure.
-.sp
-.LP
-If the driver returns \fBEINTR\fR from \fBopen\fR(9E), it should also set the
-\fBD_OPEN_RETURNS_EINTR\fR flag in the \fBcb_flag\fR field. This lets the
-framework know that it is safe for the driver to return \fBEINTR\fR when
-waiting, to provide exclusion for a last-reference \fBclose\fR(9E) call to
-complete before calling \fBopen\fR(9E).
-.sp
-.LP
-The \fBmt-streams\fR(9F) function describes other flags that can be set in the
-\fBcb_flag\fR field.
-.sp
-.LP
-The \fBcb_rev\fR is the \fBcb_ops\fR structure revision number. This field must
-be set to \fBCB_REV\fR.
-.sp
-.LP
-Non-\fBSTREAMS\fR drivers should set \fBcb_str\fR to \fINULL\fR.
-.sp
-.LP
-The following \fBDDI\fR/\fBDKI\fR or \fBDKI\fR-only or \fBDDI\fR-only functions
-are provided in the character/block driver operations structure.
-.sp
-
-.sp
-.TS
-c c c c
-l l l l .
-block/char Function Description
-_
-b/c XXopen \fBDDI\fR/\fBDKI\fR
-b/c XXclose \fBDDI\fR/\fBDKI\fR
-b XXstrategy DDI/DKI
-b XXprint DDI/DKI
-b XXdump DDI(Sun)
-c XXread DDI/DKI
-c XXwrite DDI/DKI
-c XXioctl DDI/DKI
-c XXdevmap DDI(Sun)
-c XXmmap DKI
-c XXsegmap DKI
-c XXchpoll DDI/DKI
-c XXprop_op DDI(Sun)
-c XXaread DDI(Sun)
-c XXawrite DDI(Sun)
-.TE
-
-.SH STRUCTURE MEMBERS
-.sp
-.in +2
-.nf
+.Dv D_64BIT
+flag in the
+.Fa cb_flag
+field.
+This specifies that the driver
+will use the
+.Fa uio_loffset
+field of the
+.Xr uio 9S
+structure.
+.Pp
+If the driver returns
+.Er EINTR
+from
+.Xr open 9E ,
+it should also set the
+.Dv D_OPEN_RETURNS_EINTR
+flag in the
+.Fa cb_flag
+field.
+This lets the
+framework know that it is safe for the driver to return
+.Er EINTR
+when waiting, to provide exclusion for a last-reference
+.Xr close 9E
+call to complete before calling
+.Xr open 9E .
+.Pp
+The
+.Xr mt-streams 9F
+function describes other flags that can be set in the
+.Fa cb_flag
+field.
+.Pp
+The
+.Fa cb_rev
+is the
+.Vt cb_ops
+structure revision number.
+This field must
+be set to
+.Dv CB_REV .
+.Pp
+.Pf Non- Ns Sy STREAMS
+drivers should set
+.Fa cb_str
+to
+.Sy NULL .
+.Pp
+The following
+.Sy DDI/DKI
+or
+.Sy DKI Ns -only
+or
+.Sy DDI Ns -only
+functions are provided in the character/block driver operations structure.
+.Bl -column "block/char" "Function" "Description"
+.It block/char Function Description
+.It b/c XXopen DDI/DKI
+.It b/c XXclose DDI/DKI
+.It b XXstrategy DDI/DKI
+.It b XXprint DDI/DKI
+.It b XXdump DDI(Sun)
+.It c XXread DDI/DKI
+.It c XXwrite DDI/DKI
+.It c XXioctl DDI/DKI
+.It c XXdevmap DDI(Sun)
+.It c XXmmap DKI
+.It c XXsegmap DKI
+.It c XXchpoll DDI/DKI
+.It c XXprop_op DDI(Sun)
+.It c XXaread DDI(Sun)
+.It c XXawrite DDI(Sun)
+.El
+.Sh STRUCTURE MEMBERS
+.Bd -literal -offset 2n
int (*cb_open)(dev_t *devp, int flag, int otyp, cred_t *credp);
int (*cb_close)(dev_t dev, int flag, int otyp, cred_t *credp);
int (*cb_strategy)(struct buf *bp);
@@ -93,37 +130,47 @@ int (*cb_dump)(dev_t dev, caddr_t addr, daddr_t blkno, int nblk);
int (*cb_read)(dev_t dev, struct uio *uiop, cred_t *credp);
int (*cb_write)(dev_t dev, struct uio *uiop, cred_t *credp);
int (*cb_ioctl)(dev_t dev, int cmd, intptr_t arg, int mode,
- cred_t *credp, int *rvalp);
+ cred_t *credp, int *rvalp);
int (*cb_devmap)(dev_t dev, devmap_cookie_t dhp, offset_t off,
- size_t len, size_t *maplen, uint_t model);
+ size_t len, size_t *maplen, uint_t model);
int (*cb_mmap)(dev_t dev, off_t off, int prot);
int (*cb_segmap)(dev_t dev, off_t off, struct as *asp,
- caddr_t *addrp, off_t len, unsigned int prot,
- unsigned int maxprot, unsigned int flags, cred_t *credp);
+ caddr_t *addrp, off_t len, unsigned int prot,
+ unsigned int maxprot, unsigned int flags, cred_t *credp);
int (*cb_chpoll)(dev_t dev, short events, int anyyet,
- short *reventsp, struct pollhead **phpp);
+ short *reventsp, struct pollhead **phpp);
int (*cb_prop_op)(dev_t dev, dev_info_t *dip,
- ddi_prop_op_t prop_op, int mod_flags,
- char *name, caddr_t valuep, int *length);
+ ddi_prop_op_t prop_op, int mod_flags,
+ char *name, caddr_t valuep, int *length);
struct streamtab *cb_str; /* streams information */
int cb_flag;
int cb_rev;
int (*cb_aread)(dev_t dev, struct aio_req *aio, cred_t *credp);
int (*cb_awrite)(dev_t dev, struct aio_req *aio, cred_t *credp);
-.fi
-.in -2
-
-.SH SEE ALSO
-.sp
-.LP
-\fBaread\fR(9E), \fBawrite\fR(9E), \fBchpoll\fR(9E), \fBclose\fR(9E),
-\fBdump\fR(9E), \fBioctl\fR(9E), \fBmmap\fR(9E), \fBopen\fR(9E),
-\fBprint\fR(9E), \fBprop_op\fR(9E), \fBread\fR(9E), \fBsegmap\fR(9E),
-\fBstrategy\fR(9E), \fBwrite\fR(9E), \fBnochpoll\fR(9F), \fBnodev\fR(9F),
-\fBnulldev\fR(9F), \fBdev_ops\fR(9S), \fBqinit\fR(9S)
-.sp
-.LP
-\fIWriting Device Drivers\fR
-.sp
-.LP
-\fISTREAMS Programming Guide\fR
+.Ed
+.Sh SEE ALSO
+.Xr aread 9E ,
+.Xr awrite 9E ,
+.Xr chpoll 9E ,
+.Xr close 9E ,
+.Xr dump 9E ,
+.Xr ioctl 9E ,
+.Xr mmap 9E ,
+.Xr open 9E ,
+.Xr print 9E ,
+.Xr prop_op 9E ,
+.Xr read 9E ,
+.Xr segmap 9E ,
+.Xr strategy 9E ,
+.Xr write 9E ,
+.Xr nochpoll 9F ,
+.Xr nodev 9F ,
+.Xr nulldev 9F ,
+.Xr dev_ops 9S ,
+.Xr qinit 9S
+.Rs
+.%T Writing Device Drivers
+.Re
+.Rs
+.%T STREAMS Programming Guide
+.Re
diff --git a/usr/src/man/man9s/copyreq.9s b/usr/src/man/man9s/copyreq.9s
index d75be110d1..1d48af0794 100644
--- a/usr/src/man/man9s/copyreq.9s
+++ b/usr/src/man/man9s/copyreq.9s
@@ -1,43 +1,52 @@
-'\" te
.\" Copyright (c) 2000, Sun Microsystems, Inc., All Rights Reserved.
.\" Copyright 1989 AT&T
-.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
-.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
-.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH COPYREQ 9S "Oct 6, 2000"
-.SH NAME
-copyreq \- STREAMS data structure for the M_COPYIN and the M_COPYOUT message
-types
-.SH SYNOPSIS
-.LP
-.nf
-#include <sys/stream.h>
-.fi
-
-.SH INTERFACE LEVEL
-.sp
-.LP
+.\" Copyright 2018, Joyent, Inc.
+.\" The contents of this file are subject to the terms of the
+.\" Common Development and Distribution License (the "License").
+.\" You may not use this file except in compliance with the License.
+.\"
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+.\" or http://www.opensolaris.org/os/licensing.
+.\" See the License for the specific language governing permissions
+.\" and limitations under the License.
+.\"
+.\" When distributing Covered Code, include this CDDL HEADER in each
+.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+.\" If applicable, add the following below this CDDL HEADER, with the
+.\" fields enclosed by brackets "[]" replaced with your own identifying
+.\" information: Portions Copyright [yyyy] [name of copyright owner]
+.Dd July 9, 2018
+.Dt COPYREQ 9S
+.Os
+.Sh NAME
+.Nm copyreq
+.Nd STREAMS data structure for the
+.Dv M_COPYIN
+and the
+.Dv M_COPYOUT
+message types
+.Sh SYNOPSIS
+.In sys/stream.h
+.Sh INTERFACE LEVEL
Architecture independent level 1 (DDI/DKI)
-.SH DESCRIPTION
-.sp
-.LP
-The data structure for the \fBM_COPYIN\fR and the \fBM_COPYOUT\fR message
+.Sh DESCRIPTION
+The data structure for the
+.Dv M_COPYIN
+and the
+.Dv M_COPYOUT
+message
types.
-.SH STRUCTURE MEMBERS
-.sp
-.in +2
-.nf
+.Sh STRUCTURE MEMBERS
+.Bd -literal -offset 2n
int cq_cmd; /* ioctl command (from ioc_cmd) */
cred_t *cq_cr; /* full credentials */
uint_t cq_id; /* ioctl id (from ioc_id) */
-uint_t cq_flag; /* must be zero */
+uint_t cq_flag; /* must be zero */
mblk_t *cq_private; /* private state information */
caddr_t cq_addr; /* address to copy data to/from */
-size_t cq_size; /* number of bytes to copy */
-.fi
-.in -2
-
-.SH SEE ALSO
-.sp
-.LP
-\fISTREAMS Programming Guide\fR
+size_t cq_size; /* number of bytes to copy */
+.Ed
+.Sh SEE ALSO
+.Rs
+.%T STREAMS Programming Guide
+.Re
diff --git a/usr/src/man/man9s/free_rtn.9s b/usr/src/man/man9s/free_rtn.9s
index 978f620f95..4c53c63b71 100644
--- a/usr/src/man/man9s/free_rtn.9s
+++ b/usr/src/man/man9s/free_rtn.9s
@@ -1,45 +1,56 @@
-'\" te
+.\" Copyright 2018, Joyent, Inc.
.\" Copyright (c) 2000, Sun Microsystems, Inc. All Rights Reserved.
.\" Copyright 1989 AT&T
-.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
-.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
-.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH FREE_RTN 9S "Nov 13, 1996"
-.SH NAME
-free_rtn \- structure that specifies a driver's message-freeing routine
-.SH SYNOPSIS
-.LP
-.nf
-#include <sys/stream.h>
-.fi
-
-.SH INTERFACE LEVEL
-.sp
-.LP
+.\" The contents of this file are subject to the terms of the
+.\" Common Development and Distribution License (the "License").
+.\" You may not use this file except in compliance with the License.
+.\"
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+.\" or http://www.opensolaris.org/os/licensing.
+.\" See the License for the specific language governing permissions
+.\" and limitations under the License.
+.\"
+.\" When distributing Covered Code, include this CDDL HEADER in each
+.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+.\" If applicable, add the following below this CDDL HEADER, with the
+.\" fields enclosed by brackets "[]" replaced with your own identifying
+.\" information: Portions Copyright [yyyy] [name of copyright owner]
+.Dd July 9, 2018
+.Dt FREE_RTN 9S
+.Os
+.Sh NAME
+.Nm free_rtn
+.Nd structure that specifies a driver's message-freeing routine
+.Sh SYNOPSIS
+.In sys/stream.h
+.Sh INTERFACE LEVEL
Architecture independent level 1 (DDI/DKI).
-.SH DESCRIPTION
-.sp
-.LP
-The \fBfree_rtn\fR structure is referenced by the \fBdatab\fR structure. When
-\fBfreeb\fR(9F) is called to free the message, the driver's message-freeing
-routine (referenced through the \fBfree_rtn\fR structure) is called, with
-arguments, to free the data buffer.
-.SH STRUCTURE MEMBERS
-.sp
-.in +2
-.nf
+.Sh DESCRIPTION
+The
+.Vt free_rtn
+structure is referenced by the
+.Vt datab
+structure.
+When
+.Xr freeb 9F
+is called to free the message, the driver's message-freeing
+routine (referenced through the
+.Vt free_rtn
+structure) is called, with arguments, to free the data buffer.
+.Sh STRUCTURE MEMBERS
+.Bd -literal -offset 2n
void (*free_func)() /* user's freeing routine */
char *free_arg /* arguments to free_func() */
-.fi
-.in -2
-
-.sp
-.LP
-The \fBfree_rtn\fR structure is defined as type \fBfrtn_t\fR.
-.SH SEE ALSO
-.sp
-.LP
-\fBesballoc\fR(9F), \fBfreeb\fR(9F), \fBdatab\fR(9S)
-.sp
-.LP
-\fISTREAMS Programming Guide\fR
+.Ed
+.Pp
+The
+.Vt free_rtn
+structure is defined as type
+.Vt frtn_t .
+.Sh SEE ALSO
+.Xr esballoc 9F ,
+.Xr freeb 9F ,
+.Xr datab 9S
+.Rs
+.%T STREAMS Programming Guide
+.Re
diff --git a/usr/src/man/man9s/iovec.9s b/usr/src/man/man9s/iovec.9s
index fffed62e67..570f23f250 100644
--- a/usr/src/man/man9s/iovec.9s
+++ b/usr/src/man/man9s/iovec.9s
@@ -1,42 +1,46 @@
-'\" te
+.\" Copyright 2018, Joyent, Inc.
.\" Copyright (c) 2000, Sun Microsystems, Inc. All Rights Reserved.
.\" Copyright 1989 AT&T
-.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
-.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
-.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH IOVEC 9S "Apr 11, 1991"
-.SH NAME
-iovec \- data storage structure for I/O using uio
-.SH SYNOPSIS
-.LP
-.nf
-#include <sys/uio.h>
-.fi
-
-.SH INTERFACE LEVEL
-.sp
-.LP
+.\" The contents of this file are subject to the terms of the
+.\" Common Development and Distribution License (the "License").
+.\" You may not use this file except in compliance with the License.
+.\"
+.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+.\" or http://www.opensolaris.org/os/licensing.
+.\" See the License for the specific language governing permissions
+.\" and limitations under the License.
+.\"
+.\" When distributing Covered Code, include this CDDL HEADER in each
+.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+.\" If applicable, add the following below this CDDL HEADER, with the
+.\" fields enclosed by brackets "[]" replaced with your own identifying
+.\" information: Portions Copyright [yyyy] [name of copyright owner]
+.Dd July 9, 2018
+.Dt IOVEC 9S
+.Os
+.Sh NAME
+.Nm iovec
+.Nd data storage structure for I/O using uio
+.Sh SYNOPSIS
+.In sys/uio.h
+.Sh INTERFACE LEVEL
Architecture independent level 1 (DDI/DKI).
-.SH DESCRIPTION
-.sp
-.LP
-An \fBiovec\fR structure describes a data storage area for transfer in a
-\fBuio\fR(9S) structure. Conceptually, it can be thought of as a base address
+.Sh DESCRIPTION
+An
+.Vt iovec
+structure describes a data storage area for transfer in a
+.Xr uio 9S
+structure.
+Conceptually, it can be thought of as a base address
and length specification.
-.SH STRUCTURE MEMBERS
-.sp
-.in +2
-.nf
+.Sh STRUCTURE MEMBERS
+.Bd -literal -offset 2n
caddr_t iov_base; /* base address of the data storage area */
/* represented by the iovec structure */
int iov_len; /* size of the data storage area in bytes */
-.fi
-.in -2
-
-.SH SEE ALSO
-.sp
-.LP
-\fBuio\fR(9S)
-.sp
-.LP
-\fIWriting Device Drivers\fR
+.Ed
+.Sh SEE ALSO
+.Xr uio 9S
+.Rs
+.%T Writing Device Drivers
+.Re