Real-Time API Functions

This section contains a list of supported RTAPI functions.

Function

Description

RtAcquireFastSemaphore

Places the thread into a busy wait state until the fast semaphore is released.

RtAllocateContiguousMemory

Allocates physically contiguous memory.

RtAllocateContiguousMemorySpecifyCache

Allocates a range of physically contiguous, cache-aligned memory.

RtAllocateLocalMemoryEx

Allocates memory from a pre-allocated RTSS local memory pool to avoid SRI activity if allocating memory from the Windows memory pool.

RtAtoi

Converts a given string value to an integer.

RtAttachInterrupt

Allows the user to associate an Interrupt Service Thread (IST) and Interrupt Service Routine (ISR) with a line-based or message-based hardware interrupt.

RtAttachShutdownHandler

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.

RtCancelTimer

Cancels the expiration of the indicated timer.

RtCloseHandle

Closes an open object handle.

RtCreateEvent

Creates a named or unnamed event object.

RtCreateMutex

Creates an RTSS mutex. A handle is returned to the newly created mutex object.

RtCreateProcess

Creates and starts a new RTSS process. The new RTSS process runs the specified RTSS executable file.

RtCreateSemaphore

Creates a named or unnamed semaphore object.

RtCreateSharedMemory

Creates a named region of physical memory that can be mapped by any process.

RtCreateTimer

Creates a timer associated with the specified clock, and returns a handle to the timer.

RtCreateTimerEx

Creates a timer associated with the specified clock and returns a handle to the timer.

RtDeleteProcThreadAttributeList

Deletes the specified list of attributes for process and thread creation.

RtDeleteTimer

Deletes the timer specified by the given handle.

RtDisableInterrupts

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.

RtEnableInterrupts

Enables user-level interrupt handling for all interrupts to which the process is attached.

RtEnumProcesses

Retrieves the process identifier for each process object.

RtEnumProcessesEx

Retrieves the process identifier for each RTSS process object.

RtEnumProcessModules

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.

RtFreeContiguousMemory

Frees a previously allocated physically contiguous memory region.

RtFreeLocalMemory

Frees memory previously allocated by a call to RtAllocateLocalMemoryEx.

RtGenerateEvent

Generates custom Monitoring Framework events.

RtGetBusDataByOffset

Obtains details, starting at the given offset, about a given slot on an I/O bus.

RtGetClockResolution

Obtains the resolution of the specified clock.

RtGetClockTime

Obtains the current value of the specified clock.

RtGetClockTimerPeriod

Obtains the minimum timer period of the specified clock. The RtGetClockTime call delivers the clock time as 64-bit quantity of 100 ns.

RtGetCountFastSemaphore

Returns the number of threads waiting on this fast semaphore. This information is useful when preparing for a manual release of the fast semaphore.

RtGetCurrentHalTimerPeriod

Returns the current HAL timer period value used by the Subsystem.

RtGetCurrentProcessorNumber

Returns the system-assigned number of the current processor on which the caller is running.

RtGetDefaultIdealProcessorNumber

Returns the default ideal processor number that will be assigned to any RTSS process that is not assigned a specific process affinity mask or ideal processor.

RtGetEnabledXStateFeature

Returns the highest feature for a specified XState feature set supported on the running processor and enabled by wRTOS.

RtGetExitCodeProcess

Retrieves the termination status of the specified process.

RtGetFlushTLBTickMod

Allows a RTSS process to query the current flush TLB tick mod set by RtSetFlushTLBTickMod.

RtGetHalTimerPeriodCounts

Retrieves the APIC counts per wRTOS HAL timer period.

RtGetLicenses

Retrieves information about licenses installed on the system.

RtGetLicenseStatus

Returns whether the specified version of a product code is installed and has a valid license.

RtGetModuleBaseName

Retrieves the base name of a specified module.

RtGetModuleFileNameEx

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).

RtGetPhysicalAddress

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.

RtGetProcessAffinityMask

Retrieves the process affinity mask for the specified RTSS process and the system affinity mask for RTSS.

RtGetProcessIdealProcessor

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.

RtGetProcessorInfo

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 wRTOS).

RtGetRDTCapability

Returns the system Resource Director Technology (RDT) allocation capability.

RtGetRtssTimeAsFileTime

Gets the current value for RTSS time.

RtGetRuntimeVersionEx

Retrieves the Runtime version of the installed wRTOS 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.

RtGetThreadPriority

Returns the priority value for the specified thread.

RtGetThreadStack

Retrieves the thread stack parameters for an existing thread object.

RtGetThreadTimes

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.

RtGetTimer

Returns the remaining relative time until the next expiration of the specified timer.

RtInitializeFastSemaphore

Initializes a fast semaphore object.

RtInitializeProcThreadAttributeList

Initializes a specified list of attributes for process and thread creation.

RtIsAppRunnable

Allows RTSS applications to validate an application's RTSS signature.

RtIsComponentInstalled

Returns the install status and specific product component's version information.

RtIsDebuggerPresent

