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

File: OCTVC1_GSM_RC.h

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

Description: Contains the return codes for the GSM 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)

$Octasic_Revision: $

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

#ifndef OCTVC1_GSM_RC_H__
#define OCTVC1_GSM_RC_H__


/*****************************  INCLUDE FILES  *******************************/
#include "../octvc1_base.h"

/*****************************  DATA TYPES  *******************************/

/*-------------------------------------------------------------------------------------
	tOCTVC1_GSM_ERR_ENUM :
-------------------------------------------------------------------------------------*/
#define tOCTVC1_GSM_ERR_ENUM								tOCT_UINT32

#define cOCTVC1_GSM_ERR_ENUM_GENERIC_BASE						0x0100
#define cOCTVC1_GSM_ERR_ENUM_GENERIC_INPUT_FIFO_OVERFLOW		( 0x0000 + cOCTVC1_GSM_ERR_ENUM_GENERIC_BASE )	
#define cOCTVC1_GSM_ERR_ENUM_GENERIC_INVALID_INPUT_PKT_FORMAT	( 0x0002 + cOCTVC1_GSM_ERR_ENUM_GENERIC_BASE )	
#define cOCTVC1_GSM_ERR_ENUM_GENERIC_OUTPUT_FIFO_FULL			( 0x0003 + cOCTVC1_GSM_ERR_ENUM_GENERIC_BASE )	
#define cOCTVC1_GSM_ERR_ENUM_GENERIC_INPUT_FIFO_EMPTY			( 0x0005 + cOCTVC1_GSM_ERR_ENUM_GENERIC_BASE )	

#define cOCTVC1_GSM_ERR_ENUM_SYSTEM_BASE					0x0200
#define cOCTVC1_GSM_ERR_ENUM_SYSTEM_BOOT_ERROR				( 0x0001 + cOCTVC1_GSM_ERR_ENUM_SYSTEM_BASE )	 	/* Unexpected error. */
#define cOCTVC1_GSM_ERR_ENUM_SYSTEM_EXIT_ERROR				( 0x0001 + cOCTVC1_GSM_ERR_ENUM_SYSTEM_BASE )	 	/* Unexpected error. */

#define cOCTVC1_GSM_ERR_ENUM_DMA_BASE						0x0300
#define cOCTVC1_GSM_ERR_ENUM_DMA_INIT_ERROR					( 0x0001 + cOCTVC1_GSM_ERR_ENUM_DMA_BASE )	
#define cOCTVC1_GSM_ERR_ENUM_DMA_MODE_ERROR					( 0x0002 + cOCTVC1_GSM_ERR_ENUM_DMA_BASE )	
#define cOCTVC1_GSM_ERR_ENUM_DMA_WRITE_ERROR				( 0x0003 + cOCTVC1_GSM_ERR_ENUM_DMA_BASE )	
#define cOCTVC1_GSM_ERR_ENUM_DMA_READ_ERROR					( 0x0004 + cOCTVC1_GSM_ERR_ENUM_DMA_BASE )	

#define cOCTVC1_GSM_ERR_ENUM_DOWNLINK_INNER_MODEM_BASE				0x0500
#define cOCTVC1_GSM_ERR_ENUM_DOWNLINK_INNER_MODEM_INTERNAL_ERROR	( 0x0001 + cOCTVC1_GSM_ERR_ENUM_DOWNLINK_INNER_MODEM_BASE )	 	/* Unexpected error. */

#define cOCTVC1_GSM_ERR_ENUM_DOWNLINK_OUTER_MODEM_BASE				0x0600
#define cOCTVC1_GSM_ERR_ENUM_DOWNLINK_OUTER_MODEM_INTERNAL_ERROR	( 0x0001 + cOCTVC1_GSM_ERR_ENUM_DOWNLINK_OUTER_MODEM_BASE )	 	/* Unexpected error. */

#define cOCTVC1_GSM_ERR_ENUM_UPLINK_INNER_MODEM_BASE			0x0700
#define cOCTVC1_GSM_ERR_ENUM_UPLINK_INNER_MODEM_INTERNAL_ERROR	( 0x0001 + cOCTVC1_GSM_ERR_ENUM_UPLINK_INNER_MODEM_BASE )	 	/* Unexpected error. */

#define cOCTVC1_GSM_ERR_ENUM_UPLINK_OUTER_MODEM_BASE			0x0800
#define cOCTVC1_GSM_ERR_ENUM_UPLINK_OUTER_MODEM_INTERNAL_ERROR	( 0x0001 + cOCTVC1_GSM_ERR_ENUM_UPLINK_OUTER_MODEM_BASE )	 	/* Unexpected error. */

