summaryrefslogtreecommitdiffstats
path: root/include/linux/lp_m68k.h
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1997-04-29 21:13:14 +0000
committer <ralf@linux-mips.org>1997-04-29 21:13:14 +0000
commit19c9bba94152148523ba0f7ef7cffe3d45656b11 (patch)
tree40b1cb534496a7f1ca0f5c314a523c69f1fee464 /include/linux/lp_m68k.h
parent7206675c40394c78a90e74812bbdbf8cf3cca1be (diff)
Import of Linux/MIPS 2.1.36
Diffstat (limited to 'include/linux/lp_m68k.h')
-rw-r--r--include/linux/lp_m68k.h31
1 files changed, 27 insertions, 4 deletions
diff --git a/include/linux/lp_m68k.h b/include/linux/lp_m68k.h
index 26d078110..6cd60e19d 100644
--- a/include/linux/lp_m68k.h
+++ b/include/linux/lp_m68k.h
@@ -13,8 +13,11 @@
* Interrupt support added 1993 Nigel Gamble
*/
-#include <linux/autoconf.h>
-#include <asm/bootinfo.h>
+/*
+ * many many printers are we going to support? currently, this is the
+ * hardcoded limit
+ */
+#define MAX_LP 5
/*
* Per POSIX guidelines, this module reserves the LP and lp prefixes
@@ -84,6 +87,17 @@
#define LP_BUFFER_SIZE 1024 /*256*/
+enum lp_type {
+LP_UNKNOWN = 0,
+LP_AMIGA = 1,
+LP_ATARI = 2,
+LP_MFC = 3
+};
+
+/*
+ * warning: this structure is in kernel space and has to fit in one page,
+ * i.e. must not be larger than 4k
+ */
struct lp_struct {
char *name;
unsigned int irq;
@@ -92,18 +106,27 @@ struct lp_struct {
int (*lp_has_pout)(int);
int (*lp_is_online)(int);
int (*lp_my_interrupt)(int);
+ int (*lp_ioctl)(int, unsigned int, unsigned long);
+ void (*lp_open)(void); /* for module use counter */
+ void (*lp_release)(void); /* for module use counter */
int flags; /*for BUSY... */
unsigned int chars; /*busy timeout */
unsigned int time; /*wait time */
unsigned int wait;
struct wait_queue *lp_wait_q; /*strobe wait */
+ void *base; /* hardware drivers internal use*/
+ enum lp_type type;
char lp_buffer[LP_BUFFER_SIZE];
int do_print;
unsigned long copy_size,bytes_written;
};
-extern struct lp_struct lp_table[];
+extern struct lp_struct *lp_table[MAX_LP];
+extern unsigned int lp_irq;
-extern int lp_init(void);
+void lp_interrupt(int, void *, struct pt_regs *);
+int lp_init(void);
+int register_parallel(struct lp_struct *, int);
+void unregister_parallel(int);
#endif