Logo Search packages:      
Sourcecode: linux version File versions  Download package

xdi_adapter.h

/* $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

Generated by  Doxygen 1.6.0   Back to index