]> git.lizzy.rs Git - plan9front.git/log
plan9front.git
6 years agowifi: learn target ip address from neighbor advertisements in dmat proxy
cinap_lenrek [Fri, 12 Jan 2018 17:28:50 +0000 (18:28 +0100)]
wifi: learn target ip address from neighbor advertisements in dmat proxy

6 years agowifi: filter out loopback traffic from myself
cinap_lenrek [Fri, 12 Jan 2018 07:01:15 +0000 (08:01 +0100)]
wifi: filter out loopback traffic from myself

broadcast traffic was received back on the wire causing
duplicate address detection to break with dmat proy as
the rewritten broadcasts where observable.

the fix is to just ignore packets from ourselfs received
from the air. devether already handles loopback.

6 years agoip/ipconfig: set on-link flag in router advertisement prefix info (fixes windows7)
cinap_lenrek [Wed, 10 Jan 2018 17:28:23 +0000 (18:28 +0100)]
ip/ipconfig: set on-link flag in router advertisement prefix info (fixes windows7)

6 years agomerge
cinap_lenrek [Sun, 7 Jan 2018 23:24:55 +0000 (00:24 +0100)]
merge

6 years agoether8169: deal with kernel memory exhaution
cinap_lenrek [Sun, 7 Jan 2018 23:23:26 +0000 (00:23 +0100)]
ether8169: deal with kernel memory exhaution

when kernel memory is exhausted, rtl8169replenish() can fail
to plant more receive descriptors and rtl8169receive() would
run over the receive tail and crash on the nil ctlr->rb[x].

rtl8169receive() is called on "Receive Descriptor Unavailable"
and "Packet Underrun" so we will try to replenish descriptors
in the beginning first in case memory was exhausted and memory
is available again and make sure not to run over the tail.

6 years agomerge
cinap_lenrek [Sun, 7 Jan 2018 04:20:13 +0000 (05:20 +0100)]
merge

6 years agoforgot to commit asn1dump.c...
cinap_lenrek [Sun, 7 Jan 2018 04:17:34 +0000 (05:17 +0100)]
forgot to commit asn1dump.c...

6 years agorconnect: support -t timeout for aan like in drawterm; also rcpu, rexport/import
23hiro [Sun, 7 Jan 2018 01:44:53 +0000 (02:44 +0100)]
rconnect: support -t timeout for aan like in drawterm; also rcpu, rexport/import

6 years agoventi: fix wrong channel element size for amd64 (thanks mycroftiv)
cinap_lenrek [Sat, 6 Jan 2018 19:21:50 +0000 (20:21 +0100)]
venti: fix wrong channel element size for amd64 (thanks mycroftiv)

6 years agotlssrv: remove usage reference to lost auth/secretpem
cinap_lenrek [Sat, 6 Jan 2018 07:44:12 +0000 (08:44 +0100)]
tlssrv: remove usage reference to lost auth/secretpem

6 years agofactotum: remove unused sshrsa.c
cinap_lenrek [Sat, 6 Jan 2018 07:37:32 +0000 (08:37 +0100)]
factotum: remove unused sshrsa.c

6 years agolibsec: remove asn1toDSApriv()
cinap_lenrek [Sat, 6 Jan 2018 07:34:25 +0000 (08:34 +0100)]
libsec: remove asn1toDSApriv()

6 years agoremove asn12dsa, dsa2pub, dsa2ssh and dsagen
cinap_lenrek [Sat, 6 Jan 2018 07:32:51 +0000 (08:32 +0100)]
remove asn12dsa, dsa2pub, dsa2ssh and dsagen

was mostly usefull for old ssh.

6 years agoauth/asn1dump: include in mkfile
cinap_lenrek [Sat, 6 Jan 2018 06:44:12 +0000 (07:44 +0100)]
auth/asn1dump: include in mkfile

