libc, kernel msync() takes a third argument; remove obsolete xdr_{domainname,mapname,peername} from xdryp.c; make __ps_strings extern on setproctitle.c and don't set it to a default when it is NULL; change unvis() argument to an int from a char; move timezone() to libcompat; move swapon() to libcompat move getdirentries() to libcompat change <sys/types.h>: mode_t: u_int16_t -> u_int32_t nlinks_t: int16_t -> u_int32_t dev_t: int32_t -> u_int32_t libc is now version 12.20 [christos 19971016]

netinet Fix several annoyances/bugs related to MSS handling in BSD TCP. Split up t_maxseg and the tcp_mss() function, and dynamically compute the max size for tcp_output() on a per-segment basis. [thorpej 19970922]

finger(1), fingerd(8) add -g flag to finger(1) and fingerd(8). finger -g will not show non-realname gecos information. also, update docmentation for -s; and log the request, as well as the requestor. [mrg 19970909]

alpha add support for DDB, based on such code from Mach 3, initially ported to NetBSD/alpha by Chris Demetriou, then heavily hacked by me. [thorpej 19970905]

ethernet Added a driver ("sm") for the SMC91cxx family of Ethernet chips (including the SMC91c90, 91c92, 91c94, 91c95, and 91c100). This is used for Megahertz PCMCIA Ethernet cards, and several ISA Ethernet cards. This driver is derived from a driver written for FreeBSD by Gardner Buchanan, plus some changes from a NetBSD/amiga driver by Michael Hitch, and some bug fixes and enhancements by me. [thorpej 19970901]

August 1997

audio Substantial rewrite of the SB driver to make it do full duplex on an SB16. Because of the braindead design of the SB the input and output have to use different precisions (8 and 16 bits). It is possible to set the driver to use 8 bits on both and it will the emulate 8 bits on the output by expanding it to 16 bits. [augustss 19970829]

nfs Add BOOTP support to nfs_mountroot based on contributions from Tor Egge <tegge@idt.unit.no>, PR #2351[gwr 19970829]

scsipi Added a new bus interface machinery sys/dev/scsipi, for use with SCSI and ATAPI devices (derived from sys/scsi). Split sys/dev/isa/wd.c into controller and disk drivers. Added a command queue and ATAPI support on the controller driver [bouyer 19970827]

calendar(1) Enhancements from Ty Sarna <tsarna@endicor.com>, allowing user to: - get entries from a file other than "calendar". - get entries for a different date than today. - get entries for a whole week in advance, or only one day. [thorpej 19970826]

isa XXX Add a drq2 locator for the ISA bus. Many sound cards need two DMA channels to do e.g. full-duplex. This allows a way of specifying the second channel in a sane way. THIS IS TEMPORARY. The drq2 locator will go away when the locator system has been changed to allow multiple values per locator. [augustss 19970825]

audio Make the audio device attach to the hardware audio drivers in the normal way (not the special magic that was used before). The requires an extra line in the config file to get the sound to work again. [augustss 19970820]

ftp(1) support for gate-ftp (TIS fwtk ftp-gate), don't treat "-" and "|..." as special local filenames during mget and get if not specified explicitly. [lukem 19970819]

audio Add /dev/audioctl, a device like /dev/sound but which only accepts ioctl() and can be opened at any time. [augustss 19970818]

misc Implemented `force password change at next login', by setting the pw_change field to -1. Based on [PR bin/936] by Simon Gerraty <sjg@quick.com.au>. [lukem 19970816]

i386 Added support for booting with an msdosfs root by mounting an mfs partition for /dev from init. Changes include addition for msdosfs_mountroot(), changes to init to mount an mfs partition, changes to mount to try to deduce the vfstype in mount -u from statfs. [christos 19970729]

netinet Implement a compressed state engine for TCP, based on code written by David Borman for BSD/OS. This compressed state engine is currently used to hold state for embryonic TCP connections. Rather than creating a socket/TCB for the incoming SYN, it is placed into the compressed state engine. A TCB is only created once the 3-way handshake has been completed. Among other things, this provides complete protection from "SYN flood attacks" without the need to drop half-open connections. MANY MANY thanks to BSDI for releasing the original code, and to Ted Lemon <mellon@NetBSD.org> for doing the initial integration work! [thorpej 19970723]

amiga add glue code for the m68k fpu emulation system. XXX this is known to be broken on 68LC040, 68040V and 68LC060 CPUs currently. [is 19970715]

hp300 use new bus error and address error handlers, lifted from amiga and mac68k ports; they are sharable and more optimal. Vector offsets 8 and 12 now initialized at run-time to the correct handler, before the MMU is enabled. [thorpej 19970714]

ddb(4), alpha Clean up some type-size problems to give DDB a better chance of working on the Alpha. Change the symbol table handling code interfaces slightly to facilitate using other symbol formats (such as ELF, on the Alpha and the MIPS). Fixup the software single-stepping code a bit, to make it work better on the Alpha and MIPS. Single-stepping code partially from Mach 3, the rest from me. [thorpej 19970625]

login(1) link statically (PR #1715), prompt for S/Keys in the password prompt if the user has one, and implement -s which can force use of S/Key (PR #3270) [lukem 19970625]

misc If the user attempts to set SO_SNDLOWAT or SO_RCVLOWAT socket options greater than the high-water marks for those socket buffers, silently truncate the request to the high-water value, like BSD/OS. [thorpej 19970624]

network Disallow SO_SNDBUF, SO_RCVBUF, SO_SNDLOWAT, and SO_RCVLOWAT socket options to have values < 1. Such values to not make sense, so return EINVAL. Inspired by PR #3770, from Havard Eidnes <he@vader.runit.sintef.no>. [thorpej 19970624]

misc Eliminate use of dtom() in the handling of UNIX domain sockets. Since this was the last use of dtom(), purge the dtom() macro from sys/mbuf.h. [thorpej 19970624]

misc Eliminate all use of dtom() in sys/net*. Allows greater flexibility to use mbuf external storage, and improves performance by eliminating m_pullup()'s for clusters in the IP reassembly code. From Koji Imada <koji@math.human.nagoya-u.ac.jp> in PR #3628 and PR #3480. [thorpej 19970623]

vnd(4) Add full support for disklabels, partitions, and geometry emulation. Update vnconfig(8) to allow geometry to be specified. Closes some vnd-related PRs. [thorpej 19970623]

amiga, audio added a driver for the Amiga custom chip audio hardware, contributed by Stephan Thesing <thesing@cs.uni-sb.de> and heavily hacked upon by myself to make it work in -current and in general. Currently, only 8bit precision is supported. [is 19970614]

ftpd(8) add support for /etc/ftpd.conf, allowing support for `conversions', displaying and/or notification of certain files when a directory is first entered, amongst other features. Each feature can be controlled on a per class basis (one of: real, chroot, guest, all or none). [lukem 19970614]

