1 /*
2 * Copyright (c) 2012, Texas Instruments Incorporated
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 *
12 * * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 *
16 * * Neither the name of Texas Instruments Incorporated nor the names of
17 * its contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 * */
32
33 /*
34 * ======== IUIATraceSyncProvider.xdc ========
35 * Interface implemented by modules that provide the code needed to
36 * inject a sync point into a trace stream (e.g. CPU Trace, System Trace,
37 * etc.). Modules that implement IUIATraceSyncProvider are responsible
38 * for providing an XDS script that automatically registers its injectIntoTrace
39 8 callback unction
40 * with any modules that implement the IUIATraceSyncClient interface.
41 */
42 interface IUIATraceSyncProvider inherits ti.uia.events.IUIAMetaProvider {
43
44 /*!
45 * ======== ContextType ========
46 * Enumeration of the various types of packet headers.
47 * Stored in a 4 bit bitfield (b31-b28) of the first word in the packet.
48 */
49 enum ContextType {
50 ContextType_Reserved0 = 0, /*! reserved for future use */
51 ContextType_SyncPoint = 1, /*! Sync Point event serial number */
52 ContextType_ContextChange = 2, /*! Context Change event serial number */
53 ContextType_Snapshot = 3, /*! Snapshot event Snapshot ID */
54 ContextType_Reserved4 = 4, /*! reserved for future use */
55 ContextType_Reserved5 = 5, /*! reserved for future use */
56 ContextType_Reserved6 = 6, /*! reserved for future use */
57 ContextType_Reserved7 = 7, /*! reserved for future use */
58 ContextType_Reserved8 = 8, /*! reserved for future use */
59 ContextType_Reserved9 = 9, /*! reserved for future use */
60 ContextType_Reserved10 = 10, /*! reserved for future use */
61 ContextType_Reserved11 = 11, /*! reserved for future use */
62 ContextType_Reserved12 = 12, /*! reserved for future use */
63 ContextType_Reserved13 = 13, /*! reserved for future use */
64 ContextType_Global32bTimestamp = 14, /*! 32b Global Timestamp */
65 ContextType_User = 15 /*! User defined data */
66 };
67
68 /*!
69 * ====== injectIntoTrace ======
70 * Inject syncPoint info into GEM Trace
71 *
72 * This method logs a sync point event and injects
73 * correlation info into the trace stream (if available)
74 * to enable correlation between software events and hardware trace.
75 *
76 * @param(serialNum) the serial number that is to be injected
77 * @param(ctxType) the context type ID to be injected into the trace
78 */
79 Void injectIntoTrace(UInt32 serialNum, ContextType ctxType);
80
81 }