06.08.2013 Views

pSOSystem System Calls - Read

pSOSystem System Calls - Read

pSOSystem System Calls - Read

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

Notes<br />

Hex Mnemonic Description<br />

0x30 ERR_KISIZE Message buffer length exceeds max.<br />

KI packet buffer length.<br />

0x31 ERR_MSGSIZ Message is too large.<br />

0x3B ERR_NOTVARQ Queue is not variable length.<br />

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

1. If the caller is a task, it may be preempted as a result of this call.<br />

2. q_vbroadcast() can be intermixed with q_vsend() and q_vurgent() calls<br />

to the same queue.<br />

3. The pSOS+ kernel must copy the message from the caller's buffer to a receiving<br />

task's buffer. Longer messages take longer to copy. Users should account for the<br />

copy time in their designs, especially when calling from an ISR.<br />

4. q_vbroadcast() sends messages to a variable length message queue. Use<br />

q_broadcast() to send messages to an ordinary queue.<br />

Multiprocessor Considerations<br />

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

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

message to that queue.<br />

2. If tasks awakened by this call do not reside on the local node, the local kernel<br />

internally passes the message to each task's node of residence, whose pSOS+<br />

kernel will ready the task and give it the relayed message. Thus, a<br />

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

pSOS+m activities on one or more processor nodes.<br />

<strong>pSO<strong>System</strong></strong> <strong>System</strong> <strong>Calls</strong> 1-89<br />

1

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

Saved successfully!

Ooh no, something went wrong!