kernel fix dump device selection in wake of new swap system. Allow greater flexibility in dump device selection, including ability to dump to local disk if root is on nfs. [thorpej 19970613]

kernel new swapping system implemented, with any-time addition of swap devices, at different priorities. Thanks to pk and leo. [mrg 19970612]

ext2 Added kernel and userland support for the ext2 file system [bouyer 19970611]

misc New sysctl hw.machine_arch which returns the CPU class of a machine. [veego 19970607]

isa convert isadma.c to be a user of new bus dma framework, and convert all drivers that use it to the new API. [thorpej 19970606]

bus_dma(9) Implement new bus dma framework, providing a machine-independent abstraction for DMA mapping. See bus_dma(9) for details. Convert several machine-independent drivers to use new framework. [thorpej 19970606]

misc Implement new vm_page_alloc_memory() and vm_page_free_memory() functions, used to allocate unmapped managed pages conforming to various allocation constraints. [thorpej 19970606]

dump(8) allow dumping of subsets of filesystems, support SIGINFO, print statistics after each tape and at completion of dump, display year in 'w' output. [lukem 19970605]

ethernet Added FreeBSD's "fxp" driver for the Intel EtherExpress PRO 10/100B Ethernet interface, ported to NetBSD by me. Thanks to Matthias Drochner for the testing, and David Greenman for writing it, and feedback on the changes to support NetBSD. [thorpej 19970604]

May 1997

