LP(4)

NAZWA
lp - urządzenia drukarek wierszowych

SKŁADNIA
#include <linux/lp.h>

KONFIGURACJA
lp[0–2] are character devices for the parallel line printers; they have major number 6 and minor number 0–2. The minor numbers correspond to the printer port base addresses 0x03bc, 0x0378, and 0x0278. Usually they have mode 220 and are owned by user root and group lp. You can use printer ports either with polling or with interrupts. Interrupts are recommended when high traffic is expected, for example, for laser printers. For typical dot matrix printers, polling will usually be enough. The default is polling.

OPIS
Obsługiwane są następujące wywołania funkcji ioctl(2):

int ioctl(int fd, LPTIME, int arg)
    Sets the amount of time that the driver sleeps before rechecking the printer when the printer's buffer appears to be filled to arg. If you have a fast printer, decrease this number; if you have a slow printer, then increase it. This is in hundredths of a second, the default 2 being 0.02 seconds. It influences only the polling driver.

int ioctl(int fd, LPCHAR, int arg)
    Sets the maximum number of busy-wait iterations which the polling driver does while waiting for the printer to get ready for receiving a character to arg. If printing is too slow, increase this number; if the system gets too slow, decrease this number. The default is 1000. It influences only the polling driver.

int ioctl(int fd, LPABORT, int arg)
    Jeśli parametr arg jest równy 0, wtedy sterownik drukarki będzie powtarzał operację po wystąpieniu błędu; w przeciwnym wypadku przerwie działanie. Standardową wartością tego parametru jest 0.

int ioctl(int fd, LPABORTOPEN, int arg)
    Jeśli arg jest równy 0, funkcja open(2) zostanie przerwana po wystąpieniu błędu; w przeciwnym wypadku błąd zostanie zignorowany. Standardowe zachowanie polega na ignorowaniu błędów.

int ioctl(int fd, LPCAREFUL, int arg)
    If arg is 0, then the out-of-paper, offline, and error signals are required to be false on all writes, otherwise they are ignored. The default is to ignore them.

int ioctl(int fd, LPWAIT, int arg)
    Ustawia na arg liczbę iteracji aktywnego oczekiwania (busy-wait) przed spróbkowaniem, czy drukarka zaakceptowała właśnie zapisany znak, oraz liczbę iteracji, które należy przeczekać przed kolejnym próbkowaniem. Specyfikacje określają ten czas jako 0.5 mikrosekundy, lecz doświadczenie wykazało, że opóźnienie spowodowane wykonaniem kodu jest już wystarczające. Z tego powodu wartością domyślną dla tego ustawienia jest 0. Jest ono wykorzystywane w sterowniku zarówno w trybie próbkowania, jak i w trybie przerwań.

int ioctl(int fd, LPSETIRQ, int arg)
    To wywołanie funkcji ioctl(2) wymaga uprawnień administratora. Funkcja pobiera argument typu int zawierający nowe przerwanie IRQ. Skutkiem ubocznym jest inicjacja drukarki. Gdy arg jest zerem, to stosowany będzie sterownik z próbkowaniem; jest to równocześnie zachowanie domyślne.

int ioctl(int fd, LPGETIRQ, int *arg)
    Zachowuje w parametrze arg aktualnie stosowane przerwanie IRQ.

int ioctl(int fd, LPGETSTATUS, int *arg)
    Zachowuje wartość stanu portu w zmiennej arg. Poszczególne bity mają następujące znaczenie:
    LP_PBUSY | odwrócony sygnał zajętości
    LP_PACK | niezmienione potwierdzenie wejścia
    LP_POUTPA | niezmieniony sygnał braku papieru
    LP_PSELECD | niezmieniony sygnał wyboru
    LP_PERRORP | niezmieniony sygnał błędu

    Znaczenia sygnałów należy szukać w dokumentacji drukarki. Należy pamiętać, że dla niektórych drukarek ustawiane mogą być też nieudokumentowane tu bity.

int ioctl(int fd, LPRESET)
    Inicjuje drukarkę. Nie stosuje się żadnych parametrów.

PLIKI
/dev/lp*

ZOBACZ TAKŻE
chmod(1), chown(1), mknod(1), lpcntl(8), tunelp(8)

O STRONIE
Angielska wersja tej strony pochodzi z wydania 5.13 projektu Linux man-pages. Opis projektu, informacje dotyczące zgłaszania błędów oraz najnowszą wersję oryginału można znaleźć pod adresem https://www.kernel.org/doc/man-pages/.

TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Piotr Pogorzelski <piotr.pogorzelski@ippt.gov.pl> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 (https://www.gnu.org/licenses/gpl-3.0.html) lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.