/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\

File: OCTVC1_MAIN_API.h

Copyright (c) 2014 Octasic Inc. All rights reserved.

Description: Contains the definition of the MAIN API.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the 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 Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

Octasic_Release: OCTSDR-2G-01.08.05-B29-ALPHA (2014/08/14)

$Revision: $

\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/

#ifndef __OCTVC1_MAIN_API_H__
#define __OCTVC1_MAIN_API_H__


/*****************************  INCLUDE FILES  *******************************/
#include "../../octdev_types.h"
#include "../../octdev_devices.h"
#include "../octvc1_msg.h"
#include "../octvc1_handle.h"
#include "../octvc1_fifo.h"
#include "../octvc1_buffer.h"
#include "../octvc1_eth.h"
#include "../octvc1_mac.h"
#include "../octvc1_cursor.h"
#include "../octvc1_list.h"
#include "../octvc1_log.h"

#include "octvc1_main_id.h"
#include "octvc1_main_rc.h"

/************************  COMMON DEFINITIONS  *******************************/

#define cOCTVC1_MAIN_MAX_CORE_NUMBER						24		 	/* Maximum number of core in the chip. */
#define cOCTVC1_MAIN_SPI_ACCESS_TRANSFER_MAX_LENGTH			16		

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_SPI_CLOCK_POLARITY_ENUM : 	SPI clock polarity.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_SPI_CLOCK_POLARITY_ENUM				tOCT_UINT32

#define cOCTVC1_MAIN_SPI_CLOCK_POLARITY_ENUM_LOW			0		
#define cOCTVC1_MAIN_SPI_CLOCK_POLARITY_ENUM_HIGH			1		

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_SPI_CLOCK_PHASE_ENUM : 	SPI clock phase.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_SPI_CLOCK_PHASE_ENUM					tOCT_UINT32

#define cOCTVC1_MAIN_SPI_CLOCK_PHASE_ENUM_CHIP_SELECT_EDGE	0		
#define cOCTVC1_MAIN_SPI_CLOCK_PHASE_ENUM_CLOCK_TRANSITION	1		

#define cOCTVC1_MAIN_DEVICE_MAX_INFO_BYTE_SIZE				768		 	/* Device info buffer size, in bytes. */
#define cOCTVC1_MAIN_USER_MAX_INFO_BYTE_SIZE				512		 	/* User info buffer size, in bytes. */
#define cOCTVC1_MAIN_FILE_MAX_DATA_BYTE_SIZE				400		 	/* File commands (read/write) buffer size, in bytes. */
#define cOCTVC1_MAIN_BUFFER_MAX_DATA_BYTE_SIZE				1024	
#define cOCTVC1_MAIN_TRACING_START_MAX_NUM_BUFFER			4		
#define cOCTVC1_MAIN_API_LICENSING_MAX_STRING_LENGTH		63		 	/* Maximum length, including trailing zero that a licensed feature or module */
 																		/* name can have, in bytes. */

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_LICENSING_CURSOR

 Members:
	szFeatureName
 		NULL terminated name of the feature.
	ulGetMode
		Default:	cOCTVC1_OBJECT_CURSOR_ENUM_FIRST
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_UINT8					szFeatureName[(cOCTVC1_MAIN_API_LICENSING_MAX_STRING_LENGTH+1)];
	tOCTVC1_OBJECT_CURSOR_ENUM	ulGetMode;

} tOCTVC1_MAIN_LICENSING_CURSOR;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_API_LICENSING_FEATURE_TYPE_ENUM : 	Licensing feature types.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_API_LICENSING_FEATURE_TYPE_ENUM		tOCT_UINT32

#define cOCTVC1_MAIN_API_LICENSING_FEATURE_TYPE_ENUM_FLAG	0x1		
#define cOCTVC1_MAIN_API_LICENSING_FEATURE_TYPE_ENUM_COUNT	0x2		
#define cOCTVC1_MAIN_API_LICENSING_FEATURE_TYPE_ENUM_MIN	0x3		
#define cOCTVC1_MAIN_API_LICENSING_FEATURE_TYPE_ENUM_MAX	0x4		

/*-------------------------------------------------------------------------------------
 	MAIN API configuration values
-------------------------------------------------------------------------------------*/
#define cOCTVC1_MAIN_FIFO_POOL_ID_MGW_SYSTEM				0		
#define cOCTVC1_MAIN_FIFO_POOL_ID_MGW_ROUTER				1		
#define cOCTVC1_MAIN_FIFO_POOL_ID_MGW_VSP_VOC				4		
#define cOCTVC1_MAIN_ETH_MAX_NUM_PORT						2		
#define cOCTVC1_MAIN_OCT1010_ETH_MAX_NUM_PORT				8		
#define cOCTVC1_MAIN_USER_INFO_SIZE							0x80	

/*-------------------------------------------------------------------------------------
 	MAIN API configuration default values.
-------------------------------------------------------------------------------------*/
#define cOCTVC1_MAIN_DEFAULT_ETH_PORT_PKT_QUEUES_BYTE_SIZE	1048576	
#define cOCTVC1_MAIN_DEFAULT_ETH_PORT_ACCEPT_ALL_MAC		cOCT_FALSE	
#define cOCTVC1_MAIN_DEFAULT_ETH_PORT_ACCEPT_UNICAST		cOCT_TRUE	
#define cOCTVC1_MAIN_DEFAULT_ETH_PORT_ACCEPT_MULTICAST		cOCT_TRUE	
#define cOCTVC1_MAIN_DEFAULT_ETH_PORT_ACCEPT_BAD_CRC_PKT	cOCT_FALSE	
#define cOCTVC1_MAIN_DEFAULT_ETH_PORT_LONG_PKT_FORMAT		cOCT_FALSE	
#define cOCTVC1_MAIN_DEFAULT_ETH_PORT_RESTRICTED_API		cOCT_FALSE	
#define cOCTVC1_MAIN_DEFAULT_ETH_PORT_BROADCAST_FORWARD_PORT	cOCTVC1_ETH_PORT_ID_ENUM_INVALID	
#define cOCTVC1_MAIN_DEFAULT_ETH_PORT_MULTICAST_FORWARD_PORT	cOCTVC1_ETH_PORT_ID_ENUM_INVALID	
#define cOCTVC1_MAIN_DEFAULT_ETH_PORT_UNICAST_FORWARD_PORT	cOCTVC1_ETH_PORT_ID_ENUM_INVALID	
#define cOCTVC1_MAIN_DEFAULT_ETH_PORT_RX_MIRROR_FORWARD_PORT	cOCTVC1_ETH_PORT_ID_ENUM_INVALID	
#define cOCTVC1_MAIN_DEFAULT_ETH_PORT_ETHERNET_PQ_TCI		cOCTVC1_ETH_PORT_ID_ENUM_INVALID	

/*-------------------------------------------------------------------------------------
 	FIFO default values.
-------------------------------------------------------------------------------------*/
#define cOCTVC1_MAIN_DEFAULT_FIFO_SYSTEM_FIFO_BYTE_SIZE		524288	
#define cOCTVC1_MAIN_DEFAULT_FIFO_ROUTER_FIFO_BYTE_SIZE		196608	
#define cOCTVC1_MAIN_DEFAULT_FIFO_ROUTER_FIFO_LARGE_BYTE_SIZE	1048576	
#define cOCTVC1_MAIN_DEFAULT_FIFO_VSP_VOC_FIFO_BYTE_SIZE	4096	

/*-------------------------------------------------------------------------------------
 	GPIO default values.
-------------------------------------------------------------------------------------*/
#define cOCTVC1_MAIN_DEFAULT_GPIO_OUTPUT_VALUE				0x00000000	
#define cOCTVC1_MAIN_DEFAULT_GPIO_TRISTATE_HIGH				0x00000000	
#define cOCTVC1_MAIN_DEFAULT_GPIO_DIRECTION					0x00000000	

/*-------------------------------------------------------------------------------------
 	DMA default values.
-------------------------------------------------------------------------------------*/
#define cOCTVC1_MAIN_DEFAULT_DMA_TRACE_ENABLE				0		
#define cOCTVC1_MAIN_DEFAULT_DMA_TRACE_MAX_EVENT			16		
#define cOCTVC1_MAIN_DEFAULT_DMA_TRACE_LAST_EVENT			cOCT_TRUE	
#define cOCTVC1_MAIN_DEFAULT_DMA_TRACE_CORE_MASK			0x0000	

/*-------------------------------------------------------------------------------------
 	MAIN API Object Type.
-------------------------------------------------------------------------------------*/
#define cOCTVC1_MAIN_OBJ_TYPE_DEBUG_FORWARD					(0x0001|cOCTVC1_HANDLE_BASE_OBJ_TYPE_MAIN)	
/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_BOOT_PROGRESS_ENUM : 	Control process booting progress.
 	Control process booting progress.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_BOOT_PROGRESS_ENUM										tOCT_UINT32

#define cOCTVC1_MAIN_BOOT_PROGRESS_ENUM_DONE								0x00	
#define cOCTVC1_MAIN_BOOT_PROGRESS_ENUM_STARTING_CONTROL					0x01	
#define cOCTVC1_MAIN_BOOT_PROGRESS_ENUM_REMAPPING_CONTROL					0x02	
#define cOCTVC1_MAIN_BOOT_PROGRESS_ENUM_ALLOCATING_LOCAL_MEMORY				0x03	
#define cOCTVC1_MAIN_BOOT_PROGRESS_ENUM_VALIDATING_LICENSE					0x04	
#define cOCTVC1_MAIN_BOOT_PROGRESS_ENUM_PARSING_CONFIG_FILE					0x05	
#define cOCTVC1_MAIN_BOOT_PROGRESS_ENUM_INITIALIZING_CONTROL_FIFO			0x06	
#define cOCTVC1_MAIN_BOOT_PROGRESS_ENUM_INITIALIZING_GPIO					0x07	
#define cOCTVC1_MAIN_BOOT_PROGRESS_ENUM_INITIALIZING_MAIN_API				0x08	
#define cOCTVC1_MAIN_BOOT_PROGRESS_ENUM_INITIALIZING_CPP_API				0x09	
#define cOCTVC1_MAIN_BOOT_PROGRESS_ENUM_INITIALIZING_NET_API				0x0A	
#define cOCTVC1_MAIN_BOOT_PROGRESS_ENUM_INITIALIZING_VSPMP_VOC_MANAGEMENT	0x0B	
#define cOCTVC1_MAIN_BOOT_PROGRESS_ENUM_INITIALIZING_VSPMP_VID_MANAGEMENT	0x0C	
#define cOCTVC1_MAIN_BOOT_PROGRESS_ENUM_INITIALIZING_TDM_DRIVER_MEMORY		0x0D	
#define cOCTVC1_MAIN_BOOT_PROGRESS_ENUM_INITIALIZING_AF_SERVER_MEMORY		0x0E	
#define cOCTVC1_MAIN_BOOT_PROGRESS_ENUM_ALLOCATING_VSPMGR_MEMORY			0x0F	
#define cOCTVC1_MAIN_BOOT_PROGRESS_ENUM_STARTING_ROUTER						0x10	
#define cOCTVC1_MAIN_BOOT_PROGRESS_ENUM_STARTING_SCHEDULER					0x11	
#define cOCTVC1_MAIN_BOOT_PROGRESS_ENUM_STARTING_VSPMGR						0x12	
#define cOCTVC1_MAIN_BOOT_PROGRESS_ENUM_INITIALIZING_VSPMP_VOC_MEMORY		0x13	
#define cOCTVC1_MAIN_BOOT_PROGRESS_ENUM_INITIALIZING_VSPMP_VID_MEMORY		0x14	
#define cOCTVC1_MAIN_BOOT_PROGRESS_ENUM_VALIDATING_SYSTEM_CLOCK				0x15	

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_SYSLOG_MSG_ENUM : 	System log message.
 	System log message.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_SYSLOG_MSG_ENUM						tOCT_UINT32

#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_SYSLOG_MSG_BASE		0xC0000000	

#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_BOOT_IMAGE_BASE		(0x0000|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_SYSLOG_MSG_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_BOOT_IMAGE_ERROR		(0x01|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_BOOT_IMAGE_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_BOOT_IMAGE_FIRMWARE_UPDATE_SUCCESSFUL	(0x02|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_BOOT_IMAGE_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_BOOT_IMAGE_VALIDATION_ERROR_LOOPBACK	(0x03|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_BOOT_IMAGE_BASE)	

#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CFG_BASE				(0x0100|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_SYSLOG_MSG_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CFG_FILE_NOT_FOUND		(0x01|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CFG_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CFG_INVALID_XML_VERSION	(0x02|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CFG_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CFG_MALFORMED_XML		(0x03|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CFG_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CFG_NO_ETHERNET_PORTS	(0x04|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CFG_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CFG_NO_UNRESTRICTED_ETHERNET_PORTS	(0x05|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CFG_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CFG_INVALID_ETHERNET_PORT_INTERFACE	(0x06|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CFG_BASE)	

