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.

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

See Also<br />

5. Q_LIMIT and a count equal 0 is a legitimate setting. This combination has the<br />

interesting property that a q_send() will succeed only if there is already a task<br />

waiting; otherwise, q_send() will fail.<br />

6. Q_LIMIT set with Q_PRIBUF guarantees that enough buffers will be available<br />

for messages to be posted at this queue. If Q_LIMIT is not set, then Q_PRIBUF<br />

is ignored.<br />

7. If a queue is created without private buffers, then messages posted to it will be<br />

stored in buffers from the system-wide pool on the node where the queue<br />

resides. The size of this pool is defined by the kc_nmsgbuf entry in the node's<br />

pSOS+ Configuration Table.<br />

8. The Q_GLOBAL attribute is ignored by the single-processor version of the pSOS+<br />

kernel.<br />

9. q_create() creates an ordinary message queue. Use q_vcreate() to create a<br />

variable length message queue.<br />

Multiprocessor Considerations<br />

1. The Q_GLOBAL attribute should be set only if the queue must be made known to<br />

other processor nodes in a multiprocessor configuration. If set, the queue's<br />

name and qid are sent to the master node for entry in its Global Object Table.<br />

2. If the Q_GLOBAL attribute is set and the number of global objects currently<br />

exported by the node equals the Multiprocessor Configuration Table entry<br />

mc_nglbobj, then the queue is not created and ERR_OBJTFULL is returned.<br />

Callable From<br />

■ Task<br />

q_ident, q_delete, q_vcreate<br />

1-76 <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!