rcmd allow alternative `rsh' methods (eg, ssh). Currently, rdist(1) is the only program to use this. [mrg 19970526]

misc Store release information in one location; the output of sys/conf/osrelease.sh. Change newvers.sh and various distrib Makefiles to take advantage of this. [lukem 19970511]

hp300 added support for Apollo APCI UARTs to boot program and kernel, partially from Mike Smith <mike@pressed.spam.frisbee.net.au>. [thorpej 19970511]

audio Convert to new orthogonal audio encoding scheme and implement some of the new encodings. The change to ioctl AUDIO_GETENC is NOT backwards compatible. Add buffer size information audio_info_t and use if for OSS emulation. [augustss 19970507]

sparc bootblocks can be used unmodified across all currently supported architectures. [pk 19970504]

April 1997

audio Changed the interface between the high and low level drivers to make it slimmer and make error checking easier. XXX Pretend that SB cards are of model 1 since the driver for newer cards is broken. [augustss 19970430]

ifconfig(8) Add -l to ifconfig, which lists all network interfaces with no additional information. [thorpej 19970327]

misc Update and enhancement to the mbuf code, to support use of non-cluster external storage. Highlights: - additional "void *" argument to (*ext_free)(), an opaque cookie for use by the free function. - MCLALLOC() and MCLFREE() calls are gone. They are replaced by MEXTADD() (add external storage to mbuf), MEXTMALLOC() (malloc() external storage and attach to mbuf), and MEXTREMOVE() (remove external storage from mbuf). - completely new external storage reference counting mechanism; mclrefcnt[] is gone. These changes will eventually be used to pass driver DMA buffers up the network stack, and reduce/eliminate copies in certain code paths (e.g. NFS writes). From Matt Thomas <matt@3am-software.com> and myself <thorpej@nas.nasa.gov>, with some input from Chris Demetriou <cgd@cs.cmu.edu> and review by Charles Hannum <mycroft@mit.edu>. [thorpej 19970327]

misc Move findroot/setroot stuff into the new cpu_rootconf function that is called just before vfs_mountroot so that this code can rely upon tsleep and timeouts [gwr 19970326]

net ARP support for non-Ethernet-style links: Replaced <netinet/if_ether.h> partially by <net/if_ether.h>, partially by <netinet/if_inarp.h>. struct ifnet has a new member if_sadl, pointer to the link level sockaddr structure. Added AF_ARP, currently only for in-kernel communication. Added ARP support to common MI ARCnet driver (net/if_arcsubr.c). Bumped OS version to NetBSD-1.2D, as you can't mix network drivers from pre-1.2D with 1.2D and later. XXX Some userland stuff (e.g.: rarpd, tcpdump/libpcap) needs more work to support non-Ethernet-style links. Some man 9 pages are not yet written. [is 19970316]

m68k add <m68k/m68k/support.s>, which contains common primitive functions implemented in assembler. Place setjmp/longjmp and _insque/_remque there. Convert all m68k locore.s's to use it. [thorpej 19970316]

misc Move the boot_${ARCH}.8 man pages that were sitting in reboot into man/man8/man8.${ARCH}, and rename to boot.8 -- also updated a bunch of junk, especially in the i386 page. [perry 19970312]

alpha Make the EISA front-ends for the ahc and bha drivers compile and hopefully run (both are untested) on NetBSD/alpha. [cgd 19970312]

alpha Make the PCI front-ends for the ahc and bha drivers and the driver back-ends compile and hopefully run (ahc does, bha is untested) on NetBSD/alpha. From Matthew Jacob <matt@feral.com>. [cgd 19970312]

amiga - PicassoIV support - Merlin works now in ZorroIII mode - support for the Domino 16M proto card - other gfx fixes for Interlace, DoubleScan, HiColor, TrueColor and the Memorysizedetction for 1MB Bords [veego 19970305]

net Allow the routing socket to be opened and listened to by non-superuser. Also allow non-superuser to perform RTM_GET. All other messages require superuser status. At the same time, remove the setuid bit from /sbin/route, since it's no longer needed. [thorpej 19970221]

sync(2) *all* dirty file data should be written out at sync time, not just data modified with write. This requires ensuring that the VM system does so as well. This fixes a severe bug involving potential data loss with mmap()ed files. [tls/mycroft 19970216]

nfs Fix malformed callback RPCs and dir eviction in NQNFS, should make it much more reliable [fvdl 19970209]

arm32 Overhauled CPU support. CPU functions are now accessed via macros that use function pointers thus allowing CPU's with different cache structures etc to be supported in a single kernel. [mark 19970204]

hp300 add support for gzip'd kernels and miniroot images to SYS_UBOOT and SYS_INST. [thorpej 19970204]

config(8) Change config(8) to emit "option headers" for specific options specified in system description files with the "defopt" keyword. Allows dependencies on options to be generated. [thorpej 19970202]

January 1997

libexec import and merge 4.4BSD-Lite2 for all programs. [mrg 19970107]

su(1) Allow any user to su to root if group 0 exists but has no members. [ghudson 19970131]

config(8) Change config(8) to support generic vfs_mountroot() and machine-independent setroot(). File systems are now configured with the "file-system" keyword. Kernel configurations must now always specify a root device, which may be wildcarded ("?"). Operator may specify a root file system type, as well. [thorpej 19970130]

misc Implement a new, fault-tolerant vfs_mountroot(), which is capable of determining the root file system type if the operator didn't specify one in the kernel configuration file. Change file system mountroot functions to return errors properly, rather than panic'ing. If the file system can not be mounted, the operator will be prompted for a root device and file system type, or be given the option to halt the system. [thorpej 19970130]

misc Implement machine-independent mountroothook code, derived from similar code implemented by me in the sparc and x68k ports. This is used to execute a special operation before a device is mounted as root (such as ejecting a floppy, and prompting for a new disk.) [thorpej 19970130]

libc, getgr{nam, gid} use yp_match() rather than yp_first()/yp_next(). New code is more efficient, and better for busy networks. From Michael.Eriksson@era-t.ericsson.se, PR #3114. [thorpej 19970121]

libc, yp Use a shorter timeout for RPC calls than the upper-layer YP call, allowing for up to 4 RPC retries before the YP call times out. From Michael.Eriksson@era-t.ericsson.se, PR #3117. [thorpej 19970121]

netinet implement IP_RECVIF socket option; supply a datagram's incoming interface as a sockaddr_dl in a control mbuf on datagram reception. Move packet information socket option processing to a generic function so that it works with multicast UDP and raw IP, as well as unicast UDP. Contributed by Bill Fenner <fenner@parc.xerox.com> [thorpej 19970110]

sockets implement SO_TIMESTAMP socket option; supply a timestamp as a timeval in a control mbuf on datagram reception. [thorpej 19970110]

mac68k reimplement get_pte() to avoid doing transparent translation over all function codes, limiting it to FC $1, allowing the Duo 2x0 series to boot. [scottr 19970109]

mac68k probe for CPU type rather than relying on the booter, and clean up 68040 support for most systems. [scottr 19970109]

ddb(4) add "onpanic" variable, defaulting to on, overridable at compile time with "DDB_ONPANIC=0" option. If non-zero, DDB will be called upon panic. Export all DDB built-in variables via sysctl. [thorpej 19970108]

make(1) Substitution code has been changed to substitute the first pattern on each word, not the first pattern of the first word. S/a/b/1 can be used to get the old behavior. [christos 19961223]

hp300 Snapshot of new config for NetBSD/hp300. This isn't quite finished yet. We're about 75% there. SCSI and HP-IB are not yet supported in a new config kernel; some autoconfiguration hackery has to be done there, yet. These changes are enough to network boot a diskless kernel. New config glue is enabled with the "NEWCONFIG" kernel option. If that option is not present, an old config kernel will be built. Any kernel configured with config(8) will automatically pick up the NEWCONFIG option from std.hp300. [thorpej 19961217]

ls(1) Do multicolumn output in a way that's a little more likely to always line up evenly. From D'Arcy J.M. Cain <darcy@druid.com>, PR #2965. [thorpej 19961210]

scsi add a max_target member to struct scsi_link, filled in by host adapter drivers to indicate the maximum target they can address. Use this value to dynamically allocate data structures, rather than using a hard-coded value of 8 targets. Allows MI SCSI to deal with targets > 7 now. [thorpej 19961210]

nfs Performance improvement from Doug Rabson/FreeBSD. Improve the queuing algorithms used by NFS' asynchronous i/o. The new mechanism uses a queue for each mount point. All asynchronous i/o goes through this queue which preserves the ordering of requests. A simple mechanism ensures that the iods are shared out fairly between active mount points. Reviewed/integrated/approved by fvdl@NetBSD.org. [thorpej 19961202]

kernel Implement bitmask_snprintf(), which takes a value and a string representing the names of those bits, prints them into a buffer provided by the caller, and returns a pointer to that buffer. Functionality is identical to that of the (non-standard) `%b' printf() format, which will be deprecated. Also, rename the non-exported function ksprintn() to ksnprintn(), and change it to use a buffer provided by the caller, rather than at static buffer. [thorpej 19961112]

sparc switch to kernel crash dump format as described in <sys/kcore.h>. [pk 19961110]

atari The Hades is now a supported system although driver support is still minimal; only SCSI,PCI-ET4000,floppy and parallel-printer. [leo 19961109]

ping(8) handle SIGINFO and print out ping statistics when a SIGINFO is received. [cgd 19961106]

misc rename remrq() to remrunqueue() for consistency with setrunqueue() (which was renamed from setrq() by Lite). Also, move its prototype from vm/vm_extern.h to sys/proc.h so that it's in the same place as prototypes for related functions. [cgd 19961106]

i386 APM - rename APM_NOIDLE option to APM_NO_IDLE, and add an APM_NO_STANDBY option for people with buggy BIOSes that do bad things with standby mode. [cgd 19961106]

ffs Performance enhangement: When freeing an indirect block, there is no need to write it (synchronously, no less!) before tossing it. From Kirk McKusick <mckusick@McKusick.COM>. [thorpej 19961105]

October 1996

nfs change default for nfs mounts to not do a connect on the socket. Add option -C to force a connected mount. Now option -c is still there, but it is the default. Maybe amd should be changed similarly. [christos 19961027]

