The RTX64 API
The RTX64 application programming interface (API) is based on the Windows API. This allows developers to draw upon their Windows experience, code base, and development tools, and thus expedites hard real-time application development. Windows applications can use a subset of the RTX64 API that are supported within RTSS processes, however, with different response times and performance characteristics — allowing developers to effortlessly share or move code between environments.
This topic discusses:
Path Names
Because the RTX64 OS is not aware of the current working directory, you must use full path names for all RTX64 APIs.
Windows and Real-Time API
RTX64 supports a subset of Windows API functions, plus it provides a special set of real-time functions, known as RTAPI (Real-Time API). RTAPI functions are identified by an "Rt" prefix in their names. Some RTAPI functions are semantically identical to their Windows counterparts, while others are unique to RTX64 (that is, there are no similar Windows calls). For example, RTAPI IPC functions differ from Windows IPC functions only in the IPC name space in which they operate and in the determinism possible with real-time IPC objects. On the other hand, the Windows API does not include any functions related to interrupt management; therefore, unique interrupt management functions are defined in RTAPI.
The RTX64 API was carefully selected to promote efficient development of real-time application components. RTX64 intentionally does not include Windows functions, such as the GUI-related calls, that are normally used by the less time-critical components of an application. In fact, Windows functions that are not essential to real-time programming, and impractical to implement with deterministic behavior, are not included in the RTX64 API. It is expected that most applications will consist of at least two processes working together — one Windows-based process (to take advantage of GUI and other Windows-only functions) and an RTSS-based process to perform time-critical processing.
RTX64 Executable Images
RTX64 provides two types of executable images: RTSS processes and RTDLLs. RTSS processes are the real-time equivalents of Windows processes. RTDLLs are passive code containers loaded by RTSS processes, similar in functionality to Windows DLLs.
Run-Time Libraries
RTX64 supports the Visual Studio-provided C Runtime libraries. RTSS applications can link against the static C Runtime libraries, provided they do not attempt to call unsupported C Runtime library functions. RTSS processes can also be linked against dynamic link libraries (RTDLLs), which can be used to modularize real-time application code or provide run-time customization of real-time software environments.
NOTE: No effort is made to modify the provided libraries to make calls deterministic.
Unicode
RTX64 supports Unicode applications. An RTSS process can use the wmain() function and accept wide character input arguments.