Configuration Example 1: The following XDC configuration script statements
show how to use the ti.uiactools.sysbios.LoggingSetupSTM module to enable
instrumentation for SysBIOS modules, with the resulting UIA software events
being logged to System Trace as STM software messages:
The implementation of this logger is fast with minimal stack usage
making it appropriate for a realtime application.
This logger uses different STM channels for writing different numbers of
parameters in order to avoid the need to have a header indicating the length
in bytes of each event. As a result, the execution time of all Log methods
bound to this type of logger are deterministic (and quite short) because there are no
additional memory allocation calls required.
If this logger is used in a preemptive environment, then an appropriate
gate must be assigned to the module. By default, the xdc.runtime.Gate module's system gate
is used. The following configuration script shows how to configure a different gate:
| enum LoggerSTM_TransferType |
 |
typedef enum LoggerSTM_TransferType {
LoggerSTM_TransferType_RELIABLE,
LoggerSTM_TransferType_LOSSY
} LoggerSTM_TransferType;
| config LoggerSTM_endpointId // module-wide |
 |
Endpoint ID for the CPU that is logging the event
extern const UInt16 LoggerSTM_endpointId;
DETAILS
The endpointId corresponds to Ipc's MultiProc value.
For single processor systems this value is ignored.
For C64P devices, leave this value as 0xFFFF to configure
the logger to use the DNUM value as the endpointId.
| config LoggerSTM_filterByLevel // module-wide |
 |
Support filtering of events by event level
extern const Bool LoggerSTM_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 LoggerSTM_isGenerateSTMLibSupportFnsEnabled // module-wide |
 |
Configures whether helper functions required by STMLib are automatically generated (default) or not
extern const Bool LoggerSTM_isGenerateSTMLibSupportFnsEnabled;
DETAILS
if LoggerSTM.isGenerateSTMLibSupportFnsEnabled is true AND
LoggerSTM.isGenerateSTMLibSupportFnsEnabled is false,
the following helper functions required by STMLib are
automatically generated by the LoggerSTM.xdt template:
(see ti/ctools/stmLib/StmLibrary.h for details)
- cTools_memAlloc(size_t sizeInBytes);
- void * cTools_memMap(unsigned int phyAddr, unsigned int mapSizeInBytes);
- void cTools_memFree(void * ptr);
- void cTools_memUnmap(void * vAddr, unsigned int mapSizeInBytes);
If you wish to use STMLib directly, set this to false
and provide implementations of the above functions in your
application in order to handle memory allocation and mapping.
| config LoggerSTM_isStringOutputModeEnabled // module-wide |
 |
if true, events are logged to STM as strings instead
of raw UIA data. Only enable this mode if not using
System Analyzer to analyze and display events
extern const Bool LoggerSTM_isStringOutputModeEnabled;
DETAILS
Note that setting LoggerSTM.isStringOutputModeEnabled to true
will require that your application implement the STMLib helper
functions in order to properly provide memory management for STMLib.
The LoggerSTM.isGenerateSTMLibSupportFnsEnabled will be forced to
'false' if LoggerSTM.isStringOutputModeEnabled is set to 'true'.
SEE
| config LoggerSTM_level1Mask // module-wide |
 |
Mask of diags categories whose initial filtering level is Diags.LEVEL1
DETAILS
See '
level4Mask' for details.
| config LoggerSTM_level2Mask // module-wide |
 |
Mask of diags categories whose initial filtering level is Diags.LEVEL2
DETAILS
See '
level4Mask' for details.
| config LoggerSTM_level3Mask // module-wide |
 |
Mask of diags categories whose initial filtering level is Diags.LEVEL3
DETAILS
See '
level4Mask' for details.
| config LoggerSTM_level4Mask // module-wide |
 |
Mask of diags categories whose initial filtering level is Diags.LEVEL4
DETAILS
If 'filterByLevel' is true, then all LoggerBuf instances will filter
incoming events based on their event level.
The LoggerCircBuf 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 LoggerSTM_stmBaseAdrs // module-wide |
 |
