aboutsummaryrefslogtreecommitdiffstats
path: root/demos/3rdparty/doom/dstrings.c
blob: e6abe88df9b490fdd6e7588b90d81e14ab2038b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// Emacs style mode select   -*- C++ -*- 
//-----------------------------------------------------------------------------
//
// $Id:$
//
// Copyright (C) 1993-1996 by id Software, Inc.
//
// This source is available for distribution and/or modification
// only under the terms of the DOOM Source Code License as
// published by id Software. All rights reserved.
//
// The source is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// FITNESS FOR A PARTICULAR PURPOSE. See the DOOM Source Code License
// for more details.
//
// $Log:$
//
// DESCRIPTION:
//	Globally defined strings.
// 
//-----------------------------------------------------------------------------

static const char
rcsid[] = "$Id: m_bbox.c,v 1.1 1997/02/03 22:45:10 b1 Exp $";


#ifdef __GNUG__
#pragma implementation "dstrings.h"
#endif
#include "dstrings.h"



char* endmsg[NUM_QUITMESSAGES+1]=
{
  // DOOM1
  QUITMSG,
  "please don't leave, there's more\ndemons to toast!",
  "let's beat it -- this is turning\ninto a bloodbath!",
  "i wouldn't leave if i were you.\ndos is much worse.",
  "you're trying to say you like dos\nbetter than me, right?",
  "don't leave yet -- there's a\ndemon around that corner!",
  "ya know, next time you come in here\ni'm gonna toast ya.",
  "go ahead and leave. see if i care."

  // QuitDOOM II messages
  "you want to quit?\nthen, thou hast lost an eighth!",
  "don't go now, there's a \ndimensional shambler waiting\nat the dos prompt!",
  "get outta here and go back\nto your boring programs.",
  "if i were your boss, i'd \n deathmatch ya in a minute!",
  "look, bud. you leave now\nand you forfeit your body count!",
  "just leave. when you come\nback, i'll be waiting with a bat.",
  "you're lucky i don't smack\nyou for thinking about leaving."

  // FinalDOOM?
  "fuck you, pussy!\nget the fuck out!",
  "you quit and i'll jizz\nin your cystholes!",
  "if you leave, i'll make\nthe lord drink my jizz.",
  "hey, ron! can we say\n'fuck' in the game?",
  "i'd leave: this is just\nmore monsters and levels.\nwhat a load.",
  "suck it down, asshole!\nyou're a fucking wimp!",
  "don't quit now! we're \nstill spending your money!",

  // Internal debug. Different style, too.
  "THIS IS NO MESSAGE!\nPage intentionally left blank."
};


  
a id='n398' href='#n398'>398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957
#
# For a description of the syntax of this configuration file,
# see Documentation/kbuild/kconfig-language.txt.
#

menu "X86 Processor Configuration"

config XENARCH
	string
	default i386

config MMU
	bool
	default y

config SBUS
	bool

config UID16
	bool
	default y

config GENERIC_ISA_DMA
	bool
	default y

config GENERIC_IOMAP
	bool
	default y

choice
	prompt "Processor family"
	default M686

config M386
	bool "386"
	---help---
	  This is the processor type of your CPU. This information is used for
	  optimizing purposes. In order to compile a kernel that can run on
	  all x86 CPU types (albeit not optimally fast), you can specify
	  "386" here.

	  The kernel will not necessarily run on earlier architectures than
	  the one you have chosen, e.g. a Pentium optimized kernel will run on
	  a PPro, but not necessarily on a i486.

	  Here are the settings recommended for greatest speed:
	  - "386" for the AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI
	  486DLC/DLC2, UMC 486SX-S and NexGen Nx586.  Only "386" kernels
	  will run on a 386 class machine.
	  - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or
	  SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S.
	  - "586" for generic Pentium CPUs lacking the TSC
	  (time stamp counter) register.
	  - "Pentium-Classic" for the Intel Pentium.
	  - "Pentium-MMX" for the Intel Pentium MMX.
	  - "Pentium-Pro" for the Intel Pentium Pro.
	  - "Pentium-II" for the Intel Pentium II or pre-Coppermine Celeron.
	  - "Pentium-III" for the Intel Pentium III or Coppermine Celeron.
	  - "Pentium-4" for the Intel Pentium 4 or P4-based Celeron.
	  - "K6" for the AMD K6, K6-II and K6-III (aka K6-3D).
	  - "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird).
	  - "Crusoe" for the Transmeta Crusoe series.
	  - "Efficeon" for the Transmeta Efficeon series.
	  - "Winchip-C6" for original IDT Winchip.
	  - "Winchip-2" for IDT Winchip 2.
	  - "Winchip-2A" for IDT Winchips with 3dNow! capabilities.
	  - "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3.
	  - "VIA C3-2 for VIA C3-2 "Nehemiah" (model 9 and above).

	  If you don't know what to do, choose "386".

