QTools  8.0.4
Collection of Host-Based Tools
Loading...
Searching...
No Matches
qpc_qs.h File Reference

Go to the source code of this file.

Classes

class  QS
 
struct  QSpyId
 
class  QHsmDummy
 
class  QActiveDummy
 
struct  QS_Filter
 
struct  QS_Attr
 
struct  QS_TProbe
 

Macros

#define QS_INIT(arg_)
 
#define QS_EXIT()
 
#define QS_OUTPUT()
 
#define QS_RX_INPUT()
 
#define QS_GLB_FILTER(rec_)
 
#define QS_LOC_FILTER(qsId_)
 
#define QS_FLUSH()
 
#define QS_BEGIN_ID(rec_, qsId_)
 
#define QS_END()
 
#define QS_BEGIN_INCRIT(rec_, qsId_)
 
#define QS_END_INCRIT()
 
#define QS_GLB_CHECK_(rec_)
 
#define QS_LOC_CHECK_(qsId_)
 
#define QS_REC_DONE()
 
#define QS_I8(width_, data_)
 
#define QS_U8(width_, data_)
 
#define QS_I16(width_, data_)
 
#define QS_U16(width_, data_)
 
#define QS_I32(width_, data_)
 
#define QS_U32(width_, data_)
 
#define QS_I64(width_, data_)
 
#define QS_U64(width_, data_)
 
#define QS_F32(width_, data_)
 
#define QS_F64(width_, data_)
 
#define QS_STR(str_)
 Output a string to the application-specific trace record.
 
#define QS_MEM(mem_, size_)
 
#define QS_ENUM(group_, value_)
 
#define QS_TIME_PRE()
 
#define QS_OBJ(obj_)
 
#define QS_FUN(fun_)
 
#define QS_SIG(sig_, obj_)
 
#define QS_SIG_DICTIONARY(sig_, obj_)
 
#define QS_OBJ_DICTIONARY(obj_)
 
#define QS_OBJ_ARR_DICTIONARY(obj_, idx_)
 
#define QS_FUN_DICTIONARY(fun_)
 
#define QS_USR_DICTIONARY(rec_)
 
#define QS_ENUM_DICTIONARY(value_, group_)
 
#define QS_RX_PUT(b_)
 
#define QS_TR_CRIT_ENTRY()
 
#define QS_TR_CRIT_EXIT()
 
#define QS_TR_ISR_ENTRY(isrnest_, prio_)
 
#define QS_ONLY(code_)
 
#define QS_ASSERTION(module_, id_, delay_)
 
#define QS_EOD   ((uint16_t)0xFFFFU)
 
#define QS_CMD   ((uint8_t)7U)
 
#define QS_HEX_FMT   ((uint8_t)0x0FU)
 
#define QS_CRIT_STAT   QF_CRIT_STAT
 
#define QS_CRIT_ENTRY()
 
#define QS_CRIT_EXIT()
 
#define QS_TEST_PROBE_DEF(fun_)
 
#define QS_TEST_PROBE(code_)
 
#define QS_TEST_PROBE_ID(id_, code_)
 
#define QS_TEST_PAUSE()
 
#define QUTEST_ON_POST   124
 
#define QS_RXATTR_SIZE   128U
 

Typedefs

typedef uint32_t QSObj
 
typedef uint32_t QSFun
 
typedef uint32_t QSTimeCtr
 
typedef float float32_t
 
typedef double float64_t
 
typedef uint_fast8_t QCritStatus
 
typedef uint_fast8_t QSchedStatus
 

Enumerations

