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.