linux/lp.h
#ifndef _LINUX_LP_H
#define _LINUX_LP_H
#define LP_EXIST 0x0001
#define LP_SELEC 0x0002
#define LP_BUSY 0x0004
#define LP_BUSY_BIT_POS 2
#define LP_OFFL 0x0008
#define LP_NOPA 0x0010
#define LP_ERR 0x0020
#define LP_ABORT 0x0040
#define LP_CAREFUL 0x0080
#define LP_ABORTOPEN 0x0100
#define LP_TRUST_IRQ_ 0x0200
#define LP_NO_REVERSE 0x0400
#define LP_DATA_AVAIL 0x0800
#define LP_PBUSY 0x80
#define LP_PACK 0x40
#define LP_POUTPA 0x20
#define LP_PSELECD 0x10
#define LP_PERRORP 0x08
#define LP_INIT_CHAR 1000
#define LP_INIT_WAIT 1
up when the printer's buffer appears to be filled. If you
* want to tune this and have a fast printer (i.e. HPIIIP), decrease
* this number, and if you have a slow printer, increase this number.
* This is in hundredths of a second, the default 2 being .05 second.
* Or use the tunelp(8) command, which is especially nice if you want
* change back and forth between character and graphics printing, which
* are wildly different...
*/
#define LP_INIT_TIME 2
#define LPCHAR 0x0601
#define LPTIME 0x0602
#define LPABORT 0x0604
FALSE to retry. Default is retry. */
#define LPSETIRQ 0x0605
or 0 for polling (no IRQ) */
#define LPGETIRQ 0x0606
#define LPWAIT 0x0608
#define LPCAREFUL 0x0609
line, and error indicators good on all writes,
FALSE to ignore them. Default is ignore. */
#define LPABORTOPEN 0x060a
FALSE to ignore error. Default is ignore. */
#define LPGETSTATUS 0x060b
#define LPRESET 0x060c
#ifdef LP_STATS
#define LPGETSTATS 0x060d
#endif
#define LPGETFLAGS 0x060e
#define LPSETTIMEOUT 0x060f
#define LP_TIMEOUT_INTERRUPT (60 * HZ)
#define LP_TIMEOUT_POLLED (10 * HZ)
#ifdef __KERNEL__
#include
#include
#define LP_PARPORT_UNSPEC -4
#define LP_PARPORT_AUTO -3
#define LP_PARPORT_OFF -2
#define LP_PARPORT_NONE -1
#define LP_F(minor) lp_table[(minor)].flags
#define LP_CHAR(minor) lp_table[(minor)].chars
#define LP_TIME(minor) lp_table[(minor)].time
#define LP_WAIT(minor) lp_table[(minor)].wait
#define LP_IRQ(minor) lp_table[(minor)].dev->port->irq
#ifdef LP_STATS
#define LP_STAT(minor) lp_table[(minor)].stats
#endif
#define LP_BUFFER_SIZE PAGE_SIZE
#define LP_BASE(x) lp_table[(x)].dev->port->base
#ifdef LP_STATS
struct lp_stats {
unsigned long chars;
unsigned long sleeps;
unsigned int maxrun;
unsigned int maxwait;
unsigned int meanwait;
unsigned int mdev;
};
#endif
struct lp_struct {
struct pardevice *dev;
unsigned long flags;
unsigned int chars;
unsigned int time;
unsigned int wait;
char *lp_buffer;
#ifdef LP_STATS
unsigned int lastcall;
unsigned int runchars;
struct lp_stats stats;
#endif
wait_queue_head_t waitq;
unsigned int last_error;
struct semaphore port_mutex;
wait_queue_head_t dataq;
long timeout;
unsigned int best_mode;
unsigned int current_mode;
unsigned long bits;
};
#define LP_PINTEN 0x10
#define LP_PSELECP 0x08
#define LP_PINITP 0x04
#define LP_PAUTOLF 0x02
#define LP_PSTROBE 0x01
#define LP_DUMMY 0x00
#define LP_DELAY 50
#endif
#endif
|
|