lp - dispositivos de impresora.
#include <linux/lp.h>
lp[0–2] son dispositivos de carácter para las impresoras en
el puerto paralelo; tienen el número mayor 6 y el menor 0n]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
matriciales , el modo de sondeo suele ser suficiente de ahí que se use
por defecto.
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(2) necesita los privilegios de
administrador. Toma un int que contiene la nueva IRQ a usar por el
controlador. Como efecto secundario, se reinicia la impresora. Si
arg es 0, se usará el controlador por sondeo, del mismo modo
que se haría por defecto.
-
int ioctl(int fd, LPGETIRQ, int
*Iarg)
- 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.
/dev/lp*
chmod(1),
chown(1),
mknod(1),
lpcntl(8),
tunelp(8)
La traducción al español de esta página del manual fue
creada por Ignacio Arenaza <
[email protected]>, Gerardo
Aburruzaga García <
[email protected]> y Marcos Fouces
<
[email protected]>
Esta traducción es documentación libre; lea la
GNU
General Public License Version 3 o posterior con respecto a las
condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.
Si encuentra algún error en la traducción de esta página
del manual, envíe un correo electrónico a
[email protected]