linux/drivers/isdn/hardware/eicon/divasync.h
<<
>>
Prefs
   1
   2/*
   3 *
   4  Copyright (c) Eicon Networks, 2002.
   5 *
   6  This source file is supplied for the use with
   7  Eicon Networks range of DIVA Server Adapters.
   8 *
   9  Eicon File Revision :    2.1
  10 *
  11  This program is free software; you can redistribute it and/or modify
  12  it under the terms of the GNU General Public License as published by
  13  the Free Software Foundation; either version 2, or (at your option)
  14  any later version.
  15 *
  16  This program is distributed in the hope that it will be useful,
  17  but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
  18  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  19  See the GNU General Public License for more details.
  20 *
  21  You should have received a copy of the GNU General Public License
  22  along with this program; if not, write to the Free Software
  23  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  24 *
  25 */
  26#ifndef __DIVA_SYNC__H  
  27#define __DIVA_SYNC__H
  28#define IDI_SYNC_REQ_REMOVE             0x00
  29#define IDI_SYNC_REQ_GET_NAME           0x01
  30#define IDI_SYNC_REQ_GET_SERIAL         0x02
  31#define IDI_SYNC_REQ_SET_POSTCALL       0x03
  32#define IDI_SYNC_REQ_GET_XLOG           0x04
  33#define IDI_SYNC_REQ_GET_FEATURES       0x05
  34#define IDI_SYNC_REQ_USB_REGISTER       0x06
  35#define IDI_SYNC_REQ_USB_RELEASE        0x07
  36#define IDI_SYNC_REQ_USB_ADD_DEVICE     0x08
  37#define IDI_SYNC_REQ_USB_START_DEVICE   0x09
  38#define IDI_SYNC_REQ_USB_STOP_DEVICE    0x0A
  39#define IDI_SYNC_REQ_USB_REMOVE_DEVICE  0x0B
  40#define IDI_SYNC_REQ_GET_CARDTYPE       0x0C
  41#define IDI_SYNC_REQ_GET_DBG_XLOG       0x0D
  42#define DIVA_USB
  43#define DIVA_USB_REQ                    0xAC
  44#define DIVA_USB_TEST                   0xAB
  45#define DIVA_USB_ADD_ADAPTER            0xAC
  46#define DIVA_USB_REMOVE_ADAPTER         0xAD
  47#define IDI_SYNC_REQ_SERIAL_HOOK        0x80
  48#define IDI_SYNC_REQ_XCHANGE_STATUS     0x81
  49#define IDI_SYNC_REQ_USB_HOOK           0x82
  50#define IDI_SYNC_REQ_PORTDRV_HOOK       0x83
  51#define IDI_SYNC_REQ_SLI                0x84   /*  SLI request from 3signal modem drivers */
  52#define IDI_SYNC_REQ_RECONFIGURE        0x85
  53#define IDI_SYNC_REQ_RESET              0x86
  54#define IDI_SYNC_REQ_GET_85X_DEVICE_DATA     0x87
  55#define IDI_SYNC_REQ_LOCK_85X                   0x88
  56#define IDI_SYNC_REQ_DIVA_85X_USB_DATA_EXCHANGE 0x99
  57#define IDI_SYNC_REQ_DIPORT_EXCHANGE_REQ   0x98
  58#define IDI_SYNC_REQ_GET_85X_EXT_PORT_TYPE      0xA0
  59/******************************************************************************/
  60#define IDI_SYNC_REQ_XDI_GET_EXTENDED_FEATURES  0x92
  61/*
  62   To receive XDI features:
  63   1. set 'buffer_length_in_bytes' to length of you buffer
  64   2. set 'features' to pointer to your buffer
  65   3. issue synchronous request to XDI
  66   4. Check that feature 'DIVA_XDI_EXTENDED_FEATURES_VALID' is present
  67      after call. This feature does indicate that your request
  68      was processed and XDI does support this synchronous request
  69   5. if on return bit 31 (0x80000000) in 'buffer_length_in_bytes' is
  70      set then provided buffer was too small, and bits 30-0 does
  71      contain necessary length of buffer.
  72      in this case only features that do find place in the buffer
  73      are indicated to caller
  74*/
  75typedef struct _diva_xdi_get_extended_xdi_features {
  76  dword buffer_length_in_bytes;
  77  byte  *features;
  78} diva_xdi_get_extended_xdi_features_t;
  79/*
  80   features[0]
  81  */
  82#define DIVA_XDI_EXTENDED_FEATURES_VALID          0x01
  83#define DIVA_XDI_EXTENDED_FEATURE_CMA             0x02
  84#define DIVA_XDI_EXTENDED_FEATURE_SDRAM_BAR       0x04
  85#define DIVA_XDI_EXTENDED_FEATURE_CAPI_PRMS       0x08
  86#define DIVA_XDI_EXTENDED_FEATURE_NO_CANCEL_RC    0x10
  87#define DIVA_XDI_EXTENDED_FEATURE_RX_DMA          0x20
  88#define DIVA_XDI_EXTENDED_FEATURE_MANAGEMENT_DMA  0x40
  89#define DIVA_XDI_EXTENDED_FEATURE_WIDE_ID         0x80
  90#define DIVA_XDI_EXTENDED_FEATURES_MAX_SZ    1
  91/******************************************************************************/
  92#define IDI_SYNC_REQ_XDI_GET_ADAPTER_SDRAM_BAR   0x93
  93typedef struct _diva_xdi_get_adapter_sdram_bar {
  94 dword bar;
  95} diva_xdi_get_adapter_sdram_bar_t;
  96/******************************************************************************/
  97#define IDI_SYNC_REQ_XDI_GET_CAPI_PARAMS   0x94
  98/*
  99  CAPI Parameters will be written in the caller's buffer
 100  */
 101typedef struct _diva_xdi_get_capi_parameters {
 102  dword structure_length;
 103  byte flag_dynamic_l1_down;
 104  byte group_optimization_enabled;
 105} diva_xdi_get_capi_parameters_t;
 106/******************************************************************************/
 107#define IDI_SYNC_REQ_XDI_GET_LOGICAL_ADAPTER_NUMBER   0x95
 108/*
 109  Get logical adapter number, as assigned by XDI
 110  'controller' is starting with zero 'sub' controller number
 111  in case of one adapter that supports multiple interfaces
 112  'controller' is zero for Master adapter (and adapter that supports
 113  only one interface)
 114  */
 115typedef struct _diva_xdi_get_logical_adapter_number {
 116  dword logical_adapter_number;
 117  dword controller;
 118  dword total_controllers;
 119} diva_xdi_get_logical_adapter_number_s_t;
 120/******************************************************************************/
 121#define IDI_SYNC_REQ_UP1DM_OPERATION   0x96
 122/******************************************************************************/
 123#define IDI_SYNC_REQ_DMA_DESCRIPTOR_OPERATION 0x97
 124#define IDI_SYNC_REQ_DMA_DESCRIPTOR_ALLOC     0x01
 125#define IDI_SYNC_REQ_DMA_DESCRIPTOR_FREE      0x02
 126typedef struct _diva_xdi_dma_descriptor_operation {
 127  int   operation;
 128  int   descriptor_number;
 129  void* descriptor_address;
 130  dword descriptor_magic;
 131} diva_xdi_dma_descriptor_operation_t;
 132/******************************************************************************/
 133#define IDI_SYNC_REQ_DIDD_REGISTER_ADAPTER_NOTIFY   0x01
 134#define IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER_NOTIFY     0x02
 135#define IDI_SYNC_REQ_DIDD_ADD_ADAPTER               0x03
 136#define IDI_SYNC_REQ_DIDD_REMOVE_ADAPTER            0x04
 137#define IDI_SYNC_REQ_DIDD_READ_ADAPTER_ARRAY        0x05
 138#define IDI_SYNC_REQ_DIDD_GET_CFG_LIB_IFC           0x10
 139typedef struct _diva_didd_adapter_notify {
 140 dword handle; /* Notification handle */
 141 void   * callback;
 142 void   * context;
 143} diva_didd_adapter_notify_t;
 144typedef struct _diva_didd_add_adapter {
 145 void   * descriptor;
 146} diva_didd_add_adapter_t;
 147typedef struct _diva_didd_remove_adapter {
 148 IDI_CALL p_request;
 149} diva_didd_remove_adapter_t;
 150typedef struct _diva_didd_read_adapter_array {
 151 void   * buffer;
 152 dword length;
 153} diva_didd_read_adapter_array_t;
 154typedef struct _diva_didd_get_cfg_lib_ifc {
 155 void* ifc;
 156} diva_didd_get_cfg_lib_ifc_t;
 157/******************************************************************************/
 158#define IDI_SYNC_REQ_XDI_GET_STREAM    0x91
 159#define DIVA_XDI_SYNCHRONOUS_SERVICE   0x01
 160#define DIVA_XDI_DMA_SERVICE           0x02
 161#define DIVA_XDI_AUTO_SERVICE          0x03
 162#define DIVA_ISTREAM_COMPLETE_NOTIFY   0
 163#define DIVA_ISTREAM_COMPLETE_READ     1
 164#define DIVA_ISTREAM_COMPLETE_WRITE    2
 165typedef struct _diva_xdi_stream_interface {
 166  unsigned char  Id;                 /* filled by XDI client */
 167 unsigned char provided_service;    /* filled by XDI        */
 168 unsigned char requested_service;   /* filled by XDI Client */
 169 void* xdi_context;    /* filled by XDI     */
 170 void* client_context;   /* filled by XDI client */
 171 int (*write)(void* context,
 172               int Id,
 173               void* data,
 174               int length,
 175               int final,
 176               byte usr1,
 177               byte usr2);
 178 int (*read)(void* context,
 179              int Id,
 180              void* data,
 181              int max_length,
 182              int* final,
 183              byte* usr1,
 184              byte* usr2);
 185 int (*complete)(void* client_context,
 186         int Id,
 187          int what,
 188         void* data,
 189         int length,
 190         int* final);
 191} diva_xdi_stream_interface_t;
 192/******************************************************************************/
 193/*
 194 * IDI_SYNC_REQ_SERIAL_HOOK - special interface for the DIVA Mobile card
 195 */
 196typedef struct
 197{ unsigned char LineState;         /* Modem line state (STATUS_R) */
 198#define SERIAL_GSM_CELL 0x01   /* GSM or CELL cable attached  */
 199 unsigned char CardState;          /* PCMCIA card state (0 = down) */
 200 unsigned char IsdnState;          /* ISDN layer 1 state (0 = down)*/
 201 unsigned char HookState;          /* current logical hook state */
 202#define SERIAL_ON_HOOK 0x02   /* set in DIVA CTRL_R register */
 203} SERIAL_STATE;
 204typedef int (  * SERIAL_INT_CB) (void *Context) ;
 205typedef int (  * SERIAL_DPC_CB) (void *Context) ;
 206typedef unsigned char (  * SERIAL_I_SYNC) (void *Context) ;
 207typedef struct
 208{ /* 'Req' and 'Rc' must be at the same place as in the ENTITY struct */
 209 unsigned char Req;             /* request (must be always 0) */
 210 unsigned char Rc;              /* return code (is the request) */
 211 unsigned char Function;           /* private function code  */
 212#define SERIAL_HOOK_ATTACH 0x81
 213#define SERIAL_HOOK_STATUS 0x82
 214#define SERIAL_HOOK_I_SYNC 0x83
 215#define SERIAL_HOOK_NOECHO 0x84
 216#define SERIAL_HOOK_RING 0x85
 217#define SERIAL_HOOK_DETACH 0x8f
 218 unsigned char Flags;           /* function refinements   */
 219 /* parameters passed by the ATTACH request      */
 220 SERIAL_INT_CB InterruptHandler; /* called on each interrupt  */
 221 SERIAL_DPC_CB DeferredHandler; /* called on hook state changes */
 222 void   *HandlerContext; /* context for both handlers */
 223 /* return values for both the ATTACH and the STATUS request   */
 224 unsigned long IoBase;    /* IO port assigned to UART  */
 225 SERIAL_STATE State;
 226 /* parameters and return values for the I_SYNC function    */
 227 SERIAL_I_SYNC SyncFunction;  /* to be called synchronized */
 228 void   *SyncContext;  /* context for this function */
 229 unsigned char SyncResult;   /* return value of function  */
 230} SERIAL_HOOK;
 231/*
 232 * IDI_SYNC_REQ_XCHANGE_STATUS - exchange the status between IDI and WMP
 233 * IDI_SYNC_REQ_RECONFIGURE - reconfiguration of IDI from WMP
 234 */
 235typedef struct
 236{ /* 'Req' and 'Rc' must be at the same place as in the ENTITY struct */
 237 unsigned char Req;             /* request (must be always 0) */
 238 unsigned char Rc;              /* return code (is the request) */
 239#define DRIVER_STATUS_BOOT  0xA1
 240#define DRIVER_STATUS_INIT_DEV 0xA2
 241#define DRIVER_STATUS_RUNNING 0xA3
 242#define DRIVER_STATUS_SHUTDOWN 0xAF
 243#define DRIVER_STATUS_TRAPPED 0xAE
 244 unsigned char wmpStatus;          /* exported by WMP              */
 245 unsigned char idiStatus;   /* exported by IDI              */
 246 unsigned long wizProto ;   /* from WMP registry to IDI     */
 247 /* the cardtype value is defined by cardtype.h */
 248 unsigned long cardType ;   /* from IDI registry to WMP     */
 249 unsigned long nt2 ;    /* from IDI registry to WMP     */
 250 unsigned long permanent ;   /* from IDI registry to WMP     */
 251 unsigned long stableL2 ;   /* from IDI registry to WMP     */
 252 unsigned long tei ;    /* from IDI registry to WMP     */
 253#define CRC4_MASK   0x00000003
 254#define L1_TRISTATE_MASK 0x00000004
 255#define WATCHDOG_MASK  0x00000008
 256#define NO_ORDER_CHECK_MASK 0x00000010
 257#define LOW_CHANNEL_MASK 0x00000020
 258#define NO_HSCX30_MASK  0x00000040
 259#define SET_BOARD   0x00001000
 260#define SET_CRC4   0x00030000
 261#define SET_L1_TRISTATE  0x00040000
 262#define SET_WATCHDOG  0x00080000
 263#define SET_NO_ORDER_CHECK 0x00100000
 264#define SET_LOW_CHANNEL  0x00200000
 265#define SET_NO_HSCX30  0x00400000
 266#define SET_MODE   0x00800000
 267#define SET_PROTO   0x02000000
 268#define SET_CARDTYPE  0x04000000
 269#define SET_NT2    0x08000000
 270#define SET_PERMANENT  0x10000000
 271#define SET_STABLEL2  0x20000000
 272#define SET_TEI    0x40000000
 273#define SET_NUMBERLEN  0x80000000
 274 unsigned long Flag ;  /* |31-Type-16|15-Mask-0| */
 275 unsigned long NumberLen ; /* reconfiguration: union is empty */
 276 union {
 277  struct {    /* possible reconfiguration, but ... ; SET_BOARD */
 278   unsigned long SerialNumber ;
 279   char     *pCardname ; /* di_defs.h: BOARD_NAME_LENGTH */
 280  } board ;
 281  struct {      /* reset: need resources */
 282   void * pRawResources ;
 283   void * pXlatResources ;
 284  } res ;
 285  struct { /* reconfiguration: wizProto == PROTTYPE_RBSCAS */
 286#define GLARE_RESOLVE_MASK 0x00000001
 287#define DID_MASK   0x00000002
 288#define BEARER_CAP_MASK  0x0000000c
 289#define SET_GLARE_RESOLVE 0x00010000
 290#define SET_DID    0x00020000
 291#define SET_BEARER_CAP  0x000c0000
 292   unsigned long Flag ;  /* |31-Type-16|15-VALUE-0| */
 293   unsigned short DigitTimeout ;
 294   unsigned short AnswerDelay ;
 295  } rbs ;
 296  struct { /* reconfiguration: wizProto == PROTTYPE_QSIG */
 297#define CALL_REF_LENGTH1_MASK 0x00000001
 298#define BRI_CHANNEL_ID_MASK  0x00000002
 299#define SET_CALL_REF_LENGTH  0x00010000
 300#define SET_BRI_CHANNEL_ID  0x00020000
 301   unsigned long Flag ;  /* |31-Type-16|15-VALUE-0| */
 302  } qsig ;
 303  struct { /* reconfiguration: NumberLen != 0 */
 304#define SET_SPID1   0x00010000
 305#define SET_NUMBER1   0x00020000
 306#define SET_SUBADDRESS1  0x00040000
 307#define SET_SPID2   0x00100000
 308#define SET_NUMBER2   0x00200000
 309#define SET_SUBADDRESS2  0x00400000
 310#define MASK_SET   0xffff0000
 311   unsigned long Flag ;   /* |31-Type-16|15-Channel-0| */
 312   unsigned char *pBuffer ; /* number value */
 313  } isdnNo ;
 314 }
 315parms
 316;
 317} isdnProps ;
 318/*
 319 * IDI_SYNC_REQ_PORTDRV_HOOK - signal plug/unplug (Award Cardware only)
 320 */
 321typedef void (  * PORTDRV_HOOK_CB) (void *Context, int Plug) ;
 322typedef struct
 323{ /* 'Req' and 'Rc' must be at the same place as in the ENTITY struct */
 324 unsigned char Req;             /* request (must be always 0) */
 325 unsigned char Rc;              /* return code (is the request) */
 326 unsigned char Function;           /* private function code  */
 327 unsigned char Flags;           /* function refinements   */
 328 PORTDRV_HOOK_CB Callback;   /* to be called on plug/unplug */
 329 void   *Context;   /* context for callback   */
 330 unsigned long Info;    /* more info if needed   */
 331} PORTDRV_HOOK ;
 332/*  Codes for the 'Rc' element in structure below. */
 333#define SLI_INSTALL     (0xA1)
 334#define SLI_UNINSTALL   (0xA2)
 335typedef int ( * SLIENTRYPOINT)(void* p3SignalAPI, void* pContext);
 336typedef struct
 337{   /* 'Req' and 'Rc' must be at the same place as in the ENTITY struct */
 338    unsigned char   Req;                /* request (must be always 0)   */
 339    unsigned char   Rc;                 /* return code (is the request) */
 340    unsigned char   Function;           /* private function code        */
 341    unsigned char   Flags;              /* function refinements         */
 342    SLIENTRYPOINT   Callback;           /* to be called on plug/unplug  */
 343    void            *Context;           /* context for callback         */
 344    unsigned long   Info;               /* more info if needed          */
 345} SLIENTRYPOINT_REQ ;
 346/******************************************************************************/
 347/*
 348 *  Definitions for DIVA USB
 349 */
 350typedef int  (  * USB_SEND_REQ) (unsigned char PipeIndex, unsigned char Type,void *Data, int sizeData);
 351typedef int  (  * USB_START_DEV) (void *Adapter, void *Ipac) ;
 352/* called from WDM */
 353typedef void (  * USB_RECV_NOTIFY) (void *Ipac, void *msg) ;
 354typedef void (  * USB_XMIT_NOTIFY) (void *Ipac, unsigned char PipeIndex) ;
 355/******************************************************************************/
 356/*
 357 * Parameter description for synchronous requests.
 358 *
 359 * Sorry, must repeat some parts of di_defs.h here because
 360 * they are not defined for all operating environments
 361 */
 362typedef union
 363{ ENTITY Entity;
 364 struct
 365 { /* 'Req' and 'Rc' are at the same place as in the ENTITY struct */
 366  unsigned char   Req; /* request (must be always 0) */
 367  unsigned char   Rc;  /* return code (is the request) */
 368 }   Request;
 369 struct
 370 { unsigned char   Req; /* request (must be always 0) */
 371  unsigned char   Rc;  /* return code (0x01)   */
 372  unsigned char   name[BOARD_NAME_LENGTH];
 373 }   GetName;
 374 struct
 375 { unsigned char   Req; /* request (must be always 0) */
 376  unsigned char   Rc;  /* return code (0x02)   */
 377  unsigned long   serial; /* serial number    */
 378 }   GetSerial;
 379 struct
 380 { unsigned char   Req; /* request (must be always 0) */
 381  unsigned char   Rc;  /* return code (0x02)   */
 382  unsigned long   lineIdx;/* line, 0 if card has only one */
 383 }   GetLineIdx;
 384 struct
 385 { unsigned char  Req;     /* request (must be always 0) */
 386  unsigned char  Rc;      /* return code (0x02)   */
 387  unsigned long  cardtype;/* card type        */
 388 }   GetCardType;
 389 struct
 390 { unsigned short command;/* command = 0x0300 */
 391  unsigned short dummy; /* not used */
 392  IDI_CALL       callback;/* routine to call back */
 393  ENTITY      *contxt; /* ptr to entity to use */
 394 }   PostCall;
 395 struct
 396 { unsigned char  Req;  /* request (must be always 0) */
 397  unsigned char  Rc;   /* return code (0x04)   */
 398  unsigned char  pcm[1]; /* buffer (a pc_maint struct) */
 399 }   GetXlog;
 400 struct
 401 { unsigned char  Req;  /* request (must be always 0) */
 402  unsigned char  Rc;   /* return code (0x05)   */
 403  unsigned short features;/* feature defines see below */
 404 }   GetFeatures;
 405 SERIAL_HOOK  SerialHook;
 406/* Added for DIVA USB */
 407 struct
 408 { unsigned char   Req;
 409  unsigned char   Rc;
 410  USB_SEND_REQ    UsbSendRequest; /* function in Diva Usb WDM driver in usb_os.c, */
 411                                        /* called from usb_drv.c to send a message to our device */
 412                                        /* eg UsbSendRequest (USB_PIPE_SIGNAL, USB_IPAC_START, 0, 0) ; */
 413  USB_RECV_NOTIFY usb_recv;       /* called from usb_os.c to pass a received message and ptr to IPAC */
 414                                        /* on to usb_drv.c by a call to usb_recv(). */
 415  USB_XMIT_NOTIFY usb_xmit;       /* called from usb_os.c in DivaUSB.sys WDM to indicate a completed transmit */
 416                                        /* to usb_drv.c by a call to usb_xmit(). */
 417  USB_START_DEV   UsbStartDevice; /* Start the USB Device, in usb_os.c */
 418  IDI_CALL        callback;       /* routine to call back */
 419  ENTITY          *contxt;     /* ptr to entity to use */
 420  void            ** ipac_ptr;    /* pointer to struct IPAC in VxD */
 421 } Usb_Msg_old;
 422/* message used by WDM and VXD to pass pointers of function and IPAC* */
 423 struct
 424 { unsigned char Req;
 425  unsigned char Rc;
 426        USB_SEND_REQ    pUsbSendRequest;/* function in Diva Usb WDM driver in usb_os.c, */
 427                                        /* called from usb_drv.c to send a message to our device */
 428                                        /* eg UsbSendRequest (USB_PIPE_SIGNAL, USB_IPAC_START, 0, 0) ; */
 429        USB_RECV_NOTIFY p_usb_recv;     /* called from usb_os.c to pass a received message and ptr to IPAC */
 430                                        /* on to usb_drv.c by a call to usb_recv(). */
 431        USB_XMIT_NOTIFY p_usb_xmit;     /* called from usb_os.c in DivaUSB.sys WDM to indicate a completed transmit */
 432                                        /* to usb_drv.c by a call to usb_xmit().*/
 433  void            *ipac_ptr;      /* &Diva.ipac pointer to struct IPAC in VxD */
 434 } Usb_Msg;
 435 PORTDRV_HOOK PortdrvHook;
 436    SLIENTRYPOINT_REQ   sliEntryPointReq;
 437  struct {
 438    unsigned char Req;
 439    unsigned char Rc;
 440    diva_xdi_stream_interface_t info;
 441  } xdi_stream_info;
 442  struct {
 443    unsigned char Req;
 444    unsigned char Rc;
 445    diva_xdi_get_extended_xdi_features_t info;
 446  } xdi_extended_features;
 447 struct {
 448    unsigned char Req;
 449    unsigned char Rc;
 450  diva_xdi_get_adapter_sdram_bar_t info;
 451 } xdi_sdram_bar;
 452  struct {
 453    unsigned char Req;
 454    unsigned char Rc;
 455    diva_xdi_get_capi_parameters_t info;
 456  } xdi_capi_prms;
 457 struct {
 458  ENTITY           e;
 459  diva_didd_adapter_notify_t info;
 460 } didd_notify;
 461 struct {
 462  ENTITY           e;
 463  diva_didd_add_adapter_t   info;
 464 } didd_add_adapter;
 465 struct {
 466  ENTITY           e;
 467  diva_didd_remove_adapter_t info;
 468 } didd_remove_adapter;
 469 struct {
 470  ENTITY             e;
 471  diva_didd_read_adapter_array_t info;
 472 } didd_read_adapter_array;
 473 struct {
 474  ENTITY             e;
 475  diva_didd_get_cfg_lib_ifc_t     info;
 476 } didd_get_cfg_lib_ifc;
 477  struct {
 478    unsigned char Req;
 479    unsigned char Rc;
 480    diva_xdi_get_logical_adapter_number_s_t info;
 481  } xdi_logical_adapter_number;
 482  struct {
 483    unsigned char Req;
 484    unsigned char Rc;
 485    diva_xdi_dma_descriptor_operation_t info;
 486  } xdi_dma_descriptor_operation;
 487} IDI_SYNC_REQ;
 488/******************************************************************************/
 489#endif /* __DIVA_SYNC__H */  
 490