6 years agotlsclient: allow dumping the server's certificate with new -d flag
cinap_lenrek [Sat, 6 Jan 2018 06:43:08 +0000 (07:43 +0100)]
tlsclient: allow dumping the server's certificate with new -d flag

usefull for debugging, like:

./8.tlsclient -d /fd/3 tcp!code.9front.org!https |[0=3] auth/asn1dump

6 years agotlsclient: remove X509dump() call, writes to fd 1
cinap_lenrek [Sat, 6 Jan 2018 05:25:45 +0000 (06:25 +0100)]
tlsclient: remove X509dump() call, writes to fd 1

6 years ago/sys/lib/dist: split 9boot into 9bootproto, make *.386.iso and *.amd64.iso targets
cinap_lenrek [Fri, 5 Jan 2018 07:41:46 +0000 (08:41 +0100)]
/sys/lib/dist: split 9boot into 9bootproto, make *.386.iso and *.amd64.iso targets

6 years agoinst: determine kernel for bootsetup from $bootfile and $cputype
cinap_lenrek [Fri, 5 Jan 2018 07:38:23 +0000 (08:38 +0100)]
inst: determine kernel for bootsetup from $bootfile and $cputype

6 years agosysinfo: #c/swap -> #¶/swap
cinap_lenrek [Fri, 5 Jan 2018 01:43:28 +0000 (02:43 +0100)]
sysinfo: #c/swap -> #¶/swap

6 years agostats: show amount of reclaimable pages (add -r flag)
cinap_lenrek [Thu, 4 Jan 2018 23:52:14 +0000 (00:52 +0100)]
stats: show amount of reclaimable pages (add -r flag)

reclaimable pages are user pages that are used for
caches like the image cache, mount cache and swap cache.

6 years agopc kernel: fix wrong simd exception mask (fixes go bootstrap)
cinap_lenrek [Thu, 4 Jan 2018 03:38:31 +0000 (04:38 +0100)]
pc kernel: fix wrong simd exception mask (fixes go bootstrap)

6 years agoape/libauth: remove auth_wep.$O from mkfile
cinap_lenrek [Tue, 2 Jan 2018 05:05:47 +0000 (06:05 +0100)]
ape/libauth: remove auth_wep.$O from mkfile

6 years agoape: update auth.h header for APE
cinap_lenrek [Tue, 2 Jan 2018 03:59:44 +0000 (04:59 +0100)]
ape: update auth.h header for APE

6 years agofactotum(4): document dp9ik, update protocol list
cinap_lenrek [Tue, 2 Jan 2018 03:50:13 +0000 (04:50 +0100)]
factotum(4): document dp9ik, update protocol list

6 years agolibauth: simplify _attrfmt() using fmtprint() avoiding stack buffer
cinap_lenrek [Tue, 2 Jan 2018 03:47:42 +0000 (04:47 +0100)]
libauth: simplify _attrfmt() using fmtprint() avoiding stack buffer

6 years agolibauth: remove auth_wep() function, and non-existing httpauth() declaration
cinap_lenrek [Tue, 2 Jan 2018 03:31:21 +0000 (04:31 +0100)]
libauth: remove auth_wep() function, and non-existing httpauth() declaration

6 years agofactotum: remove legacy wep protocol
cinap_lenrek [Tue, 2 Jan 2018 03:27:23 +0000 (04:27 +0100)]
factotum: remove legacy wep protocol

6 years agolibauth: fix out of bounds memory access in _parseattr()
cinap_lenrek [Mon, 1 Jan 2018 22:23:55 +0000 (23:23 +0100)]
libauth: fix out of bounds memory access in _parseattr()

empty token would read ""[-1] accidentally in the AttrQuery case.

6 years agofactotum: replace custom hex parsing code with dec16() avoding timing side channels
cinap_lenrek [Mon, 1 Jan 2018 20:14:39 +0000 (21:14 +0100)]
factotum: replace custom hex parsing code with dec16() avoding timing side channels

