The PMC invokes callback functions to the PU by populating the IPI buffers with the API callback data and triggering an IPI interrupt to the PU. To receive such interrupts, the PU must properly initialize the IPI block and interrupt controller. A single interrupt is dedicated to all callbacks. For this reason, element 0 of the payload buffer contains the API ID, which the PU should use to identify the API callback. The PU should then call the respective API callback function, passing in the arguments obtained from locations 1 to 4 of the IPI request buffer.
The XilPM library contains an implementation of this behavior.