Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / drivers / isdn / hardware / eicon / di.h
diff --git a/kernel/drivers/isdn/hardware/eicon/di.h b/kernel/drivers/isdn/hardware/eicon/di.h
new file mode 100644 (file)
index 0000000..ff26c65
--- /dev/null
@@ -0,0 +1,118 @@
+
+/*
+ *
+ Copyright (c) Eicon Networks, 2002.
+ *
+ This source file is supplied for the use with
+ Eicon Networks range of DIVA Server Adapters.
+ *
+ Eicon File Revision :    2.1
+ *
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+ *
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
+ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
+ *
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+/*
+ *  some macros for detailed trace management
+ */
+#include "di_dbg.h"
+/*****************************************************************************/
+#define XMOREC 0x1f
+#define XMOREF 0x20
+#define XBUSY  0x40
+#define RMORE  0x80
+#define DIVA_MISC_FLAGS_REMOVE_PENDING    0x01
+#define DIVA_MISC_FLAGS_NO_RC_CANCELLING  0x02
+#define DIVA_MISC_FLAGS_RX_DMA            0x04
+/* structure for all information we have to keep on a per   */
+/* adapater basis                                           */
+typedef struct adapter_s ADAPTER;
+struct adapter_s {
+       void *io;
+       byte IdTable[256];
+       byte IdTypeTable[256];
+       byte FlowControlIdTable[256];
+       byte FlowControlSkipTable[256];
+       byte ReadyInt;
+       byte RcExtensionSupported;
+       byte misc_flags_table[256];
+       dword protocol_capabilities;
+       byte (*ram_in)(ADAPTER *a, void *adr);
+       word (*ram_inw)(ADAPTER *a, void *adr);
+       void (*ram_in_buffer)(ADAPTER *a, void *adr, void *P, word length);
+       void (*ram_look_ahead)(ADAPTER *a, PBUFFER *RBuffer, ENTITY *e);
+       void (*ram_out)(ADAPTER *a, void *adr, byte data);
+       void (*ram_outw)(ADAPTER *a, void *adr, word data);
+       void (*ram_out_buffer)(ADAPTER *a, void *adr, void *P, word length);
+       void (*ram_inc)(ADAPTER *a, void *adr);
+#if defined(DIVA_ISTREAM)
+       dword rx_stream[256];
+       dword tx_stream[256];
+       word tx_pos[256];
+       word rx_pos[256];
+       byte stream_buffer[2512];
+       dword (*ram_offset)(ADAPTER *a);
+       void (*ram_out_dw)(ADAPTER *a,
+                          void *addr,
+                          const dword *data,
+                          int dwords);
+       void (*ram_in_dw)(ADAPTER *a,
+                         void *addr,
+                         dword *data,
+                         int dwords);
+       void (*istream_wakeup)(ADAPTER *a);
+#else
+       byte stream_buffer[4];
+#endif
+};
+/*------------------------------------------------------------------*/
+/* public functions of IDI common code                              */
+/*------------------------------------------------------------------*/
+void pr_out(ADAPTER *a);
+byte pr_dpc(ADAPTER *a);
+byte scom_test_int(ADAPTER *a);
+void scom_clear_int(ADAPTER *a);
+/*------------------------------------------------------------------*/
+/* OS specific functions used by IDI common code                    */
+/*------------------------------------------------------------------*/
+void free_entity(ADAPTER *a, byte e_no);
+void assign_queue(ADAPTER *a, byte e_no, word ref);
+byte get_assign(ADAPTER *a, word ref);
+void req_queue(ADAPTER *a, byte e_no);
+byte look_req(ADAPTER *a);
+void next_req(ADAPTER *a);
+ENTITY *entity_ptr(ADAPTER *a, byte e_no);
+#if defined(DIVA_ISTREAM)
+struct _diva_xdi_stream_interface;
+void diva_xdi_provide_istream_info(ADAPTER *a,
+                                  struct _diva_xdi_stream_interface *pI);
+void pr_stream(ADAPTER *a);
+int diva_istream_write(void *context,
+                      int Id,
+                      void *data,
+                      int length,
+                      int final,
+                      byte usr1,
+                      byte usr2);
+int diva_istream_read(void *context,
+                     int Id,
+                     void *data,
+                     int max_length,
+                     int *final,
+                     byte *usr1,
+                     byte *usr2);
+#if defined(DIVA_IDI_RX_DMA)
+#include "diva_dma.h"
+#endif
+#endif