Diva streaming IDI message header
This commit is contained in:
parent
ef1052e6af
commit
0904e9d00a
|
@ -0,0 +1,134 @@
|
|||
/*
|
||||
*
|
||||
Copyright (c) Dialogic (R) 2009 - 2010
|
||||
*
|
||||
This source file is supplied for the use with
|
||||
Eicon Networks range of DIVA Server Adapters.
|
||||
*
|
||||
Dialogic (R) File Revision : 1.9
|
||||
*
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
*
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
|
||||
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU General Public License for more details.
|
||||
*
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
*/
|
||||
#ifndef __DIVA_SPI_DESCRIPTOR_H__
|
||||
#define __DIVA_SPI_DESCRIPTOR_H__
|
||||
|
||||
|
||||
#define MAX_SPI_DESCRIPTOR_LENGTH (4*1024)
|
||||
#define MAX_XCONN_PER_DSP_DESCRIPTORS 8
|
||||
#define SMALL_FLAT_RX_BUFFER_LENGTH 128
|
||||
|
||||
/*
|
||||
SPI descriptor is always transferred in two parts:
|
||||
byte* msg;
|
||||
|
||||
xmit(&msg[4], length-4);
|
||||
xmit(msg, 4);
|
||||
|
||||
The second transfer is used as indication about end of the
|
||||
descriptor transfer.
|
||||
*/
|
||||
|
||||
typedef struct _diva_spi_msg_hdr {
|
||||
byte length_lo; /* Total transfer length, includes the the length of the header, lo byte */
|
||||
byte length_hi; /* Total transfer length, includes the length of the header, h byte */
|
||||
byte Id; /* IDI Id. 0xff in case of the system message */
|
||||
byte Ind; /* Ind */
|
||||
} diva_spi_msg_hdr_t;
|
||||
|
||||
typedef struct _diva_spi_msg {
|
||||
diva_spi_msg_hdr_t hdr;
|
||||
byte data[MAX_SPI_DESCRIPTOR_LENGTH-sizeof(diva_spi_msg_hdr_t)];
|
||||
} diva_spi_msg_t;
|
||||
|
||||
/*
|
||||
System messages:
|
||||
if Id == 0xff then system message
|
||||
if (length_hi & 0x80) then system message is chained after the message
|
||||
|
||||
Messages:
|
||||
byte - message type
|
||||
byte - message length without this byte and the length byte
|
||||
body - sequence of bytes, depends on the type of message
|
||||
*/
|
||||
|
||||
/*
|
||||
Used for comminication with
|
||||
monitor task
|
||||
*/
|
||||
typedef struct _diva_dsp_monitor_message_hdr {
|
||||
byte length_lo; /* Total transfer length, includes the the length of the header, lo byte */
|
||||
byte length_hi; /* Total transfer length, includes the length of the header, h byte */
|
||||
byte message_lo;
|
||||
byte message_hi;
|
||||
} diva_dsp_monitor_message_hdr_t;
|
||||
|
||||
typedef struct _diva_dsp_monitor_message {
|
||||
diva_dsp_monitor_message_hdr_t hdr;
|
||||
byte data[MAX_SPI_DESCRIPTOR_LENGTH-sizeof(diva_dsp_monitor_message_hdr_t)];
|
||||
} diva_dsp_monitor_message_t;
|
||||
|
||||
/*
|
||||
Format of the request:
|
||||
length_lo
|
||||
length_hi - set to "data_length + 5"
|
||||
Id
|
||||
Req - Stored in the Ind field
|
||||
RegCh - Req Ch stored in the first byte of data field
|
||||
data - first byte of data
|
||||
*/
|
||||
|
||||
/*
|
||||
Format of the return code without extended info:
|
||||
length_lo
|
||||
length_hi - set to 6
|
||||
Id
|
||||
Rc - Stored in the Ind field
|
||||
RcCh - RcCh stored in the first byte of data field
|
||||
type - Type. Set to zero for RC, stored in the second byte of data field
|
||||
|
||||
Format of the return code with extended info:
|
||||
length_lo
|
||||
length_hi - set to 14
|
||||
Id
|
||||
Rc - Stored in the Ind field
|
||||
RcCh - RcCh stored in the first byte of data field
|
||||
type - Type. Set to zero for RC, stored in the second byte of data field
|
||||
dword - extended info type (bytes 2,3,4,5 of data field)
|
||||
dword - extended info (bytes 6,7,8,9 of data field)
|
||||
*/
|
||||
|
||||
/*
|
||||
Format of the indication:
|
||||
length_lo
|
||||
length_hi - set to "data_lengt + 6"
|
||||
Id
|
||||
Ind - Stored in the Ind field
|
||||
IndCh - IndCh stored in the first byte of data field
|
||||
type - Type. Set to one for IND, stored in the second byte of data field
|
||||
data - first byte of data, starts at third data byte
|
||||
*/
|
||||
|
||||
typedef struct _diva_xconn_msg_hdr {
|
||||
word counter;
|
||||
word length;
|
||||
} diva_xconn_msg_hdr_t;
|
||||
|
||||
typedef struct _diva_xconn_msg {
|
||||
diva_xconn_msg_hdr_t hdr;
|
||||
byte data[MAX_SPI_DESCRIPTOR_LENGTH-sizeof(diva_xconn_msg_hdr_t)];
|
||||
} diva_xconn_msg_t;
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue