lp — line printer devices
#include <linux/lp.h>
lp
[0–2] are character
devices for the parallel line printers; they have major
number 6 and minor number 0–2. The minor numbers
correspond to the printer port base addresses 0x03bc, 0x0378
and 0x0278. Usually they have mode 220 and are owned by root
and group lp. You can use printer ports either with polling
or with interrupts. Interrupts are recommended when high
traffic is expected, for example, for laser printers. For
usual dot matrix printers polling will usually be enough. The
default is polling.
The following ioctl(2) calls are supported:
fd
, LPTIME,
int arg
)Sets the amount of time that the driver sleeps
before rechecking the printer when the printer's buffer
appears to be filled to arg
. If you have a fast printer,
decrease this number; if you have a slow printer then
increase it. This is in hundredths of a second, the
default 2 being 0.02 seconds. It only influences the
polling driver.
fd
, LPCHAR,
int arg
)Sets the maximum number of busy-wait iterations
which the polling driver does while waiting for the
printer to get ready for receiving a character to
arg
. If printing is too
slow, increase this number; if the system gets too
slow, decrease this number. The default is 1000. It
only influences the polling driver.
fd
, LPABORT,
int arg
)If arg
is 0, the
printer driver will retry on errors, otherwise it will
abort. The default is 0.
fd
,
LPABORTOPEN, int arg
)If arg
is 0, open(2) will be
aborted on error, otherwise error will be ignored. The
default is to ignore it.
fd
,
LPCAREFUL, int arg
)If arg
is 0, then the
out-of-paper, offline and error signals are required to
be false on all writes, otherwise they are ignored. The
default is to ignore them.
fd
, LPWAIT,
int arg
)Sets the number of busy waiting iterations to wait
before strobing the printer to accept a just-written
character, and the number of iterations to wait before
turning the strobe off again, to arg
. The specification says this time
should be 0.5 microseconds, but experience has shown
the delay caused by the code is already enough. For
that reason, the default value is 0. This is used for
both the polling and the interrupt driver.
fd
,
LPSETIRQ, int arg
)This ioctl(2) requires
superuser privileges. It takes an int containing the new IRQ as argument.
As a side effect, the printer will be reset. When
arg
is 0, the polling
driver will be used, which is also default.
fd
,
LPGETIRQ, int *arg
)Stores the currently used IRQ in arg
.
fd
,
LPGETSTATUS, int *arg
)Stores the value of the status port in arg
. The bits have the following
meaning:
LP_PBUSY | inverted busy input, active high |
LP_PACK | unchanged acknowledge input, active low |
LP_POUTPA | unchanged out-of-paper input, active high |
LP_PSELECD | unchanged selected input, active high |
LP_PERRORP | unchanged error input, active low |
Refer to your printer manual for the meaning of the signals. Note that undocumented bits may also be set, depending on your printer.
fd
,
LPRESET)Resets the printer. No argument is used.
This page is part of release 2.79 of the Linux man-pages
project. A
description of the project, and information about reporting
bugs, can be found at
http://www.kernel.org/doc/man-pages/.
t Copyright (c) Michael Haardt (michaelcantor.informatik.rwth-aachen.de), Sun Jan 15 19:16:33 1995 This is free documentation; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The GNU General Public License's references to "object code" and "executables" are to be interpreted as the output of any document formatting or typesetting system, including intermediate and printed output. This manual is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this manual; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. Modified, Sun Feb 26 15:02:58 1995, faithcs.unc.edu |