divasync.h 19 KB

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