module ti.uia.runtime.LoggerProbePoint

A logger which stores Log events in a non-blocking, streamable circular buffer

C synopsis target-domain sourced in ti/uia/runtime/LoggerProbePoint.xdc
#include <ti/uia/runtime/LoggerProbePoint.h>
Functions
Void
Void
Void
Void 
Void 
SizeT 
Int 
SizeT 
Void
Void 
Functions common to all ILogger modules
Bool 
Bool 
Void 
Void 
Void 
Void 
Void 
LoggerProbePoint_write8// Process a log event with 8 arguments and the calling address(LoggerProbePoint_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
Functions common to all IUIATransfer modules
Bool 
UInt16 
SizeT 
Bool 
Void 
Functions common to all IFilterLogger modules
Void 
Functions common to all ILoggerSnapshot modules
Void 
LoggerProbePoint_writeMemoryRange// Log an event along with values from a range of memory addresses(LoggerProbePoint_Handle handle, Log_Event evt, Types_ModuleId mid, UInt32 snapshotId, IArg fileName, IArg LineNum, IArg fmt, IArg startAdrs, UInt32 lengthInMAUs);
Functions common to all target instances
LoggerProbePoint_handle// Convert this instance structure pointer into an instance handle, LoggerProbePoint_Handle_downCast// conditionally move one level down the inheritance hierarchy; NULL upon failure, LoggerProbePoint_Handle_downCast2// conditionally move 2 levels down the inheritance hierarchy; NULL upon failure, LoggerProbePoint_Handle_downCast3// conditionally move 3 levels down the inheritance hierarchy; NULL upon failure, LoggerProbePoint_Handle_downCast4// conditionally move 4 levels down the inheritance hierarchy; NULL upon failure, LoggerProbePoint_Handle_label// The label associated with this instance object, LoggerProbePoint_Handle_name// The name of this instance object, LoggerProbePoint_Handle_upCast// unconditionally move one level up the inheritance hierarchy, LoggerProbePoint_Handle_upCast2// unconditionally move 2 levels up the inheritance hierarchy, LoggerProbePoint_Handle_upCast3// unconditionally move 3 levels up the inheritance hierarchy, LoggerProbePoint_Handle_upCast4// unconditionally move 4 levels up the inheritance hierarchy, LoggerProbePoint_Object_count// The number of statically-created instance objects, LoggerProbePoint_Object_first// The handle of the first dynamically-created instance object, or NULL, LoggerProbePoint_Object_get// The handle of the i-th statically-created instance object (array == NULL), LoggerProbePoint_Object_heap// The heap used to allocate dynamically-created instance objects, LoggerProbePoint_Object_next// The handle of the next dynamically-created instance object, or NULL, LoggerProbePoint_struct// Convert this instance handle into an instance structure pointer
Functions common to all target modules
Typedefs
typedef struct
typedef struct
typedef struct
typedef enum
Constants
extern const Bool 
extern const Error_Id 
extern const Bool 
extern const Bool 
extern const Diags_Mask 
extern const Diags_Mask 
extern const Diags_Mask 
extern const Diags_Mask 
extern const ILogger_Handle 
extern const IFilterLogger_Handle 
 
 
enum LoggerProbePoint_TransferType
C synopsis target-domain
typedef enum LoggerProbePoint_TransferType {
    LoggerProbePoint_TransferType_RELIABLE,
    LoggerProbePoint_TransferType_LOSSY
} LoggerProbePoint_TransferType;
 
 
config LoggerProbePoint_E_badLevel  // module-wide

Error raised if get or setFilterLevel receive a bad level value

C synopsis target-domain
extern const Error_Id LoggerProbePoint_E_badLevel;
 
 
config LoggerProbePoint_enableFlush  // module-wide

Flush all logs at system exit

C synopsis target-domain
extern const Bool LoggerProbePoint_enableFlush;
 
 
config LoggerProbePoint_filterByLevel  // module-wide

Support filtering of events by event level

C synopsis target-domain
extern const Bool LoggerProbePoint_filterByLevel;
 
DETAILS
To improve logging performance, this feature can be disabled by setting filterByLevel to false.
See 'setFilterLevel' for an explanation of level filtering.
 
config LoggerProbePoint_isTimestampEnabled  // module-wide

Enable or disable logging the 64b local CPU timestamp at the start of each event

C synopsis target-domain
extern const Bool LoggerProbePoint_isTimestampEnabled;
 
 
config LoggerProbePoint_level1Mask  // module-wide

Mask of diags categories whose initial filtering level is Diags.LEVEL1

C synopsis target-domain
extern const Diags_Mask LoggerProbePoint_level1Mask;
 
DETAILS
See 'level4Mask' for details.
 
config LoggerProbePoint_level2Mask  // module-wide

Mask of diags categories whose initial filtering level is Diags.LEVEL2

C synopsis target-domain
extern const Diags_Mask LoggerProbePoint_level2Mask;
 
DETAILS
See 'level4Mask' for details.
 
config LoggerProbePoint_level3Mask  // module-wide

Mask of diags categories whose initial filtering level is Diags.LEVEL3

C synopsis target-domain
extern const Diags_Mask LoggerProbePoint_level3Mask;
 
DETAILS
See 'level4Mask' for details.
 
config LoggerProbePoint_level4Mask  // module-wide

