lp(4)

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 della stampante 0x03bc, 0x0378 e 0x0278. Si solito hanno modo di accesso 220 e sono di proprietà dell'utente 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, per esempio per le stampanti laser. Per le tipiche 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 sulla sequenza di interrogazione dei 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, i segnali out-of-paper, offline ed 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à interrogazione che quella coninterrupt.

int ioctl(int fd, LPSETIRQ, int arg)
    Questa ioctl(2) 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 | input busy invertito, attivo alto
    LP_PACK | input acknowledge invariato, attivo basso
    LP_POUTPA | input "out-of-paper" invariato, attivo alto
    LP_PSELECD | input "selected" invariato, attivo alto
    LP_PERRORP | input "error" invariato, attivo basso

    Si faccia riferimento al manuale della propria stampante per ilsignificato dei segnali. Si noti che possono essere impostati anche ibit non documentati, ma questo dipende dalla stampante usata.

int ioctl(int fd, LPRESET)
    Reimposta la stampante. Non è necessario alcun argomento.

FILE
/dev/lp*

VEDERE ANCHE
chmod(1), chown(1), mknod(1), lpcntl(8), tunelp(8)

TRADUZIONE
La traduzione italiana di questa pagina di manuale è stata creata da Giovanni Bortolozzo <borto@dei.unipd.it>, Alessandro Rubini <rubini@linux.it>, Giulio Daprelà <giulio@pluto.it> e Marco Curreli <marcocurreli@tiscali.it>

Questa traduzione è documentazione libera; leggere la GNU General Public License Versione 3 (https://www.gnu.org/licenses/gpl-3.0.html) o successiva per le condizioni di copyright. Non ci assumiamo alcuna responsabilità.

Per segnalare errori nella traduzione di questa pagina di manuale inviare un messaggio a pluto-ildp@lists.pluto.it.