lp

Autres langues

Langue: ja

Version: 1995-01-15 (openSuse - 09/10/07)

Autres sections - même nom

Section: 4 (Pilotes et protocoles réseau)

̾Á°

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¤ò¤· ¤á¤¹À°¿ô¤ò°ú¿ô¤È¤·¤Æ¤È¤ë¡£¤Þ¤¿¡¢ÉûºîÍѤȤ·¤Æ¥×¥ê¥ó¥¿¡¼¤Ï¥ê¥»¥Ã¥È¤µ¤ì¤ë¡£ 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 ¤Ë¤è¤Ã¤Æ²Ã¤¨¤é¤ì¤¿¡£

´ØÏ¢¹àÌÜ

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

ËÝÌõ¼Ô

ÀÐÀî ËÓ <ishikawa@linux.or.jp>, ¹â¶¶ ËÓ»Ê <muz@ilp.iijnet.or.jp>

ËÝÌõ¼ÔÃí

¥«¡¼¥Í¥ë 2.1.x ¤Ç¤Ï¥Ñ¥é¥ì¥ë¥Ý¡¼¥È¤Þ¤ï¤ê¤¬ÂçÉý¤Ë½ñ¤­Ä¾ ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£½¾¤Ã¤Æ¡¢¥«¡¼¥Í¥ë 2.1.x ¤Î¥Ñ¥é¥ì¥ë¥Ý¡¼¥È¥É¥é¥¤¥Ð¤Ë¤Ï¡¢¤³ ¤Î¥Þ¥Ë¥å¥¢¥ë¤ÎÆâÍƤϤ½¤Î¤Þ¤ÞŬÍѤǤ­¤Þ¤»¤ó¡£