Mask of diags categories whose initial filtering level is Diags.LEVEL4

C synopsis target-domain
extern const Diags_Mask LoggerProbePoint_level4Mask;
 
DETAILS
If 'filterByLevel' is true, then all LoggerBuf instances will filter incoming events based on their event level.
The LoggerProbePoint module allows for specifying a different filter level for every Diags bit. These filtering levels are module wide; LoggerBuf does not support specifying the levels on a per-instance basis.
The setFilterLevel API can be used to change the filtering levels at runtime.
The default filtering levels are assigned using the 'level1Mask' - 'level4Mask' config parameters. These are used to specify, for each of the four event levels, the set of bits which should filter at that level by default.
The default filtering configuration sets the filter level to Diags.LEVEL4 for all logging-related diags bits so that all events are logged by default.
 
config LoggerProbePoint_overflowLogger  // module-wide

Route all events that cannot be stored in the main (transfer) event buffer to this logger

C synopsis target-domain
extern const ILogger_Handle LoggerProbePoint_overflowLogger;
 
DETAILS
If an overflowLogger is specified and there is not enough room in the instance's buffer, the event will be passed to this logger instead.
The overflow Logger is intended to ensure that the last 'N' events leading up to a breakpoint are captured and are available for stop-mode debugging. The overflow logger should be designed to automatically wrap, overwriting the oldest events and preserving the most recent events. An example is xdc.runtime.LoggerBuf.
The default value is null, indicating that overflow events that occur because the event transport is not fast enough to upload them will just be dropped.
 
config LoggerProbePoint_statusLogger  // module-wide

Route all 'STATUS' (error and warning) events to this logger

C synopsis target-domain
extern const IFilterLogger_Handle LoggerProbePoint_statusLogger;
 
DETAILS
If a statusLogger is specified AND the filterByLevel is true, all LoggerProbePoint instances will check to determine if any of the events they receive are errors or warnings (if their diags mask includes the STATUS category) or if the event is from the module specified by moduleIdToRouteToStatusLogger, and if so, will log these events to the statusLogger.
Error events are infrequent, but it's generally critical that they be seen. In a typical system, non-error events easily outnumber any error events, and the logger is likely to wrap, overwriting any error events. To protect these events from being overwritten and lost, they can be sent to their own separate logger to preserve them.
The default value is null, indicating that the STATUS events will just be logged by the logger they were sent to.
 
LoggerProbePoint_flushAll()  // module-wide

Flush logs of all instances of LoggerProbePoint

C synopsis target-domain
Void LoggerProbePoint_flushAll();
 
DETAILS
The user is responsible for making sure that no LoggerProbePoint instances are created or deleted while in this API, by using an appropriate gate.
 
LoggerProbePoint_setModuleIdToRouteToStatusLogger()  // module-wide

Specifies which module to route events to the statusLogger for

C synopsis target-domain
Void LoggerProbePoint_setModuleIdToRouteToStatusLogger(Types_ModuleId mid);
 
ARGUMENTS
mid — the module ID to route events for. Set to -1 for 'none'
Module-Wide Built-Ins

C synopsis target-domain
Types_ModuleId LoggerProbePoint_Module_id();
// Get this module's unique id
 
Bool LoggerProbePoint_Module_startupDone();
// Test if this module has completed startup
 
IHeap_Handle LoggerProbePoint_Module_heap();
// The heap from which this module allocates memory
 
Bool LoggerProbePoint_Module_hasMask();
// Test whether this module has a diagnostics mask
 
Bits16 LoggerProbePoint_Module_getMask();
// Returns the diagnostics mask for this module
 
Void LoggerProbePoint_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types

C synopsis target-domain
typedef struct LoggerProbePoint_Object LoggerProbePoint_Object;
// Opaque internal representation of an instance object
 
typedef LoggerProbePoint_Object *LoggerProbePoint_Handle;
// Client reference to an instance object
 
typedef struct LoggerProbePoint_Struct LoggerProbePoint_Struct;
// Opaque client structure large enough to hold an instance object
 
LoggerProbePoint_Handle LoggerProbePoint_handle(LoggerProbePoint_Struct *structP);
// Convert this instance structure pointer into an instance handle
 
