1    /* 
     2     * Copyright (c) 2011, 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     *  ======== IGateMPSupport.xdc ========
    34     *
    35     */
    36    
    37    import xdc.runtime.IGateProvider;
    38    
    39    /*!
    40     *  ======== IGateMPSupport ========
    41     */
    42    interface IGateMPSupport inherits IGateProvider 
    43    {
    44        /*!
    45         *  ======== getNumResources ========
    46         *  Returns the number of resources offered by the GateMP delegate
    47         */
    48        metaonly UInt getNumResources();
    49        
    50        /*!
    51         *  ======== getReservedMask ========
    52         *  @_nodoc
    53         *  Used by GateMP to query which HW resources are reserved
    54         */
    55        @DirectCall
    56        Bits32 *getReservedMask();
    57        
    58        /*!
    59         *  ======== sharedMemReq ========
    60         *  Amount of shared memory required for creation of each instance
    61         *
    62         *  The value returned by this function may depend on the cache alignment
    63         *  requirements for the shared region from which memory will be used.
    64         *
    65         *  @param(params)      Pointer to the parameters that will be used in
    66         *                      the create.
    67         *
    68         *  @a(returns)         Number of MAUs needed to create the instance.
    69         */
    70        @DirectCall
    71        SizeT sharedMemReq(const Params *params);
    72    
    73        /*!
    74         *  ======== getRemoteStatus$view ========
    75         *  @_nodoc
    76         *  ROV helper function that returns the status of the remote gate
    77         *
    78         *  @b(returns)     Gate status
    79         */
    80        metaonly String getRemoteStatus$view(IGateProvider.Handle handle);
    81        
    82    instance:
    83    
    84        /*! 
    85         *  Logical resource id
    86         */
    87        config UInt resourceId = 0;
    88        
    89        /*! @_nodoc
    90         *  ======== openFlag ========    
    91         */
    92        config Bool openFlag = false;
    93            
    94        /*!
    95         *  ======== regionId ========
    96         *  @_nodoc
    97         *  Shared Region Id
    98         * 
    99         *  The ID corresponding to the shared region in which this shared instance
   100         *  is to be placed.
   101         */
   102        config UInt16 regionId = 0;
   103    
   104        /*!
   105         *  ======== sharedAddr ========
   106         *  Physical address of the shared memory
   107         *
   108         *  This parameter is only used by GateMP delegates that use shared memory
   109         */
   110        config Ptr sharedAddr = null;
   111        
   112        /*!
   113         *  ======== create ========     
   114         *  Create a remote gate instance.
   115         *
   116         *  A Non-NULL gate for local protection must be passed to the create
   117         *  call.  If no local protection is desired, a 
   118         *  {@link xdc.runtime.GateNull} handle must be passed in.
   119         *
   120         *  @param(localGate)       Gate to use for local protection.
   121         */
   122        create(IGateProvider.Handle localGate);
   123    }
   124    /*
   125     *  @(#) ti.sdo.ipc.interfaces; 1, 0, 0, 0,483; 6-18-2011 17:33:06; /db/vtree/library/trees/ipc/ipc.git/src/ ipc-g26
   126     */
   127