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 }