|
enum | preType : std::uint8_t {
I8_ENUM_T
, U8_T
, I16_T
, U16_T
,
I32_T
, U32_T
, F32_T
, F64_T
,
STR_T
, MEM_T
, SIG_T
, OBJ_T
,
FUN_T
, I64_T
, U64_T
} |
| Enumerates data elements for app-specific trace records. More...
|
|
enum | QSpyObjKind : std::uint8_t {
SM_OBJ
, AO_OBJ
, MP_OBJ
, EQ_OBJ
,
TE_OBJ
, AP_OBJ
, MAX_OBJ
} |
| Kinds of objects used QS-RX. More...
|
|
enum | OSpyObjCombnation : std::uint8_t { SM_AO_OBJ = MAX_OBJ
} |
| Object combinations for QS-RX. More...
|
|
QP/Spy software tracing (target-resident components)
void QP::QS::initBuf |
( |
std::uint8_t *const |
sto, |
|
|
std::uint_fast32_t const |
stoSize |
|
) |
| |
|
noexcept |
Initialize the QS-TX data buffer
This function should be called from QS_onStartup() to provide QS with the data buffer. The first argument sto
is the address of the memory block, and the second argument stoSize
is the size of this block [in bytes]. Currently the size of the QS buffer cannot exceed 64KB.
- Parameters
-
[in] | sto | pointer to the storage for the transmit buffer |
[in] | stoSize | size in [bytes] of the storage buffer |
- Note
- If the data output rate cannot keep up with the production rate, QS will start overwriting the older data with newer data. This is consistent with the "last-is-best" QS policy. The record sequence counters and check sums on each record allow the QSPY host utility to easily detect any data loss.
Definition at line 66 of file qs.cpp.
std::uint8_t const * QP::QS::getBlock |
( |
std::uint16_t *const |
pNbytes | ) |
|
|
noexcept |
Block-oriented interface to the QS-TX data buffer
This function delivers a contiguous block of data from the QS data buffer. The function returns the pointer to the beginning of the block, and writes the number of bytes in the block to the location pointed to by pNbytes
. The argument pNbytes
is also used as input to provide the maximum size of the data block that the caller can accept.
- Parameters
-
[in,out] | pNbytes | pointer to the number of bytes to send. On input, pNbytes specifies the maximum number of bytes that the function can provide. On output, pNbytes contains the actual number of bytes available. |
- Returns
- if data is available, the function returns pointer to the contiguous block of data and sets the value pointed to by
pNbytes
to the # available bytes. If data is available at the time the function is called, the function returns NULL pointer and sets the value pointed to by pNbytes
to zero.
- Note
- Only the NULL return from QS_getBlock() indicates that the QS buffer is empty at the time of the call. The non-NULL return often means that the block is at the end of the buffer and you need to call QS_getBlock() again to obtain the rest of the data that "wrapped around" to the beginning of the QS data buffer.
- Attention
- QS::getBlock() should be called from with a critical section.
Definition at line 117 of file qs.cpp.