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
This document was created by man2html, using
the manual pages.
Time: 06:16:27 GMT, January 22, 2005