Base address for the STM channel that events are to be written to
extern const Ptr LoggerSTM_stmBaseAdrs;
| config LoggerSTM_stmChannelResolution // module-wide |
 |
Base address for the STM channel that events are to be written to
extern const Int LoggerSTM_stmChannelResolution;
| LoggerSTM_getOSTHeader() // module-wide |
 |
returns the OST Header to use as the first word of the STM event
macro Int32 LoggerSTM_getOSTHeader(Int numBytes);
DETAILS
param(numBytes) number of bytes in the event, not including the OST header itself (max 255)
| LoggerSTM_getSTMBaseAdrs() // module-wide |
 |
Gets the STM base address (STM channel 0) that events are to be written to
Ptr LoggerSTM_getSTMBaseAdrs();
| LoggerSTM_printToSTM() // module-wide |
 |
Helper function that prints formatted strings to STM
Void LoggerSTM_printToSTM(
Int chanNum,
Log_Event evt,
IArg a1,
IArg a2,
IArg a3,
IArg a4,
IArg a5,
IArg a6,
IArg a7,
IArg a8);
| LoggerSTM_setProcessId() // module-wide |
 |
Sets the active process ID to log with the event (default is 0)
Void LoggerSTM_setProcessId(UInt32 processId);
| LoggerSTM_setSTMBaseAdrs() // module-wide |
 |
Sets the base address (STM channel 0) that events are to be written to
Void LoggerSTM_setSTMBaseAdrs(Ptr adrs);
ARGUMENTS
adrs
the STM base address (STM channel 0) that events are to be written to
| Module-Wide Built-Ins |
 |
// Get this module's unique id
Bool LoggerSTM_Module_startupDone();
// Test if this module has completed startup
// The heap from which this module allocates memory
Bool LoggerSTM_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 LoggerSTM_Module_getMask();
// Returns the diagnostics mask for this module
Void LoggerSTM_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
| Instance Object Types |
 |
typedef struct LoggerSTM_Object LoggerSTM_Object;
// Opaque internal representation of an instance object
// Client reference to an instance object
typedef struct LoggerSTM_Struct LoggerSTM_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 LoggerSTM_Params {
// Instance config-params structure
// Common per-instance configs
Bool enabled;
// controls whether logging is enabled or disabled
SizeT maxEventSize;
// The maximum event size (in Maus) that can be written with a single event
Bits8 stmChannelRangeMax;
// The highest STM channel number that events are to be written to
Bits8 stmChannelRangeMin;
// The lowest STM channel number that events are to be written to
//
} LoggerSTM_Params;
// Initialize this config-params structure with supplier-specified defaults before instance creation
| config LoggerSTM_enabled // instance |
 |
controls whether logging is enabled or disabled
| config LoggerSTM_maxEventSize // instance |
 |
The maximum event size (in Maus) that can be written with a single event
DETAILS
Note: must be smaller than 240 due to STM small block size limitation.
Must also be an integer multiple of sizeof(UInt32).
| config LoggerSTM_stmChannelRangeMax // instance |
 |
The highest STM channel number that events are to be written to
...
Bits8 stmChannelRangeMax;
| config LoggerSTM_stmChannelRangeMin // instance |
 |
The lowest STM channel number that events are to be written to
...
Bits8 stmChannelRangeMin;
| config LoggerSTM_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
| LoggerSTM_disable() // instance |
 |
Disable a log
ARGUMENTS
handle
handle of a previously-created LoggerSTM instance object
DETAILS
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.
| LoggerSTM_enable() // instance |
 |
Enable a log
ARGUMENTS
handle
handle of a previously-created LoggerSTM 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.
| LoggerSTM_getContents() // instance |
 |
