--- old/usr/src/man/man9s/Intro.9s	Sun Dec  8 16:13:20 2019
+++ new/usr/src/man/man9s/Intro.9s	Sun Dec  8 16:13:20 2019
@@ -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.
--- old/usr/src/man/man9s/aio_req.9s	Sun Dec  8 16:13:21 2019
+++ new/usr/src/man/man9s/aio_req.9s	Sun Dec  8 16:13:21 2019
@@ -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
--- old/usr/src/man/man9s/buf.9s	Sun Dec  8 16:13:21 2019
+++ new/usr/src/man/man9s/buf.9s	Sun Dec  8 16:13:21 2019
@@ -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.
--- old/usr/src/man/man9s/cb_ops.9s	Sun Dec  8 16:13:22 2019
+++ new/usr/src/man/man9s/cb_ops.9s	Sun Dec  8 16:13:22 2019
@@ -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_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
--- old/usr/src/man/man9s/copyreq.9s	Sun Dec  8 16:13:22 2019
+++ new/usr/src/man/man9s/copyreq.9s	Sun Dec  8 16:13:22 2019
@@ -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
--- old/usr/src/man/man9s/free_rtn.9s	Sun Dec  8 16:13:23 2019
+++ new/usr/src/man/man9s/free_rtn.9s	Sun Dec  8 16:13:23 2019
@@ -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
--- old/usr/src/man/man9s/iovec.9s	Sun Dec  8 16:13:23 2019
+++ new/usr/src/man/man9s/iovec.9s	Sun Dec  8 16:13:23 2019
@@ -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
