Provided by: manpages-pl_0.6-2_all 

NAZWA
lp - urządzenia drukarek wierszowych
SKŁADNIA
#include <linux/lp.h>
KONFIGURACJA
Pliki lp[0–2] są urządzeniami znakowymi obsługującymi drukarki dołączone do portów równoległych; numer
główny tych urządzeń jest równy 6, numer podrzędny 0–2. Numery podrzędne odpowiadają adresom bazowym
portu drukarki: 0x03bc, 0x0378 i 0x0278. Zwykle prawa dostępu do plików tych urządzeń wynoszą 220, a ich
właścicielem jest użytkownik root i grupa lp. Porty drukarki mogą być obsługiwane zarówno przy
wykorzystaniu próbkowania, jak i przerwań. Stosowanie przerwań jest zalecane, gdy spodziewamy się dużego
ruchu, np. wynikającego z używania drukarki laserowej. W przypadku zwykłych drukarek mozaikowych
wystarczające jest próbkowanie. Domyślnym trybem obsługi portu jest próbkowanie.
OPIS
Obsługiwane są następujące wywołania funkcji ioctl(2):
int ioctl(int fd, LPTIME, int arg)
Ustawia okres, przez jaki sterownik jest uśpiony, zanim powtórnie sprawdzi stan drukarki w
sytuacji, gdy bufor drukarki zdaje się być wypełnionym do arg. Jeśli drukarka jest szybka, można
zmniejszyć ten parametr. Jeśli drukarka jest wolna, należy zwiększyć ten parametr. Jest to liczba
określająca czas w setnych częściach sekundy, wartość domyślna wynosi 2, co oznacza 0,02 sekundy.
Parametr ten wpływa jedynie na tryb próbkowania.
int ioctl(int fd, LPCHAR, int arg)
Ustawia na argv maksymalną liczbę iteracji aktywnego oczekiwania (busy-wait), jakie wykonuje
sterownik próbkujący czekając, aż drukarka będzie gotowa na otrzymywanie znaków. Jeśli drukowanie
odbywa się zbyt wolno należy zwiększyć tę liczbę; jeśli system za bardzo zwalnia — należy ją
zmniejszyć. Domyślną wartością tego parametru jest 1000. Parametr ma wpływ na sterownik jedynie w
trybie próbkowania.
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)
Jeśli arg jest równy 0, wtedy wymaga się, aby sygnały "out-of-paper", "offline" oraz sygnały
błędów były puste (false) we wszystkich operacjach zapisu, w przeciwnym wypadku są ignorowane.
Domyślnie są ignorowane.
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,
aktywny w stanie wysokim
LP_PACK niezmienione potwierdzenie wejścia,
aktywny w stanie niskim
LP_POUTPA niezmieniony sygnał braku papieru,
aktywny w stanie wysokim
LP_PSELECD niezmieniony sygnał wyboru,
aktywny w stanie wysokim
LP_PERRORP niezmieniony sygnał błędu,
aktywny w stanie niskim
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 3.71 projektu Linux man-pages. Opis projektu, informacje
dotyczące zgłaszania błędów, oraz najnowszą wersję oryginału można znaleźć pod adresem
http://www.kernel.org/doc/man-pages/.
TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Piotr Pogorzelski (PTM)
<piotr.pogorzelski@ippt.gov.pl> i Michał Kułach <michal.kulach@gmail.com>.
Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie
http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 3.71 oryginału.
Linux 15-01-1995 LP(4)