#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE				(0x0200|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_SYSLOG_MSG_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_ETH_PORTS_DEFAULT	(0x01|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_FATAL_VSP_COMMAND_TIMEOUT	(0x02|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_FATAL_VSP_COMMAND_SEQUENCE	(0x03|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_VSP_CORE_ALLOC	(0x04|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_RESET				(0x05|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_INIT_DONE			(0x06|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	 	/* Will never be returned. Reserved for internal use. */
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_EXT_MEM_ALLOC		(0x07|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_PROCESS_CREATE	(0x08|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_THREAD_CREATE		(0x09|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_TOO_MANY_VSP_CHANNELS	(0x0A|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_ETH_QUEUE_ALLOC	(0x0B|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_VSPMGR_ALLOC		(0x0C|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_MAIN_ALLOC		(0x0D|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_NET_ALLOC			(0x0E|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_AF_ALLOC			(0x0F|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_TDM_ALLOC			(0x10|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_FIFO_ALLOC		(0x11|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_CORE_MONITORING	(0x12|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_IO_MONITORING		(0x13|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_ETH_PORT_MONITORING	(0x14|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_ROUTER_MONITORING	(0x15|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_CORE_REMAP		(0x16|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_ROUTER_RESOURCES	(0x17|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_SCHED_CREATE		(0x18|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_TDM_RESET			(0x19|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_DIRECTORY_TREE	(0x1A|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_FAILURE_RECOVERED	(0x1B|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_FAILURE_CORE_DISABLED	(0x1C|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_CAMERA_DRIVER_CREATE	(0x1D|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_CORE_HALTED_AND_DUMPED	(0x1E|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_FAILOVER_STARTED	(0x1F|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_FAILOVER_SUCCESS	(0x20|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_FAILOVER_ERROR	(0x21|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_CTRL_BASE)	

#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_FS_BASE				(0x0300|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_SYSLOG_MSG_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_FS_BOOT_IMAGE_UPDATE_DONE	(0x01|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_FS_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_FS_OCT1010ID_UPDATE_DONE	(0x02|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_FS_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_FS_MALFORMED_TARBALL	(0x03|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_FS_BASE)	

#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_LOG_BASE				(0x0400|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_SYSLOG_MSG_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_LOG_RESET				(0x01|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_LOG_BASE)	

#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_NET_BASE				(0x0500|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_SYSLOG_MSG_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_NET_ARP_MODULE			(0x01|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_NET_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_NET_ND_MODULE			(0x02|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_NET_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_NET_RTCP_TIMER			(0x03|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_NET_BASE)	

#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_TDM_BASE				(0x0600|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_SYSLOG_MSG_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_TDM_MAX_TSST			(0x01|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_TDM_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_TDM_NO_CLOCK			(0x02|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_TDM_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_TDM_UNSUPPORTED_CLOCK_SPEED_AUTO_DETECT	(0x03|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_TDM_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_TDM_INVALID_MODULE_TYPE	(0x04|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_TDM_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_TDM_TRI_STATE_NOT_SUPPORTED	(0x05|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_TDM_BASE)	

#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_LICENSING_BASE			(0x0700|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_SYSLOG_MSG_BASE)	
#define cOCTVC1_MAIN_SYSLOG_MSG_ENUM_LICENSING_FORMAT_ERROR	(0x01|cOCTVC1_MAIN_SYSLOG_MSG_ENUM_LICENSING_BASE)	

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_EVT_MASK : 	Event generation mask.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_EVT_MASK										tOCT_UINT32

#define cOCTVC1_MAIN_EVT_MASK_NONE									0		
#define cOCTVC1_MAIN_EVT_MASK_GPIO_CHANGE							((tOCT_UINT32)(1<<0) )	
#define cOCTVC1_MAIN_EVT_MASK_PHY_STATUS							((tOCT_UINT32)(1<<1) )	
#define cOCTVC1_MAIN_EVT_MASK_CORE_STATUS							((tOCT_UINT32)(1<<2) )	
#define cOCTVC1_MAIN_EVT_MASK_PROCESS_CPU_USAGE						((tOCT_UINT32)(1<<3) )	
#define cOCTVC1_MAIN_EVT_MASK_TRACING_BUFFER_FULL					((tOCT_UINT32)(1<<4) )	
#define cOCTVC1_MAIN_EVT_MASK_TRACING_STOP							((tOCT_UINT32)(1<<5) )	
#define cOCTVC1_MAIN_EVT_MASK_REDUNDANCY_SERVER_MGW_FAILOVER_DONE	((tOCT_UINT32)(1<<6) )	

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_THREAD_CPU_USAGE

 Members:
	hThread
	ulCpuUsagePercent
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_UINT32	hThread;
	tOCT_UINT32	ulCpuUsagePercent;

} tOCTVC1_MAIN_THREAD_CPU_USAGE;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_PROCESS_TYPE_ENUM : 	Process utilization type.
 	Process utilization type.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_PROCESS_TYPE_ENUM						tOCT_UINT32

#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_INVALID					0		
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_CONTROL					1		
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_TDM_DRIVER				2		
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_ROUTER					3		
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_SCHEDULER				4		
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_VSPMGR					5		
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_AF_SRV					6		
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_CAMERA_DRIVER			7		
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_3G_SCHEDULER				((tOCT_UINT32)(1|cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG) )	
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_L1C_APAPTATION_LAYER		((tOCT_UINT32)(2|cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG) )	
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_3G_ULIM_RACH				((tOCT_UINT32)(3|cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG) )	
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_3G_ULIM_MASTER			((tOCT_UINT32)(4|cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG) )	
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_3G_ULIM_RFI				((tOCT_UINT32)(5|cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG) )	
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_3G_ULIM_SLAVE			((tOCT_UINT32)(6|cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG) )	
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_3G_ULOM_MASTER			((tOCT_UINT32)(7|cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG) )	
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_3G_ULOM_SLAVE			((tOCT_UINT32)(8|cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG) )	
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_3G_DLIM_MASTER			((tOCT_UINT32)(9|cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG) )	
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_3G_DLIM_SLAVE			((tOCT_UINT32)(10|cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG) )	
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_3G_DLOM_MASTER			((tOCT_UINT32)(11|cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG) )	
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_3G_DLOM_SLAVE			((tOCT_UINT32)(12|cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG) )	
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_RFI						((tOCT_UINT32)(13|cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG) )	
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_ETH						((tOCT_UINT32)(14|cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG) )	
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_3G_HSDLOM				((tOCT_UINT32)(15|cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG) )	
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_3G_HSDLIM				((tOCT_UINT32)(16|cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG) )	
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_3G_ULIM_SSE				((tOCT_UINT32)(18|cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG) )	
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_CTRL						((tOCT_UINT32)(17|cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG) )	
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_2G_SCHEDULER				((tOCT_UINT32)(19|cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG) )	
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_2G_DL					((tOCT_UINT32)(20|cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG) )	
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_2G_ULIM					((tOCT_UINT32)(21|cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG) )	
#define cOCTVC1_MAIN_PROCESS_TYPE_ENUM_2G_ULOM					((tOCT_UINT32)(22|cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG) )	

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_OPUS_CORE_STATUS_ENUM : 	Core Status.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_OPUS_CORE_STATUS_ENUM					tOCT_UINT32

#define cOCTVC1_MAIN_OPUS_CORE_STATUS_ENUM_RESET				0		
#define cOCTVC1_MAIN_OPUS_CORE_STATUS_ENUM_RUNNING				1		
#define cOCTVC1_MAIN_OPUS_CORE_STATUS_ENUM_HALT					2		
#define cOCTVC1_MAIN_OPUS_CORE_STATUS_ENUM_TRAP					3		
#define cOCTVC1_MAIN_OPUS_CORE_STATUS_ENUM_ACCESS_VIOLATION		4		
#define cOCTVC1_MAIN_OPUS_CORE_STATUS_ENUM_NOT_PRESENT			5		
#define cOCTVC1_MAIN_OPUS_CORE_STATUS_ENUM_FAILURE_DETECTED		6		

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_OCT1010_CORE_STATUS_ENUM : 	DEPRECATED as of OCTVOC-1.06.00-PR. Replaced by
 	tOCTVC1_MAIN_OPUS_CORE_STATUS_ENUM. Refer to the Main API document octvocas5001
 	for further information.
 	Core Status.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_OCT1010_CORE_STATUS_ENUM					tOCT_UINT32

#define cOCTVC1_MAIN_OCT1010_CORE_STATUS_ENUM_RESET				0		
#define cOCTVC1_MAIN_OCT1010_CORE_STATUS_ENUM_RUNNING			1		
#define cOCTVC1_MAIN_OCT1010_CORE_STATUS_ENUM_HALT				2		
#define cOCTVC1_MAIN_OCT1010_CORE_STATUS_ENUM_TRAP				3		
#define cOCTVC1_MAIN_OCT1010_CORE_STATUS_ENUM_ACCESS_VIOLATION	4		

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_FAILURE_MASK : 	Main core failure mask.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_FAILURE_MASK							tOCT_UINT32

#define cOCTVC1_MAIN_FAILURE_MASK_NONE						((tOCT_UINT32)(0<<0) )	
#define cOCTVC1_MAIN_FAILURE_MASK_MEMORY					((tOCT_UINT32)(1<<0) )	

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_OPUS_CORE_STATUS

 Members:
	ulCoreStatus
	ulProgramCounter
	ulFailureMask
	ulAccessViolationAddress
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MAIN_OPUS_CORE_STATUS_ENUM	ulCoreStatus;
	tOCT_UINT32							ulProgramCounter;
	tOCT_UINT32							ulFailureMask;
	tOCT_UINT32							ulAccessViolationAddress;

} tOCTVC1_MAIN_OPUS_CORE_STATUS;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_OCT1010_CORE_STATUS

 Members:
	ulCoreStatus
	ulProgramCounter
	ulAccessViolationAddress
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MAIN_OCT1010_CORE_STATUS_ENUM	ulCoreStatus;
	tOCT_UINT32								ulProgramCounter;
	tOCT_UINT32								ulAccessViolationAddress;

} tOCTVC1_MAIN_OCT1010_CORE_STATUS;

#define cOCTVC1_MAIN_PROCESS_IMAGE_NAME_MAX_LENGTH			63		 	/* Process image string length restriction. */

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_OPUS_CORE_INFO

 Members:
	hProcess
		Default:	cOCTVC1_HANDLE_INVALID
 		Process handle identifier. Value INVALID means no process running on this core.
	ulPhysicalCoreId
		Default:	0
 		Physical core index (1..cOCTVC1_MAIN_MAX_CORE_NUMBER). Value 0 means no core is
 		running for this logical identifier.
	ulProcessImageType
		Default:	cOCTVC1_MAIN_PROCESS_TYPE_ENUM_INVALID
 		Process Type identifier. Value INVALID means no process running on this core.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_UINT32						hProcess;
	tOCT_UINT32						ulPhysicalCoreId;
	tOCTVC1_MAIN_PROCESS_TYPE_ENUM	ulProcessImageType;

} tOCTVC1_MAIN_OPUS_CORE_INFO;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_OCT1010_CORE_INFO

 Members:
	hProcess
		Default:	cOCTVC1_HANDLE_INVALID
 		Process handle identifier. Value INVALID means no process running on this core.
	hThread
		Default:	cOCTVC1_HANDLE_INVALID
 		Thread handle identifier.. Value INVALID means no thread running on this core.
	ulProcessImageType
		Default:	cOCTVC1_MAIN_PROCESS_TYPE_ENUM_INVALID
 		Process Type identifier. Value INVALID means no process running on this core.
	szProcessImageName
 		Name of the process running on the core.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_UINT32						hProcess;
	tOCT_UINT32						hThread;
	tOCTVC1_MAIN_PROCESS_TYPE_ENUM	ulProcessImageType;
	tOCT_UINT8						szProcessImageName[(cOCTVC1_MAIN_PROCESS_IMAGE_NAME_MAX_LENGTH+1)];/* NOSWAPMAC */

} tOCTVC1_MAIN_OCT1010_CORE_INFO;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_TDM_STREAM_FREQ_ENUM : 	TDM stream frequency.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_TDM_STREAM_FREQ_ENUM					tOCT_UINT32

#define cOCTVC1_MAIN_TDM_STREAM_FREQ_ENUM_2MHZ				0		
#define cOCTVC1_MAIN_TDM_STREAM_FREQ_ENUM_4MHZ				1		
#define cOCTVC1_MAIN_TDM_STREAM_FREQ_ENUM_8MHZ				2		
#define cOCTVC1_MAIN_TDM_STREAM_FREQ_ENUM_16MHZ				3		
#define cOCTVC1_MAIN_TDM_STREAM_FREQ_ENUM_RESERVED			4		

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_ETH_PORT_INTERFACE_TYPE_ENUM : 	Ethernet port interface type.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_ETH_PORT_INTERFACE_TYPE_ENUM			tOCT_UINT32

#define cOCTVC1_MAIN_ETH_PORT_INTERFACE_TYPE_ENUM_INVALID	0xFFFFFFFF	
#define cOCTVC1_MAIN_ETH_PORT_INTERFACE_TYPE_ENUM_SERDES0	0		
#define cOCTVC1_MAIN_ETH_PORT_INTERFACE_TYPE_ENUM_SERDES1	1		
#define cOCTVC1_MAIN_ETH_PORT_INTERFACE_TYPE_ENUM_SERDES2	2		
#define cOCTVC1_MAIN_ETH_PORT_INTERFACE_TYPE_ENUM_SERDES3	3		
#define cOCTVC1_MAIN_ETH_PORT_INTERFACE_TYPE_ENUM_ETH0		4		
#define cOCTVC1_MAIN_ETH_PORT_INTERFACE_TYPE_ENUM_ETH1		5		

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_ETH_PORT_MODE_ENUM : 	Ethernet port mode.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_ETH_PORT_MODE_ENUM						tOCT_UINT32

#define cOCTVC1_MAIN_ETH_PORT_MODE_ENUM_INVALID				0xFFFFFFFF	
#define cOCTVC1_MAIN_ETH_PORT_MODE_ENUM_MII_10				0		
#define cOCTVC1_MAIN_ETH_PORT_MODE_ENUM_MII_100				1		
#define cOCTVC1_MAIN_ETH_PORT_MODE_ENUM_RMII_100			2		
#define cOCTVC1_MAIN_ETH_PORT_MODE_ENUM_GMII_1000			3		
#define cOCTVC1_MAIN_ETH_PORT_MODE_ENUM_RGMII_1000			4		
#define cOCTVC1_MAIN_ETH_PORT_MODE_ENUM_SGMII_1000			5		

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_ETH_MODE_ENUM : 	Ethernet port mode of operation.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_ETH_MODE_ENUM							tOCT_UINT32

#define cOCTVC1_MAIN_ETH_MODE_ENUM_INVALID					0xFFFFFFFF	
#define cOCTVC1_MAIN_ETH_MODE_ENUM_MII						0		
#define cOCTVC1_MAIN_ETH_MODE_ENUM_RMII						1		
#define cOCTVC1_MAIN_ETH_MODE_ENUM_GMII						2		
#define cOCTVC1_MAIN_ETH_MODE_ENUM_RGMII					3		
#define cOCTVC1_MAIN_ETH_MODE_ENUM_SGMII					4		

#define cOCTVC1_MAIN_ETH_PORT_PHY_ADDRESS_INVALID			63		 	/* Invalid Phy Address */
 																		/* This definition indicates that either no PHY is present or */
 																		/* that communication with the phy is not allowed. */

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_ETH_PORT_CONFIG_DYNAMIC

 Members:
	ulEthPortEnableFlag
		Default:	cOCTVC1_DO_NOT_MODIFY
	MacAddress
	ulAcceptAllMacFlag
		Default:	cOCTVC1_DO_NOT_MODIFY
	ulAcceptUnicastFlag
		Default:	cOCTVC1_DO_NOT_MODIFY
	ulAcceptMulticastFlag
		Default:	cOCTVC1_DO_NOT_MODIFY
	ulAcceptBadCrcPktFlag
		Default:	cOCTVC1_DO_NOT_MODIFY
	ulAcceptLongPktFormatFlag
		Default:	cOCTVC1_DO_NOT_MODIFY
	ulBroadcastForwardPort
		Default:	cOCTVC1_DO_NOT_MODIFY
	ulMulticastForwardPort
		Default:	cOCTVC1_DO_NOT_MODIFY
	ulUnicastForwardPort
		Default:	cOCTVC1_DO_NOT_MODIFY
	ulRxMirrorForwardPort
		Default:	cOCTVC1_DO_NOT_MODIFY
	ulRestrictedApiFlag
		Default:	cOCTVC1_DO_NOT_MODIFY
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_BOOL32					ulEthPortEnableFlag;
	tOCTVC1_MAC_ADDRESS			MacAddress;
	tOCT_BOOL32					ulAcceptAllMacFlag;
	tOCT_BOOL32					ulAcceptUnicastFlag;
	tOCT_BOOL32					ulAcceptMulticastFlag;
	tOCT_BOOL32					ulAcceptBadCrcPktFlag;
	tOCT_BOOL32					ulAcceptLongPktFormatFlag;
	tOCTVC1_ETH_PORT_ID_ENUM	ulBroadcastForwardPort;
	tOCTVC1_ETH_PORT_ID_ENUM	ulMulticastForwardPort;
	tOCTVC1_ETH_PORT_ID_ENUM	ulUnicastForwardPort;
	tOCTVC1_ETH_PORT_ID_ENUM	ulRxMirrorForwardPort;
	tOCT_BOOL32					ulRestrictedApiFlag;

} tOCTVC1_MAIN_ETH_PORT_CONFIG_DYNAMIC;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_ETH_PORT_CONFIG_STATIC

 Members:
	ulInterfaceType
	ulMode
	ulSpeed
	ulFullDuplexFlag
	ulPhyAddress
	ulPktQueuesByteSize
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MAIN_ETH_PORT_INTERFACE_TYPE_ENUM	ulInterfaceType;
	tOCTVC1_MAIN_ETH_MODE_ENUM					ulMode;
	tOCT_UINT32									ulSpeed;
	tOCT_BOOL32									ulFullDuplexFlag;
	tOCT_UINT32									ulPhyAddress;
	tOCT_UINT32									ulPktQueuesByteSize;

} tOCTVC1_MAIN_ETH_PORT_CONFIG_STATIC;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_ETH_PORT_STATS

 Members:
	ulRxPktErrorCnt
 		Number of times Ethernet port detected packets with the RX_ER signal set during
 		reception. Note that an odd number of nibbles will also lead to this error.
 		NOTE: available on OCT1010 only.
	ulRxOddNibbleCnt
 		Number of times Ethernet port detected packets with an odd number of nibbles. A
 		packet may have an odd number of preamble nibbles.
 		NOTE: available on OCT1010 only
	ulRxCrcErrorCnt
 		Number of times the Ethernet port detected packets with an invalid Cyclic
 		Redundancy Check (CRC).
	ulRxSfdAbsentCnt
 		Number of times Ethernet port detected packets without a Start Frame Delimiter
 		(SFD) byte.
 		NOTE: available on OCT1010 only
	ulRxShortFrameCnt
 		Number of times Ethernet port detected packets that were too short. A packet
 		must be at least 64 bytes long (from MACs to CRC).
	ulRxLongFrameCnt
 		Number of times Ethernet port detected packets that were too long. A packet
 		must be no more than 1536 bytes long (from MACs to CRC) if
 		ulAcceptLongPktFormatFlag = '0', and no more than 2044 bytes if
 		ulAcceptLongPktFormatFlag = '1'.
	ulRxFalseCarrierCnt
 		Number of times Ethernet port detected false carrier event
 		NOTE: available on OCT1010 only
	ulTxFalseCarrierCnt
 		Number of frames aborted due to no carrier or loss of carrier
 		NOTE: not available on OCT1010.
	ulRxMemOverflowCnt
 		Number of times Ethernet port detected an overflow in the Rx packet flow. If an
 		overflow occurs, the packet is dropped and not written to the Rx external
 		memory packet queue.
	ulRxBufferOverflowCnt
 		Number of times Ethernet port detected that Rx buffer has overflowed. This
 		should never happen. If this occurs,it means the module has halted all packet
 		processing in both the Rx and Tx directions.
 		NOTE: available on OCT1010 only
	ulRxPauseFrameCnt
 		Number of times Ethernet port detected a PAUSE frame.
	ulTxPauseFrameCnt
 		Number of times Ethernet port sent a PAUSE frame.
	ulTxMemChecksum
 		Number of times Ethernet port detected a packet read from the Tx external
 		memory packet queue with an invalid checksum. If this occurs,it means the
 		module has halted all packet processing in both the Rx and Tx directions.
 		NOTE: available on OCT1010 only
	ulTxBufferUnderflowCnt
 		Number of times the Ethernet port detected the Tx buffer has underflowed.
 		NOTE: If this occurs on OCT1010,it means the module has halted all packet
 		processing in both the Rx and Tx directions.
	ulDefaultMacAddressUsedFlag
 		DEPRECATED as of OCTVOC-2.01.00-PR.
 		Indicate that the FPGA use the default locally administrated MAC address. '0'
 		indicate a MAC address as been assigned to the module and '1' indicate the
 		module use the FPGA default mac (02:0c:90:ff:ff:xx).
	ulTxLateCollisionCnt
 		Number of frames aborted due to late collision error.
 		NOTE: not available on OCT1010.
	ulTxExcessCollisionCnt
 		Number of frames aborted due to excessive collision errors.
 		NOTE: not available on OCT1010.
	ulTxExcessDeferralCnt
 		Number of frames aborted due to excessive deferral error.
 		NOTE: not available on OCT1010.
	ulRxAlignmentErrorCnt
 		Number of frames received with alignment (dribble) error. Valid only in 10/100
 		mode.
 		NOTE: not available on OCT1010.
	ulRxJabberErrorCnt
 		Number of giant frames received with length (including CRC) greater than 1,518
 		bytes (1,522 bytes for VLAN tagged) and with CRC error.
 		NOTE: not available on OCT1010.
	ulRxLengthErrorCnt
 		Number of frames received with length error (Length type field does not equal
 		frame size), for all frames with valid length field.
 		NOTE: not available on OCT1010.
	ulRxOutOfRangeTypeCnt
 		Number of frames received with length field not equal to the valid frame size
 		(greater than 1,500 but less than 1,536).
 		NOTE: not available on OCT1010.
	ulRxWatchdogErrorCnt
 		Number of frames dropped due to a watchdog timeout. Frames larger than 2,048
 		bytes will be aborted due to the watchdog time-out.
 		NOTE: not available on OCT1010.
	ulRxIPv4HeaderErrorCnt
 		Number of IPv4 datagrams received with header errors.
 		NOTE: not available on OCT1010.
	ulRxIPv6HeaderErrorCnt
 		Number of IPv6 datagrams received with header errors.
 		NOTE: not available on OCT1010.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_UINT32	ulRxPktErrorCnt;
	tOCT_UINT32	ulRxOddNibbleCnt;
	tOCT_UINT32	ulRxCrcErrorCnt;
	tOCT_UINT32	ulRxSfdAbsentCnt;
	tOCT_UINT32	ulRxShortFrameCnt;
	tOCT_UINT32	ulRxLongFrameCnt;
	tOCT_UINT32	ulRxFalseCarrierCnt;
	tOCT_UINT32	ulTxFalseCarrierCnt;
	tOCT_UINT32	ulRxMemOverflowCnt;
	tOCT_UINT32	ulRxBufferOverflowCnt;
	tOCT_UINT32	ulRxPauseFrameCnt;
	tOCT_UINT32	ulTxPauseFrameCnt;
	tOCT_UINT32	ulTxMemChecksum;
	tOCT_UINT32	ulTxBufferUnderflowCnt;
	tOCT_BOOL32	ulDefaultMacAddressUsedFlag;
	tOCT_UINT32	ulTxLateCollisionCnt;
	tOCT_UINT32	ulTxExcessCollisionCnt;
	tOCT_UINT32	ulTxExcessDeferralCnt;
	tOCT_UINT32	ulRxAlignmentErrorCnt;
	tOCT_UINT32	ulRxJabberErrorCnt;
	tOCT_UINT32	ulRxLengthErrorCnt;
	tOCT_UINT32	ulRxOutOfRangeTypeCnt;
	tOCT_UINT32	ulRxWatchdogErrorCnt;
	tOCT_UINT32	ulRxIPv4HeaderErrorCnt;
	tOCT_UINT32	ulRxIPv6HeaderErrorCnt;

} tOCTVC1_MAIN_ETH_PORT_STATS;

#define cOCTVC1_MAIN_FILE_NAME_MAX_LENGTH					127		 	/* Filesystem string length restriction. */

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_FILE_SYSTEM_FILE_CURSOR

 Members:
	szFileName
 		NULL terminated name of the file.
	ulGetMode
		Default:	cOCTVC1_OBJECT_CURSOR_ENUM_FIRST
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_UINT8					szFileName[(cOCTVC1_MAIN_FILE_NAME_MAX_LENGTH+1)];
	tOCTVC1_OBJECT_CURSOR_ENUM	ulGetMode;

} tOCTVC1_MAIN_FILE_SYSTEM_FILE_CURSOR;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_FILE_OPEN_MODE_MASK : 	API command/response arguments file modes.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_FILE_OPEN_MODE_MASK					tOCT_UINT32

#define cOCTVC1_MAIN_FILE_OPEN_MODE_MASK_READ				0x1		
#define cOCTVC1_MAIN_FILE_OPEN_MODE_MASK_WRITE				0x2		

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_LOG_ENTRY

 Members:
	ulLogSeqNumber
	ulLogTimestamp
	ulLogReserved0
	ulLogReserved1
	achLogMsg
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_UINT32	ulLogSeqNumber;
	tOCT_UINT32	ulLogTimestamp;
	tOCT_UINT32	ulLogReserved0;
	tOCT_UINT32	ulLogReserved1;
	tOCT_UINT8	achLogMsg[48];

} tOCTVC1_MAIN_LOG_ENTRY;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_OPUS_CORE_MASK : 	Octasic Opus Core Mask.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_OPUS_CORE_MASK							tOCT_UINT32

#define cOCTVC1_MAIN_OPUS_CORE_MASK_1						((tOCT_UINT32)(1<<1) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_2						((tOCT_UINT32)(1<<2) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_3						((tOCT_UINT32)(1<<3) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_4						((tOCT_UINT32)(1<<4) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_5						((tOCT_UINT32)(1<<5) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_6						((tOCT_UINT32)(1<<6) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_7						((tOCT_UINT32)(1<<7) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_8						((tOCT_UINT32)(1<<8) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_9						((tOCT_UINT32)(1<<9) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_10						((tOCT_UINT32)(1<<10) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_11						((tOCT_UINT32)(1<<11) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_12						((tOCT_UINT32)(1<<12) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_13						((tOCT_UINT32)(1<<13) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_14						((tOCT_UINT32)(1<<14) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_15						((tOCT_UINT32)(1<<15) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_16						((tOCT_UINT32)(1<<16) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_17						((tOCT_UINT32)(1<<17) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_18						((tOCT_UINT32)(1<<18) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_19						((tOCT_UINT32)(1<<19) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_20						((tOCT_UINT32)(1<<20) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_21						((tOCT_UINT32)(1<<21) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_22						((tOCT_UINT32)(1<<22) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_23						((tOCT_UINT32)(1<<23) )	
#define cOCTVC1_MAIN_OPUS_CORE_MASK_24						((tOCT_UINT32)(1<<24) )	

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_OCT1010_CORE_MASK : 	OCT1010 Core Mask.
 	DEPRECATED as of OCTVOC-1.06.00-PR. Replaced by tOCTVC1_MAIN_OPUS_CORE_MASK.
 	Refer to the Main API document octvocas5001 for further information.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_OCT1010_CORE_MASK						tOCT_UINT32

#define cOCTVC1_MAIN_OCT1010_CORE_MASK_1					((tOCT_UINT32)(1<<1) )	
#define cOCTVC1_MAIN_OCT1010_CORE_MASK_2					((tOCT_UINT32)(1<<2) )	
#define cOCTVC1_MAIN_OCT1010_CORE_MASK_3					((tOCT_UINT32)(1<<3) )	
#define cOCTVC1_MAIN_OCT1010_CORE_MASK_4					((tOCT_UINT32)(1<<4) )	
#define cOCTVC1_MAIN_OCT1010_CORE_MASK_5					((tOCT_UINT32)(1<<5) )	
#define cOCTVC1_MAIN_OCT1010_CORE_MASK_6					((tOCT_UINT32)(1<<6) )	
#define cOCTVC1_MAIN_OCT1010_CORE_MASK_7					((tOCT_UINT32)(1<<7) )	
#define cOCTVC1_MAIN_OCT1010_CORE_MASK_8					((tOCT_UINT32)(1<<8) )	
#define cOCTVC1_MAIN_OCT1010_CORE_MASK_9					((tOCT_UINT32)(1<<9) )	
#define cOCTVC1_MAIN_OCT1010_CORE_MASK_10					((tOCT_UINT32)(1<<10) )	
#define cOCTVC1_MAIN_OCT1010_CORE_MASK_11					((tOCT_UINT32)(1<<11) )	
#define cOCTVC1_MAIN_OCT1010_CORE_MASK_12					((tOCT_UINT32)(1<<12) )	
#define cOCTVC1_MAIN_OCT1010_CORE_MASK_13					((tOCT_UINT32)(1<<13) )	
#define cOCTVC1_MAIN_OCT1010_CORE_MASK_14					((tOCT_UINT32)(1<<14) )	
#define cOCTVC1_MAIN_OCT1010_CORE_MASK_15					((tOCT_UINT32)(1<<15) )	

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_TRACING_MODE_ENUM : 	Tracing mode.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_TRACING_MODE_ENUM						tOCT_UINT32

#define cOCTVC1_MAIN_TRACING_MODE_ENUM_NORMAL				((tOCT_UINT32)(1<<0) )	
#define cOCTVC1_MAIN_TRACING_MODE_ENUM_WRAP					((tOCT_UINT32)(1<<1) )	
#define cOCTVC1_MAIN_TRACING_MODE_ENUM_AUTO_WRAP			((tOCT_UINT32)(1<<2) )	

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_TRACING_TYPE_ENUM : 	Tracing data type.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_TRACING_TYPE_ENUM						tOCT_UINT32

#define cOCTVC1_MAIN_TRACING_TYPE_ENUM_CONTROL_ONLY			0x1		
#define cOCTVC1_MAIN_TRACING_TYPE_ENUM_HEADER				0x2		
#define cOCTVC1_MAIN_TRACING_TYPE_ENUM_ALL					0x3		

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_REDUNDANCY_SERVER_STATE_ENUM : 	Current state of redundancy server.
 	See tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_INFO_RSP.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_REDUNDANCY_SERVER_STATE_ENUM					tOCT_UINT32

#define cOCTVC1_MAIN_REDUNDANCY_SERVER_STATE_ENUM_STOPPED				0		
#define cOCTVC1_MAIN_REDUNDANCY_SERVER_STATE_ENUM_STARTED				1		
#define cOCTVC1_MAIN_REDUNDANCY_SERVER_STATE_ENUM_FAILOVER_EXECUTED		2		

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_REDUNDANCY_SERVER_FAILOVER_MGW_STATUS_ENUM : 	Status of the failover. Invalid means no failover requested.
 	See tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_INFO_RSP.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_REDUNDANCY_SERVER_FAILOVER_MGW_STATUS_ENUM			tOCT_UINT32

#define cOCTVC1_MAIN_REDUNDANCY_SERVER_FAILOVER_MGW_STATUS_ENUM_NONE		0		
#define cOCTVC1_MAIN_REDUNDANCY_SERVER_FAILOVER_MGW_STATUS_ENUM_SUCCESS		1		
#define cOCTVC1_MAIN_REDUNDANCY_SERVER_FAILOVER_MGW_STATUS_ENUM_ERROR		2		

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_LOG_TRACE_STATE_ENUM : 	Log Trace state.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_LOG_TRACE_STATE_ENUM					tOCT_UINT32

#define cOCTVC1_MAIN_LOG_TRACE_STATE_ENUM_STOP				0		
#define cOCTVC1_MAIN_LOG_TRACE_STATE_ENUM_START				1		



#define cOCTVC1_MAIN_MAX_VSPMGR_THREADS						21		 	/* Maximum number of VSP Mgr threads that can be started by one command. */
#define cOCTVC1_MAIN_SDR_PROCESS_TYPE_FLAG					0x0020	
#define cOCTVC1_MAIN_INVALID_TSST							0xFFFFFFFF	 	/* MAIN API Invalid TSST definition. */

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_FILE_CURSOR

 Members:
	szFileName
 		NULL terminated name of the file.
	ulGetMode
		Default:	cOCTVC1_OBJECT_CURSOR_ENUM_FIRST
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCT_UINT8					szFileName[(cOCTVC1_MAIN_FILE_NAME_MAX_LENGTH+1)];
	tOCTVC1_OBJECT_CURSOR_ENUM	ulGetMode;

} tOCTVC1_MAIN_FILE_CURSOR;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_FILE_SEEK_ENUM : 	File seek mode.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_FILE_SEEK_ENUM							tOCT_UINT32

#define cOCTVC1_MAIN_FILE_SEEK_ENUM_SET						0x0		
#define cOCTVC1_MAIN_FILE_SEEK_ENUM_CUR						0x1		
#define cOCTVC1_MAIN_FILE_SEEK_ENUM_END						0x2		

/*-------------------------------------------------------------------------------------
 	MAIN API configuration values
-------------------------------------------------------------------------------------*/
#define cOCTVC1_MAIN_FIFO_POOL_ID_MGW_SDR_PU				16		

/*-------------------------------------------------------------------------------------
 	TDM frame.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_TDM_FRAME_ACTIVE_ENUM					tOCT_UINT32

#define cOCTVC1_MAIN_TDM_FRAME_ACTIVE_ENUM_LOW				0		
#define cOCTVC1_MAIN_TDM_FRAME_ACTIVE_ENUM_HIGH				1		

/*-------------------------------------------------------------------------------------
 	TDM sample.
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_TDM_SAMPLE_ENUM						tOCT_UINT32

#define cOCTVC1_MAIN_TDM_SAMPLE_ENUM_AT_FALLING_EDGE		0		
#define cOCTVC1_MAIN_TDM_SAMPLE_ENUM_AT_RISING_EDGE			1		

/*-------------------------------------------------------------------------------------
 	TDM disabled frame:
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_TDM_DISABLED_FRAME_SOURCE_ENUM				tOCT_UINT32

#define cOCTVC1_MAIN_TDM_DISABLED_FRAME_SOURCE_ENUM_INTERNAL	0		 	/* Generate frame internally. */
#define cOCTVC1_MAIN_TDM_DISABLED_FRAME_SOURCE_ENUM_EXTERNAL	1		 	/* Receive externally frame signal. */

/*-------------------------------------------------------------------------------------
 	TDM data resolution:
-------------------------------------------------------------------------------------*/
#define tOCTVC1_MAIN_TDM_DATA_RESOLUTION_ENUM						tOCT_UINT32

#define cOCTVC1_MAIN_TDM_DATA_RESOLUTION_ENUM_8_BITS_PER_SAMPLE		0		 	/* Each sample from the TDM is 8 bits. */
#define cOCTVC1_MAIN_TDM_DATA_RESOLUTION_ENUM_16_BITS_PER_SAMPLE	1		 	/* Each sample from the TDM is 16 bits. */

/*-------------------------------------------------------------------------------------
 	TDM default values.
-------------------------------------------------------------------------------------*/
#define cOCTVC1_MAIN_DEFAULT_TDM_FRAME_POLARITY				cOCTVC1_MAIN_TDM_FRAME_ACTIVE_ENUM_LOW	
#define cOCTVC1_MAIN_DEFAULT_TDM_FRAME_SAMPLING_MODE		cOCTVC1_MAIN_TDM_SAMPLE_ENUM_AT_RISING_EDGE	
#define cOCTVC1_MAIN_DEFAULT_TDM_DATA_SAMPLING_MODE			cOCTVC1_MAIN_TDM_SAMPLE_ENUM_AT_FALLING_EDGE	
#define cOCTVC1_MAIN_DEFAULT_TDM_NUM_STREAM					4		
#define cOCTVC1_MAIN_DEFAULT_TDM_BUS_SPEED					cOCTVC1_MAIN_TDM_STREAM_FREQ_ENUM_8MHZ	
#define cOCTVC1_MAIN_DEFAULT_TDM_DISABLED_FRAME_SOURCE		cOCTVC1_MAIN_TDM_DISABLED_FRAME_SOURCE_ENUM_INTERNAL	
#define cOCTVC1_MAIN_DEFAULT_TDM_FROM_TSST_BUFFER_SIZE_MS	70		
#define cOCTVC1_MAIN_DEFAULT_TDM_TO_TSST_BUFFER_SIZE_MS		130		
#define cOCTVC1_MAIN_DEFAULT_TDM_TO_BIT_OFFSET				0		
#define cOCTVC1_MAIN_DEFAULT_TDM_FROM_BIT_OFFSET			0		
#define cOCTVC1_MAIN_DEFAULT_TDM_DRIVER_ENABLE				cOCT_TRUE	
#define cOCTVC1_MAIN_DEFAULT_TDM_OUTPUT_ENABLE				cOCT_TRUE	
#define cOCTVC1_MAIN_DEFAULT_TDM_DATA_RESOLUTION			cOCTVC1_MAIN_TDM_DATA_RESOLUTION_ENUM_8_BITS_PER_SAMPLE	

/*-------------------------------------------------------------------------------------
 	Generic default values.
-------------------------------------------------------------------------------------*/
#define cOCTVC1_MAIN_DEFAULT_SCHED_VSP_ENABLE				cOCT_FALSE	
#define cOCTVC1_MAIN_DEFAULT_ADAPTIVE_FILTER_ENABLE			cOCT_FALSE	

/*****************************  METHODS  *************************************/
/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_DEBUG_FORWARD_CLOSE_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hForward
 		Debug Forward Object Handle
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCTVC1_HANDLE		hForward;

} tOCTVC1_MAIN_MSG_DEBUG_FORWARD_CLOSE_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_DEBUG_FORWARD_CLOSE_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hForward
 		Debug Forward Object Handle
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCTVC1_HANDLE		hForward;

} tOCTVC1_MAIN_MSG_DEBUG_FORWARD_CLOSE_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_DEBUG_FORWARD_INFO_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ObjectGet
 		Generic object get structure.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER			Header;
	tOCTVC1_CURSOR_HANDLE_GET	ObjectGet;

} tOCTVC1_MAIN_MSG_DEBUG_FORWARD_INFO_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_DEBUG_FORWARD_INFO_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ObjectGet
 		Generic object get structure.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER			Header;
	tOCTVC1_CURSOR_HANDLE_GET	ObjectGet;

} tOCTVC1_MAIN_MSG_DEBUG_FORWARD_INFO_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_DEVICE_RESET_CMD
 		NOTE: This command is only valid as of OCTVOC-1.06.00-PR. Be aware that older
 		versions will return an error (invalid command ID) when this command is
 		received.
 		Older versions (pre OCTVOC-1.06.00-PR) must be reset using the
 		cOCTVC1_MAIN_MSG_OCT1010_RESET_CID command.

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_DEVICE_RESET_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_DEVICE_RESET_RSP

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_DEVICE_RESET_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_DEVICE_INFO_CMD

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_DEVICE_INFO_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_DEVICE_INFO_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ulDeviceType
 		Octasic Device type
	abyDeviceInfo
	abyUserInfo
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER			Header;
	tOCTDEV_DEVICES_TYPE_ENUM	ulDeviceType;
	tOCT_UINT8					abyDeviceInfo[cOCTVC1_MAIN_DEVICE_MAX_INFO_BYTE_SIZE];
	tOCT_UINT8					abyUserInfo[cOCTVC1_MAIN_USER_MAX_INFO_BYTE_SIZE];

} tOCTVC1_MAIN_MSG_DEVICE_INFO_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_DEVICE_STATUS_OPUS_CORE_CMD

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_DEVICE_STATUS_OPUS_CORE_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_DEVICE_STATUS_OPUS_CORE_RSP

 Members:
	Header
 		OCTVC1 Message Header
	aCoreStatus
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER				Header;
	tOCTVC1_MAIN_OPUS_CORE_STATUS	aCoreStatus[cOCTVC1_MAIN_MAX_CORE_NUMBER];

} tOCTVC1_MAIN_MSG_DEVICE_STATUS_OPUS_CORE_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_DEVICE_INFO_OPUS_CORE_CMD

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_DEVICE_INFO_OPUS_CORE_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_DEVICE_INFO_OPUS_CORE_RSP

 Members:
	Header
 		OCTVC1 Message Header
	aCoreInfo
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER			Header;
	tOCTVC1_MAIN_OPUS_CORE_INFO	aCoreInfo[cOCTVC1_MAIN_MAX_CORE_NUMBER];

} tOCTVC1_MAIN_MSG_DEVICE_INFO_OPUS_CORE_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_START_CMD
 		This command starts the redundancy server within the Vocallo MGW. It transforms
 		an active MGW to a backup MGW (by default, a MGW boots in active mode).
 		Multiple redundant MGWs can be added to and removed from this server.
 		Note that once a redundancy server is started, all resources necessary for
 		VSPMP VOC, VPSMP VID, NET and CPP are disabled and reused for redundancy.
 		Hence, all commands from these APIs are ignored if transmitted directly to the
 		server.

 Members:
	Header
 		OCTVC1 Message Header
	ulMaxNumServerMgw
		Range:		[1..]
		Default:	2
 		Number of redundant MGWs supported by this server.
 		Cannot be higher then the ulMaxNumSystemMgw returned by
 		cOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_INFO_CID.
	ulForceApiResourceCleanUpFlag
		Default:	cOCT_FALSE
 		If set to cOCT_TRUE, will force the execution of a
 		cOCTVC1_MAIN_MSG_MODULE_CLEANUP_API_RESOURCE_CID on the active MGW, with the
 		ulMainBufferFlag, ulVspMpPlaylistFlag, ulVspMpUserToneFlag,
 		ulMainDebugForwardFlag and ulCppForwardObjFlag flags set to cOCT_FALSE.
 		If set to cOCT_FALSE, the cOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_START_CID will
 		fail if there are any opened object on the acitve MGW, except for
 		ulMainNumBufferOpened, ulVspMpNumPlaylistOpened, ulVspMpNumUserToneOpened or
 		ulCppNumForwardObjOpened from the cOCTVC1_MAIN_MSG_MODULE_GET_API_RESOURCE_CID.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			ulMaxNumServerMgw;
	tOCT_BOOL32			ulForceApiResourceCleanUpFlag;

} tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_START_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_START_RSP

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_START_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_STOP_CMD
 		This command stops the redundancy server within the backup Vocallo MGW.
 		Note: this command will remove all redundant MGWs in the redundancy server.
 		Once the redundancy server stopped, all resources necessary for VSPMP VOC,
 		VPSMP VID, NET and CPP are re-enabled.

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_STOP_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_STOP_RSP

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_STOP_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_INFO_CMD
 		This command retrieves the current redundancy server configuration parameters.

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_INFO_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_INFO_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ulMaxNumSystemMgw
 		Maximum number of redundant MGW supported by this system.
 		This indicates the maximum value of the ulServerMaxMgwCnt in the
 		cOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_START_CID.
	ulMaxNumServerMgw
 		Maximum number of redundant MGW supported by this server.
 		Value of the ulServerMaxMgwCnt used the
 		cOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_START_CID, 0 if the redundancy server is not
 		started.
	ulMgwCnt
 		Current number of redundant MGW added in this server, 0 if the redundancy
 		server is not started.
	State
 		Current state of redundancy server.
	hFailoverMgw
 		Redundant MGW identifier used for failover.
 		Set to cOCTVC1_HANDLE_INVALID if no failover performed.
 		In other words, set to cOCTVC1_HANDLE_INVALID when FailoverStatus is INVALID
	FailoverStatus
 		Status of the failover. Invalid means no failover requested.
	ulFailoverReturnCode
 		First cOCTVC1_RC that occured while executing the failover.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER										Header;
	tOCT_UINT32												ulMaxNumSystemMgw;
	tOCT_UINT32												ulMaxNumServerMgw;
	tOCT_UINT32												ulMgwCnt;
	tOCTVC1_MAIN_REDUNDANCY_SERVER_STATE_ENUM				State;
	tOCTVC1_HANDLE_OBJECT									hFailoverMgw;
	tOCTVC1_MAIN_REDUNDANCY_SERVER_FAILOVER_MGW_STATUS_ENUM	FailoverStatus;
	tOCT_UINT32												ulFailoverReturnCode;

} tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_INFO_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_ADD_MGW_CMD
 		This command adds a redundant MGW to the server.
 		The response returns hMgw, the identifier for the redundant MGW. This
 		identifier corresponds to the Destination FIFO Identifier described in the the
 		Vocallo API Messaging Interface [2].
 		In the Vocallo Packets Transport API Library [9] implementation, the
 		Destination FIFO Identifier corresponds to the
 		tOCTVC1_PKT_API_SESS_OPEN_PARMS.ulControlProcessFifoId.
 		Every API command transmitted to the redundant MGW must have its Destination
 		FIFO Identifier set to the value of hMgw returned in the response.

 Members:
	Header
 		OCTVC1 Message Header
	hMgw
		Default:	cOCTVC1_HANDLE_INVALID
 		Redundant MGW identifier and control FIFO identifier (ulControlProcessFifoId in
 		the tOCTVC1_PKT_API_SESS_OPEN_PARMS) used to reach the redundancy API session.
 		To allocate an auto-assigned Redundant MGW identifier, set this field to
 		cOCTVC1_HANDLE_INVALID.
 		To force an Redundant MGW identifier, set this field to an unused value between
 		1 and ulServerMaxMgwCnt inclusively.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE_OBJECT	hMgw;

} tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_ADD_MGW_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_ADD_MGW_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hMgw
 		Redundant MGW identifier and control FIFO identifier (ulControlProcessFifoId)
 		used to reach the redundant MGW.
 		An API command must be sent to this FIFO ID in order to affect the redundant
 		MGW maintained by this session.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE_OBJECT	hMgw;

} tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_ADD_MGW_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_REMOVE_MGW_CMD
 		This command removes a redundant MGW. The redundant MGW’s resources are freed.

 Members:
	Header
 		OCTVC1 Message Header
	hMgw
		Default:	cOCTVC1_HANDLE_INVALID
 		Redundant MGW identifier and control FIFO identifier used to reach the
 		redundant MGW.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE_OBJECT	hMgw;

} tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_REMOVE_MGW_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_REMOVE_MGW_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hMgw
 		Redundant MGW identifier and control FIFO identifier used to reach the
 		redundant MGW.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE_OBJECT	hMgw;

} tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_REMOVE_MGW_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_LIST_MGW_CMD
 		This command returns the list of added redundant MGWs.

 Members:
	Header
 		OCTVC1 Message Header
	ObjectCursor
 		Object cursor
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER					Header;
	tOCTVC1_CURSOR_HANDLE_OBJECT_GET	ObjectCursor;

} tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_LIST_MGW_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_LIST_MGW_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ObjectCursor
 		Object cursor
	ObjectList
 		Object List structure.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER					Header;
	tOCTVC1_CURSOR_HANDLE_OBJECT_GET	ObjectCursor;
	tOCTVC1_LIST_HANDLE_OBJECT_GET		ObjectList;

} tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_LIST_MGW_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_INFO_MGW_CMD
 		This command retrieves the redundant MGW configuration parameters.

 Members:
	Header
 		OCTVC1 Message Header
	hMgw
 		Redundant MGW identifier and control FIFO identifier used to reach the
 		redundant MGW.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE_OBJECT	hMgw;

} tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_INFO_MGW_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_INFO_MGW_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hMgw
 		Redundant MGW identifier and control FIFO identifier used to reach the
 		redundant MGW.
	FailoverStatus
 		Status of the failover for Redundant MGW. Invalid means no failover requested.
	ulFailoverReturnCode
 		First cOCTVC1_RC that occured while executing the failover.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER										Header;
	tOCTVC1_HANDLE_OBJECT									hMgw;
	tOCTVC1_MAIN_REDUNDANCY_SERVER_FAILOVER_MGW_STATUS_ENUM	FailoverStatus;
	tOCT_UINT32												ulFailoverReturnCode;

} tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_INFO_MGW_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_FILE_OPEN_CMD

 Members:
	Header
 		OCTVC1 Message Header
	szFileName
 		Null-Terminated file name string.
	ulAccessMode
		Default:	cOCTVC1_MAIN_FILE_OPEN_MODE_MASK_READ
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER					Header;
	tOCT_UINT8							szFileName[(cOCTVC1_MAIN_FILE_NAME_MAX_LENGTH+1)];
	tOCTVC1_MAIN_FILE_OPEN_MODE_MASK	ulAccessMode;

} tOCTVC1_MAIN_MSG_FILE_OPEN_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_FILE_OPEN_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hFile
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE_OBJECT	hFile;

} tOCTVC1_MAIN_MSG_FILE_OPEN_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_FILE_CLOSE_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hFile
		Default:	cOCTVC1_HANDLE_INVALID
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE_OBJECT	hFile;

} tOCTVC1_MAIN_MSG_FILE_CLOSE_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_FILE_CLOSE_RSP

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_FILE_CLOSE_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_FILE_SYSTEM_DELETE_FILE_CMD

 Members:
	Header
 		OCTVC1 Message Header
	szFileName
 		Null-Terminated file name string.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT8			szFileName[(cOCTVC1_MAIN_FILE_NAME_MAX_LENGTH+1)];

} tOCTVC1_MAIN_MSG_FILE_SYSTEM_DELETE_FILE_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_FILE_SYSTEM_DELETE_FILE_RSP

 Members:
	Header
 		OCTVC1 Message Header
	szFileName
 		Null-Terminated file name string.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT8			szFileName[(cOCTVC1_MAIN_FILE_NAME_MAX_LENGTH+1)];

} tOCTVC1_MAIN_MSG_FILE_SYSTEM_DELETE_FILE_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_FILE_WRITE_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hFile
		Default:	cOCTVC1_HANDLE_INVALID
	ulNumByteToWrite
		Default:	1
	abyData
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE_OBJECT	hFile;
	tOCT_UINT32				ulNumByteToWrite;
	tOCT_UINT8				abyData[cOCTVC1_MAIN_FILE_MAX_DATA_BYTE_SIZE];

} tOCTVC1_MAIN_MSG_FILE_WRITE_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_FILE_WRITE_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ulNumByteWritten
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			ulNumByteWritten;

} tOCTVC1_MAIN_MSG_FILE_WRITE_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_FILE_READ_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hFile
		Default:	cOCTVC1_HANDLE_INVALID
	ulMaxNumByteToRead
		Default:	cOCTVC1_MAIN_FILE_MAX_DATA_BYTE_SIZE
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE_OBJECT	hFile;
	tOCT_UINT32				ulMaxNumByteToRead;

} tOCTVC1_MAIN_MSG_FILE_READ_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_FILE_READ_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ulNumByteRead
	abyData
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			ulNumByteRead;
	tOCT_UINT8			abyData[cOCTVC1_MAIN_FILE_MAX_DATA_BYTE_SIZE];

} tOCTVC1_MAIN_MSG_FILE_READ_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_FILE_INFO_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hFile
		Default:	cOCTVC1_HANDLE_INVALID
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE_OBJECT	hFile;

} tOCTVC1_MAIN_MSG_FILE_INFO_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_FILE_INFO_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hFile
	szFileName
 		Null-Terminated file name string.
	ulAccessMode
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER					Header;
	tOCTVC1_HANDLE_OBJECT				hFile;
	tOCT_UINT8							szFileName[(cOCTVC1_MAIN_FILE_NAME_MAX_LENGTH+1)];
	tOCTVC1_MAIN_FILE_OPEN_MODE_MASK	ulAccessMode;

} tOCTVC1_MAIN_MSG_FILE_INFO_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_FILE_LIST_CMD
 		List the cmd that are monitored

 Members:
	Header
 		OCTVC1 Message Header
	ObjectCursor
 		Object cursor
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER					Header;
	tOCTVC1_CURSOR_HANDLE_OBJECT_GET	ObjectCursor;

} tOCTVC1_MAIN_MSG_FILE_LIST_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_FILE_LIST_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ObjectCursor
 		Object cursor
	ObjectList
 		Object List structure.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER					Header;
	tOCTVC1_CURSOR_HANDLE_OBJECT_GET	ObjectCursor;
	tOCTVC1_LIST_HANDLE_OBJECT_GET		ObjectList;

} tOCTVC1_MAIN_MSG_FILE_LIST_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_FILE_SYSTEM_INFO_CMD

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_FILE_SYSTEM_INFO_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_FILE_SYSTEM_INFO_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ulMaxFileEntry
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			ulMaxFileEntry;

} tOCTVC1_MAIN_MSG_FILE_SYSTEM_INFO_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_FILE_SYSTEM_INFO_FILE_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ObjectGet
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER						Header;
	tOCTVC1_MAIN_FILE_SYSTEM_FILE_CURSOR	ObjectGet;

} tOCTVC1_MAIN_MSG_FILE_SYSTEM_INFO_FILE_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_FILE_SYSTEM_INFO_FILE_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ObjectGet
	ulAccessMode
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER						Header;
	tOCTVC1_MAIN_FILE_SYSTEM_FILE_CURSOR	ObjectGet;
	tOCTVC1_MAIN_FILE_OPEN_MODE_MASK		ulAccessMode;

} tOCTVC1_MAIN_MSG_FILE_SYSTEM_INFO_FILE_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_LOG_READ_ENTRY_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ulGetNewestFlag
		Default:	cOCT_TRUE
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_BOOL32			ulGetNewestFlag;

} tOCTVC1_MAIN_MSG_LOG_READ_ENTRY_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_LOG_READ_ENTRY_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ulNumLogEntry
	aLogEntry
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCT_UINT32				ulNumLogEntry;
	tOCTVC1_MAIN_LOG_ENTRY	aLogEntry[5];

} tOCTVC1_MAIN_MSG_LOG_READ_ENTRY_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_LOG_ERASE_CMD

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_LOG_ERASE_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_LOG_ERASE_RSP

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_LOG_ERASE_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_LICENSING_INFO_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ObjectGet
 		Generic object get structure.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER				Header;
	tOCTVC1_MAIN_LICENSING_CURSOR	ObjectGet;

} tOCTVC1_MAIN_MSG_LICENSING_INFO_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_LICENSING_INFO_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ObjectGet
 		Generic object get structure.
	ulFeatureType
	ulManagedFlag
 		Whether the feature is managed by the licensing module or not. If set to
 		cOCT_TRUE,
 		the licensing module is responsible for enforcing the specified feature usage.
 		If set to cOCT_FALSE, the process(es) using the feature is responsible for
 		implementing
 		its own enforcement.
	ulLicenseValue
 		Interpretation depends on feature type specified in ulFeatureType parameter:
 		FLAG: 0 or 1, whether the feature is allowed or not.
 		COUNT: Maximum number of times the feature can be used.
 		MIN: Absolute minimum value allowed for this feature.
 		MAX: Absolute maximum value allowed for this feature.
	ulCurrentCount
 		If feature is of type "COUNT" and is "MANAGED" by the licensing server
 		(parameter fManaged
 		set to cOCT_TRUE), this value will indicate the current usage of the feature.
 		Otherwise
 		this field will be set to 0.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER								Header;
	tOCTVC1_MAIN_LICENSING_CURSOR					ObjectGet;
	tOCTVC1_MAIN_API_LICENSING_FEATURE_TYPE_ENUM	ulFeatureType;
	tOCT_BOOL32										ulManagedFlag;
	tOCT_UINT32										ulLicenseValue;
	tOCT_UINT32										ulCurrentCount;

} tOCTVC1_MAIN_MSG_LICENSING_INFO_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_OCT1010_RESET_CMD
 		DEPRECATED as of OCTVOC-1.06.00-PR. Replaced by
 		cOCTVC1_MAIN_MSG_DEVICE_RESET_CID. Refer to the Main API document octvocas5001
 		for further information.

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_OCT1010_RESET_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_OCT1010_RESET_RSP

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_OCT1010_RESET_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_OCT1010_INFO_CMD

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_OCT1010_INFO_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_OCT1010_INFO_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ulOCT1010VersionId
	szOCT1010Version
	ulSerialNumber
	ulProjectNumber
	aOCT1010MacAddress
	ulOCT1010IDVersionId
	szOCT1010IDVersion
	ulTdmNumStream
	ulTdmStreamFrequency
	aMacAddress
	aulUserInfo
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER					Header;
	tOCT_UINT32							ulOCT1010VersionId;
	tOCT_UINT8							szOCT1010Version[24];
	tOCT_UINT32							ulSerialNumber;
	tOCT_UINT32							ulProjectNumber;
	tOCTVC1_MAC_ADDRESS					aOCT1010MacAddress[cOCTVC1_MAIN_OCT1010_ETH_MAX_NUM_PORT];
	tOCT_UINT32							ulOCT1010IDVersionId;
	tOCT_UINT8							szOCT1010IDVersion[24];
	tOCT_UINT32							ulTdmNumStream;
	tOCTVC1_MAIN_TDM_STREAM_FREQ_ENUM	ulTdmStreamFrequency;
	tOCTVC1_MAC_ADDRESS					aMacAddress[cOCTVC1_MAIN_ETH_MAX_NUM_PORT];
	tOCT_UINT32							aulUserInfo[cOCTVC1_MAIN_USER_INFO_SIZE];/* NOSWAPMAC */

} tOCTVC1_MAIN_MSG_OCT1010_INFO_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_ETH_STATS_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ulResetStatsFlag
		Default:	cOCT_FALSE
 		Statistics counters will be reset to zero after the current values are returned.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_BOOL32			ulResetStatsFlag;

} tOCTVC1_MAIN_MSG_ETH_STATS_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_ETH_STATS_RSP

 Members:
	Header
 		OCTVC1 Message Header
	aStats
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER			Header;
	tOCTVC1_MAIN_ETH_PORT_STATS	aStats[cOCTVC1_MAIN_ETH_MAX_NUM_PORT];

} tOCTVC1_MAIN_MSG_ETH_STATS_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_ETH_INFO_PORT_CONFIG_CMD

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_ETH_INFO_PORT_CONFIG_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_ETH_INFO_PORT_CONFIG_RSP

 Members:
	Header
 		OCTVC1 Message Header
	aDynamic
	aStatic
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER						Header;
	tOCTVC1_MAIN_ETH_PORT_CONFIG_DYNAMIC	aDynamic[cOCTVC1_MAIN_ETH_MAX_NUM_PORT];
	tOCTVC1_MAIN_ETH_PORT_CONFIG_STATIC		aStatic[cOCTVC1_MAIN_ETH_MAX_NUM_PORT];

} tOCTVC1_MAIN_MSG_ETH_INFO_PORT_CONFIG_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_ETH_MODIFY_PORT_CONFIG_CMD

 Members:
	Header
 		OCTVC1 Message Header
	aDynamic
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER						Header;
	tOCTVC1_MAIN_ETH_PORT_CONFIG_DYNAMIC	aDynamic[cOCTVC1_MAIN_ETH_MAX_NUM_PORT];

} tOCTVC1_MAIN_MSG_ETH_MODIFY_PORT_CONFIG_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_ETH_MODIFY_PORT_CONFIG_RSP

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_ETH_MODIFY_PORT_CONFIG_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_REGISTER_READ_CMD

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_REGISTER_READ_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_REGISTER_READ_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ulTdmTimestampReg
 		TDM Timestamp register.
	ulNanoSecondCounterReg
 		NanoSecond timer register.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			ulTdmTimestampReg;
	tOCT_UINT32			ulNanoSecondCounterReg;

} tOCTVC1_MAIN_MSG_REGISTER_READ_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_OCT1010_INFO_OCT1010ID_CMD

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_OCT1010_INFO_OCT1010ID_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_OCT1010_INFO_OCT1010ID_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ulOct1010IdType
 		OCT1010ID type value.
	szOct1010IdType
 		OCT1010ID type, in string format ("octfxxx").
	ulTdmOutputEnableSupportFlag
 		Whether enabling and disabling the TDM output of the OCT1010ID is supported.
	ulTdmOutputEnableDeviceFlag
 		Whether the TDM output of the OCT1010ID is currently active.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			ulOct1010IdType;
	tOCT_INT8			szOct1010IdType[16];
	tOCT_BOOL32			ulTdmOutputEnableSupportFlag;
	tOCT_BOOL32			ulTdmOutputEnableDeviceFlag;

} tOCTVC1_MAIN_MSG_OCT1010_INFO_OCT1010ID_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_OCT1010_STATUS_CORE_CMD
 		DEPRECATED as of OCTVOC-1.06.00-PR. Replaced by
 		cOCTVC1_MAIN_MSG_DEVICE_STATUS_OPUS_CORE_CID. Refer to the Main API document
 		octvocas5001 for further information.

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_OCT1010_STATUS_CORE_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_OCT1010_STATUS_CORE_RSP

 Members:
	Header
 		OCTVC1 Message Header
	aCoreStatus
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER					Header;
	tOCTVC1_MAIN_OCT1010_CORE_STATUS	aCoreStatus[cOCTDEV_DEVICES_OCT1010_MAX_CORE_NUMBER];

} tOCTVC1_MAIN_MSG_OCT1010_STATUS_CORE_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_OCT1010_INFO_CORE_CMD
 		DEPRECATED as of OCTVOC-1.06.00-PR. Replaced by
 		cOCTVC1_MAIN_MSG_DEVICE_INFO_OPUS_CORE_CID. Refer to the Main API document
 		octvocas5001 for further information.

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_OCT1010_INFO_CORE_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_OCT1010_INFO_CORE_RSP

 Members:
	Header
 		OCTVC1 Message Header
	aCoreInfo
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER				Header;
	tOCTVC1_MAIN_OCT1010_CORE_INFO	aCoreInfo[cOCTDEV_DEVICES_OCT1010_MAX_CORE_NUMBER];

} tOCTVC1_MAIN_MSG_OCT1010_INFO_CORE_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_GPIO_MODIFY_BANK_CONFIG_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ulBank
	ulDirection
	ulTriStateHigh
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			ulBank;
	tOCT_UINT32			ulDirection;
	tOCT_UINT32			ulTriStateHigh;

} tOCTVC1_MAIN_MSG_GPIO_MODIFY_BANK_CONFIG_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_GPIO_MODIFY_BANK_CONFIG_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ulBank
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			ulBank;

} tOCTVC1_MAIN_MSG_GPIO_MODIFY_BANK_CONFIG_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_GPIO_READ_BANK_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ulBank
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			ulBank;

} tOCTVC1_MAIN_MSG_GPIO_READ_BANK_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_GPIO_READ_BANK_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ulBank
	ulValue
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			ulBank;
	tOCT_UINT32			ulValue;

} tOCTVC1_MAIN_MSG_GPIO_READ_BANK_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_GPIO_WRITE_BANK_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ulBank
	ulValue
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			ulBank;
	tOCT_UINT32			ulValue;

} tOCTVC1_MAIN_MSG_GPIO_WRITE_BANK_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_GPIO_WRITE_BANK_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ulBank
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			ulBank;

} tOCTVC1_MAIN_MSG_GPIO_WRITE_BANK_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_SPI_ACCESS_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ulChipSelectPin
		Default:	0x00000000
	ulClockPin
		Default:	0x00000000
	ulDataOutPin
		Default:	0x00000000
	ulDataInPin
		Default:	0x00000000
	ulDivider
		Default:	0x3E
	ulSlaveSelectId
		Default:	0
	ulClockFrequency
		Default:	1000000
	ulClockPolarity
		Default:	cOCTVC1_MAIN_SPI_CLOCK_POLARITY_ENUM_HIGH
	ulClockPhase
		Default:	cOCTVC1_MAIN_SPI_CLOCK_PHASE_ENUM_CLOCK_TRANSITION
	ulReadByteCnt
		Default:	0
	ulWriteByteCnt
		Default:	0
	aulWriteData
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER						Header;
	tOCT_UINT32								ulChipSelectPin;
	tOCT_UINT32								ulClockPin;
	tOCT_UINT32								ulDataOutPin;
	tOCT_UINT32								ulDataInPin;
	tOCT_UINT32								ulDivider;
	tOCT_UINT32								ulSlaveSelectId;
	tOCT_UINT32								ulClockFrequency;
	tOCTVC1_MAIN_SPI_CLOCK_POLARITY_ENUM	ulClockPolarity;
	tOCTVC1_MAIN_SPI_CLOCK_PHASE_ENUM		ulClockPhase;
	tOCT_UINT32								ulReadByteCnt;
	tOCT_UINT32								ulWriteByteCnt;
	tOCT_UINT32								aulWriteData[cOCTVC1_MAIN_SPI_ACCESS_TRANSFER_MAX_LENGTH];

} tOCTVC1_MAIN_MSG_SPI_ACCESS_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_SPI_ACCESS_RSP

 Members:
	Header
 		OCTVC1 Message Header
	aulReadData
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			aulReadData[cOCTVC1_MAIN_SPI_ACCESS_TRANSFER_MAX_LENGTH];

} tOCTVC1_MAIN_MSG_SPI_ACCESS_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_PROCESS_LIST_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ObjectCursor
 		Object cursor
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER					Header;
	tOCTVC1_CURSOR_HANDLE_OBJECT_GET	ObjectCursor;

} tOCTVC1_MAIN_MSG_PROCESS_LIST_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_PROCESS_LIST_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ObjectCursor
 		Object cursor
	ObjectList
 		Object List structure.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER					Header;
	tOCTVC1_CURSOR_HANDLE_OBJECT_GET	ObjectCursor;
	tOCTVC1_LIST_HANDLE_OBJECT_GET		ObjectList;

} tOCTVC1_MAIN_MSG_PROCESS_LIST_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_PROCESS_INFO_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hProcess
		Default:	cOCTVC1_HANDLE_INVALID
 		Process handle identifier. Typically retrieved using the
 		cOCTVC1_MAIN_MSG_DEVICE_INFO_CID command.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			hProcess;

} tOCTVC1_MAIN_MSG_PROCESS_INFO_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_PROCESS_INFO_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hProcess
	szProcessImageName
 		Name of the process.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			hProcess;
	tOCT_UINT8			szProcessImageName[(cOCTVC1_MAIN_PROCESS_IMAGE_NAME_MAX_LENGTH+1)];/* NOSWAPMAC */

} tOCTVC1_MAIN_MSG_PROCESS_INFO_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_MDIO_READ_PHY_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ulPhyAddress
	ulRegisterAddress
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			ulPhyAddress;
	tOCT_UINT32			ulRegisterAddress;

} tOCTVC1_MAIN_MSG_MDIO_READ_PHY_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_MDIO_READ_PHY_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ulPhyAddress
	ulReadData
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			ulPhyAddress;
	tOCT_UINT32			ulReadData;

} tOCTVC1_MAIN_MSG_MDIO_READ_PHY_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_MDIO_WRITE_PHY_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ulPhyAddress
	ulRegisterAddress
	ulWriteData
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			ulPhyAddress;
	tOCT_UINT32			ulRegisterAddress;
	tOCT_UINT32			ulWriteData;

} tOCTVC1_MAIN_MSG_MDIO_WRITE_PHY_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_MDIO_WRITE_PHY_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ulPhyAddress
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			ulPhyAddress;

} tOCTVC1_MAIN_MSG_MDIO_WRITE_PHY_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_MODULE_MODIFY_EVT_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ulEventMask
	ulUserEventId
	hEventDestObj
 		Destination Object handle
	ulEventDestObjPort
 		Destination packet port to bind.
	ulEventDestObjFifoId
 		Destination object FIFO ID.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_MAIN_EVT_MASK	ulEventMask;
	tOCT_UINT32				ulUserEventId;
	tOCTVC1_HANDLE			hEventDestObj;
	tOCT_UINT32				ulEventDestObjPort;
	tOCT_UINT32				ulEventDestObjFifoId;

} tOCTVC1_MAIN_MSG_MODULE_MODIFY_EVT_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_MODULE_MODIFY_EVT_RSP

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_MODULE_MODIFY_EVT_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_GPIO_MONITOR_BANK_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ulBank
	ulMonitor
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			ulBank;
	tOCT_UINT32			ulMonitor;

} tOCTVC1_MAIN_MSG_GPIO_MONITOR_BANK_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_GPIO_MONITOR_BANK_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ulBank
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			ulBank;

} tOCTVC1_MAIN_MSG_GPIO_MONITOR_BANK_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_MDIO_MONITOR_PHY_CMD

 Members:
	Header
 		OCTVC1 Message Header
	aulPhyAddress
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			aulPhyAddress[2];

} tOCTVC1_MAIN_MSG_MDIO_MONITOR_PHY_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_MDIO_MONITOR_PHY_RSP

 Members:
	Header
 		OCTVC1 Message Header
	aulPhyAddress
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			aulPhyAddress[2];

} tOCTVC1_MAIN_MSG_MDIO_MONITOR_PHY_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_PROCESS_MONITOR_CPU_USAGE_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hProcess
		Default:	1
	ulAlarmThresholdHighPercent
	ulAlarmThresholdLowPercent
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			hProcess;
	tOCT_UINT32			ulAlarmThresholdHighPercent;
	tOCT_UINT32			ulAlarmThresholdLowPercent;

} tOCTVC1_MAIN_MSG_PROCESS_MONITOR_CPU_USAGE_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_PROCESS_MONITOR_CPU_USAGE_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hProcess
	ulProcessImageType
 		Process Type identifier. Value INVALID means no process running on this core.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER				Header;
	tOCT_UINT32						hProcess;
	tOCTVC1_MAIN_PROCESS_TYPE_ENUM	ulProcessImageType;

} tOCTVC1_MAIN_MSG_PROCESS_MONITOR_CPU_USAGE_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_PROCESS_INFO_CPU_USAGE_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hProcess
		Default:	1
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			hProcess;

} tOCTVC1_MAIN_MSG_PROCESS_INFO_CPU_USAGE_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_PROCESS_INFO_CPU_USAGE_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hProcess
	ulProcessImageType
 		Process Type identifier. Value INVALID means no process running on this core.
	ulAlarmThresholdHighPercent
 		Current threshold value configured to monitor High increasing CPU usage.
	ulAlarmThresholdLowPercent
 		Current threshold value configured to monitor Low decreasing CPU usage.
	ulProcessCpuUsagePercent
 		Current Process CPU usage value, expressed as a percentage.
	ulProcessCpuUsageMinPercent
 		Minimal Process CPU usage value, since last
 		cOCTVC1_MAIN_MSG_PROCESS_INFO_CPU_USAGE_CID command.
	ulProcessCpuUsageMaxPercent
 		Minimal Process CPU usage value, since last
 		cOCTVC1_MAIN_MSG_PROCESS_INFO_CPU_USAGE_CID command.
	ulNumThread
 		Number of active threads, which also represents the number of cores allocated
 		to this process.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER				Header;
	tOCT_UINT32						hProcess;
	tOCTVC1_MAIN_PROCESS_TYPE_ENUM	ulProcessImageType;
	tOCT_UINT32						ulAlarmThresholdHighPercent;
	tOCT_UINT32						ulAlarmThresholdLowPercent;
	tOCT_UINT32						ulProcessCpuUsagePercent;
	tOCT_UINT32						ulProcessCpuUsageMinPercent;
	tOCT_UINT32						ulProcessCpuUsageMaxPercent;
	tOCT_UINT32						ulNumThread;

} tOCTVC1_MAIN_MSG_PROCESS_INFO_CPU_USAGE_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_BUFFER_OPEN_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ulFormat
		Default:	cOCTVC1_BUFFER_FORMAT_ENUM_UNKNOWN
 		Format of the content to be stored in the buffer.
	ulByteLength
		Range:		[..]
		Default:	8192
 		Size, in bytes, requested for the new buffer. Depending on the buffer format, a
 		different minimum length may be used.
	szBufferName
 		Array of bytes containing the name of the new buffer.
 		The buffer name can be up to cOCTVC1_MAIN_FILE_NAME_MAX_LENGTH characters long,
 		excluding the terminating NULL character.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER			Header;
	tOCTVC1_BUFFER_FORMAT_ENUM	ulFormat;
	tOCT_UINT32					ulByteLength;
	tOCT_UINT8					szBufferName[(cOCTVC1_MAIN_FILE_NAME_MAX_LENGTH+1)];

} tOCTVC1_MAIN_MSG_BUFFER_OPEN_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_BUFFER_OPEN_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hBuffer
 		Unique Object Identifier.
	ulAllocatedByteLength
		Range:		[..]
 		Size, in bytes, allocated for the new buffer.
 		The size may have been rounded up in order to make sure it is a multiple of 16
 		bytes.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE_OBJECT	hBuffer;
	tOCT_UINT32				ulAllocatedByteLength;

} tOCTVC1_MAIN_MSG_BUFFER_OPEN_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_BUFFER_INFO_BY_NAME_CMD

 Members:
	Header
 		OCTVC1 Message Header
	szBufferName
 		Array of bytes containing the name of the buffer.
 		The buffer name can be up to cOCTVC1_MAIN_FILE_NAME_MAX_LENGTH characters long,
 		excluding the terminating NULL character.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT8			szBufferName[(cOCTVC1_MAIN_FILE_NAME_MAX_LENGTH+1)];

} tOCTVC1_MAIN_MSG_BUFFER_INFO_BY_NAME_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_BUFFER_INFO_BY_NAME_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hBuffer
 		Unique Object Identifier.
	ulFormat
 		Format of the content to be stored in the buffer.
	szBufferName
 		Array of bytes containing the name of the buffer.
 		The buffer name can be up to cOCTVC1_MAIN_FILE_NAME_MAX_LENGTH characters long,
 		excluding the terminating NULL character.
	ulUsedByteLength
 		Size, in bytes, of the information containeds in the buffer.
	ulAllocatedByteLength
 		Size, in bytes, allocated for the buffer.
	ulDependencyCount
 		Number of resources currently using this buffer.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER			Header;
	tOCTVC1_HANDLE_OBJECT		hBuffer;
	tOCTVC1_BUFFER_FORMAT_ENUM	ulFormat;
	tOCT_UINT8					szBufferName[(cOCTVC1_MAIN_FILE_NAME_MAX_LENGTH+1)];
	tOCT_UINT32					ulUsedByteLength;
	tOCT_UINT32					ulAllocatedByteLength;
	tOCT_UINT32					ulDependencyCount;

} tOCTVC1_MAIN_MSG_BUFFER_INFO_BY_NAME_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_BUFFER_CLOSE_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hBuffer
		Default:	cOCTVC1_HANDLE_INVALID
 		Unique Object Identifier.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE_OBJECT	hBuffer;

} tOCTVC1_MAIN_MSG_BUFFER_CLOSE_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_BUFFER_CLOSE_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hBuffer
 		Unique Object Identifier.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE_OBJECT	hBuffer;

} tOCTVC1_MAIN_MSG_BUFFER_CLOSE_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_BUFFER_INFO_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hBuffer
		Default:	cOCTVC1_HANDLE_INVALID
 		Unique Object Identifier.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE_OBJECT	hBuffer;

} tOCTVC1_MAIN_MSG_BUFFER_INFO_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_BUFFER_INFO_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hBuffer
 		Unique Object Identifier.
	ulFormat
 		Format of the content to be stored in the buffer.
	szBufferName
 		Array of bytes containing the name of the buffer.
 		The buffer name can be up to cOCTVC1_MAIN_FILE_NAME_MAX_LENGTH characters long,
 		excluding the terminating NULL character.
	ulUsedByteLength
 		Size, in bytes, of the information containeds in the buffer.
	ulAllocatedByteLength
 		Size, in bytes, allocated for the buffer.
	ulDependencyCount
 		Number of resources currently using this buffer.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER			Header;
	tOCTVC1_HANDLE_OBJECT		hBuffer;
	tOCTVC1_BUFFER_FORMAT_ENUM	ulFormat;
	tOCT_UINT8					szBufferName[(cOCTVC1_MAIN_FILE_NAME_MAX_LENGTH+1)];
	tOCT_UINT32					ulUsedByteLength;
	tOCT_UINT32					ulAllocatedByteLength;
	tOCT_UINT32					ulDependencyCount;

} tOCTVC1_MAIN_MSG_BUFFER_INFO_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_BUFFER_LIST_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ObjectCursor
 		Object cursor
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER					Header;
	tOCTVC1_CURSOR_HANDLE_OBJECT_GET	ObjectCursor;

} tOCTVC1_MAIN_MSG_BUFFER_LIST_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_BUFFER_LIST_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ObjectCursor
 		Object cursor
	ObjectList
 		Object List structure.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER					Header;
	tOCTVC1_CURSOR_HANDLE_OBJECT_GET	ObjectCursor;
	tOCTVC1_LIST_HANDLE_OBJECT_GET		ObjectList;

} tOCTVC1_MAIN_MSG_BUFFER_LIST_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_BUFFER_MODIFY_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hBuffer
		Default:	cOCTVC1_HANDLE_INVALID
 		Unique Object Identifier.
	ulFormat
		Default:	cOCTVC1_DO_NOT_MODIFY
 		Format of the content to be stored in the buffer.
	ulUsedByteSize
		Default:	cOCTVC1_DO_NOT_MODIFY
 		Size, in bytes, of the information contained in the buffer.
 		Setting this parameter to zero resets the content of the buffer.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER			Header;
	tOCTVC1_HANDLE_OBJECT		hBuffer;
	tOCTVC1_BUFFER_FORMAT_ENUM	ulFormat;
	tOCT_UINT32					ulUsedByteSize;

} tOCTVC1_MAIN_MSG_BUFFER_MODIFY_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_BUFFER_MODIFY_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hBuffer
 		Unique Object Identifier.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE_OBJECT	hBuffer;

} tOCTVC1_MAIN_MSG_BUFFER_MODIFY_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_BUFFER_WRITE_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hBuffer
		Default:	cOCTVC1_HANDLE_INVALID
 		Unique Object Identifier.
	ulWriteByteLength
		Range:		[..]
		Default:	0
 		Number of bytes in abyWriteData to write to the buffer.
 		The length must be a multiple of 16 bytes.
	ulWriteByteOffset
		Range:		[..]
		Default:	0
 		Offset within the buffer where abyWriteData must be written.
 		The offset must be a multiple of 16 bytes.
	abyWriteData
 		Array of bytes containing the data to write to the buffer.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE_OBJECT	hBuffer;
	tOCT_UINT32				ulWriteByteLength;
	tOCT_UINT32				ulWriteByteOffset;
	tOCT_UINT8				abyWriteData[cOCTVC1_MAIN_BUFFER_MAX_DATA_BYTE_SIZE];

} tOCTVC1_MAIN_MSG_BUFFER_WRITE_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_BUFFER_WRITE_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hBuffer
 		Unique Object Identifier.
	ulNumByteWritten
 		Number of bytes successfully written to the buffer.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE_OBJECT	hBuffer;
	tOCT_UINT32				ulNumByteWritten;

} tOCTVC1_MAIN_MSG_BUFFER_WRITE_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_BUFFER_READ_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hBuffer
		Default:	cOCTVC1_HANDLE_INVALID
 		Unique Object Identifier.
	ulMaxReadByteLength
		Range:		[..]
		Default:	cOCTVC1_MAIN_BUFFER_MAX_DATA_BYTE_SIZE
 		Maximum number of bytes to read from the buffer.
 		The length must be a multiple of 16 bytes.
	ulReadByteOffset
		Range:		[..]
		Default:	0
 		Offset within the buffer where the first byte to read is located.
 		The offset must be a multiple of 16 bytes.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE_OBJECT	hBuffer;
	tOCT_UINT32				ulMaxReadByteLength;
	tOCT_UINT32				ulReadByteOffset;

} tOCTVC1_MAIN_MSG_BUFFER_READ_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_BUFFER_READ_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hBuffer
 		Unique Object Identifier.
	ulDoneFlag
 		This flag indicates if the end of the buffer has been reached.
 		cOCT_TRUE: No more data can be read from the buffer, the end of the buffer has
 		been reached.
 		cOCT_FALSE: More data can be read from the buffer.
	ulNumByteRead
 		Number of bytes successfully read from the buffer.
	abyData
 		Array of bytes containing the data read from the buffer.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE_OBJECT	hBuffer;
	tOCT_BOOL32				ulDoneFlag;
	tOCT_UINT32				ulNumByteRead;
	tOCT_UINT8				abyData[cOCTVC1_MAIN_BUFFER_MAX_DATA_BYTE_SIZE];

} tOCTVC1_MAIN_MSG_BUFFER_READ_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_MODULE_START_TRACING_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ulTracingMode
		Default:	cOCTVC1_MAIN_TRACING_MODE_ENUM_NORMAL
 		Tracing mode to use.
	ulTracingType
		Default:	cOCTVC1_MAIN_TRACING_TYPE_ENUM_ALL
 		Type of payload to trace.
	ulNumBuffer
		Default:	1
 		Number of buffer identifier provide for the tracing mechanism.
	aBufferId
 		Array of unique Object Identifier.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER				Header;
	tOCTVC1_MAIN_TRACING_MODE_ENUM	ulTracingMode;
	tOCTVC1_MAIN_TRACING_TYPE_ENUM	ulTracingType;
	tOCT_UINT32						ulNumBuffer;
	tOCTVC1_HANDLE_OBJECT			aBufferId[cOCTVC1_MAIN_TRACING_START_MAX_NUM_BUFFER];

} tOCTVC1_MAIN_MSG_MODULE_START_TRACING_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_MODULE_START_TRACING_RSP

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_MODULE_START_TRACING_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_MODULE_STOP_TRACING_CMD

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_MODULE_STOP_TRACING_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_MODULE_STOP_TRACING_RSP

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_MODULE_STOP_TRACING_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_DEBUG_FORWARD_OPEN_CMD

 Members:
	Header
 		OCTVC1 Message Header
	hDestObj
 		Destination Object handle
	ulDestObjPort
 		Destination packet port to bind.
	ulDestObjFifoId
		Default:	cOCTVC1_FIFO_ID_INVALID
 		Destination object FIFO ID.
	DestMacAddress
 		Mac Address of the Vocallo port of the destination object
	SrcMacAddress
 		Mac Address of the Vocallo port of the source object, only effective if
 		the destination Mac Address is not equal to 0
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCTVC1_HANDLE		hDestObj;
	tOCT_UINT32			ulDestObjPort;
	tOCT_UINT32			ulDestObjFifoId;
	tOCTVC1_MAC_ADDRESS	DestMacAddress;
	tOCTVC1_MAC_ADDRESS	SrcMacAddress;

} tOCTVC1_MAIN_MSG_DEBUG_FORWARD_OPEN_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_DEBUG_FORWARD_OPEN_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hForward
 		Debug Forward Object Handle
	ulFifoId
 		Fifo ID used to reach the Debug Forward object.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCTVC1_HANDLE		hForward;
	tOCT_UINT32			ulFifoId;

} tOCTVC1_MAIN_MSG_DEBUG_FORWARD_OPEN_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_MODULE_INFO_EVT_CMD

 Members:
	Header
 		OCTVC1 Message Header
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;

} tOCTVC1_MAIN_MSG_MODULE_INFO_EVT_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_MODULE_INFO_EVT_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ulEventMask
	ulUserEventId
	hEventDestObj
 		Destination Object handle
	ulEventDestObjPort
 		Destination packet port to bind.
	ulEventDestObjFifoId
 		Destination object FIFO ID.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_MAIN_EVT_MASK	ulEventMask;
	tOCT_UINT32				ulUserEventId;
	tOCTVC1_HANDLE			hEventDestObj;
	tOCT_UINT32				ulEventDestObjPort;
	tOCT_UINT32				ulEventDestObjFifoId;

} tOCTVC1_MAIN_MSG_MODULE_INFO_EVT_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_EXECUTE_MGW_FAILOVER_CMD
 		This command initiates a failover on one of the redundant MGWs.
 		During a failover, MGW resource contexts and control FIFOs are destroyed.
 		The backup MGW sends an event once the failover is completed to inform the host
 		of the result of the failover. Once failover done, the backup MGW becomes an
 		active MGW.

 Members:
	Header
 		OCTVC1 Message Header
	hMgw
		Default:	cOCTVC1_HANDLE_INVALID
 		Redundant MGW identifier and control FIFO identifier used to reach the
 		redundant MGW.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE_OBJECT	hMgw;

} tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_EXECUTE_MGW_FAILOVER_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_EXECUTE_MGW_FAILOVER_RSP

 Members:
	Header
 		OCTVC1 Message Header
	hMgw
		Default:	cOCTVC1_HANDLE_INVALID
 		Redundant MGW identifier and control FIFO identifier used to reach the
 		redundant MGW.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER		Header;
	tOCTVC1_HANDLE_OBJECT	hMgw;

} tOCTVC1_MAIN_MSG_REDUNDANCY_SERVER_EXECUTE_MGW_FAILOVER_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_OCT1010_STATS_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ulResetStatsFlag
		Default:	cOCT_FALSE
 		Statistics counters will be reset to zero after the current values are returned.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_BOOL32			ulResetStatsFlag;

} tOCTVC1_MAIN_MSG_OCT1010_STATS_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_OCT1010_STATS_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ulOCT1010MonitorNumber
 		OCT1010 monitoring value.
	ulTdmCpyOutOfBandwidthCnt
 		Number of time TDM out of bandwidth ROL is detected. TDM out of bandwidth ROL
 		is detected when mclk frequency is too slow to transfer all available data from
 		H100 SYNC fifos to TDMCPY module.
	ulTdmTxTimeslotPtrOutOfSyncCnt
 		Number of time TDM pointer desynchronisation has occurred on the TDM bus.
	ulTdmTimestampIncrementErrorCnt
 		Number of time a problem has occurred with the OCT1010 Timestamp Increment
 		command.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			ulOCT1010MonitorNumber;
	tOCT_UINT32			ulTdmCpyOutOfBandwidthCnt;
	tOCT_UINT32			ulTdmTxTimeslotPtrOutOfSyncCnt;
	tOCT_UINT32			ulTdmTimestampIncrementErrorCnt;

} tOCTVC1_MAIN_MSG_OCT1010_STATS_RSP;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_OCT2200_STATS_CMD

 Members:
	Header
 		OCTVC1 Message Header
	ulResetStatsFlag
		Default:	cOCT_FALSE
 		Statistics counters will be reset to zero after the current values are returned.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_BOOL32			ulResetStatsFlag;

} tOCTVC1_MAIN_MSG_OCT2200_STATS_CMD;

/*-------------------------------------------------------------------------------------
	tOCTVC1_MAIN_MSG_OCT2200_STATS_RSP

 Members:
	Header
 		OCTVC1 Message Header
	ulOCT2200MonitorNumber
 		OCT1010 monitoring value.
-------------------------------------------------------------------------------------*/
typedef struct
{
	tOCTVC1_MSG_HEADER	Header;
	tOCT_UINT32			ulOCT2200MonitorNumber;

} tOCTVC1_MAIN_MSG_OCT2200_STATS_RSP;


/***************  INCLUDE FILES WITH DEPENDENCIES ON THIS FILE  **************/
#include "octvc1_main_evt.h"

#ifdef cDO_PRAGMA_PACK_POP
#pragma pack( pop )
#endif /* cDO_PRAGMA_PACK_POP */
#undef cDO_PRAGMA_PACK_POP

#endif /* __OCTVC1_MAIN_API_H__ */

