Matrix of Real-Time Functions
NOTE: APIs that are not explicitly documented as supported are not guaranteed to work. You should thoroughly test any code that uses undocumented functions.
|
RTAPI Function Name |
Notes |
Deterministic? |
|---|---|---|
|
|
Yes - can block if another thread holds the lock. | |
|
|
No |
|
|
|
Yes, but only when one real-time processor configured. |
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
||
|
|
No | |
|
|
No | |
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
No | |
| No | ||
| No | ||
|
|
No | |
| No | ||
|
|
No | |
|
|
No | |
|
|
No | |
|
|
No | |
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
No | |
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
| No | ||
| No | ||
| RtEnumProcessModules |
Yes - the elapsed time for the call is less than 5 microseconds. |
|
| RtEnumProxyProcesses | No | |
|
|
No | |
|
No |
||
|
|
No | |
|
|
Yes, if one real-time processor configured, otherwise latency depends on the amount of local memory allocated and contention for a lock with other threads allocating/freeing local memory. |
|
| RtGenerateEvent |
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
No | |
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
| RtGetDongles | No | |
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes |
|
| Yes | ||
|
|
No | |
|
|
No | |
|
Yes - the elapsed time for the call is less than 5 microseconds. |
||
| RtGetProcessorInfo | Yes - the elapsed time for the call is less than 5 microseconds. | |
|
RtGetProxyThreadPriority (can only be called by Windows applications linked with RTX64) |
No | |
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
||
|
No |
||
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
| No | ||
|
|
No |
|
|
No |
||
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
No | |
| RtMonitorControl |
Yes - the elapsed time for the call is less than 5 microseconds. |
|
| No | ||
| No | ||
|
|
No | |
| No | ||
|
|
No | |
| No | ||
| No | ||
|
Yes - the elapsed time for the call is less than 5 microseconds. |
||
|
|
Yes - the call is bounded but the amount of time for completion of the call depends on processor type (PIC versus APIC) and processor speed. | |
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
No | |
|
Yes, unless the mutex has a higher priority thread waiting on it. |
||
|
Yes, unless the semaphore has a higher priority thread waiting on it. |
||
|
|
No | |
|
Yes - the elapsed time for the call is less than 5 microseconds. |
||
|
|
Yes - the elapsed time for the call is less than 5 microseconds. | |
|
|
Yes |
|
|
|
No | |
|
|
No |
|
|
Yes, unless the event has a higher priority thread waiting on it. |
||
| Yes | ||
|
Yes |
||
|
RtSetProxyThreadPriority (can only be called by Windows applications linked with RTX64) |
No | |
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
||
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
No |
||
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
No | |
|
|
No | |
|
|
No | |
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
| No | ||
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
|
Yes - the elapsed time for the call is less than 5 microseconds. | |
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
|
|
Yes - the elapsed time for the call is less than 5 microseconds. |
Windows Equivalent Real-Time Functions
The following functions are defined in the real-time API, Rtapi.h, as equivalent to their Windows versions.
|
RTAPI Function Name |
Win32 Equivalent |
|---|---|
|
RtGetLastError |
GetLastError |
|
RtSetLastError |
SetLastError |
|
RtCreateThread |
CreateThread |
|
RtExitThread |
ExitThread |
|
RtGetCurrentThread |
GetCurrentThread |
|
RtResumeThread |
ResumeThread |
|
RtSuspendThread |
SuspendThread |
|
RtTerminateThread |
TerminateThread |
|
RtExitProcess |
ExitProcess |
|
RtSleep |
Sleep |
|
RtSleepEx |
SleepEx |
A Note about #pragma deprecated Functions in Rtapi.h
The functions listed under #pragma deprecated in the real-time API, Rtapi.h, are actually unsupported, not deprecated. Listing them this way ensures that a warning appears in Visual Studio when a developer attempts to use an unsupported function in Visual Studio.