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.