text: /* $Id: um_xdi.h,v 1.1.2.2 2002/10/02 14:38:38 armin Exp $ */
  
  #ifndef __DIVA_USER_MODE_XDI_H__
  #define __DIVA_USER_MODE_XDI_H__
  
  /*
    Contains declaratiom of structures shared between application
    and user mode idi driver
  */
  
  typedef struct _diva_um_idi_adapter_features {
  	dword type;
  	dword features;
  	dword channels;
  	dword serial_number;
  	char name[128];
  } diva_um_idi_adapter_features_t;
  
  #define DIVA_UM_IDI_REQ_MASK			0x0000FFFF
  #define DIVA_UM_IDI_REQ_TYPE_MASK		(~(DIVA_UM_IDI_REQ_MASK))
  #define DIVA_UM_IDI_GET_FEATURES		1	/* trigger features indication */
  #define DIVA_UM_IDI_REQ				2
  #define DIVA_UM_IDI_REQ_TYPE_MAN		0x10000000
  #define DIVA_UM_IDI_REQ_TYPE_SIG		0x20000000
  #define DIVA_UM_IDI_REQ_TYPE_NET		0x30000000
  #define DIVA_UM_IDI_REQ_MAN			(DIVA_UM_IDI_REQ | DIVA_UM_IDI_REQ_TYPE_MAN)
  #define DIVA_UM_IDI_REQ_SIG			(DIVA_UM_IDI_REQ | DIVA_UM_IDI_REQ_TYPE_SIG)
  #define DIVA_UM_IDI_REQ_NET			(DIVA_UM_IDI_REQ | DIVA_UM_IDI_REQ_TYPE_NET)
  /*
    data_length  bytes will follow this structure
  */
  typedef struct _diva_um_idi_req_hdr {
  	dword type;
  	dword Req;
  	dword ReqCh;
  	dword data_length;
  } diva_um_idi_req_hdr_t;
  
  typedef struct _diva_um_idi_ind_parameters {
  	dword Ind;
  	dword IndCh;
  } diva_um_idi_ind_parameters_t;
  
  typedef struct _diva_um_idi_rc_parameters {
  	dword Rc;
  	dword RcCh;
  } diva_um_idi_rc_parameters_t;
  
  typedef union _diva_um_idi_ind {
  	diva_um_idi_adapter_features_t features;
  	diva_um_idi_ind_parameters_t ind;
  	diva_um_idi_rc_parameters_t rc;
  } diva_um_idi_ind_t;
  
  #define DIVA_UM_IDI_IND_FEATURES  1	/* features indication */
  #define DIVA_UM_IDI_IND           2
  #define DIVA_UM_IDI_IND_RC        3
  /*
    data_length bytes of data follow
    this structure
  */
  typedef struct _diva_um_idi_ind_hdr {
  	dword type;
  	diva_um_idi_ind_t hdr;
  	dword data_length;
  } diva_um_idi_ind_hdr_t;
  
  #endif
  