21.01.2015 Views

INtime® 3.1 Software - tenAsys

INtime® 3.1 Software - tenAsys

INtime® 3.1 Software - tenAsys

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

INtime <strong>3.1</strong> <strong>Software</strong><br />

RT calls<br />

You use these calls when developing the real-time portion of an INtime application.<br />

High-level (validating) calls<br />

High-level calls provide higher protection and validation features. Memory is allocated<br />

automatically from the process’s pool. Each high level object consumes a slot from the<br />

system GDT (8000 objects maximum)<br />

High-level system calls validate a call’s parameters; a condition code returned by the<br />

call indicates whether you used invalid parameters. Condition codes for trying to read<br />

or write memory to which you have no access also exist.<br />

High-level exchange objects validate parameters and are protected against unexpected<br />

deletion. High-level calls exist for these exchange objects:<br />

• Object and data mailboxes<br />

• Counting semaphores<br />

• Regions (for mutual exclusion with priority inversion protection)<br />

Low-level (non-validating) calls<br />

Low-level calls provide higher performance, but lower protection and validation<br />

features. Low-level objects provide functionality beyond that of high-level objects.<br />

You must allocate memory for low-level objects and may allocate memory beyond lowlevel<br />

object needs. You can use this additional memory to store application-specific<br />

state information associated with the object.<br />

Low-level objects are not protected against unexpected deletion and do not validate<br />

parameters (if you need parameter validation, use high-level system calls). Low-level<br />

calls use the flat, 4 Gbyte addressing capabilities of the microprocessor. They do not<br />

use segmentation. Therefore, they do not consume a slot from the system GDT.<br />

Use low-level objects in these situations:<br />

• For isolated parts of the application, such as signaling ordinary threads from an<br />

interrupt handler.<br />

• When performance is critical, such as high-performance, unvalidated sending and<br />

receiving of data mailbox messages and semaphore units.<br />

Note<br />

System calls that manipulate low-level objects assume that all memory reference pointers<br />

received are valid.<br />

114

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

Saved successfully!

Ooh no, something went wrong!