/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\ File: OCTVC1_HW_API.h Copyright (c) 2016 Octasic Inc. All rights reserved. Description: Contains the definition of the HW API. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 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 General Public License along with this program;if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Release: OCTSDR Software Development Kit OCTSDR_GSM-02.05.00-B780 (2016/01/14) $Revision: $ \*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ #ifndef __OCTVC1_HW_API_H__ #define __OCTVC1_HW_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_process.h" #include "../octvc1_radio.h" #include "octvc1_hw_id.h" #include "octvc1_hw_rc.h" /************************ COMMON DEFINITIONS *******************************/ /*------------------------------------------------------------------------------------- PCB related definitions. -------------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------------- PCB source information state. -------------------------------------------------------------------------------------*/ #define tOCTVC1_HW_PCB_INFO_SOURCE_ENUM tOCT_UINT32 #define cOCTVC1_HW_PCB_INFO_SOURCE_ENUM_USER_HW_CONFIG 0 #define cOCTVC1_HW_PCB_INFO_SOURCE_ENUM_DATA_SECTION 1 #define cOCTVC1_HW_PCB_INFO_SOURCE_ENUM_EEPROM 2 #define cOCTVC1_HW_PCB_INFO_SOURCE_ENUM_INI_FILE 3 /*------------------------------------------------------------------------------------- PCB information state. -------------------------------------------------------------------------------------*/ #define tOCTVC1_HW_PCB_INFO_STATE_ENUM tOCT_UINT32 #define cOCTVC1_HW_PCB_INFO_STATE_ENUM_PARSED_ERROR 0 #define cOCTVC1_HW_PCB_INFO_STATE_ENUM_PARSED_OK 1 /*------------------------------------------------------------------------------------- PCB max field definitions. -------------------------------------------------------------------------------------*/ #define cOCTVC1_HW_PCB_NAME_MAX_LENGTH 23 /* Device PCB name. */ #define cOCTVC1_HW_PCB_SERIAL_MAX_LENGTH 23 /* Device PCB serial number. */ #define cOCTVC1_HW_PCB_FILENAME_MAX_LENGTH 23 /* Device PCB name. */ #define cOCTVC1_HW_PCB_GPS_NAME_MAX_LENGTH 23 /* GPS name. */ #define cOCTVC1_HW_PCB_WIFI_NAME_MAX_LENGTH 23 /* WIFI name. */ /*------------------------------------------------------------------------------------- CPU CORE related definitions. -------------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------------- Cpu Core Mask. -------------------------------------------------------------------------------------*/ #define tOCTVC1_HW_CPU_CORE_MASK tOCT_UINT32 #define cOCTVC1_HW_CPU_CORE_MASK_1 ((tOCT_UINT32)(1<<1) ) #define cOCTVC1_HW_CPU_CORE_MASK_2 ((tOCT_UINT32)(1<<2) ) #define cOCTVC1_HW_CPU_CORE_MASK_3 ((tOCT_UINT32)(1<<3) ) #define cOCTVC1_HW_CPU_CORE_MASK_4 ((tOCT_UINT32)(1<<4) ) #define cOCTVC1_HW_CPU_CORE_MASK_5 ((tOCT_UINT32)(1<<5) ) #define cOCTVC1_HW_CPU_CORE_MASK_6 ((tOCT_UINT32)(1<<6) ) #define cOCTVC1_HW_CPU_CORE_MASK_7 ((tOCT_UINT32)(1<<7) ) #define cOCTVC1_HW_CPU_CORE_MASK_8 ((tOCT_UINT32)(1<<8) ) #define cOCTVC1_HW_CPU_CORE_MASK_9 ((tOCT_UINT32)(1<<9) ) #define cOCTVC1_HW_CPU_CORE_MASK_10 ((tOCT_UINT32)(1<<10) ) #define cOCTVC1_HW_CPU_CORE_MASK_11 ((tOCT_UINT32)(1<<11) ) #define cOCTVC1_HW_CPU_CORE_MASK_12 ((tOCT_UINT32)(1<<12) ) #define cOCTVC1_HW_CPU_CORE_MASK_13 ((tOCT_UINT32)(1<<13) ) #define cOCTVC1_HW_CPU_CORE_MASK_14 ((tOCT_UINT32)(1<<14) ) #define cOCTVC1_HW_CPU_CORE_MASK_15 ((tOCT_UINT32)(1<<15) ) #define cOCTVC1_HW_CPU_CORE_MASK_16 ((tOCT_UINT32)(1<<16) ) #define cOCTVC1_HW_CPU_CORE_MASK_17 ((tOCT_UINT32)(1<<17) ) #define cOCTVC1_HW_CPU_CORE_MASK_18 ((tOCT_UINT32)(1<<18) ) #define cOCTVC1_HW_CPU_CORE_MASK_19 ((tOCT_UINT32)(1<<19) ) #define cOCTVC1_HW_CPU_CORE_MASK_20 ((tOCT_UINT32)(1<<20) ) #define cOCTVC1_HW_CPU_CORE_MASK_21 ((tOCT_UINT32)(1<<21) ) #define cOCTVC1_HW_CPU_CORE_MASK_22 ((tOCT_UINT32)(1<<22) ) #define cOCTVC1_HW_CPU_CORE_MASK_23 ((tOCT_UINT32)(1<<23) ) #define cOCTVC1_HW_CPU_CORE_MASK_24 ((tOCT_UINT32)(1<<24) ) /*------------------------------------------------------------------------------------- Core Status. -------------------------------------------------------------------------------------*/ #define tOCTVC1_HW_CPU_CORE_STATUS_ENUM tOCT_UINT32 #define cOCTVC1_HW_CPU_CORE_STATUS_ENUM_RESET 0 /* The core is in reset mode. */ /* This is the state of cores that have not been started. */ #define cOCTVC1_HW_CPU_CORE_STATUS_ENUM_RUNNING 1 /* The core is executing code. */ /* This is the typical state of cores that have been started in target. */ #define cOCTVC1_HW_CPU_CORE_STATUS_ENUM_HALT 2 /* The core has reached an instruction that caused the core to stop executing code. */ /* This is an error condition. */ #define cOCTVC1_HW_CPU_CORE_STATUS_ENUM_TRAP 3 /* The core has reached an instruction that caused the core to stop executing code. */ /* This is an error condition. */ #define cOCTVC1_HW_CPU_CORE_STATUS_ENUM_ACCESS_VIOLATION 4 /* The core has stopped execution because the code it is hosting caused an access */ /* violation. */ /* This is an error condition. */ #define cOCTVC1_HW_CPU_CORE_STATUS_ENUM_NOT_PRESENT 5 /* The core is not present on the device. */ #define cOCTVC1_HW_CPU_CORE_STATUS_ENUM_FAILURE_DETECTED 6 /* A failure has been detected and this core cannot be used anymore. */ /* Contact Octasic Support. */ /*------------------------------------------------------------------------------------- Cpu Core Failure Mask. -------------------------------------------------------------------------------------*/ #define tOCTVC1_HW_CPU_CORE_FAILURE_MASK tOCT_UINT32 #define cOCTVC1_HW_CPU_CORE_FAILURE_MASK_NONE 0 /* No failures have been detected. */ #define cOCTVC1_HW_CPU_CORE_FAILURE_MASK_MEMORY ((tOCT_UINT32)(1<<1) ) /* A memory failure has been detected on the core */ /*------------------------------------------------------------------------------------- tOCTVC1_HW_CPU_CORE_STATS Members: ulCoreStatus ulProgramCounter ulFailureMask Valid when ulCoreStatus = FAILURE_DETECTED. Contact Octasic Support. ulAccessViolationAddress -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_HW_CPU_CORE_STATUS_ENUM ulCoreStatus; tOCT_UINT32 ulProgramCounter; tOCTVC1_HW_CPU_CORE_FAILURE_MASK ulFailureMask; tOCT_UINT32 ulAccessViolationAddress; } tOCTVC1_HW_CPU_CORE_STATS; /*------------------------------------------------------------------------------------- tOCTVC1_HW_CPU_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. Value 0 means no core is running for this logical identifier. ulProcessImageType Default: cOCTVC1_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_PROCESS_TYPE_ENUM ulProcessImageType; } tOCTVC1_HW_CPU_CORE_INFO; /*------------------------------------------------------------------------------------- ETH port related definitions. -------------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------------- Ethernet port mode of operation. -------------------------------------------------------------------------------------*/ #define tOCTVC1_HW_ETH_MODE_ENUM tOCT_UINT32 #define cOCTVC1_HW_ETH_MODE_ENUM_INVALID 0xFFFFFFFF #define cOCTVC1_HW_ETH_MODE_ENUM_MII 0 #define cOCTVC1_HW_ETH_MODE_ENUM_RMII 1 #define cOCTVC1_HW_ETH_MODE_ENUM_GMII 2 #define cOCTVC1_HW_ETH_MODE_ENUM_RGMII 3 #define cOCTVC1_HW_ETH_MODE_ENUM_SGMII 4 /*------------------------------------------------------------------------------------- Ethernet link speed (MBits). -------------------------------------------------------------------------------------*/ #define tOCTVC1_HW_ETH_LINK_SPEED_ENUM tOCT_UINT32 #define cOCTVC1_HW_ETH_LINK_SPEED_ENUM_INVALID 0xFFFFFFFF #define cOCTVC1_HW_ETH_LINK_SPEED_ENUM_10 10 #define cOCTVC1_HW_ETH_LINK_SPEED_ENUM_100 100 #define cOCTVC1_HW_ETH_LINK_SPEED_ENUM_1000 1000 /*------------------------------------------------------------------------------------- Ethernet duplex mode. -------------------------------------------------------------------------------------*/ #define tOCTVC1_HW_ETH_DUPLEX_MODE_ENUM tOCT_UINT32 #define cOCTVC1_HW_ETH_DUPLEX_MODE_ENUM_INVALID 0 #define cOCTVC1_HW_ETH_DUPLEX_MODE_ENUM_FULL 1 #define cOCTVC1_HW_ETH_DUPLEX_MODE_ENUM_HALF 2 /*------------------------------------------------------------------------------------- ETH port. -------------------------------------------------------------------------------------*/ #define cOCTVC1_HW_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_HW_ETH_PORT_CONFIG Members: MacAddress ulPromiscuousModeFlag When set, all frames are accepted ulAcceptMulticastFlag When set, multicast and broadcast frames are accepted ulAcceptJumboFrameFlag When set, Jumbo frames are accepted. See hardware documentation for interface maximum payload size. ulSgmiiAutoNegotationFlag When set, sGMII auto-negotiation is enable ulLinkSpeed ulDuplexMode -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MAC_ADDRESS MacAddress; tOCT_BOOL32 ulPromiscuousModeFlag; tOCT_BOOL32 ulAcceptMulticastFlag; tOCT_BOOL32 ulAcceptJumboFrameFlag; tOCT_BOOL32 ulSgmiiAutoNegotationFlag; tOCTVC1_HW_ETH_LINK_SPEED_ENUM ulLinkSpeed; tOCTVC1_HW_ETH_DUPLEX_MODE_ENUM ulDuplexMode; } tOCTVC1_HW_ETH_PORT_CONFIG; /*------------------------------------------------------------------------------------- tOCTVC1_HW_ETH_PORT_TX_ERROR_STATS Members: ulTxUnderflowCnt Number of frames aborted due to frame underflow error. ulTxLateCollisionCnt Number of frames aborted due to late collision error. ulTxExcessCollisionCnt Number of frames aborted due to excessive collision errors. ulTxExcessDeferralCnt Number of frames aborted due to excessive deferral error. -------------------------------------------------------------------------------------*/ typedef struct { tOCT_UINT32 ulTxUnderflowCnt; tOCT_UINT32 ulTxLateCollisionCnt; tOCT_UINT32 ulTxExcessCollisionCnt; tOCT_UINT32 ulTxExcessDeferralCnt; } tOCTVC1_HW_ETH_PORT_TX_ERROR_STATS; /*------------------------------------------------------------------------------------- tOCTVC1_HW_ETH_PORT_TX_STATS Members: ulTxFrameCnt Number of frames transmitted. This number includes good and bad frames but excludes retried frames. ulTxByteCnt Number of bytes transmitted in good and bad frames. This number excludes preamble and retried bytes. ulTxPauseFrameCnt Number of times Ethernet port sent a PAUSE frame. ulTxVlanFrameCnt Number of times Ethernet port sent a VLAN frame. ulTxJumboFrameCnt Number of frames transmitted with byte length over 1,024. TxErrorStat -------------------------------------------------------------------------------------*/ typedef struct { tOCT_UINT32 ulTxFrameCnt; tOCT_UINT32 ulTxByteCnt; tOCT_UINT32 ulTxPauseFrameCnt; tOCT_UINT32 ulTxVlanFrameCnt; tOCT_UINT32 ulTxJumboFrameCnt; tOCTVC1_HW_ETH_PORT_TX_ERROR_STATS TxErrorStat; } tOCTVC1_HW_ETH_PORT_TX_STATS; /*------------------------------------------------------------------------------------- tOCTVC1_HW_ETH_PORT_RX_ERROR_STATS Members: ulRxCrcErrorCnt Number of times the Ethernet port detected packets with an invalid Cyclic Redundancy Check (CRC). ulRxAlignmentErrorCnt Number of frames received with alignment (dribble) error. Valid only in 10/100 mode. 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. ulRxUndersizeCnt Number of frames received with a byte length of less than 64. This number includes good frames only. ulRxOversizeCnt Number of frames received with byte length greater than the maximum size. ulRxLengthCnt Number of frames received with a valid Length Type field, but the size of the received frame does not match the value in the Length Type field. ulRxOutOfRangeCnt Number of frames received with length field not equal to the valid frame size (between 1,500 and 1,536 bytes, inclusive). ulRxFifoOverflowCnt Number of received frames missed due to FIFO overflow. ulRxWatchdogCnt Number of frames received with an error due to watchdog timeout (frames with a data load larger than 2,048 bytes. -------------------------------------------------------------------------------------*/ typedef struct { tOCT_UINT32 ulRxCrcErrorCnt; tOCT_UINT32 ulRxAlignmentErrorCnt; tOCT_UINT32 ulRxJabberErrorCnt; tOCT_UINT32 ulRxUndersizeCnt; tOCT_UINT32 ulRxOversizeCnt; tOCT_UINT32 ulRxLengthCnt; tOCT_UINT32 ulRxOutOfRangeCnt; tOCT_UINT32 ulRxFifoOverflowCnt; tOCT_UINT32 ulRxWatchdogCnt; } tOCTVC1_HW_ETH_PORT_RX_ERROR_STATS; /*------------------------------------------------------------------------------------- tOCTVC1_HW_ETH_PORT_RX_STATS Members: ulRxFrameCnt Number of frames received. This number includes good and bad frames. ulRxByteCnt Number of bytes received in good and bad frames. This number excludes preamble. ulRxJumboFrameCnt Number of frames received with byte length over 1,024. ulRxPauseFrameCnt Number of times Ethernet port detected a PAUSE frame. ulRxVlanFrameCnt Number of good and bad VLAN frames received. RxErrorStat -------------------------------------------------------------------------------------*/ typedef struct { tOCT_UINT32 ulRxFrameCnt; tOCT_UINT32 ulRxByteCnt; tOCT_UINT32 ulRxJumboFrameCnt; tOCT_UINT32 ulRxPauseFrameCnt; tOCT_UINT32 ulRxVlanFrameCnt; tOCTVC1_HW_ETH_PORT_RX_ERROR_STATS RxErrorStat; } tOCTVC1_HW_ETH_PORT_RX_STATS; /*------------------------------------------------------------------------------------- RF_PORT related definitions. -------------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------------- tOCTVC1_HW_RF_PORT_RX_STATS Members: ulRxByteCnt Number of bytes received. Attentions 32-bits counter ulRxOverflowCnt Count the number overflow Counter increase by 1 each time an overflow is detected between two receive ulRxAverageBytePerSecond Average byte receive per seconds ulRxAveragePeriodUs Average Time in micro second between two receive ulFrequencyKhz Current frequency in Khz -------------------------------------------------------------------------------------*/ typedef struct { tOCT_UINT32 ulRxByteCnt; tOCT_UINT32 ulRxOverflowCnt; tOCT_UINT32 ulRxAverageBytePerSecond; tOCT_UINT32 ulRxAveragePeriodUs; tOCT_UINT32 ulFrequencyKhz; } tOCTVC1_HW_RF_PORT_RX_STATS; /*------------------------------------------------------------------------------------- tOCTVC1_HW_RF_PORT_TX_STATS Members: ulTxByteCnt Number of bytes received. Attentions 32-bits counter ulTxUnderflowCnt Count the number underflow Counter increase by 1 each time an overflow is detected between two send ulTxAverageBytePerSecond Average byte receive per seconds ulTxAveragePeriodUs Average Time in micro second between two send ulFrequencyKhz Current frequency in Khz -------------------------------------------------------------------------------------*/ typedef struct { tOCT_UINT32 ulTxByteCnt; tOCT_UINT32 ulTxUnderflowCnt; tOCT_UINT32 ulTxAverageBytePerSecond; tOCT_UINT32 ulTxAveragePeriodUs; tOCT_UINT32 ulFrequencyKhz; } tOCTVC1_HW_RF_PORT_TX_STATS; /*------------------------------------------------------------------------------------- Clock Sync Manager related definitions. -------------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------------- Clock Sync Manager Source -------------------------------------------------------------------------------------*/ #define tOCTVC1_HW_CLOCK_SYNC_MGR_SOURCE_ENUM tOCT_UINT32 #define cOCTVC1_HW_CLOCK_SYNC_MGR_SOURCE_ENUM_FREQ_1HZ 0 #define cOCTVC1_HW_CLOCK_SYNC_MGR_SOURCE_ENUM_FREQ_10MHZ 1 #define cOCTVC1_HW_CLOCK_SYNC_MGR_SOURCE_ENUM_FREQ_30_72MHZ 2 #define cOCTVC1_HW_CLOCK_SYNC_MGR_SOURCE_ENUM_FREQ_1HZ_EXT 3 #define cOCTVC1_HW_CLOCK_SYNC_MGR_SOURCE_ENUM_NONE 4 /* Clock Sync Manager is not initialized. */ /* Base on config file informations. */ /*------------------------------------------------------------------------------------- Clock Sync Manager Source Selection. -------------------------------------------------------------------------------------*/ #define tOCTVC1_HW_CLOCK_SYNC_MGR_SOURCE_SELECTION_ENUM tOCT_UINT32 #define cOCTVC1_HW_CLOCK_SYNC_MGR_SOURCE_SELECTION_ENUM_AUTOSELECT 0 /* Clock Source is selected by the PHY. */ /* Base on config file informations. */ #define cOCTVC1_HW_CLOCK_SYNC_MGR_SOURCE_SELECTION_ENUM_CONFIG_FILE 1 /* Clock Source should be selected by the host application. */ /* Host did not specify the source yet. */ /* Expecting rate is defined by config file. */ #define cOCTVC1_HW_CLOCK_SYNC_MGR_SOURCE_SELECTION_ENUM_HOST_APPLICATION 2 /* Clock Source was selected by the host application. */ /* Host did specify the source through API call. */ /*------------------------------------------------------------------------------------- Clock Sync manager sync source state -------------------------------------------------------------------------------------*/ #define tOCTVC1_HW_CLOCK_SYNC_MGR_SOURCE_STATE_ENUM tOCT_UINT32 #define cOCTVC1_HW_CLOCK_SYNC_MGR_SOURCE_STATE_ENUM_INVALID 0 /* The clock source is not valid. */ /* (Ex: GPS is not available). */ #define cOCTVC1_HW_CLOCK_SYNC_MGR_SOURCE_STATE_ENUM_VALID 1 /* The clock source is valid. */ #define cOCTVC1_HW_CLOCK_SYNC_MGR_SOURCE_STATE_ENUM_UNSPECIFIED 2 /* The clock source state was never specified by the host application. */ /*------------------------------------------------------------------------------------- Clock Sync manager state -------------------------------------------------------------------------------------*/ #define tOCTVC1_HW_CLOCK_SYNC_MGR_STATE_ENUM tOCT_UINT32 #define cOCTVC1_HW_CLOCK_SYNC_MGR_STATE_ENUM_UNINITIALIZE 0 #define cOCTVC1_HW_CLOCK_SYNC_MGR_STATE_ENUM_IDLE 1 #define cOCTVC1_HW_CLOCK_SYNC_MGR_STATE_ENUM_NO_EXT_CLOCK 2 /* Never detect any clock. */ #define cOCTVC1_HW_CLOCK_SYNC_MGR_STATE_ENUM_LOCKED 3 #define cOCTVC1_HW_CLOCK_SYNC_MGR_STATE_ENUM_UNLOCKED 4 #define cOCTVC1_HW_CLOCK_SYNC_MGR_STATE_ENUM_ERROR 5 #define cOCTVC1_HW_CLOCK_SYNC_MGR_STATE_ENUM_DISABLE 6 /* The actual PCB does not supporte this service. */ #define cOCTVC1_HW_CLOCK_SYNC_MGR_STATE_ENUM_LOSS_EXT_CLOCK 7 /* No more clock detected. */ /***************************** METHODS *************************************/ /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_PCB_INFO_CMD Members: Header OCTVC1 Message Header -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; } tOCTVC1_HW_MSG_PCB_INFO_CMD; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_PCB_INFO_RSP Members: Header OCTVC1 Message Header szName PCB name/model ulDeviceId PCB device order (Primary=0/Secondary=1...) szSerial PCB serial number szFilename File containing raw PCB info ulInfoSource PCB information source. ulInfoState PCB information state. szGpsName GPS name szWifiName WIFI name -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCT_INT8 szName[(cOCTVC1_HW_PCB_NAME_MAX_LENGTH+1)]; tOCT_UINT32 ulDeviceId; tOCT_INT8 szSerial[(cOCTVC1_HW_PCB_SERIAL_MAX_LENGTH+1)]; tOCT_INT8 szFilename[(cOCTVC1_HW_PCB_FILENAME_MAX_LENGTH+1)]; tOCTVC1_HW_PCB_INFO_SOURCE_ENUM ulInfoSource; tOCTVC1_HW_PCB_INFO_STATE_ENUM ulInfoState; tOCT_INT8 szGpsName[(cOCTVC1_HW_PCB_GPS_NAME_MAX_LENGTH+1)]; tOCT_INT8 szWifiName[(cOCTVC1_HW_PCB_WIFI_NAME_MAX_LENGTH+1)]; } tOCTVC1_HW_MSG_PCB_INFO_RSP; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_CPU_CORE_STATS_CMD Members: Header OCTVC1 Message Header ulCoreIndex Cpu Core identifier -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_INDEX ulCoreIndex; } tOCTVC1_HW_MSG_CPU_CORE_STATS_CMD; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_CPU_CORE_STATS_RSP Members: Header OCTVC1 Message Header CoreStats -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_HW_CPU_CORE_STATS CoreStats; } tOCTVC1_HW_MSG_CPU_CORE_STATS_RSP; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_CPU_CORE_INFO_CMD Members: Header OCTVC1 Message Header ulCoreIndex Cpu Core identifier -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_INDEX ulCoreIndex; } tOCTVC1_HW_MSG_CPU_CORE_INFO_CMD; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_CPU_CORE_INFO_RSP Members: Header OCTVC1 Message Header CoreInfo -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_HW_CPU_CORE_INFO CoreInfo; } tOCTVC1_HW_MSG_CPU_CORE_INFO_RSP; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_CPU_CORE_LIST_CMD Members: Header IndexGet Object cursor -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_CURSOR_INDEX_GET IndexGet; } tOCTVC1_HW_MSG_CPU_CORE_LIST_CMD; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_CPU_CORE_LIST_RSP Members: Header OCTVC1 Message Header IndexGet Object cursor IndexList Object name list. -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_CURSOR_INDEX_GET IndexGet; tOCTVC1_LIST_INDEX_GET IndexList; } tOCTVC1_HW_MSG_CPU_CORE_LIST_RSP; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_ETH_PORT_INFO_CMD Members: Header OCTVC1 Message Header ulPortIndex Unique ETH port identifier -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_INDEX ulPortIndex; } tOCTVC1_HW_MSG_ETH_PORT_INFO_CMD; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_ETH_PORT_INFO_RSP Members: Header OCTVC1 Message Header ulPortIndex Unique ETH port identifier ulInterfaceId Interface ID ulMode ulTxPktQueuesByteSize ulRxPktQueuesByteSize ulRestrictedApiFlag Set to TRUE when this port can be configure by control port. ulEnableFlag Set to TRUE when this port is used by the target application. Config -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_INDEX ulPortIndex; tOCT_UINT32 ulInterfaceId; tOCTVC1_HW_ETH_MODE_ENUM ulMode; tOCT_UINT32 ulTxPktQueuesByteSize; tOCT_UINT32 ulRxPktQueuesByteSize; tOCT_BOOL32 ulRestrictedApiFlag; tOCT_BOOL32 ulEnableFlag; tOCTVC1_HW_ETH_PORT_CONFIG Config; } tOCTVC1_HW_MSG_ETH_PORT_INFO_RSP; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_ETH_PORT_LIST_CMD Members: Header IndexGet Object cursor -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_CURSOR_INDEX_GET IndexGet; } tOCTVC1_HW_MSG_ETH_PORT_LIST_CMD; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_ETH_PORT_LIST_RSP Members: Header OCTVC1 Message Header IndexGet Object cursor IndexList Object name list. -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_CURSOR_INDEX_GET IndexGet; tOCTVC1_LIST_INDEX_GET IndexList; } tOCTVC1_HW_MSG_ETH_PORT_LIST_RSP; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_ETH_PORT_STATS_CMD Members: Header OCTVC1 Message Header ulPortIndex Unique ETH port identifier ulResetStatsFlag Default: cOCT_FALSE Statistics counters will be reset to zero after the current values are returned. -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_INDEX ulPortIndex; tOCT_BOOL32 ulResetStatsFlag; } tOCTVC1_HW_MSG_ETH_PORT_STATS_CMD; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_ETH_PORT_STATS_RSP Members: Header OCTVC1 Message Header ulPortIndex Unique ETH port identifier RxStats TxStats -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_INDEX ulPortIndex; tOCTVC1_HW_ETH_PORT_RX_STATS RxStats; tOCTVC1_HW_ETH_PORT_TX_STATS TxStats; } tOCTVC1_HW_MSG_ETH_PORT_STATS_RSP; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_ETH_PORT_MODIFY_CMD Members: Header OCTVC1 Message Header ulPortIndex Unique ETH port identifier Config -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_INDEX ulPortIndex; tOCTVC1_HW_ETH_PORT_CONFIG Config; } tOCTVC1_HW_MSG_ETH_PORT_MODIFY_CMD; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_ETH_PORT_MODIFY_RSP Members: Header OCTVC1 Message Header ulPortIndex Unique ETH port identifier -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_INDEX ulPortIndex; } tOCTVC1_HW_MSG_ETH_PORT_MODIFY_RSP; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_RF_PORT_INFO_CMD Members: Header OCTVC1 Message Header ulPortIndex Unique RF port identifier -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_INDEX ulPortIndex; } tOCTVC1_HW_MSG_RF_PORT_INFO_CMD; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_RF_PORT_INFO_RSP Members: Header OCTVC1 Message Header ulPortIndex Unique RF port identifier ulInService Main Rf port is in service. hOwner Main Rf port owner identifier. ulPortInterfaceId PCB Port Interface Id ulFrequencyMinKhz RF minimum frequency (Khz) ulFrequencyMaxKhz RF maximum frequency (Khz) -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_INDEX ulPortIndex; tOCT_BOOL32 ulInService; tOCTVC1_HANDLE_OBJECT hOwner; tOCT_UINT32 ulPortInterfaceId; tOCT_UINT32 ulFrequencyMinKhz; tOCT_UINT32 ulFrequencyMaxKhz; } tOCTVC1_HW_MSG_RF_PORT_INFO_RSP; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_RF_PORT_STATS_CMD Members: Header OCTVC1 Message Header ulPortIndex Unique RF port identifier ulResetStatsFlag Statistics counters will be reset to zero after the current values are returned. -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_INDEX ulPortIndex; tOCT_BOOL32 ulResetStatsFlag; } tOCTVC1_HW_MSG_RF_PORT_STATS_CMD; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_RF_PORT_STATS_RSP Members: Header OCTVC1 Message Header ulPortIndex Unique RF port identifier ulRadioStandard Radio standard RxStats Main Rf Rx stats TxStats Main Rf Tx stats -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_INDEX ulPortIndex; tOCTVC1_RADIO_STANDARD_ENUM ulRadioStandard; tOCTVC1_HW_RF_PORT_RX_STATS RxStats; tOCTVC1_HW_RF_PORT_TX_STATS TxStats; } tOCTVC1_HW_MSG_RF_PORT_STATS_RSP; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_RF_PORT_LIST_CMD Members: Header IndexGet Object cursor -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_CURSOR_INDEX_GET IndexGet; } tOCTVC1_HW_MSG_RF_PORT_LIST_CMD; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_RF_PORT_LIST_RSP Members: Header OCTVC1 Message Header IndexGet Object cursor IndexList Object name list. -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_CURSOR_INDEX_GET IndexGet; tOCTVC1_LIST_INDEX_GET IndexList; } tOCTVC1_HW_MSG_RF_PORT_LIST_RSP; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_RF_PORT_LIST_ANTENNA_CMD Members: Header SubIndexGet Index cursor -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_CURSOR_INDEX_GET_SUB_INDEX SubIndexGet; } tOCTVC1_HW_MSG_RF_PORT_LIST_ANTENNA_CMD; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_RF_PORT_LIST_ANTENNA_RSP Members: Header OCTVC1 Message Header SubIndexGet Index cursor SubIndexList Object name list. -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_CURSOR_INDEX_GET_SUB_INDEX SubIndexGet; tOCTVC1_LIST_INDEX_GET_SUB_INDEX SubIndexList; } tOCTVC1_HW_MSG_RF_PORT_LIST_ANTENNA_RSP; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_RF_PORT_INFO_ANTENNA_RX_CONFIG_CMD Members: Header OCTVC1 Message Header ulPortIndex RF PORT index ulAntennaIndex Antenna index -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_INDEX ulPortIndex; tOCTVC1_INDEX ulAntennaIndex; } tOCTVC1_HW_MSG_RF_PORT_INFO_ANTENNA_RX_CONFIG_CMD; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_RF_PORT_INFO_ANTENNA_RX_CONFIG_RSP Members: Header OCTVC1 Message Header ulPortIndex RF PORT index ulAntennaIndex Antenna index ulEnableFlag lRxGaindB ulRxGainMode -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_INDEX ulPortIndex; tOCTVC1_INDEX ulAntennaIndex; tOCT_BOOL32 ulEnableFlag; tOCT_INT32 lRxGaindB; tOCTVC1_RADIO_RX_GAIN_CTRL_MODE_ENUM ulRxGainMode; } tOCTVC1_HW_MSG_RF_PORT_INFO_ANTENNA_RX_CONFIG_RSP; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_RF_PORT_INFO_ANTENNA_TX_CONFIG_CMD Members: Header OCTVC1 Message Header ulPortIndex RF PORT index ulAntennaIndex Antenna index -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_INDEX ulPortIndex; tOCTVC1_INDEX ulAntennaIndex; } tOCTVC1_HW_MSG_RF_PORT_INFO_ANTENNA_TX_CONFIG_CMD; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_RF_PORT_INFO_ANTENNA_TX_CONFIG_RSP Members: Header OCTVC1 Message Header ulPortIndex RF PORT index ulAntennaIndex Antenna index ulEnableFlag lTxGaindB Q9 value -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_INDEX ulPortIndex; tOCTVC1_INDEX ulAntennaIndex; tOCT_BOOL32 ulEnableFlag; tOCT_INT32 lTxGaindB; } tOCTVC1_HW_MSG_RF_PORT_INFO_ANTENNA_TX_CONFIG_RSP; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_INFO_CMD Members: Header OCTVC1 Message Header -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; } tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_INFO_CMD; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_INFO_RSP Members: Header OCTVC1 Message Header ulClkSourceRef Selected source for reference clock ulClkSourceSelection Clock source selection mode -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_HW_CLOCK_SYNC_MGR_SOURCE_ENUM ulClkSourceRef; tOCTVC1_HW_CLOCK_SYNC_MGR_SOURCE_SELECTION_ENUM ulClkSourceSelection; } tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_INFO_RSP; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_CMD Members: Header OCTVC1 Message Header ulResetStatsFlag Statistics counters will be reset to zero after the current values are returned. -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCT_BOOL32 ulResetStatsFlag; } tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_CMD; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP Members: Header OCTVC1 Message Header ulState Clock sync manager state lClockError Curent error on the tracked clock's control loop lDroppedCycles Number of cycles (at ulPllFreqHz) that have been dropped by the control loop This occurs when there a big gaps of the reference clock in the frequency measurement unit, which are likely caused by changes in the reference clock. ulPllFreqHz Frequency provided to the comparator and generators. ulPllFractionalFreqHz Fractional part of ulPllFreqHz. ulSlipCnt Number of times values exceeded the synchronization threshold while in the sync state ulSyncLosseCnt Number of times the clock manager left the synchronized state ulSourceState Clock source state ulDacValue Curent DAC value -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_HW_CLOCK_SYNC_MGR_STATE_ENUM ulState; tOCT_INT32 lClockError; tOCT_INT32 lDroppedCycles; tOCT_UINT32 ulPllFreqHz; tOCT_UINT32 ulPllFractionalFreqHz; tOCT_UINT32 ulSlipCnt; tOCT_UINT32 ulSyncLosseCnt; tOCTVC1_HW_CLOCK_SYNC_MGR_SOURCE_STATE_ENUM ulSourceState; tOCT_UINT32 ulDacValue; } tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_STATS_RSP; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_INFO_SOURCE_CMD Members: Header OCTVC1 Message Header -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; } tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_INFO_SOURCE_CMD; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_INFO_SOURCE_RSP Members: Header OCTVC1 Message Header ulClkSourceRef Selected source for reference clock ulSourceState Selected source for reference clock -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_HW_CLOCK_SYNC_MGR_SOURCE_ENUM ulClkSourceRef; tOCTVC1_HW_CLOCK_SYNC_MGR_SOURCE_STATE_ENUM ulSourceState; } tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_INFO_SOURCE_RSP; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_MODIFY_SOURCE_CMD Members: Header OCTVC1 Message Header ulClkSourceRef Default: cOCTVC1_DO_NOT_MODIFY Selected source for reference clock ulSourceState Default: cOCTVC1_DO_NOT_MODIFY Selected source for reference clock -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; tOCTVC1_HW_CLOCK_SYNC_MGR_SOURCE_ENUM ulClkSourceRef; tOCTVC1_HW_CLOCK_SYNC_MGR_SOURCE_STATE_ENUM ulSourceState; } tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_MODIFY_SOURCE_CMD; /*------------------------------------------------------------------------------------- tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_MODIFY_SOURCE_RSP Members: Header OCTVC1 Message Header -------------------------------------------------------------------------------------*/ typedef struct { tOCTVC1_MSG_HEADER Header; } tOCTVC1_HW_MSG_CLOCK_SYNC_MGR_MODIFY_SOURCE_RSP; /*************** INCLUDE FILES WITH DEPENDENCIES ON THIS FILE **************/ #include "octvc1_hw_evt.h" #endif /* __OCTVC1_HW_API_H__ */