71 строка
2.0 KiB
C
71 строка
2.0 KiB
C
/* $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
|