LP(4)

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)