6 years agolibmp: use constant time encode(2) routines instead of lookup tables
cinap_lenrek [Sun, 31 Dec 2017 09:59:01 +0000 (10:59 +0100)]
libmp: use constant time encode(2) routines instead of lookup tables

the encode(2) routines are constant time now, so
use them instead of using lookup table that can
leak information through cache timing side channel.

6 years agoape: make encXchr()/decXchr() functions available
cinap_lenrek [Sun, 31 Dec 2017 09:53:50 +0000 (10:53 +0100)]
ape: make encXchr()/decXchr() functions available

6 years agolibc: constant time implementation for encode(2) routines, fix base32
cinap_lenrek [Sun, 31 Dec 2017 08:06:42 +0000 (09:06 +0100)]
libc: constant time implementation for encode(2) routines, fix base32

the string encoding functions touch secret key material
in a bunch of places (devtls, devcap), so make sure we do
not leak information by cache timing side channels, making
the encoding and decoding routines constant time.

we also expose the alphabets through encXchr()/decXchr()
functions so caller can find the end of a encoded string
before calling decode function (for libmp).

the base32 encoding was broken in several ways. inputs
lengths of len%5 == [2,3,4] had output truncated and
it was using non-standard alphabet. documenting the alphabet
change in the manpage.

6 years agowifi: get rid of custom hextob() routine, use dec16(), avoid copies in parsekey()
cinap_lenrek [Sun, 31 Dec 2017 00:49:58 +0000 (01:49 +0100)]
wifi: get rid of custom hextob() routine, use dec16(), avoid copies in parsekey()

6 years agoaux/wpa: get rid of custom Hfmt() routine, just use encodefmt. use %E for mac addresses
cinap_lenrek [Sun, 31 Dec 2017 00:04:41 +0000 (01:04 +0100)]
aux/wpa: get rid of custom Hfmt() routine, just use encodefmt. use %E for mac addresses

6 years agolibsec: implement SPKI fingerprinting for okCertificate()
cinap_lenrek [Sat, 30 Dec 2017 02:07:47 +0000 (03:07 +0100)]
libsec: implement SPKI fingerprinting for okCertificate()

Instead of only using a hash over the whole certificate for
white/black-listing, now we can also use a hash over the
Subject Public Key Info (SPKI) field of the certificate which
contians the public key algorithm and the public key itself.

This allows certificates to be renewed independendtly of the
public key.

X509dump() now prints the public key thumbprint in addition
to the certificate thumbprint.

tlsclient will print the certificate when run with -D flag.

okCertificate() will print the public key thumbprint in its
error string when no match has been found.

6 years agolibsec: fix mistake: strnchr -> strchr
cinap_lenrek [Sat, 30 Dec 2017 01:47:02 +0000 (02:47 +0100)]
libsec: fix mistake: strnchr -> strchr

6 years agolibsec: avoid unneccesary memory copies and redundant code in x509
cinap_lenrek [Sat, 30 Dec 2017 01:36:47 +0000 (02:36 +0100)]
libsec: avoid unneccesary memory copies and redundant code in x509

getting rid of some functions that take Byte* and instead
pass uchar* and length.

keeping the signature and public key fields in CertX509
as Bits* allows ownership transfer by swapping pointers.

use common code to copy CN from subject field.

6 years agolibsec: get rid of dummy data[1] in Bytes and Ints types (thanks pr)
cinap_lenrek [Fri, 29 Dec 2017 19:04:42 +0000 (20:04 +0100)]
libsec: get rid of dummy data[1] in Bytes and Ints types (thanks pr)

6 years agousbxhci: add missing pexit() in xhcirecover proc (thanks sam-d)
cinap_lenrek [Fri, 29 Dec 2017 05:10:25 +0000 (06:10 +0100)]
usbxhci: add missing pexit() in xhcirecover proc (thanks sam-d)