config M486
	bool "486"
	help
	  Select this for a 486 series processor, either Intel or one of the
	  compatible processors from AMD, Cyrix, IBM, or Intel.  Includes DX,
	  DX2, and DX4 variants; also SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or
	  U5S.

config M586
	bool "586/K5/5x86/6x86/6x86MX"
	help
	  Select this for an 586 or 686 series processor such as the AMD K5,
	  the Cyrix 5x86, 6x86 and 6x86MX.  This choice does not
	  assume the RDTSC (Read Time Stamp Counter) instruction.

config M586TSC
	bool "Pentium-Classic"
	help
	  Select this for a Pentium Classic processor with the RDTSC (Read
	  Time Stamp Counter) instruction for benchmarking.

config M586MMX
	bool "Pentium-MMX"
	help
	  Select this for a Pentium with the MMX graphics/multimedia
	  extended instructions.

config M686
	bool "Pentium-Pro"
	help
	  Select this for Intel Pentium Pro chips.  This enables the use of
	  Pentium Pro extended instructions, and disables the init-time guard
	  against the f00f bug found in earlier Pentiums.

config MPENTIUMII
	bool "Pentium-II/Celeron(pre-Coppermine)"
	help
	  Select this for Intel chips based on the Pentium-II and
	  pre-Coppermine Celeron core.  This option enables an unaligned
	  copy optimization, compiles the kernel with optimization flags
	  tailored for the chip, and applies any applicable Pentium Pro
	  optimizations.

config MPENTIUMIII
	bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon"
	help
	  Select this for Intel chips based on the Pentium-III and
	  Celeron-Coppermine core.  This option enables use of some
	  extended prefetch instructions in addition to the Pentium II
	  extensions.

config MPENTIUMM
	bool "Pentium M"
	help
	  Select this for Intel Pentium M (not Pentium-4 M)
	  notebook chips.

config MPENTIUM4
	bool "Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon"
	help
	  Select this for Intel Pentium 4 chips.  This includes the
	  Pentium 4, P4-based Celeron and Xeon, and Pentium-4 M
	  (not Pentium M) chips.  This option enables compile flags
	  optimized for the chip, uses the correct cache shift, and
	  applies any applicable Pentium III optimizations.

config MK6
	bool "K6/K6-II/K6-III"
	help
	  Select this for an AMD K6-family processor.  Enables use of
	  some extended instructions, and passes appropriate optimization
	  flags to GCC.

config MK7
	bool "Athlon/Duron/K7"
	help
	  Select this for an AMD Athlon K7-family processor.  Enables use of
	  some extended instructions, and passes appropriate optimization
	  flags to GCC.

config MK8
	bool "Opteron/Athlon64/Hammer/K8"
	help
	  Select this for an AMD Opteron or Athlon64 Hammer-family processor.  Enables
	  use of some extended instructions, and passes appropriate optimization
	  flags to GCC.

config MCRUSOE
	bool "Crusoe"
	help
	  Select this for a Transmeta Crusoe processor.  Treats the processor
	  like a 586 with TSC, and sets some GCC optimization flags (like a
	  Pentium Pro with no alignment requirements).

config MEFFICEON
	bool "Efficeon"
	help
	  Select this for a Transmeta Efficeon processor.

config MWINCHIPC6
	bool "Winchip-C6"
	help
	  Select this for an IDT Winchip C6 chip.  Linux and GCC
	  treat this chip as a 586TSC with some extended instructions
	  and alignment requirements.

