summaryrefslogtreecommitdiff
path: root/drivers/isdn/hardware/eicon/xdi_adapter.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/isdn/hardware/eicon/xdi_adapter.h')
-rw-r--r--drivers/isdn/hardware/eicon/xdi_adapter.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/drivers/isdn/hardware/eicon/xdi_adapter.h b/drivers/isdn/hardware/eicon/xdi_adapter.h
new file mode 100644
index 00000000..d303e65d
--- /dev/null
+++ b/drivers/isdn/hardware/eicon/xdi_adapter.h
@@ -0,0 +1,70 @@
+/* $Id: xdi_adapter.h,v 1.7 2004/03/21 17:26:01 armin Exp $ */
+
+#ifndef __DIVA_OS_XDI_ADAPTER_H__
+#define __DIVA_OS_XDI_ADAPTER_H__
+
+#define DIVAS_XDI_ADAPTER_BUS_PCI 0
+#define DIVAS_XDI_ADAPTER_BUS_ISA 1
+
+typedef struct _divas_pci_card_resources {
+ byte bus;
+ byte func;
+ void *hdev;
+
+ dword bar[8]; /* contains context of appropriate BAR Register */
+ void __iomem *addr[8]; /* same bar, but mapped into memory */
+ dword length[8]; /* bar length */
+ int mem_type_id[MAX_MEM_TYPE];
+ unsigned int qoffset;
+ byte irq;
+} divas_pci_card_resources_t;
+
+typedef union _divas_card_resources {
+ divas_pci_card_resources_t pci;
+} divas_card_resources_t;
+
+struct _diva_os_xdi_adapter;
+typedef int (*diva_init_card_proc_t)(struct _diva_os_xdi_adapter *a);
+typedef int (*diva_cmd_card_proc_t)(struct _diva_os_xdi_adapter *a,
+ diva_xdi_um_cfg_cmd_t *data,
+ int length);
+typedef void (*diva_xdi_clear_interrupts_proc_t)(struct
+ _diva_os_xdi_adapter *);
+
+#define DIVA_XDI_MBOX_BUSY 1
+#define DIVA_XDI_MBOX_WAIT_XLOG 2
+
+typedef struct _xdi_mbox_t {
+ dword status;
+ diva_xdi_um_cfg_cmd_data_t cmd_data;
+ dword data_length;
+ void *data;
+} xdi_mbox_t;
+
+typedef struct _diva_os_idi_adapter_interface {
+ diva_init_card_proc_t cleanup_adapter_proc;
+ diva_cmd_card_proc_t cmd_proc;
+} diva_os_idi_adapter_interface_t;
+
+typedef struct _diva_os_xdi_adapter {
+ struct list_head link;
+ int CardIndex;
+ int CardOrdinal;
+ int controller; /* number of this controller */
+ int Bus; /* PCI, ISA, ... */
+ divas_card_resources_t resources;
+ char port_name[24];
+ ISDN_ADAPTER xdi_adapter;
+ xdi_mbox_t xdi_mbox;
+ diva_os_idi_adapter_interface_t interface;
+ struct _diva_os_xdi_adapter *slave_adapters[3];
+ void *slave_list;
+ void *proc_adapter_dir; /* adapterX proc entry */
+ void *proc_info; /* info proc entry */
+ void *proc_grp_opt; /* group_optimization */
+ void *proc_d_l1_down; /* dynamic_l1_down */
+ volatile diva_xdi_clear_interrupts_proc_t clear_interrupts_proc;
+ dword dsp_mask;
+} diva_os_xdi_adapter_t;
+
+#endif