summaryrefslogtreecommitdiffstats
path: root/include/linux/lp.h
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1998-06-30 00:21:34 +0000
committerRalf Baechle <ralf@linux-mips.org>1998-06-30 00:21:34 +0000
commit3917ac5846dd0f9ad1238166f90caab9912052e6 (patch)
tree1c298935def4f29edb39192365a65d73de999155 /include/linux/lp.h
parentaf2f803c8b2d469fe38e4a7ce952658dfcb6681a (diff)
o Merge with Linux 2.1.100.
o Cleanup the machine dependencies of floppy and rtc. The driver for the Dallas thingy in the Indy is still missing. o Handle allocation of zero'd pages correct for R4000SC / R4400SC. o Page colouring shit to match the virtual and physical colour of all mapped pages. This tends to produce extreme fragmentation problems, so it's deactivated for now. Users of R4000SC / R4400SC may re-enable the code in arch/mips/mm/init.c by removing the definition of CONF_GIVE_A_SHIT_ABOUT_COLOURS. Should get them somewhat further - but don't shake to hard ... o Fixed ptrace(2)-ing of syscalls, strace is now working again. o Fix the interrupt forwarding from the keyboard driver to the psaux driver, PS/2 mice are now working on the Indy. The fix is somewhat broken as it prevents generic kernels for Indy and machines which handle things different. o Things I can't remember.
Diffstat (limited to 'include/linux/lp.h')
-rw-r--r--include/linux/lp.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/include/linux/lp.h b/include/linux/lp.h
index ba2e34f07..b50c6b434 100644
--- a/include/linux/lp.h
+++ b/include/linux/lp.h
@@ -20,11 +20,14 @@
#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
+#ifdef LP_NEED_CAREFUL
#define LP_CAREFUL 0x0080
+#endif
#define LP_ABORTOPEN 0x0100
/* timeout for each character. This is relative to bus cycles -- it
@@ -67,14 +70,18 @@
or 0 for polling (no IRQ) */
#define LPGETIRQ 0x0606 /* get the current IRQ number */
#define LPWAIT 0x0608 /* corresponds to LP_INIT_WAIT */
+#ifdef LP_NEED_CAREFUL
#define LPCAREFUL 0x0609 /* call with TRUE arg to require out-of-paper, off-
line, and error indicators good on all writes,
FALSE to ignore them. Default is ignore. */
+#endif
#define LPABORTOPEN 0x060a /* call with TRUE arg to abort open() on error,
FALSE to ignore error. Default is ignore. */
#define LPGETSTATUS 0x060b /* return LP_S(minor) */
#define LPRESET 0x060c /* reset printer */
+#ifdef LP_STATS
#define LPGETSTATS 0x060d /* get statistics (struct lp_stats) */
+#endif
#define LPGETFLAGS 0x060e /* get status flags */
/* timeout for printk'ing a timeout, in jiffies (100ths of a second).
@@ -90,11 +97,14 @@
#define LP_WAIT(minor) lp_table[(minor)].wait /* strobe wait */
#define LP_IRQ(minor) lp_table[(minor)].dev->port->irq /* interrupt # */
/* 0 means polled */
+#ifdef LP_STATS
#define LP_STAT(minor) lp_table[(minor)].stats /* statistics area */
+#endif
#define LP_BUFFER_SIZE 256
#define LP_BASE(x) lp_table[(x)].dev->port->base
+#ifdef LP_STATS
struct lp_stats {
unsigned long chars;
unsigned long sleeps;
@@ -103,6 +113,7 @@ struct lp_stats {
unsigned int meanwait;
unsigned int mdev;
};
+#endif
struct lp_struct {
struct pardevice *dev;
@@ -111,10 +122,13 @@ struct lp_struct {
unsigned int time;
unsigned int wait;
char *lp_buffer;
+#ifdef LP_STATS
unsigned int lastcall;
unsigned int runchars;
- unsigned int waittime;
struct lp_stats stats;
+#endif
+ struct wait_queue *wait_q;
+ unsigned int last_error;
};
/*
@@ -160,7 +174,7 @@ struct lp_struct {
*/
#define LP_DELAY 50
-#define LP_POLLING(minor) (lp_table[(minor)].dev->port->irq == PARPORT_IRQ_NONE)
+#define LP_POLLED(minor) (lp_table[(minor)].dev->port->irq == PARPORT_IRQ_NONE)
#define LP_PREEMPTED(minor) (lp_table[(minor)].dev->port->waithead != NULL)
/*