menu "Character Devices"

config STDERR_CONSOLE
	bool "stderr console"
	default y
	help
	  console driver which dumps all printk messages to stderr.

config STDIO_CONSOLE
	bool
	default y

config SSL
	bool "Virtual serial line"
	help
          The User-Mode Linux environment allows you to create virtual serial
          lines on the UML that are usually made to show up on the host as
          ttys or ptys.

          See <http://user-mode-linux.sourceforge.net/old/input.html> for more
          information and command line examples of how to use this facility.

          Unless you have a specific reason for disabling this, say Y.

config NULL_CHAN
	bool "null channel support"
	help
          This option enables support for attaching UML consoles and serial
          lines to a device similar to /dev/null.  Data written to it disappears
          and there is never any data to be read.

config PORT_CHAN
	bool "port channel support"
	help
          This option enables support for attaching UML consoles and serial
          lines to host portals.  They may be accessed with 'telnet <host>
          <port number>'.  Any number of consoles and serial lines may be
          attached to a single portal, although what UML device you get when
          you telnet to that portal will be unpredictable.
          It is safe to say 'Y' here.

config PTY_CHAN
	bool "pty channel support"
	help
          This option enables support for attaching UML consoles and serial
          lines to host pseudo-terminals.  Access to both traditional
          pseudo-terminals (/dev/pty*) and pts pseudo-terminals are controlled
          with this option.  The assignment of UML devices to host devices
          will be announced in the kernel message log.
          It is safe to say 'Y' here.

config TTY_CHAN
	bool "tty channel support"
	help
          This option enables support for attaching UML consoles and serial
          lines to host terminals.  Access to both virtual consoles
          (/dev/tty*) and the slave side of pseudo-terminals (/dev/ttyp* and
          /dev/pts/*) are controlled by this option.
          It is safe to say 'Y' here.

config XTERM_CHAN
	bool "xterm channel support"
	help
          This option enables support for attaching UML consoles and serial
          lines to xterms.  Each UML device so assigned will be brought up in
          its own xterm.
          It is safe to say 'Y' here.

config NOCONFIG_CHAN
	bool
	default !(XTERM_CHAN && TTY_CHAN && PTY_CHAN && PORT_CHAN && NULL_CHAN)

config CON_ZERO_CHAN
	string "Default main console channel initialization"
	default "fd:0,fd:1"
	help
          This is the string describing the channel to which the main console
          will be attached by default.  This value can be overridden from the
          command line.  The default value is "fd:0,fd:1", which attaches the
          main console to stdin and stdout.
          It is safe to leave this unchanged.

config CON_CHAN
	string "Default console channel initialization"
	default "xterm"
	help
          This is the string describing the channel to which all consoles
          except the main console will be attached by default.  This value can
          be overridden from the command line.  The default value is "xterm",
          which brings them up in xterms.
          It is safe to leave this unchanged, although you may wish to change
          this if you expect the UML that you build to be run in environments
          which don't have X or xterm available.

config SSL_CHAN
	string "Default serial line channel initialization"
	default "pty"
	help
          This is the string describing the channel to which the serial lines
          will be attached by default.  This value can be overridden from the
          command line.  The default value is "pty", which attaches them to
          traditional pseudo-terminals.
          It is safe to leave this unchanged, although you may wish to change
          this if you expect the UML that you build to be run in environments
          which don't have a set of /dev/pty* devices.

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.

	  All modern Linux systems use the Unix98 ptys.  Say Y unless
	  you're on an embedded system and want to conserve memory.

config LEGACY_PTYS
	bool "Legacy (BSD) PTY support"
	default y
	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, including
	  security.  This option enables these legacy devices; on most
	  systems, it is safe to say N.

config RAW_DRIVER
        tristate "RAW driver (/dev/raw/rawN) (OBSOLETE)"
        help
          The raw driver permits block devices to be bound to /dev/raw/rawN.
          Once bound, I/O against /dev/raw/rawN uses efficient zero-copy I/O.
          See the raw(8) manpage for more details.

          The raw driver is deprecated and will be removed soon.
          Applications should simply open the device (eg /dev/hda1)
          with the O_DIRECT flag.

config MAX_RAW_DEVS
        int "Maximum number of RAW devices to support (1-8192)"
        depends on RAW_DRIVER
        default "256"
        help
          The maximum number of RAW devices that are supported.
          Default is 256. Increase this number in case you need lots of
          raw devices.

config LEGACY_PTY_COUNT
	int "Maximum number of legacy PTY in use"
	depends on LEGACY_PTYS
	default "256"
	help
	  The maximum number of legacy PTYs that can be used at any one time.
	  The default is 256, and should be more than enough.  Embedded
	  systems may want to reduce this to save memory.

	  When not in use, each legacy PTY occupies 12 bytes on 32-bit
	  architectures and 24 bytes on 64-bit architectures.

config WATCHDOG
	bool "Watchdog Timer Support"

config WATCHDOG_NOWAYOUT
	bool "Disable watchdog shutdown on close"
	depends on WATCHDOG

config SOFT_WATCHDOG
	tristate "Software Watchdog"
	depends on WATCHDOG

config UML_WATCHDOG
	tristate "UML watchdog"
	depends on WATCHDOG

config UML_SOUND
	tristate "Sound support"
	help
          This option enables UML sound support.  If enabled, it will pull in
          soundcore and the UML hostaudio relay, which acts as a intermediary
          between the host's dsp and mixer devices and the UML sound system.
          It is safe to say 'Y' here.

config SOUND
	tristate
	default UML_SOUND

config HOSTAUDIO
	tristate
	default UML_SOUND

#It is selected elsewhere, so kconfig would warn without this.
config HW_RANDOM
	tristate
	default n

config UML_RANDOM
	tristate "Hardware random number generator"
	help
	  This option enables UML's "hardware" random number generator.  It
	  attaches itself to the host's /dev/random, supplying as much entropy
	  as the host has, rather than the small amount the UML gets from its
	  own drivers.  It registers itself as a standard hardware random number
	  generator, major 10, minor 183, and the canonical device name is
	  /dev/hwrng.
	  The way to make use of this is to install the rng-tools package
	  (check your distro, or download from
	  http://sourceforge.net/projects/gkernel/).  rngd periodically reads
	  /dev/hwrng and injects the entropy into /dev/random.

config MMAPPER
	tristate "iomem emulation driver"
	help
	  This driver allows a host file to be used as emulated IO memory inside
	  UML.

endmenu