Files
org-hyperion-cules/featall.h
Fish (David B. Trout) d4a1b5e109 New 2012 CMPSC instruction implementation is now the default:
Original/legacy cmpsc.c implementation moved to altcmpsc.dll module.

Refer to Release Notes and/or README.CMPSC documents for more details.
2014-12-29 17:17:01 -08:00

359 lines
16 KiB
C

/* FEATALL.H (c) Copyright Jan Jaeger, 2000-2012 */
/* Architecture-dependent macro definitions */
/*-------------------------------------------------------------------*/
/* Default features */
/* All existing features MUST be #undef-ed here. */
/*-------------------------------------------------------------------*/
#if !defined(OPTION_370_MODE) && !defined(NO_370_MODE)
#define OPTION_370_MODE /* Generate S/370 support */
#endif
#if !defined(OPTION_370_EXTENSION) && !defined(NO_370_EXTENSION)
#define OPTION_370_EXTENSION /* S/370 backport of S/390 & z/arch */
#endif
#if !defined(OPTION_390_MODE) && !defined(NO_390_MODE)
#define OPTION_390_MODE /* Generate ESA/390 support */
#endif
#if !defined(OPTION_900_MODE) && !defined(NO_900_MODE)
#define OPTION_900_MODE /* Generate ESAME support */
#endif
#if !defined(OPTION_LPP_RESTRICT) && !defined(NO_LPP_RESTRICT)
#define OPTION_LPP_RESTRICT /* Disable Licensed Software */
#endif
#if !defined(OPTION_SMP) && !defined(NO_SMP)
#define OPTION_SMP /* Enable SMP support */
#endif
#define VECTOR_SECTION_SIZE 128 /* Vector section size */
#define VECTOR_PARTIAL_SUM_NUMBER 1 /* Vector partial sum number */
#define CKD_MAXFILES 27 /* Max files per CKD volume */
#if !defined(OPTION_MIPS_COUNTING) && !defined(NO_MIPS_COUNTING)
#define OPTION_MIPS_COUNTING /* Display MIPS on ctl panel */
#endif
#define PANEL_REFRESH_RATE /* Enable panrate feature */
#define PANEL_REFRESH_RATE_FAST 50 /* Fast refresh rate (msecs) */
#define PANEL_REFRESH_RATE_SLOW 500 /* Slow refresh rate (msecs) */
#ifdef _MSVC_ /* (Windows) */
#define MIN_TOD_UPDATE_USECS 1 /* Min TOD updt freq (usecs) */
#define DEF_TOD_UPDATE_USECS 50 /* Def TOD updt freq (usecs) */
#define MAX_TOD_UPDATE_USECS 1000000 /* Max TOD updt freq (usecs) */
#else /* (non-Windows) */
#define MIN_TOD_UPDATE_USECS 1 /* Min TOD updt freq (usecs) */
#define DEF_TOD_UPDATE_USECS 50 /* Def TOD updt freq (usecs) */
#define MAX_TOD_UPDATE_USECS 1000000 /* Max TOD updt freq (usecs) */
#endif
#define MAX_DEVICE_THREAD_IDLE_SECS 300 /* 5 Minute thread timeout */
/*-------------------------------------------------------------------*\
* The following set of default "OPTION_INLINE" settings were *
* determined based on testing performed in late May of 2013: *
* vstore/ifetch: inline, logical/dat: DON'T inline. *
\*-------------------------------------------------------------------*/
#if defined( OPTION_INLINE_VSTORE ) && defined( NO_OPTION_INLINE_VSTORE )
#error Either OPTION_INLINE_VSTORE or NO_OPTION_INLINE_VSTORE must be specified, not both
#elif !defined( OPTION_INLINE_VSTORE ) && !defined( NO_OPTION_INLINE_VSTORE )
#define OPTION_INLINE_VSTORE
#endif
#if defined( OPTION_INLINE_IFETCH ) && defined( NO_OPTION_INLINE_IFETCH )
#error Either OPTION_INLINE_IFETCH or NO_OPTION_INLINE_IFETCH must be specified, not both
#elif !defined( OPTION_INLINE_IFETCH ) && !defined( NO_OPTION_INLINE_IFETCH )
#define OPTION_INLINE_IFETCH
#endif
#if defined( OPTION_INLINE_LOGICAL ) && defined( NO_OPTION_INLINE_LOGICAL )
#error Either OPTION_INLINE_LOGICAL or NO_OPTION_INLINE_LOGICAL must be specified, not both
#elif !defined( OPTION_INLINE_LOGICAL ) && !defined( NO_OPTION_INLINE_LOGICAL )
#undef OPTION_INLINE_LOGICAL
#endif
#if defined( OPTION_INLINE_DAT ) && defined( NO_OPTION_INLINE_DAT )
#error Either OPTION_INLINE_DAT or NO_OPTION_INLINE_DAT must be specified, not both
#elif !defined( OPTION_INLINE_DAT ) && !defined( NO_OPTION_INLINE_DAT )
#undef OPTION_INLINE_DAT
#endif
/*-------------------------------------------------------------------*/
#define OPTION_SINGLE_CPU_DW /* Performance option (ia32) */
#define OPTION_IODELAY_KLUDGE /* IODELAY kludge for linux */
#if defined(OPTION_SYNCIO) && defined(OPTION_NOSYNCIO)
#error Either OPTION_SYNCIO or OPTION_NOSYNCIO must be specified, not both
#elif !defined(OPTION_SYNCIO) && !defined(OPTION_NOSYNCIO)
#define OPTION_SYNCIO /* Synchronous local DASD */
#endif
#undef OPTION_FOOTPRINT_BUFFER /* 2048 ** Size must be a power of 2 */
#undef OPTION_INSTRUCTION_COUNTING /* First use trace and count */
#define OPTION_CKD_KEY_TRACING /* Trace CKD search keys */
#undef MODEL_DEPENDENT_STCM /* STCM, STCMH always store */
#define OPTION_NOP_MODEL158_DIAGNOSE /* NOP mod 158 specific diags*/
#define FEATURE_ALD_FORMAT 0 /* Use fmt0 Access-lists */
#define FEATURE_SIE_MAXZONES 8 /* Maximum SIE Zones */
#define FEATURE_LCSS_MAX 4 /* Number of supported lcss's*/
// #define SIE_DEBUG_PERFMON /* SIE performance monitor */
#define OPTION_HTTP_SERVER /* HTTP server support */
#if 0
#define OPTION_CMDTGT /* the cmdtgt command */
#define OPTION_MSGCLR /* Colored messages */
#define OPTION_MSGHLD /* Sticky messages */
#define OPTION_MSGLCK /* Lock during msg write */
#endif
#if !defined(OPTION_SCP_MSG_PREFIX) && !defined(NO_SCP_MSG_PREFIX)
#define NO_SCP_MSG_PREFIX /* Prefix scp msg with HHC* */
#endif
#if !defined(OPTION_WINDOWS_HOST_FILENAMES) && !defined(NO_WINDOWS_HOST_FILENAMES)
#define NO_WINDOWS_HOST_FILENAMES /* Format files for display
in native host format
slashes */
#endif
#if !defined(OPTION_SHUTDOWN_CONFIRMATION) && !defined(NO_SHUTDOWN_CONFIRMATION)
#define NO_SHUTDOWN_CONFIRMATION /* Confirm quit and ssd cmds */
#endif
#if !defined(OPTION_LOCK_CONFIG_FILE) && !defined(NO_LOCK_CONFIG_FILE)
#define NO_LOCK_CONFIG_FILE /* Keep Configuration file
locked during execution */
#endif
#define OPTION_OPTINST /* Optimized instructions */
#undef OPTION_SHOWDVOL1 /* showdvol1 support */
#if !defined(ENABLE_CONFIG_INCLUDE) && !defined(NO_CONFIG_INCLUDE)
#define ENABLE_CONFIG_INCLUDE /* enable config file includes */
#endif
#if !defined(ENABLE_SYSTEM_SYMBOLS) && !defined(NO_SYSTEM_SYMBOLS)
#define ENABLE_SYSTEM_SYMBOLS /* access to system symbols */
#endif
#if !defined(ENABLE_BUILTIN_SYMBOLS) && !defined(NO_BUILTIN_SYMBOLS)
#define ENABLE_BUILTIN_SYMBOLS /* Internal Symbols */
#endif
#if defined(ENABLE_BUILTIN_SYMBOLS) && !defined(ENABLE_SYSTEM_SYMBOLS)
#error ENABLE_BUILTIN_SYMBOLS requires ENABLE_SYMBOLS_SYMBOLS
#endif
#if defined(OPTION_MSGHLD) && !defined(OPTION_MSGCLR)
#error OPTION_MSGHLD requires OPTION_MSGCLR
#endif // defined(OPTION_MSGHLD) && !defined(OPTION_MSGCLR)
#if (CKD_MAXFILES > 35)
#error CKD_MAXFILES can not exceed design limit of 35
#endif
#if defined( OPTION_SHARED_DEVICES ) && defined( OPTION_NO_SHARED_DEVICES )
#error Either OPTION_SHARED_DEVICES or OPTION_NO_SHARED_DEVICES must be specified, not both
#elif !defined( OPTION_SHARED_DEVICES ) && !defined( OPTION_NO_SHARED_DEVICES )
// Neither is #defined. Use default settings.
#define OPTION_SHARED_DEVICES
#define FBA_SHARED
#elif defined( OPTION_NO_SHARED_DEVICES )
#undef OPTION_SHARED_DEVICES
#undef FBA_SHARED
#elif defined( OPTION_SHARED_DEVICES )
// Leave FBA_SHARED alone, either #defined or #undefined, as desired.
#endif // OPTION_SHARED_DEVICES
/*********************************************************************/
/* Hercules Mutex Locks Model */
/*********************************************************************/
#define OPTION_MUTEX_NORMAL 1 /* re-obtain == deadlock */
#define OPTION_MUTEX_ERRORCHECK 2 /* re-obtain == error */
#define OPTION_MUTEX_RECURSIVE 3 /* re-obtain == allowed */
#define OPTION_RWLOCK_SHARED 4 /* public to all processes */
#define OPTION_RWLOCK_PRIVATE 5 /* private to this process */
#define OPTION_MUTEX_DEFAULT OPTION_MUTEX_ERRORCHECK
#define OPTION_RWLOCK_DEFAULT OPTION_RWLOCK_PRIVATE
/*********************************************************************\
*********************************************************************
** **
** *** NOTE! *** **
** **
** All HOST-operating-system-specific FEATUREs and OPTIONs **
** should be #defined in the below header (and ONLY in the **
** below header!) Please read the comments there! **
** **
*********************************************************************
\*********************************************************************/
#include "hostopts.h" // (HOST-specific options/feature settings)
// (allow for compiler command-line overrides...)
#if defined(OPTION_370_MODE) && defined(NO_370_MODE)
#undef OPTION_370_MODE
#endif
#if defined(OPTION_390_MODE) && defined(NO_390_MODE)
#undef OPTION_390_MODE
#endif
#if defined(OPTION_900_MODE) && defined(NO_900_MODE)
#undef OPTION_900_MODE
#endif
#undef FEATURE_4K_STORAGE_KEYS
#undef FEATURE_2K_STORAGE_KEYS
#undef FEATURE_ACCESS_EXCEPTION_FETCH_STORE_INDICATION /*810*/
#undef FEATURE_ACCESS_REGISTERS
#undef FEATURE_ADDRESS_LIMIT_CHECKING
#undef FEATURE_ASN_AND_LX_REUSE
#undef FEATURE_BASIC_FP_EXTENSIONS
#undef FEATURE_BASIC_STORAGE_KEYS
#undef FEATURE_BCMODE
#undef FEATURE_BIMODAL_ADDRESSING
#undef FEATURE_BINARY_FLOATING_POINT
#undef FEATURE_BRANCH_AND_SET_AUTHORITY
#undef FEATURE_BROADCASTED_PURGING
#undef FEATURE_CALLED_SPACE_IDENTIFICATION
#undef FEATURE_CANCEL_IO_FACILITY
#undef FEATURE_CHANNEL_SUBSYSTEM
#undef FEATURE_CHANNEL_SWITCHING
#undef FEATURE_CHECKSUM_INSTRUCTION
#undef FEATURE_CHSC
#undef FEATURE_CMPSC_ENHANCEMENT_FACILITY
#undef FEATURE_COMPARE_AND_MOVE_EXTENDED
#undef FEATURE_COMPARE_AND_SWAP_AND_STORE /*407*/
#undef FEATURE_COMPARE_AND_SWAP_AND_STORE_FACILITY_2 /*208*/
#undef FEATURE_COMPRESSION
#undef FEATURE_CONDITIONAL_SSKE /*407*/
#undef FEATURE_CONFIGURATION_TOPOLOGY_FACILITY /*208*/
#undef FEATURE_CPU_MEASUREMENT_COUNTER_FACILITY
#undef FEATURE_CPU_MEASUREMENT_SAMPLING_FACILITY
#undef FEATURE_CPU_RECONFIG
#undef FEATURE_DAT_ENHANCEMENT
#undef FEATURE_DAT_ENHANCEMENT_FACILITY_2 /*@Z9*/
#undef FEATURE_DECIMAL_FLOATING_POINT /*DFP*/
#undef FEATURE_DISTINCT_OPERANDS_FACILITY /*810*/
#undef FEATURE_DUAL_ADDRESS_SPACE
#undef FEATURE_ECPSVM
#undef FEATURE_EMULATE_VM
#undef FEATURE_ENHANCED_DAT_FACILITY /*208*/
#undef FEATURE_ENHANCED_MONITOR_FACILITY /*810*/
#undef FEATURE_ENHANCED_SUPPRESSION_ON_PROTECTION /*208*/
#undef FEATURE_ESAME
#undef FEATURE_ESAME_N3_ESA390
#undef FEATURE_ETF2_ENHANCEMENT /*@Z9*/
#undef FEATURE_ETF3_ENHANCEMENT /*@Z9*/
#undef FEATURE_EXECUTE_EXTENSIONS_FACILITY /*208*/
#undef FEATURE_EXPANDED_STORAGE
#undef FEATURE_EXPEDITED_SIE_SUBSET
#undef FEATURE_EXTENDED_DIAG204
#undef FEATURE_EXTENDED_IMMEDIATE /*@Z9*/
#undef FEATURE_EXTENDED_STORAGE_KEYS
#undef FEATURE_EXTENDED_TOD_CLOCK
#undef FEATURE_EXTENDED_TRANSLATION
#undef FEATURE_EXTENDED_TRANSLATION_FACILITY_2
#undef FEATURE_EXTENDED_TRANSLATION_FACILITY_3
#undef FEATURE_EXTERNAL_INTERRUPT_ASSIST
#undef FEATURE_EXTRACT_CPU_TIME /*407*/
#undef FEATURE_FAST_BCR_SERIALIZATION_FACILITY /*810*/
#undef FEATURE_FAST_SYNC_DATA_MOVER
#undef FEATURE_FETCH_PROTECTION_OVERRIDE
#undef FEATURE_FLOATING_POINT_EXTENSION_FACILITY /*810*/
#undef FEATURE_FPS_ENHANCEMENT /*DFP*/
#undef FEATURE_FPS_EXTENSIONS
#undef FEATURE_GENERAL_INSTRUCTIONS_EXTENSION_FACILITY
#undef FEATURE_HARDWARE_LOADER
#undef FEATURE_HERCULES_DIAGCALLS
#undef FEATURE_HEXADECIMAL_FLOATING_POINT
#undef FEATURE_HFP_EXTENSIONS
#undef FEATURE_HFP_MULTIPLY_ADD_SUBTRACT
#undef FEATURE_HFP_UNNORMALIZED_EXTENSION /*@Z9*/
#undef FEATURE_HIGH_WORD_FACILITY /*810*/
#undef FEATURE_HOST_RESOURCE_ACCESS_FACILITY
#undef FEATURE_HYPERVISOR
#undef FEATURE_IEEE_EXCEPTION_SIMULATION /*407*/
#undef FEATURE_IMMEDIATE_AND_RELATIVE
#undef FEATURE_INCORRECT_LENGTH_INDICATION_SUPPRESSION
#undef FEATURE_INTEGRATED_3270_CONSOLE
#undef FEATURE_INTEGRATED_ASCII_CONSOLE
#undef FEATURE_INTERLOCKED_ACCESS_FACILITY /*810*/
#undef FEATURE_INTERPRETIVE_EXECUTION
#undef FEATURE_INTERVAL_TIMER
#undef FEATURE_IPTE_RANGE_FACILITY /*810*/
#undef FEATURE_IO_ASSIST
#undef FEATURE_LINKAGE_STACK
#undef FEATURE_LOAD_REVERSED
#undef FEATURE_LOAD_PROGRAM_PARAMETER_FACILITY
#undef FEATURE_LOAD_STORE_ON_CONDITION_FACILITY /*810*/
#undef FEATURE_LOCK_PAGE
#undef FEATURE_LONG_DISPLACEMENT
#undef FEATURE_MESSAGE_SECURITY_ASSIST
#undef FEATURE_MESSAGE_SECURITY_ASSIST_EXTENSION_1 /*@Z9*/
#undef FEATURE_MESSAGE_SECURITY_ASSIST_EXTENSION_2
#undef FEATURE_MESSAGE_SECURITY_ASSIST_EXTENSION_3 /*810*/
#undef FEATURE_MESSAGE_SECURITY_ASSIST_EXTENSION_4 /*810*/
#undef FEATURE_MIDAW /*@Z9*/
#undef FEATURE_MOVE_PAGE_FACILITY_2
#undef FEATURE_MOVE_WITH_OPTIONAL_SPECIFICATIONS /*208*/
#undef FEATURE_MPF_INFO
#undef FEATURE_MSSF_CALL
#undef FEATURE_MULTIPLE_CONTROLLED_DATA_SPACE
#undef FEATURE_MVS_ASSIST
#undef FEATURE_NONQUIESCING_KEY_SETTING_FACILITY /*810*/
#undef FEATURE_PAGE_PROTECTION
#undef FEATURE_PARSING_ENHANCEMENT_FACILITY /*208*/
#undef FEATURE_PERFORM_LOCKED_OPERATION
#undef FEATURE_PER
#undef FEATURE_PER2
#undef FEATURE_PER3 /*@Z9*/
#undef FEATURE_PFPO /*407*/
#undef FEATURE_POPULATION_COUNT_FACILITY /*810*/
#undef FEATURE_PRIVATE_SPACE
#undef FEATURE_PROGRAM_DIRECTED_REIPL /*@Z9*/
#undef FEATURE_PROTECTION_INTERCEPTION_CONTROL
#undef FEATURE_QUEUED_DIRECT_IO
#undef FEATURE_QEBSM
#undef FEATURE_QDIO_THININT
#undef FEATURE_QDIO_TDD
#undef FEATURE_REGION_RELOCATE
#undef FEATURE_RESET_REFERENCE_BITS_MULTIPLE_FACILITY /*810*/
#undef FEATURE_RESTORE_SUBCHANNEL_FACILITY /*208*/
#undef FEATURE_RESUME_PROGRAM
#undef FEATURE_SCEDIO
#undef FEATURE_SCSI_IPL
#undef FEATURE_SVS
#undef FEATURE_S370_CHANNEL
#undef FEATURE_S390_DAT
#undef FEATURE_S370E_EXTENDED_ADDRESSING
#undef FEATURE_SEGMENT_PROTECTION
#undef FEATURE_SENSE_RUNNING_STATUS /*@Z9*/
#undef FEATURE_SERVICE_PROCESSOR
#undef FEATURE_SET_ADDRESS_SPACE_CONTROL_FAST
#undef FEATURE_SQUARE_ROOT
#undef FEATURE_STORAGE_KEY_ASSIST
#undef FEATURE_STORAGE_PROTECTION_OVERRIDE
#undef FEATURE_STORE_CLOCK_FAST /*@Z9*/
#undef FEATURE_STORE_FACILITY_LIST
#undef FEATURE_STORE_FACILITY_LIST_EXTENDED /*@Z9*/
#undef FEATURE_STORE_SYSTEM_INFORMATION
#undef FEATURE_STRING_INSTRUCTION
#undef FEATURE_SUBSPACE_GROUP
#undef FEATURE_SUPPRESSION_ON_PROTECTION
#undef FEATURE_SYSTEM_CONSOLE
#undef FEATURE_TEST_BLOCK
#undef FEATURE_TOD_CLOCK_STEERING /*@Z9*/
#undef FEATURE_TRACING
#undef FEATURE_VECTOR_FACILITY
#undef FEATURE_VIRTUAL_ARCHITECTURE_LEVEL
#undef FEATURE_VM_BLOCKIO
#undef FEATURE_WAITSTATE_ASSIST
/* end of FEATALL.H */