|
|
LP
Section: File speciali (4) Updated: 15 gennaio 1995 Index
Return to Main Contents
NOME
lp - file speciali per le stampanti
SINTASSI
#include <linux/lp.h>
CONFIGURAZIONE
lp[0-2] sono dispositivi a carattere per le stampanti
connesse sulla porta parallela; hanno numero primario 6 e numero secondario
0-2. I numeri secondari 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.
DESCRIZIONE
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à reimpostata. 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 impostati anche i
bit non documentati, ma questo dipende dalla stampante usata.
- int ioctl(int fd, LPRESET)
-
Reimposta la stampante. Non è necessario alcun argomento.
FILE
/dev/lp*
AUTORI
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.
VEDERE ANCHE
mknod(1), chown(1), chmod(1), tunelp(8), lpcntl(8)
Index
- NOME
-
- SINTASSI
-
- CONFIGURAZIONE
-
- DESCRIZIONE
-
- FILE
-
- AUTORI
-
- VEDERE ANCHE
-
|