6 years agowifi: revert rate adoption divider, breaks arpunks wifi
cinap_lenrek [Fri, 29 Dec 2017 02:41:32 +0000 (03:41 +0100)]
wifi: revert rate adoption divider, breaks arpunks wifi

6 years ago/lib/bullshit: +converged
cinap_lenrek [Fri, 29 Dec 2017 00:58:47 +0000 (01:58 +0100)]
/lib/bullshit: +converged

6 years agodevtls, devssl: avoid ~0UL comparsion (from drawterm)
cinap_lenrek [Thu, 28 Dec 2017 18:13:53 +0000 (19:13 +0100)]
devtls, devssl: avoid ~0UL comparsion (from drawterm)

6 years agodevmnt: use u32int for tagmask, simplify alloctag()
cinap_lenrek [Thu, 28 Dec 2017 17:25:15 +0000 (18:25 +0100)]
devmnt: use u32int for tagmask, simplify alloctag()

6 years agowifi: don't implicitely update lastseen timestamp on nodelookup()
cinap_lenrek [Thu, 28 Dec 2017 03:34:03 +0000 (04:34 +0100)]
wifi: don't implicitely update lastseen timestamp on nodelookup()

in case we continue to send traffic (like ping) with the ap gone,
the sending would keep updating bss->lastseen which prevents the
timeout to happen to switch bss.

6 years agoetheriwl, etherwpi: limit transmit queue buffer bloat to 48k (at 22Mbit ≅ 20ms)
cinap_lenrek [Thu, 28 Dec 2017 00:24:38 +0000 (01:24 +0100)]
etheriwl, etherwpi: limit transmit queue buffer bloat to 48k (at 22Mbit ≅ 20ms)

6 years agowifi: don't assume Wifi.rates[] is sorted, return net data rate for mbps (50% theoret...
cinap_lenrek [Thu, 28 Dec 2017 00:19:14 +0000 (01:19 +0100)]
wifi: don't assume Wifi.rates[] is sorted, return net data rate for mbps (50% theoretical)

6 years agoarch(3): document #P/realmodemem file
cinap_lenrek [Sat, 23 Dec 2017 03:45:22 +0000 (04:45 +0100)]
arch(3): document #P/realmodemem file

6 years agodevvga: removing #v/vgabios, use /dev/realmodemem instead
cinap_lenrek [Sat, 23 Dec 2017 03:26:50 +0000 (04:26 +0100)]
devvga: removing #v/vgabios, use /dev/realmodemem instead

6 years agokernel: convert textmode cga screen contents to kmesg only once
cinap_lenrek [Sat, 23 Dec 2017 02:56:12 +0000 (03:56 +0100)]
kernel: convert textmode cga screen contents to kmesg only once

screeninit() might be called again by devvga when switching
to textmode, so only convert the text framebuffer to kmesg
the first time.

6 years agoauth(8): auth/debug tests both dp9ik and p9sk1
cinap_lenrek [Sat, 23 Dec 2017 02:21:01 +0000 (03:21 +0100)]
auth(8): auth/debug tests both dp9ik and p9sk1

6 years agokernel: remove Ipifc.mbps, unused.
cinap_lenrek [Sat, 23 Dec 2017 01:58:47 +0000 (02:58 +0100)]
kernel: remove Ipifc.mbps, unused.

6 years ago/lib/bullshit: blockchain
cinap_lenrek [Fri, 22 Dec 2017 17:26:54 +0000 (18:26 +0100)]
/lib/bullshit: blockchain

6 years agoip/tinc: handle and set ethertype for ipv6
cinap_lenrek [Thu, 21 Dec 2017 03:11:02 +0000 (04:11 +0100)]
ip/tinc: handle and set ethertype for ipv6

6 years agoupas/fs: more bugs
cinap_lenrek [Tue, 19 Dec 2017 19:57:24 +0000 (20:57 +0100)]
upas/fs: more bugs

