Everything

pol_sem

ipol_sem

Outline
Acquire semaphore resource (polling).
C format
 ER      pol_sem (ID semid);
 ER      isem_sem (ID semid);
Parameter(s)
I/O
Parameter
Description
I
 ID      semid;
ID number of the semaphore.

Explanation
This service call acquires a resource from the semaphore specified by parameter semid (subtracts 1 from the semaphore counter).
If a resource could not be acquired from the target semaphore (semaphore counter is set to 0) when this service call is issued, the counter manipulation processing is not performed but "E_TMOUT" is returned.
Return value
Macro
Value
Description
E_OK
0
Normal completion.
E_ID
-18
Invalid ID number.
- semid < 0
- semid > VTMAX_SEM
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 ipol_sem is issued from task or the pol_sem is issued from non-task, the context error is not detected and normal operation of the system is not guaranteed.
E_NOEXS
-42
Non-existent object.
- The semaphore specified by semid does not exist.
E_TMOUT
-50
Polling failure.