71 lines
		
	
	
	
		
			2 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			71 lines
		
	
	
	
		
			2 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
							 |