front (v1)






dash 1 and man pages in print: http://9front.org/propaganda/books

THANKS: momus


kernel: catch execution read fault on SG_NOEXEC segment

kernel: clear FPillegal in pexit() and before pprint()

kernel: expose no execute bit to portable mmu code as SG_NOEXEC / PTENOEXEC, add PTECACHED bits

kernel: get rid of tmperrbuf and use syserrstr swapping instead in namec()

kernel: make exec clear errstr, stop side-channels and truncate on utf8 boundary

kernel: make user stack segment non-executable

kernel: move common ethermii to port/

kernel: prohibit changing cache attributes (SG_CACHED|SG_DEVICE) in segattach(), set SG_RONLY in data2txt()

kernel: simplify pgrpnote(); moving the note string copying to procwrite()

bcm, kw, omap, teg2: implement setregisters()

bcm: add cache invalidate before accessing prop buffer

bcm: fix typo in gpio.c on unused AFedge0 constant

bcm: flush out early boot messages on uart and screen initialization

bcm: invalidate cache on Fbinfo after firmware completion

bcm: set XN bits for kernel device mappings

bcm64: add addarchfile() prototype to fns.h (for qeed)

bcm64: add config for raspberry pi 4

bcm64: add driver for emmc2 controller

bcm64: add gic interrupt controller driver for raspberry pi 4

bcm64: add gisb arbiter driver to catch bus timeouts

bcm64: add pci express driver for raspberry pi 4

bcm64: add support for more than 1GB of ram (untested)

bcm64: deal with discontinuous memory regions, avoid virtual memory aliasing, implement vmap() proper

bcm64: do not use OTP_BOOTMODE_REG to determine OSC frequency (thanks richard miller)

bcm64: enable devgpio in kernel configuration (thanks qeed)

bcm64: enter page tables in mmutop AFTER switching asid in mmuswitch()

bcm64: fix mmu0clear() mistake from previous commit

bcm64: fix wrong prescaler for generic timer on rpi4

bcm64: generalize mmu code

bcm64: implement dtracy support

bcm64: implement reboot support

bcm64: no need to flush instruction cache when switching TTBR0

bcm64: poll gisb arbiter for asynchronous bus errors

bcm64: remove unneccesary tlb flush on mmuidmap()

bcm64: reorganize virtual memory map for rapberry pi4

bcm64: replace emmc2 driver with richard millers sdhc driver

bcm64: set XN bits for kernel device mappings

bcm64: strip debug symbols to make sure .img file is multiple of 4 bytes

bcm64: switch to 64k page size

bcm64: update io.h for pci express and raspberry pi 4

bcm64: work in progress genet ethernet driver for raspberry pi 4

bcm, bcm64: add BCM2711 support for gpiopull(), fix gpiomeminit(), cleanup

bcm, bcm64: add dmaflush() function and make virtio size and virtual address configurable in Soc.virtio and Soc.iosize

bcm, bcm64: add support for device tree parameter passing

bcm, bcm64: add vcore support for raspberry pi 3 GPIO expander

bcm, bcm64: clean dma destination buffer before issuing dma in case of non cache-line-size aligned buffer

bcm, bcm64: fix cache operations for dma and emmc

bcm, bcm64: make irq.$O optional and add intrdisable(), use intrenable()

bcm, bcm64: preserve memsize across reboots, avoid trashing atags while parsing cmdline

devdtracy: make machlocks and dtktab static

devip: fix permission checking

devip: if the server does not support TCP ws option, disable window scaling (thanks joe9)

devproc: fix fishy locking in proctext(), check proc validity, static functions

devproc: move proctab() call after Qnotepg special case in procwrite()

devproc: restore psstate info string in procstopwait()

devuart: make sure uart is enabled in uartkick()

ethergenet: fix flow control negotiation

ethergenet: remove debugging

emmc: 50MHz highspeed support (from richard miller)

pc: move low-level allocation details out of mmu.c into memory.c rampage() function

pc64: fix compiler warning in rebootjump() entry calculation

pc64: implement NX bit discovery, map kernel mappings no-execute

pc64: map kernel text readonly and everything else no-execute

pc64: preallocate mmupool page tables

sdide: silence compiler warning in atadebug()

usbehci: introduce dmaflush() function to handle portable cache invalidation for device drivers

usbehci: silence “param declared but not used” compiler warning in itdinit()/sitdinit()

usbxhci: fix mysterious ENABLESLOT failures (update to XHCI spec revision 1.2 (2019))

usbxhci: implement portable dma flush operations and move to port/

usbxhci: fix endpoint stall recovery, handle Ep.clrhalt flag

vgai81x: use vmap() for uncached access to cursor data instead of manipulating kernel page table


7l: don’t hardcode 4k pagesize, use INITRND

8c, 6c: LEA x, R; MOV ®, R -> MOV x, R

8c, 6c: avoid allocating index registers when we don’t have to

8c, 6c: fix INDEX node #reg calculation

8c: skip 64-bit regpair allocation for OINDEX nodes in cgen64()

8l, 6l: fix “unknown relation: TEXT” xfol() bug (thanks mischief)

cc: fix void cast crash

cc: remove nullwarn() from OCAST codegen, zap void casts

cc: use 7 octal digits for 21 bit runes

cc: Allow address expressions in ?c after int casts.

cc: Import compiler warnings and bugfixes from Charles.

acid/kernel: fix procstk() for arm64, set kdir for arm/arm64 to bcm/bcm64

acid/kernel: for stacktraces, try to use context from error stack when process is not sleeping


ape: Add mkstemp to /sys/src/ape/lib/ap/gen/mkfile

ape: don’t hardcode list of ape library directories in /sys/src/ape/lib/mkfile

ape: fix stdio putc() macro, avoiding “result of operation not used” warning

ape: reimplement rename() - fixing compiler warnings and handling more error cases

ape: revert rename() change

ape: Include integer limits from generic stdint.h in system-specific stdint.h

ape: Add missing UINTsz_MIN defines to ape stdint.h

ape: Add test for pow.c

ape: Add toascii()

ape: Handle NaN and Inf edge cases as specified by posix, instead of barfing.

ape: Turn on warnings when building libap.

ape: Add mkstemp to stdlib.h

lib9p: fix listensrv() filedescriptor leaks

libauth: do not set errstr in auth_rpc() for ARdone result (thanks majiru)

libflac: Tell it that we have stdint.h so it finds SIZE_MAX

libstdio: fix putc(), plan9 version

libventi: define VtEntryNoArchive constant

libventi: implement vtreconn and vtredial functions

libventi: implement vtsha1 and vtsha1check functions


ape/cc: Add arm64 and remove alpha, add spim

awk: no need to call getargv() twice to get the value for FILENAME

cwfs: fix listen filedescriptor leaks

date: Add RFC2822 (email style) formatted dates

g: Make it grep recursively by default.

auth/rsa2asn1: implement private key export with -a flag (thanks kvik)

snoopy: add support for dhcp classless static routes option

snoopy: avoid extra spaces in dhcp filter output

snoopy: include dhcp.h instead of replicating bootp/dhcp options enum

ssh: work around github.com’s broken cipher negotiation code (thanks Ori_B)

cmd/ip/*: chown the network connection after authentication

cwfs: fix root access time qid path comparison

cwfs: properly handle 64 bit qid path

cwfs: remove old some assert() debugging

cwfs: remove orphaned lrand.c

disk/format: implement long name support

file: recognise unified diff output

gs: apply fixes for CVE-2018-16509 (thanks jsmoody)

gs: apply mitigations against CVE-2017-8291 (thanks jsmoody)

gs: fix missing type check in ztype (thanks jsmoody)

ip/cifsd: add basic support for UNIX extensions

ip/cifsd: dont return garbage in upper 32 bit of unix extension stat fields

ip/cifsd: exit to close connection when we get malformed smb header (fixes linux mount hang)

ip/ipconfig: don’t leave behind null address when dhcp gets interrupted

ndb/dnsquery, ndb/csquery: write “>” prompt to stderr (thanks kvik)

pcc: Always turn on the -+ flag in cpp

plumber: loop will go out of bounds when *++s == ‘\0’; replace with strstr

rc-httpd: avoid duplicate log output in dir-index handler

rc-httpd: only emit charset option for text/plain content type

rc-httpd: serve markdown with text/plain content-type

rc-httpd: set charset=utf-8 for all text/* content types

sshfs: use threadexits() instead of exits()

upas/fs: remove read timeout via alarm(2) in pop3resp

upas/fs: speedup mtree and henter()

upas/smtp: handle temporary authentication failures

vmx: handle build arch exclude in /sys/src/cmd/mkfile

vncv: fix snarf buffer realloc memory corruption


2c(1): document 7c (arm64)

draw(3): memlorigin

nusb(2): remove startdevs() reference, document getdev() (thanks BurnZeZ)

rsa(2): document asn1encodeRSApriv() and asn1encodeRSApub() functions

rune(2): complete source references

sshnet(4): … and incoming TCP calls

tinc(8): add history section

vmx(1): update BUGS

walk(1): add history section


/sys/lib/dist/mkfile: adjust 2GB for pi3 and zynq img

/sys/lib/dist/mkfile: storage vendors idea of 2GB is deflating

/sys/src/cmd/mkfile: fix PCONLY exclude (thanks stefan)

/sys/src/boot/bcm/mkfile: add missing device tree file for raspberry pi 4

/sys/src/boot/bcm/mkfile: add raspberry pi 4 kernel and bootloader to pi3.img target

bootrc: remount devip after /dev/hostowner has been written by factotum

bootrc: unmount devip before starting factotum

mkone: fix man target (thanks Amavect)