1 /* FEATCHK.H (c) Copyright Jan Jaeger, 2000-2009 */ 2 /* Feature definition consistency checks */ 3 4 /*-------------------------------------------------------------------*/ 5 /* Perform various checks on feature combinations, and set */ 6 /* additional flags to percolate certain features such as */ 7 /* SIE down to lower architecture levels such that these */ 8 /* can include emulation support */ 9 /* */ 10 /* FEATURE_XXXX is defined per architecture mode, and */ 11 /* _FEATURE_XXXX is defined across all architectures */ 12 /* if FEATURE_ XXXX is defined for any architecture mode. */ 13 /* */ 14 /*-------------------------------------------------------------------*/ 15 16 #if defined(FEATCHK_CHECK_ALL) 17 18 /* FEATURE_INTERPRETIVE_EXECUTION is related to host related issues 19 _FEATURE_SIE is related to guest (emulation) related issues. This 20 because if FEATURE_INTERPRETIVE_EXECUTION is defined for say 390 21 mode, then _FEATURE_SIE will also need to be in 370 in order to 22 support 370 mode SIE emulation */ 23 #if defined(FEATURE_INTERPRETIVE_EXECUTION) 24 #define _FEATURE_SIE 25 #if defined(FEATURE_ESAME) 26 #define _FEATURE_ZSIE 27 #endif 28 #if defined(FEATURE_PROTECTION_INTERCEPTION_CONTROL) 29 #define _FEATURE_PROTECTION_INTERCEPTION_CONTROL 30 #endif 31 #endif 32 33 /* _FEATURE_MULTIPLE_CONTROLLED_DATA_SPACE is used for host 34 related processing issues, FEATURE_MULTIPLE_CONTROLLED_DATA_SPACE 35 is defined only in ESA/390 mode. MCDS is an ESA/390 36 feature that is supported under z/Architecture SIE */ 37 #if defined(FEATURE_MULTIPLE_CONTROLLED_DATA_SPACE) 38 #define _FEATURE_MULTIPLE_CONTROLLED_DATA_SPACE 39 #endif 40 41 #if defined(FEATURE_2K_STORAGE_KEYS) 42 #define _FEATURE_2K_STORAGE_KEYS 43 #endif 44 45 #if defined(FEATURE_INTERVAL_TIMER) 46 #define _FEATURE_INTERVAL_TIMER 47 #endif 48 49 #if defined(FEATURE_ECPSVM) 50 #define _FEATURE_ECPSVM 51 #endif 52 53 #if defined(FEATURE_VECTOR_FACILITY) 54 #define _FEATURE_VECTOR_FACILITY 55 #endif 56 57 #if defined(FEATURE_CHANNEL_SUBSYSTEM) 58 #define _FEATURE_CHANNEL_SUBSYSTEM 59 #endif 60 61 #if defined(FEATURE_SYSTEM_CONSOLE) 62 #define _FEATURE_SYSTEM_CONSOLE 63 #endif 64 65 #if defined(FEATURE_EXPANDED_STORAGE) 66 #define _FEATURE_EXPANDED_STORAGE 67 #endif 68 69 #if defined(FEATURE_ECPSVM) 70 #define _FEATURE_ECPSVM 71 #endif 72 73 #if defined(_FEATURE_SIE) && defined(FEATURE_STORAGE_KEY_ASSIST) 74 #define _FEATURE_STORAGE_KEY_ASSIST 75 #endif 76 77 #if defined(FEATURE_CPU_RECONFIG) 78 #define _FEATURE_CPU_RECONFIG 79 #endif 80 81 #if defined(FEATURE_PER) 82 #define _FEATURE_PER 83 #endif 84 85 #if defined(FEATURE_PER2) 86 #define _FEATURE_PER2 87 #endif 88 89 #if defined(FEATURE_EXPEDITED_SIE_SUBSET) 90 #define _FEATURE_EXPEDITED_SIE_SUBSET 91 #endif 92 93 #if defined(FEATURE_REGION_RELOCATE) 94 #define _FEATURE_REGION_RELOCATE 95 #endif 96 97 #if defined(FEATURE_IO_ASSIST) 98 #define _FEATURE_IO_ASSIST 99 #endif 100 101 #if defined(FEATURE_WAITSTATE_ASSIST) 102 #define _FEATURE_WAITSTATE_ASSIST 103 #endif 104 105 #if defined(FEATURE_EXTERNAL_INTERRUPT_ASSIST) 106 #define _FEATURE_EXTERNAL_INTERRUPT_ASSIST 107 #endif 108 109 #if defined(FEATURE_MESSAGE_SECURITY_ASSIST) 110 #define _FEATURE_MESSAGE_SECURITY_ASSIST 111 #endif 112 113 #if defined(FEATURE_ASN_AND_LX_REUSE) 114 #define _FEATURE_ASN_AND_LX_REUSE 115 #endif 116 117 #if defined(FEATURE_INTEGRATED_3270_CONSOLE) 118 #define _FEATURE_INTEGRATED_3270_CONSOLE 119 #endif 120 121 #if defined(FEATURE_INTEGRATED_ASCII_CONSOLE) 122 #define _FEATURE_INTEGRATED_ASCII_CONSOLE 123 #endif 124 125 #if defined(FEATURE_ESAME) 126 #define _FEATURE_ESAME 127 #endif 128 129 #if defined(FEATURE_ESAME_N3_ESA390) 130 #define _FEATURE_ESAME_N3_ESA390 131 #endif 132 133 #if defined(FEATURE_DAT_ENHANCEMENT) 134 #define _FEATURE_DAT_ENHANCEMENT 135 #endif 136 137 #if defined(FEATURE_STORE_FACILITY_LIST_EXTENDED) 138 #define _FEATURE_STORE_FACILITY_LIST_EXTENDED 139 #endif 140 141 #if defined(FEATURE_ENHANCED_DAT_FACILITY) 142 #define _FEATURE_ENHANCED_DAT_FACILITY 143 #endif 144 145 #if defined(FEATURE_ENHANCED_DAT_FACILITY_2) 146 #define _FEATURE_ENHANCED_DAT_FACILITY_2 147 #endif 148 149 #if defined(FEATURE_SENSE_RUNNING_STATUS) 150 #define _FEATURE_SENSE_RUNNING_STATUS 151 #endif 152 153 #if defined(FEATURE_CONDITIONAL_SSKE) 154 #define _FEATURE_CONDITIONAL_SSKE 155 #endif 156 157 #if defined(FEATURE_CONFIGURATION_TOPOLOGY_FACILITY) 158 #define _FEATURE_CONFIGURATION_TOPOLOGY_FACILITY 159 #endif 160 161 #if defined(FEATURE_IPTE_RANGE_FACILITY) 162 #define _FEATURE_IPTE_RANGE_FACILITY 163 #endif 164 165 #if defined(FEATURE_NONQUIESCING_KEY_SETTING_FACILITY) 166 #define _FEATURE_NONQUIESCING_KEY_SETTING_FACILITY 167 #endif 168 169 #if defined(FEATURE_EXTENDED_TRANSLATION_FACILITY_2) 170 #define _FEATURE_EXTENDED_TRANSLATION_FACILITY_2 171 #endif 172 173 #if defined(FEATURE_MESSAGE_SECURITY_ASSIST) 174 #define _FEATURE_MESSAGE_SECURITY_ASSIST 175 #endif 176 177 #if defined(FEATURE_LONG_DISPLACEMENT) 178 #define _FEATURE_LONG_DISPLACEMENT 179 #endif 180 181 #if defined(FEATURE_HFP_MULTIPLY_ADD_SUBTRACT) 182 #define _FEATURE_HFP_MULTIPLY_ADD_SUBTRACT 183 #endif 184 185 #if defined(FEATURE_EXTENDED_IMMEDIATE) 186 #define _FEATURE_EXTENDED_IMMEDIATE 187 #endif 188 189 #if defined(FEATURE_EXTENDED_TRANSLATION_FACILITY_3) 190 #define _FEATURE_EXTENDED_TRANSLATION_FACILITY_3 191 #endif 192 193 #if defined(FEATURE_HFP_UNNORMALIZED_EXTENSION) 194 #define _FEATURE_HFP_UNNORMALIZED_EXTENSION 195 #endif 196 197 #if defined(FEATURE_ETF2_ENHANCEMENT) 198 #define _FEATURE_ETF2_ENHANCEMENT 199 #endif 200 201 #if defined(FEATURE_STORE_CLOCK_FAST) 202 #define _FEATURE_STORE_CLOCK_FAST 203 #endif 204 205 #if defined(FEATURE_MOVE_WITH_OPTIONAL_SPECIFICATIONS) 206 #define _FEATURE_MOVE_WITH_OPTIONAL_SPECIFICATIONS 207 #endif 208 209 #if defined(FEATURE_TOD_CLOCK_STEERING) 210 #define _FEATURE_TOD_CLOCK_STEERING 211 #endif 212 213 #if defined(FEATURE_ETF3_ENHANCEMENT) 214 #define _FEATURE_ETF3_ENHANCEMENT 215 #endif 216 217 #if defined(FEATURE_EXTRACT_CPU_TIME) 218 #define _FEATURE_EXTRACT_CPU_TIME 219 #endif 220 221 #if defined(FEATURE_COMPARE_AND_SWAP_AND_STORE) 222 #define _FEATURE_COMPARE_AND_SWAP_AND_STORE 223 #endif 224 225 #if defined(FEATURE_COMPARE_AND_SWAP_AND_STORE_FACILITY_2) 226 #define _FEATURE_COMPARE_AND_SWAP_AND_STORE_FACILITY_2 227 #endif 228 229 #if defined(FEATURE_GENERAL_INSTRUCTIONS_EXTENSION_FACILITY) 230 #define _FEATURE_GENERAL_INSTRUCTIONS_EXTENSION_FACILITY 231 #endif 232 233 #if defined(FEATURE_EXECUTE_EXTENSIONS_FACILITY) 234 #define _FEATURE_EXECUTE_EXTENSIONS_FACILITY 235 #endif 236 237 #if defined(FEATURE_ENHANCED_MONITOR_FACILITY) 238 #define _FEATURE_ENHANCED_MONITOR_FACILITY 239 #endif 240 241 #if defined(FEATURE_LOAD_PROGRAM_PARAMETER_FACILITY) 242 #define _FEATURE_LOAD_PROGRAM_PARAMETER_FACILITY 243 #endif 244 245 #if defined(FEATURE_FPS_ENHANCEMENT) 246 #define _FEATURE_FPS_ENHANCEMENT 247 #endif 248 249 #if defined(FEATURE_DECIMAL_FLOATING_POINT) 250 #define _FEATURE_DECIMAL_FLOATING_POINT 251 #endif 252 253 #if defined(FEATURE_PFPO) 254 #define _FEATURE_PFPO 255 #endif 256 257 #if defined(FEATURE_FAST_BCR_SERIALIZATION_FACILITY) 258 #define _FEATURE_FAST_BCR_SERIALIZATION_FACILITY 259 #endif 260 261 #if defined(FEATURE_RESET_REFERENCE_BITS_MULTIPLE_FACILITY) 262 #define _FEATURE_RESET_REFERENCE_BITS_MULTIPLE_FACILITY 263 #endif 264 265 #if defined(FEATURE_CPU_MEASUREMENT_COUNTER_FACILITY) 266 #define _FEATURE_CPU_MEASUREMENT_COUNTER_FACILITY 267 #endif 268 269 #if defined(FEATURE_CPU_MEASUREMENT_SAMPLING_FACILITY) 270 #define _FEATURE_CPU_MEASUREMENT_SAMPLING_FACILITY 271 #endif 272 273 #if defined(FEATURE_ACCESS_EXCEPTION_FETCH_STORE_INDICATION) 274 #define _FEATURE_ACCESS_EXCEPTION_FETCH_STORE_INDICATION 275 #endif 276 277 #if defined(FEATURE_MESSAGE_SECURITY_ASSIST_EXTENSION_3) 278 #define _FEATURE_MESSAGE_SECURITY_ASSIST_EXTENSION_3 279 #endif 280 281 #if defined(FEATURE_MESSAGE_SECURITY_ASSIST_EXTENSION_4) 282 #define _FEATURE_MESSAGE_SECURITY_ASSIST_EXTENSION_4 283 #endif 284 285 #if defined(FEATURE_MESSAGE_SECURITY_ASSIST_EXTENSION_1) 286 #define _FEATURE_MESSAGE_SECURITY_ASSIST_EXTENSION_1 287 #endif 288 289 #if defined(FEATURE_MESSAGE_SECURITY_ASSIST_EXTENSION_2) 290 #define _FEATURE_MESSAGE_SECURITY_ASSIST_EXTENSION_2 291 #endif 292 293 #if defined(FEATURE_HERCULES_DIAGCALLS) 294 #define _FEATURE_HERCULES_DIAGCALLS 295 #endif 296 297 #undef _VSTORE_C_STATIC 298 #if !defined(OPTION_NO_INLINE_VSTORE) 299 #define _VSTORE_C_STATIC static inline 300 #define _VSTORE_FULL_C_STATIC static 301 #else 302 #define _VSTORE_C_STATIC 303 #define _VSTORE_FULL_C_STATIC 304 #endif 305 306 #undef _VFETCH_C_STATIC 307 #if !defined(OPTION_NO_INLINE_IFETCH) 308 #define _VFETCH_C_STATIC static inline 309 #else 310 #define _VFETCH_C_STATIC 311 #endif 312 313 #undef _DAT_C_STATIC 314 #if !defined(OPTION_NO_INLINE_DAT) 315 #define _DAT_C_STATIC static inline 316 #else 317 #define _DAT_C_STATIC 318 #endif 319 320 #undef _LOGICAL_C_STATIC 321 #if !defined(OPTION_NO_INLINE_LOGICAL) 322 #define _LOGICAL_C_STATIC static inline 323 #else 324 #define _LOGICAL_C_STATIC 325 #endif 326 327 #if !defined(OPTION_370_MODE) \ 328 && !defined(OPTION_390_MODE) \ 329 && !defined(OPTION_900_MODE) 330 #error No Architecture mode 331 #endif 332 #if defined(OPTION_370_MODE) 333 #define _370 334 #define _ARCHMODE1 370 335 #define ARCH_370 0 336 #endif 337 338 #if defined(OPTION_390_MODE) 339 #define _390 340 #if !defined(_ARCHMODE1) 341 #define _ARCHMODE1 390 342 #define ARCH_390 0 343 #else 344 #define _ARCHMODE2 390 345 #define ARCH_390 1 346 #endif 347 #endif 348 349 #if defined(OPTION_900_MODE) 350 #define _900 351 #if !defined(_ARCHMODE2) 352 #define _ARCHMODE2 900 353 #define ARCH_900 1 354 #else 355 #define _ARCHMODE3 900 356 #define ARCH_900 2 357 #endif 358 #endif 359 360 #if !defined(ARCH_370) 361 #define ARCH_370 -1 362 #endif 363 #if !defined(ARCH_390) 364 #define ARCH_390 -1 365 #endif 366 #if !defined(ARCH_900) 367 #define ARCH_900 -1 368 #endif 369 370 #if defined(_ARCHMODE3) 371 #define GEN_MAXARCH 3+2 372 #elif defined(_ARCHMODE2) 373 #define GEN_MAXARCH 2+2 374 #else 375 #define GEN_MAXARCH 1+2 376 #endif 377 378 #if defined(_900) && !defined(_390) 379 #error OPTION_390_MODE must be enabled for OPTION_900_MODE 380 #endif 381 382 383 #else /*!defined(FEATCHK_CHECK_ALL)*/ 384 385 /* When ESAME is installed then all instructions 386 marked N3 in the reference are also available 387 in ESA/390 mode */ 388 #if defined(_900) && (__GEN_ARCH == 390) 389 #define FEATURE_ESAME_N3_ESA390 390 #endif 391 392 #if !defined(FEATURE_2K_STORAGE_KEYS) \ 393 && !defined(FEATURE_4K_STORAGE_KEYS) 394 #error Storage keys must be 2K or 4K 395 #endif 396 397 #if defined(FEATURE_EXTENDED_STORAGE_KEYS) 398 #if !defined(FEATURE_S370E_EXTENDED_ADDRESSING) 399 #define FEATURE_S370E_EXTENDED_ADDRESSING 400 #endif 401 #endif 402 403 #if defined(FEATURE_EXPANDED_STORAGE) \ 404 && !defined(FEATURE_4K_STORAGE_KEYS) 405 #error Expanded storage cannot be defined with 2K storage keys 406 #endif 407 408 #if defined(_900) && defined(FEATURE_VECTOR_FACILITY) 409 #error Vector Facility not supported on ESAME capable processors 410 #endif 411 412 #if !defined(FEATURE_S370_CHANNEL) && !defined(FEATURE_CHANNEL_SUBSYSTEM) 413 #error Either S/370 Channel or Channel Subsystem must be defined 414 #endif 415 416 #if defined(FEATURE_S370_CHANNEL) && defined(FEATURE_CHANNEL_SUBSYSTEM) 417 #error S/370 Channel and Channel Subsystem cannot both be defined 418 #endif 419 420 #if defined(FEATURE_CANCEL_IO_FACILITY) \ 421 && !defined(FEATURE_CHANNEL_SUBSYSTEM) 422 #error Cancel I/O facility requires Channel Subsystem 423 #endif 424 425 #if defined(FEATURE_MOVE_PAGE_FACILITY_2) \ 426 && !defined(FEATURE_4K_STORAGE_KEYS) 427 #error Move page facility cannot be defined with 2K storage keys 428 #endif 429 430 #if defined(FEATURE_FAST_SYNC_DATA_MOVER) \ 431 && !defined(FEATURE_MOVE_PAGE_FACILITY_2) 432 #error Fast sync data mover facility requires Move page facility 433 #endif 434 435 #if defined(FEATURE_ESAME) \ 436 && defined(FEATURE_INTERPRETIVE_EXECUTION) \ 437 && !defined(_FEATURE_SIE) 438 #error ESA/390 SIE must be defined when defining ESAME SIE 439 #endif 440 441 #if defined(FEATURE_ENHANCED_DAT_FACILITY_2) \ 442 && !defined(FEATURE_ENHANCED_DAT_FACILITY) 443 #error Enhanced DAT facility 2 requires enhanced DAT facility 444 #endif 445 446 #if defined(FEATURE_MULTIPLE_CONTROLLED_DATA_SPACE) \ 447 && !defined(FEATURE_INTERPRETIVE_EXECUTION) 448 #error MCDS only supported with SIE 449 #endif 450 451 #if defined(FEATURE_PROTECTION_INTERCEPTION_CONTROL) \ 452 && !defined(FEATURE_INTERPRETIVE_EXECUTION) 453 #error Protection Interception Control only supported with SIE 454 #endif 455 456 #if defined(FEATURE_MULTIPLE_CONTROLLED_DATA_SPACE) \ 457 && !defined(FEATURE_STORAGE_KEY_ASSIST) 458 #error MCDS requires storage key assist 459 #endif 460 461 #if defined(FEATURE_SIE) && defined(FEATURE_ESAME) \ 462 && !defined(FEATURE_STORAGE_KEY_ASSIST) 463 #error ESAME SIE requires storage key assist 464 #endif 465 466 #if defined(FEATURE_STORAGE_KEY_ASSIST) \ 467 && !defined(FEATURE_INTERPRETIVE_EXECUTION) 468 #error Storage Key assist only supported with SIE 469 #endif 470 471 #if defined(FEATURE_REGION_RELOCATE) \ 472 && !defined(FEATURE_INTERPRETIVE_EXECUTION) 473 #error Region Relocate Facility only supported with SIE 474 #endif 475 476 #if defined(FEATURE_IO_ASSIST) \ 477 && !defined(_FEATURE_SIE) 478 #error I/O Assist Feature only supported with SIE 479 #endif 480 481 #if defined(FEATURE_IO_ASSIST) \ 482 && !defined(_FEATURE_REGION_RELOCATE) 483 #error Region Relocate Facility required for IO Assist 484 #endif 485 486 #if defined(FEATURE_EXTERNAL_INTERRUPT_ASSIST) \ 487 && !defined(_FEATURE_SIE) 488 #error External Interruption assist only supported with SIE 489 #endif 490 491 #if defined(FEATURE_EXPEDITED_SIE_SUBSET) \ 492 && !defined(_FEATURE_SIE) 493 #error Expedited SIE Subset only supported with SIE 494 #endif 495 496 #if defined(FEATURE_ASN_AND_LX_REUSE) 497 #if !defined(FEATURE_DUAL_ADDRESS_SPACE) 498 #error ASN-and-LX-Reuse requires Dual Address-Space feature 499 #endif 500 #if !defined(FEATURE_ESAME) 501 #error ASN-and-LX-Reuse is only supported with ESAME 502 #endif 503 #endif 504 505 #if defined(FEATURE_ESAME) \ 506 && defined(FEATURE_VECTOR_FACILITY) 507 #error Vector Facility not supported in ESAME mode 508 #endif 509 510 #if defined(FEATURE_BINARY_FLOATING_POINT) \ 511 && !defined(FEATURE_BASIC_FP_EXTENSIONS) 512 #error Binary floating point requires basic FP extensions 513 #endif 514 515 #if defined(FEATURE_DECIMAL_FLOATING_POINT) \ 516 && !defined(FEATURE_BASIC_FP_EXTENSIONS) 517 #error Decimal floating point requires basic FP extensions 518 #endif 519 520 #if defined(FEATURE_BASIC_FP_EXTENSIONS) \ 521 && !defined(FEATURE_HEXADECIMAL_FLOATING_POINT) 522 #error Basic FP extensions requires hexadecimal floating point 523 #endif 524 525 #if !defined(FEATURE_BASIC_FP_EXTENSIONS) 526 #if defined(FEATURE_HFP_EXTENSIONS) \ 527 || defined(FEATURE_FPS_EXTENSIONS) 528 #error Floating point extensions require basic FP extensions 529 #endif 530 #endif 531 532 #if defined(FEATURE_FPS_EXTENSIONS) \ 533 && !defined(FEATURE_BINARY_FLOATING_POINT) 534 #error FP support extensions requires binary floating point 535 #endif 536 537 #if defined(FEATURE_HFP_MULTIPLY_ADD_SUBTRACT) \ 538 && !defined(FEATURE_HEXADECIMAL_FLOATING_POINT) 539 #error HFP multiply add/subtract requires hexadecimal floating point 540 #endif 541 542 #if defined(FEATURE_HFP_UNNORMALIZED_EXTENSION) \ 543 && !defined(FEATURE_HEXADECIMAL_FLOATING_POINT) 544 #error HFP unnormalized extension requires hexadecimal floating point 545 #endif 546 547 #if defined(FEATURE_FLOATING_POINT_EXTENSION_FACILITY) \ 548 && !defined(FEATURE_BINARY_FLOATING_POINT) 549 #error Floating point extension facility requires binary floating point 550 #endif 551 552 #if defined(FEATURE_FLOATING_POINT_EXTENSION_FACILITY) \ 553 && !defined(FEATURE_DECIMAL_FLOATING_POINT) 554 #error Floating point extension facility requires decimal floating point 555 #endif 556 557 #if defined(FEATURE_PER2) && !defined(FEATURE_PER) 558 #error FEATURE_PER must be defined when using FEATURE_PER2 559 #endif 560 561 #if defined(FEATURE_PER3) && !defined(FEATURE_PER) 562 #error FEATURE_PER must be defined when using FEATURE_PER3 563 #endif 564 565 #if defined(FEATURE_COMPARE_AND_SWAP_AND_STORE_FACILITY_2) && !defined(FEATURE_COMPARE_AND_SWAP_AND_STORE) 566 #error FEATURE_COMPARE_AND_SWAP_AND_STORE must be defined when using FEATURE_COMPARE_AND_SWAP_AND_STORE_FACILITY_2 567 #endif 568 569 #if defined(FEATURE_INTEGRATED_3270_CONSOLE) && !defined(FEATURE_SYSTEM_CONSOLE) 570 #error Integrated 3270 console requires FEATURE_SYSTEM_CONSOLE 571 #endif 572 573 #if defined(FEATURE_INTEGRATED_ASCII_CONSOLE) && !defined(FEATURE_SYSTEM_CONSOLE) 574 #error Integrated ASCII console requires FEATURE_SYSTEM_CONSOLE 575 #endif 576 577 #if defined(FEATURE_VM_BLOCKIO) && !defined(FEATURE_EMULATE_VM) 578 #error VM Standard Block I/O DIAGNOSE 0x250 requires FEATURE_EMULATE_VM 579 #endif 580 581 #if defined(FEATURE_MESSAGE_SECURITY_ASSIST) 582 #if defined(_370) 583 #define _370_FEATURE_MESSAGE_SECURITY_ASSIST 584 #endif 585 #if defined(_390) 586 #define _390_FEATURE_MESSAGE_SECURITY_ASSIST 587 #endif 588 #if defined(_900) 589 #define _900_FEATURE_MESSAGE_SECURITY_ASSIST 590 #endif 591 #endif /*defined(FEATURE_MESSAGE_SECURITY_ASSIST)*/ 592 593 #if defined(FEATURE_STORE_FACILITY_LIST_EXTENDED) 594 #if !defined(FEATURE_STORE_FACILITY_LIST) 595 #error STFLE requires STFL (FEATURE_STORE_FACILITY_LIST_EXTENDED requires FEATURE_STORE_FACILITY_LIST) 596 #endif 597 #endif 598 599 #if defined(FEATURE_ACCESS_EXCEPTION_FETCH_STORE_INDICATION) /*810*/ 600 #if !defined(FEATURE_ENHANCED_SUPPRESSION_ON_PROTECTION) 601 #error Access-Exception Fetch/Store Indication facility requires Enhanced Suppression on Protection 602 #endif 603 #endif 604 605 #if defined(FEATURE_ENHANCED_SUPPRESSION_ON_PROTECTION) /*208*/ 606 #if !defined(FEATURE_SUPPRESSION_ON_PROTECTION) 607 #error Enhanced Suppression on Protection facility requires Suppression on Protection 608 #endif 609 #endif 610 611 #if defined(FEATURE_CPU_MEASUREMENT_COUNTER_FACILITY)\ 612 || defined(FEATURE_CPU_MEASUREMENT_SAMPLING_FACILITY) 613 #if !defined(FEATURE_LOAD_PROGRAM_PARAMETER_FACILITY) 614 #error CPU Measurement facilities requires Load Program Parameter facility 615 #endif 616 #endif 617 618 #endif /*!defined(FEATALL_CHECKALL)*/ 619 620 /* end of FEATCHK.H */ 621