Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* $Id: xdi_adapter.h,v 1.7 2004/03/21 17:26:01 armin Exp $ */ |
| 2 | |
| 3 | #ifndef __DIVA_OS_XDI_ADAPTER_H__ |
| 4 | #define __DIVA_OS_XDI_ADAPTER_H__ |
| 5 | |
| 6 | #define DIVAS_XDI_ADAPTER_BUS_PCI 0 |
| 7 | #define DIVAS_XDI_ADAPTER_BUS_ISA 1 |
| 8 | |
| 9 | typedef struct _divas_pci_card_resources { |
| 10 | byte bus; |
| 11 | byte func; |
| 12 | void *hdev; |
| 13 | |
| 14 | dword bar[8]; /* contains context of appropriate BAR Register */ |
| 15 | void __iomem *addr[8]; /* same bar, but mapped into memory */ |
| 16 | dword length[8]; /* bar length */ |
| 17 | int mem_type_id[MAX_MEM_TYPE]; |
| 18 | unsigned int qoffset; |
| 19 | byte irq; |
| 20 | } divas_pci_card_resources_t; |
| 21 | |
| 22 | typedef union _divas_card_resources { |
| 23 | divas_pci_card_resources_t pci; |
| 24 | } divas_card_resources_t; |
| 25 | |
| 26 | struct _diva_os_xdi_adapter; |
| 27 | typedef int (*diva_init_card_proc_t) (struct _diva_os_xdi_adapter * a); |
| 28 | typedef int (*diva_cmd_card_proc_t) (struct _diva_os_xdi_adapter * a, |
| 29 | diva_xdi_um_cfg_cmd_t * data, |
| 30 | int length); |
| 31 | typedef void (*diva_xdi_clear_interrupts_proc_t) (struct |
| 32 | _diva_os_xdi_adapter *); |
| 33 | |
| 34 | #define DIVA_XDI_MBOX_BUSY 1 |
| 35 | #define DIVA_XDI_MBOX_WAIT_XLOG 2 |
| 36 | |
| 37 | typedef struct _xdi_mbox_t { |
| 38 | dword status; |
| 39 | diva_xdi_um_cfg_cmd_data_t cmd_data; |
| 40 | dword data_length; |
| 41 | void *data; |
| 42 | } xdi_mbox_t; |
| 43 | |
| 44 | typedef struct _diva_os_idi_adapter_interface { |
| 45 | diva_init_card_proc_t cleanup_adapter_proc; |
| 46 | diva_cmd_card_proc_t cmd_proc; |
| 47 | } diva_os_idi_adapter_interface_t; |
| 48 | |
| 49 | typedef struct _diva_os_xdi_adapter { |
| 50 | struct list_head link; |
| 51 | int CardIndex; |
| 52 | int CardOrdinal; |
| 53 | int controller; /* number of this controller */ |
| 54 | int Bus; /* PCI, ISA, ... */ |
| 55 | divas_card_resources_t resources; |
| 56 | char port_name[24]; |
| 57 | ISDN_ADAPTER xdi_adapter; |
| 58 | xdi_mbox_t xdi_mbox; |
| 59 | diva_os_idi_adapter_interface_t interface; |
| 60 | struct _diva_os_xdi_adapter *slave_adapters[3]; |
| 61 | void *slave_list; |
| 62 | void *proc_adapter_dir; /* adapterX proc entry */ |
| 63 | void *proc_info; /* info proc entry */ |
| 64 | void *proc_grp_opt; /* group_optimization */ |
| 65 | void *proc_d_l1_down; /* dynamic_l1_down */ |
| 66 | volatile diva_xdi_clear_interrupts_proc_t clear_interrupts_proc; |
| 67 | dword dsp_mask; |
| 68 | } diva_os_xdi_adapter_t; |
| 69 | |
| 70 | #endif |