Everything

rcv_dtq

Outline
Receive from data queue (waiting forever).
C format
 ER      rcv_dtq ( ID dtqid, VP_INT *p_data );

Assembly format
 MOVW    BC, #LOWW(_data)
 MOV     A,  #dtqid
 CALL    !!_rcv_dtq

Parameter(s)
I/O
Parameter
Description
I
 ID      dtqid;
ID number of the data queue from which a data element is received.
O
 VP_INT  *p_data;
Data element received from the data queue.

Explanation
This service call reads data in the data queue area of the data queue specified by parameter dtqid and stores it to the area specified by parameter p_data.
If no data could be read from the data queue area of the target data queue (no data has been written to the data queue area) when this service call is issued, the service call does not read data but queues the invoking task to the reception wait queue of the target data queue and moves it from the RUNNING state to the WAITING state (data reception wait state).
The receiving WAITING state for a data queue is cancelled in the following cases, and then moved to the READY state.
Receiving WAITING State for a Data Queue Cancel Operation
Return Value
Data was written to the data queue area of the target data queue as a result of issuing snd_dtq.
E_OK
Data was written to the data queue area of the target data queue as a result of issuing psnd_dtq.
E_OK
Data was written to the data queue area of the target data queue as a result of issuing ipsnd_dtq.
E_OK
Data was written to the data queue area of the target data queue as a result of issuing tsnd_dtq.
E_OK
Data was written to the data queue area of the target data queue as a result of issuing tsnd_dtq.
E_OK
Data was written to the data queue area of the target data queue as a result of issuing ifsnd_dtq.
E_OK
Forced release from waiting (accept rel_wai while waiting).
E_RLWAI
Forced release from waiting (accept irel_wai while waiting).
E_RLWAI

Note 1 Invoking tasks are queued to the reception wait queue of the target data queue in the order of the data reception request.
Note 2 If the receiving for a data queue is forcibly released by issuing rel_wai or irel_wai, the contents of the area specified by parameter p_data will be undefined.
Return value
Macro
Value
Description
E_OK
0
Normal completion.
E_RLWAI
-49
Forced release from the WAITING state.
- Accept rel_wai/irel_wai while waiting.