netinet sanity check packet length against IP_MAXPACKET on incoming and outgoing packets, and discard as appropriate. Based on a patch from Bill Fenner <fenner@parc.xerox.com> Add a `too long' counter to IP stats. [thorpej 19961024]

netinet change length and offset fields in headers to be unsigned so that we can actually use the max IP packet size. From Kevin M. Lahey <kml@nas.nasa.gov> [thorpej 19961024]

misc Allow the install program to be overridden. sys.mk now defines the variable INSTALL which defaults to "install". Changes Makefiles throughout the system to use the new variable. Fixes PR misc/1458, from Simon J. Gerraty <sjg@zen.void.oz.au>: [thorpej 19961017]

hp300 db_memrw.c that is smart about read-only kernel text, based on a similar module written by Gordon Ross for the sun3 port, modified somewhat by me. [thorpej 19961013]

hp300 in the boot program, set the root device in a sane way, now that the kernel has properly working root device detect/set code. [thorpej 19961013]

hp300 New root device detect/set code, lifted mostly from NetBSD/alpha. The "options GENERIC" entry in kernel config files is not longer necessary for "swap generic" kernels.Uses new config constructs which work with some glue in an old config environment. [thorpej 19961013] This code will support new config with minimal changes.

misc Change {h,n}to{n,h}l to take and return in_addr_t, and {h,n}to{n,h}s to take and return in_port_t. [christos 19961012]

misc Moved <machine/exec.h> to <machine/aout_machdep.h>, and updated <sys/exec.h> and <sys/exec_aout.h> appropriately. [cgd 19961008]

misc Made EXEC_AOUT and EXEC_SCRIPT no longer mandatory. Changed COMPAT_LINUX, COMPAT_OSF1, COMPAT_SVR4 and COMPAT_ULTRIX so they no longer implicitly pull in executable format support code. [cgd 19961002]

vm change pageout to sleep on vm_pages_needed rather than lbolt. stops the well known freeze for N seconds bug. see PR #2755 for a more detailed summary of the problem. change suggested by john dyson. [mrg 19960918]

mac68k Fix floating point support in locore so that the 68LC040 machines make it into the fpe. [scottr 19960912]

mvme68k added support for second stat clock (stolen from SPARC port), and use the Bug to determine what sort of CPU we're using. [thorpej 19960912]

m68k added exec glue for COMPAT_M68K4K. Modified ld.so to work with any combination of m68k4k/m68k8k libraries and executables. [thorpej 19960910]

disklabel(8) Fixed disklabel not to display cylinder comments if number of sectors per cylinder is zero. From PR bin/2683. Also deal with syntax errors in a more sane matter. From PR bin/2659. [explorer 19960810]

reboot(2) Changed the reboot(2) system call to take (int bootopt, char * bootstr) to allow smarter firmwire the ability to reboot with a string. [mrg 19960809]

yp Added the ypserv suite written by Mats O Jansson, with some changes by me. Changed the way YP daemons are started in /etc/rc. [thorpej 19960809]

slight semantics change to passwd(1) and chpass(1) ALWAYS use YP if the system is bound to a YP server. This is required if the passwd database is to stay in sync if this program is run on the YP server. Note, local passwd database operations can still be performed by passing the -l flag. [thorpej 19960809]

mac68k attach the ite to the appropriate grf device, as determined by the booter. [scottr 19960805]

misc Add compile-time control of autonice time and autonice value using "options AUTONICETIME=sec" and "options AUTONICEVAL=6" in kernel config files. Also, sysctl can be used to tweak these in a running system. See man {3,8} sysctl for more information. [explorer 19960717]

Clean up some type-size problems to give DDB a better chance of working on the Alpha. Change the symbol table handling code interfaces slightly to facilitate using other symbol formats (such as ELF, on the Alpha and the MIPS). Fixup the software single-stepping code a bit, to make it work better on the Alpha and MIPS. Single-stepping code partially from Mach 3, the rest from me. [thorpej 19970625]

m68k: add mappedcopy{in,out}() to m68k common code area. These functions use page mapping to speed up large copyin/copyout operations. [thorpej 19970201]

- PicassoIV support - Merlin works now in ZorroIII mode - support for the Domino 16M proto card - other gfx fixes for Interlace, DoubleScan, HiColor, TrueColor and the Memorysizedetction for 1MB Bords [veego 19970305]

m68k: add <m68k/m68k/support.s>, which contains common primitive functions implemented in assembler. Place setjmp/longjmp and _insque/_remque there. Convert all m68k locore.s's to use it. [thorpej 19970316]

now that ARP is debugged and works over ARCnet, make it the default on the Amiga "bah" interface driver. [is 19970323]

m68k: factor our regdump() into arch/m68k/m68k/regdump.c and make all ports use it. [thorpej 19970409]

m68k: factor out several locore.s functions that manipulate processes into arch/m68k/m68k/proc_subr.s and make all ports use it. [thorpej 19970409]

m68k: New crash dump format that is self-containing, will work with all m68k ports. [thorpej 19970409]

m68k: factor out several trap vector routines and make all m68k ports use them. [thorpej 19970424]

added a driver for the Amiga custom chip audio hardware, contributed by Stephan Thesing <thesing@cs.uni-sb.de> and heavily hacked upon by myself to make it work in -current and in general. Currently, only 8bit precision is supported. [is 19970614]

The DraCo real-time clock is now read when booting. [is 19970707]

options RTC_OFFSET is now implemented. [is 19970707]

add glue code for the m68k fpu emulation system. XXX this is known to be broken on 68LC040, 68040V and 68LC060 CPUs currently. [is 19970715]

m68k: add <m68k/m68k/support.s>, which contains common primitive functions implemented in assembler. Place setjmp/longjmp and _insque/_remque there. Convert all m68k locore.s's to use it. [thorpej 19970316]

Added a wd-driver (no joke ;-) ). [leo 19970401]

m68k: factor our regdump() into arch/m68k/m68k/regdump.c and make all ports use it. [thorpej 19970409]

m68k: factor out several locore.s functions that manipulate processes into arch/m68k/m68k/proc_subr.s and make all ports use it. [thorpej 19970409]

m68k: New crash dump format that is self-containing, will work with all m68k ports. [thorpej 19970409]

m68k: factor out several trap vector routines and make all m68k ports use them. [thorpej 19970424]

add support for copying miniroot image from hpib cartridge tape to the SYS_INST program. [thorpej 19961006]

New root device detect/set code, lifted mostly from NetBSD/alpha. The "options GENERIC" entry in kernel config files is not longer necessary for "swap generic" kernels.Uses new config constructs which work with some glue in an old config environment. [thorpej 19961013] This code will support new config with minimal changes.

in the boot program, set the root device in a sane way, now that the kernel has properly working root device detect/set code. [thorpej 19961013]

db_memrw.c that is smart about read-only kernel text, based on a similar module written by Gordon Ross for the sun3 port, modified somewhat by me. [thorpej 19961013]

kernel text is now always read-only, and page 0 is invalid. [thorpej 19961013]

Snapshot of new config for NetBSD/hp300. This isn't quite finished yet. We're about 75% there. SCSI and HP-IB are not yet supported in a new config kernel; some autoconfiguration hackery has to be done there, yet. These changes are enough to network boot a diskless kernel. New config glue is enabled with the "NEWCONFIG" kernel option. If that option is not present, an old config kernel will be built. Any kernel configured with config(8) will automatically pick up the NEWCONFIG option from std.hp300. [thorpej 19961217]

use m68k a.out with 8k linker page size, to match other m68k ports. m68k4k is supported for backwards compatibility if the kernel is built with the COMPAT_M68K4K option. [thorpej 19970315]

Do a bit of spring cleaning; separate HP-UX compatibility code from the mainline code, and garbage collect some non-useful bits. [thorpej 19970316]

m68k: add <m68k/m68k/support.s>, which contains common primitive functions implemented in assembler. Place setjmp/longjmp and _insque/_remque there. Convert all m68k locore.s's to use it. [thorpej 19970316]

m68k: factor our regdump() into arch/m68k/m68k/regdump.c and make all ports use it. [thorpej 19970409]

m68k: factor out several locore.s functions that manipulate processes into arch/m68k/m68k/proc_subr.s and make all ports use it. [thorpej 19970409]

m68k: New crash dump format that is self-containing, will work with all m68k ports. [thorpej 19970409]

use arch/m68k/m68k/sig_machdep.c [thorpej 19970409]

use new crash dump format [thorpej 19970409]

Add support for the Apollo Domain keyboard to the boot programs, from Michael Smith miff@spam.frisbee.net.au. [thorpej 19970414]

m68k: factor out several trap vector routines and make all m68k ports use them. [thorpej 19970424]

Uniquely identify 400, 425, and 433 in the boot program and kernel, and clean up associated code. Identification stuff provided by Mike Smith. [thorpej 19970427]

garbage-collect a bunch of hp300-specific stuff, making this probably sharable with the other m68k ports. [thorpej 19970427]

added support for Apollo APCI UARTs to boot program and kernel, partially from Mike Smith <mike@pressed.spam.frisbee.net.au>. [thorpej 19970511]

use new bus error and address error handlers, lifted from amiga and mac68k ports; they are sharable and more optimal. Vector offsets 8 and 12 now initialized at run-time to the correct handler, before the MMU is enabled. [thorpej 19970714]

Added support for booting with an msdosfs root by mounting an mfs partition for /dev from init. Changes include addition for msdosfs_mountroot(), changes to init to mount an mfs partition, changes to mount to try to deduce the vfstype in mount -u from statfs. [christos 19970729]

m68k: add mappedcopy{in,out}() to m68k common code area. These functions use page mapping to speed up large copyin/copyout operations. [thorpej 19970201]

add basic bus.h interface/implementation. [scottr 19970203]

Complete bus space access implementation. [scottr 19970219]

m68k: add <m68k/m68k/support.s>, which contains common primitive functions implemented in assembler. Place setjmp/longjmp and _insque/_remque there. Convert all m68k locore.s's to use it. [thorpej 19970316]

m68k: factor our regdump() into arch/m68k/m68k/regdump.c and make all ports use it. [thorpej 19970409]

m68k: factor out several locore.s functions that manipulate processes into arch/m68k/m68k/proc_subr.s and make all ports use it. [thorpej 19970409]

m68k: New crash dump format that is self-containing, will work with all m68k ports. [thorpej 19970409]

m68k: factor out several trap vector routines and make all m68k ports use them. [thorpej 19970424]

m68k: add mappedcopy{in,out}() to m68k common code area. These functions use page mapping to speed up large copyin/copyout operations. [thorpej 19970201]

m68k: add <m68k/m68k/support.s>, which contains common primitive functions implemented in assembler. Place setjmp/longjmp and _insque/_remque there. Convert all m68k locore.s's to use it. [thorpej 19970316]

m68k: factor our regdump() into arch/m68k/m68k/regdump.c and make all ports use it. [thorpej 19970409]

m68k: factor out several locore.s functions that manipulate processes into arch/m68k/m68k/proc_subr.s and make all ports use it. [thorpej 19970409]

m68k: New crash dump format that is self-containing, will work with all m68k ports. [thorpej 19970409]

m68k: factor out several trap vector routines and make all m68k ports use them. [thorpej 19970424]

m68k: add mappedcopy{in,out}() to m68k common code area. These functions use page mapping to speed up large copyin/copyout operations. [thorpej 19970201]

m68k: add <m68k/m68k/support.s>, which contains common primitive functions implemented in assembler. Place setjmp/longjmp and _insque/_remque there. Convert all m68k locore.s's to use it. [thorpej 19970316]

m68k: factor our regdump() into arch/m68k/m68k/regdump.c and make all ports use it. [thorpej 19970409]

m68k: factor out several locore.s functions that manipulate processes into arch/m68k/m68k/proc_subr.s and make all ports use it. [thorpej 19970409]

m68k: New crash dump format that is self-containing, will work with all m68k ports. [thorpej 19970409]

m68k: factor out several trap vector routines and make all m68k ports use them. [thorpej 19970424]

m68k: add mappedcopy{in,out}() to m68k common code area. These functions use page mapping to speed up large copyin/copyout operations. [thorpej 19970201]

m68k: add <m68k/m68k/support.s>, which contains common primitive functions implemented in assembler. Place setjmp/longjmp and _insque/_remque there. Convert all m68k locore.s's to use it. [thorpej 19970316]

m68k: factor our regdump() into arch/m68k/m68k/regdump.c and make all ports use it. [thorpej 19970409]

m68k: factor out several locore.s functions that manipulate processes into arch/m68k/m68k/proc_subr.s and make all ports use it. [thorpej 19970409]

m68k: New crash dump format that is self-containing, will work with all m68k ports. [thorpej 19970409]

m68k: factor out several trap vector routines and make all m68k ports use them. [thorpej 19970424]

Minimal changes to rename "com" driver to "xcom" driver, to avoid a naming collision with the more heaviliy-used "com" driver which will soon live in sys/dev/ic. [thorpej 19971015]

audio

Split off the Linux sound emulation and call it ossaudio (Open Sound System, the new name for VoxWare). Use ossaudio for the FreeBSD emulation too. [augustss 19970409]

Add mixer emulation. [augustss 19970409]

Changed the interface between the high and low level drivers to make it slimmer and make error checking easier. XXX Pretend that SB cards are of model 1 since the driver for newer cards is broken. [augustss 19970430]

Convert to new orthogonal audio encoding scheme and implement some of the new encodings. The change to ioctl AUDIO_GETENC is NOT backwards compatible. Add buffer size information audio_info_t and use if for OSS emulation. [augustss 19970507]

added a driver for the Amiga custom chip audio hardware, contributed by Stephan Thesing <thesing@cs.uni-sb.de> and heavily hacked upon by myself to make it work in -current and in general. Currently, only 8bit precision is supported. [is 19970614]

Add /dev/audioctl, a device like /dev/sound but which only accepts ioctl() and can be opened at any time. [augustss 19970818]

Make the audio device attach to the hardware audio drivers in the normal way (not the special magic that was used before). The requires an extra line in the config file to get the sound to work again. [augustss 19970820]

Substantial rewrite of the SB driver to make it do full duplex on an SB16. Because of the braindead design of the SB the input and output have to use different precisions (8 and 16 bits). It is possible to set the driver to use 8 bits on both and it will the emulate 8 bits on the output by expanding it to 16 bits. [augustss 19970829]

Implement new bus dma framework, providing a machine-independent abstraction for DMA mapping. See bus_dma(9) for details. Convert several machine-independent drivers to use new framework. [thorpej 19970606]

Enhancements from Ty Sarna <tsarna@endicor.com>, allowing user to: - get entries from a file other than "calendar". - get entries for a different date than today. - get entries for a whole week in advance, or only one day. [thorpej 19970826]

Change config(8) to support generic vfs_mountroot() and machine-independent setroot(). File systems are now configured with the "file-system" keyword. Kernel configurations must now always specify a root device, which may be wildcarded ("?"). Operator may specify a root file system type, as well. [thorpej 19970130]

Change config(8) to emit "option headers" for specific options specified in system description files with the "defopt" keyword. Allows dependencies on options to be generated. [thorpej 19970202]

add "onpanic" variable, defaulting to on, overridable at compile time with "DDB_ONPANIC=0" option. If non-zero, DDB will be called upon panic. Export all DDB built-in variables via sysctl. [thorpej 19970108]

Clean up some type-size problems to give DDB a better chance of working on the Alpha. Change the symbol table handling code interfaces slightly to facilitate using other symbol formats (such as ELF, on the Alpha and the MIPS). Fixup the software single-stepping code a bit, to make it work better on the Alpha and MIPS. Single-stepping code partially from Mach 3, the rest from me. [thorpej 19970625]

Add support for Elf symbols. [thorpej 19970701]

add DDB support for mips with hooks for pica and pmax. No symbol support yet, needs ELF-aware bootblocks. Tested on mips1 and mips3 pmax [jonathan 19970706]

Added FreeBSD's "fxp" driver for the Intel EtherExpress PRO 10/100B Ethernet interface, ported to NetBSD by me. Thanks to Matthias Drochner for the testing, and David Greenman for writing it, and feedback on the changes to support NetBSD. [thorpej 19970604]

Update the "fxp" driver to FreeBSD-current-970823. Convert driver to use if_media. [thorpej 19970825]

Added a driver ("sm") for the SMC91cxx family of Ethernet chips (including the SMC91c90, 91c92, 91c94, 91c95, and 91c100). This is used for Megahertz PCMCIA Ethernet cards, and several ISA Ethernet cards. This driver is derived from a driver written for FreeBSD by Gardner Buchanan, plus some changes from a NetBSD/amiga driver by Michael Hitch, and some bug fixes and enhancements by me. [thorpej 19970901]

Split NE2000 support out of the ISA "ed" driver, and create an "ne" driver to handle multiple attachments for NE2000 compatible cards. Add front-ends for ISA and PCI. [thorpej 19971014]

add ne2000 ISA Plug-and-Play attachment. [matt 19971016]

Update the "fxp" driver from FreeBSD-current. [thorpej 19971019]

Break the 3Com 3c503 support out of the ISA "ed" driver, and create an "ec" driver, front-end to the MI dp8390 driver. [thorpej 19971101]

Add ifmedia support to the MI dp8390 driver. [thorpej 19971101]

Break the WD/SMC 80x3, SMC Elite Ultra, and SMC EtherEZ support out of the ISA "ed" driver, and create a "we" driver, front-end to the MI dp8390 driver. [thorpej 19971103]

Remove the ISA "ed" driver. It is obsolete. [thorpej 19971103]

ext2

Added kernel and userland support for the ext2 file system [bouyer 19970611]

modified to have allow and deny information in /etc/ftpusers and have a `deny by default' facility. Backward compatable with previous /etc/ftpusers files. [cjs 19970405]

