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 RTSS 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. |
|
Allows the user to associate an Interrupt Service Thread (IST) and Interrupt Service Routine (ISR) with a line-based or message-based hardware interrupt. |
|
Registers a stop notification handler function with RTSS. The handler function is called in its own thread when one of the system stop events occurs. |
|
Cancels the expiration of the indicated timer. |
|
Closes an open object handle. |
|
Creates a named or unnamed event object. |
|
Creates an RTSS mutex. A handle is returned to the newly created mutex object. |
|
Creates and starts a new RTSS process. The new RTSS process runs the specified RTSS executable file. RtCreateProcess is supported only in the Windows environment. |
|
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 RTSS 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 RTSS process object. |
Retrieves a handle for each module in a specified process. |
|
RtEnumProxyProcesses | Enumerates proxy processes associated with Windows processes linked to RTAPI. |
RtExpandMSpace | Expands the local pool of the specified MSpace by the size specified. |
Frees a previously allocated physically contiguous memory region. |
|
RtFreeLocalMemory | Frees memory previously allocated by a call to RtAllocateLocalMemory or RtAllocateLocalMemoryEx. |
Frees memory previously committed and locked by a call to RtAllocateLockedMemory. |
|
RtGenerateEvent | Generates custom Monitoring Framework events. |
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 current HAL timer period value used by the Subsystem. |
|
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 RTX64. |
Retrieves the termination status of the specified process. |
|
Allows a RTSS process to query the current flush TLB tick mod set by RtSetFlushTLBTickMod. |
|
RtGetHalTimerPeriodCounts | Retrieves the APIC counts per RTX64 HAL timer period. |
Retrieves information about licenses installed on the system. |
|
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. |
|
RtGetPciMsixFreeMessages | Returns a PCI device’s MSI-X free messages (the MSI-X table entries available for attaching messages). |
Returns the physical address for the virtual address of a contiguous physical memory buffer previously allocated by RtAllocateContiguousMemory. In the RTSS environment, this function applies to all memory allocation. In the Windows environment, it applies to contiguous memory allocation only. |
|
Retrieves the process affinity mask for the specified RTSS process and the system affinity mask for RTSS. |
|
Retrieves the ideal processor for a given RTSS process handle. |
|
RtGetProcessMSpace | Retrieves an MSpace descriptor of the external and internal allocation space for the specified RTSS process or system process. |
Retrieves the number values for the lowest and highest RTSS processors. |
|
RtGetProcessTimes | Retrieves timing information for the specified RTSS process. |
RtGetProxyThreadPriority | Returns the priority value of the proxy thread associated with the specified Windows thread (can only be called by Windows applications linked with RTX64). |
RtGetRDTCapability | Returns the system Resource Director Technology (RDT) allocation capability. |
Gets the current value for RTSS time. |
|
RtGetRuntimeVersionEx |
Retrieves the Runtime version of the installed RTX64 product. |
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 RTSS 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. |
Gets the current time quantum, in milliseconds, for the specified thread. NOTE: This function is deprecated and will be removed from a future release. Use RtGetTimeQuantum. |
|
Gets the current time quantum, in microseconds, for the specified thread. NOTE: This function is deprecated and will be removed from a future release. Use RtGetTimeQuantum. |
|
Retrieves timing information for the specified RTSS thread. This function can only be called in RTSS processes. |
|
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. |
|
Allows RTSS applications to validate an application's RTSS signature. |
|
Determines whether a local real-time process is attached to the IntervalZero Real-Time Debugger. |
|
RtIsDefaultLocalMemory | Returns the default memory allocation configuration (local or Windows) for the Subsystem and RTSS applications. |
Provides the ability to determine whether code is running in RTSS or Windows. |
|
Verifies that a specified RTX64 Runtime is installed and has a valid license. |
|
Verifies that a specified RTX64 RT-TCP/IP Stack component is installed and has a valid license. | |
Maps a range of physical memory addresses into the user's virtual address space. |
|
RtMonitorChangeState | Transitions between monitoring session states. |
RtMonitorControl | Performs various monitoring control operations. |
RtMonitorEnableComponents | Transiently enables generation of monitor events by one or more RTX64 product components |
RtMonitorGetEnabledComponents | Retrieves the transient configuration of RTX64 product components that currently have monitoring event generation enabled |
Retrieves the transient value of the maximum number of events to collect in a monitoring session. | |
Retrieves the transient value of the number of pre-trigger events to save in a monitor session. Pre-trigger events are events that occur before the event type(s) that triggers the start of a monitoring session. | |
RtMonitorSetCustomTriggers | Transiently sets the custom event types that will trigger the start of a monitoring session. |
Enables or disables collection of events during a monitoring session. | |
Sets the transient value of the maximum number of events to collect in a monitoring session. | |
Sets the transient value of the number of pre-trigger events to save in a monitor session. Pre-trigger events are events that occur before the event type(s) that triggers the start of a monitoring session. | |
RtMonitorSetTriggers | Transiently sets the event types that will trigger the start of a monitoring session. |
Returns a handle of an existing named event object. |
|
Returns a handle to the named RTSS 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. |
|
RtQueryComponent | Returns status information on installed Subsystem components. |
Allows a user to query a PCI device and determine if the device has MSI or MSI-X capability. RtQueryPciMsiCapability is only supported in the RTSS environment. It cannot be called from a Windows application linked to RTX. |
|
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. |
RtQueryProcessorVectorFreeCount | Queries the number of RTSS processor vectors (IDT vectors) currently available for attaching interrupts. |
RtQuerySharedMemory | Retrieves shared memory information. |
RtQuerySystemPerfCaps | Queries the performance capability of each logical processor for the specified ClassID. |
RtQueryThreadPerfIdealProcessor | 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. |
Calls copy data from an I/O port to a buffer until the buffer has been filled using a number of bytes that you specify for each read operation. |
|
Calls copy data from an I/O port to a buffer until the buffer has been filled using a number of bytes that you specify for each read operation. |
|
Calls copy data from an I/O port to a buffer until the buffer has been filled using a number of bytes that you specify for each read operation. |
|
Calls read data directly from an I/O port. Each function reads a different number of bytes of data. |
|
Calls read data directly from an I/O port. Each function reads a different number of bytes of data. |
|
Calls read data directly from an I/O port. Each function reads a different number of bytes of data. |
|
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. |
|
Releases an interrupt previously attached using RtAttachInterrupt. This breaks the association between a user's interrupt handling routine and the hardware interrupt. |
|
Relinquishes ownership of an RTSS mutex. |
|
Increases the count of the specified semaphore object by a specified amount. |
|
Destroys the shutdown handler object created by RtAttachShutdownHandler. |
|
Sets the state of the specified event object to non-signaled. |
|
Resets the watchdog timer counter on the specified RTSS 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 RTSS process to set the flush TLB tick mod. |
|
RtSetHalTimerPeriodCounts | Sets the APIC counts per RTX64 HAL timer period. |
Sets a processor affinity mask for the threads of the specified RTSS process. |
|
RtSetProxyThreadPriority | Sets the proxy thread priority for the associated Windows thread, but will not change the Windows thread priority (can only be called by Windows applications linked with RTX64). |
Sets the new value for RTSS time. |
|
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. |
|
Sets the time quantum for the specified thread. NOTE: This function is deprecated and will be removed from a future release. Use RtSetTimeQuantum. |
|
Sets the time quantum, in microseconds, for the specified thread. NOTE: This function is deprecated and will be removed from a future release. Use RtSetTimeQuantum. |
|
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 until the specified condition is met. |
|
Suspends the current thread for the specified time. |
|
Suspends execution of the current thread for a specified time period. |
|
RtStartComponent | Starts the specified Subsystem component. |
RtStopComponent | Stops the specified Subsystem component. |
Terminates the specified process and all of 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. |
|
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. |
|
Calls copy data from a buffer to an I/O port until the buffer has been emptied using a number of bytes that you specify for each write operation. |
|
Calls copy data from a buffer to an I/O port until the buffer has been emptied using a number of bytes that you specify for each write operation. |
|
Calls copy data from a buffer to an I/O port until the buffer has been emptied using a number of bytes that you specify for each write operation. |
|
Calls write data directly to an I/O port from a specified buffer. Each function writes a different number of bytes of data. |
|
Calls write data directly to an I/O port from a specified buffer. Each function writes a different number of bytes of data. |
|
Calls write data directly to an I/O port from a specified buffer. Each function writes a different number of bytes of data. |
|
Converts a given string value to an integer. |
NOTE: 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.
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 RTX64 Subsystem objects (e.g., threads, processes, mutexes, semaphores, open files, etc.) will block.