6 years agoupas/fs: fix precedence bugs, compare digest pointer to nil
cinap_lenrek [Tue, 19 Dec 2017 19:44:15 +0000 (20:44 +0100)]
upas/fs: fix precedence bugs, compare digest pointer to nil

6 years agoether8169: add Macv45 for RTL8111HN, rename Macv45 -> Macv42 (thanks qeed, sam-d)
cinap_lenrek [Mon, 18 Dec 2017 23:03:54 +0000 (00:03 +0100)]
ether8169: add Macv45 for RTL8111HN, rename Macv45 -> Macv42 (thanks qeed, sam-d)

6 years agonusb/ether: dont forward loopback packets on bridges, remove read nonblocking hack
cinap_lenrek [Mon, 18 Dec 2017 19:50:25 +0000 (20:50 +0100)]
nusb/ether: dont forward loopback packets on bridges, remove read nonblocking hack

6 years agodevether: dont forward loopback packets on bridges
cinap_lenrek [Mon, 18 Dec 2017 19:47:55 +0000 (20:47 +0100)]
devether: dont forward loopback packets on bridges

6 years agodevbridge: disable write blocking on ethernets
cinap_lenrek [Mon, 18 Dec 2017 19:44:53 +0000 (20:44 +0100)]
devbridge: disable write blocking on ethernets

6 years agobridge(3): clarify manpage, this is a layer2 bridge
cinap_lenrek [Sun, 17 Dec 2017 19:51:41 +0000 (20:51 +0100)]
bridge(3): clarify manpage, this is a layer2 bridge

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).

6 years agopc, pc64: add devbridge to kernel configuration
cinap_lenrek [Sun, 17 Dec 2017 19:33:39 +0000 (20:33 +0100)]
pc, pc64: add devbridge to kernel configuration

6 years agodevbridge: fix mss clamping
cinap_lenrek [Sun, 17 Dec 2017 19:30:24 +0000 (20:30 +0100)]
devbridge: fix mss clamping

- 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))

6 years agoip/tinc: handle single byte noop and end-of-option-list tcp options in clampmss()
cinap_lenrek [Sun, 17 Dec 2017 19:20:17 +0000 (20:20 +0100)]
ip/tinc: handle single byte noop and end-of-option-list tcp options in clampmss()

6 years agowifi: use protocol constants from ip/ip.h and ip/ipv6.h for dmatproxy()
cinap_lenrek [Sun, 17 Dec 2017 16:17:26 +0000 (17:17 +0100)]
wifi: use protocol constants from ip/ip.h and ip/ipv6.h for dmatproxy()

6 years agowifi: matt damon wifi bridging support
cinap_lenrek [Sat, 16 Dec 2017 20:43:47 +0000 (21:43 +0100)]
wifi: matt damon wifi bridging support

6 years agoether: allow spoofing of source mac address for bridges; used by vmx
cinap_lenrek [Fri, 15 Dec 2017 21:22:29 +0000 (22:22 +0100)]
ether: allow spoofing of source mac address for bridges; used by vmx

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.

6 years agovmx(1): fix virtio network bloomfilter
aiju [Wed, 13 Dec 2017 22:20:12 +0000 (22:20 +0000)]
vmx(1): fix virtio network bloomfilter

6 years ago/sys/man/*/*: fix perms (sorry)
stanley lieber [Tue, 12 Dec 2017 00:58:06 +0000 (19:58 -0500)]
/sys/man/*/*: fix perms (sorry)

6 years agofortunes: Subject: [oss-security] nvi denial of service
stanley lieber [Tue, 12 Dec 2017 00:36:54 +0000 (19:36 -0500)]
fortunes: Subject: [oss-security] nvi denial of service

6 years ago/sys/lib/rootstub
stanley lieber [Tue, 12 Dec 2017 00:34:15 +0000 (19:34 -0500)]
/sys/lib/rootstub