enum  QSpyPre {
  QS_EMPTY , QS_QEP_STATE_ENTRY , QS_QEP_STATE_EXIT , QS_QEP_STATE_INIT ,
  QS_QEP_INIT_TRAN , QS_QEP_INTERN_TRAN , QS_QEP_TRAN , QS_QEP_IGNORED ,
  QS_QEP_DISPATCH , QS_QEP_UNHANDLED , QS_QF_ACTIVE_DEFER , QS_QF_ACTIVE_RECALL ,
  QS_QF_ACTIVE_SUBSCRIBE , QS_QF_ACTIVE_UNSUBSCRIBE , QS_QF_ACTIVE_POST , QS_QF_ACTIVE_POST_LIFO ,
  QS_QF_ACTIVE_GET , QS_QF_ACTIVE_GET_LAST , QS_QF_ACTIVE_RECALL_ATTEMPT , QS_QF_EQUEUE_POST ,
  QS_QF_EQUEUE_POST_LIFO , QS_QF_EQUEUE_GET , QS_QF_EQUEUE_GET_LAST , QS_QF_NEW_ATTEMPT ,
  QS_QF_MPOOL_GET , QS_QF_MPOOL_PUT , QS_QF_PUBLISH , QS_QF_NEW_REF ,
  QS_QF_NEW , QS_QF_GC_ATTEMPT , QS_QF_GC , QS_QF_TICK ,
  QS_QF_TIMEEVT_ARM , QS_QF_TIMEEVT_AUTO_DISARM , QS_QF_TIMEEVT_DISARM_ATTEMPT , QS_QF_TIMEEVT_DISARM ,
  QS_QF_TIMEEVT_REARM , QS_QF_TIMEEVT_POST , QS_QF_DELETE_REF , QS_QF_CRIT_ENTRY ,
  QS_QF_CRIT_EXIT , QS_QF_ISR_ENTRY , QS_QF_ISR_EXIT , QS_QF_INT_DISABLE ,
  QS_QF_INT_ENABLE , QS_QF_ACTIVE_POST_ATTEMPT , QS_QF_EQUEUE_POST_ATTEMPT , QS_QF_MPOOL_GET_ATTEMPT ,
  QS_SCHED_PREEMPT , QS_SCHED_RESTORE , QS_SCHED_LOCK , QS_SCHED_UNLOCK ,
  QS_SCHED_NEXT , QS_SCHED_IDLE , QS_ENUM_DICT , QS_QEP_TRAN_HIST ,
  QS_RESERVED_56 , QS_RESERVED_57 , QS_TEST_PAUSED , QS_TEST_PROBE_GET ,
  QS_SIG_DICT , QS_OBJ_DICT , QS_FUN_DICT , QS_USR_DICT ,
  QS_TARGET_INFO , QS_TARGET_DONE , QS_RX_STATUS , QS_QUERY_DATA ,
  QS_PEEK_DATA , QS_ASSERT_FAIL , QS_QF_RUN , QS_SEM_TAKE ,
  QS_SEM_BLOCK , QS_SEM_SIGNAL , QS_SEM_BLOCK_ATTEMPT , QS_MTX_LOCK ,
  QS_MTX_BLOCK , QS_MTX_UNLOCK , QS_MTX_LOCK_ATTEMPT , QS_MTX_BLOCK_ATTEMPT ,
  QS_MTX_UNLOCK_ATTEMPT , QS_QF_ACTIVE_DEFER_ATTEMPT , QS_PRE_MAX
}
 pre-defined QS record IDs More...
 
enum  QSpyGroups {
  QS_ALL_RECORDS = 0xF0 , QS_SM_RECORDS , QS_AO_RECORDS , QS_EQ_RECORDS ,
  QS_MP_RECORDS , QS_TE_RECORDS , QS_QF_RECORDS , QS_SC_RECORDS ,
  QS_SEM_RECORDS , QS_MTX_RECORDS , QS_U0_RECORDS , QS_U1_RECORDS ,
  QS_U2_RECORDS , QS_U3_RECORDS , QS_U4_RECORDS , QS_UA_RECORDS
}
 QS-TX record groups for QS_GLB_FILTER() More...
 
enum  QSpyUserOffsets {
  QS_USER = 100 , QS_USER0 = QS_USER , QS_USER1 = (enum_t)QS_USER0 + 5 , QS_USER2 = (enum_t)QS_USER1 + 5 ,
  QS_USER3 = (enum_t)QS_USER2 + 5 , QS_USER4 = (enum_t)QS_USER3 + 5
}
 QS user record group offsets for QS_GLB_FILTER() More...
 
enum  QSpyIdOffsets { QS_AO_ID = 0 , QS_EP_ID = 64 , QS_EQ_ID = 80 , QS_AP_ID = 96 }
 QS ID offsets for QS_LOC_FILTER() More...
 
enum  QSpyIdGroups {
  QS_ALL_IDS = 0xF0 , QS_AO_IDS = 0x80 + (enum_t)QS_AO_ID , QS_EP_IDS = 0x80 + (enum_t)QS_EP_ID , QS_EQ_IDS = 0x80 + (enum_t)QS_EQ_ID ,
  QS_AP_IDS = 0x80 + (enum_t)QS_AP_ID
}
 QS ID groups for QS_LOC_FILTER() More...
 
enum  QS_preType {
  QS_I8_ENUM_T , QS_U8_T , QS_I16_T , QS_U16_T ,
  QS_I32_T , QS_U32_T , QS_F32_T , QS_F64_T ,
  QS_STR_T , QS_MEM_T , QS_SIG_T , QS_OBJ_T ,
  QS_FUN_T , QS_I64_T , QS_U64_T
}
 Enumerates data elements for app-specific trace records. More...
 
enum  QSResetAction { QS_TARGET_NO_RESET , QS_TARGET_RESET }
 

Functions

void QS_TR_ISR_EXIT (uint_fast8_t isrnest, uint_fast8_t prio)
 
QCritStatus QF_critEntry (void)
 
void QF_critExit (QCritStatus critStat)
 
QSchedStatus QF_schedLock (uint_fast8_t const ceiling)
 
void QF_schedUnlock (QSchedStatus const prevCeil)
 
QStateHandler QHsmDummy_getStateHandler_ (QAsm *const me)
 
void QS_glbFilter_ (int_fast16_t const filter)
 
void QS_locFilter_ (int_fast16_t const filter)
 
void QS_beginRec_ (uint_fast8_t const rec)
 
void QS_endRec_ (void)
 
void QS_u8_raw_ (uint8_t const d)
 
void QS_2u8_raw_ (uint8_t const d1, uint8_t const d2)
 
void QS_u16_raw_ (uint16_t const d)
 
void QS_u32_raw_ (uint32_t const d)
 
