Home |
RTTarget-32 Programming Manual RTTarget-32 Flags System Management BIOS (SMBIOS) Advanced Programmable Interrupt Controller (APIC) |
RTTarget-32 FlagsRTTarget-32 maintains a global 32-bit flags variable initialized to zero by default. The application can simply declare its own instance of RTTarget32Flags to override RTTarget-32's default. Example:DWORD RTTarget32Flags = RT_MM_VIRTUAL | RT_CLOSE_FIND_HANDLES; A module containing such a declaration can be linked into the EXE or DLL containing the RTTarget-32 library Rtt32.lib. Alternatively, use function RTSetFlags to modify the system flags at run-time. The following flags are defined: RT_KEY_BY_INTERRUPTForce RTTarget-32's keyboard driver to translate scan codes to virtual key codes within the keyboard interrupt handler. See section Win32 Console I/O for details. RT_MOUSE_BY_INTERRUPTForce RTTarget-32's text mode mouse driver to translate raw mouse data to Win32 mouse events and to update the mouse cursor on the screen within the mouse interrupt handler. See section Win32 Console I/O for details. RT_MM_FIXEDForce use of RTTarget-32's fixed memory manager. RT_MM_VIRTUALForce use of RTTarget-32's virtual memory manager with uncommitted memory support. RT_CRT_NO_ACCESSInstructs RTTarget-32 not to attempt accessing the CRT controller to position the cursor. RT_CLOSE_FIND_HANDLESWin32 API function FindNextFile should automatically close find handles when no more files are found. This feature can be useful to avoid running out of handles in programs that do not close handles created and returned by FindFirstFile. For example, programs using Borland's run-time system functions findfirst/findnext are affected by this bug. RT_DBG_OUT_TO_HOSTThis flag controls how strings passed to the Win32 API function OutputDebugString should be displayed. If set, all strings are sent to the host if the program is running under the Debug Monitor and ignored otherwise. By default, such strings are displayed locally if the Debug Monitor is not present. RT_DBG_OUT_NONEWith this flag set, all calls to OutputDebugString are ignored. RT_KEYS_USUse US keyboard layout (default). RT_KEYS_GERMANUse German keyboard layout. RT_KEYS_FRENCHUse French keyboard layout. RT_KEYS_SPANISHUse Spanish keyboard layout. RT_KEYS_ITALIANUse Italian keyboard layout. RT_KEYS_PORTUGUESEUse Portuguese keyboard layout. RT_NO_LANG_HOTKEYSDo not intercept Left Ctrl-Alt-F? keys to switch keyboard language. RT_NUMLOCK_OFFSet the initial NUMLOCK state to off. Other keyboard options can be set with function RTSetKeyboard. RT_NO_KEYB_LEDSInstructs the keyboard driver never to send data to the PS/2 keyboard controller to control keyboard LEDs or to set the keyboard repeat rate. RT_HEAP_MIN_BLOCK_SIZE_8 RT_HEAP_MIN_BLOCK_SIZE_16 RT_HEAP_MIN_BLOCK_SIZE_32 RT_HEAP_MIN_BLOCK_SIZE_64 RT_HEAP_MIN_BLOCK_SIZE_128Sets the minimum block alignment of memory allocated through Win32 Heap functions. The default value is 4 bytes. The Physical Memory Heap defaults to 16 bytes and ignores flags less than RT_HEAP_MIN_BLOCK_SIZE_16. RT_HEAP_BEST_FITThis flag instructs the Win32 Heap manager to use a best fit rather than a first fit algorithm to search blocks on the free list. A best fit algorithm will typically need less heap space overhead but may be slower on some systems. RT_PREFETCH_RING0When this flag is set, function RTCallRing0 will prefetch code and data required to perform the actual call to ring 0. As ring 0 functions called from ring 3 must be executed with interrupts disabled, prefetching can improve the system's interrupt latency. However, the prefetch operation also takes time, slowing down the complete RTCallRing0 call. Use RT_PREFETCH_RING0 only if the target is running on CPUs with a cache and if interrupt latencies below 10 microseconds are required. Note that some RTTarget-32 internal functions also use RTCallRing0 and are thus also affected by this flag. RT_CMOS_RTC_SYNCHIf set, functions RTCMOSSetSystemTime and RTCMOSSetRTC will synchronize the CMOS real-time clock with the next seconds increment of the system time. The effect is that the CMOS real-time clock (which cannot maintain times with a granularity of less than 1 second) is read and set more accurately, but functions RTCMOSSetSystemTime and RTCMOSSetRTC can take up to 1 second to execute. RT_NO_PCIIf set, function RTT_BIOS_Installed always returns 0 and all other PCI BIOS functions will return RTT_BIOS_FNC_NOT_SUPPORTED. Use this flag to inform RTTarget-32 that no PCI bus is available on the target. RT_NO_KEYCOMPThis flag can be used to disable numeric keypad composition in the keyboard driver. If set, keys such as Alt-2 are passed to the application unmodified. RT_EXTEND_All_RAMThis flag instructs RTExtendHeap and RTCMOSExtendHeap to add all RAM to the program's heap, even if it has a physical address above 2G. RT_DISABLE_NMIThis flag instructs all CMOS access functions to keep the NMI (None Maskable Interrupt) mask bit set (NMIs disabled). Please note that merely setting this flag does not disable NMIs. To disable the NMI, write byte value 0x80 to port 0x70 or call any one of the CMOS access functions after having set RT_DISBALE_NMI in RTTarget32Flags. RT_USE_PHYS_MEM_HEAPThis flag instructs Win32 API function GetProcessHeap to act like RTGetProcessPhysMemHeap. As a result, all heap allocations through function HeapAlloc will be routed to the Physical Memory Heap. If library Rttheap.lib is used, the same applied to malloc, new, etc. As the Physical Memory Heap does not need any virtual address space, this flag can make more heap space available on systems with more than 2G of installed RAM. Flag RT_USE_PHYS_MEM_HEAP requires the use of the virtual memory manager. RT_NO_SSE2This flag instructs Win32 API function IsProcessorFeaturePresent to return FALSE for features PF_XMMI_INSTRUCTIONS_AVAILABLE, PF_XMMI64_INSTRUCTIONS_AVAILABLE, PF_SSE3_INSTRUCTIONS_AVAILABLE and higher floating point features. Applying this flag can prevent the C/C++ run-time systems from using SSE2 instructions and registers for memcpy and memset. RT_HEAP_USE_ERAMThis flag instructs the heap manager to automatically use the new ERAM heap if the default process heap is out of memory. RT_NO_PCI_MCFGThis flag instructs the PCI managing code not to map the PCI config space into the virtual RAM address space. This can make searching PCI devices a little bit slower, but more virtual address space for ERAM applications is available. To be able to use more than 2G of RAM, please follow these guidelines:
|