'\" t .\" Copyright (c) Michael Haardt (michael@cantor.informatik.rwth-aachen.de), .\" Sun Jan 15 19:16:33 1995 .\" .\" %%%LICENSE_START(GPLv2+_DOC_FULL) .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as .\" published by the Free Software Foundation; either version 2 of .\" the License, or (at your option) any later version. .\" .\" The GNU General Public License's references to "object code" .\" and "executables" are to be interpreted as the output of any .\" document formatting or typesetting system, including .\" intermediate and printed output. .\" .\" This manual is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public .\" License along with this manual; if not, see .\" . .\" %%%LICENSE_END .\" .\" Modified, Sun Feb 26 15:02:58 1995, faith@cs.unc.edu .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .\" This file is distributed under the same license as original manpage .\" Copyright of the original manpage: .\" Copyright © 1995 Michael Haardt (GPL-2+) .\" Copyright © of Polish translation: .\" Piotr Pogorzelski (PTM) , 1996. .\" Michał Kułach , 2012, 2013, 2014, 2016. .TH LP 4 15\-01\-1995 Linux "Podręcznik programisty Linuksa" .SH NAZWA lp \- urządzenia drukarek wierszowych .SH SKŁADNIA \fB#include \fP .SH KONFIGURACJA Pliki \fBlp\fP[0\(en2] 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\(en2. 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. .SH OPIS Obsługiwane są następujące wywołania funkcji \fBioctl\fP(2): .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPTIME, int \fP\fIarg\fP\fB)\fP" 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 \fIarg\fP. 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. .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPCHAR, int \fP\fIarg\fP\fB)\fP" Ustawia na \fIargv\fP 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 \(em należy ją zmniejszyć. Domyślną wartością tego parametru jest 1000. Parametr ma wpływ na sterownik jedynie w trybie próbkowania. .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPABORT, int \fP\fIarg\fP\fB)\fP" Jeśli parametr \fIarg\fP 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. .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPABORTOPEN, int \fP\fIarg\fP\fB)\fP" Jeśli \fIarg\fP jest równy 0, funkcja \fBopen\fP(2) zostanie przerwana po wystąpieniu błędu; w przeciwnym wypadku błąd zostanie zignorowany. Standardowe zachowanie polega na ignorowaniu błędów. .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPCAREFUL, int \fP\fIarg\fP\fB)\fP" Jeśli \fIarg\fP 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. .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPWAIT, int \fP\fIarg\fP\fB)\fP" Ustawia na \fIarg\fP 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ń. .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPSETIRQ, int \fP\fIarg\fP\fB)\fP" To wywołanie funkcji \fBioctl\fP(2) wymaga uprawnień administratora. Funkcja pobiera argument typu \fIint\fP zawierający nowe przerwanie IRQ. Skutkiem ubocznym jest inicjacja drukarki. Gdy \fIarg\fP jest zerem, to stosowany będzie sterownik z próbkowaniem; jest to równocześnie zachowanie domyślne. .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPGETIRQ, int *\fP\fIarg\fP\fB)\fP" Zachowuje w parametrze \fIarg\fP aktualnie stosowane przerwanie IRQ. .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPGETSTATUS, int *\fP\fIarg\fP\fB)\fP" Zachowuje wartość stanu portu w zmiennej \fIarg\fP. Poszczególne bity mają następujące znaczenie: .TS l l. 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 .TE .sp 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. .IP "\fBint ioctl(int \fP\fIfd\fP\fB, LPRESET)\fP" Inicjuje drukarkę. Nie stosuje się żadnych parametrów. .SH PLIKI .\" .SH AUTHORS .\" The printer driver was originally written by Jim Weigand and Linus .\" Torvalds. .\" It was further improved by Michael K.\& Johnson. .\" The interrupt code was written by Nigel Gamble. .\" Alan Cox modularized it. .\" LPCAREFUL, LPABORT, LPGETSTATUS were added by Chris Metcalf. /dev/lp* .SH "ZOBACZ TAKŻE" \fBchmod\fP(1), \fBchown\fP(1), \fBmknod\fP(1), \fBlpcntl\fP(8), \fBtunelp\fP(8) .SH "O STRONIE" Angielska wersja tej strony pochodzi z wydania 4.05 projektu Linux \fIman\-pages\fP. 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/. .SH TŁUMACZENIE Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Piotr Pogorzelski (PTM) i Michał Kułach . .PP 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ą \fB 4.05 \fPoryginału.