+struct usbcan_usb;
+
+#define USBCAN_TOT_RX_URBS 8
+#define USBCAN_TOT_TX_URBS 8
+
+#define USBCAN_TRANSFER_SIZE 16
+
+struct usbcan_message {
+ struct urb *u;
+ struct usbcan_usb *dev;
+ u8 msg[USBCAN_TRANSFER_SIZE];
+ spinlock_t acc; /* access lock */
+ struct canque_edge_t *qedge;
+ struct canque_slot_t *slot;
+ volatile long flags;
+};
+
+#define USBCAN_MESSAGE_FREE (1)
+#define USBCAN_MESSAGE_URB_PENDING (2)
+#define USBCAN_MESSAGE_TERMINATE (3)
+#define USBCAN_MESSAGE_ERROR (4)
+#define USBCAN_MESSAGE_DATA_OK (5)
+#define USBCAN_MESSAGE_TYPE_RX (6)
+#define USBCAN_MESSAGE_TYPE_TX (7)
+