config MWINCHIP2
	bool "Winchip-2"
	help
	  Select this for an IDT Winchip-2.  Linux and GCC
	  treat this chip as a 586TSC with some extended instructions
	  and alignment requirements.

config MWINCHIP3D
	bool "Winchip-2A/Winchip-3"
	help
	  Select this for an IDT Winchip-2A or 3.  Linux and GCC
	  treat this chip as a 586TSC with some extended instructions
	  and alignment reqirements.  Also enable out of order memory
	  stores for this CPU, which can increase performance of some
	  operations.

config MCYRIXIII
	bool "CyrixIII/VIA-C3"
	help
	  Select this for a Cyrix III or C3 chip.  Presently Linux and GCC
	  treat this chip as a generic 586. Whilst the CPU is 686 class,
	  it lacks the cmov extension which gcc assumes is present when
	  generating 686 code.
	  Note that Nehemiah (Model 9) and above will not boot with this
	  kernel due to them lacking the 3DNow! instructions used in earlier
	  incarnations of the CPU.

config MVIAC3_2
	bool "VIA C3-2 (Nehemiah)"
	help
	  Select this for a VIA C3 "Nehemiah". Selecting this enables usage
	  of SSE and tells gcc to treat the CPU as a 686.
	  Note, this kernel will not boot on older (pre model 9) C3s.

endchoice

config X86_GENERIC
       bool "Generic x86 support"
       help
	  Instead of just including optimizations for the selected
	  x86 variant (e.g. PII, Crusoe or Athlon), include some more
	  generic optimizations as well. This will make the kernel
	  perform better on x86 CPUs other than that selected.

	  This is really intended for distributors who need more
	  generic optimizations.

#
# Define implied options from the CPU selection here
#
config X86_CMPXCHG
	bool
	depends on !M386
	default y

config X86_XADD
	bool
	depends on !M386
	default y

config X86_L1_CACHE_SHIFT
	int
	default "7" if MPENTIUM4 || X86_GENERIC
	default "4" if X86_ELAN || M486 || M386
	default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2
	default "6" if MK7 || MK8 || MPENTIUMM

config RWSEM_GENERIC_SPINLOCK
	bool
	depends on M386
	default y

config RWSEM_XCHGADD_ALGORITHM
	bool
	depends on !M386
	default y

config X86_PPRO_FENCE
	bool
	depends on M686 || M586MMX || M586TSC || M586 || M486 || M386
	default y

config X86_F00F_BUG
	bool
	depends on M586MMX || M586TSC || M586 || M486 || M386
	default y

config X86_WP_WORKS_OK
	bool
	depends on !M386
	default y

config X86_INVLPG
	bool
	depends on !M386
	default y

config X86_BSWAP
	bool
	depends on !M386
	default y

config X86_POPAD_OK
	bool
	depends on !M386
	default y

config X86_ALIGNMENT_16
	bool
	depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || X86_ELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2
	default y

config X86_GOOD_APIC
	bool
	depends on MK7 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || MK8 || MEFFICEON
	default y

config X86_INTEL_USERCOPY
	bool
	depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7 || MEFFICEON
	default y

config X86_USE_PPRO_CHECKSUM
	bool
	depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MEFFICEON
	default y

config X86_USE_3DNOW
	bool
	depends on MCYRIXIII || MK7
	default y

config X86_OOSTORE
	bool
	depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6) && MTRR
	default y

config HPET_TIMER
	bool
	default n
#config HPET_TIMER
#	bool "HPET Timer Support"
#	help
#	  This enables the use of the HPET for the kernel's internal timer.
#	  HPET is the next generation timer replacing legacy 8254s.
#	  You can safely choose Y here.  However, HPET will only be
#	  activated if the platform and the BIOS support this feature.
#	  Otherwise the 8254 will be used for timing services.
#
#	  Choose N to continue using the legacy 8254 timer.

config HPET_EMULATE_RTC
	def_bool HPET_TIMER && RTC=y

config SMP
	bool
	default n