Fills buffer that is passed in with unread data, up to size bytes
in length
Bool LoggerSTM_getContents(
LoggerSTM_Handle handle,
Ptr hdrBuf,
SizeT size,
SizeT *
cpSize);
ARGUMENTS
handle
handle of a previously-created LoggerSTM 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
| LoggerSTM_getFilterLevel() // instance |
 |
Returns the mask of diags categories currently set to the specified
level
ARGUMENTS
handle
handle of a previously-created LoggerSTM instance object
DETAILS
See '
setFilterLevel' for an explanation of level filtering.
See '
setFilterLevel' for an explanation of level filtering.
| LoggerSTM_getInstanceId() // instance |
 |
Returns an ID value that uniquely identifies this instance of the logger
ARGUMENTS
handle
handle of a previously-created LoggerSTM 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.
| LoggerSTM_getMaxLength() // instance |
 |
ARGUMENTS
handle
handle of a previously-created LoggerSTM instance object
| LoggerSTM_getSTMChannelRangeMax() // instance |
 |
Gets the highest STM channel number that events are to be written to
ARGUMENTS
handle
handle of a previously-created LoggerSTM instance object
| LoggerSTM_getSTMChannelRangeMin() // instance |
 |
Gets the lowest STM channel number that events are to be written to
ARGUMENTS
handle
handle of a previously-created LoggerSTM instance object
| LoggerSTM_getTransferType() // instance |
 |
ARGUMENTS
handle
handle of a previously-created LoggerSTM instance object
| LoggerSTM_isEmpty() // instance |
 |
Returns true if the transfer buffer has no unread data
ARGUMENTS
handle
handle of a previously-created LoggerSTM instance object
RETURN
true if no unread data
| LoggerSTM_reset() // instance |
 |
Reset a log to empty state and enable it
ARGUMENTS
handle
handle of a previously-created LoggerSTM 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.
| LoggerSTM_setFilterLevel() // instance |
 |
Sets the level of detail that instances will log
ARGUMENTS
handle
handle of a previously-created LoggerSTM 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.
| LoggerSTM_setSTMChannelRangeMax() // instance |
 |
Sets the highest STM channel number that events are to be written to
ARGUMENTS
handle
handle of a previously-created LoggerSTM instance object
| LoggerSTM_setSTMChannelRangeMin() // instance |
 |
Sets the lowest STM channel number that events are to be written to
ARGUMENTS
handle
handle of a previously-created LoggerSTM instance object
| LoggerSTM_write0() // instance |
 |
Process a log event with 0 arguments
ARGUMENTS
handle
handle of a previously-created LoggerSTM instance object
DETAILS
Same as write4 except with 0 arguments rather than 4.
SEE
| LoggerSTM_write1() // instance |
 |
Process a log event with 1 argument
ARGUMENTS
handle
handle of a previously-created LoggerSTM instance object
DETAILS
Same as write4 except with 1 arguments rather than 4.
SEE
| LoggerSTM_write2() // instance |
 |
Process a log event with 2 arguments
ARGUMENTS
handle
handle of a previously-created LoggerSTM instance object
DETAILS
Same as write4 except with 2 arguments rather than 4.
SEE
| LoggerSTM_write4() // instance |
 |
Process a log event with 4 arguments
ARGUMENTS
handle
handle of a previously-created LoggerSTM 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
| LoggerSTM_write8() // instance |
 |
