octphy-2g-headers/octvc1/octvc1_log.h

175 lines
7.2 KiB
C

/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: OCTVC1_LOG.h
Copyright (c) 2018 Octasic Inc. All rights reserved.
Description:
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/>.
Release: OCTSDR Software Development Kit OCTSDR_GSM-02.11.00-B1927 (2018/04/27)
$Revision: $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCTVC1_LOG_H__
#define __OCTVC1_LOG_H__
/***************************** INCLUDE FILES *******************************/
#include "../octdev_types.h"
/************************ COMMON DEFINITIONS *******************************/
/*-------------------------------------------------------------------------------------
Log and trace
-------------------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------------------
tOCTVC1_LOG_TYPE_ENUM :
-------------------------------------------------------------------------------------*/
#define tOCTVC1_LOG_TYPE_ENUM tOCT_UINT32
#define cOCTVC1_LOG_TYPE_ENUM_LOG 0
#define cOCTVC1_LOG_TYPE_ENUM_TRACE 1
/*-------------------------------------------------------------------------------------
tOCTVC1_LOG_LEVEL_ENUM :
-------------------------------------------------------------------------------------*/
#define tOCTVC1_LOG_LEVEL_ENUM tOCT_UINT32
#define cOCTVC1_LOG_LEVEL_ENUM_EMERGENCY 0
#define cOCTVC1_LOG_LEVEL_ENUM_ALERT 1
#define cOCTVC1_LOG_LEVEL_ENUM_CRITICAL 2
#define cOCTVC1_LOG_LEVEL_ENUM_ERROR 3
#define cOCTVC1_LOG_LEVEL_ENUM_WARNING 4
#define cOCTVC1_LOG_LEVEL_ENUM_NOTICE 5
/*-------------------------------------------------------------------------------------
tOCTVC1_LOG_PAYLOAD_TYPE_ENUM :
-------------------------------------------------------------------------------------*/
#define tOCTVC1_LOG_PAYLOAD_TYPE_ENUM tOCT_UINT32
#define cOCTVC1_LOG_PAYLOAD_TYPE_ENUM_DATA 0
#define cOCTVC1_LOG_PAYLOAD_TYPE_ENUM_STRING 1
#define cOCTVC1_LOG_PAYLOAD_TYPE_ENUM_RC 2
#define cOCTVC1_LOG_PAYLOAD_TYPE_ENUM_MODULE_DATA 3
/*-------------------------------------------------------------------------------------
tOCTVC1_LOG_TRACE_ENUM :
-------------------------------------------------------------------------------------*/
#define tOCTVC1_LOG_TRACE_ENUM tOCT_UINT32
#define cOCTVC1_LOG_TRACE_ENUM_USER_0 0
#define cOCTVC1_LOG_TRACE_ENUM_USER_1 1
#define cOCTVC1_LOG_TRACE_ENUM_USER_2 2
#define cOCTVC1_LOG_TRACE_ENUM_USER_3 3
#define cOCTVC1_LOG_TRACE_ENUM_USER_4 4
#define cOCTVC1_LOG_TRACE_ENUM_USER_5 5
#define cOCTVC1_LOG_TRACE_ENUM_USER_6 6
#define cOCTVC1_LOG_TRACE_ENUM_USER_7 7
#define cOCTVC1_LOG_TRACE_ENUM_SYSTEM 8
#define cOCTVC1_LOG_TRACE_ENUM_IPC_MESSAGE 9
#define cOCTVC1_LOG_TRACE_ENUM_RESOURCE 10
/*-------------------------------------------------------------------------------------
tOCTVC1_LOG_TRACE_MASK :
-------------------------------------------------------------------------------------*/
#define tOCTVC1_LOG_TRACE_MASK tOCT_UINT32
#define cOCTVC1_LOG_TRACE_MASK_USER_0 0x0001
#define cOCTVC1_LOG_TRACE_MASK_USER_1 0x0002
#define cOCTVC1_LOG_TRACE_MASK_USER_2 0x0004
#define cOCTVC1_LOG_TRACE_MASK_USER_3 0x0008
#define cOCTVC1_LOG_TRACE_MASK_USER_4 0x0010
#define cOCTVC1_LOG_TRACE_MASK_USER_5 0x0020
#define cOCTVC1_LOG_TRACE_MASK_USER_6 0x0040
#define cOCTVC1_LOG_TRACE_MASK_USER_7 0x0080
#define cOCTVC1_LOG_TRACE_MASK_SYSTEM 0x0100
#define cOCTVC1_LOG_TRACE_MASK_IPC_MESSAGE 0x0200
#define cOCTVC1_LOG_TRACE_MASK_RESOURCE 0x0400
#define cOCTVC1_LOG_TRACE_MASK_NONE 0x0000
#define cOCTVC1_LOG_TRACE_MASK_ALL 0xFFFFFFFF
/*-------------------------------------------------------------------------------------
tOCTVC1_LOG_ID :
-------------------------------------------------------------------------------------*/
#define tOCTVC1_LOG_ID tOCT_UINT32
/*-------------------------------------------------------------------------------------
Log Header Type
-------------------------------------------------------------------------------------*/
#define cOCTVC1_LOG_TYPE_BIT_OFFSET 28
#define cOCTVC1_LOG_TYPE_BIT_MASK 0xF0000000
/*-------------------------------------------------------------------------------------
Log Header Fragment Extra Entry.
-------------------------------------------------------------------------------------*/
#define cOCTVC1_LOG_FRAGMENT_BIT_OFFSET 27
#define cOCTVC1_LOG_FRAGMENT_BIT_MASK 0x08000000
/*-------------------------------------------------------------------------------------
Log Header string data
-------------------------------------------------------------------------------------*/
#define cOCTVC1_LOG_PAYLOAD_TYPE_BIT_OFFSET 25
#define cOCTVC1_LOG_PAYLOAD_TYPE_BIT_MASK 0x06000000
/*-------------------------------------------------------------------------------------
Log Header info
If TYPE_LOG info value map to tOCTVC1_LOG_LEVEL_ENUM
If TYPE_TRACE info value map to tOCTVC1_LOG_TRACE_MASK
-------------------------------------------------------------------------------------*/
#define cOCTVC1_LOG_INFO_BIT_OFFSET 16
#define cOCTVC1_LOG_INFO_BIT_MASK 0x00FF0000
/*-------------------------------------------------------------------------------------
Log Header payload length
-------------------------------------------------------------------------------------*/
#define cOCTVC1_LOG_PAYLOAD_LENGTH_BIT_OFFSET 0
#define cOCTVC1_LOG_PAYLOAD_LENGTH_BIT_MASK 0x0000FFFF
/*-------------------------------------------------------------------------------------
tOCTVC1_LOG_HEADER
Log and trace Header
Members:
ulId
ulTime
Time of log, base on system time
hProcess
Process handle
ul_Type_Info_Length
bits[31:28] = Log TYPE tOCTVC1_LOG_TYPE_ENUM.
bits[27] = Fragment Extra Entry will follow.
bits[26:25] = Payload TYPE tOCTVC1_LOG_PAYLOAD_TYPE_ENUM.
bits[24] = Reserved.
bits[23:16] = Type Info base of Log Type see tOCTVC1_LOG_TYPE_ENUM
If TYPE_LOG base tOCTVC1_LOG_LEVEL_ENUM
If TYPE_TRACE base tOCTVC1_LOG_TRACE_ENUM
bits[15:0] = Log or Trace payload length (in bytes).
-------------------------------------------------------------------------------------*/
typedef struct
{
tOCT_UINT32 ulId;
tOCT_UINT32 ulTime;
tOCT_UINT32 hProcess;
tOCT_UINT32 ul_Type_Info_Length;
} tOCTVC1_LOG_HEADER;
#endif /* __OCTVC1_LOG_H__ */