enum LoggerProbePoint_TransferType |
 |
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
extern const Error_Id LoggerProbePoint_E_badLevel;
config LoggerProbePoint_enableFlush // module-wide |
 |
Flush all logs at system exit
extern const Bool LoggerProbePoint_enableFlush;
config LoggerProbePoint_filterByLevel // module-wide |
 |
Support filtering of events by event level
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
extern const Bool LoggerProbePoint_isTimestampEnabled;
config LoggerProbePoint_level1Mask // module-wide |
 |
Mask of diags categories whose initial filtering level is Diags.LEVEL1
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
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
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
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
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
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
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
Void LoggerProbePoint_setModuleIdToRouteToStatusLogger(
Types_ModuleId mid);
ARGUMENTS
mid
the module ID to route events for. Set to -1 for 'none'
Module-Wide Built-Ins |
 |
// Get this module's unique id
Bool LoggerProbePoint_Module_startupDone();
// Test if this module has completed startup
// 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 |
 |
typedef struct LoggerProbePoint_Object LoggerProbePoint_Object;
// Opaque internal representation of an instance object
// Client reference to an instance object
typedef struct LoggerProbePoint_Struct LoggerProbePoint_Struct;
// Opaque client structure large enough to hold an instance object
// Convert this instance structure pointer into an instance handle
// Convert this instance handle into an instance structure pointer
Instance Config Parameters |
 |
typedef struct LoggerProbePoint_Params {
// Instance config-params structure
// Common per-instance configs
// 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
//
} LoggerProbePoint_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
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
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
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
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
...
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 |
 |
Instance Creation |
 |
// Allocate and initialize a new instance object and return its handle
// 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 |
 |
// Finalize and free this previously allocated instance object, setting the referenced handle to NULL
// Finalize the instance object inside the provided structure
LoggerProbePoint_disable() // instance |
 |
Disable a log
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
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
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
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
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)
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
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 |
 |
ARGUMENTS
handle
handle of a previously-created LoggerProbePoint instance object
LoggerProbePoint_getNumDropped() // instance |
 |
Returns the number of dropped events for this logger instance
ARGUMENTS
handle
handle of a previously-created LoggerProbePoint instance object
LoggerProbePoint_getTransferType() // instance |
 |
ARGUMENTS
handle
handle of a previously-created LoggerProbePoint instance object
LoggerProbePoint_getUnreadSize() // instance |
 |
Determines how much unread data exist (in Maus)
ARGUMENTS
handle
handle of a previously-created LoggerProbePoint instance object
LoggerProbePoint_isEmpty() // instance |
 |
Returns true if the transfer buffer has no unread data
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
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
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
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
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
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
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
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
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 |
 |
// unconditionally move one level up the inheritance hierarchy
// conditionally move one level down the inheritance hierarchy; NULL upon failure
// unconditionally move 2 levels up the inheritance hierarchy
// conditionally move 2 levels down the inheritance hierarchy; NULL upon failure
// unconditionally move 3 levels up the inheritance hierarchy
// conditionally move 3 levels down the inheritance hierarchy; NULL upon failure
// unconditionally move 4 levels up the inheritance hierarchy
// conditionally move 4 levels down the inheritance hierarchy; NULL upon failure
Instance Built-Ins |
 |
Int LoggerProbePoint_Object_count();
// The number of statically-created instance objects
// The handle of the i-th statically-created instance object (array == NULL)
// The handle of the first dynamically-created instance object, or NULL
// The handle of the next dynamically-created instance object, or NULL
// The heap used to allocate dynamically-created instance objects
// The label associated with this instance object
// The name of this instance object
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 |
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 |
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 |
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 |
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 |
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
// 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;
...
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