Blame view

kernel/linux-rt-4.4.41/drivers/isdn/hardware/eicon/xdi_adapter.h 1.97 KB
5113f6f70   김현기   kernel add
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
  /* $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