me8100.h
changeset 3 fc24e3b47731
parent 0 c9b8efdb5369
child 4 a90b94337569
--- a/me8100.h	Wed Jan 16 14:02:54 2002 +0100
+++ b/me8100.h	Wed Jan 16 15:54:58 2002 +0100
@@ -47,11 +47,12 @@
 
 /* Please define this to enable debug mode */
 #undef ME8100_DEBUG
+#define ME8100_DEBUG
 
 #undef PDEBUG // only to be sure
 
 #ifdef ME8100_DEBUG
-# define PDEBUG(fmt, args...) printk(KERN_DEBUG"ME8100:" fmt, ##args)
+# define PDEBUG(fmt, args...) printk(KERN_DEBUG"ME8100: %d " fmt, current->pid, ##args)
 #else 
 # define PDEBUG(fmt, args...) // no debugging, do nothing
 #endif
@@ -101,10 +102,38 @@
 // Bit 6   INTB 0      ISA has here INTB 1
 // Bit 7   ENIO        1 = Enable  0 = high resistance
 // Bit 8-15 dont care
+// +---------------------------------------+
+// | 15 | 14 | 13 | 12 | 11 | 10 |  9 |  8 |
+// +---------------------------------------+
+// |    |    |    |    |    |    |    |    |
+// +---------------------------------------+
+//
+// +---------------------------------------+
+// |  7 |  6 |  5 |  4 |  3 |  2 |  1 |  0 |
+// +---------------------------------------+
+// |ENIO|INTB|INTB|SRC/|    |    |    |    |
+// |    |   0|   1|SINK|    |    |    |    |
+// +---------------------------------------+
+//   |     |    |   `-- 0  SINK
+//   |     |    |       1  SOURCE
+//   |     `----`------ 00 INT off
+//   |                  01 INT on pattern
+//   |                  10 INT on masked change
+//   |                  11 INT off
+//   `----------------- 0  IO enable
+//                      1  IO disable (high resistance)
 /*********************************************************/
 /* The ME8100_ID_REG_X contains on PCI boards static 81h */
 /*********************************************************/
 
+/* Some definitions to be written to the CTRL register */
+#define ME8100_CTL_ENIO		0x80
+#define ME8100_CTL_SOURCE	0x10
+#define ME8100_CTL_SINK		0x00
+
+#define ME8100_CTL_IRQ_PATTERN	0x40
+#define ME8100_CTL_IRQ_MASK	0x60
+
 /* ME8100 Register Set A */
 #define ME8100_ID_REG_A			0x00      //(r, )
 #define ME8100_CTRL_REG_A		0x00      //( ,w)
@@ -114,6 +143,7 @@
 #define ME8100_PATTERN_REG_A		0x08      //( ,w)
 #define ME8100_MASK_REG_A		0x0A      //( ,w)
 #define ME8100_INT_DI_REG_A		0x0A      //(r, )
+
 									
 /* ME8100 Register Set B */		
 #define ME8100_ID_REG_B			0x0C      //(r, )
@@ -155,6 +185,7 @@
   int int2;
 } me8100_int_occur_type;
 
+#ifdef __KERNEL__
 
 typedef struct{
   int board_count;                  /* index of the board after detection    */
@@ -178,8 +209,10 @@
   int board_in_use;                 /* Indicates if board is already in use  */
   spinlock_t use_lock;              /* Guards board in use                   */
   struct file *file_ptr;            /* Pointer to file structure of path     */
+  struct fasync_struct *fasync_ptr; /* .hs */
 } me8100_info_type;
 
+#endif	/* __KERNEL__ */
 
 /* ME8100 IOCTL's */
 #define ME8100_IOCTL_MAXNR 29
@@ -217,3 +250,4 @@
 #define ME8100_READ_ICSR        _IOR(ME8100_MAGIC, 27, unsigned char)
 #define ME8100_GET_BOARD_INFO   _IOR(ME8100_MAGIC, 28, me8100_info_type)
 #define ME8100_GET_INT_COUNT    _IOR(ME8100_MAGIC, 29, me8100_int_occur_type)
+