get_mpf
ER get_mpf (ID mpfid, VP *p_blk);
This service call acquires the fixed-sized memory block from the fixed-sized memory pool specified by parameter mpfid and stores the start address in the area specified by parameter p_blk.
If no fixed-size memory blocks could be acquired from the target fixed-size memory pool (no available fixed-size memory blocks exist) when this service call is issued, this service call does not acquire the fixed-size memory block but queues the invoking task to the target fixed-size memory pool wait queue and moves it from the RUNNING state to the WAITING state (fixed-size memory block acquisition wait state).
A fixed-sized memory block was returned to the target fixed-sized memory pool as a result of issuing rel_mpf.
|
|
A fixed-sized memory block was returned to the target fixed-sized memory pool as a result of issuing irel_mpf.
|
|
Note 1 Invoking tasks are queued to the target fixed-size memory pool wait queue in the order defined during configuration (FIFO order or current priority order).
Note 3 The boundary alignment for the memory blocks acquired is 1. If memory blocks need to be acquired with a larger boundary alignment than that, observe the following:
- Set The size of the fixed-sized memory block (siz_block) in Fixed-sized Memory Pool Information (memorypool[]) to multiple of the desired boundary alignment.
- Specify unique section name to the Section name assigned to the memory pool area (section) in Fixed-sized Memory Pool Information (memorypool[]) and locate the section to the address of the desired boundary alignment when linking.