1    /* --COPYRIGHT--,TI
     2     * Copyright (c) $(CPYYEAR)
     3     * Texas Instruments
     4     *
     5     *  All rights reserved.  Property of Texas Instruments
     6     *  Restricted rights to use, duplicate or disclose this code are
     7     *  granted through contract.
     8     * 
     9     * --/COPYRIGHT--*/
    10    /*
    11     *  ======== IGateMPSupport.xdc ========
    12     *
    13     *! Revision History
    14     *! ================
    15     *! 31-Mar-2010 skp     Fixed [resource/region]Id types
    16     */
    17    
    18    import xdc.runtime.Error;
    19    import xdc.runtime.IGateProvider;
    20    
    21    /*!
    22     *  ======== IGateMPSupport ========
    23     */
    24    interface IGateMPSupport inherits IGateProvider {
    25    
    26        /*!
    27         *  Local protection enum
    28         *
    29         *  Must be the same GateMP. 
    30         */
    31        enum LocalProtect {
    32            LocalProtect_NONE      = 0,
    33            LocalProtect_INTERRUPT = 1,
    34            LocalProtect_TASKLET   = 2,
    35            LocalProtect_THREAD    = 3,
    36            LocalProtect_PROCESS   = 4
    37        };
    38        
    39        /*!
    40         *  ======== getNumResources ========
    41         *  Number of  gates instance within the module
    42         */
    43        metaonly UInt getNumResources();
    44        
    45        /*!
    46         *  ======== sharedMemReq ========
    47         *  Amount of shared memory required for creation of each instance
    48         *
    49         *  The value returned by this function may depend on the cache alignment
    50         *  requirements for the shared region from which memory will be used.
    51         *
    52         *  @param(params)      Pointer to the parameters that will be used in
    53         *                      the create.
    54         *
    55         *  @a(returns)         Number of MAUs needed to create the instance.
    56         */
    57        SizeT sharedMemReq(const Params *params);
    58    
    59        /*!
    60         *  ======== getRemoteStatus$view ========
    61         *  @_nodoc
    62         *  Returns the status of the remote gate
    63         *
    64         *  @b(returns)     Gate status
    65         */
    66        metaonly String getRemoteStatus$view(IGateProvider.Handle handle);
    67        
    68    instance:
    69        /*! 
    70         *  Logical resource id
    71         */
    72        config UInt resourceId = 0;
    73        
    74        /*! @_nodoc
    75         *  ======== openFlag ========    
    76         */
    77        config Bool openFlag = false;
    78            
    79        /*!
    80         *  ======== regionId ========
    81         *  @_nodoc
    82         *  Shared Region Id
    83         * 
    84         *  The ID corresponding to the shared region in which this shared instance
    85         *  is to be placed.
    86         */
    87        config UInt16 regionId = 0;
    88    
    89        /*!
    90         *  ======== sharedAddr ========
    91         *  Physical address of the shared memory
    92         *
    93         *  The creator must supply the shared memory that will be used
    94         *  for maintaining shared state information.  This parameter is used
    95         *  only when {@link #Type} is set to {@link #Type_SHARED}
    96         */
    97        config Ptr sharedAddr = null;
    98        
    99        /*!
   100         *  ======== create ========     
   101         *  Create a remote gate instance
   102         */
   103        create(LocalProtect localProtect);
   104    }