-
get_mpf
-
Acquire fixed-sized memory block (waiting forever).
ER get_mpf (ID mpfid, VP *p_blk);
|
|
|
|
ID mpfid;
|
ID number of the fixed-sized memory pool from which a memory block is acquired.
|
|
VP *p_blk;
|
Start address of the acquired memory block.
|
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).
The WAITING state for a fixed-sized memory block is cancelled in the following cases, and then moved to the READY state.
WAITING State for a Fixed-sized Memory Block Cancel Operation
|
|
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.
|
|
Forced release from waiting (accept rel_wai while waiting).
|
|
Forced release from waiting (accept irel_wai while waiting).
|
|
Note 1 The RI850V4 does not perform memory clear processing when acquiring a fixed-sized memory block. The contents of the acquired fixed-sized memory block are therefore undefined.
Note 2 Invoking tasks are queued to the target fixed-size memory pool wait queue in the order defined during configuration (FIFO order or priority order).
Note 3 If the fixed-size memory block acquisition wait state is cancelled because
rel_wai or
irel_wai was issued, the contents in the area specified by parameter
p_blk become undefined.
|
|
|
|
|
|
|
|
- mpfid > Maximum ID number
|
|
|
- This service call was issued from a task.
- This service call was issued in the CPU locked state.
- This service call was issued in the dispatching disabled state.
|
|
|
- Specified fixed-sized memory pool is not registered.
|
|
|
Forced release from the WAITING state.
|