#config SMP
#	bool "Symmetric multi-processing support"
#	---help---
#	  This enables support for systems with more than one CPU. If you have
#	  a system with only one CPU, like most personal computers, say N. If
#	  you have a system with more than one CPU, say Y.
#
#	  If you say N here, the kernel will run on single and multiprocessor
#	  machines, but will use only one CPU of a multiprocessor machine. If
#	  you say Y here, the kernel will run on many, but not all,
#	  singleprocessor machines. On a singleprocessor machine, the kernel
#	  will run faster if you say N here.
#
#	  Note that if you say Y here and choose architecture "586" or
#	  "Pentium" under "Processor family", the kernel will not work on 486
#	  architectures. Similarly, multiprocessor kernels for the "PPro"
#	  architecture may not work on all Pentium based boards.
#
#	  People using multiprocessor machines who say Y here should also say
#	  Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
#	  Management" code will be disabled if you say Y here.
#
#	  See also the <file:Documentation/smp.txt>,
#	  <file:Documentation/i386/IO-APIC.txt>,
#	  <file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
#	  <http://www.tldp.org/docs.html#howto>.
#
#	  If you don't know what to do here, say N.

config NR_CPUS
	int "Maximum number of CPUs (2-255)"
	range 2 255
	depends on SMP
	default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000
	default "8"
	help
	  This allows you to specify the maximum number of CPUs which this
	  kernel will support.  The maximum supported value is 255 and the
	  minimum value which makes sense is 2.

	  This is purely to save memory - each supported CPU adds
	  approximately eight kilobytes to the kernel image.

config SCHED_SMT
	bool "SMT (Hyperthreading) scheduler support"
	depends on SMP
	default off
	help
	  SMT scheduler support improves the CPU scheduler's decision making
	  when dealing with Intel Pentium 4 chips with HyperThreading at a
	  cost of slightly increased overhead in some places. If unsure say
	  N here.

config PREEMPT
	bool "Preemptible Kernel"
	help
	  This option reduces the latency of the kernel when reacting to
	  real-time or interactive events by allowing a low priority process to
	  be preempted even if it is in kernel mode executing a system call.
	  This allows applications to run more reliably even when the system is
	  under load.

	  Say Y here if you are building a kernel for a desktop, embedded
	  or real-time system.  Say N if you are unsure.

#config X86_TSC
#	 bool
#	depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2) && !X86_NUMAQ
#	 default y

#config X86_MCE
#	 bool "Machine Check Exception"
#	depends on !X86_VOYAGER
#	 ---help---
#	   Machine Check Exception support allows the processor to notify the
#	   kernel if it detects a problem (e.g. overheating, component failure).
#	   The action the kernel takes depends on the severity of the problem,
#	   ranging from a warning message on the console, to halting the machine.
#	   Your processor must be a Pentium or newer to support this - check the
#	   flags in /proc/cpuinfo for mce.  Note that some older Pentium systems
#	   have a design flaw which leads to false MCE events - hence MCE is
#	   disabled on all P5 processors, unless explicitly enabled with "mce"
#	   as a boot argument.  Similarly, if MCE is built in and creates a
#	   problem on some new non-standard machine, you can boot with "nomce"
#	   to disable it.  MCE support simply ignores non-MCE processors like
#	   the 386 and 486, so nearly everyone can say Y here.

#config X86_MCE_NONFATAL
#	tristate "Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4"
#	 depends on X86_MCE
#	 help
#	   Enabling this feature starts a timer that triggers every 5 seconds which
#	   will look at the machine check registers to see if anything happened.
#	   Non-fatal problems automatically get corrected (but still logged).
#	   Disable this if you don't want to see these messages.
#	   Seeing the messages this option prints out may be indicative of dying hardware,
#	   or out-of-spec (ie, overclocked) hardware.
#	   This option only does something on certain CPUs.
#	   (AMD Athlon/Duron and Intel Pentium 4)

#config X86_MCE_P4THERMAL
#	 bool "check for P4 thermal throttling interrupt."
#	 depends on X86_MCE && (X86_UP_APIC || SMP)
#	 help
#	   Enabling this feature will cause a message to be printed when the P4
#	   enters thermal throttling.