6 years agodevether: remove duplicated parseether() implementation (pull from libip)
cinap_lenrek [Sat, 9 Dec 2017 21:07:32 +0000 (22:07 +0100)]
devether: remove duplicated parseether() implementation (pull from libip)

6 years agolibflate: force non-empty huffman table in mkzprecode() for deflate
cinap_lenrek [Sat, 9 Dec 2017 17:20:29 +0000 (18:20 +0100)]
libflate: force non-empty huffman table in mkzprecode() for deflate

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.

6 years agodisk/edisk: allow printing and readonly inspection of hybrid MBR/GPT disks (thanks...
cinap_lenrek [Tue, 5 Dec 2017 22:44:43 +0000 (23:44 +0100)]
disk/edisk: allow printing and readonly inspection of hybrid MBR/GPT disks (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.

6 years agorealemu: fix precedence bug in argconv() format routine (thanks dan cross)
cinap_lenrek [Mon, 4 Dec 2017 04:14:31 +0000 (05:14 +0100)]
realemu: fix precedence bug in argconv() format routine (thanks dan cross)

6 years agorealemu: fix pit bcd mode
cinap_lenrek [Mon, 4 Dec 2017 04:09:13 +0000 (05:09 +0100)]
realemu: fix pit bcd mode

6 years agoplan9.ini(8): 9boot(8) is not a DOS program, remove outdated BUGS section
cinap_lenrek [Sun, 3 Dec 2017 18:23:55 +0000 (19:23 +0100)]
plan9.ini(8): 9boot(8) is not a DOS program, remove outdated BUGS section

6 years agodevvga: properly handle physical screen size and panning
cinap_lenrek [Sun, 3 Dec 2017 17:54:25 +0000 (18:54 +0100)]
devvga: properly handle physical screen size and panning

- 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())

6 years agoscreenlock: put position check back in grabmouse (thanks deuteron)
cinap_lenrek [Sun, 3 Dec 2017 15:34:35 +0000 (16:34 +0100)]
screenlock: put position check back in grabmouse (thanks deuteron)

the check was there because changing te position causes another
mouse event to get posted resulting in grabmouse spinning.

6 years agoscreenlock: have keyboard activity reset blank timeout
cinap_lenrek [Sun, 3 Dec 2017 05:41:41 +0000 (06:41 +0100)]
screenlock: have keyboard activity reset blank timeout

6 years agoscreenlock: avoid continuous blanking, draw fullscreen over border
cinap_lenrek [Sun, 3 Dec 2017 05:27:18 +0000 (06:27 +0100)]
screenlock: avoid continuous blanking, draw fullscreen over border

6 years agoscreenlock: some improvements
cinap_lenrek [Sun, 3 Dec 2017 04:47:35 +0000 (05:47 +0100)]
screenlock: some improvements

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.

6 years agolibauth: replace proto=p9cr with new proto=dp9ik/p9sk1 role=login for auth_userpasswd()
cinap_lenrek [Sun, 3 Dec 2017 04:14:33 +0000 (05:14 +0100)]
libauth: replace proto=p9cr with new proto=dp9ik/p9sk1 role=login for auth_userpasswd()

6 years agoauth/factotum: add role=login protocol variant to dp9ik/p9sk1
cinap_lenrek [Sun, 3 Dec 2017 04:10:04 +0000 (05:10 +0100)]
auth/factotum: add role=login protocol variant to dp9ik/p9sk1

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.

6 years agoauth/login: add missing quotefmtinstall(), quote dom attribute
cinap_lenrek [Sun, 3 Dec 2017 03:54:34 +0000 (04:54 +0100)]
auth/login: add missing quotefmtinstall(), quote dom attribute

6 years agoerrstr(2): add /sys/src/libc/9sys/rerrstr.c to SOURCE section
cinap_lenrek [Sun, 3 Dec 2017 01:22:48 +0000 (02:22 +0100)]
errstr(2): add /sys/src/libc/9sys/rerrstr.c to SOURCE section

6 years agoscreenlock: blank screen using /dev/mousectl (thanks sl)
cinap_lenrek [Fri, 1 Dec 2017 22:13:01 +0000 (23:13 +0100)]
screenlock: blank screen using /dev/mousectl (thanks sl)

6 years agolibsec: make includes consistent for sha2block*.c
cinap_lenrek [Thu, 30 Nov 2017 20:50:52 +0000 (21:50 +0100)]
libsec: make includes consistent for sha2block*.c

6 years agolibsec: unroll portable sha1block function
cinap_lenrek [Thu, 30 Nov 2017 20:30:03 +0000 (21:30 +0100)]
libsec: unroll portable sha1block function

just 6-10% slower than most assembly versions.
20% faster on zynq.

6 years agolibsec: unroll portable sha2block functions
cinap_lenrek [Thu, 30 Nov 2017 01:16:27 +0000 (02:16 +0100)]
libsec: unroll portable sha2block functions

- 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.

6 years agogames/blit: update screen when display address changes (thanks aap)
aiju [Mon, 27 Nov 2017 20:34:48 +0000 (20:34 +0000)]
games/blit: update screen when display address changes (thanks aap)

6 years agovmx(1): fix openbsd 6.2 amd64 !entrystate bug
aiju [Mon, 27 Nov 2017 09:30:15 +0000 (09:30 +0000)]
vmx(1): fix openbsd 6.2 amd64 !entrystate bug

6 years agolibsec: optimize aesCBCencrypt()/aesCBCdecrypt()
cinap_lenrek [Mon, 27 Nov 2017 00:31:19 +0000 (01:31 +0100)]
libsec: optimize aesCBCencrypt()/aesCBCdecrypt()

- 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)

