cc3116a938
The last half year I've been working on a replacement TTY layer for the FreeBSD kernel. The new TTY layer was designed to improve the following: - Improved driver model: The old TTY layer has a driver model that is not abstract enough to make it friendly to use. A good example is the output path, where the device drivers directly access the output buffers. This means that an in-kernel PPP implementation must always convert network buffers into TTY buffers. If a PPP implementation would be built on top of the new TTY layer (still needs a hooks layer, though), it would allow the PPP implementation to directly hand the data to the TTY driver. - Improved hotplugging: With the old TTY layer, it isn't entirely safe to destroy TTY's from the system. This implementation has a two-step destructing design, where the driver first abandons the TTY. After all threads have left the TTY, the TTY layer calls a routine in the driver, which can be used to free resources (unit numbers, etc). The pts(4) driver also implements this feature, which means posix_openpt() will now return PTY's that are created on the fly. - Improved performance: One of the major improvements is the per-TTY mutex, which is expected to improve scalability when compared to the old Giant locking. Another change is the unbuffered copying to userspace, which is both used on TTY device nodes and PTY masters. Upgrading should be quite straightforward. Unlike previous versions, existing kernel configuration files do not need to be changed, except when they reference device drivers that are listed in UPDATING. Obtained from: //depot/projects/mpsafetty/... Approved by: philip (ex-mentor) Discussed: on the lists, at BSDCan, at the DevSummit Sponsored by: Snow B.V., the Netherlands dcons(4) fixed by: kan
164 lines
5.7 KiB
Plaintext
164 lines
5.7 KiB
Plaintext
#
|
|
# GENERIC -- Generic kernel configuration file for FreeBSD/powerpc
|
|
#
|
|
# For more information on this file, please read the handbook section on
|
|
# Kernel Configuration Files:
|
|
#
|
|
# http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
|
|
#
|
|
# The handbook is also available locally in /usr/share/doc/handbook
|
|
# if you've installed the doc distribution, otherwise always see the
|
|
# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
|
|
# latest information.
|
|
#
|
|
# An exhaustive list of options and more detailed explanations of the
|
|
# device lines is also present in the ../../conf/NOTES and NOTES files.
|
|
# If you are in doubt as to the purpose or necessity of a line, check first
|
|
# in NOTES.
|
|
#
|
|
# $FreeBSD$
|
|
|
|
cpu AIM
|
|
ident GENERIC
|
|
|
|
#To statically compile in device wiring instead of /boot/device.hints
|
|
#hints "GENERIC.hints"
|
|
|
|
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
|
|
|
|
# Platform support
|
|
options POWERMAC #NewWorld Apple PowerMacs
|
|
options PSIM #GDB PSIM ppc simulator
|
|
|
|
options SCHED_ULE #ULE scheduler
|
|
options INET #InterNETworking
|
|
options INET6 #IPv6 communications protocols
|
|
options SCTP #Stream Control Transmission Protocol
|
|
options FFS #Berkeley Fast Filesystem
|
|
options SOFTUPDATES #Enable FFS soft updates support
|
|
options UFS_ACL #Support for access control lists
|
|
options UFS_DIRHASH #Improve performance on big directories
|
|
options UFS_GJOURNAL #Enable gjournal-based UFS journaling
|
|
options MD_ROOT #MD is a potential root device
|
|
options NFSCLIENT #Network Filesystem Client
|
|
options NFSSERVER #Network Filesystem Server
|
|
options NFSLOCKD #Network Lock Manager
|
|
options NFS_ROOT #NFS usable as root device
|
|
options MSDOSFS #MSDOS Filesystem
|
|
options CD9660 #ISO 9660 Filesystem
|
|
options PROCFS #Process filesystem (requires PSEUDOFS)
|
|
options PSEUDOFS #Pseudo-filesystem framework
|
|
options GEOM_PART_GPT #GUID Partition Tables.
|
|
options GEOM_LABEL #Provides labelization
|
|
options COMPAT_43TTY #BSD 4.3 TTY compat [KEEP THIS!]
|
|
options COMPAT_FREEBSD4 #Keep this for a while
|
|
options COMPAT_FREEBSD5 #Compatible with FreeBSD5
|
|
options COMPAT_FREEBSD6 #Compatible with FreeBSD6
|
|
options COMPAT_FREEBSD7 #Compatible with FreeBSD7
|
|
options SCSI_DELAY=5000 #Delay (in ms) before probing SCSI
|
|
options KTRACE #ktrace(1) syscall trace support
|
|
options STACK #stack(9) support
|
|
options SYSVSHM #SYSV-style shared memory
|
|
options SYSVMSG #SYSV-style message queues
|
|
options SYSVSEM #SYSV-style semaphores
|
|
options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
|
|
options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4)
|
|
options AUDIT # Security event auditing
|
|
|
|
# Debugging for use in -current
|
|
options KDB #Enable the kernel debugger
|
|
options DDB #Support DDB
|
|
options INVARIANTS #Enable calls of extra sanity checking
|
|
options INVARIANT_SUPPORT #Extra sanity checks of internal structures, required by INVARIANTS
|
|
options WITNESS #Enable checks to detect deadlocks and cycles
|
|
options WITNESS_SKIPSPIN #Don't run witness on spinlocks for speed
|
|
|
|
# To make an SMP kernel, the next line is needed
|
|
#options SMP # Symmetric MultiProcessor Kernel
|
|
|
|
# Standard busses
|
|
device pci
|
|
|
|
# ATA and ATAPI devices
|
|
device ata
|
|
device atadisk # ATA disk drives
|
|
device atapicd # ATAPI CDROM drives
|
|
#device atapifd # ATAPI floppy drives
|
|
#device atapist # ATAPI tape drives
|
|
|
|
# SCSI peripherals
|
|
device scbus # SCSI bus (required for SCSI)
|
|
device da # Direct Access (disks)
|
|
device sa # Sequential Access (tape etc)
|
|
device cd # CD
|
|
device pass # Passthrough device (direct SCSI access)
|
|
|
|
# syscons is the default console driver, resembling an SCO console
|
|
device sc
|
|
device kbdmux
|
|
options SC_OFWFB # OFW frame buffer
|
|
options SC_DFLT_FONT # compile font in
|
|
makeoptions SC_DFLT_FONT=cp437
|
|
|
|
# Serial (COM) ports
|
|
device scc
|
|
device uart
|
|
|
|
# PCI Ethernet NICs that use the common MII bus controller code.
|
|
device miibus # MII bus support
|
|
device bge # Broadcom BCM570xx Gigabit Ethernet
|
|
device bm # Apple BMAC Ethernet
|
|
device gem # Sun GEM/Sun ERI/Apple GMAC
|
|
device dc # DEC/Intel 21143 and various workalikes
|
|
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
|
|
|
|
# Pseudo devices.
|
|
device loop # Network loopback
|
|
device random # Entropy device
|
|
device ether # Ethernet support
|
|
device tun # Packet tunnel.
|
|
device pty # BSD-style compatibility pseudo ttys
|
|
device md # Memory "disks"
|
|
device ofwd # Open Firmware disks
|
|
device gif # IPv6 and IPv4 tunneling
|
|
device faith # IPv6-to-IPv4 relaying/(translation)
|
|
|
|
# The `bpf' device enables the Berkeley Packet Filter.
|
|
# Be aware of the administrative consequences of enabling this!
|
|
# Note that 'bpf' is required for DHCP.
|
|
device bpf #Berkeley packet filter
|
|
|
|
# USB support
|
|
device uhci # UHCI PCI->USB interface
|
|
device ohci # OHCI PCI->USB interface
|
|
device ehci # EHCI PCI->USB interface
|
|
device usb # USB Bus (required)
|
|
device ugen # Generic
|
|
device uhid # "Human Interface Devices"
|
|
device ukbd # Keyboard
|
|
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
|
|
device ulpt # Printer
|
|
device umass # Disks/Mass storage - Requires scbus and da0
|
|
device ums # Mouse
|
|
device urio # Diamond Rio 500 MP3 player
|
|
device uscanner # Scanners
|
|
# USB Ethernet
|
|
device aue # ADMtek USB Ethernet
|
|
device axe # ASIX Electronics USB Ethernet
|
|
device cdce # Generic USB over Ethernet
|
|
device cue # CATC USB Ethernet
|
|
device kue # Kawasaki LSI USB Ethernet
|
|
|
|
# FireWire support
|
|
device firewire # FireWire bus code
|
|
device sbp # SCSI over FireWire (Requires scbus and da)
|
|
device fwe # Ethernet over FireWire (non-standard!)
|
|
|
|
# Misc
|
|
device powermac_nvram # Open Firmware configuration NVRAM
|
|
|
|
options KTR
|
|
options KTR_COMPILE=0xffffffff
|
|
#options KTR_MASK=KTR_SIG
|
|
options KTR_VERBOSE
|