config MICROCODE
	 tristate "/dev/cpu/microcode - Intel IA32 CPU microcode support"
	 depends on XEN_PRIVILEGED_GUEST
	 ---help---
	   If you say Y here and also to "/dev file system support" in the
	   'File systems' section, you will be able to update the microcode on
	   Intel processors in the IA32 family, e.g. Pentium Pro, Pentium II,
	   Pentium III, Pentium 4, Xeon etc.  You will obviously need the
	   actual microcode binary data itself which is not shipped with the
	   Linux kernel.

	   For latest news and information on obtaining all the required
	   ingredients for this driver, check:
	   <http://www.urbanmyth.org/microcode/>.

	   To compile this driver as a module, choose M here: the
	   module will be called microcode.

#config X86_MSR
#	 tristate "/dev/cpu/*/msr - Model-specific register support"
#	 help
#	   This device gives privileged processes access to the x86
#	   Model-Specific Registers (MSRs).  It is a character device with
#	   major 202 and minors 0 to 31 for /dev/cpu/0/msr to /dev/cpu/31/msr.
#	   MSR accesses are directed to a specific CPU on multi-processor
#	   systems.

config X86_CPUID
	tristate "/dev/cpu/*/cpuid - CPU information support"
	help
	  This device gives processes access to the x86 CPUID instruction to
	  be executed on a specific processor.  It is a character device
	  with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to
	  /dev/cpu/31/cpuid.

source "drivers/firmware/Kconfig"

choice
	prompt "High Memory Support"
	default NOHIGHMEM

config NOHIGHMEM
	bool "off"
	---help---
	  Linux can use up to 64 Gigabytes of physical memory on x86 systems.
	  However, the address space of 32-bit x86 processors is only 4
	  Gigabytes large. That means that, if you have a large amount of
	  physical memory, not all of it can be "permanently mapped" by the
	  kernel. The physical memory that's not permanently mapped is called
	  "high memory".

	  If you are compiling a kernel which will never run on a machine with
	  more than 1 Gigabyte total physical RAM, answer "off" here (default
	  choice and suitable for most users). This will result in a "3GB/1GB"
	  split: 3GB are mapped so that each process sees a 3GB virtual memory
	  space and the remaining part of the 4GB virtual memory space is used
	  by the kernel to permanently map as much physical memory as
	  possible.

	  If the machine has between 1 and 4 Gigabytes physical RAM, then
	  answer "4GB" here.

	  If more than 4 Gigabytes is used then answer "64GB" here. This
	  selection turns Intel PAE (Physical Address Extension) mode on.
	  PAE implements 3-level paging on IA32 processors. PAE is fully
	  supported by Linux, PAE mode is implemented on all recent Intel
	  processors (Pentium Pro and better). NOTE: If you say "64GB" here,
	  then the kernel will not boot on CPUs that don't support PAE!

	  The actual amount of total physical memory will either be
	  auto detected or can be forced by using a kernel command line option
	  such as "mem=256M". (Try "man bootparam" or see the documentation of
	  your boot loader (lilo or loadlin) about how to pass options to the
	  kernel at boot time.)

	  If unsure, say "off".

config HIGHMEM4G
	bool "4GB"
	help
	  Select this if you have a 32-bit processor and between 1 and 4
	  gigabytes of physical RAM.

#config HIGHMEM64G
#	bool "64GB"
#	help
#	  Select this if you have a 32-bit processor and more than 4
#	  gigabytes of physical RAM.

endchoice

config HIGHMEM
	bool
	depends on HIGHMEM64G || HIGHMEM4G
	default y

config X86_PAE
	bool
	depends on HIGHMEM64G
	default y

# Common NUMA Features
config NUMA
	bool "Numa Memory Allocation and Scheduler Support"
	depends on SMP && HIGHMEM64G && (X86_NUMAQ || X86_GENERICARCH || (X86_SUMMIT && ACPI))
	default n if X86_PC
	default y if (X86_NUMAQ || X86_SUMMIT)

# Need comments to help the hapless user trying to turn on NUMA support
comment "NUMA (NUMA-Q) requires SMP, 64GB highmem support"
	depends on X86_NUMAQ && (!HIGHMEM64G || !SMP)

comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI"
	depends on X86_SUMMIT && (!HIGHMEM64G || !ACPI)

config DISCONTIGMEM
	bool
	depends on NUMA
	default y

config HAVE_ARCH_BOOTMEM_NODE
	bool
	depends on NUMA
	default y

