|
|
|
LP
Section: Ficheros Especiales (4) Updated: 5 Julio 1996 Index
Return to Main Contents
NOMBRE
lp - dispositivos de impresora.
SINOPSIS
#include <linux/lp.h>
CONFIGURACIÓN
lp[0-2] son dispositivos de carácter para las impresoras en
el puerto paralelo; tienen el número mayor 6 y el menor 0-2. 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.
DESCRIPCIÓN
Se aceptan las siguientes llamadas
ioctl(2):
- int ioctl(int fd, LPTIME, int arg)
-
arg 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.
- int ioctl(int fd, LPCHAR, int arg)
-
arg 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.
- int ioctl(int fd, LPABORT, int arg)
-
Si arg es 0, el controlador reintentará la operación cuando se
produzca un error. De lo contrario, abortará. El valor por omisión es 0.
- int ioctl(int fd, LPABORTOPEN, int arg)
-
Si arg es 0,
se abortará
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.
- int ioctl(int fd, LPCAREFUL, int arg)
-
Si arg 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.
- int ioctl(int fd, LPWAIT, int arg)
-
arg 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.
- int ioctl(int fd, LPSETIRQ, int arg)
-
Esta ioctl() necesita los privilegios del súper-usuario. arg
especifica la nueva IRQ a usar por el controlador. Como efecto
secundario, se re-inicializa la impresora. Si arg es 0, se usará
el controlador por sondeo, que es también el valor por omisión.
- int ioctl(int fd, LPGETIRQ, int *arg)
-
Devuelve en arg la IRQ en uso actualmente.
- int ioctl(int fd, LPGETSTATUS, int *arg)
-
Devuelve en arg el valor del puerto de estado. El significado
de cada bit es el siguiente:
| 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.
|
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.
- int ioctl(int fd, LPRESET)
-
Re-inicializa la impresora. No necesita argumento.
FICHEROS
/dev/lp*
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.
VÉASE TAMBIÉN
mknod(1), chown(1), chmod(1),
tunelp(8), lpcntl(8)
Index
- NOMBRE
-
- SINOPSIS
-
- CONFIGURACIÓN
-
- DESCRIPCIÓN
-
- FICHEROS
-
- AUTORES
-
- VÉASE TAMBIÉN
-
|