Real-Time API Functions
This section contains a list of supported RTAPI functions.
RTAPI Function Name |
Description |
Places the thread into a busy wait state until the fast semaphore is released. |
|
Allocates physically contiguous memory. |
|
Allocates a range of physically contiguous, cache-aligned memory. |
|
Allocates memory from the local pool or pool cache of the external allocation space of the current process. |
|
RtAllocateLocalMemoryEx |
Allocates memory from a pre-allocated Process local memory pool to avoid SRI activity if allocating memory from the Windows memory pool. |
Commits and locks the specified amount of memory to avoid page faults as the memory is used. |
|
Converts a given string value to an integer. |
|
Cancels the expiration of the indicated timer. |
|
Closes an open object handle. |
|
Creates a named or unnamed event object. |
|
Creates an Process mutex. A handle is returned to the newly created mutex object. |
|
Creates and starts a new process. The new process runs the specified Process executable file. |
|
Creates a named or unnamed semaphore object. |
|
Creates a named region of physical memory that can be mapped by any process. |
|
Creates a timer associated with the specified clock and returns a handle to the timer. |
|
Creates a timer associated with the specified clock and returns a handle to the timer. |
|
Deletes the specified list of attributes for process and thread creation. |
|
Deletes the timer specified by the given handle. |
|
In the Windows environment, RtDisableInterrupts disables all user-level interrupt handling for all interrupts to which the Windows process is attached. In an Process environment, RtDisableInterrupts disables all interrupts at the processor level including timer interrupts. |
|
Disables direct I/O port access from user context. |
|
Enables user-level interrupt handling for all interrupts to which the process is attached. |
|
Enables direct I/O port access from user context. |
|
Retrieves the process identifier for each process object. |
|
RtEnumProcessesEx | Retrieves the process identifier for each process object. |
Retrieves a handle for each module in a specified process. |
|
RtExpandMSpace | Expands the local pool of the specified MSpace by the size specified. |
Frees a previously allocated physically contiguous memory region. |
|
Frees memory previously committed and locked by a call to RtAllocateLockedMemory. |
|
Obtains details, starting at the given offset, about a given slot on an I/O bus. |
|
Obtains the resolution of the specified clock. |
|
Obtains the current value of the specified clock. |
|
Obtains the minimum timer period of the specified clock. The RtGetClockTimecall delivers the clock time as 64-bit quantity of 100ns. |
|
Returns the number of threads waiting on this fast semaphore. This information is useful when preparing for a manual release of the fast semaphore. |
|
Returns the system-assigned number of the current processor on which the caller is running. |
|
RtGetEnabledXStateFeature |
Returns the highest feature for a specified XState feature set supported on the running processor and enabled by eRTOS. |
Retrieves the termination status of the specified process. |
|
Allows a process to query the current flush TLB tick mod set by RtSetFlushTLBTickMod. |
|
RtGetHalTimerPeriodCounts | Retrieves the APIC counts per eRTOS HAL timer period. |
Retrieves the base name of a specified module. |
|
Retrieves the fully qualified path for the file that contains the specified module. |
|
Retrieves the fully qualified path for the file that contains the specified module. |
|
Returns the physical address for the virtual address of a contiguous physical memory buffer previously allocated by RtAllocateContiguousMemory. In the Process environment, this function applies to all memory allocation. |
|
Retrieves the process affinity mask for the specified process and the system affinity mask for Process. |
|
Retrieves the ideal processor for a given process handle. |
|
RtGetProcessMSpace | Retrieves an MSpace descriptor of the external and internal allocation space for the specified process or system process. |
Retrieves the system-wide processor numbers for the lowest and highest processors. |
|
RtGetRDTCapability | Returns the system Resource Director Technology (RDT) allocation capability. |
RtGetSystemTimes | Retrieves an array of system timing information. On a multiprocessor system, values in each of the FILETIME structures will contain system timing information about the Process core. |
RtGetThreadCLOS | Retrieves the Class of Services (CLOS) value of a specified thread. |
Returns the priority value for the specified thread. |
|
RtGetThreadStack | Retrieves the thread stack parameters for an existing thread object. |
Retrieves timing information for the specified Process thread. |
|
RtGetTimeQuantum | Retrieves the time quantum, in milliseconds, of a specified thread. |
Returns the remaining relative time until the next expiration of the specified timer. |
|
Initializes a fast semaphore object. |
|
Initializes a specified list of attributes for process and thread creation. |
|
Determines whether a local real-time process is attached to the MaxRT eRTOS Debugger. |
|
Queries whether the specified core is a performance core. |
|
Maps a range of physical memory addresses into the user's virtual address space. |
|
Returns a handle of an existing named event object. |
|
Returns a handle to the named mutex. |
|
Returns a handle to an existing process object. |
|
Returns a handle of an existing named semaphore object. |
|
Opens a named physical-mapping object. |
|
RtOpenThread | Opens an existing thread object and returns a handle to that thread object. |
Prints formatted output to the standard output stream or console window. |
|
Provides a single operation that sets (to signaled) the state of the specified event object and then resets it (to non-signaled) after releasing the appropriate number of waiting threads. |
|
Allows a user to query a PCI device and determine if the device has MSI or MSI-X capability. |
|
Retrieves the current value of the high-resolution performance counter (based on processor’s time-stamp counter, TSC). |
|
Retrieves the frequency of the high-resolution performance counter (based on processor’s time-stamp counter, TSC). |
|
RtQueryProcessMSpace | Queries memory allocation space information in the specified process MSpace, including various summary statistics of its local pool and pool cache. |
RtQuerySharedMemory | Retrieves shared memory information. |
Queries the performance capability of each logical processor for the specified ClassID. |
|
Queries the thread’s current Class ID, the performance ideal processor, the current performance capability of affinity logical processor, and the performance capability of each logical processor based on hardware feedback. |
|
RtReadPortBuffer | Calls copy data from an I/O port to a buffer until the buffer has been filled using the bytes that you specify for each read operation. |
Releases all threads waiting on the fast semaphore. Ensures that all waiting threads enter the ready-to-run state. Ensures that no new threads enter the busy wait state until all current waiters have become runnable. |
|
Releases the specified count of threads waiting on the fast semaphore. If the number of waiting threads is less than the specified count, RtReleaseFastSemaphore will store the remaining count value and continue to release new threads that call RtAcquireFastSemaphore on this fast semaphore. |
|
Relinquishes ownership of a mutex. |
|
Increases the count of the specified semaphore object by a specified amount. |
|
Sets the state of the specified event object to non-signaled. |
|
Resets the watchdog timer counter on the specified Process core(s). |
|
Sets bus-configuration data for a device on a dynamically configurable I/O bus with a published, standard interface. |
|
Sets the current value of the specified clock. |
|
Sets the state of the specified event object to signaled. |
|
Allows a process to set the flush TLB tick mod. |
|
RtSetHalTimerPeriodCounts | Sets the APIC counts per eRTOS HAL timer period. |
Sets a processor affinity mask for the threads of the specified process. |
|
RtSetThreadCLOS | Overwrites a thread’s implicit or default Class of Services (CLOS), which is based on its priority. |
Sets the priority value for the specified thread. |
|
RtSetTimeQuantum | Sets the time quantum, in milliseconds, of a specified thread. |
Sets the expiration time and repeat interval on the specified timer. |
|
Sets the expiration time and repeat interval on the specified timer. |
|
RtShrinkMSpace | Shrinks the local pool of the specified MSpace up to the size specified. |
Suspends the current thread for the specified time. |
|
Suspends execution of the current thread for a specified time. |
|
Suspends the current thread until the specified condition is met. |
|
Terminates the specified process and all its threads. |
|
Translates a bus-specific address into the corresponding system logical address. |
|
Releases a mapping made by a previous call to RtMapMemory. |
|
Updates the specified attribute in a list of attributes for process and thread creation. |
|
Allows a thread to wait on one of multiple objects to be signaled with high granularity of time-out interval. |
|
Allows a thread to wait on an object to be signaled. |
|
Allows a thread to wait on an object to be signaled with high granularity of time-out interval. |
|
Prints formatted output to the standard output stream or console window. |
|
RtWritePortBuffer | Calls copy data from a buffer to an I/O port until the buffer has been emptied using the bytes that you specify for each write operation. |
Converts a given string value to an integer. |
Note: The functions listed under #pragma deprecated
in the real-time API, Rtapi.h, are 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.
Note: Implicit TLS initializers/finalizers must not take too long to execute. While they are executing, any real-time APIs that create or destroy internal eRTOS kernel objects (e.g., threads, processes, mutexes, semaphores, open files, etc.) will block.