#config HIGHPTE
#	bool "Allocate 3rd-level pagetables from highmem"
#	depends on HIGHMEM4G || HIGHMEM64G
#	help
#	  The VM uses one page table entry for each page of physical memory.
#	  For systems with a lot of RAM, this can be wasteful of precious
#	  low memory.  Setting this option will put user-space page table
#	  entries in high memory.

config MTRR
	bool
	depends on XEN_PRIVILEGED_GUEST
	default y

#config MTRR
#	 bool "MTRR (Memory Type Range Register) support"
#	 ---help---
#	   On Intel P6 family processors (Pentium Pro, Pentium II and later)
#	   the Memory Type Range Registers (MTRRs) may be used to control
#	   processor access to memory ranges. This is most useful if you have
#	   a video (VGA) card on a PCI or AGP bus. Enabling write-combining
#	   allows bus write transfers to be combined into a larger transfer
#	   before bursting over the PCI/AGP bus. This can increase performance
#	   of image write operations 2.5 times or more. Saying Y here creates a
#	   /proc/mtrr file which may be used to manipulate your processor's
#	   MTRRs. Typically the X server should use this.
#
#	   This code has a reasonably generic interface so that similar
#	   control registers on other processors can be easily supported
#	   as well:
#
#	   The Cyrix 6x86, 6x86MX and M II processors have Address Range
#	   Registers (ARRs) which provide a similar functionality to MTRRs. For
#	   these, the ARRs are used to emulate the MTRRs.
#	   The AMD K6-2 (stepping 8 and above) and K6-3 processors have two
#	   MTRRs. The Centaur C6 (WinChip) has 8 MCRs, allowing
#	   write-combining. All of these processors are supported by this code
#	   and it makes sense to say Y here if you have one of them.
#
#	   Saying Y here also fixes a problem with buggy SMP BIOSes which only
#	   set the MTRRs for the boot CPU and not for the secondary CPUs. This
#	   can lead to all sorts of problems, so it's good to say Y here.
#
#	   You can safely say Y even if your machine doesn't have MTRRs, you'll
#	   just add about 9 KB to your kernel.
#
#	   See <file:Documentation/mtrr.txt> for more information.

config IRQBALANCE
 	bool "Enable kernel irq balancing"
	depends on SMP && X86_IO_APIC
	default y
	help
 	  The default yes will allow the kernel to do irq load balancing.
	  Saying no will keep the kernel from doing irq load balancing.

config HAVE_DEC_LOCK
	bool
	depends on (SMP || PREEMPT) && X86_CMPXCHG
	default y

# turning this on wastes a bunch of space.
# Summit needs it only when NUMA is on
config BOOT_IOREMAP
	bool
	depends on (((X86_SUMMIT || X86_GENERICARCH) && NUMA) || (X86 && EFI))
	default y

config REGPARM
	bool "Use register arguments (EXPERIMENTAL)"
	depends on EXPERIMENTAL
	default n
	help
	Compile the kernel with -mregparm=3. This uses an different ABI
	and passes the first three arguments of a function call in registers.
	This will probably break binary only modules.

	This feature is only enabled for gcc-3.0 and later - earlier compilers
	generate incorrect output with certain kernel constructs when
	-mregparm=3 is used.


if XEN_PHYSDEV_ACCESS

menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"

config X86_VISWS_APIC
	bool
	depends on X86_VISWS
	default y

config X86_LOCAL_APIC
	bool
	depends on (X86_VISWS || SMP) && !X86_VOYAGER
	default y

config X86_IO_APIC
	bool
	depends on SMP && !(X86_VISWS || X86_VOYAGER)
	default y

config PCI
	bool "PCI support" if !X86_VISWS
	depends on !X86_VOYAGER
	default y if X86_VISWS
	help
	  Find out whether you have a PCI motherboard. PCI is the name of a
	  bus system, i.e. the way the CPU talks to the other stuff inside
	  your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or
	  VESA. If you have PCI, say Y, otherwise N.

	  The PCI-HOWTO, available from
	  <http://www.tldp.org/docs.html#howto>, contains valuable
	  information about which PCI hardware does work under Linux and which
	  doesn't.

