windows-nt/Source/XPSP1/NT/base/wow64/mscpu/inc/config.h
2020-09-26 16:20:57 +08:00

263 lines
5.9 KiB
C

/*++
Copyright (c) 1996 Microsoft Corporation
Module Name:
config.h
Abstract:
This file defines the names of all configuration variables within
the CPU.
Author:
Barry Bond (barrybo) creation-date 12-Jun-1996
Revision History:
--*/
#ifndef _CONFIG_H_
#define _CONFIG_H_
//
// Global definitions
//
#ifndef _ALPHA_
#define MAX_PROLOG_SIZE 0x1000 // max size of StartTranslatedCode prolog
#else
#define MAX_PROLOG_SIZE 0x2000 // max size of StartTranslatedCode prolog
#endif
#define MAX_INSTR_COUNT 200 // max number of instructions to compile
/*
* The amount of memory to reserve (in bytes) for the dynamically-
* allocated CPU Translation Cache. This reserve is added to the
* 2MB statically-allocated cache.
*
* Minimum size is 1 page of memory (4096 on MIPS and PPC, 8192 on Alpha).
* Default value is 2MB. (DYN_CACHE_SIZE)
* Maximum size is all available memory.
*
*/
#define STR_CACHE_RESERVE L"CpuCacheReserve"
extern DWORD CpuCacheReserve;
/*
* The amount of memory to commit (in bytes) for the dynamically-
* allocated CPU Translation Cache. The 2MB statically-allocated
* cache is fully committed at startup.
*
* Minimum size is 1 page of memory (4096 on MIPS and PPC, 8192 on Alpha).
* Default value is 1 page. (MAX_PROLOG_SIZE)
* Maximum size is size of reserve.
*
*/
#define STR_CACHE_COMMIT L"CpuCacheCommit"
extern DWORD CpuCacheCommit;
/*
* If consecutive cache commits occur within the specified time, the amount
* committed each time doubles. (in ms)
*
* Minimum value is 0
* Default value is 200
* Maximum value is -1
*
*/
#define STR_CACHE_GROW_TICKS L"CpuCacheGrowTicks"
extern DWORD CpuCacheGrowTicks;
/*
* If consecutive cache commits occur past the specified time, the amount
* committed each time is cut in half. (in ms)
*
* Minimum value is 0
* Default value is 1000
* Maximum value is -1
*
*/
#define STR_CACHE_SHRINK_TICKS L"CpuCacheShrinkTicks"
extern DWORD CpuCacheShrinkTicks;
/*
* Minimum amount of memory (in bytes) to commit in the Translation Cache.
* Note that this value will be rounded up to the next power of 2.
*
* Minimum value is 1 page
* Default value is 32768
* Maximum value is size of cache
*
*/
#define STR_CACHE_CHUNKMIN L"CpuCacheChunkMin"
extern DWORD CpuCacheChunkMin;
/*
* Maximum amount of memory (in bytes) to commit in the Translation Cache.
* Note that this value will be rounded up to the next power of 2.
*
* Minimum value is 1 page
* Default value is 512k
* Maximum value is size of cache
*
*/
#define STR_CACHE_CHUNKMAX L"CpuCacheChunkMax"
extern DWORD CpuCacheChunkMax;
/*
* Initial amount of memory (in bytes) to commit in the Translation Cache.
* Note that this value will be rounded up to the next power of 2.
*
* Minimum value is 1 page
* Default value is 65536
* Maximum value is size of cache
*
*/
#define STR_CACHE_CHUNKSIZE L"CpuCacheChunkSize"
extern DWORD CpuCacheChunkSize;
/*
* Time to wait for other threads to synchronize (in ms).
*
* Minimum time is 0
* Default time is 3 times the default time used for NT critical sections
* Maximum time is -1 (infinity)
*
*/
#define STR_MRSW_TIMEOUT L"CpuTimeout"
extern LARGE_INTEGER MrswTimeout;
/*
* Default compilation flags
*
* See cpu\inc\compiler.h for COMPFL_ values and meanings
*
* Default=COMPFL_FAST
*
*/
#define STR_COMPILERFLAGS L"CpuCompilerFlags"
extern DWORD CompilerFlags;
/*
* Flag indicating whether winpxem.dll will be used to emulate
* floating-point instructions using the Intel Windows NT 486SX
* emulator instead of the Wx86 implementation.
*
* Default=0
* Non-zero indicates winpxem.dll will be used.
*
*/
#define STR_USEWINPXEM L"CpuNoFPU"
extern DWORD fUseNPXEM;
/*
* Number of times to retry memory allocations before failing.
*
* Min = 1
* Default = 4
* Max = 0xffffffff
*
*/
#define STR_CPU_MAX_ALLOC_RETRIES L"CpuMaxAllocRetries"
extern DWORD CpuMaxAllocRetries;
/*
* Time to sleep between memory allocation retries (in ms).
*
* Min = 0
* Default = 200
* Max = 0xffffffff
*
*/
#define STR_CPU_WAIT_FOR_MEMORY_TIME L"CpuWaitForMemoryTime"
extern DWORD CpuWaitForMemoryTime;
/*
* Number of instructions of lookahead in the CPU
*
* Min = 1
* Default = 200 (MAX_INSTR_COUNT)
* Max = 200 (MAX_INSTR_COUNT)
*
*/
#define STR_CPU_MAX_INSTRUCTIONS L"CpuInstructionLookahead"
extern DWORD CpuInstructionLookahead;
/*
* Disable the Dynamic Translation Cache altogether
*
* Default = 0 - Dynamic Translation Cache enabled
* nonzero - use only the static Translation Cache
*
*/
#define STR_CPU_DISABLE_DYNCACHE L"CpuDisableDynamicCache"
extern DWORD CpuDisableDynamicCache;
/*
* Size of ENTRYPOINT descriptor reservation, in bytes
*
* Default = 0x1000000
*
*/
#define STR_CPU_ENTRYPOINT_RESERVE L"CpuEntryPointReserve"
extern DWORD CpuEntryPointReserve;
/*
* Disable caching of x86 registers in RISC registers
*
* Default = 0 - x86 registers cached in RISC registers
* nonzero - x86 registers accessed only from memory
*
*/
#define STR_CPU_DISABLE_REGCACHE L"CpuDisableRegCache"
extern DWORD CpuDisableRegCache;
/*
* Disable dead x86 flag removal
*
* Default = 0 - dead x86 flags not computed
* nonzero - x86 flags always computed
*
*/
#define STR_CPU_DISABLE_NOFLAGS L"CpuDisableNoFlags"
extern DWORD CpuDisableNoFlags;
/*
* Disable Ebp alignment detection.
*
* Default = 0 - If EBP is determined to be a stack frame pointer, assume
* it is an aligned pointer.
* nonzero - Assume EBP is always an unaligned pointer.
*
*/
#define STR_CPU_DISABLE_EBPALIGN L"CpuDisableEbpAlign"
extern DWORD CpuDisableEbpAlign;
/*
* Enable sniff-checking on x86 code found in writable memory
*
* Default = 0 - No sniff-checking performed.
* nonzero - Sniff-check pages with writable attributes.
*
*/
#define STR_CPU_SNIFF_WRITABLE_CODE L"CpuSniffWritableCode"
extern DWORD CpuSniffWritableCode;
/*
* Logging verbosity. Only configurable under the debugger.
*
*/
extern DWORD ModuleLogFlags;
VOID
GetConfigurationData(
VOID
);
#endif