1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32
33 34 35
36
37 package ti.uia.runtime;
38 import xdc.runtime.Types;
39 import xdc.runtime.Log;
40 import ti.uia.runtime.IUIATraceSyncProvider;
41
42 /*!
43 * ======== LoggerTypes ========
44 /*!
45 * ======== ILoggerSnapshot ========
46 * Function pointer type definitions for various types of loggers
47 *
48 * This module defines function prototypes for use in defining
49 * callback functions that support device-specific features (e.g.
50 * synchronization with CPU Trace) and support customization and
51 * extensibility of core UIA features (e.g. logging a range of memory values).
52 */
53 module LoggerTypes {
54
55 /*!
56 * ======== LogMemoryRangeFxn ========
57 * Log an event along with values from a range of memory addresses
58 *
59 * Note that this function can support logging of null terminated strings,
60 * arrays of characters and memory mapped registgers as well as blocks of
61 * memory. The LogSnapshot module uses this callback function.
62 * Modules that implement the ILoggerSnapshot interface provide implementations
63 * of this callback function.
64 *
65 * @param(ptr) module instance object handle
66 * @param(evt) event to be logged
67 * @param(snapshotId) 0 = no other snapshot groups, Use value from
68 * LogSnapshot.getSnapshotId() for all snapshots to be
69 * grouped.
70 * @param(fileName) __FILE__ result
71 * @param(lineNum) __LINE__ result
72 * @param(fmt) a `printf` style format string
73 * @param(startAdrs) value for first format conversion character
74 * @param(lengthInMAUs) value for second format conversion character
75 *
76 * @see Log#Event
77 * @see ILoggerSnapshot#writeMemoryRange
78 */
79 typedef Void (*LogMemoryRangeFxn)(Ptr, xdc.runtime.Log.Event,
80 UInt32, UInt32, IArg, IArg, IArg, IArg, IArg);
81
82 /*!
83 * ====== InjectIntoTraceFxn ======
84 * Callback function that injects syncPoint info into GEM Trace
85 *
86 * This callback function injects correlation info into the trace stream
87 * to enable correlation between software events and hardware trace.
88 *
89 * @param(serialNum) the serial number that is to be injected
90 * @param(ctxType) the context type ID to be injected into the trace
91 *
92 * @see IUIATraceSyncProvider
93 * @see IUIATraceSyncClient
94 */
95 typedef Void (*InjectIntoTraceFxn)(UInt32, IUIATraceSyncProvider.ContextType);
96 }