1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 33 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 }