New 9front release “KÄPTN BLAUBÄR”


direct download

dash 1

dash 1 manual

kernel and drivers

kernel: add pagechaindone() to wakeup processes waiting for memory

kernel: declare _tas() to prevent pulling in libc version (for libmemdraw)

kernel: do not inherit (current working directory) in kproc()

kernel: do not inherit current directory channel (dot) to pager

kernel: do not pull in atom.s from libc for arm kernels

kernel: dont use smalloc() to allocate pte array in ibrk()

kernel: fis comment PciSID (alphapc, kw, mtx, teg2) (thanks qeed!)

kernel: fix accounttime() for HZ >= 1000

kernel: ignore last page at the top of virtual kernel address space for xalloc()

kernel: ignore memory pages with singular kernel addresses

kernel: implement separate wait queues for page allocation

kernel: map pci bars for devices with base class codes (ccrb) 0x00 and 0x0D-0x11 (thanks qeed)

kernel: reject bogus two byte “#!” shell scripts in sysexec()

kernel: remove debugalloc.c

kernel: remove waserror() arround newpage() in mntcache

kernel: use HDR_MAGIC constant to handle Exec header extension, make rebootcmd() handle AOUT_MAGIC macro

kernel: various cleanups of imagereclaim(), pagereclaim(), freepages(), putimage()

pc, pc64: toggle bit 2 in port 0x61 to reset and enable PCI SERR# nmi’s, print nmi status

pc: check Sse (bit 25) in cpuiddx before enabling fxsr in cr4 (fixes crash on the pentium II)

pc64: use unsigned long for kmapindex and mmu counts avoiding signed integer division

zynq: add /dev/fbctl to attach framebuffer to devdraw

zynq: add support for hardware cursor

zynq: fix /dev/pl

zynq: fix barriers

zynq: fix flushmemscreen()

zynq: increase kernel memory for graphics

zynq: make screen and cursor kprocs exit properly

zynq: mouse acceleration

zynq: remove unused PTE typedef

zynq: remove unused statistics fields from Mach structure

zynq: use KADDR() for kmap() if we can avoiding the mapping

ether82563: fix multicast filter (based on openbsd em(4) driver)

etherigbe: spi eeprom support (thanks echoline)

etheriwl: add multicast stub, dont clear descriptors after completion

etherrt2860: add multicast stub

etherwpi: Intel PRO Wireless 3945abg driver based on openbsd’s if_wpi (thanks aap)

9boot: look for plan9.ini in all filesystems accessible to efi to find plan9 partition

aux/vga: disable nvidiascale() as it broke modeset on kenjis card

aux/vga: dont use /proc/$pid/mem to access vga bios

devcons: add current pool allocations to #c/swap

devfs: remove useless ~OTRUNC mask for openmode

devmnt: do not use user buffer to update the mount cache

devproc: make sure statbufread offset wont turn negative

devsegment: fix parsecmd() memory leak

devstream: fast sequential file access with 9p pipelining experiment

devtls: ignore UnrecogniedName (112) alert message (for SNI)

ip: fix wrong radix for iphash() (thanks yoann padioleau)

kbdfs: Runemax is inclusive.

nusb/audio: dont sysfatal on bad endpoint (no altc)

nusb/disk: adding identical partition is a no-op

nusb/serial: remove unused channel

nusbrc: handle fat formated usb drives without partition table

usbd: set device info for control file (see usb(3), thanks qeed)

wifi: adjust transmit rate on error (for etheriwl), small mkfile changes

wifi: berlin prime bunny hopping

wifi: reflect current transmit rate in mbps

compilers and debuggers

5e: approximate LL/SC with cas()

5e: enable VFP emulation by default, doubles only need to be 4 byte aligned

5e: implement DSB,DMB,ISB and CLREX instructions

5e: make sure stack base is aligned to avoid unaligned memory trap on arm

cc: handle unaligned data in = {0} local initializer

cc: set unspecified elements to zero in local variable initializers

cpp: search source file directory first for quoted #include (thanks Ori_B)


ape: add stdint.h, fix SSIZE_MAX and add SIZE_MAX to limits.h

ape: define long long limits

ape: include <sys/types.h> in <sys/wait.h> for pid_t (thanks jens staal)

ape: port libc smp tas() for arm

lib9p: fix lib9p wstat qid.type/mode checks (fixes lock(1) for ramfs/hjfs)

libFLAC: fix compiler warnings by properly declaring void function arguments

