4:lp

From Linux Man Pages

Jump to: navigation, search
      lp - line printer devices
      
      #include <linux/lp.h>

Contents

CONFIGURATION

      lp[0-2] are character devices for the parallel line printers; they have major number 6 and minor number 0-2.  The
      minor numbers correspond to the printer port base addresses 0x03bc, 0x0378 and 0x0278.  Usually  they  have  mode
      220  and  are  owned  by  root  and  group lp.  You can use printer ports either with polling or with interrupts.
      Interrupts are recommended when high traffic is expected, e.g. for laser printers.  For usual dot matrix printers
      polling will usually be enough.  The default is polling.

DESCRIPTION

      The following ioctl(2) calls are supported:
 
      int ioctl(int fd, LPTIME, int arg)
             Sets  the  amount  of  time that the driver sleeps before rechecking the printer when the printer's buffer
             appears to be filled to arg.  If you have a fast printer, decrease this number; if you have a slow printer
             then  increase  it.   This is in hundredths of a second, the default 2 being 0.02 seconds.  It only influ-
             ences the polling driver.
 
      int ioctl(int fd, LPCHAR, int arg)
             Sets the maximum number of busy-wait iterations which the  polling  driver  does  while  waiting  for  the
             printer  to get ready for receiving a character to arg.  If printing is too slow, increase this number; if
             the system gets too slow, decrease this number.  The default is 1000.   It  only  influences  the  polling
             driver.
 
      int ioctl(int fd, LPABORT, int arg)
             If arg is 0, the printer driver will retry on errors, otherwise it will abort.  The default is 0.
 
      int ioctl(int fd, LPABORTOPEN, int arg)
             If  arg is 0, open(2) will be aborted on error, otherwise error will be ignored.  The default is to ignore
             it.
 
      int ioctl(int fd, LPCAREFUL, int arg)
             If arg is 0, then the out-of-paper, offline and error signals are required to be false on all writes, oth-
             erwise they are ignored.  The default is to ignore them.
 
      int ioctl(int fd, LPWAIT, int arg)
             Sets  the  number  of busy waiting iterations to wait before strobing the printer to accept a just-written
             character, and the number of iterations to wait before turning the strobe off again, to arg.  The specifi-
             cation says this time should be 0.5 microseconds, but experience has shown the delay caused by the code is
             already enough.  For that reason, the default value is 0.  This is used  for  both  the  polling  and  the
             interrupt driver.
 
      int ioctl(int fd, LPSETIRQ, int arg)
             This  ioctl()  requires  superuser  privileges.  It takes an int containing the new IRQ as argument.  As a
             side effect, the printer will be reset.  When arg is 0, the polling driver will be  used,  which  is  also
             default.
 
      int ioctl(int fd, LPGETIRQ, int *arg)
             Stores the currently used IRQ in arg.
 
      int ioctl(int fd, LPGETSTATUS, int *arg)
             Stores the value of the status port in arg.  The bits have the following meaning:
 
             l  l.   LP_PBUSY  inverted  busy  input,  active  high  LP_PACK   unchanged  acknowledge input, active low
             LP_POUTPA unchanged out-of-paper input, active high LP_PSELECD     unchanged selected input,  active  high
             LP_PERRORP     unchanged error input, active low
 
             Refer to your printer manual for the meaning of the signals.  Note that undocumented bits may also be set,
             depending on your printer.
 
      int ioctl(int fd, LPRESET)
             Resets the printer.  No argument is used.

FILES

      /dev/lp*

RELATED

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

CATEGORY

Personal tools