LoggerProbePoint_Struct *LoggerProbePoint_struct(LoggerProbePoint_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters

C synopsis target-domain
typedef struct LoggerProbePoint_Params {
// Instance config-params structure
    IInstance_Params *instance;
    // Common per-instance configs
    IHeap_Handle bufHeap;
    // The heap that contains the Log buffer for dynamic instances
    Bool exitFlush;
    // Flush log at system exit
    SizeT maxEventSize;
    // The maximum event size (in Maus) that can be written with a single event
    Int numCores;
    // Number of cores running the same image with an instance in shared memory
    SizeT transferBufSize;
    // Number of minimum addressable units (e.g. bytes) in transfer buffer
    IUIATransfer_TransferType transferType;
    // 
} LoggerProbePoint_Params;
 
Void LoggerProbePoint_Params_init(LoggerProbePoint_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
 
config LoggerProbePoint_bufHeap  // instance

The heap that contains the Log buffer for dynamic instances

C synopsis target-domain
      ...
    IHeap_Handle bufHeap;
 
DETAILS
The default value null means the buffer will be allocated from the Memory.defaultHeapInstance heap.
 
config LoggerProbePoint_exitFlush  // instance

Flush log at system exit

C synopsis target-domain
      ...
    Bool exitFlush;
 
DETAILS
Only used when module parameter enableFlush is true.
 
config LoggerProbePoint_maxEventSize  // instance

The maximum event size (in Maus) that can be written with a single event

C synopsis target-domain
      ...
    SizeT maxEventSize;
 
DETAILS
Determines the size of the area following the circular buffer that is used to provide a linear copy space to speed up copying data into the buffer in a circular manner. Must be less than or equal to transferBufSize.
 
config LoggerProbePoint_numCores  // instance

Number of cores running the same image with an instance in shared memory

C synopsis target-domain
      ...
    Int numCores;
 
DETAILS
A common use case is to have the same binary image (e.g. .out file) run on multiple cores of multi-core device. This causes a problem if the logger's buffer is in shared memory (e.g. DDR). Since the image is the same for all the cores, each core will attempt to write to the same buffer in the shared memory. To avoid this, either the logger's buffers must be in non-shared memory or by setting the numCores parameter to the number of cores on the device.
Note: the bufSection along with the Program.sectMap is how a logger instance's buffer is placed into specific memory.
Setting numCores to a value great than 1 signals LoggerProbePoint to statically set aside additional memory ((x numCores) to allow each core to have transferBufSize amount of memory.
Warning: setting this parameter to a value greater than one should only be done when there is a single image used on multiple cores of a multi-core device AND the logger instance's buffer is in shared memory. While functionally it will still work, memory will be wasted if both these conditions are not met.
The default is 1, which means do not reserve any additional memory for the logger.
 
config LoggerProbePoint_transferBufSize  // instance

Number of minimum addressable units (e.g. bytes) in transfer buffer

C synopsis target-domain
      ...
    SizeT transferBufSize;
 
DETAILS
The transfer buffer is used to store events that can be read by the transport. Since the transport is typically bandwidth limited, it is possible to drop events if the buffer fills up before the event can be transmitted. If this occurs and the `overflowLogger is not null, the event will be written to the overflow buffer.
 
config LoggerProbePoint_transferType  // instance
C synopsis target-domain
      ...
    IUIATransfer_TransferType transferType;
 
Instance Creation

C synopsis target-domain
LoggerProbePoint_Handle LoggerProbePoint_create(const LoggerProbePoint_Params *params, Error_Block *eb);
// Allocate and initialize a new instance object and return its handle
 
Void LoggerProbePoint_construct(LoggerProbePoint_Struct *structP, const LoggerProbePoint_Params *params, Error_Block *eb);
// Initialize a new instance object inside the provided structure
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
SEE
Instance Deletion

C synopsis target-domain
Void LoggerProbePoint_delete(LoggerProbePoint_Handle *handleP);
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
 
Void LoggerProbePoint_destruct(LoggerProbePoint_Struct *structP);
// Finalize the instance object inside the provided structure
 
LoggerProbePoint_disable()  // instance

Disable a log

C synopsis target-domain
Bool LoggerProbePoint_disable(LoggerProbePoint_Handle handle);
 
ARGUMENTS
handle — handle of a previously-created LoggerProbePoint instance object
DETAILS
Events written to a disabled log are silently discarded.
Events written to a disabled log are silently discarded.
RETURNS
The function returns the state of the log (TRUE if enabled, FALSE if disabled) before the call. This return value allows clients to restore the previous state. Note: not thread safe.
The function returns the state of the log (TRUE if enabled, FALSE if disabled) before the call. That allow clients to restore the previous state.
 
LoggerProbePoint_enable()  // instance

Enable a log

C synopsis target-domain
Bool LoggerProbePoint_enable(LoggerProbePoint_Handle handle);
 
ARGUMENTS
handle — handle of a previously-created LoggerProbePoint instance object
RETURNS
The function returns the state of the log (TRUE if enabled, FALSE if disabled) before the call. This return value allows clients to restore the previous state. Note: not thread safe.
The function returns the state of the log (TRUE if enabled, FALSE if disabled) before the call. That allow clients to restore the previous state.
 
LoggerProbePoint_flush()  // instance

Read, clear, and output the contents of the log

C synopsis target-domain
Void LoggerProbePoint_flush(LoggerProbePoint_Handle handle);
 
ARGUMENTS
handle — handle of a previously-created LoggerProbePoint instance object
DETAILS
This method reads, clears, and "prints" each Log event (via System.printf) in the log.
 
LoggerProbePoint_getContents()  // instance

Fills buffer that is passed in with unread data, up to size bytes in length

C synopsis target-domain
Bool LoggerProbePoint_getContents(LoggerProbePoint_Handle handle, Ptr hdrBuf, SizeT size, SizeT *cpSize);
 
ARGUMENTS
handle — handle of a previously-created LoggerProbePoint instance object
hdrBuf — Ptr to a buffer that is at least <size> bytes in length
size — The max number of bytes to be read into the buffer
cpSize — The number of bytes actually copied
DETAILS
The logger is responsible for ensuring that no partial event records are stored in the buffer. Bytes are in target endianness.
RETURN
returns false if logger has no more records to read
 
LoggerProbePoint_getFilterLevel()  // instance

Returns the mask of diags categories currently set to the specified level

C synopsis target-domain
Diags_Mask LoggerProbePoint_getFilterLevel(LoggerProbePoint_Handle handle, Diags_EventLevel level);
 
ARGUMENTS
handle — handle of a previously-created LoggerProbePoint instance object
DETAILS
See 'setFilterLevel' for an explanation of level filtering.
See 'setFilterLevel' for an explanation of level filtering.
 
LoggerProbePoint_getFreeSize()  // instance

Determines how much free space exist (in Maus)

C synopsis target-domain
SizeT LoggerProbePoint_getFreeSize(LoggerProbePoint_Handle handle);
 
ARGUMENTS
handle — handle of a previously-created LoggerProbePoint instance object
 
LoggerProbePoint_getInstanceId()  // instance

Returns an ID value that uniquely identifies this instance of the logger

C synopsis target-domain
UInt16 LoggerProbePoint_getInstanceId(LoggerProbePoint_Handle handle);
 
ARGUMENTS
handle — handle of a previously-created LoggerProbePoint instance object
DETAILS
Note that a value of 0 is reserved to indicate that the instance ID has not been initialized yet and a unique value needs to be generated.
 
LoggerProbePoint_getMaxLength()  // instance
C synopsis target-domain
SizeT LoggerProbePoint_getMaxLength(LoggerProbePoint_Handle handle);
 
ARGUMENTS
handle — handle of a previously-created LoggerProbePoint instance object
 
LoggerProbePoint_getNumDropped()  // instance

Returns the number of dropped events for this logger instance

C synopsis target-domain
Int LoggerProbePoint_getNumDropped(LoggerProbePoint_Handle handle);
 
ARGUMENTS
handle — handle of a previously-created LoggerProbePoint instance object
 
LoggerProbePoint_getTransferType()  // instance
C synopsis target-domain
IUIATransfer_TransferType LoggerProbePoint_getTransferType(LoggerProbePoint_Handle handle);
 
ARGUMENTS
handle — handle of a previously-created LoggerProbePoint instance object
 
LoggerProbePoint_getUnreadSize()  // instance

Determines how much unread data exist (in Maus)

C synopsis target-domain
SizeT LoggerProbePoint_getUnreadSize(LoggerProbePoint_Handle handle);
 
ARGUMENTS
handle — handle of a previously-created LoggerProbePoint instance object
 
LoggerProbePoint_isEmpty()  // instance

Returns true if the transfer buffer has no unread data

C synopsis target-domain
Bool LoggerProbePoint_isEmpty(LoggerProbePoint_Handle handle);
 
ARGUMENTS
handle — handle of a previously-created LoggerProbePoint instance object
RETURN
true if no unread data
 
LoggerProbePoint_reset()  // instance

Reset a log to empty state and enable it

C synopsis target-domain
Void LoggerProbePoint_reset(LoggerProbePoint_Handle handle);
 
ARGUMENTS
handle — handle of a previously-created LoggerProbePoint instance object
WARNING
This method is not synchronized with other instance methods and, as a result, it must never be called when there is a chance that another instance method is currently in operation or when another method on this instance may preempt this call.
 
LoggerProbePoint_setFilterLevel()  // instance

Sets the level of detail that instances will log

C synopsis target-domain
Void LoggerProbePoint_setFilterLevel(LoggerProbePoint_Handle handle, Diags_Mask mask, Diags_EventLevel filterLevel);
 
ARGUMENTS
handle — handle of a previously-created LoggerProbePoint instance object
mask — The diags categories to set the level for
The diags categories to set the level for
filterLevel — The new filtering level for the specified categories
The new filtering level for the specified categories
DETAILS
Events with the specified level or higher will be logged, events below the specified level will be dropped.
Events are filtered first by diags category, then by level. If an event's diags category is disabled in the module's diags mask, then it will be filtered out regardless of level. The event will not even be passed to the logger.
This API allows for setting the filtering level for more than one diags category at a time. The mask parameter can be a single category or multiple categories combined, and the level will be set for all of those categories.
Events with the specified level or higher will be logged, events below the specified level will be dropped.
Events are filtered first by diags category, then by level. If an event's diags category is disabled in the module's diags mask, then it will be filtered out regardless of level. The event will not even be passed to the logger.
This API allows for setting the filtering level for more than one diags category at a time. The mask parameter can be a single category or multiple categories combined, and the level will be set for all of those categories.
 
LoggerProbePoint_write0()  // instance

Process a log event with 0 arguments and the calling address

C synopsis target-domain
Void LoggerProbePoint_write0(LoggerProbePoint_Handle handle, Log_Event evt, Types_ModuleId mid);
 
ARGUMENTS
handle — handle of a previously-created LoggerProbePoint instance object
DETAILS
Same as write4 except with 0 arguments rather than 4.
Same as write4 except with 0 arguments rather than 4.
SEE
 
LoggerProbePoint_write1()  // instance

Process a log event with 1 arguments and the calling address

C synopsis target-domain
Void LoggerProbePoint_write1(LoggerProbePoint_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1);
 
ARGUMENTS
handle — handle of a previously-created LoggerProbePoint instance object
DETAILS
Same as write4 except with 1 arguments rather than 4.
Same as write4 except with 0 arguments rather than 4.
SEE
 
LoggerProbePoint_write2()  // instance

Process a log event with 2 arguments and the calling address

C synopsis target-domain
Void LoggerProbePoint_write2(LoggerProbePoint_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2);
 
ARGUMENTS
handle — handle of a previously-created LoggerProbePoint instance object
DETAILS
Same as write4 except with 2 arguments rather than 4.
Same as write4 except with 2 arguments rather than 4.
SEE
 
LoggerProbePoint_write4()  // instance

Process a log event with 4 arguments and the calling address

C synopsis target-domain
Void LoggerProbePoint_write4(LoggerProbePoint_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4);
 
ARGUMENTS
handle — handle of a previously-created LoggerProbePoint instance object
evt — event to be logged
mid — module ID of the module which logged the event
a1 — arbitrary argument passed by caller
DETAILS
The evt argument is of type Log.Event, which encodes the Log.EventId, the Diags.Mask, and the Diags.EventLevel of the event. The event ID can be obtained via Types.getEventId(evt), the Diags mask can be obtained via Diags.getMask(evt), and the event level can be obtained via Diags.getLevel(evt).
The modId argument is the module ID of the module that logged the event.
The event information can be used by the logger to handle different events specially. For example, the event ID can be used to compare against other known Log.Events.
      if (Log_getEventId(MY_EVENT) == Log_getEventId(evt)) {
          :
      }
The Diags mask and event level can be used for filtering of events based on event level (see IFilterLogger), or even routing events to separate loggers based on diags category (see, for example, LoggerBuf.statusLogger).
The Diags mask and event level are useful for handling the event, but are generally not recorded by the logger because they are not needed in decoding and displaying the event. A more suitable value to record is a Types.Event, which encodes the event ID and module ID. For example, the Log.EventRec type stores a Types.Event in its record definition. A Types.Event can be created using the Types.makeEvent API given the event ID and module ID.
The event ID value of 0 is used to indicate an event triggered by a call to one of the Log_print[0-6] methods. These methods take a format string rather than a Log_Event argument and, as a result, the event ID encoded in evt is 0 and the parameter a1 is the format string.
Non-zero event IDs can also be used to access the msg string associated with the Log.EventDesc that originally defined the Log event.
      Log_EventId id = Log_getEventId(evt));
      if (id != 0) {
          String msg = Text_ropeText(id);
          System_aprintf(msg, a1, a2, a3, a4);
      }
This works because an event's ID is simply an offset into a table of characters (maintained by the Text module) containing the event's msg string.
The arguments a1, a2, etc. are parameters that are to be interpreted according to the message format string associated with evt.
SEE
 
LoggerProbePoint_write8()  // instance

Process a log event with 8 arguments and the calling address

C synopsis target-domain
Void LoggerProbePoint_write8(LoggerProbePoint_Handle handle, Log_Event evt, Types_ModuleId mid, IArg a1, IArg a2, IArg a3, IArg a4, IArg a5, IArg a6, IArg a7, IArg a8);
 
ARGUMENTS
handle — handle of a previously-created LoggerProbePoint instance object
DETAILS
Same as write4 except with 8 arguments rather than 4.
Same as write4 except with 8 arguments rather than 4.
SEE
 
LoggerProbePoint_writeMemoryRange()  // instance

Log an event along with values from a range of memory addresses

C synopsis target-domain
Void LoggerProbePoint_writeMemoryRange(LoggerProbePoint_Handle handle, Log_Event evt, Types_ModuleId mid, UInt32 snapshotId, IArg fileName, IArg LineNum, IArg fmt, IArg startAdrs, UInt32 lengthInMAUs);
 
ARGUMENTS
handle — handle of a previously-created LoggerProbePoint instance object
evt — event to be logged
snapshotId — 0 = no other snapshot groups, Use value from LogSnapshot.getSnapshotId() for all snapshots to be grouped.
fileName — __FILE__ result
lineNum — __LINE__ result
fmt — a printf style format string
startAdrs — value for first format conversion character
lengthInMAUs — value for second format conversion character
DETAILS
If the mask in the specified LogSnapshot event has any bit set which is also set in the current module's diagnostics mask, then this call to write will "raise" the given LogSnapshot event.
Note that this API supports null terminated strings, arrays of characters and memory mapped registgers as well as blocks of memory. The LogSnapshot module provides macros that map the appropriate values to the writeMemoryRange API's arguments
SEE
Instance Convertors

C synopsis target-domain
ILoggerSnapshot_Handle LoggerProbePoint_Handle_upCast(LoggerProbePoint_Handle handle);
// unconditionally move one level up the inheritance hierarchy
 
LoggerProbePoint_Handle LoggerProbePoint_Handle_downCast(ILoggerSnapshot_Handle handle);
// conditionally move one level down the inheritance hierarchy; NULL upon failure
 
IUIATransfer_Handle LoggerProbePoint_Handle_upCast2(LoggerProbePoint_Handle handle);
// unconditionally move 2 levels up the inheritance hierarchy
 
LoggerProbePoint_Handle LoggerProbePoint_Handle_downCast2(IUIATransfer_Handle handle);
// conditionally move 2 levels down the inheritance hierarchy; NULL upon failure
 
IFilterLogger_Handle LoggerProbePoint_Handle_upCast3(LoggerProbePoint_Handle handle);
// unconditionally move 3 levels up the inheritance hierarchy
 
LoggerProbePoint_Handle LoggerProbePoint_Handle_downCast3(IFilterLogger_Handle handle);
// conditionally move 3 levels down the inheritance hierarchy; NULL upon failure
 
ILogger_Handle LoggerProbePoint_Handle_upCast4(LoggerProbePoint_Handle handle);
// unconditionally move 4 levels up the inheritance hierarchy
 
LoggerProbePoint_Handle LoggerProbePoint_Handle_downCast4(ILogger_Handle handle);
// conditionally move 4 levels down the inheritance hierarchy; NULL upon failure
Instance Built-Ins

C synopsis target-domain
Int LoggerProbePoint_Object_count();
// The number of statically-created instance objects
 
LoggerProbePoint_Handle LoggerProbePoint_Object_get(LoggerProbePoint_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
 
LoggerProbePoint_Handle LoggerProbePoint_Object_first();
// The handle of the first dynamically-created instance object, or NULL
 
LoggerProbePoint_Handle LoggerProbePoint_Object_next(LoggerProbePoint_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
 
IHeap_Handle LoggerProbePoint_Object_heap();
// The heap used to allocate dynamically-created instance objects
 
Types_Label *LoggerProbePoint_Handle_label(LoggerProbePoint_Handle handle, Types_Label *buf);
// The label associated with this instance object
 
String LoggerProbePoint_Handle_name(LoggerProbePoint_Handle handle);
// The name of this instance object
 
XDCscript usage meta-domain sourced in ti/uia/runtime/LoggerProbePoint.xdc
var LoggerProbePoint = xdc.useModule('ti.uia.runtime.LoggerProbePoint');
module-wide constants & types
    values of type LoggerProbePoint.TransferType// 
        const LoggerProbePoint.TransferType_LOSSY;
 
        obj.instanceId = Int  ...
        obj.priority = Int  ...
 
    var obj = new LoggerProbePoint.RecordView// ;
        obj.serial = Int  ...
        obj.timestampRaw = Long  ...
        obj.modName = String  ...
        obj.text = String  ...
        obj.eventId = Int  ...
        obj.eventName = String  ...
        obj.arg0 = IArg  ...
        obj.arg1 = IArg  ...
        obj.arg2 = IArg  ...
        obj.arg3 = IArg  ...
        obj.arg4 = IArg  ...
        obj.arg5 = IArg  ...
        obj.arg6 = IArg  ...
        obj.arg7 = IArg  ...
module-wide config parameters
        msg: "E_badLevel: Bad filter level value: %d"
    };
 
module-wide functions
per-instance config parameters
    var params = new LoggerProbePoint.Params// Instance config-params object;
        params.exitFlush// Flush log at system exit = Bool true;
        params.ptrToQueueDescriptorMeta//  = Ptr null;
per-instance creation
    var inst = LoggerProbePoint.create// Create an instance-object(params);
 
 
enum LoggerProbePoint.TransferType
XDCscript usage meta-domain
values of type LoggerProbePoint.TransferType
    const LoggerProbePoint.TransferType_RELIABLE;
    const LoggerProbePoint.TransferType_LOSSY;
 
C SYNOPSIS
 
metaonly struct LoggerProbePoint.MetaData

This data is added to the RTA MetaData file to support stop mode RTA

XDCscript usage meta-domain
var obj = new LoggerProbePoint.MetaData;
 
    obj.instanceId = Int  ...
    obj.priority = Int  ...
 
 
metaonly struct LoggerProbePoint.RecordView
XDCscript usage meta-domain
var obj = new LoggerProbePoint.RecordView;
 
    obj.serial = Int  ...
    obj.timestampRaw = Long  ...
    obj.modName = String  ...
    obj.text = String  ...
    obj.eventId = Int  ...
    obj.eventName = String  ...
    obj.arg0 = IArg  ...
    obj.arg1 = IArg  ...
    obj.arg2 = IArg  ...
    obj.arg3 = IArg  ...
    obj.arg4 = IArg  ...
    obj.arg5 = IArg  ...
    obj.arg6 = IArg  ...
    obj.arg7 = IArg  ...
 
 
config LoggerProbePoint.E_badLevel  // module-wide

Error raised if get or setFilterLevel receive a bad level value

XDCscript usage meta-domain
LoggerProbePoint.E_badLevel = Error.Desc {
    msg: "E_badLevel: Bad filter level value: %d"
};
 
C SYNOPSIS
 
config LoggerProbePoint.enableFlush  // module-wide

Flush all logs at system exit

XDCscript usage meta-domain
LoggerProbePoint.enableFlush = Bool false;
 
C SYNOPSIS
 
config LoggerProbePoint.filterByLevel  // module-wide

Support filtering of events by event level

XDCscript usage meta-domain
LoggerProbePoint.filterByLevel = Bool false;
 
DETAILS
To improve logging performance, this feature can be disabled by setting filterByLevel to false.
See 'setFilterLevel' for an explanation of level filtering.
C SYNOPSIS
 
config LoggerProbePoint.isTimestampEnabled  // module-wide

Enable or disable logging the 64b local CPU timestamp at the start of each event

XDCscript usage meta-domain
LoggerProbePoint.isTimestampEnabled = Bool true;
 
C SYNOPSIS
 
config LoggerProbePoint.level1Mask  // module-wide

Mask of diags categories whose initial filtering level is Diags.LEVEL1

XDCscript usage meta-domain
LoggerProbePoint.level1Mask = Bits16 0;
 
DETAILS
See 'level4Mask' for details.
C SYNOPSIS
 
config LoggerProbePoint.level2Mask  // module-wide

Mask of diags categories whose initial filtering level is Diags.LEVEL2

XDCscript usage meta-domain
LoggerProbePoint.level2Mask = Bits16 0;
 
DETAILS
See 'level4Mask' for details.
C SYNOPSIS
 
config LoggerProbePoint.level3Mask  // module-wide

Mask of diags categories whose initial filtering level is Diags.LEVEL3

XDCscript usage meta-domain
LoggerProbePoint.level3Mask = Bits16 0;
 
DETAILS
See 'level4Mask' for details.
C SYNOPSIS
 
config LoggerProbePoint.level4Mask  // module-wide

Mask of diags categories whose initial filtering level is Diags.LEVEL4

XDCscript usage meta-domain
LoggerProbePoint.level4Mask = Bits16 Diags.ALL_LOGGING;
 
DETAILS
If 'filterByLevel' is true, then all LoggerBuf instances will filter incoming events based on their event level.
The LoggerProbePoint module allows for specifying a different filter level for every Diags bit. These filtering levels are module wide; LoggerBuf does not support specifying the levels on a per-instance basis.
The setFilterLevel API can be used to change the filtering levels at runtime.
The default filtering levels are assigned using the 'level1Mask' - 'level4Mask' config parameters. These are used to specify, for each of the four event levels, the set of bits which should filter at that level by default.
The default filtering configuration sets the filter level to Diags.LEVEL4 for all logging-related diags bits so that all events are logged by default.
C SYNOPSIS
 
config LoggerProbePoint.overflowLogger  // module-wide

Route all events that cannot be stored in the main (transfer) event buffer to this logger

XDCscript usage meta-domain
LoggerProbePoint.overflowLogger = ILogger.Handle null;
 
DETAILS
If an overflowLogger is specified and there is not enough room in the instance's buffer, the event will be passed to this logger instead.
The overflow Logger is intended to ensure that the last 'N' events leading up to a breakpoint are captured and are available for stop-mode debugging. The overflow logger should be designed to automatically wrap, overwriting the oldest events and preserving the most recent events. An example is xdc.runtime.LoggerBuf.
The default value is null, indicating that overflow events that occur because the event transport is not fast enough to upload them will just be dropped.
C SYNOPSIS
 
config LoggerProbePoint.statusLogger  // module-wide

Route all 'STATUS' (error and warning) events to this logger

XDCscript usage meta-domain
LoggerProbePoint.statusLogger = IFilterLogger.Handle null;
 
DETAILS
If a statusLogger is specified AND the filterByLevel is true, all LoggerProbePoint instances will check to determine if any of the events they receive are errors or warnings (if their diags mask includes the STATUS category) or if the event is from the module specified by moduleIdToRouteToStatusLogger, and if so, will log these events to the statusLogger.
Error events are infrequent, but it's generally critical that they be seen. In a typical system, non-error events easily outnumber any error events, and the logger is likely to wrap, overwriting any error events. To protect these events from being overwritten and lost, they can be sent to their own separate logger to preserve them.
The default value is null, indicating that the STATUS events will just be logged by the logger they were sent to.
C SYNOPSIS
 
metaonly config LoggerProbePoint.common$  // module-wide

Common module configuration parameters

XDCscript usage meta-domain
LoggerProbePoint.common$ = Types.Common$ undefined;
 
DETAILS
All modules have this configuration parameter. Its name contains the '$' character to ensure it does not conflict with configuration parameters declared by the module. This allows new configuration parameters to be added in the future without any chance of breaking existing modules.
 
metaonly config LoggerProbePoint.moduleToRouteToStatusLogger  // module-wide

events from this module will be routed to the statusLogger (if configured)

XDCscript usage meta-domain
LoggerProbePoint.moduleToRouteToStatusLogger = String undefined;
 
 
metaonly LoggerProbePoint.getLoggerInstanceId()  // module-wide

returns the id of this logger instance

XDCscript usage meta-domain
LoggerProbePoint.getLoggerInstanceId(Any inst) returns Any
 
 
metaonly LoggerProbePoint.getMetaArgs()  // module-wide

Returns any meta data needed to support RTA

XDCscript usage meta-domain
LoggerProbePoint.getMetaArgs(Any inst, Any instNum) returns Any
 
DETAILS
This meta data should be returned in the form of a structure which can be converted into XML. This data is added to the RTA XML file during the application's configuration, and can be accessed later through the xdc.rta.MetaData module.
The MetaData is returned per instance of the ILogger module. The instance object is passed to the function as the first argument.
The second argument is the index of the instance in the list of the ILogger's static instances.
 
metaonly LoggerProbePoint.getPtrToQueueDescriptorMeta()  // module-wide

Each logger instance has a unique queue descriptor address that is stored in the Event Record header to identify itself to the host. This metaonly configuration parameter allows the UIA Metadata to determine what the address is for each statically created logger instance in order to emit XML code to allow the host to look up information about the logger instance (such as its name) based on the queue descriptor address that is stored in the event record header

XDCscript usage meta-domain
LoggerProbePoint.getPtrToQueueDescriptorMeta(Any inst) returns Any
 
DETAILS
The pointer is returned per instance of the logger module. The instance object is passed to the function as the first argument.
 
metaonly LoggerProbePoint.setPtrToQueueDescriptorMeta()  // module-wide

Sets the queue descriptor address in the logger's object instance data

XDCscript usage meta-domain
LoggerProbePoint.setPtrToQueueDescriptorMeta(Any inst, Any queueDescriptorAdrs) returns Any
 
Instance Config Parameters

XDCscript usage meta-domain
var params = new LoggerProbePoint.Params;
// Instance config-params object
    params.bufHeap = IHeap.Handle null;
    // The heap that contains the Log buffer for dynamic instances
    params.bufSection = String null;
    // Section name for the buffer managed by the static instance
    params.exitFlush = Bool true;
    // Flush log at system exit
    params.maxEventSize = SizeT 128;
    // The maximum event size (in Maus) that can be written with a single event
    params.numCores = Int 1;
    // Number of cores running the same image with an instance in shared memory
    params.ptrToQueueDescriptorMeta = Ptr null;
    // 
    params.transferBufSize = SizeT 512;
    // Number of minimum addressable units (e.g. bytes) in transfer buffer
    // 
 
config LoggerProbePoint.bufHeap  // instance

The heap that contains the Log buffer for dynamic instances

XDCscript usage meta-domain
var params = new LoggerProbePoint.Params;
  ...
params.bufHeap = IHeap.Handle null;
 
DETAILS
The default value null means the buffer will be allocated from the Memory.defaultHeapInstance heap.
C SYNOPSIS
 
config LoggerProbePoint.exitFlush  // instance

Flush log at system exit

XDCscript usage meta-domain
var params = new LoggerProbePoint.Params;
  ...
params.exitFlush = Bool true;
 
DETAILS
Only used when module parameter enableFlush is true.
C SYNOPSIS
 
config LoggerProbePoint.maxEventSize  // instance

The maximum event size (in Maus) that can be written with a single event

XDCscript usage meta-domain
var params = new LoggerProbePoint.Params;
  ...
params.maxEventSize = SizeT 128;
 
DETAILS
Determines the size of the area following the circular buffer that is used to provide a linear copy space to speed up copying data into the buffer in a circular manner. Must be less than or equal to transferBufSize.
C SYNOPSIS
 
config LoggerProbePoint.numCores  // instance

Number of cores running the same image with an instance in shared memory

XDCscript usage meta-domain
var params = new LoggerProbePoint.Params;
  ...
params.numCores = Int 1;
 
DETAILS
A common use case is to have the same binary image (e.g. .out file) run on multiple cores of multi-core device. This causes a problem if the logger's buffer is in shared memory (e.g. DDR). Since the image is the same for all the cores, each core will attempt to write to the same buffer in the shared memory. To avoid this, either the logger's buffers must be in non-shared memory or by setting the numCores parameter to the number of cores on the device.
Note: the bufSection along with the Program.sectMap is how a logger instance's buffer is placed into specific memory.
Setting numCores to a value great than 1 signals LoggerProbePoint to statically set aside additional memory ((x numCores) to allow each core to have transferBufSize amount of memory.
Warning: setting this parameter to a value greater than one should only be done when there is a single image used on multiple cores of a multi-core device AND the logger instance's buffer is in shared memory. While functionally it will still work, memory will be wasted if both these conditions are not met.
The default is 1, which means do not reserve any additional memory for the logger.
C SYNOPSIS
 
config LoggerProbePoint.transferBufSize  // instance

Number of minimum addressable units (e.g. bytes) in transfer buffer

XDCscript usage meta-domain
var params = new LoggerProbePoint.Params;
  ...
params.transferBufSize = SizeT 512;
 
DETAILS
The transfer buffer is used to store events that can be read by the transport. Since the transport is typically bandwidth limited, it is possible to drop events if the buffer fills up before the event can be transmitted. If this occurs and the `overflowLogger is not null, the event will be written to the overflow buffer.
C SYNOPSIS
 
config LoggerProbePoint.transferType  // instance
XDCscript usage meta-domain
var params = new LoggerProbePoint.Params;
  ...
 
C SYNOPSIS
 
metaonly config LoggerProbePoint.bufSection  // instance

Section name for the buffer managed by the static instance

XDCscript usage meta-domain
var params = new LoggerProbePoint.Params;
  ...
params.bufSection = String null;
 
DETAILS
The default section is the 'dataMemory' in the platform.
 
metaonly config LoggerProbePoint.ptrToQueueDescriptorMeta  // instance
XDCscript usage meta-domain
var params = new LoggerProbePoint.Params;
  ...
params.ptrToQueueDescriptorMeta = Ptr null;
 
Instance Creation

XDCscript usage meta-domain
var params = new LoggerProbePoint.Params;
// Allocate instance config-params
params.config =   ...
// Assign individual configs
 
var inst = LoggerProbePoint.create(params);
// Create an instance-object
ARGUMENTS
params — per-instance config params, or NULL to select default values (target-domain only)
eb — active error-handling block, or NULL to select default policy (target-domain only)
SEE
generated on Mon, 28 Jan 2013 17:45:44 GMT