Manpages

名 前

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に 収 め る 。 各 ビ ッ ト に は 次 の よ う な 意 味 が あ る :

信 号 の 意 味 に つ い て は 各 自 の プ リ ン タ ー の マ ニ ュ ア ル を 参 照 の こ と 。 プ リ ン タ ー に よ っ て は 記 載 の な い ビ ッ ト も セ ッ ト さ れ る か も し れ な い の で 、 注 意 の こ と 。

int ioctl(int fd, LPRESET) プ リ ン タ ー を リ セ ッ ト す る 。 引 数 は と ら な い 。

フ ァ イ ル

/dev/lp*

関 連 項 目

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

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。