add support for /etc/ftpd.conf, allowing support for `conversions', displaying and/or notification of certain files when a directory is first entered, amongst other features. Each feature can be controlled on a per class basis (one of: real, chroot, guest, all or none). [lukem 19970614]

add local-address:port syntax for listening on addresses other than INADDR_ANY. [mouse 19970102]

make several services no longer run as root. [mrg 19971007]

ipfilter

updated to version 3.2beta5. [veego 19970921]

updated to version 3.2. [mrg 19971031]

updated to version 3.2.1. [mrg 19971117]

isa

convert isadma.c to be a user of new bus dma framework, and convert all drivers that use it to the new API. [thorpej 19970606]

XXX Add a drq2 locator for the ISA bus. Many sound cards need two DMA channels to do e.g. full-duplex. This allows a way of specifying the second channel in a sane way. THIS IS TEMPORARY. The drq2 locator will go away when the locator system has been changed to allow multiple values per locator. [augustss 19970825]

kernel

Implement bitmask_snprintf(), which takes a value and a string representing the names of those bits, prints them into a buffer provided by the caller, and returns a pointer to that buffer. Functionality is identical to that of the (non-standard) `%b' printf() format, which will be deprecated. Also, rename the non-exported function ksprintn() to ksnprintn(), and change it to use a buffer provided by the caller, rather than at static buffer. [thorpej 19961112]

