]>
Commit | Line | Data |
---|---|---|
fea681da MK |
1 | '\" t |
2 | .\" Copyright (c) Michael Haardt (michael@cantor.informatik.rwth-aachen.de), Sun Jan 15 19:16:33 1995 | |
3 | .\" | |
4 | .\" This is free documentation; you can redistribute it and/or | |
5 | .\" modify it under the terms of the GNU General Public License as | |
6 | .\" published by the Free Software Foundation; either version 2 of | |
7 | .\" the License, or (at your option) any later version. | |
8 | .\" | |
9 | .\" The GNU General Public License's references to "object code" | |
10 | .\" and "executables" are to be interpreted as the output of any | |
11 | .\" document formatting or typesetting system, including | |
12 | .\" intermediate and printed output. | |
13 | .\" | |
14 | .\" This manual is distributed in the hope that it will be useful, | |
15 | .\" but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 | .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 | .\" GNU General Public License for more details. | |
18 | .\" | |
19 | .\" You should have received a copy of the GNU General Public | |
20 | .\" License along with this manual; if not, write to the Free | |
21 | .\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, | |
22 | .\" USA. | |
23 | .\" | |
24 | .\" Modified, Sun Feb 26 15:02:58 1995, faith@cs.unc.edu | |
25 | .TH LP 4 1995-01-15 "Special files" "Linux Programmer's Manual" | |
26 | .SH NAME | |
27 | lp \- line printer devices | |
28 | .SH SYNOPSIS | |
29 | .B #include <linux/lp.h> | |
30 | .SH CONFIGURATION | |
31 | \fBlp\fP[0\(en2] are character devices for the parallel line printers; | |
c13182ef MK |
32 | they have major number 6 and minor number 0\(en2. |
33 | The minor numbers | |
fea681da | 34 | correspond to the printer port base addresses 0x03bc, 0x0378 and 0x0278. |
c13182ef MK |
35 | Usually they have mode 220 and are owned by root and group lp. |
36 | You can use printer ports either with polling or with interrupts. | |
37 | Interrupts are recommended when high traffic is expected, e.g.\& for laser | |
38 | printers. | |
39 | For usual dot matrix printers polling will usually be enough. | |
40 | The default is polling. | |
fea681da MK |
41 | .SH DESCRIPTION |
42 | The following | |
43 | .BR ioctl (2) | |
44 | calls are supported: | |
45 | .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPTIME, int \fP\fIarg\fP\fB)\fP" | |
46 | Sets the amount of time that the driver sleeps before rechecking the printer | |
c13182ef MK |
47 | when the printer's buffer appears to be filled to \fIarg\fP. |
48 | If you have a fast printer, decrease this number; | |
49 | if you have a slow printer then increase it. | |
50 | This is in hundredths of a second, the default 2 | |
51 | being 0.02 seconds. | |
52 | It only influences the polling driver. | |
fea681da MK |
53 | .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPCHAR, int \fP\fIarg\fP\fB)\fP" |
54 | Sets the maximum number of busy-wait iterations which the polling driver does | |
55 | while waiting for the printer to get ready for receiving a character to | |
c13182ef MK |
56 | \fIarg\fP. |
57 | If printing is too slow, increase this number; if the | |
58 | system gets too slow, decrease this number. | |
59 | The default is 1000. | |
fea681da MK |
60 | It only influences the polling driver. |
61 | .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPABORT, int \fP\fIarg\fP\fB)\fP" | |
62 | If \fIarg\fP is 0, the printer driver will retry on errors, otherwise | |
c13182ef MK |
63 | it will abort. |
64 | The default is 0. | |
fea681da MK |
65 | .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPABORTOPEN, int \fP\fIarg\fP\fB)\fP" |
66 | If \fIarg\fP is 0, | |
67 | .BR open (2) | |
c13182ef MK |
68 | will be aborted on error, otherwise error will be ignored. |
69 | The default is to ignore it. | |
fea681da MK |
70 | .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPCAREFUL, int \fP\fIarg\fP\fB)\fP" |
71 | If \fIarg\fP is 0, then the out-of-paper, offline and error signals are | |
c13182ef MK |
72 | required to be false on all writes, otherwise they are ignored. |
73 | The default is to ignore them. | |
fea681da MK |
74 | .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPWAIT, int \fP\fIarg\fP\fB)\fP" |
75 | Sets the number of busy waiting iterations to wait before strobing the | |
76 | printer to accept a just-written character, and the number of iterations to | |
77 | wait before turning the strobe off again, | |
c13182ef MK |
78 | to \fIarg\fP. |
79 | The specification says this time should be 0.5 | |
fea681da | 80 | microseconds, but experience has shown the delay caused by the code is |
c13182ef MK |
81 | already enough. |
82 | For that reason, the default value is 0. | |
83 | This is used for both the polling and the interrupt driver. | |
fea681da | 84 | .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPSETIRQ, int \fP\fIarg\fP\fB)\fP" |
c13182ef MK |
85 | This |
86 | .BR ioctl () | |
87 | requires superuser privileges. | |
88 | It takes an int containing the new IRQ as argument. | |
89 | As a side effect, the printer will be reset. | |
90 | When \fIarg\fP is 0, the polling driver will be used, which is also default. | |
fea681da MK |
91 | .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPGETIRQ, int *\fP\fIarg\fP\fB)\fP" |
92 | Stores the currently used IRQ in \fIarg\fP. | |
93 | .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPGETSTATUS, int *\fP\fIarg\fP\fB)\fP" | |
c13182ef MK |
94 | Stores the value of the status port in \fIarg\fP. |
95 | The bits have the following meaning: | |
fea681da MK |
96 | .TS |
97 | l l. | |
98 | LP_PBUSY inverted busy input, active high | |
99 | LP_PACK unchanged acknowledge input, active low | |
100 | LP_POUTPA unchanged out-of-paper input, active high | |
101 | LP_PSELECD unchanged selected input, active high | |
102 | LP_PERRORP unchanged error input, active low | |
103 | .TE | |
104 | .sp | |
105 | Refer to your printer manual for the meaning of the signals. | |
106 | Note that undocumented bits may also be set, depending on your printer. | |
107 | .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPRESET)\fP" | |
c13182ef MK |
108 | Resets the printer. |
109 | No argument is used. | |
fea681da MK |
110 | .SH FILES |
111 | /dev/lp* | |
112 | .SH AUTHORS | |
113 | The printer driver was originally written by Jim Weigand and Linus | |
c13182ef MK |
114 | Torvalds. |
115 | It was further improved by Michael K.\& Johnson. | |
116 | The interrupt code was written by Nigel Gamble. | |
117 | Alan Cox modularised it. | |
fea681da MK |
118 | LPCAREFUL, LPABORT, LPGETSTATUS were added by Chris Metcalf. |
119 | .SH "SEE ALSO" | |
120 | .BR chmod (1), | |
121 | .BR chown (1), | |
122 | .BR mknod (1), | |
123 | .BR lpcntl (8), | |
124 | .BR tunelp (8) |