#choice
#	prompt "PCI access mode"
#	depends on PCI && !X86_VISWS
#	default PCI_GOANY
#	---help---
#	  On PCI systems, the BIOS can be used to detect the PCI devices and
#	  determine their configuration. However, some old PCI motherboards
#	  have BIOS bugs and may crash if this is done. Also, some embedded
#	  PCI-based systems don't have any BIOS at all. Linux can also try to
#	  detect the PCI hardware directly without using the BIOS.
#
#	  With this option, you can specify how Linux should detect the
#	  PCI devices. If you choose "BIOS", the BIOS will be used,
#	  if you choose "Direct", the BIOS won't be used, and if you
#	  choose "MMConfig", then PCI Express MMCONFIG will be used.
#	  If you choose "Any", the kernel will try MMCONFIG, then the
#	  direct access method and falls back to the BIOS if that doesn't
#	  work. If unsure, go with the default, which is "Any".
#
#config PCI_GOBIOS
#	bool "BIOS"
#
#config PCI_GOMMCONFIG
#	bool "MMConfig"
#
#config PCI_GODIRECT
#	bool "Direct"
#
#config PCI_GOANY
#	bool "Any"
#
#endchoice
#
#config PCI_BIOS
#	bool
#	depends on !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY)
#	default y
#
#config PCI_DIRECT
#	bool
# 	depends on PCI && ((PCI_GODIRECT || PCI_GOANY) || X86_VISWS)
#	default y

config PCI_DIRECT
	bool
 	depends on PCI
	default y

source "drivers/pci/Kconfig"

config ISA
	bool "ISA support"
	depends on !(X86_VOYAGER || X86_VISWS)
	help
	  Find out whether you have ISA slots on your motherboard.  ISA is the
	  name of a bus system, i.e. the way the CPU talks to the other stuff
	  inside your box.  Other bus systems are PCI, EISA, MicroChannel
	  (MCA) or VESA.  ISA is an older system, now being displaced by PCI;
	  newer boards don't support it.  If you have ISA, say Y, otherwise N.

config EISA
	bool "EISA support"
	depends on ISA
	---help---
	  The Extended Industry Standard Architecture (EISA) bus was
	  developed as an open alternative to the IBM MicroChannel bus.

	  The EISA bus provided some of the features of the IBM MicroChannel
	  bus while maintaining backward compatibility with cards made for
	  the older ISA bus.  The EISA bus saw limited use between 1988 and
	  1995 when it was made obsolete by the PCI bus.

	  Say Y here if you are building a kernel for an EISA-based machine.

	  Otherwise, say N.

source "drivers/eisa/Kconfig"

config MCA
	bool "MCA support"
	depends on !(X86_VISWS || X86_VOYAGER)
	help
	  MicroChannel Architecture is found in some IBM PS/2 machines and
	  laptops.  It is a bus system similar to PCI or ISA. See
	  <file:Documentation/mca.txt> (and especially the web page given
	  there) before attempting to build an MCA bus kernel.

config MCA
	depends on X86_VOYAGER
	default y if X86_VOYAGER

source "drivers/mca/Kconfig"

config SCx200
	tristate "NatSemi SCx200 support"
	depends on !X86_VOYAGER
	help
	  This provides basic support for the National Semiconductor SCx200
	  processor.  Right now this is just a driver for the GPIO pins.

	  If you don't know what to do here, say N.

	  This support is also available as a module.  If compiled as a
	  module, it will be called scx200.

source "drivers/pcmcia/Kconfig"

source "drivers/pci/hotplug/Kconfig"

endmenu

endif

menu "Kernel hacking"

config DEBUG_KERNEL
	bool "Kernel debugging"
	help
	  Say Y here if you are developing drivers or trying to debug and
	  identify kernel problems.

config EARLY_PRINTK
	bool "Early printk" if EMBEDDED
	default y
	help
	  Write kernel log output directly into the VGA buffer or to a serial
	  port.

	  This is useful for kernel debugging when your machine crashes very
	  early before the console code is initialized. For normal operation
	  it is not recommended because it looks ugly and doesn't cooperate
	  with klogd/syslogd or the X server. You should normally N here,
	  unless you want to debug such a crash.

config DEBUG_STACKOVERFLOW
	bool "Check for stack overflows"
	depends on DEBUG_KERNEL