Determines whether a local real-time process is attached to the MaxRT wRTOS Real-Time Debugger.

RtIsInRtss

Provides the ability to determine whether code is running in RTSS or Windows.

RtIsPerformanceCore

Queries whether the specified core is a performance core.

RtMapMemory

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.

RtMonitorGetMaxEventsInSession

Retrieves the transient value of the maximum number of events to collect in a monitoring session.

RtMonitorGetPreTriggerEventsToSave

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.

RtMonitorSetEvents

Enables or disables collection of events during a monitoring session.

RtMonitorSetMaxEventsInSession

Sets the transient value of the maximum number of events to collect in a monitoring session.

RtMonitorSetPreTriggerEventsToSave

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.

RtOpenEvent

Returns a handle of an existing named event object.

RtOpenMutex

Returns a handle to the named RTSS mutex.

RtOpenProcess

Returns a handle to an existing process object.

RtOpenSemaphore

Returns a handle of an existing named semaphore object.

RtOpenSharedMemory

Opens a named physical-mapping object.

RtOpenThread

Opens an existing thread object and returns a handle to that thread object.

RtPrintf

Prints formatted output to the standard output stream or console window.

RtPulseEvent

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.

RtQueryPciMsiCapability

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 wRTOS.

RtQueryPerformanceCounter

Retrieves the current value of the high-resolution performance counter (based on processor’s time-stamp counter, TSC).

RtQueryPerformanceFrequency

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.

RtReadPortBufferUchar

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.

RtReadPortBufferUlong

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.

RtReadPortBufferUshort

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.

RtReadPortUchar

Calls read data directly from an I/O port. Each function reads a different number of bytes of data.

RtReadPortUlong

Calls read data directly from an I/O port. Each function reads a different number of bytes of data.

RtReadPortUshort

Calls read data directly from an I/O port. Each function reads a different number of bytes of data.

RtReleaseAllFastSemaphore

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.

RtReleaseFastSemaphore

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.

RtReleaseInterrupt

Releases an interrupt previously attached using RtAttachInterrupt. This breaks the association between a user's interrupt handling routine and the hardware interrupt.

RtReleaseMutex

Relinquishes ownership of an RTSS mutex.

RtReleaseSemaphore

Increases the count of the specified semaphore object by a specified amount.

RtReleaseShutdownHandler

Destroys the shutdown handler object created by RtAttachShutdownHandler.

RtResetEvent

Sets the state of the specified event object to non-signaled.

RtResetWatchdog

Resets the watchdog timer counter on the specified RTSS core(s).

RtSetBusDataByOffset

Sets bus-configuration data for a device on a dynamically configurable I/O bus with a published, standard interface.

RtSetClockTime

Sets the current value of the specified clock.

RtSetEvent

Sets the state of the specified event object to signaled.

RtSetFlushTLBTickMod

Allows an RTSS process to set the flush TLB tick mod.

RtSetHalTimerPeriodCounts

Sets the APIC counts per wRTOS HAL timer period.

RtSetProcessAffinityMask

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 wRTOS).

RtSetRtssTimeAsFileTime

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.

RtSetThreadPriority

Sets the priority value for the specified thread.

RtSetTimeQuantum

Sets the time quantum, in milliseconds, of a specified thread.

RtSetTimer

Sets the expiration time and repeat interval on the specified timer.

RtSetTimerRelative

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.

RtSleepFt

Suspends the current thread for the specified time.

RtSleepFtEx

Suspends execution of the current thread for a specified time.

RtTerminateProcess

Terminates the specified process and all its threads.

RtTranslateBusAddress

Translates a bus-specific address into the corresponding system logical address.

RtUnmapMemory

Releases a mapping made by a previous call to RtMapMemory.

RtUpdateProcThreadAttribute

Updates the specified attribute in a list for process and thread creation.

RtWaitForMultipleObjects

Allows a thread to wait on one of multiple objects to be signaled.

RtWaitForMultipleObjectsEx

Allows a thread to wait on one of multiple objects to be signaled with high granularity of time-out interval.

RtWaitForSingleObject

Allows a thread to wait on an object to be signaled.

RtWaitForSingleObjectEx

Allows a thread to wait on an object to be signaled with high granularity of time-out interval.

RtWPrintf

Prints formatted output to the standard output stream or console window.

RtWritePortBufferUchar

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.

RtWritePortBufferUlong

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.

RtWritePortBufferUshort

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.

RtWritePortUchar

Calls write data directly to an I/O port from a specified buffer. Each function writes a different number of bytes of data.

RtWritePortUlong

Calls write data directly to an I/O port from a specified buffer. Each function writes a different number of bytes of data.

RtWritePortUshort

Calls write data directly to an I/O port from a specified buffer. Each function writes a different number of bytes of data.

RtWtoi

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 take only a short time to execute. While they are executing, any real-time APIs that create or destroy internal wRTOS Subsystem objects (e.g., threads, processes, mutexes, semaphores, open files, etc.) will block.