LP(4) |
Linux Programmer's Manual |
LP(4) |
名前
lp -ラインプリンターデバイス
書式
#include <linux/lp.h>
設定
lp[0–2] はパラレルプリンターのためのキャラクタデバイスでメジャーナンバー 6 マイナーナンバー 0–2 を持つ。マイナーナンバーは、ベースアドレス 0x03bc, 0x0378, 0x0278 のそれぞれのプリンターポートに対応する通常、このデバイスファイルはモード 220 オーナー root グループ lp となっている。プリンターポートはポーリング(polling)または割り込み (interrupts) のどちらを用いても利用できる。割り込みの利用は、高負荷が予想される時、例えばレーザープリンターをプリンタポートに接続する場合などに推奨される。普通のドットマトリクスプリンターでは、ポーリングの利用で通常は十分である。デフォルトではポーリングを利用する。
説明
次の
ioctl(2) コールがサポートされている。
-
int ioctl(int
fd
, LPTIME, int
arg
)
-
プリンターのバッファ( buffer ) がいっぱいになった時、ドライバがプリンターを再チェックするまでに休止する時間を
arg とする。高速なプリンターの時はこれを減らし、遅いプリンターの時には増やす。単位は1秒の100分の1 で、デフォルトの2は0.02秒にあたる。ポーリングドライバ( polling driver )のみに影響する。
-
int ioctl(int
fd
, LPCHAR, int
arg
)
-
ポーリングドライバがプリンターの文字受取り準備ができるのを待つビジーウエイト(busy-wait)の回数の最大値を
argとする。もし印刷が遅すぎる時はこれを増やし、システムが遅くなりすぎる時には減らす。デフォルトは 1000 である。ポーリングドライバのみに影響する。
-
int ioctl(int
fd
, LPABORT, int
arg
)
-
もし、
arg が 0 なら、プリンタードライバはエラーについて再試行を行う。それ以外の場合は中止する。デフォルトは 0 である。
-
int ioctl(int
fd
, LPABORTOPEN, int
arg
)
-
もし、
arg が 0 なら
open(2) の結果がエラーの場合、動作が中止される。それ以外ならエラーは無視される。デフォルトではエラーは無視される。
-
int ioctl(int
fd
, LPCAREFUL, int
arg
)
-
argが0のときには、すべての書き出しの時に、紙切れ、オフライン、エラーのシグナルが偽(false)であることが必要とされるが、0 以外ならこれらのシグナルは無視される。デフォルトでもこれらのシグナルは無視される。
-
int ioctl(int
fd
, LPWAIT, int
arg
)
-
プリンターが送られた文字を受け取るのを待つため、ドライバが文字を送ってからストローブ(strobe)するまでの待ちの繰り返しの回数と、ストローブを再びオフにするまでの待ちの繰り返しの回数を
argに設定する。仕様によればこの時間は 0.5 マイクロ秒とするべきだが、経験によればこのコードによって生じる遅れで十分である。そのため、デフォルトでは 0 である。これは、ポーリングと割り込みドライバの両方で使われる。
-
int ioctl(int
fd
, LPSETIRQ, int
arg
)
-
この
ioctl(2) を使うには、スーパーユーザの権限が必要である。新しいIRQを示す
int を引数としてとる。また、副作用としてプリンターはリセットされる。
argが0の時またはデフォルトの動作では、ポーリングドライバーが使われる。
-
int ioctl(int
fd
, LPGETIRQ, int *
arg
)
-
現在使われているIRQを
argにいれる。
-
int ioctl(int
fd
, LPGETSTATUS, int *
arg
)
-
ステータスポートの値を
argに収める。各ビットには次のような意味がある:
LP_PBUSY |
ビジー信号の反転、ハイがアクティブ |
LP_PACK |
アクノリッジ信号、ローがアクティブ |
LP_POUTPA |
紙切れ信号、ハイがアクティブ |
LP_PSELECD |
選択信号、ハイがアクティブ |
LP_PERRORP |
エラー信号、ローがアクティブ |
信号の意味については各自のプリンターのマニュアルを参照のこと。プリンターによっては記載のないビットもセットされるかもしれないので、注意のこと。
-
int ioctl(int
fd
, LPRESET)
-
プリンターをリセットする。引数はとらない。
ファイル
/dev/lp*
関連項目
chmod(1),
chown(1),
mknod(1),
lpcntl(8),
tunelp(8)
この文書について
この man ページは Linux
man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。