6 years agocga: capture cga console contents on boot, make sure cgapos is in range
cinap_lenrek [Sun, 26 Nov 2017 16:11:01 +0000 (17:11 +0100)]
cga: capture cga console contents on boot, make sure cgapos is in range

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.

6 years agodevvga: re-render text from kmesg after resize
cinap_lenrek [Sun, 26 Nov 2017 03:49:30 +0000 (04:49 +0100)]
devvga: re-render text from kmesg after resize

6 years agospin: Update to most recent version. (thanks Ori_B)
cinap_lenrek [Wed, 22 Nov 2017 20:09:31 +0000 (21:09 +0100)]
spin: Update to most recent version. (thanks Ori_B)

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

6 years agolibsec: write optimized _chachablock() function for amd64 / sse2
cinap_lenrek [Sun, 19 Nov 2017 23:10:35 +0000 (00:10 +0100)]
libsec: write optimized _chachablock() function for amd64 / sse2

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.

6 years agolibmach: fix format for 8db sse shift ops
cinap_lenrek [Sun, 19 Nov 2017 20:11:41 +0000 (21:11 +0100)]
libmach: fix format for 8db sse shift ops

6 years ago6l: fix typo in optab table for APSLLQ (0x7e -> 0x73)
cinap_lenrek [Sun, 19 Nov 2017 20:10:36 +0000 (21:10 +0100)]
6l: fix typo in optab table for APSLLQ (0x7e -> 0x73)

6 years agokernel: make isaconfig() consistent, not inplace tokenizing the conf string
cinap_lenrek [Sun, 19 Nov 2017 16:17:04 +0000 (17:17 +0100)]
kernel: make isaconfig() consistent, not inplace tokenizing the conf string

6 years agoinst/mounthjfs: use /dev/swap instead of #c/swap to determine memory size (thanks...
cinap_lenrek [Sun, 19 Nov 2017 14:42:15 +0000 (15:42 +0100)]
inst/mounthjfs: use /dev/swap instead of #c/swap to determine memory size (thanks aap)