NOME¶
lp - dispositivo de impressora de linha
SINOPSE¶
#include <linux/lp.h>
CONFIGURAÇÃO¶
lp[0–2] são dispositivos de caracter para impressoras de linha
paralelas; o maior número de dispositivo é 6 e o menor é
0–2. O menor número de dispositivo corresponde ao endereço
basse da porta da impressora 0x03bc, 0x0378 e 0x0278. Usualmente eles tem modo
220 e são and propriedadades do super usuário e do grupo lp.
Você pode usar a porta de impressora em um dos dois modos polling ou com
interrupção. Interrupções são recomendadas quando
tráfego alto é esperado, por exemplo para impressoras laser. Para
impressoras matriciais polling é usualmente suficiente. O padrão
é polling.
DESCRIÇÃO¶
As seguintes chamadas
ioctl(2) são suportadas:
- int ioctl(int fd, LPTIME, int
arg )
- Seleciona a quantia de tempo que o controlador aguarda
antes de reverificar a impressora quando o buffer da impressora mostra-se
cheio para arg. Se você tem uma impressora rápida,
diminua este número, se você tem uma impressora lenta aumente-o.
Isto é um centésimo de segundo, o padrão 2 estando a 0.02
segundos. Ele somente influência o controlador de polling.
- int ioctl(int fd, LPCHAR, int
arg )
- Seleciona o número máximo de iterações
ocupada-espera o qual faz controlador de polling passar o tempo aguardando
pela impressora para preparar-se para recepção de um caractere
para arg. Se a impressora é muito lenta, aumente este
número; se o sistema também é lento, diminua este
número. O padrão é 1000. Ele somente influência o
controlador de polling.
- int ioctl(int fd, LPABORT, int
arg )
- Se arg é 0, o controlador de impressora
irá tentar em erro, de outro forma ele irá abortar. O
padrão é 0.
- int ioctl(int fd, LPABORTOPEN, int
arg )
- Se arg é 0, open(2) irá abortar em
erro, de outra forma erros serão ignorados. O padrão é para
ignorar.
- int ioctl(int fd, LPCAREFUL, int
arg )
- Se arg é 0, então fim-de-papel,
fora-de-linha e sinal de erros são requeridos para ser falso em todas
as escritas, de outra forma eles são ignorados. O padrão é
para ignora-los.
- int ioctl(int fd, LPWAIT, int
arg )
- Seleciona o número de iterações de esperar
ocupado para aguardar antes strobing a impressor para acessar um caractere
justamente escrito, e o número de iterações para aguardar
antes de tornar o strobe desligado novamente, para arg. A
especificação diz que este tempo precisaria ser de 0,5
microsegundos, mas a experiência tem mostrado o intervalo de tempo
causado pelo código é suficiente. Por essas razões, o valor
padrão é 0. Isto é usado por ambos os modos polling e
controlador de interrupção.
- int ioctl(int fd, LPSETIRQ, int
arg )
- Esta ioctl() requer privilégios de super usuário.
Isso exige um inteiro contendo o novo argumento IRQ. Como um efeito
colateral, a impressora deverá ser religada. Quando arg é
0, o controlador polling irá ser usado, o qual é, além
disso, padrão.
- int ioctl(int fd, LPGETIRQ, int
*arg )
- Armazena oa IRQ atualmente usada em arg.
- int ioctl(int fd, LPGETSTATUS, int
*arg)
- Armazena o valor do status da porta em arg. Os bits
tem o seguinte significado:
LP_PBUSY |
entrada invertida ocupada, alta atividade |
LP_PACK |
entrada reconhecida inalterada, baixa atividade |
LP_POUTPA |
entrada "sem papel" inalterada, alta atividade |
LP_PSELECD |
entrada selecionada inalterada, alta atividade |
LP_PERRORP |
entrada de erro inalterada, baixa atividade |
Refira-se para o manual da sua impressora para entender sobre os sinais.
Note que bits não documentados também podem ser selecionados,
depende da sua impressora.
- int ioctl(int fd, LPRESET)
- Religa sua impressora. É usado sem argumentos.
ARQUIVOS¶
/dev/lp*
AUTORES¶
O controlador de impressão foi originalmente escrito por Jim Weigand e
Linus Torvalds. Ele tem sido aprimorado por Michael K. Johnson. O código
da interrupção foi escrito por Nigel Gamble. Alan Cox fez a
modularização. LPCAREFUL, LPABORT, LPGETSTATUS são
adições de Chris Metcalf.
VEJA TAMBÉM¶
mknod(1),
chown(1),
chmod(1),
tunelp(8),
lpcntl(8)
TRADUZIDO POR LDP-BR em 21/08/2000.¶
André L. Fassone Canova <lonelywolf@blv.com.br> (tradução)
Carlos Augusto Horylka <horylka@conectiva.com.br> (revisão)