pget_mpf

ipget_mpf

Outline

Acquire fixed-sized memory block (polling).

C format

 ER      pget_mpf (ID mpfid, VP *p_blk);
 ER      ipget_mpf (ID mpfid, VP *p_blk);
Parameter(s)

I/O

Parameter

Description

I

 ID      mpfid;
ID number of the fixed-sized memory pool.

O

 VP      *p_blk;
Start address of the acquired memory block.



Explanation

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 a fixed-sized memory block could not be acquired from the target fixed-sized memory pool (no available fixed-sized memory blocks exist) when this service call is issued, fixed-sized memory block acquisition processing is not performed but "E_TMOUT" is returned.

Note 1 The contents of the block are undefined.

Note 2 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.

Return value

Macro

Value

Description

E_OK

0

Normal completion.

E_ID

-18

Invalid ID number.

- mpfid < 0

- mpfid > VTMAX_MPF

E_CTX

-25

Context error.

- This service call was issued in the CPU locked state.

- This service call was issued in the status "PSW.IPL > kernel interrupt mask level".

Note When the ipget_mpf is issued from task or the pget_mpf is issued from non-task, the context error is not detected and normal operation of the system is not guaranteed.

E_TMOUT

-50

Polling failure.