1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-09 07:41:40 -07:00
emacs/mps/src/config.h
Pekka Pirinen 0d16337441 Move vc++ warning suppressions here
Copied from Perforce
 Change: 18918
 ServerID: perforce.ravenbrook.com
1997-10-24 19:57:28 +01:00

184 lines
5.2 KiB
C

/* impl.h.config: MPS CONFIGURATION
*
* Copyright (C) 1997 Harlequin Group, all rights reserved.
* $HopeName: MMsrc!config.h(trunk.15) $
*
* .readership: MPS developers.
*/
#ifndef config_h
#define config_h
/* Platform Configuration */
#include "mpstd.h"
/* Suppress Visual C warnings at warning level 4, */
/* see mail.richard.1997-09-25.13-26. */
/* Essentially the same settings are done in testlib.h. */
#ifdef MPS_BUILD_MV
/* "unreferenced inline function has been removed" (windows.h) */
#pragma warning(disable: 4514)
/* "constant conditional" (MPS_END) */
#pragma warning(disable: 4127)
/* "unreachable code" (ASSERT, if cond is constantly true). */
#pragma warning(disable: 4702)
/* MSVC 2.0 generates a warning when using NOCHECK or UNUSED */
#ifdef _MSC_VER
#if _MSC_VER < 1000
#pragma warning(disable: 4705)
#endif
#else /* _MSC_VER */
#error "Expected _MSC_VER to be defined for builder.mv"
#endif /* _MSC_VER */
#endif /* MPS_BUILD_MV */
/* Variety Configuration
*
* Convert CONFIG_VAR_* defined on compiler command line into
* internal configuration parameters. See design.mps.config.var
* and design.mps.variety.macro. Note that MPS_HOT is subclassed
* into MPS_HOT_RED and MPS_HOT_WHITE; this distinction should
* be rarely used.
*/
#if defined(CONFIG_VAR_HI) /* Hot, Internal; variety.hi */
#define MPS_HOT
#define MPS_HOT_RED
#elif defined(CONFIG_VAR_CI) /* Cool, Internal; variety.ci */
#define MPS_COOL
#elif defined(CONFIG_VAR_TI) /* Telemetry, Internal; variety.ti */
#define EVENT
#define MPS_COOL
#elif defined(CONFIG_VAR_HE) /* Hot, External; variety.he */
#define MPS_HOT
#define MPS_HOT_RED
#elif defined(CONFIG_VAR_CE) /* Cool, External; variety.ce */
#define MPS_COOL
#elif defined(CONFIG_VAR_WI) /* White hot, Internal; variety.wi */
#define MPS_HOT
#define MPS_HOT_WHITE
#else
#error "No target variety configured."
#endif
/* Product Configuration
*
* Convert CONFIG_PROD_* defined on compiler command line into
* internal configuration parameters. See design.mps.config.prod.
*/
/* .ams-size: POOLAMS_MINIMUM_BENEFIT_SIZE is the size at which an AMS
* pool will first be recommended for condemnation. See
* design.mps.poolams.benefit.guess. This benefit computation is bogus
* and will go away in time. */
#define POOLAMS_MINIMUM_BENEFIT_SIZE (1024ul * 1024)
/* .prod.arena-size: ARENA_SIZE is currently set larger for the
* MM/Dylan product as an interim solution.
* See request.dylan.170170.sol.patch and change.dylan.buffalo.170170.
*
* .mac.arena-size: ARENA_SIZE is set to 2Mb when compiling on
* os.s7 (Mac OS) with the VM Arena, in order to allow development in
* an environment where real memory is used to simulate memory mapping.
*
* ARENA_CLIENT_PAGE_SIZE is the size in bytes of a "page" (i.e. segment
* granule) in the client arena. The number 8192 is an initial value with no
* particular justification.
*
* ARENA_CLIENT_DEFAULT_SEG_HIGH is a Bool governing whether segments default
* 'high' (TRUE) or 'low' (FALSE). For EP-core, non-DL segments should be high
* to reduce fragmentation of DL pools (See req.epcore.attr.footprint
* and change 170193/trapping.beta.3 */
#define ARENA_CLIENT_PAGE_SIZE ((Size)8192)
#define ARENA_CLIENT_DEFAULT_SEG_HIGH TRUE
#if defined(CONFIG_PROD_EPCORE)
#define MPS_PROD_EPCORE
#define ARENA_SIZE ((Size)2<<20)
#define AMC_SIZE_LIMIT ARENA_SIZE
/* .nosync.why: ScriptWorks is single-threaded when using the MM. */
#define THREAD_SINGLE
#define PROTECTION_NONE
#elif defined(CONFIG_PROD_DYLAN)
#define MPS_PROD_DYLAN
#define ARENA_SIZE ((Size)1<<30)
#define AMC_SIZE_LIMIT ((Size)64<<20) /* experimentally reasonable limit */
#define THREAD_MULTI
#define PROTECTION
#elif defined(CONFIG_PROD_MPS)
#define MPS_PROD_MPS
#ifdef MPS_OS_S7
#define ARENA_SIZE ((Size)2<<20)
#define AMC_SIZE_LIMIT ARENA_SIZE
#else
#define ARENA_SIZE ((Size)64<<20)
#define AMC_SIZE_LIMIT ARENA_SIZE
#endif /* MPS_OS_S7 */
#define THREAD_MULTI
#define PROTECTION
#else
#error "No target product configured."
#endif
/* Arena Configuration -- see impl.c.arena */
#define ARENA_CONTROL_EXTENDBY ((Size)4096)
#define ARENA_CONTROL_AVGSIZE ((Size)32)
#define ARENA_CONTROL_MAXSIZE ((Size)65536)
#define ARENA_POLL_MAX ((Size)65536)
#define ARENA_LD_LENGTH ((Size)4)
#define ARENA_ZONESHIFT ((Shift)20)
/* ANSI Arena Configuration -- see impl.c.arenaan */
#define ARENA_ANSI_ALIGN ((Align)4096)
#define ARENA_ANSI_ZONESHIFT ((Shift)20)
/* Shield Configuration -- see impl.c.shield */
#define SHIELD_CACHE_SIZE ((Size)2)
#define SHIELD_DEPTH_WIDTH ((Size)4)
#define SHIELD_DEPTH ((Count)1<<SHIELD_DEPTH_WIDTH)
/* VM Configuration -- see impl.c.vm* */
#define VMAN_ALIGN ((Align)4096)
#define VM_JUNKBYTE ((unsigned char)0xA9)
/* Tracer Configuration -- see impl.c.trace */
#define TRACE_MAX ((Size)1)
/* impl.c.event
*
* EVENT_BUFFER_SIZE is the number of words in the global event buffer.
* EVENT_HEADER_SIZE is the number of words in each event header
*/
#define EVENT_BUFFER_SIZE ((Count)4096)
#define EVENT_HEADER_SIZE ((Count)3)
#endif /* config_h */