void QS_u64_raw_ (uint64_t const d)
 
void QS_obj_raw_ (void const *const obj)
 
void QS_str_raw_ (char const *const str)
 
void QS_u8_fmt_ (uint8_t const format, uint8_t const d)
 
void QS_u16_fmt_ (uint8_t const format, uint16_t const d)
 
void QS_u32_fmt_ (uint8_t const format, uint32_t const d)
 
void QS_u64_fmt_ (uint8_t const format, uint64_t const d)
 
void QS_f32_fmt_ (uint8_t const format, float32_t const f)
 
void QS_f64_fmt_ (uint8_t const format, float64_t const d)
 
void QS_str_fmt_ (char const *const str)
 
void QS_mem_fmt_ (uint8_t const *const blk, uint8_t const size)
 
void QS_sig_dict_pre_ (QSignal const sig, void const *const obj, char const *const name)
 
void QS_obj_dict_pre_ (void const *const obj, char const *const name)
 
void QS_obj_arr_dict_pre_ (void const *const obj, uint_fast16_t const idx, char const *const name)
 
void QS_fun_dict_pre_ (QSpyFunPtr const fun, char const *const name)
 
void QS_usr_dict_pre_ (enum_t const rec, char const *const name)
 
void QS_enum_dict_pre_ (enum_t const value, uint8_t const group, char const *const name)
 
void QS_assertion_pre_ (char const *const module, int_t const id, uint32_t const delay)
 
void QS_target_info_pre_ (QSResetAction const act)
 
void QS_processTestEvts_ (void)
 

Variables

QS_Attr QS_priv_
 

Macro Definition Documentation

◆ QS_INIT

#define QS_INIT ( arg_)
Value:
(QS_onStartup(arg_))

Definition at line 266 of file qpc_qs.h.

◆ QS_EXIT

#define QS_EXIT ( )
Value:
(QS_onCleanup())

Definition at line 267 of file qpc_qs.h.

◆ QS_OUTPUT

#define QS_OUTPUT ( )
Value:
(QS_output())

Definition at line 268 of file qpc_qs.h.

◆ QS_RX_INPUT

#define QS_RX_INPUT ( )
Value:
(QS_rx_input())

Definition at line 269 of file qpc_qs.h.

◆ QS_GLB_FILTER

#define QS_GLB_FILTER ( rec_)
Value:
(QS_glbFilter_((int_fast16_t)(rec_)))
void QS_glbFilter_(int_fast16_t const filter)

Definition at line 270 of file qpc_qs.h.

◆ QS_LOC_FILTER

#define QS_LOC_FILTER ( qsId_)
Value:
(QS_locFilter_((int_fast16_t)(qsId_)))
void QS_locFilter_(int_fast16_t const filter)

Definition at line 271 of file qpc_qs.h.

◆ QS_FLUSH

#define QS_FLUSH ( )
Value:
(QS_onFlush())

Definition at line 272 of file qpc_qs.h.

◆ QS_BEGIN_ID

#define QS_BEGIN_ID ( rec_,
qsId_ )
Value:
if (QS_GLB_CHECK_(rec_) && QS_LOC_CHECK_(qsId_)) { \
QS_CRIT_STAT \
QS_CRIT_ENTRY(); \
QS_beginRec_((uint_fast8_t)(rec_)); \
QS_TIME_PRE(); {
#define QS_GLB_CHECK_(rec_)
Definition qpc_qs.h:295
#define QS_LOC_CHECK_(qsId_)
Definition qpc_qs.h:299

Definition at line 274 of file qpc_qs.h.

◆ QS_END

#define QS_END ( )
Value:
} \
QS_endRec_(); \
QS_CRIT_EXIT(); \
}

Definition at line 281 of file qpc_qs.h.

◆ QS_BEGIN_INCRIT

#define QS_BEGIN_INCRIT ( rec_,
qsId_ )
Value:
if (QS_GLB_CHECK_(rec_) && QS_LOC_CHECK_(qsId_)) { \
QS_beginRec_((uint_fast8_t)(rec_)); \
QS_TIME_PRE(); {

Definition at line 286 of file qpc_qs.h.

◆ QS_END_INCRIT

#define QS_END_INCRIT ( )
Value:
} \
QS_endRec_(); \
}

Definition at line 291 of file qpc_qs.h.

◆ QS_GLB_CHECK_

#define QS_GLB_CHECK_ ( rec_)
Value:
(((uint_fast8_t)QS_filt_.glb[(uint_fast8_t)(rec_) >> 3U] \
& ((uint_fast8_t)1U << ((uint_fast8_t)(rec_) & 7U))) != 0U)

Definition at line 295 of file qpc_qs.h.

◆ QS_LOC_CHECK_

#define QS_LOC_CHECK_ ( qsId_)
Value:
(((uint_fast8_t)QS_filt_.loc[(uint_fast8_t)(qsId_) >> 3U] \
& ((uint_fast8_t)1U << ((uint_fast8_t)(qsId_) & 7U))) != 0U)

Definition at line 299 of file qpc_qs.h.

◆ QS_REC_DONE

#define QS_REC_DONE ( )
Value:
((void)0)

