summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-12-17bridge(3): clarify manpage, this is a layer2 bridgecinap_lenrek
yes, it peeks into IP packets to handle fragmentation when sending onto tunnel ports and does mss clamping. but it can carry arbitrary ethernet packets just fine (between ethernets).
2017-12-17pc, pc64: add devbridge to kernel configurationcinap_lenrek
2017-12-17devbridge: fix mss clampingcinap_lenrek
- use protocol constants from ip/ip.h and ip/ipv6.h - support mss clamping for ipv6 - fix padding bug on 64 bit machines (can't use sizeof(Tcphdr))
2017-12-17ip/tinc: handle single byte noop and end-of-option-list tcp options in ↵cinap_lenrek
clampmss()
2017-12-17wifi: use protocol constants from ip/ip.h and ip/ipv6.h for dmatproxy()cinap_lenrek
2017-12-16wifi: matt damon wifi bridging supportcinap_lenrek
2017-12-15ether: allow spoofing of source mac address for bridges; used by vmxcinap_lenrek
to implement layer 2 bridges in userspace, we disable to auto filling of the source mac address when bridge mode is enabled on the connection.
2017-12-13vmx(1): fix virtio network bloomfilteraiju
2017-12-11/sys/man/*/*: fix perms (sorry)stanley lieber
2017-12-11fortunes: Subject: [oss-security] nvi denial of servicestanley lieber
2017-12-11/sys/lib/rootstubstanley lieber
2017-12-09devether: remove duplicated parseether() implementation (pull from libip)cinap_lenrek
2017-12-09libflate: force non-empty huffman table in mkzprecode() for deflatecinap_lenrek
busybox gunzip fails on empty (offset) huffman tables, so force one entry. gzip states in a comment: The pkzip format requires that at least one distance code exists, and that at least one bit should be sent even if there is only one possible code.
2017-12-05disk/edisk: allow printing and readonly inspection of hybrid MBR/GPT disks ↵cinap_lenrek
(thanks aiju) dumping hybrid MBR/GPT disks is fine, which can sometimes be found on USB sticks. but prohibit editing. however, always barf on disks with dos partitions and missing protecive MBR partition entry.
2017-12-04realemu: fix precedence bug in argconv() format routine (thanks dan cross)cinap_lenrek
2017-12-04realemu: fix pit bcd modecinap_lenrek
2017-12-03plan9.ini(8): 9boot(8) is not a DOS program, remove outdated BUGS sectioncinap_lenrek
2017-12-03devvga: properly handle physical screen size and panningcinap_lenrek
- remove arbitrary limits on screen size, just check with badrect() - post resize when physgscreenr is changed (actualsize ctl command) - preserve physgscreenr across softscreen flag toggle - honor panning flag on resize - fix nil dereference in panning ctl command when scr->gscreen == nil - use clipr when drawing vga plan 9 console (vgascreenwin())
2017-12-03screenlock: put position check back in grabmouse (thanks deuteron)cinap_lenrek
the check was there because changing te position causes another mouse event to get posted resulting in grabmouse spinning.
2017-12-03screenlock: have keyboard activity reset blank timeoutcinap_lenrek
2017-12-03screenlock: avoid continuous blanking, draw fullscreen over bordercinap_lenrek
2017-12-03screenlock: some improvementscinap_lenrek
check for "needkey " error string from auth_userpasswd() in case no key is pesent in factotum. this used to be a common trap with stand alone machines that do not have an authentication server setup. indicate authentication in progress by drawing a white border. delete unneccesary cruft and simplify the code.
2017-12-03libauth: replace proto=p9cr with new proto=dp9ik/p9sk1 role=login for ↵cinap_lenrek
auth_userpasswd()
2017-12-03auth/factotum: add role=login protocol variant to dp9ik/p9sk1cinap_lenrek
the role=login protocol is ment to replace proto=p9cr in auth_userpasswd() from libauth to authenticate a user given a username and a password. in contrast to p9cr, it does not require an authentication server when user is the hostowner and its key is present in factotum.
2017-12-03auth/login: add missing quotefmtinstall(), quote dom attributecinap_lenrek
2017-12-03errstr(2): add /sys/src/libc/9sys/rerrstr.c to SOURCE sectioncinap_lenrek
2017-12-01screenlock: blank screen using /dev/mousectl (thanks sl)cinap_lenrek
2017-11-30libsec: make includes consistent for sha2block*.ccinap_lenrek
2017-11-30libsec: unroll portable sha1block functioncinap_lenrek
just 6-10% slower than most assembly versions. 20% faster on zynq.
2017-11-30libsec: unroll portable sha2block functionscinap_lenrek
- unroll the loops - rotate the taps on each step, avoiding copies - simplify boolean formulas for Ch() and Maj() this yields arround 40% throughput increase on 32/64bit archs for sha2_256 and sha2_512 on amd64.
2017-11-27games/blit: update screen when display address changes (thanks aap)aiju
2017-11-27vmx(1): fix openbsd 6.2 amd64 !entrystate bugaiju
2017-11-27libsec: optimize aesCBCencrypt()/aesCBCdecrypt()cinap_lenrek
- get rid of the temporary copies and memmoves() - when the data pointer is aligned, do xor and copying inline speedup for auth/aescbc encryption depends on arch: - zynq 7% (arm) - t23 13% (386) - x230 20% (amd64, aes-ni) - apu2 25% (amd64, aes-ni)
2017-11-26cga: capture cga console contents on boot, make sure cgapos is in rangecinap_lenrek
to capture bios and bootloader messages, convert the contents on the screen to kmesg. on machines without legacy cga, the cga registers read out as 0xFF, resuting in out of bounds cgapos. so set cgapos to 0 in that case.
2017-11-26devvga: re-render text from kmesg after resizecinap_lenrek
2017-11-22spin: Update to most recent version. (thanks Ori_B)cinap_lenrek
from Ori_B: There were a small number of changes needed from the tarball on spinroot.org: - The mkfile needed to be updated - Memory.h needed to not be included - It needed to invoke /bin/cpp instead of gcc -E - It depended on `yychar`, which our yacc doesn't provide. I'm still figuring out how to use spin, but it seems to do the right thing when testing a few of the examples: % cd $home/src/Spin/Examples/ % spin -a peterson.pml % pcc pan.c -D_POSIX_SOURCE % ./6.out (Spin Version 6.4.7 -- 19 August 2017) + Partial Order Reduction Full statespace search for: never claim - (none specified) assertion violations + acceptance cycles - (not selected) invalid end states + State-vector 32 byte, depth reached 24, errors: 0 40 states, stored 27 states, matched 67 transitions (= stored+matched) 0 atomic steps hash conflicts: 0 (resolved) Stats on memory usage (in Megabytes): 0.002 equivalent memory usage for states (stored*(State-vector + overhead)) 0.292 actual memory usage for states 128.000 memory used for hash table (-w24) 0.534 memory used for DFS stack (-m10000) 128.730 total actual memory usage unreached in proctype user /tmp/Spin/Examples/peterson.pml:20, state 10, "-end-" (1 of 10 states) pan: elapsed time 1.25 seconds pan: rate 32 states/second
2017-11-20libsec: write optimized _chachablock() function for amd64 / sse2cinap_lenrek
doing 4 quarterround's in parallel using 128-bit vector registers. for second round shuffle the columns and then shuffle back. code is rather obvious. only trick here is for the first quaterround PSHUFLW/PSHUFHW is used to swap the halfwords for the <<<16 rotation.
2017-11-19libmach: fix format for 8db sse shift opscinap_lenrek
2017-11-196l: fix typo in optab table for APSLLQ (0x7e -> 0x73)cinap_lenrek
2017-11-19kernel: make isaconfig() consistent, not inplace tokenizing the conf stringcinap_lenrek
2017-11-19inst/mounthjfs: use /dev/swap instead of #c/swap to determine memory size ↵cinap_lenrek
(thanks aap)
2017-11-186in4: add -m mtu option to specify outer MTUcinap_lenrek
instead of hardcoding the tunnel interface MTU to 1280, we calculate the tunnel MTU from the outside MTU, which can now be specified with the -m mtu option. The deault outside MTU is 1500 - 8 (PPPoE).
2017-11-169pc64: handle special case in fpurestore() for procexec()/procsetup()cinap_lenrek
when a process does an exec, it calls procsetup() which unconditionally sets the sets the TS flag and fpstate=FPinit and fpurestore() should not revert the fpstate.
2017-11-16audio/flacdec: add eof handler avoiding endless spinning on broken files ↵cinap_lenrek
(thanks deuteron)
2017-11-14pc64: fix mistake fpurestore() mistakecinap_lenrek
cannot just reenable the fpu in FPactive case as we might have been procsaved() an rescheduled on another cpu. what was i thinking... thanks qu7uux for reproducing the problem.
2017-11-13igfx: allocate backing memory for framebuffer and hw cursor when not done by ↵cinap_lenrek
bios (from qu7uux) new approach to graphics memory management: the kernel driver never really cared about the size of stolen memory directly. that was only to figure out the maximum allocation to place the hardware cursor image somewhere at the end of the allocation done by bios. qu7uux's gm965 bios however wont steal enougth memory for his native resolution so we have todo it manually. the userspace igfx driver will figure out how much the bios allocated by looking at the gtt only. then extend the memory by creating a "fixed" physical segment. the kernel driver allocates the memory for the cursor image from normal kernel memory, and just maps it into the gtt at the end of the virtual kernel framebuffer aperture. thanks to qu7uux for the patch.
2017-11-12libsec: AES-NI support for amd64cinap_lenrek
Add assembler versions for aes_encrypt/aes_decrypt and the key setup using AES-NI instruction set. This makes aes_encrypt and aes_decrypt into function pointers which get initialized by the first call to setupAESstate(). Note that the expanded round key words are *NOT* stored in big endian order as with the portable implementation. For that reason the AESstate.ekey and AESstate.dkey fields have been changed to void* forcing an error when someone is accessing the roundkey words. One offender was aesXCBmac, which doesnt appear to be used and the code looks horrible so it has been deleted. The AES-NI implementation is for amd64 only as it requires the kernel to save/restore the FPU state across syscalls and pagefaults.
2017-11-12pc64: allow using the FPU in syscall and pagefault handlerscinap_lenrek
The aim is to take advantage of SSE instructions such as AES-NI in the kernel by lazily saving and restoring FPU state across system calls and pagefaults. (everything can can do I/O) This is accomplished by the functions fpusave() and fpurestore(). fpusave() remembers the current state and disables the FPU if it was active by setting the TS flag. In case the FPU gets used, the current state gets saved and a new PFPU.fpslot is allocated by mathemu(). fpurestore() restores the previous FPU state, reenabling the FPU if fpusave() disabled it. In the most common case, when userspace is not using the FPU, then fpusave()/fpurestore() just toggle the FPpush bit in up->fpstate. When the FPU was active, but we do not use the FPU, then nothing needs to be saved or restored. We just switched the TS flag on and off agaian. Note, this is done for the amd64 kernel only.
2017-11-08pc64: set ts flag before schedinit()cinap_lenrek
2017-11-04mergecinap_lenrek