msync() takes a third argument; remove obsolete xdr_{domainname,mapname,peername} from xdryp.c; make __ps_strings extern on setproctitle.c and don't set it to a default when it is NULL; change unvis() argument to an int from a char; move timezone() to libcompat; move swapon() to libcompat move getdirentries() to libcompat change <sys/types.h>: mode_t: u_int16_t -> u_int32_t nlinks_t: int16_t -> u_int32_t dev_t: int32_t -> u_int32_t libc is now version 12.20 [christos 19971016]

now that getnetby*() supports BIND lookups (as opposed to only files), add support for dispatch for via "lookup ..." in /etc/resolv.conf, a'la gethostby*(). [thorpej 19970731]

add lchmod, lchown and lutimes. [enami 19971006]

msync() takes a third argument; remove obsolete xdr_{domainname,mapname,peername} from xdryp.c; make __ps_strings extern on setproctitle.c and don't set it to a default when it is NULL; change unvis() argument to an int from a char; move timezone() to libcompat; move swapon() to libcompat move getdirentries() to libcompat change <sys/types.h>: mode_t: u_int16_t -> u_int32_t nlinks_t: int16_t -> u_int32_t dev_t: int32_t -> u_int32_t libc is now version 12.20 [christos 19971016]

misc

Add compile-time control of autonice time and autonice value using "options AUTONICETIME=sec" and "options AUTONICEVAL=6" in kernel config files. Also, sysctl can be used to tweak these in a running system. See man {3,8} sysctl for more information. [explorer 19960717]

