Linux Audio
Check our new training course
Embedded Linux Audio
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
/* SPDX-License-Identifier: GPL-2.0 */ /* $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