phandler(1)

phandler - generic parallel printer driver

As shipped in IRIX 6.5. First release of IRIX 6.5.

NAME
     phandler - generic parallel printer driver

SYNOPSIS
     phandler -P printername [ options ] [ inputfile ]

            Where [ options ] consist of one or more of:
                     [ -e ]
                     [ -s ]
                     [ -w ]
                     [ -D ]
                     [ -L logfilename ]
                     [ -R ]
                     [ -B buffersize ]
                     [ -I ]
                     [ -u ]
                     [ -S papersize ]
                     [ -d ]
                     [ -K ]

DESCRIPTION
     The phandler driver is a generic driver for printers attached to the
     built-in (/dev/plp*) parallel port. phandler uses libpod(3) functions to
     keep the printer object database (POD) current, provide feedback on any
     engine errors encountered, and to serve as an example program for
     developers.  The source for phandler is part of the Impressario
     Developer's Kit.


     The driver opens and maintains the POD files for the specified printer.
     The file <printername>.config contains the detailed information on the
     printer's capabilities, <printername>.status contains the information on
     operational status of the printer, and <printername>.log contains the
     information on print job history.  For more information on printer
     database files refer to the libpod(3) man page.


     While phandler has the port open, it performs an advisory file lock on
     the parallel port, thereby ensuring that only one phandler accesses the
     printer at a time.


     phandler also creates a child process  to update the POD printer status
     database.  This child is killed automatically upon the parent's death.


USAGE
     phandler assumes that its input is coming from standard input
               (stdin) unless a filename is specified after any and all
               command line options.
     -P printername
               specifies the printer with which phandler is communicating.
               printername is the name under which the System VR3 spooler
               recognizes the printer, as given on the lp(1) command line.
               This option is required.


     -e        specifies that driver should exit immediately on fault.   By
               default, the driver waits indefinitely for faults to clear,
               retrying any errors every several seconds, where the exact
               number of seconds is defined in the POD config database entry
               error_retry_wait.


     -s        specifies that the driver should exit after ascertaining
               printer status and updating the POD status file.  If an error
               is encountered, however, phandler will block unless the -e
               switch is given as well. If a quick status update is what you
               want, invoke phandler with both the -s and the -e options to
               insure that phandler exits promptly.


     -w        Specify this flag to suppress warning messages in the printer
               status file. By default, warning messages such as "low on ink"
               or other non-fatal errors are written to the printer status
               file.


     -D        Turns on debugging information.  Four levels of debugging
               information are supported: none, coarse detail, medium detail,
               and fine detail.  These correspond to 0, 1, 2, and 3 or more -D
               switches given on the command line.  That is, multiple -D
               options given on the command line result in progressively more
               detailed debugging information.


     -L logfilename
               specifies a filename to which error and debug information
               should be appended.  If this option is not specified, error and
               debug information is appended to phandler's standard error
               (stderr), which is generally redirected by the System VR3
               spooler to /var/spool/lp/log.


     -R        specifies that the parallel port should be reset immediately
               after opening it.  This may have detrimental effects on some
               printers, which may go offline for extended periods of time,
               and therefore the -R option should be used with care.

     -B buffersize
               specifies a positive number of bytes to buffer on each read and
               write.  Setting the buffersize to 1 (one) results in single-
               byte reads and writes, which can be very inefficient.  It is
               recommended that if this option is specified, the buffersize be
               an integral multiple of the system block size.


     -I        if specified enables sensing of EOI pin on the parallel port
               (which is normally ignored).


     -u        if specified the parallel port status is ignored.  Only valid
               when -s is specified.


     -S papersize
               if specified the POD database will be updated with the paper
               size.  Valid paper sizes are listed in /usr/include/pod.h.


     -d        if specified, the driver will send a Control-D character at end
               of job.  Some printers use this to determine that the end of
               the input stream has been reached.


     -K        Ignore Interrupts.  If specified, phandler will ignore
               interrupts and will continue to send output to the parallel
               port until end-of-file is encountered on standard input.  If
               phandler receives a job cancellation (SIGTERM) signal it will
               continue to read the input until end of file is reached and
               will discard the input (it will not be sent to the printer).
               This means that if a printer is unable to accept data,
               cancelling the job may not kill the phandler process
               immediately.  To do so, you must explicitly kill the process
               with SIGKILL (9), or reboot the machine.  If a problem is
               detected on the parallel port then phandler will continue to
               run until the problem clears (this prevents subsequent print
               jobs from being sent to the parallel port until the problem is
               cleared).


SEE ALSO
     lp(1), lpadmin(1), libpod(3), libspool(3), printstatus(1), printpanel(1).