Wrote and added rdsetimage(8), a program to set kernel RAM disk images. [cgd 19961003]

Moved <machine/exec.h> to <machine/aout_machdep.h>, and updated <sys/exec.h> and <sys/exec_aout.h> appropriately. [cgd 19961008]

Change {h,n}to{n,h}l to take and return in_addr_t, and {h,n}to{n,h}s to take and return in_port_t. [christos 19961012]

Allow the install program to be overridden. sys.mk now defines the variable INSTALL which defaults to "install". Changes Makefiles throughout the system to use the new variable. Fixes PR misc/1458, from Simon J. Gerraty <sjg@zen.void.oz.au>: [thorpej 19961017]

add a MNT_NOCOREDUMP/'nocoredump' mount flag/option, which prevents crashing processes from dumping core on file systems with it set. [cgd 19961023]

rename remrq() to remrunqueue() for consistency with setrunqueue() (which was renamed from setrq() by Lite). Also, move its prototype from vm/vm_extern.h to sys/proc.h so that it's in the same place as prototypes for related functions. [cgd 19961106]

Went through entirety of src/lib for potential buffer overruns. Removed almost all use of sprintf/strcat/strcpy. [mrg 19970123]

kill many unconditional #defines in conf/param.c, effectively adding a large number of kernel config options. [tls 19970129]

Implement machine-independent mountroothook code, derived from similar code implemented by me in the sparc and x68k ports. This is used to execute a special operation before a device is mounted as root (such as ejecting a floppy, and prompting for a new disk.) [thorpej 19970130]

Implement a new, fault-tolerant vfs_mountroot(), which is capable of determining the root file system type if the operator didn't specify one in the kernel configuration file. Change file system mountroot functions to return errors properly, rather than panic'ing. If the file system can not be mounted, the operator will be prompted for a root device and file system type, or be given the option to halt the system. [thorpej 19970130]

Convert KMEMSTATS to a header option. [thorpej 19970202]

Move the boot_${ARCH}.8 man pages that were sitting in reboot into man/man8/man8.${ARCH}, and rename to boot.8 -- also updated a bunch of junk, especially in the i386 page. [perry 19970312]

Rename the etc/mtree/4.4BSD.dist file to NetBSD.dist [perry 19970312]

Add a SYMLINKS variable to the share/mk/bsd.*.mk files -- does the same thing as LINKS, only symbolically. [perry 19970312]

Add link-time warning if mktemp(), tempnam() or tmpnam() is used; suggest mkstemp() instead. Modify a few programs in the tree to meet this. [lukem 19970324]

Move findroot/setroot stuff into the new cpu_rootconf function that is called just before vfs_mountroot so that this code can rely upon tsleep and timeouts [gwr 19970326]

Update and enhancement to the mbuf code, to support use of non-cluster external storage. Highlights: - additional "void *" argument to (*ext_free)(), an opaque cookie for use by the free function. - MCLALLOC() and MCLFREE() calls are gone. They are replaced by MEXTADD() (add external storage to mbuf), MEXTMALLOC() (malloc() external storage and attach to mbuf), and MEXTREMOVE() (remove external storage from mbuf). - completely new external storage reference counting mechanism; mclrefcnt[] is gone. These changes will eventually be used to pass driver DMA buffers up the network stack, and reduce/eliminate copies in certain code paths (e.g. NFS writes). From Matt Thomas <matt@3am-software.com> and myself <thorpej@nas.nasa.gov>, with some input from Chris Demetriou <cgd@cs.cmu.edu> and review by Charles Hannum <mycroft@mit.edu>. [thorpej 19970327]

Appletalk networking stack. Code based on netatalk release beta-970220 from toccata.fugue.com. Import based on Ted Lemon's and Bill Studenmund's working copy. [christos 19970402]

