config CCW
	bool
	default y

source "drivers/block/Kconfig"

source "drivers/md/Kconfig"


menu "Character device drivers"

config UNIX98_PTYS
	bool "Unix98 PTY support"
	---help---
	  A pseudo terminal (PTY) is a software device consisting of two
	  halves: a master and a slave. The slave device behaves identical to
	  a physical terminal; the master device is used by a process to
	  read data from and write data to the slave, thereby emulating a
	  terminal. Typical programs for the master side are telnet servers
	  and xterms.

	  Linux has traditionally used the BSD-like names /dev/ptyxx for
	  masters and /dev/ttyxx for slaves of pseudo terminals. This scheme
	  has a number of problems. The GNU C library glibc 2.1 and later,
	  however, supports the Unix98 naming standard: in order to acquire a
	  pseudo terminal, a process opens /dev/ptmx; the number of the pseudo
	  terminal is then made available to the process and the pseudo
	  terminal slave can be accessed as /dev/pts/<number>. What was
	  traditionally /dev/ttyp2 will then be /dev/pts/2, for example.

	  The entries in /dev/pts/ are created on the fly by a virtual
	  file system; therefore, if you say Y here you should say Y to
	  "/dev/pts file system for Unix98 PTYs" as well.

	  If you want to say Y here, you need to have the C library glibc 2.1
	  or later (equal to libc-6.1, check with "ls -l /lib/libc.so.*").
	  Read the instructions in <file:Documentation/Changes> pertaining to
	  pseudo terminals. It's safe to say N.

config UNIX98_PTY_COUNT
	int "Maximum number of Unix98 PTYs in use (0-2048)"
	depends on UNIX98_PTYS
	default "256"
	help
	  The maximum number of Unix98 PTYs that can be used at any one time.
	  The default is 256, and should be enough for desktop systems. Server
	  machines which support incoming telnet/rlogin/ssh connections and/or
	  serve several X terminals may want to increase this: every incoming
	  connection and every xterm uses up one PTY.

	  When not in use, each additional set of 256 PTYs occupy
	  approximately 8 KB of kernel memory on 32-bit architectures.

source "drivers/char/watchdog/Kconfig"

comment "S/390 character device drivers"

config TN3270
	tristate "Support for locally attached 3270 terminals"
	help
	  Include support for IBM 3270 terminals.

config TN3270_TTY
	tristate "Support for tty input/output on 3270 terminals"
	depends on TN3270
	help
	  Include support for using an IBM 3270 terminal as a Linux tty.

config TN3270_FS
	tristate "Support for fullscreen applications on 3270 terminals"
	depends on TN3270
	help
	  Include support for fullscreen applications on an IBM 3270 terminal.

config TN3270_CONSOLE
	bool "Support for console on 3270 terminal"
	depends on TN3270=y && TN3270_TTY=y
	help
	  Include support for using an IBM 3270 terminal as a Linux system
	  console.  Available only if 3270 support is compiled in statically.

config TN3215
	bool "Support for 3215 line mode terminal"
	help
	  Include support for IBM 3215 line-mode terminals.

config TN3215_CONSOLE
	bool "Support for console on 3215 line mode terminal"
	depends on TN3215
	help
	  Include support for using an IBM 3215 line-mode terminal as a
	  Linux system console.

config CCW_CONSOLE
 	bool
 	depends on TN3215_CONSOLE || TN3270_CONSOLE
 	default y
 
config SCLP
	bool "Support for SCLP"
	help
	  Include support for the SCLP interface to the service element.

config SCLP_TTY
	bool "Support for SCLP line mode terminal"
	depends on SCLP
	help
	  Include support for IBM SCLP line-mode terminals.

config SCLP_CONSOLE
	bool "Support for console on SCLP line mode terminal"
	depends on SCLP_TTY
	help
	  Include support for using an IBM HWC line-mode terminal as the Linux
	  system console.

config SCLP_VT220_TTY
	bool "Support for SCLP VT220-compatible terminal"
	depends on SCLP
	help
	  Include support for an IBM SCLP VT220-compatible terminal.

config SCLP_VT220_CONSOLE
	bool "Support for console on SCLP VT220-compatible terminal"
	depends on SCLP_VT220_TTY
	help
	  Include support for using an IBM SCLP VT220-compatible terminal as a
	  Linux system console.

config SCLP_CPI
	tristate "Control-Program Identification"
	depends on SCLP
	help
	  This option enables the hardware console interface for system
	  identification. This is commonly used for workload management and
	  gives you a nice name for the system on the service element.
	  Please select this option as a module since built-in operation is
	  completely untested.
	  You should only select this option if you know what you are doing,
	  need this feature and intend to run your kernel in LPAR.

config S390_TAPE
	tristate "S/390 tape device support"
	help
	  Select this option if you want to access channel-attached tape
	  devices on IBM S/390 or zSeries.
	  If you select this option you will also want to select at
	  least one of the tape interface options and one of the tape
	  hardware options in order to access a tape device.
	  This option is also available as a module. The module will be
	  called tape390 and include all selected interfaces and
	  hardware drivers.

comment "S/390 tape interface support"
	depends on S390_TAPE

config S390_TAPE_BLOCK
	bool "Support for tape block devices"
	depends on S390_TAPE
	help
	  Select this option if you want to access your channel-attached tape
	  devices using the block device interface.  This interface is similar
	  to CD-ROM devices on other platforms.  The tapes can only be
	  accessed read-only when using this interface.  Have a look at
	  <file:Documentation/s390/TAPE> for further information about creating
	  volumes for and using this interface.  It is safe to say "Y" here.

comment "S/390 tape hardware support"
	depends on S390_TAPE

config S390_TAPE_34XX
	tristate "Support for 3480/3490 tape hardware"
	depends on S390_TAPE
	help
	  Select this option if you want to access IBM 3480/3490 magnetic
	  tape subsystems and 100% compatibles.
	  It is safe to say "Y" here.



config VMLOGRDR
	tristate "Support for the z/VM recording system services (VM only)"
	depends on IUCV
	help
	  Select this option if you want to be able to receive records collected
	  by the z/VM recording system services, eg. from *LOGREC, *ACCOUNT or
	  *SYMPTOM.
	  This driver depends on the IUCV support driver.

config MONREADER
	tristate "API for reading z/VM monitor service records"
	depends on IUCV
	help
	  Character device driver for reading z/VM monitor service records

endmenu

menu "Cryptographic devices"

config Z90CRYPT
	tristate "Support for PCI-attached cryptographic adapters"
        default "m"
        help
	  Select this option if you want to use a PCI-attached cryptographic
	  adapter like the PCI Cryptographic Accelerator (PCICA) or the PCI
	  Cryptographic Coprocessor (PCICC).  This option is also available
	  as a module called z90crypt.ko.

endmenu
