pf: Update to OpenBSD 4.2 All sorts of informations is now stored directly in the mbuf header instead of a seperate mbuf tag. This brings in a 100% performance increase in comparison to OpenBSD 4.1. For DragonFly this basically means this is the same performance as in 2.6, but we are equal again with OpenBSD's pf data structures. Necesary additions: sys/net: add more interface groups related functions if_creategroup() if_addgroup() if_delgroup() if_getgroup() if_getgroupmembers() Imported from OpenBSD carp: add carp_group_demote_adj() altq: re-add check of packet tagging fairq & red support, UDP nat'ing, reassembly fixed by Matthew Dillon
kernel - More pty fixes * Allow the pts to be closed and reopened while the ptc is held open (xterm issues a revoke + open). This fixes xterm. * Add a flag to differentiate between a slave not yet initially opened and a slave which has been closed, so ptc reads and the kqfilter can properly return EOF (tmux). * Remove pt_flags2 and fold its flags into pt_flags. * Create a shim to track ttyunhold()'s for session releases and release the underlying pts (for screen). Reported-by: josepht (xterm issue)
kernel - Fix direct getpages call to devfs cdev * This will be used by swapoff to bring pages in via VM objects. devfs was using getpbuf() when it really needed to be using getpbuf_kva(). Found-via: Ilya Dryomov's swapoff port
kernel - More tty/pty fixes * Notify the pty master when the slave closes. * Fix the zombie state stuff. Clear the zombie state on initial open of either side, prior to running any modem controls. * This appears to fix screen and tmux. Reported-by: YONETANI Tomokazu <qhwt+dfly@les.ath.cx>, Antonio Huete Jimenez <tuxillo@crater.dragonflybsd.org>
kernel - Fix multiple tty_token issues related to vt switching and X * Numerous places where gettoken/reltoken was not matched up * Of particular note the multi-line macros in fbreg.h did not have any do/while() protection and were being used in if() macro() situations which caused massive issues. Reported-by: Everyone
boot system and buildkernel - Additional work * Make boot <directory> work. Note however that dloader does not preload the kernel+modules so basically all you get here is the kernel and acpi with the current menu system setup. The dloader way (for the moment) is: cd kernel loadall boot * Fix console=<blah>. dloader was not mirroring the variable to the environment. Also do the same for currdev, loaddev, and bootfile. (kernelname and module_path were already mirrored). * Fix non-numeric menus. 'a' (kernel.alt), 'b' (kernel.bak), and 'R' (reboot). * Space now halts the countdown. * Add the boot-without ACPI option back into dloader.menu. * Move the handling of the kernelname kenv variable out of machine specific code and into kern/init_main.c
boot system and buildkernel - Remove the thrice damned forth interpreter * Remove the forth interpreter from the build. The last straw was when I tried to fix the module path and 6 hours later still couldn't get it right. * Write a C based menu system and loader, replacing what the forth code used to do. This is about 85% complete (tftp and boot chaining issues are not handled). This took exactly one day to do, by the way. * Reformulate installkernel to now create a directory /boot/kernel.blah and place the kernel and modules inside that directory.