#ifndef __KERNEL__ # define __KERNEL__ #endif #define MODULE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define BaseAddr 0x300 #define PortA (unsigned short)BaseAddr+0 #define PortB (unsigned short)BaseAddr+1 #define PortC (unsigned short)BaseAddr+2 #define i8255ctl (unsigned short)BaseAddr+3 #define TR_ENB PortC #define SEIZED PortB // lower nibble #define SUP PortB // upper nibble #define TR_CONT PortA #define SetUp (unsigned char)0x90 // A in, B out, C out #define LOW (unsigned char)0x00 #define HIGH (unsigned char)0xFF #ifndef SEIZE_MAJOR #define SEIZE_MAJOR 0 #endif #ifndef SEIZE_IQ #define SEIZE_IRQ 7 #endif #ifndef SAFE_IRQ #define SAFE_IRQ #endif #ifndef SEIZE_QUANTUM #define SEIZE_QUANTUM 1 #endif #ifndef SEIZE_QSET #define SEIZE_QSET 1 #endif extern struct file_operations seize_fops; /* function prototypes */ int seize_open (struct inode *inode, struct file *filp); int seize_release (struct inode *inode, struct file *filp); int seize_ioctl (struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg); /* ioctl defs */ #define SEIZE_IOC_MAGIC 'Z' #define SEIZE_SET_CACHE _IO(SEIZE_IOC_MAGIC, 1) #define SEIZE_IOC_MAXNR 2