config DEBUG_STACK_USAGE
	bool "Stack utilization instrumentation"
	depends on DEBUG_KERNEL
	help
	  Enables the display of the minimum amount of free stack which each
	  task has ever had available in the sysrq-T and sysrq-P debug output.

	  This option will slow down process creation somewhat.

config DEBUG_SLAB
	bool "Debug memory allocations"
	depends on DEBUG_KERNEL
	help
	  Say Y here to have the kernel do limited verification on memory
	  allocation as well as poisoning memory on free to catch use of freed
	  memory.

config MAGIC_SYSRQ
	bool "Magic SysRq key"
	depends on DEBUG_KERNEL
	help
	  If you say Y here, you will have some control over the system even
	  if the system crashes for example during kernel debugging (e.g., you
	  will be able to flush the buffer cache to disk, reboot the system
	  immediately or dump some status information). This is accomplished
	  by pressing various keys while holding SysRq (Alt+PrintScreen). It
	  also works on a serial console (on PC hardware at least), if you
	  send a BREAK and then within 5 seconds a command keypress. The
	  keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
	  unless you really know what this hack does.

config DEBUG_SPINLOCK
	bool "Spinlock debugging"
	depends on DEBUG_KERNEL
	help
	  Say Y here and build SMP to catch missing spinlock initialization
	  and certain other kinds of spinlock errors commonly made.  This is
	  best used in conjunction with the NMI watchdog so that spinlock
	  deadlocks are also debuggable.

config DEBUG_PAGEALLOC
	bool "Page alloc debugging"
	depends on DEBUG_KERNEL
	help
	  Unmap pages from the kernel linear mapping after free_pages().
	  This results in a large slowdown, but helps to find certain types
	  of memory corruptions.

config DEBUG_HIGHMEM
	bool "Highmem debugging"
	depends on DEBUG_KERNEL && HIGHMEM
	help
	  This options enables addition error checking for high memory systems.
	  Disable for production systems.

config DEBUG_INFO
	bool "Compile the kernel with debug info"
	depends on DEBUG_KERNEL
	help
          If you say Y here the resulting kernel image will include
	  debugging info resulting in a larger kernel image.
	  Say Y here only if you plan to use gdb to debug the kernel.
	  If you don't debug the kernel, you can say N.
	  
config DEBUG_SPINLOCK_SLEEP
	bool "Sleep-inside-spinlock checking"
	help
	  If you say Y here, various routines which may sleep will become very
	  noisy if they are called with a spinlock held.	

config FRAME_POINTER
	bool "Compile the kernel with frame pointers"
	help
	  If you say Y here the resulting kernel image will be slightly larger
	  and slower, but it will give very useful debugging information.
	  If you don't debug the kernel, you can say N, but we may not be able
	  to solve problems without frame pointers.

config 4KSTACKS
	bool "Use 4Kb for kernel stacks instead of 8Kb"
	help
	  If you say Y here the kernel will use a 4Kb stacksize for the
	  kernel stack attached to each process/thread. This facilitates
	  running more threads on a system and also reduces the pressure
	  on the VM subsystem for higher order allocations. This option
	  will also use IRQ stacks to compensate for the reduced stackspace.

config X86_FIND_SMP_CONFIG
	bool
	depends on X86_LOCAL_APIC || X86_VOYAGER
	default y

config X86_MPPARSE
	bool
	depends on X86_LOCAL_APIC && !X86_VISWS
	default y

endmenu

#
# Use the generic interrupt handling code in kernel/irq/:
#
config GENERIC_HARDIRQS
	bool
	default y

config GENERIC_IRQ_PROBE
	bool
	default y

config X86_SMP
	bool
	depends on SMP && !X86_VOYAGER
	default y

config X86_HT
	bool
	depends on SMP && !(X86_VISWS || X86_VOYAGER)
	default y

config X86_BIOS_REBOOT
	bool
	depends on !(X86_VISWS || X86_VOYAGER)
	default y

config X86_TRAMPOLINE
	bool
	depends on X86_SMP || (X86_VOYAGER && SMP)
	default y

config PC
	bool
	depends on X86 && !EMBEDDED
	default y

endmenu