summaryrefslogtreecommitdiff
path: root/usr/src/man/man7i/prnio.7i
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/man/man7i/prnio.7i')
-rw-r--r--usr/src/man/man7i/prnio.7i370
1 files changed, 0 insertions, 370 deletions
diff --git a/usr/src/man/man7i/prnio.7i b/usr/src/man/man7i/prnio.7i
deleted file mode 100644
index 0b794f014a..0000000000
--- a/usr/src/man/man7i/prnio.7i
+++ /dev/null
@@ -1,370 +0,0 @@
-.\" Copyright (c) 20002 Sun Microsystems, Inc.
-.\" All Rights Reserved.
-.\" 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 August 31, 2018
-.Dt PRNIO 7I
-.Os
-.Sh NAME
-.Nm prnio
-.Nd generic printer interface
-.Sh SYNOPSIS
-.In sys/prnio.h
-.Sh DESCRIPTION
-The
-.Nm
-generic printer interface defines ioctl commands and data
-structures for printer device drivers.
-.Pp
-.Nm
-defines and provides facilities for five basic phases of the printing process:
-.Bl -bullet -offset indent
-.It
-Identification \(em Retrieve device information/attributes
-.It
-Setup \(em Set device attributes
-.It
-Transfer \(em Transfer data to or from the device
-.It
-Cleanup \(em Transfer phase conclusion
-.It
-Abort \(em Transfer phase interruption
-.El
-.Pp
-During the Identification phase, the application retrieves a set of device
-capabilities and additional information using the
-.Dv PRNIOC_GET_IFCAP ,
-.Dv PRNIOC_GET_STATUS ,
-.Dv PRNIOC_GET_TIMEOUTS ,
-.Dv PRNIOC_GET_IFINFO ,
-and
-.Dv PRNIOC_GET_1284_DEVID
-commands.
-.Pp
-During the Setup phase the application sets some interface attributes and
-probably resets the printer as described in the
-.Dv PRNIOC_SET_IFCAP ,
-.Dv PRNIOC_SET_TIMEOUTS ,
-and
-.Dv PRNIOC_RESET
-sections.
-.Pp
-During the Transfer phase, data is transferred in a forward (host to
-peripheral) or reverse direction (peripheral to host).
-Transfer is accomplished
-using
-.Xr write 2
-and
-.Xr read 2
-system calls.
-For
-.Nm
-compliant
-printer drivers, forward transfer support is mandatory, while reverse transfer
-support is optional.
-Applications can also use
-.Dv PRNIOC_GET_STATUS
-and
-.Dv PRNIOC_GET_1284_STATUS
-commands during the transfer to monitor the device state.
-.Pp
-The Cleanup phase is accomplished by closing the device using
-.Xr close 2 .
-Device drivers supporting
-.Nm
-may set non-zero error code as appropriate.
-Applications should explicitly
-.Xr close 2
-a device before
-exiting and check
-.Va errno
-value.
-.Pp
-The Abort phase is accomplished by interrupting the
-.Xr write 2
-and
-.Xr read 2
-system calls.
-The application can perform some additional cleanup
-during the Abort phase as described in
-.Dv PRNIOC_GET_IFCAP
-section.
-.Sh IOCTLS
-.Bl -tag -width PRNIOC_GET_IFINFO
-.It Dv PRNIOC_GET_IFCAP
-Application can retrieve printer interface capabilities using this command.
-The
-.Xr ioctl 2
-argument is a pointer to
-.Vt uint_t ,
-a bit field representing
-a set of properties and services provided by a printer driver.
-Set bit means supported capability.
-The following values are defined:
-.Bl -tag -width PRN_1284_STATUS
-.It Dv PRN_BIDI
-When this bit is set, the interface operates in a
-bidirectional mode, instead of forward-only mode.
-.It Dv PRN_HOTPLUG
-If this bit is set, the interface allows device hot-plugging.
-.It Dv PRN_1284_DEVID
-If this bit is set, the device is capable of returning
-.Em 1284
-device ID (see
-.Dv PRNIOC_GET_1284_DEVID ) .
-.It Dv PRN_1284_STATUS
-If this bit is set, the device driver can return device
-status lines (see
-.Dv PRNIOC_GET_1284_STATUS ) .
-Some devices support this
-ioctl in unidirectional mode only.
-.It Dv PRN_TIMEOUTS
-If this bit is set the peripheral may stall during the
-transfer phase and the driver can timeout and return from the
-.Xr write 2
-and
-.Xr read 2
-returning the number of bytes that have been transferred.
-If
-.Dv PRN_TIMEOUTS
-is set, the driver supports this functionality and the
-timeout values can be retrieved and modified via the
-.Dv PRNIOC_GET_TIMEOUTS
-and
-.Dv PRNIOC_SET_TIMEOUTS
-ioctls.
-Otherwise, applications can implement
-their own timeouts and abort phase.
-.It Dv PRN_STREAMS
-This bit impacts the application abort phase behaviour.
-If the device claimed
-.Dv PRN_STREAMS
-capability, the application must issue an
-.Dv I_FLUSH
-.Xr ioctl 2
-before
-.Xr close 2
-to dismiss the untransferred
-data.
-Only STREAMS drivers can support this capability.
-.El
-.It Dv PRNIOC_SET_IFCAP
-This ioctl can be used to change interface capabilities.
-The argument is a pointer to
-.Vt uint_t
-bit field that is described in detail in the
-.Dv PRNIOC_GET_IFCAP
-section.
-Capabilities should be set one at a time;
-otherwise the command will return
-.Er EINVAL .
-The following capabilities can be changed by this ioctl:
-.Bl -tag -width PRN_BIDI
-.It Dv PRN_BIDI
-When this capability is set, the interface operates in a
-bidirectional mode, instead of forward-only mode.
-Devices that support only one
-mode will not return error; applications should use
-.Dv PRNIOC_GET_IFCAP
-to check if the mode was successfully changed.
-Because some capabilities may be
-altered as a side effect of changing other capabilities, this command should be
-followed by
-.Dv PRNIOC_GET_IFCAP .
-.El
-.It Dv PRNIOC_GET_IFINFO
-This command can be used to retrieve printer interface info string, which is an
-arbitrary format string usually describing the bus type.
-The argument is a
-pointer to
-.Vt struct prn_interface_info
-as described below.
-.Bd -literal -offset 2n
-struct prn_interface_info {
- uint_t if_len; /* length of buffer */
- uint_t if_rlen; /* actual info length */
- char *if_data; /* buffer address */
-};
-.Ed
-.Pp
-The application allocates a buffer and sets
-.Fa if_data
-and
-.Fa if_len
-values to its address and length, respectively.
-The driver returns the string
-to this buffer and sets
-.Fa if_len
-to its length.
-If
-.Fa if_len
-is less
-than
-.Fa if_rlen ,
-the driver must return the first
-.Fa if_len
-bytes of the string.
-The application may then repeat the command with a bigger buffer.
-.Pp
-Although
-.Nm
-does not limit the contents of the interface info string,
-some values are recommended and defined in
-.In sys/prnio.h
-by the following macros:
-.Pp
-.Bl -tag -width PRN_PARALLEL -compact
-.It Dv PRN_PARALLEL
-Centronics or
-.Em IEEE 1284
-compatible devices
-.It Dv PRN_SERIAL
-EIA-232/EIA-485 serial ports
-.It Dv PRN_USB
-Universal Serial Bus printers
-.It Dv PRN_1394
-.Em IEEE 1394
-peripherals
-.El
-.Pp
-Printer interface info string is for information only: no implications should
-be made from its value.
-.It Dv PRNIOC_RESET
-Some applications may want to reset the printer state during Setup and/or
-Cleanup phase using
-.Dv PRNIOC_RESET
-command.
-Reset semantics are
-device-specific, and in general, applications using this command should be
-aware of the printer type.
-.Pp
-Each
-.Nm
-compliant driver is required to accept this request, although
-performed actions are completely driver-dependent.
-More information on the
-.Dv PRNIOC_RESET
-implementation for the particular driver is available in the
-corresponding man page and printer manual.
-.It Dv PRNIOC_GET_1284_DEVID
-This command can be used to retrieve printer device ID as defined by
-.Em IEEE 1284-1994 .
-The
-.Xr ioctl 2
-argument is a pointer to
-.Vt struct prn_1284_device_id
-as described below.
-.Bd -literal -offset 2n
-struct prn_1284_device_id {
- uint_t id_len; /* length of buffer */
- uint_t id_rlen; /* actual ID length */
- char *id_data; /* buffer address */
-};
-.Ed
-.Pp
-For convenience, the two-byte length field is not considered part of device ID
-string and is not returned in the user buffer.
-Instead,
-.Fa id_rlen
-value shall be set to (length - 2) by the driver, where length is the ID
-length field value.
-If buffer length is less than
-.Fa id_rlen ,
-the driver returns the first
-.Fa id_len
-bytes of the ID.
-.Pp
-The printer driver must return the most up-to-date value of the device ID.
-.It Dv PRNIOC_GET_STATUS
-This command can be used by applications to retrieve current device status.
-The argument is a pointer to
-.Vt uint_t ,
-where the status word is returned.
-Status is a combination of the following bits:
-.Bl -tag -width PRN_ONLINE
-.It Dv PRN_ONLINE
-For devices that support
-.Dv PRN_HOTPLUG
-capability, this bit is set when the device is online, otherwise the device is
-offline.
-Devices without
-.Dv PRN_HOTPLUG
-support should always have this bit set.
-.It Dv PRN_READY
-This bit indicates if the device is ready to receive/send data.
-Applications may use this bit for an outbound flow control.
-.El
-.It Dv PRNIOC_GET_1284_STATUS
-Devices that support
-.Dv PRN_1284_STATUS
-capability accept this ioctl to
-retrieve the device status lines defined in
-.Em IEEE 1284
-for use in Compatibility mode.
-The following bits may be set by the driver:
-.Pp
-.Bl -tag -width PRN_1284_NOFAULT -compact
-.It Dv PRN_1284_NOFAULT
-Device is not in error state
-.It Dv PRN_1284_SELECT
-Device is selected
-.It Dv PRN_1284_PE
-Paper error
-.It Dv PRN_1284_BUSY
-Device is busy
-.El
-.It Dv PRNIOC_GET_TIMEOUTS
-This command retrieves current transfer timeout values for the driver.
-The argument is a pointer to
-.Vt struct prn_timeouts
-as described below.
-.Bd -literal -offset 2n
-struct prn_timeouts {
- uint_t tmo_forward; /* forward transfer timeout */
- uint_t tmo_reverse; /* reverse transfer timeout */
-};
-.Ed
-.Pp
-.Fa tmo_forward
-and
-.Fa tmo_reverse
-define forward and reverse transfer timeouts in seconds.
-This command is only valid for drivers that support
-.Dv PRN_TIMEOUTS
-capability.
-.It Dv PRNIOC_SET_TIMEOUTS
-This command sets current transfer timeout values for the driver.
-The argument is a pointer to
-.Vt struct prn_timeouts .
-See
-.Sx PRNIOC_GET_TIMEOUTS
-for description of this structure.
-This command is only valid for drivers that support
-.Dv PRN_TIMEOUTS
-capability.
-.El
-.Sh SEE ALSO
-.Xr close 2 ,
-.Xr ioctl 2 ,
-.Xr read 2 ,
-.Xr write 2 ,
-.Xr attributes 5 ,
-.Xr ecpp 7D ,
-.Xr lp 7D ,
-.Xr usbprn 7D
-.Rs
-.%T IEEE Std 1284-1994
-.Re