Definition at line 304 of file qpc_qs.h.

◆ QS_I8

#define QS_I8 ( width_,
data_ )
Value:
(QS_u8_fmt_((uint8_t)(((width_) << 4U) & 0x7U) | (uint8_t)QS_I8_ENUM_T, \
(data_)))
@ QS_I8_ENUM_T
signed 8-bit integer or enum format
Definition qpc_qs.h:620
void QS_u8_fmt_(uint8_t const format, uint8_t const d)

Definition at line 307 of file qpc_qs.h.

◆ QS_U8

#define QS_U8 ( width_,
data_ )
Value:
(QS_u8_fmt_((uint8_t)(((width_) << 4)) | (uint8_t)QS_U8_T, (data_)))
@ QS_U8_T
unsigned 8-bit integer format
Definition qpc_qs.h:621

Definition at line 311 of file qpc_qs.h.

◆ QS_I16

#define QS_I16 ( width_,
data_ )
Value:
(QS_u16_fmt_((uint8_t)(((width_) << 4)) | (uint8_t)QS_I16_T, (data_)))
@ QS_I16_T
signed 16-bit integer format
Definition qpc_qs.h:622
void QS_u16_fmt_(uint8_t const format, uint16_t const d)

Definition at line 314 of file qpc_qs.h.

◆ QS_U16

#define QS_U16 ( width_,
data_ )
Value:
(QS_u16_fmt_((uint8_t)(((width_) << 4)) | (uint8_t)QS_U16_T, (data_)))
@ QS_U16_T
unsigned 16-bit integer format
Definition qpc_qs.h:623

Definition at line 317 of file qpc_qs.h.

◆ QS_I32

#define QS_I32 ( width_,
data_ )
Value:
(QS_u32_fmt_((uint8_t)(((width_) << 4)) | (uint8_t)QS_I32_T, (data_)))
@ QS_I32_T
signed 32-bit integer format
Definition qpc_qs.h:624
void QS_u32_fmt_(uint8_t const format, uint32_t const d)

Definition at line 320 of file qpc_qs.h.

◆ QS_U32

#define QS_U32 ( width_,
data_ )
Value:
(QS_u32_fmt_((uint8_t)(((width_) << 4)) | (uint8_t)QS_U32_T, (data_)))
@ QS_U32_T
unsigned 32-bit integer format
Definition qpc_qs.h:625

Definition at line 323 of file qpc_qs.h.

◆ QS_I64

#define QS_I64 ( width_,
data_ )
Value:
(QS_u64_fmt_((uint8_t)(((width_) << 4)) | (uint8_t)QS_I64_T, (data_)))
@ QS_I64_T
signed 64-bit integer format
Definition qpc_qs.h:633
void QS_u64_fmt_(uint8_t const format, uint64_t const d)

Definition at line 326 of file qpc_qs.h.

◆ QS_U64

#define QS_U64 ( width_,
data_ )
Value:
(QS_u64_fmt_((uint8_t)(((width_) << 4)) | (uint8_t)QS_U64_T, (data_)))
@ QS_U64_T
unsigned 64-bit integer format
Definition qpc_qs.h:634

Definition at line 329 of file qpc_qs.h.

◆ QS_F32

#define QS_F32 ( width_,
data_ )
Value:
(QS_f32_fmt_((uint8_t)(((width_) << 4)) | (uint8_t)QS_F32_T, (data_)))
@ QS_F32_T
32-bit floating point format
Definition qpc_qs.h:626
void QS_f32_fmt_(uint8_t const format, float32_t const f)

Definition at line 332 of file qpc_qs.h.

◆ QS_F64

#define QS_F64 ( width_,
data_ )
Value:
(QS_f64_fmt_((uint8_t)(((width_) << 4)) | (uint8_t)QS_F64_T, (data_)))
@ QS_F64_T
64-bit floating point format
Definition qpc_qs.h:627
void QS_f64_fmt_(uint8_t const format, float64_t const d)

Definition at line 335 of file qpc_qs.h.

◆ QS_STR

#define QS_STR ( str_)
Value:
(QS_str_fmt_((str_)))
void QS_str_fmt_(char const *const str)

Output a string to the application-specific trace record.

Parameters
[out]str_zero-terminated ASCII string
Attention
The string str_ is NOT byte-stuffed (see QP/Spy Data Protocol->Transparency). Consequently, the characters } (ASCII 0x7D) and ~ (ASCII 0x7E) must be avoided in the string.
Backward Traceability
  • DVP_QP_MC4_R11_01

Definition at line 338 of file qpc_qs.h.

◆ QS_MEM

#define QS_MEM ( mem_,
size_ )
Value:
(QS_mem_fmt_((mem_), (size_)))
void QS_mem_fmt_(uint8_t const *const blk, uint8_t const size)

Definition at line 340 of file qpc_qs.h.

◆ QS_ENUM

#define QS_ENUM ( group_,
value_ )
Value:
(QS_u8_fmt_((uint8_t)(0x80U | ((group_) << 4U)) | (uint8_t)QS_I8_ENUM_T,\
(uint8_t)(value_)))

Definition at line 342 of file qpc_qs.h.

◆ QS_TIME_PRE

