aboutsummaryrefslogtreecommitdiff
path: root/drivers/staging/cpc-usb/cpc_int.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-06-19 17:48:32 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2009-06-19 17:48:32 -0700
commitfb20871a54961b82d35303b43452928186c1361d (patch)
tree1beeb39e45eda1c8b5893090904b583fceeb07ef /drivers/staging/cpc-usb/cpc_int.h
parentbee89ab228e6f51c4ddd3481b9bd491859a8ee7b (diff)
parentc7a5d70796379e3d51d0c652fbe1634b81d3bbd5 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (342 commits) Staging: comedi: fix build errors Staging: udlfb: update to version 0.2.3 Staging: udlfb: fix some sparse warnings. Staging: udlfb: clean up checkpatch warnings in udlfb.c Staging: udlfb: clean up checkpatch warnings in udlfb.h Staging: udlfb: add udlfb driver to build Staging: add udlfb driver Staging: pata_rdc: remove pointless comments Staging: pata_rdc: remove DRIVER macros Staging: pata_rdc: remove dbgprintf macro Staging: pata_rdc: remove broken flag Staging: pata_rdc: fix build warnings Staging: pata_rdc: use PCI_DEVICE Staging: pata_rdc: remove function prototypes Staging: pata_rdc: coding style fixes Staging: pata_rdc: convert code to work in 2.6.29 Staging: pata_rdc: add driver to the build system Staging: add pata_rdc driver Staging: remove obsolete serqt_usb driver Staging: serqt_usb2 add the driver to the build ...
Diffstat (limited to 'drivers/staging/cpc-usb/cpc_int.h')
-rw-r--r--drivers/staging/cpc-usb/cpc_int.h83
1 files changed, 83 insertions, 0 deletions
diff --git a/drivers/staging/cpc-usb/cpc_int.h b/drivers/staging/cpc-usb/cpc_int.h
new file mode 100644
index 00000000000..a0d60c08081
--- /dev/null
+++ b/drivers/staging/cpc-usb/cpc_int.h
@@ -0,0 +1,83 @@
+/*
+ * CPCLIB
+ *
+ * Copyright (C) 2000-2008 EMS Dr. Thomas Wuensche
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+#ifndef CPC_INT_H
+#define CPC_INT_H
+
+#include <linux/wait.h>
+
+#define CPC_MSG_BUF_CNT 1500
+
+#define CPC_PROC_DIR "driver/"
+
+#undef dbg
+#undef err
+#undef info
+
+/* Use our own dbg macro */
+#define dbg(format, arg...) do { if (debug) printk( KERN_INFO format "\n" , ## arg); } while (0)
+#define err(format, arg...) do { printk( KERN_INFO "ERROR " format "\n" , ## arg); } while (0)
+#define info(format, arg...) do { printk( KERN_INFO format "\n" , ## arg); } while (0)
+
+/* Macros help using of our buffers */
+#define IsBufferFull(x) (!(x)->WnR) && ((x)->iidx == (x)->oidx)
+#define IsBufferEmpty(x) ((x)->WnR) && ((x)->iidx == (x)->oidx)
+#define IsBufferNotEmpty(x) (!(x)->WnR) || ((x)->iidx != (x)->oidx)
+#define ResetBuffer(x) do { (x)->oidx = (x)->iidx=0; (x)->WnR = 1; } while(0);
+
+#define CPC_BufWriteAllowed ((chan->oidx != chan->iidx) || chan->WnR)
+
+typedef void (*chan_write_byte_t) (void *chan, unsigned int reg,
+ unsigned char val);
+typedef unsigned char (*chan_read_byte_t) (void *chan, unsigned int reg);
+
+typedef struct CPC_CHAN {
+ void __iomem * canBase; // base address of SJA1000
+ chan_read_byte_t read_byte; // CAN controller read access routine
+ chan_write_byte_t write_byte; // CAN controller write access routine
+ CPC_MSG_T *buf; // buffer for CPC msg
+ unsigned int iidx;
+ unsigned int oidx;
+ unsigned int WnR;
+ unsigned int minor;
+ unsigned int locked;
+ unsigned int irqDisabled;
+
+ unsigned char cpcCtrlCANMessage;
+ unsigned char cpcCtrlCANState;
+ unsigned char cpcCtrlBUSState;
+
+ unsigned char controllerType;
+
+ unsigned long ovrTimeSec;
+ unsigned long ovrTimeNSec;
+ unsigned long ovrLockedBuffer;
+ CPC_OVERRUN_T ovr;
+
+ /* for debugging only */
+ unsigned int handledIrqs;
+ unsigned int lostMessages;
+
+ unsigned int sentStdCan;
+ unsigned int sentExtCan;
+ unsigned int sentStdRtr;
+ unsigned int sentExtRtr;
+
+ unsigned int recvStdCan;
+ unsigned int recvExtCan;
+ unsigned int recvStdRtr;
+ unsigned int recvExtRtr;
+
+ wait_queue_head_t *CPCWait_q;
+
+ void *private;
+} CPC_CHAN_T;
+
+#endif