summaryrefslogtreecommitdiff
path: root/sys/src
AgeCommit message (Collapse)Author
2020-07-02bcm64: fix usb xhci controller on pi4 8GB variant (thanks richard miller)cinap_lenrek
On the 8GB variant of the raspberry pi 4, the eeprom chip for the xhci controller is missing and instead loaded from sdram (by the gpu firmware). for this, the gpu firmware needs to be notified of the xhci controllers pci bus address (after reset) that was assigned by our pci enumeration code.
2020-06-29upas/fs: move unixheader handling to parseheaders()cinap_lenrek
parsing the unixheader in mdir fetch routine is the wrong place, as no invalid character handling has been performed yet. also the string is not neccesarily null terminated. avoid duplication with plan9 mbox parsing and just do it in parseheaders(), which already handles faking the unix headers for pop3 and imap.
2020-06-28kernel: segflush() needs to flush tlb of other processescinap_lenrek
instruction cache maintenance is done on tlb miss; when a page gets fauled in; with putmmu() checking the page->txtflush cpu bitmap. syssegflush() used to only call flushmmu() after segflush() for the calling process, but when a segment is shared with other processes, we have to flush the other processes tlb as well. this adds the missing procflushseg() call into segflush(). note that procflushseg() leaves the calling process alone, so the flushmmu() call in syssegflush() is still required. segmentioproc() does not need to call flushmmu() after segflush() as it is never going to jump to the modified page, hence the stale icache does not matter.
2020-06-27aux/trampoline: Implement inactivity timeout (-t option)cinap_lenrek
Using aux/trampoline to relay udp traffic needs a inactivity timeout to be practical as there is no explicit connection termination.
2020-06-24upas/fs: remove now unused Mtrunc mimeflags constantcinap_lenrek
2020-06-24upas/fs: use memchr() instead of strchr() in hdrlen()cinap_lenrek
make sure we look for the end of the header within the pointer range, and not accidentally read beyond hend. also, messages are not null terminated, so this could even go beyond the email data buffer. get rid of mimeflag which was only used for some assert checks. take header length into account when comparing header against ignored header strings.
2020-06-24mergecinap_lenrek
2020-06-24ip/tinc: run script sub-shell in its own environmentcinap_lenrek
2020-06-22upas/marshal: make attachment failure fatalAlex Musolino
2020-06-21usbxhci: implement isochronous in transfers (for webcam, audio recording)cinap_lenrek
2020-06-21devusb: keep isochronous ep->hz consistent with maxpkt, ntds and pollivalcinap_lenrek
The sample frequency is an artificial parameter used for isochronous out transfers to better match the target frequency (usually, a sound card). when hz is set, devusb adjusts the endpoint's maxpkt to get the requested frequency and a multiple of the samplesize per packet. however, when hz is not set, then we should calculate the frequency from maxpkt, ntds and pollival, so all parameters will be consistent with each other.
2020-06-21abaco: add fonts.h to HFILES in mkfile (thanks eekee)Alex Musolino
2020-06-19ip/torrent: fix size check in 64-bit "v" unpack (thanks pr)cinap_lenrek
2020-06-15libc: revert date change again. this is getting ridicuoulus.cinap_lenrek
this breaks the sample from the seconds manpage, and overall produces funky results. this needs alot more testing. term% seconds '23 may 2011' seconds: tmparse: invalid date 23 may 2011 near 'may 2011' term% seconds '2019-01-01 00:00:00' -118370073600
2020-06-14libc, seconds: new time and date apis (try 2)Ori Bernstein
Redo date handling in libc almost entirely. This allows handling dates and times from outside your timezones, fixes timezone loading in multithreaded applications, and allows parsing and formatting using custom format strings. As a test of the APIs, we replace the formatting code in seconds(1), shrinking it massively. The last commit missed a few removals, and made it unnecessarily hard to do an update.
2020-06-14libc: reverting previous change until ori can fix itcinap_lenrek
2020-06-13libc, seconds: new time and date apis.Ori Bernstein
Redo date handling in libc almost entirely. This allows handling dates and times from outside your timezones, fixes timezone loading in multithreaded applications, and allows parsing and formatting using custom format strings. As a test of the APIs, we replace the formatting code in seconds(1), shrinking it massively.
2020-06-12mergecinap_lenrek
2020-06-12ramfs: make Elocked[] more consistent (thanks fazlul)cinap_lenrek
Go expects the error to be one of the three errors returned in Bell Labs Plan 9. As listed in https://github.com/golang/go/blob/f7ba82d68f90e20aa9e6aa973cb6f12321abec71/src/cmd/go/internal/lockedfile/lockedfile_plan9.go#L16: // Opening an exclusive-use file returns an error. // The expected error strings are: // // - "open/create -- file is locked" (cwfs, kfs) // - "exclusive lock" (fossil) // - "exclusive use file already open" (ramfs) var lockedErrStrings = [...]string{ "file is locked", "exclusive lock", "exclusive use file already open", }
2020-06-11acme: implement position-dependent scroll-wheel scrollingkvik
This brings acme scrolling behaviour in line with that of 9front's rio and sam, where the amount scrolled varies with a vertical position of the pointer within the window, similar to how the scrollbar works. At some point it would be good to implement a line-at-a-time scrolling when the Shift key is pressed, as seen in rio. For this to happen the acme keyboard input needs to be rewritten in terms of /dev/kbd instead of relying on keyboard(2) -- that is, the /dev/cons interface.
2020-06-09libplumb: add missing mkfileOri Bernstein
2020-06-07acme: add missing logf.ccinap_lenrek
2020-06-07ip/6in4: request ipv4 packets only in ipmux filtercinap_lenrek
2020-06-07devip: implement ipv6 support in ipmux packet filtercinap_lenrek
Added a ver= field to the filter to distinguish the ip version. By default, a filter is parsed as ipv6, and after parsing proto, src and dst fields are converted to ipv4. When no ver= field is specified, a ip version filter is implicitely added and both protocols are parsed. This change also gets rid of the fast compare types as the filed might not be aligned correctly in the packet. This also fixes the ifc= filter, as we have to check any local address.
2020-06-07snoopy: add ipmux pseudo protocolcinap_lenrek
the ipmux pseudo protocol handles the extra ipv6 interface address prefixed to the ip header as used by /net/ipmux packet filter.
2020-06-07devip: fix parseipmask() prototype in ip.hcinap_lenrek
2020-06-06acme: import event log from plan9port (thanks fshahriar)Ori Bernstein
Based off the following 3 commits: 4a3fb87264f8bc03fc62f00ef335056f30d18023 45f8ba54143323f08a21343633764caa59aa3ea3 fdf6ef333705c844bcf3ccf2f93b2773f1a6aa41 Reading /mnt/acme/log reports a log of window create, put, focus, and delete events, as they happen. It blocks until the next event is available. Example log output: 8 new /Users/rsc/foo.go 8 put /Users/rsc/foo.go 8 del /Users/rsc/foo.go This lets acme-aware programs react to file writes, for example compiling code, running a test, or updating an import block.
2020-06-06devip: pick less surprising interface address in header for incoming UDP packetscinap_lenrek
We used to just return the first address of the incoming interface regardless of if the address matches the source ip type and scope. This change tries to find the best interface address that will match the source ip so it can be used as a source address when replying to the packet.
2020-06-06mergecinap_lenrek
2020-06-06aux/vga: use 64-bit physical addresses for pci membarcinap_lenrek
2020-06-06devlml: use 64-bit physical addressescinap_lenrek
2020-06-06audiosb16: cleanup audioprobe(), cast ISAConf.port to ulongcinap_lenrek
2020-06-06audioac97: use 64-bit physical addressescinap_lenrek
2020-06-06audiohda: use 64-bit physical addresses, check pci membar typescinap_lenrek
2020-06-06pc/pcmciamodem: cast i/o port to ulongcinap_lenrek
2020-06-06pc/pmmc: check pci membar typecinap_lenrek
2020-06-06uartaxp: use 64-bit physical addresses and check pci membar typescinap_lenrek
2020-06-06pc/wavelan: print Ether.port as 64-bit valuecinap_lenrek
2020-06-06sd53c8xx: use 64-bit physical addressescinap_lenrek
2020-06-06sdmv50xx: use 64-bit physical addresses and check pci membar typecinap_lenrek
2020-06-06sdiahci: use 64-bit physical addressescinap_lenrek
2020-06-06sdodin: use 64-bit physical addresses and check pci membar typecinap_lenrek
2020-06-06sdnvme: make sure pci membar type is memorycinap_lenrek
2020-06-06usbuhci: make sure pci membar type is i/ocinap_lenrek
2020-06-06usbehcipc: use 64-bit physical addresses and check pci membar typecinap_lenrek
2020-06-06pc/ether*: use 64-bit physical addresses and check pci membar types and sizescinap_lenrek
2020-06-06pc/vga*: use 64-bit physical addresses and check pci membar types and sizescinap_lenrek
2020-06-06archacpi: use 64-bit uvlong for physical addressescinap_lenrek
2020-06-06devvga: use 64-bit physical addresses for framebuffercinap_lenrek
2020-06-06devpccard: use 64-bit physical addressescinap_lenrek