plp(7)
plp - parallel line printer interface
As shipped in IRIX 6.5.22. Last changed in IRIX 6.5.5.
NAME plp - parallel line printer interface SYNOPSIS #include <sys/plp.h> /dev/plp /dev/plpbi DESCRIPTION The special file /dev/plp refers to the parallel printer interface on the Indigo, Indy, Indigo2, Challenge/Onyx, O2, OCTANE, Origin200 and Onyx2 products. Special file /dev/plpbi is also available on the Indigo, Indy and Indigo2 platforms and is used to access the parallel printer interface in bidirectional access mode. The plp device supports output to a Centronics-compatible printer connected to the builtin parallel printer port. Normally, /dev/plp is directly accessed only by a print spooling mechanism such as the lp(1) subsystem. Multiple processes may open the device, but these processes must synchronize writes to prevent intermingled data. Processes may open the device read-only to obtain printer status. The special file /dev/plpbi may be open for reading and writing by one process at a time. A printer reset is automatically issued only once at system startup. Different platforms support different operation modes and features as described below. The plp devices on the O2 are IEEE 1284-II compliant and supports all three IEEE 1284-II interfaces: Compatibility(Centronics), bidirectional Enhanced Parallel Port(EPP), and bidirectional Extended Capabilities Port(ECP). Bidirectional Centronics mode is not supported. Compatibility (Centronics) mode is actually available as two different types: PIO or FIFO mode. FIFO Compatibility mode is a faster Centronics mode which uses DMA access. PIO Compatibility mode uses standard PIO access (no DMA). PIO Compatibility mode has been found to be more compatible with some types of printers and should be used only if problems occur in FIFO Compatibility mode. The O2 plp driver also has the capability to perform auto-negotiation with printers (peripherals) to set up the proper protocol. This auto-negotiation mode, or any other supported mode, can be specified through /var/sysgen/master.d/ecplp to override the default mode (Compatibility FIFO mode). The plp devices on the OCTANE, Origin200, and Onyx2 are IEEE 1284-II compliant devices. However only Compatibility(Centronics) and Extended Capabilities Port(ECP) output mode are supported. Bidirectional Centronics, bidirectional ECP, EPP and auto-negotiation mode are not supported. As with the O2 platform, Compatibility mode is available as either FIFO or PIO Compatibility mode. The default operation mode (Compatibility FIFO mode) can be changed through /var/sysgen/master.d/ecpplp. The Indigo, Indigo2, and Indy support only Centronics and bidirectional Centronics interfaces. The following ioctls are defined in the include file <sys/plp.h> and may be used to control the device: PLPIOCRESET Asserts the reset signal to the printer. PLPIOCSTROBE Sets the duration and duty cycle of the data strobe output. A macro is provided, PLP_STROBE, which converts strobe length to the argument format. See <sys/plp.h>. Does not apply to O2, OCTANE, Origin200, and Onyx2. PLPIOCESTROBE Sets the set-up, pulse, and hold times of the data strobe output. A macro is provided, PLP_ESTROBE, which converts strobe length to the argument format. See <sys/plp.h>. Challenge/Onyx L/XL only. PLPIOCIGNACK Argument of 1 causes the acknowledge input from the interface to be ignored. Argument of 0 reenables the acknowledge input. Challenge/Onyx, R4k-Indigo only. PLPIOCWTO Set write timeout value, the length of time a write command will wait before timing out, in seconds (default is 0 seconds which indicates infinite timeout). PLPIOCRTO Set read timeout value, the length of time a read command will wait before timing out, in seconds. (default is 0 seconds which indicates infinite timeout). PLPIOCREAD Enables the reads from the port (bidirectional mode). For all Indy and Indigo2 products PLPIOMODE ioctl is a prerequisite. Should only be set once at the time the device is opened. Use the following code to set it (it remains set until the port is closed). .... if (ioctl (scanner, PLPIOCREAD, 1) < 0) { close (scanner); return -1; } .... For the O2 product, PLPIOCREAD ioctl is valid only in ECP or EPP mode. For OCTANE, Origin200, and Onyx2, this ioctl is not supported. PLPIOMODE This ioctl changes the operation mode of the driver. It should be used only immediately after opening the device. On Indy, Indigo and Indigo2 platforms, this ioctl sets bidirectional Centronics mode. On O2, OCTANE, Origin200, and Onyx2 products, this ioctl sets the operation mode to any supported mode. Only operation modes supported on the platforrm are valid. For example, on Octane, Origin200, and Onyx2, only PLP_PIO, PLP_ECP and PLP_COMP are valid. Use the following code to set it: .... if (ioctl (scanner, PLPIOMODE, PLP_BI) < 0) { close (scanner); return -1; } .... Does not apply to Challenge/Onyx. PLPIOCSTATUS This ioctl returns the printer status as an integer bit- mask based on constants defined in <sys/plp.h>. The constants are described below: FAULT Printer is in fault state EOI End of Ink (Ribbon out) EOP End of Paper ONLINE Printer is on line Not all printers/platforms support all of these status indications. FILES /dev/plp, /dev/plpbi, /var/sysgen/master.d/ecplp, /var/sysgen/master.d/ecpplp NOTE On O2, OCTANE, Origin200 and Onyx2 /dev/plp[n] are linked to /hw/parallel/plp[n]. On driver unregistration and subsequent re- registration, the /hw/parallel entries may no longer exist. Rerun ioconfig(1) to get the entries set up again. SEE ALSO lp(1), pfd(7m) ELECTRICAL INTERFACE IEEE 1284-A 25-pin subminiature D-shell (standard DB-25) connector at the host or the peripheral end. IEEE 1284-A 25-PIN PARALLEL PORT CONNECTOR ______________________________________________________ PIN SIGNAL DESCRIPTION ______________________________________________________ 1 nStrobe Strobe Data 2 Data1 Data Bit 0 3 Data2 Data Bit 1 4 Data3 Data Bit 2 5 Data4 Data Bit 3 6 Data5 Data Bit 4 7 Data6 Data Bit 5 8 Data7 Data Bit 6 9 Data8 Data Bit 7 10 nAck Acknowledge 11 Busy Peripheral Busy 12 PError Page Error 13 Select Peripheral Online 14 nAutoFd Automatic Line Feed (or PR/SC) 15 nFault Peripheral Fault 16 nInit Peripheral Reset 17 nSelectIn Turn Peripheral Online (or No Ink) 18-25 Gnd Signal Ground | | IEEE 1284-B 36-pin (normal Centronics) connector at the peripheral end. IEEE 1284-B 36-PIN PARALLEL PORT CONNECTOR ___________________________________________________ PIN SIGNAL DESCRIPTION ___________________________________________________ 1 nStrobe Strobe Data 2 Data1 Data Bit 0 3 Data2 Data Bit 1 4 Data3 Data Bit 2 5 Data4 Data Bit 3 6 Data5 Data Bit 4 7 Data6 Data Bit 5 8 Data7 Data Bit 6 9 Data8 Data Bit 7 10 nAck Acknowledge 11 Busy Peripheral Busy 12 PError Page Error 13 Select Peripheral Online 14 nAutoFd Automatic Line Feed (or PR/SC) 15 - Not Defined (or No Paper) | | 16 Gnd Logic Ground 17 Gnd Chassis Ground (or No Ink) 18 PrnHigh Peripheral Logic High (or N.C.) 19-30 Gnd Signal Ground 31 nInit Peripheral Reset 32 nFault Peripheral Fault 33-35 - Not Defined 36 nSelectIn Turn Peripheral Online | | IEEE 1284-C 36-pin miniature connector at the host or the peripheral end. IEEE 1284-C 36-PIN PARALLEL PORT CONNECTOR __________________________________________ PIN SIGNAL DESCRIPTION __________________________________________ 1 Busy Peripheral Busy 2 Select Peripheral Online 3 nAck Acknowledge 4 nFault Peripheral Fault 5 PError Page Error 6 Data1 Data Bit 0 7 Data2 Data Bit 1 8 Data3 Data Bit 2 9 Data4 Data Bit 3 10 Data5 Data Bit 4 11 Data6 Data Bit 5 12 Data7 Data Bit 6 13 Data8 Data Bit 7 14 nInit Peripheral Reset 15 nStrobe Strobe Data 16 nSelectIn Turn Peripheral Online 17 nAutoFd Automatic Line Feed 18 HostHigh Host Logic High 19-35 Gnd Signal Ground 36 PrnHigh Peripheral Logic High | |