'\" t .\" Copyright (c) Michael Haardt (michael@cantor.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, faith@cs.unc.edu .\" Translated Fri Jul 5 1996 by .\" Ignacio Arenaza (Ignacio.Arenaza@studi.epfl.ch) .\" Translation revised on Thu May 7 15:49:23 CEST 1998 by Gerardo .\" Aburruzaga García .\" .TH LP 4 "5 Julio 1996" "Linux" "Ficheros Especiales" .SH NOMBRE lp \- dispositivos de impresora. .SH SINOPSIS .B #include .SH CONFIGURACIÓN \fBlp\fP[0\(en2] son dispositivos de carácter para las impresoras en el puerto paralelo; tienen el número mayor 6 y el menor 0\(en2. Los números menores corresponden a las direcciones de base de los puertos de impresora 0x03bc, 0x0378 y 0x0278. Normalmente tienen permisos 220 y su propietario es root y son del grupo lp. Los puertos de impresora se pueden usar o bien en modo de sondeo o bien en modo de interrupción. Se recomienda usar el modo de interrupciones cuando se espere gran cantidad de tráfico (p.ej.\& con impresoras láser). Para las impresoras de matriz de puntos habituales, el modo de sondeo es suficiente. El modo por omisión es el de sondeo. .SH DESCRIPCIÓN Se aceptan las siguientes llamadas .BR ioctl (2): .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPTIME, int \fP\fIarg\fP\fB)\fP" \fIarg\fP es la cantidad de tiempo que el controlador dormirá antes de re-comprobar la impresora, cuando el tampón de la impresora se haya llenado. Si se tiene una impresora rápida, redúzcase este número; si se tiene una impresora lenta, auméntese. Se mide en centésimas de segundo, siendo el valor por omisión 2 (0,02 segundos). Sólo tiene influencia en el controlador por sondeo. .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPCHAR, int \fP\fIarg\fP\fB)\fP" \fIarg\fP es el número máximo de iteraciones de espera que efectuará el controlador por sondeo, mientras espera que la impresora esté lista para recibir un carácter. Si la impresora es demasiado lenta, hay que aumentar este número. Si el sistema va demasiado lento, hay que disminuir este número. El valor por omisión es 1000. Sólo tiene influencia en el controlador por sondeo. .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPABORT, int \fP\fIarg\fP\fB)\fP" Si \fIarg\fP es 0, el controlador reintentará la operación cuando se produzca un error. De lo contrario, abortará. El valor por omisión es 0. .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPABORTOPEN, int \fP\fIarg\fP\fB)\fP" Si \fIarg\fP es 0, se abortará .BR open (2) cuando se produzca un error, de lo contrario el error será pasado por alto. El valor por omisión es este último comportamiento. .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPCAREFUL, int \fP\fIarg\fP\fB)\fP" Si \fIarg\fP es 0, es necesario que las señales de sin-papel, fuera de línea y error sean falsas en el momento de la escritura, de lo contario no se tienen en cuenta. El valor por omisión es esto último. .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPWAIT, int \fP\fIarg\fP\fB)\fP" \fIarg\fP fija el número de iteraciones de espera a efectuar antes de enviar un pulso a la impresora para que acepte el carácter que se acaba de escribir, y el número de iteraciones a esperar antes de retirar el pulso. La especificación dice que su duración debe ser 0,5 microsegundos, pero la experiencia muestra que el retardo causado por el propio codigo es suficiente. Por esa razón, el valor por omisión es 0. Lo usan tanto el controlador por interrupciones como el controlador por sondeo. .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPSETIRQ, int \fP\fIarg\fP\fB)\fP" Esta ioctl() necesita los privilegios del súper-usuario. \fIarg\fP especifica la nueva IRQ a usar por el controlador. Como efecto secundario, se re-inicializa la impresora. Si \fIarg\fP es 0, se usará el controlador por sondeo, que es también el valor por omisión. .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPGETIRQ, int *\fP\fIarg\fP\fB)\fP" Devuelve en \fIarg\fP la IRQ en uso actualmente. .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPGETSTATUS, int *\fP\fIarg\fP\fB)\fP" Devuelve en \fIarg\fP el valor del puerto de estado. El significado de cada bit es el siguiente: .sp .TS l l. LP_PBUSY entrada de ocupado invertida, activa a nivel alto LP_PACK entrada de reconocimiento, activa a nivel bajo. LP_POUTPA entrada de sin papel, activa a nivel alto. LP_PSELECD entrada de seleccionado, activa a nivel alto. LP_PERRORP entrada de error, activa a nivel bajo. .TE .sp Consulte el manual de su impresora para conocer el significado exacto de las señales. Nótese que también pueden activarse otros bits no documentados, dependiendo de la impresora. .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPRESET)\fP" Re-inicializa la impresora. No necesita argumento. .SH FICHEROS /dev/lp* .SH AUTORES El controlador de impresora fue escrito en su origen por Jim Weigand y Linus Torvalds. Fue mejorado más tarde por Michael K.\& Johnson. El código de las interrupciones fue escrito por Nigel Gamble, y Alan Cox lo modularizó. LPCAREFUL, LPABORT y LPGETSTATUS fueron añadidos por Chris Metcalf. .SH "VÉASE TAMBIÉN" .BR mknod "(1), " chown "(1), " chmod "(1), " .BR tunelp "(8), " lpcntl (8)