rtxDiagBitTrace.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00029 #ifndef _RTXDIAGBITTRACE_H_
00030 #define _RTXDIAGBITTRACE_H_
00031
00032 #include <stdarg.h>
00033 #include "rtxsrc/rtxMemBuf.h"
00034 #include "rtxsrc/rtxSList.h"
00035 #include "rtxsrc/rtxPrintToStream.h"
00036
00037 #ifdef __cplusplus
00038 extern "C" {
00039 #endif
00040
00044 typedef struct {
00045 const char* elemName;
00046 const char* nameSuffix;
00047 size_t bitOffset;
00048 size_t numbits;
00049 } OSRTDiagBitField;
00050
00051 typedef struct {
00052 OSUINT16 disabledCount;
00053 OSRTSList fieldList;
00054 OSRTMEMBUF* pCaptureBuf;
00055 } OSRTDiagBitFieldList;
00056
00057
00058
00059 #ifdef _TRACE
00060 #define RTDIAG_INSBITFLDLEN(pctxt) rtxDiagInsBitFieldLen(pctxt)
00061 #define RTDIAG_NEWBITFIELD(pctxt,suffix) rtxDiagNewBitField(pctxt,suffix)
00062 #define RTDIAG_SETBITFLDOFFSET(pctxt) rtxDiagSetBitFldOffset(pctxt)
00063 #define RTDIAG_SETBITFLDCOUNT(pctxt) rtxDiagSetBitFldCount(pctxt)
00064 #else
00065 #define RTDIAG_INSBITFLDLEN(pctxt)
00066 #define RTDIAG_NEWBITFIELD(pctxt,suffix)
00067 #define RTDIAG_SETBITFLDOFFSET(pctxt)
00068 #define RTDIAG_SETBITFLDCOUNT(pctxt)
00069 #endif
00070
00075 #define RTDIAG_GETCTXTBITOFFSET(pctxt) \
00076 (((pctxt)->buffer.byteIndex * 8) + (8 - (pctxt)->buffer.bitOffset))
00077
00085 EXTERNRT OSBOOL rtxDiagSetBitTraceEnabled (OSCTXT* pctxt, OSBOOL value);
00086
00093 EXTERNRT OSBOOL rtxDiagBitTraceEnabled (OSCTXT* pctxt);
00094
00101 EXTERNRT void rtxDiagBitFieldListInit
00102 (OSCTXT* pctxt, OSRTDiagBitFieldList* pBFList);
00103
00110 EXTERNRT void rtxDiagInsBitFieldLen (OSRTDiagBitFieldList* pBFList);
00111
00120 EXTERNRT OSRTDiagBitField* rtxDiagNewBitField
00121 (OSRTDiagBitFieldList* pBFList, const char* nameSuffix);
00122
00129 EXTERNRT void rtxDiagSetBitFldOffset (OSRTDiagBitFieldList* pBFList);
00130
00137 EXTERNRT void rtxDiagSetBitFldCount (OSRTDiagBitFieldList* pBFList);
00138
00147 EXTERNRT void rtxDiagSetBitFldNameSuffix
00148 (OSRTDiagBitFieldList* pBFList, const char* nameSuffix);
00149
00160 EXTERNRT OSBOOL rtxDiagSetBitFldDisabled
00161 (OSRTDiagBitFieldList* pBFList, OSBOOL value);
00162
00171 EXTERNRT void rtxDiagBitTracePrint
00172 (OSRTDiagBitFieldList* pBFList, const char* varname);
00173
00181 EXTERNRT void rtxDiagBitTracePrintHTML
00182 (const char* filename, OSRTDiagBitFieldList* pBFList, const char* varname);
00183
00192 EXTERNRT void rtxDiagBitFldAppendNamePart
00193 (OSRTDiagBitFieldList* pBFList, const char* namePart);
00194
00195 #ifdef __cplusplus
00196 }
00197 #endif
00198
00199 #endif