1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 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 }