#define QS_TIME_PRE ( )
Value:
(QS_u32_raw_(QS_onGetTime()))
void QS_u32_raw_(uint32_t const d)

Definition at line 349 of file qpc_qs.h.

◆ QS_OBJ

#define QS_OBJ ( obj_)
Value:
(QS_u32_fmt_(QS_OBJ_T, (uint32_t)(obj_)))
@ QS_OBJ_T
object pointer format
Definition qpc_qs.h:631

Definition at line 355 of file qpc_qs.h.

◆ QS_FUN

#define QS_FUN ( fun_)
Value:
(QS_u32_fmt_(QS_FUN_T, (uint32_t)(fun_)))
@ QS_FUN_T
function pointer format
Definition qpc_qs.h:632

Definition at line 363 of file qpc_qs.h.

◆ QS_SIG

#define QS_SIG ( sig_,
obj_ )
Value:
QS_u16_fmt_(QS_SIG_T, (sig_)); \
QS_obj_raw_(obj_)
@ QS_SIG_T
event signal format
Definition qpc_qs.h:630

Definition at line 373 of file qpc_qs.h.

◆ QS_SIG_DICTIONARY

#define QS_SIG_DICTIONARY ( sig_,
obj_ )
Value:
(QS_sig_dict_pre_((QSignal)(sig_), (obj_), #sig_))
void QS_sig_dict_pre_(QSignal const sig, void const *const obj, char const *const name)
uint16_t QSignal
Definition qspy.h:34

Definition at line 382 of file qpc_qs.h.

◆ QS_OBJ_DICTIONARY

#define QS_OBJ_DICTIONARY ( obj_)
Value:
(QS_obj_dict_pre_((obj_), #obj_))
void QS_obj_dict_pre_(void const *const obj, char const *const name)

Definition at line 385 of file qpc_qs.h.

◆ QS_OBJ_ARR_DICTIONARY

#define QS_OBJ_ARR_DICTIONARY ( obj_,
idx_ )
Value:
(QS_obj_arr_dict_pre_((obj_), (idx_), #obj_))
void QS_obj_arr_dict_pre_(void const *const obj, uint_fast16_t const idx, char const *const name)

Definition at line 388 of file qpc_qs.h.

◆ QS_FUN_DICTIONARY

#define QS_FUN_DICTIONARY ( fun_)
Value:
(QS_fun_dict_pre_((void (*)(void))(fun_), #fun_))
void QS_fun_dict_pre_(QSpyFunPtr const fun, char const *const name)

Definition at line 391 of file qpc_qs.h.

◆ QS_USR_DICTIONARY

#define QS_USR_DICTIONARY ( rec_)
Value:
(QS_usr_dict_pre_((rec_), #rec_))
void QS_usr_dict_pre_(enum_t const rec, char const *const name)

Definition at line 394 of file qpc_qs.h.

◆ QS_ENUM_DICTIONARY

#define QS_ENUM_DICTIONARY ( value_,
group_ )
Value:
(QS_enum_dict_pre_((value_), (group_), #value_))
void QS_enum_dict_pre_(enum_t const value, uint8_t const group, char const *const name)

Definition at line 397 of file qpc_qs.h.

◆ QS_RX_PUT

#define QS_RX_PUT ( b_)
Value:
(QS_rxPut((b_)))

Definition at line 400 of file qpc_qs.h.

◆ QS_TR_CRIT_ENTRY

#define QS_TR_CRIT_ENTRY ( )

Definition at line 402 of file qpc_qs.h.

◆ QS_TR_CRIT_EXIT

#define QS_TR_CRIT_EXIT ( )

Definition at line 403 of file qpc_qs.h.

◆ QS_TR_ISR_ENTRY

#define QS_TR_ISR_ENTRY ( isrnest_,
prio_ )
Value:
do { \
QS_BEGIN_PRE(QS_QF_ISR_ENTRY, 0U) \
QS_TIME_PRE(); \
QS_2u8_raw_((isrnest_), (prio_)); \
QS_END_PRE() \
}
@ QS_QF_ISR_ENTRY
an ISR was entered
Definition qpc_qs.h:116

Definition at line 405 of file qpc_qs.h.

◆ QS_ONLY

#define QS_ONLY ( code_)
Value:
(code_)

Definition at line 416 of file qpc_qs.h.

◆ QS_ASSERTION

#define QS_ASSERTION ( module_,
id_,
delay_ )
Value:
(QS_assertion_pre_((module_), (id_), (delay_)))
void QS_assertion_pre_(char const *const module, int_t const id, uint32_t const delay)

Definition at line 418 of file qpc_qs.h.

◆ QS_EOD

#define QS_EOD   ((uint16_t)0xFFFFU)

Definition at line 426 of file qpc_qs.h.

◆ QS_CMD

#define QS_CMD   ((uint8_t)7U)

Definition at line 427 of file qpc_qs.h.

◆ QS_HEX_FMT

#define QS_HEX_FMT   ((uint8_t)0x0FU)

Definition at line 428 of file qpc_qs.h.

◆ QS_CRIT_STAT

#define QS_CRIT_STAT   QF_CRIT_STAT

Definition at line 432 of file qpc_qs.h.

◆ QS_CRIT_ENTRY

#define QS_CRIT_ENTRY ( )
Value:
QF_CRIT_ENTRY()

Definition at line 436 of file qpc_qs.h.

◆ QS_CRIT_EXIT

#define QS_CRIT_EXIT ( )
Value:
QF_CRIT_EXIT()

Definition at line 440 of file qpc_qs.h.

◆ QS_TEST_PROBE_DEF

#define QS_TEST_PROBE_DEF ( fun_)
Value:
uint32_t const qs_tp_ = QS_getTestProbe_((void (*)(void))(fun_));

Definition at line 535 of file qpc_qs.h.

◆ QS_TEST_PROBE

#define QS_TEST_PROBE ( code_)
Value:
if (qs_tp_ != 0U) { code_ }

Definition at line 538 of file qpc_qs.h.

◆ QS_TEST_PROBE_ID

#define QS_TEST_PROBE_ID ( id_,
code_ )
Value:
if (qs_tp_ == (uint32_t)(id_)) { code_ }

Definition at line 541 of file qpc_qs.h.

◆ QS_TEST_PAUSE

#define QS_TEST_PAUSE ( )
Value:
(QS_test_pause_())

Definition at line 544 of file qpc_qs.h.

◆ QUTEST_ON_POST

#define QUTEST_ON_POST   124

Definition at line 689 of file qpc_qs.h.

◆ QS_RXATTR_SIZE

#define QS_RXATTR_SIZE   128U

Definition at line 690 of file qpc_qs.h.

Typedef Documentation

◆ QSObj

typedef uint32_t QSObj

Definition at line 235 of file qpc_qs.h.

◆ QSFun

typedef uint32_t QSFun

Definition at line 243 of file qpc_qs.h.

◆ QSTimeCtr

typedef uint32_t QSTimeCtr

Definition at line 262 of file qpc_qs.h.

◆ float32_t

typedef float float32_t

Definition at line 422 of file qpc_qs.h.

◆ float64_t

typedef double float64_t

Definition at line 423 of file qpc_qs.h.

◆ QCritStatus

typedef uint_fast8_t QCritStatus

Definition at line 459 of file qpc_qs.h.

◆ QSchedStatus

typedef uint_fast8_t QSchedStatus

Definition at line 465 of file qpc_qs.h.

Enumeration Type Documentation

◆ QSpyPre

enum QSpyPre

pre-defined QS record IDs

Enumerator
QS_EMPTY 

QS record for cleanly starting a session.

QS_QEP_STATE_ENTRY 

a state was entered

QS_QEP_STATE_EXIT 

a state was exited

QS_QEP_STATE_INIT 

an initial transition was taken in a state

QS_QEP_INIT_TRAN 

the top-most initial transition was taken

QS_QEP_INTERN_TRAN 

an internal transition was taken

QS_QEP_TRAN 

a regular transition was taken

QS_QEP_IGNORED 

an event was ignored (silently discarded)

QS_QEP_DISPATCH 

an event was dispatched (begin of RTC step)

QS_QEP_UNHANDLED 

an event was un-handled due to a guard

QS_QF_ACTIVE_DEFER 

AO deferred an event.

QS_QF_ACTIVE_RECALL 

AO recalled an event.

QS_QF_ACTIVE_SUBSCRIBE 

an AO subscribed to an event

QS_QF_ACTIVE_UNSUBSCRIBE 

an AO unsubscribed to an event

QS_QF_ACTIVE_POST 

an event was posted (FIFO) directly to AO

QS_QF_ACTIVE_POST_LIFO 

an event was posted (LIFO) directly to AO

QS_QF_ACTIVE_GET 

AO got an event and its queue is not empty.

QS_QF_ACTIVE_GET_LAST 

AO got an event and its queue is empty.

QS_QF_ACTIVE_RECALL_ATTEMPT 

AO attempted to recall an event.

QS_QF_EQUEUE_POST 

an event was posted (FIFO) to a raw queue

QS_QF_EQUEUE_POST_LIFO 

an event was posted (LIFO) to a raw queue

QS_QF_EQUEUE_GET 

get an event and queue still not empty

QS_QF_EQUEUE_GET_LAST 

get the last event from the queue

QS_QF_NEW_ATTEMPT 

an attempt to allocate an event failed

QS_QF_MPOOL_GET 

a memory block was removed from memory pool

QS_QF_MPOOL_PUT 

a memory block was returned to memory pool

QS_QF_PUBLISH 

an event was published to active objects

QS_QF_NEW_REF 

new event reference was created

QS_QF_NEW 

new event was created

QS_QF_GC_ATTEMPT 

garbage collection attempt

QS_QF_GC 

garbage collection

QS_QF_TICK 

QTimeEvt tick was called.

QS_QF_TIMEEVT_ARM 

a time event was armed

QS_QF_TIMEEVT_AUTO_DISARM 

a time event expired and was disarmed

QS_QF_TIMEEVT_DISARM_ATTEMPT 

attempt to disarm a disarmed QTimeEvt

QS_QF_TIMEEVT_DISARM 

true disarming of an armed time event

QS_QF_TIMEEVT_REARM 

rearming of a time event

QS_QF_TIMEEVT_POST 

a time event posted itself directly to an AO

QS_QF_DELETE_REF 

an event reference is about to be deleted

QS_QF_CRIT_ENTRY 

critical section was entered

QS_QF_CRIT_EXIT 

critical section was exited

QS_QF_ISR_ENTRY 

an ISR was entered

QS_QF_ISR_EXIT 

an ISR was exited

QS_QF_INT_DISABLE 

interrupts were disabled

QS_QF_INT_ENABLE 

interrupts were enabled

QS_QF_ACTIVE_POST_ATTEMPT 

attempt to post an evt to AO failed

QS_QF_EQUEUE_POST_ATTEMPT 

attempt to post evt to QEQueue failed

QS_QF_MPOOL_GET_ATTEMPT 

attempt to get a memory block failed

QS_SCHED_PREEMPT 

scheduler asynchronously preempted a task

QS_SCHED_RESTORE 

scheduler restored preempted task

QS_SCHED_LOCK 

scheduler was locked

QS_SCHED_UNLOCK 

scheduler was unlocked

QS_SCHED_NEXT 

scheduler started next task

QS_SCHED_IDLE 

scheduler restored the idle task

QS_ENUM_DICT 

enumeration dictionary entry

QS_QEP_TRAN_HIST 

a tran. to history was taken

QS_RESERVED_56 

reserved (previously QS_QEP_TRAN_EP)

QS_RESERVED_57 

reserved (previously QS_QEP_TRAN_XP)

QS_TEST_PAUSED 

test has been paused

QS_TEST_PROBE_GET 

reports that Test-Probe has been used

QS_SIG_DICT 

signal dictionary entry

QS_OBJ_DICT 

object dictionary entry

QS_FUN_DICT 

function dictionary entry

QS_USR_DICT 

user QS record dictionary entry

QS_TARGET_INFO 

reports the Target information

QS_TARGET_DONE 

reports completion of a user callback

QS_RX_STATUS 

reports QS data receive status

QS_QUERY_DATA 

reports the data from "current object" query

QS_PEEK_DATA 

reports the data from the PEEK query

QS_ASSERT_FAIL 

assertion failed in the code

QS_QF_RUN 

QF_run() was entered.

QS_SEM_TAKE 

a semaphore was taken by a thread

QS_SEM_BLOCK 

a semaphore blocked a thread

QS_SEM_SIGNAL 

a semaphore was signaled

QS_SEM_BLOCK_ATTEMPT 

a semaphore blocked was attempted

QS_MTX_LOCK 

a mutex was locked

QS_MTX_BLOCK 

a mutex blocked a thread

QS_MTX_UNLOCK 

a mutex was unlocked

QS_MTX_LOCK_ATTEMPT 

a mutex lock was attempted

QS_MTX_BLOCK_ATTEMPT 

a mutex blocking was attempted

QS_MTX_UNLOCK_ATTEMPT 

a mutex unlock was attempted

QS_QF_ACTIVE_DEFER_ATTEMPT 

AO attempted to deferr an event.

QS_PRE_MAX 

the # predefined signals

Definition at line 57 of file qpc_qs.h.

◆ QSpyGroups

enum QSpyGroups

QS-TX record groups for QS_GLB_FILTER()

Enumerator
QS_ALL_RECORDS 

all maskable QS records

QS_SM_RECORDS 

State Machine QS records.

QS_AO_RECORDS 

Active Object QS records.

QS_EQ_RECORDS 

Event Queues QS records.

QS_MP_RECORDS 

Memory Pools QS records.

QS_TE_RECORDS 

Time Events QS records.

QS_QF_RECORDS 

QF QS records.

QS_SC_RECORDS 

Scheduler QS records.

QS_SEM_RECORDS 

Semaphore QS records.

QS_MTX_RECORDS 

Mutex QS records.

QS_U0_RECORDS 

User Group 100-104 records.

QS_U1_RECORDS 

User Group 105-109 records.

QS_U2_RECORDS 

User Group 110-114 records.

QS_U3_RECORDS 

User Group 115-119 records.

QS_U4_RECORDS 

User Group 120-124 records.

QS_UA_RECORDS 

All User records.

Definition at line 181 of file qpc_qs.h.

◆ QSpyUserOffsets

QS user record group offsets for QS_GLB_FILTER()

Enumerator
QS_USER 

the first record available to QS users

QS_USER0 

offset for User Group 0

QS_USER1 

offset for User Group 1

QS_USER2 

offset for User Group 2

QS_USER3 

offset for User Group 3

QS_USER4 

offset for User Group 4

Definition at line 201 of file qpc_qs.h.

◆ QSpyIdOffsets

QS ID offsets for QS_LOC_FILTER()

Enumerator
QS_AO_ID 

offset for AO priorities

QS_EP_ID 

offset for event-pool IDs

QS_EQ_ID 

offset for event-queue IDs

QS_AP_ID 

offset for Application-specific IDs

Definition at line 211 of file qpc_qs.h.

◆ QSpyIdGroups

QS ID groups for QS_LOC_FILTER()

Enumerator
QS_ALL_IDS 

all QS IDs

QS_AO_IDS 

AO IDs (priorities)

QS_EP_IDS 

event-pool IDs

QS_EQ_IDS 

event-queue IDs

QS_AP_IDS 

Application-specific IDs.

Definition at line 219 of file qpc_qs.h.

◆ QS_preType

enum QS_preType

Enumerates data elements for app-specific trace records.

Enumerator
QS_I8_ENUM_T 

signed 8-bit integer or enum format

QS_U8_T 

unsigned 8-bit integer format

QS_I16_T 

signed 16-bit integer format

QS_U16_T 

unsigned 16-bit integer format

QS_I32_T 

signed 32-bit integer format

QS_U32_T 

unsigned 32-bit integer format

QS_F32_T 

32-bit floating point format

QS_F64_T 

64-bit floating point format

QS_STR_T 

zero-terminated ASCII string format

QS_MEM_T 

up to 255-bytes memory block format

QS_SIG_T 

event signal format

QS_OBJ_T 

object pointer format

QS_FUN_T 

function pointer format

QS_I64_T 

signed 64-bit integer format

QS_U64_T 

unsigned 64-bit integer format

Definition at line 619 of file qpc_qs.h.

◆ QSResetAction

Enumerator
QS_TARGET_NO_RESET 
QS_TARGET_RESET 

Definition at line 776 of file qpc_qs.h.

Function Documentation

◆ QS_TR_ISR_EXIT()

void QS_TR_ISR_EXIT ( uint_fast8_t isrnest,
uint_fast8_t prio )

◆ QF_critEntry()

QCritStatus QF_critEntry ( void )

◆ QF_critExit()

void QF_critExit ( QCritStatus critStat)

◆ QF_schedLock()

QSchedStatus QF_schedLock ( uint_fast8_t const ceiling)

◆ QF_schedUnlock()

void QF_schedUnlock ( QSchedStatus const prevCeil)

◆ QHsmDummy_getStateHandler_()

QStateHandler QHsmDummy_getStateHandler_ ( QAsm *const me)

◆ QS_glbFilter_()

void QS_glbFilter_ ( int_fast16_t const filter)

◆ QS_locFilter_()

void QS_locFilter_ ( int_fast16_t const filter)

◆ QS_beginRec_()

void QS_beginRec_ ( uint_fast8_t const rec)

◆ QS_endRec_()

void QS_endRec_ ( void )

◆ QS_u8_raw_()

void QS_u8_raw_ ( uint8_t const d)

◆ QS_2u8_raw_()

void QS_2u8_raw_ ( uint8_t const d1,
uint8_t const d2 )

◆ QS_u16_raw_()

void QS_u16_raw_ ( uint16_t const d)

◆ QS_u32_raw_()

void QS_u32_raw_ ( uint32_t const d)

◆ QS_u64_raw_()

void QS_u64_raw_ ( uint64_t const d)

◆ QS_obj_raw_()

void QS_obj_raw_ ( void const *const obj)

◆ QS_str_raw_()

void QS_str_raw_ ( char const *const str)

◆ QS_u8_fmt_()

void QS_u8_fmt_ ( uint8_t const format,
uint8_t const d )

◆ QS_u16_fmt_()

void QS_u16_fmt_ ( uint8_t const format,
uint16_t const d )

◆ QS_u32_fmt_()

void QS_u32_fmt_ ( uint8_t const format,
uint32_t const d )

◆ QS_u64_fmt_()

void QS_u64_fmt_ ( uint8_t const format,
uint64_t const d )

◆ QS_f32_fmt_()

void QS_f32_fmt_ ( uint8_t const format,
float32_t const f )

◆ QS_f64_fmt_()

void QS_f64_fmt_ ( uint8_t const format,
float64_t const d )

◆ QS_str_fmt_()

void QS_str_fmt_ ( char const *const str)

◆ QS_mem_fmt_()

void QS_mem_fmt_ ( uint8_t const *const blk,
uint8_t const size )

◆ QS_sig_dict_pre_()

void QS_sig_dict_pre_ ( QSignal const sig,
void const *const obj,
char const *const name )

◆ QS_obj_dict_pre_()

void QS_obj_dict_pre_ ( void const *const obj,
char const *const name )

◆ QS_obj_arr_dict_pre_()

void QS_obj_arr_dict_pre_ ( void const *const obj,
uint_fast16_t const idx,
char const *const name )

◆ QS_fun_dict_pre_()

void QS_fun_dict_pre_ ( QSpyFunPtr const fun,
char const *const name )

◆ QS_usr_dict_pre_()

void QS_usr_dict_pre_ ( enum_t const rec,
char const *const name )

◆ QS_enum_dict_pre_()

void QS_enum_dict_pre_ ( enum_t const value,
uint8_t const group,
char const *const name )

◆ QS_assertion_pre_()

void QS_assertion_pre_ ( char const *const module,
int_t const id,
uint32_t const delay )

◆ QS_target_info_pre_()

void QS_target_info_pre_ ( QSResetAction const act)

◆ QS_processTestEvts_()

void QS_processTestEvts_ ( void )

Variable Documentation

◆ QS_priv_

QS_Attr QS_priv_
extern