Process a log event with 8 arguments
Void LoggerSTM_write8(
LoggerSTM_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 LoggerSTM instance object
DETAILS
Same as write4 except with 8 arguments rather than 4.
SEE
| LoggerSTM_writeMemoryRange() // instance |
 |
Process a log a snapshot of a range of memory values (e.g. array values, memory mapped registers, strings, etc.)
ARGUMENTS
handle
handle of a previously-created LoggerSTM 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 LoggerSTM_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
| proxy LoggerSTM.TimestampProxy |
 |
User supplied time-stamp proxy
| XDCscript usage |
meta-domain |
// explicit access to the currently bound delegate module
DETAILS
This proxy allows
LoggerSTM to use a timestamp server different
from the server used by
xdc.runtime.Timestamp. However, if
not supplied by a user, this proxy defaults to whichever timestamp
server is used by
Timestamp.
| enum LoggerSTM.TransferType |
 |
| XDCscript usage |
meta-domain |
values of type LoggerSTM.TransferType
const LoggerSTM.TransferType_RELIABLE;
const LoggerSTM.TransferType_LOSSY;
C SYNOPSIS
| metaonly struct LoggerSTM.MetaData |
 |
This data is added to the RTA MetaData file to support stop mode RTA
| XDCscript usage |
meta-domain |
var obj = new LoggerSTM.MetaData;
obj.instanceId = Int ...
obj.priority = Int ...
| config LoggerSTM.endpointId // module-wide |
 |
Endpoint ID for the CPU that is logging the event
| XDCscript usage |
meta-domain |
LoggerSTM.endpointId = UInt16 0xFFFF;
DETAILS
The endpointId corresponds to Ipc's MultiProc value.
For single processor systems this value is ignored.
For C64P devices, leave this value as 0xFFFF to configure
the logger to use the DNUM value as the endpointId.
C SYNOPSIS
| config LoggerSTM.filterByLevel // module-wide |
 |
Support filtering of events by event level
| XDCscript usage |
meta-domain |
LoggerSTM.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 LoggerSTM.isGenerateSTMLibSupportFnsEnabled // module-wide |
 |
Configures whether helper functions required by STMLib are automatically generated (default) or not
| XDCscript usage |
meta-domain |
LoggerSTM.isGenerateSTMLibSupportFnsEnabled = Bool true;
DETAILS
if LoggerSTM.isGenerateSTMLibSupportFnsEnabled is true AND
LoggerSTM.isGenerateSTMLibSupportFnsEnabled is false,
the following helper functions required by STMLib are
automatically generated by the LoggerSTM.xdt template:
(see ti/ctools/stmLib/StmLibrary.h for details)
- cTools_memAlloc(size_t sizeInBytes);
- void * cTools_memMap(unsigned int phyAddr, unsigned int mapSizeInBytes);
- void cTools_memFree(void * ptr);
- void cTools_memUnmap(void * vAddr, unsigned int mapSizeInBytes);
If you wish to use STMLib directly, set this to false
and provide implementations of the above functions in your
application in order to handle memory allocation and mapping.
C SYNOPSIS
| config LoggerSTM.isStringOutputModeEnabled // module-wide |
 |
if true, events are logged to STM as strings instead
of raw UIA data. Only enable this mode if not using
System Analyzer to analyze and display events
| XDCscript usage |
meta-domain |
LoggerSTM.isStringOutputModeEnabled = Bool false;
DETAILS
Note that setting LoggerSTM.isStringOutputModeEnabled to true
will require that your application implement the STMLib helper
functions in order to properly provide memory management for STMLib.
The LoggerSTM.isGenerateSTMLibSupportFnsEnabled will be forced to
'false' if LoggerSTM.isStringOutputModeEnabled is set to 'true'.
SEE
C SYNOPSIS
| config LoggerSTM.level1Mask // module-wide |
 |
Mask of diags categories whose initial filtering level is Diags.LEVEL1
| XDCscript usage |
meta-domain |
LoggerSTM.level1Mask = Bits16 0;
DETAILS
See '
level4Mask' for details.
C SYNOPSIS
| config LoggerSTM.level2Mask // module-wide |
 |
Mask of diags categories whose initial filtering level is Diags.LEVEL2
| XDCscript usage |
meta-domain |
LoggerSTM.level2Mask = Bits16 0;
DETAILS
See '
level4Mask' for details.
C SYNOPSIS
| config LoggerSTM.level3Mask // module-wide |
 |
Mask of diags categories whose initial filtering level is Diags.LEVEL3
| XDCscript usage |
meta-domain |
LoggerSTM.level3Mask = Bits16 0;
DETAILS
See '
level4Mask' for details.
C SYNOPSIS
| config LoggerSTM.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 LoggerCircBuf 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 LoggerSTM.stmBaseAdrs // module-wide |
 |
Base address for the STM channel that events are to be written to
| XDCscript usage |
meta-domain |
LoggerSTM.stmBaseAdrs = Ptr 0x54000000;
C SYNOPSIS
| config LoggerSTM.stmChannelResolution // module-wide |
 |
Base address for the STM channel that events are to be written to
| XDCscript usage |
meta-domain |
LoggerSTM.stmChannelResolution = Int 0x1000;
C SYNOPSIS
| metaonly config LoggerSTM.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 LoggerSTM.getLoggerInstanceId() // module-wide |
 |
returns the id of this logger instance
| XDCscript usage |
meta-domain |
LoggerSTM.getLoggerInstanceId(Any inst) returns Any
| metaonly LoggerSTM.getMetaArgs() // module-wide |
 |
Returns any meta data needed to support RTA
| XDCscript usage |
meta-domain |
LoggerSTM.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 LoggerSTM.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 |
LoggerSTM.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 LoggerSTM.setPtrToQueueDescriptorMeta() // module-wide |
 |
Sets the queue descriptor address in the logger's object instance data
| XDCscript usage |
meta-domain |
LoggerSTM.setPtrToQueueDescriptorMeta(Any inst, Any queueDescriptorAdrs) returns Any
| Instance Config Parameters |
 |
| XDCscript usage |
meta-domain |
var params = new LoggerSTM.Params;
// Instance config-params object
params.enabled = Bool true;
// controls whether logging is enabled or disabled
params.maxEventSize = SizeT 200;
// The maximum event size (in Maus) that can be written with a single event
params.ptrToQueueDescriptorMeta = Ptr null;
//
params.stmChannelRangeMax = Bits8 200;
// The highest STM channel number that events are to be written to
params.stmChannelRangeMin = Bits8 128;
// The lowest STM channel number that events are to be written to
//
| config LoggerSTM.enabled // instance |
 |
controls whether logging is enabled or disabled
| XDCscript usage |
meta-domain |
var params = new LoggerSTM.Params;
...
params.enabled = Bool true;
C SYNOPSIS
| config LoggerSTM.maxEventSize // instance |
 |
The maximum event size (in Maus) that can be written with a single event
| XDCscript usage |
meta-domain |
var params = new LoggerSTM.Params;
...
params.maxEventSize = SizeT 200;
DETAILS
Note: must be smaller than 240 due to STM small block size limitation.
Must also be an integer multiple of sizeof(UInt32).
C SYNOPSIS
| config LoggerSTM.stmChannelRangeMax // instance |
 |
The highest STM channel number that events are to be written to
| XDCscript usage |
meta-domain |
var params = new LoggerSTM.Params;
...
params.stmChannelRangeMax = Bits8 200;
C SYNOPSIS
| config LoggerSTM.stmChannelRangeMin // instance |
 |
The lowest STM channel number that events are to be written to
| XDCscript usage |
meta-domain |
var params = new LoggerSTM.Params;
...
params.stmChannelRangeMin = Bits8 128;
C SYNOPSIS
| config LoggerSTM.transferType // instance |
 |
| XDCscript usage |
meta-domain |
var params = new LoggerSTM.Params;
...
C SYNOPSIS
| metaonly config LoggerSTM.ptrToQueueDescriptorMeta // instance |
 |
| XDCscript usage |
meta-domain |
var params = new LoggerSTM.Params;
...
params.ptrToQueueDescriptorMeta = Ptr null;
| Instance Creation |
 |
| XDCscript usage |
meta-domain |
var params =
new LoggerSTM.
Params;
// Allocate instance config-params
params.config = ...
// Assign individual configs
var inst = LoggerSTM.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