|
LP(4) manual page
Table of Contents
lp - file speciali per le stampanti
#include <linux/lp.h>
lp [0en2] sono dispositivi a carattere per le stampanti
connesse sulla porta parallela; hanno major number 6 e minor number 0en2.
I minor number corrispondono agli indirizzi base delle porte delle stampante
0x03bc, 0x0378 e 0x0278. Si solito hanno modo di accesso 220 e sono di
proprietà di root e gruppo lp. Si può usare la porta della stampante sia
in polling che con interrupt. Gli interrupt sono raccomandati quando è
previsto molto traffico, p.es. per le stampanti laser. Per le normali stampanti
ad aghi di solito è sufficiente il polling. Il default è il polling.
Sono supportate le seguenti chiamate ioctl(2)
:
- int ioctl(int fd , LPTIME,
int arg )
- Pone uguale ad arg l'ammontare di tempo che il driver deve
aspettare prima di ricontrollare la stampante quando il buffer della stampante
sembra essere pieno. Se si ha un stampante veloce, si può diminuire questo
numero; se si ha una stampante lenta conviene aumentarlo. Il valore È espresso
in centesimi di secondo, e il default 2 significa 0.02 secondi. Questo valore
influenza solo il driver di tipo "polling".
- int ioctl(int fd , LPCHAR,
int arg )
- Assenga ad arg il numero massimo di iterazioni in busy-wait
che il driver di tipo "polling" effetua aspettando che la stampante sia
pronta a ricevere un carattere. Se la stampa è troppo lenta, si può incrementare
questo numero; se il sistema va troppo piano lo si decrementi. Il default
è 1000. Il valore ha influenza solo sul polling driver.
- int ioctl(int fd
, LPABORT, int arg )
- Se arg è 0, il driver della stampante riproverà
a trasmettere nel caso si verifichino errori, altrimenti interromperà
la stampa. Il default è 0.
- int ioctl(int fd , LPABORTOPEN, int arg )
- Se arg è 0, open(2)
sarà terminato in caso un errore, altrimenti l'errore
sarà ignorato. Il default è di ignorarlo.
- int ioctl(int fd , LPCAREFUL,
int arg )
- Se arg è 0, allora i segnali out-of-paper, offline e error
devono essere falsi durante tutte le operazioni di scrittura, altrimenti
vengono ignorati. Il default è di ignorarli.
- int ioctl(int fd , LPWAIT,
int arg )
- Assegna ad arg il numero di iterazioni in busy-wait da aspettare
prima di abilitare (strobe) la stampante ad accettare il carattere appena
scritto, e il numero di iterazioni da attendere prima di togliere ancora
l'abilitazione. Le specifiche dicono che questo tempo dovrebbe essere di
0.5 microsecondi, ma l'esperienza ha mostrato che il ritardo causato dal
codice è già sufficiente. Per questa ragione, il valore di default è 0.
Questi valori vengono usati sia per la modalità polling che quella con
interrupt.
- int ioctl(int fd , LPSETIRQ, int arg )
- Questa ioctl() richiede
i privilegi del superutente. Prende come argomento un intero contenente
il nuovo numero di IRQ. Come effetto collaterale, la stampante sarà resettata.
Quando arg è 0, questa chiamata seleziona il driver di tipo "polling",
che è anche quello di default.
- int ioctl(int fd , LPGETIRQ, int * arg
)
- Salva l'IRQ correntemente usato in arg .
- int ioctl(int fd , LPGETSTATUS,
int * arg )
- Salva il valore della porta di stato della stampante in arg
. I bit hanno i seguenti significati:
| LP_PBUSY | (invertito) busy,
attivo alto |
| LP_PACK | acknowledge, attivo basso |
| LP_POUTPA | out-of-paper,
attivo alto |
| LP_PSELECD | selected, attivo alto |
| LP_PERRORP | error,
attivo basso |
Si faccia riferimento al manuale della propria stampante
per il significato dei segnali. Si noti che possono essere settati anche
i bit non documentati, ma questo dipende dalla stampante usata.
- int ioctl(int
fd , LPRESET)
- Resetta la stampante. Non è necessario alcun argomento.
/dev/lp*
Il driver per la stampante è stato scritto originariamente
da Jim Weigand e Linus Torvalds. È stato ulteriormente migliorato da Michael
K. Johnson. Il codice per gli interrupt è stato scritto da Nigel Gamble.
Alan Cox lo ha modularizzato. LPCAREFUL, LPABORT, LPGETSTATUS sono state
aggiunte da Chris Metcalf.
mknod(1)
, chown(1)
, chmod(1)
,
tunelp(8)
, lpcntl(8)
Table of Contents
|
|
|
|