libc/arm: implement _tas() with LDREX/STREX, execute memory barrier on smp systems (zynq)

libc: use Runemax instead of hardcoded 0x65536 for fmtchar check (thanks qrstuv)

libdisk: error handling, sanity checks

libdraw: consistent use of nil for pointers, error handling

libdraw: don’t loop forever when getting eof on /dev/cons in keyboard ioproc

libdraw: sync allocimage/allocwindow prototypes with man pages

libhttpd: declare hvprint

libsec: implement tlsClient support for RFC6066 server name identification (SNI)

lock: reopen lockfile after changing mode to make lock effective


9660srv: go back to 128k clusters, keep data and metadata separate in the cache with a tag

9fs: handle all the dos filesystems in one case, add esp handler

authsrv: remove unused opasstokey

authsrv: use plan9 key for http authentication

aux/cpuid: make sure extended feature bits are available (fixes crash on the pentium II)

cdproto: /sys/log/httpd should be a directory, added /sys/log/pop3

cifsd: smbrename is still ok when file is readonly (fixed git)

cp: experimental stream support

disk/edisk: gpt partition table editor

disk/fdisk: learn about EFI system partition (type 0xEF), honor protective mbr (type 0xEE)

disk/format: create Fatinfo sector for fat32

disk/partfs: adding identical partition is no-op

dontkill: only use noswap flag to mark processes as not to be terminated on oom

dossrv: maintain file creation date/time on disk, fsinfo sector can be 0 (disabled)

fcp: fix wrong write pointer offset when read returns less than DEFB bytes

fcp: use iounit() to determine buffer size, reduce number of worker procs to 8

games/doom: fix desyncing demo (thanks qwx), remove Makefile

gunzip: the extra length field (XLEN) is two bytes instead of one

hgweb.cgi: take REPO_ROOT and REPO_NAME from env, so can be used out of the box

hjfs: defer parent directory permission check for wstat

htmlroff: fix wrong newline in \name handling (| -> ||)

httpfile: fix evictblock() so we wont consume all the memory

inst/bootplan9: skip mbr installation and active partition switching when we have no plan9 dos partition

inst: fix download task using ip/httpfile to mount a iso over http and prompt for installurl

inst: provide gpt/mbr choice when disk is blank, format esp

integrate disk/edisk with diskparts, bootfs and installer (gpt support)

ip/httpd: fix syslog file

mk9660: write data in alphabetical order

ndb/dns: use same buffer size of udp packet in redistrib() as dnudpserver() (fixes assert)

page: make lookahead fetch work in backwards direction

pkg: remove pkg(1), we regret the error

qc, 9/ppc, 9/mtx: fix wrong if statements

rc-httpd: cleanup cgi handler, various fixes

rootstub: do not create pkg directories

stats: add kernel malloc and kernel draw allocation size graphs

sysinfo: update -p for

sysupdate: change source repo to

tar, tarfs: implement longname support

tcs: fix swaped alias mapping gb <-> gb2312

test: use libc.h constants for access() mode (thanks qrstuv)

tftpd: count only options we understand so we wont send empty oack message

uhtml: check if document is valid utf8 even with charset specified

usps: cut the useless part

vblade, cifs, usbuhci: fix parenthesis

webfs: send servername in tls client hello (SNI)

wpa: do not prompt for key when there is already one in factotum

manual pages, documentation, misc

faces: add!doug (thanks, qrstuv)

faces: add updated addresses for quanstro, bwc, steve.simon (thanks, erik)

fortunes: Turning off comments.

rob: No we can’t.

rsc: I think I’m missing something.

theo: You are on your own.

troll: Subject: unusable acme

addpt(2): document badrect function, put badrect in .SH NAME so that it gets into the searchindex

colors(1), who(1): add missing SOURCE entries

cputime(2): fix prototype for cycles() (thanks qrstuv)

dhcpd(8): the fs attribute refers to the file server, not the name server (thanks, pena)

esetcursor(2), alarm(2): fix prototypes

event(2): fix estartfn prototype

exec(2): exec argument size only limited by user stack size, fix prototypes, return register (R0) contains address of Tos structure.

freeimage(2), readcolmap(2), writecolmap(2): fix prototypes

ndb(6): fix typo (thanks, pena)

open(2): fix typo

prep(8): document disk/edisk

prep(8): edisk also adds a EFI system partition (esp) when not already exists.

thread(2): fix prototype for threadint() and threadkillgrp() (thanks qwx!)