06.08.2013 Views

pSOSystem System Calls - Read

pSOSystem System Calls - Read

pSOSystem System Calls - Read

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

q_asend pSOS+ <strong>System</strong> <strong>Calls</strong><br />

Notes<br />

See Also<br />

Hex Mnemonic Description<br />

0x35 ERR_QFULL Message queue at length limit.<br />

0x3A ERR_VARQ Queue is variable length<br />

0x65 ERR_STALEID Object's node has failed.<br />

If an MC_ASYNCERR routine is not provided, the pSOS+m kernel generates a fatal<br />

error.<br />

1. This call is supported only by the pSOS+m kernel.<br />

2. The calling task can be preempted as a result of this call.<br />

3. q_asend() asynchronously sends a message to an ordinary message queue.<br />

Use q_avsend() to send a message asynchronously to a variable length<br />

message queue.<br />

Multiprocessor Considerations<br />

1. If qid identifies a global queue residing on another processor node, then the<br />

pSOS+m kernel will internally make an RSC to that remote node to post the<br />

input message to that queue.<br />

2. If a task awakened by this call does not reside on the local node, then the<br />

pSOS+m kernel will internally pass the message to the task's node of residence,<br />

whose pSOS+m kernel will ready the task and give it the relayed message. Thus,<br />

a q_asend() call, whether it is on the local or a remote queue, may cause<br />

pSOS+m activities on another processor node.<br />

Callable From<br />

■ Task<br />

q_send, q_vsend, q_avsend, q_aurgent, q_receive<br />

1-62 <strong>pSO<strong>System</strong></strong> <strong>System</strong> <strong>Calls</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!