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    }