#define cOCTVC1_GSM_ERR_ENUM_RF_INTERFACE_BASE				0x0900
#define cOCTVC1_GSM_ERR_ENUM_RF_INTERFACE_INTERNAL_ERROR	( 0x0001 + cOCTVC1_GSM_ERR_ENUM_RF_INTERFACE_BASE )	 	/* Unexpected error. */

#define cOCTVC1_GSM_ERR_ENUM_LAST							0x1000	

/*-------------------------------------------------------------------------------------
	tOCTVC1_GSM_RC : 	Generic message and commands errors
-------------------------------------------------------------------------------------*/
#define tOCTVC1_GSM_RC										tOCT_UINT32


/*-------------------------------------------------------------------------------------
	tOCTVC1_GSM_2G_MSG_ENUM :
-------------------------------------------------------------------------------------*/
#define tOCTVC1_GSM_2G_MSG_ENUM								tOCT_UINT32

#define cOCTVC1_GSM_2G_MSG_ENUM_INTERNAL_ERROR				0x0001	
#define cOCTVC1_GSM_2G_MSG_ENUM_GENERIC_BASE				0x0100
#define cOCTVC1_GSM_2G_MSG_ENUM_GENERIC_HELLO_WORLD			( 0x0000 + cOCTVC1_GSM_2G_MSG_ENUM_GENERIC_BASE )	

#define cOCTVC1_GSM_2G_MSG_ENUM_SPECIFIC_SUBJECT_BASE			0x0200
#define cOCTVC1_GSM_2G_MSG_ENUM_SPECIFIC_SUBJECT_HELLO_WORLD	( 0x0001 + cOCTVC1_GSM_2G_MSG_ENUM_SPECIFIC_SUBJECT_BASE )	 	/* Unexpected error. */

#define cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_BASE						0x0300
#define cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_ULIM_READY				( 0x0001 + cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_BASE )	 	/* The up link inner modem is ready to process data. */
#define cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_ULOM_READY				( 0x0002 + cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_BASE )	 	/* The up link outer modem is ready to process data. */
#define cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_DLIM_READY				( 0x0003 + cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_BASE )	 	/* The down link inner modem is ready to process data. */
#define cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_DLOM_READY				( 0x0004 + cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_BASE )	 	/* The down link outer modem is ready to process data. */
#define cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_L1C_READY				( 0x0005 + cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_BASE )	 	/* The down link outer modem is ready to process data. */
#define cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_RACH_READY				( 0x0006 + cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_BASE )	 	/* The down link outer modem is ready to process data. */
#define cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_DL_RFI_READY				( 0x0007 + cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_BASE )	 	/* The down link radio frequency interface ready to process data. */
#define cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_UL_RFI_READY				( 0x0008 + cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_BASE )	 	/* The up link radio frequency interface ready to process data. */
#define cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_HSDLOM_READY				( 0x0009 + cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_BASE )	 	/* The up link radio frequency interface ready to process data. */
#define cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_HSDLIM_READY				( 0x000A + cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_BASE )	 	/* The up link radio frequency interface ready to process data. */
#define cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_MODEM_SETUP_COMPLETED	( 0x000B + cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_BASE )	 	/* Indicates that the modem setup is completed. */
#define cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_CELL_SETUP_COMPLETED		( 0x000C + cOCTVC1_GSM_2G_MSG_ENUM_SYSTEM_BASE )	 	/* Indicate that the cell setup is completed. */

#define cOCTVC1_GSM_2G_MSG_ENUM_ULIM_BASE					0x0400
#define cOCTVC1_GSM_2G_MSG_ENUM_ULIM_RACH_DETECT			( 0x0001 + cOCTVC1_GSM_2G_MSG_ENUM_ULIM_BASE )	 	/* Random access channel dectection. */

#define cOCTVC1_GSM_2G_MSG_ENUM_LAST						0x1000	

/****************************************************************************
	GSM return codes
 ****************************************************************************/

/****************************************************************************
	GENERIC return codes
 ****************************************************************************/
#define cOCTVC1_GSM_GENERIC_RC_BASE							 ( 0x0100 + cOCTVC1_GSM_RC_BASE )

#define cOCTVC1_GSM_RC_GENERIC_EVENT_MASK_INVALID			 ( 0x0000 + cOCTVC1_GSM_GENERIC_RC_BASE )

/****************************************************************************
	Validate return codes
 ****************************************************************************/
#define cOCTVC1_GSM_AUTO_VALIDATE_RC_BASE					 ( 0xF000 + cOCTVC1_GSM_RC_BASE )

#define cOCTVC1_GSM_RC_MODULE__INVALID_US_MESSAGE_LENGTH	 ( 0x1 + cOCTVC1_GSM_AUTO_VALIDATE_RC_BASE )

#endif /* OCTVC1_GSM_RC_H__ */

