|
|
LP
Section: Special files (4) Updated: January 15, 1995 Index
Return to Main Contents
̾Á°
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()¤ò»È¤¦¤Ë¤Ï¡¢¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Î¸¢¸Â¤¬É¬ÍפǤ¢¤ë¡£¿·¤·¤¤IRQ¤ò¤·
¤á¤¹À°¿ô¤ò°ú¿ô¤È¤·¤Æ¤È¤ë¡£¤Þ¤¿¡¢ÉûºîÍѤȤ·¤Æ¥×¥ê¥ó¥¿¡¼¤Ï¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£
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*
Ãø¼Ô
¥×¥ê¥ó¥¿¡¼¥É¥é¥¤¥Ð¤Ï½é¤á¤Ï Jim Weigand ¤È Linus Torvalds ¤Ë¤è¤Ã¤Æ½ñ
¤«¤ì¡¢¤µ¤é¤Ë Michael K. Johnson ¤Ë¤è¤Ã¤Æ²þÎɤµ¤ì¤¿¡£³ä¤ê¹þ¤ß¤Î¥³¡¼¥É
¤Ï Nigel Gamble ¤Ë¤è¤Ã¤Æ½ñ¤«¤ì¤¿¡£¤Þ¤¿¡¢Alan Cox ¤Ï¥É¥é¥¤¥Ð¤ò¥â¥¸¥å¡¼
¥ë²½¤·¤¿¡£
LPCAREFUL, LPABORT, LPGETSTATUS ¤Ï Chris Metcalf ¤Ë¤è¤Ã¤Æ²Ã¤¨¤é¤ì¤¿¡£
´ØÏ¢¹àÌÜ
mknod(1), chown(1), chmod(1), tunelp(8), lpcntl(8)
ËÝÌõ¼Ô
ÀÐÀî ËÓ <ishikawa@linux.or.jp>
¹â¶¶ ËÓ»Ê <muz@ilp.iijnet.or.jp>
ËÝÌõ¼ÔÃí
¥«¡¼¥Í¥ë 2.1.x ¤Ç¤Ï¥Ñ¥é¥ì¥ë¥Ý¡¼¥È¤Þ¤ï¤ê¤¬ÂçÉý¤Ë½ñ¤Ä¾
¤µ¤ì¤Æ¤¤¤Þ¤¹¡£½¾¤Ã¤Æ¡¢¥«¡¼¥Í¥ë 2.1.x ¤Î¥Ñ¥é¥ì¥ë¥Ý¡¼¥È¥É¥é¥¤¥Ð¤Ë¤Ï¡¢¤³
¤Î¥Þ¥Ë¥å¥¢¥ë¤ÎÆâÍÆ¤Ï¤½¤Î¤Þ¤ÞŬÍѤǤ¤Þ¤»¤ó¡£
Index
- ̾Á°
-
- ½ñ¼°
-
- ÀßÄê
-
- ÀâÌÀ
-
- ¥Õ¥¡¥¤¥ë
-
- Ãø¼Ô
-
- ´ØÏ¢¹àÌÜ
-
- ËÝÌõ¼Ô
-
- ËÝÌõ¼ÔÃí
-
|