upgraded BIND (named, resolver, and include files) to version 4.9.5-P1. [mrg 19970413]

Implement new vm_page_alloc_memory() and vm_page_free_memory() functions, used to allocate unmapped managed pages conforming to various allocation constraints. [thorpej 19970606]

New sysctl hw.machine_arch which returns the CPU class of a machine. [veego 19970607]

Eliminate all use of dtom() in sys/net*. Allows greater flexibility to use mbuf external storage, and improves performance by eliminating m_pullup()'s for clusters in the IP reassembly code. From Koji Imada <koji@math.human.nagoya-u.ac.jp> in PR #3628 and PR #3480. [thorpej 19970623]

Eliminate use of dtom() in the handling of UNIX domain sockets. Since this was the last use of dtom(), purge the dtom() macro from sys/mbuf.h. [thorpej 19970624]

If the user attempts to set SO_SNDLOWAT or SO_RCVLOWAT socket options greater than the high-water marks for those socket buffers, silently truncate the request to the high-water value, like BSD/OS. [thorpej 19970624]

Bring in Lite2 locking code and apply it in a few places, such as avoiding race conditions in inode allocation. [fvdl 19970707]

namei()

net

Allow the routing socket to be opened and listened to by non-superuser. Also allow non-superuser to perform RTM_GET. All other messages require superuser status. At the same time, remove the setuid bit from /sbin/route, since it's no longer needed. [thorpej 19970221]

ARP support for non-Ethernet-style links: Replaced <netinet/if_ether.h> partially by <net/if_ether.h>, partially by <netinet/if_inarp.h>. struct ifnet has a new member if_sadl, pointer to the link level sockaddr structure. Added AF_ARP, currently only for in-kernel communication. Added ARP support to common MI ARCnet driver (net/if_arcsubr.c). Bumped OS version to NetBSD-1.2D, as you can't mix network drivers from pre-1.2D with 1.2D and later. XXX Some userland stuff (e.g.: rarpd, tcpdump/libpcap) needs more work to support non-Ethernet-style links. Some man 9 pages are not yet written. [is 19970316]

netinet

change length and offset fields in headers to be unsigned so that we can actually use the max IP packet size. From Kevin M. Lahey <kml@nas.nasa.gov> [thorpej 19961024]

sanity check packet length against IP_MAXPACKET on incoming and outgoing packets, and discard as appropriate. Based on a patch from Bill Fenner <fenner@parc.xerox.com> Add a `too long' counter to IP stats. [thorpej 19961024]

implement IP_RECVIF socket option; supply a datagram's incoming interface as a sockaddr_dl in a control mbuf on datagram reception. Move packet information socket option processing to a generic function so that it works with multicast UDP and raw IP, as well as unicast UDP. Contributed by Bill Fenner <fenner@parc.xerox.com> [thorpej 19970110]

Implement a compressed state engine for TCP, based on code written by David Borman for BSD/OS. This compressed state engine is currently used to hold state for embryonic TCP connections. Rather than creating a socket/TCB for the incoming SYN, it is placed into the compressed state engine. A TCB is only created once the 3-way handshake has been completed. Among other things, this provides complete protection from "SYN flood attacks" without the need to drop half-open connections. MANY MANY thanks to BSDI for releasing the original code, and to Ted Lemon <mellon@NetBSD.org> for doing the initial integration work! [thorpej 19970723]

Fix several annoyances/bugs related to MSS handling in BSD TCP. Split up t_maxseg and the tcp_mss() function, and dynamically compute the max size for tcp_output() on a per-segment basis. [thorpej 19970922]

add support for path MTU discovery (RFC 1191) [kml 19971017]

netns

Make a pass as 64-bit friendliness in sys/netns. [thorpej 19970718]

netstart

configure lo0 before other interfaces, so the kernel can automagically add a route from the interface to lo0, negating the need for an explicit route per interface. [lukem 19970803]

network

Disallow SO_SNDBUF, SO_RCVBUF, SO_SNDLOWAT, and SO_RCVLOWAT socket options to have values < 1. Such values to not make sense, so return EINVAL. Inspired by PR #3770, from Havard Eidnes <he@vader.runit.sintef.no>. [thorpej 19970624]

nfs

change default for nfs mounts to not do a connect on the socket. Add option -C to force a connected mount. Now option -c is still there, but it is the default. Maybe amd should be changed similarly. [christos 19961027]

Performance improvement from Doug Rabson/FreeBSD. Improve the queuing algorithms used by NFS' asynchronous i/o. The new mechanism uses a queue for each mount point. All asynchronous i/o goes through this queue which preserves the ordering of requests. A simple mechanism ensures that the iods are shared out fairly between active mount points. Reviewed/integrated/approved by fvdl@NetBSD.org. [thorpej 19961202]

add a max_target member to struct scsi_link, filled in by host adapter drivers to indicate the maximum target they can address. Use this value to dynamically allocate data structures, rather than using a hard-coded value of 8 targets. Allows MI SCSI to deal with targets > 7 now. [thorpej 19961210]

scsipi

Added a new bus interface machinery sys/dev/scsipi, for use with SCSI and ATAPI devices (derived from sys/scsi). Split sys/dev/isa/wd.c into controller and disk drivers. Added a command queue and ATAPI support on the controller driver [bouyer 19970827]

ALWAYS use YP if the system is bound to a YP server. This is required if the passwd database is to stay in sync if this program is run on the YP server. Note, local passwd database operations can still be performed by passing the -l flag. [thorpej 19960809]

sockets

implement SO_TIMESTAMP socket option; supply a timestamp as a timeval in a control mbuf on datagram reception. [thorpej 19970110]

sun3x

*all* dirty file data should be written out at sync time, not just data modified with write. This requires ensuring that the VM system does so as well. This fixes a severe bug involving potential data loss with mmap()ed files. [tls/mycroft 19970216]

ufs

add "noatime" mount option, which prevents the access time on files from being updated. Good for news spools. [tls 19970129]

vm

change pageout to sleep on vm_pages_needed rather than lbolt. stops the well known freeze for N seconds bug. see PR #2755 for a more detailed summary of the problem. change suggested by john dyson. [mrg 19960918]