cinap_lenrek [Sun, 14 Feb 2016 04:18:33 +0000 (05:18 +0100)]
adding experimental rcpu service
this is a reimplementation of cpu and import utilities in rc using a tlsclient
and tlssrv as the encryption and authentication layers. there is only one new
service, which after authentication and encryption setup accepts an arbitrary
rc script over the network and executes it with the standard filedescriptors
redirected to the conversaion (this is *after* authentication and in the
context of the authorized user).
the new rcpu program has a few improvements over cpu(1):
- doesnt mangle program arguments
- the remote process will get the clients standard file descriptors, so error
and output are separated and you can consume the clients input from the
remote side :-)
- forwards error status of remote process
theres no backwards mode for rimport, but a new program called rexport
for the same purpose.
all these services use exportfs without the bolted on initial handshake,
so the hope is to clean up exportfs in the future and remove all the ugly
crap in there.
cinap_lenrek [Sun, 14 Feb 2016 00:42:32 +0000 (01:42 +0100)]
provide /n and /mnt early in bootrc to allow consistent use in /lib/namespace
theres a bootstrap problem:
when /bin/init is run, it processes /lib/namespace where we might want to
mount or bind resources to /n or /mnt. but mntgen was run later in
cpurc/termrc so these mounts would be ignored.
we already have mntgen in bootfs, so we can provide these mountpoints early.
i keep the termrc/cpurc mntgens where they are, but ignore the error
prints. this way old kernels will continue to work.
cinap_lenrek [Sat, 13 Feb 2016 15:36:24 +0000 (16:36 +0100)]
rio: fix wrong frame colors when moving non-current window
When a window is moved or reshaped, that implicitely tops
the window and makes it current. The conseqence of this
is that we always have to redraw the window as if it where
a current window in any case. This was handled for Reshaped
windows, but not when the window was just moved. We now
handle both cases the exact same way, getting rid of the
Moved wctl message.
Matthew Veety [Tue, 9 Feb 2016 21:24:41 +0000 (16:24 -0500)]
Imported ngfs libgio. This is a library to create virtual file descriptors, similar to common lisp grey-streams or golang's io.Reader/io.Writer. Now 95% bug-free.
cinap_lenrek [Sat, 30 Jan 2016 18:11:33 +0000 (19:11 +0100)]
games/doom: fix white window issue on exit
make kbdproc() and mouseproc() share fd table with the main proc
and not explicitely close the file descriptors. so /dev/mouse gets
closed *after* /dev/draw/new to avoid the white window refresh issue.
cinap_lenrek [Mon, 11 Jan 2016 05:47:52 +0000 (06:47 +0100)]
pc/pc64: bring up ap's one after another, use idlehands() while waiting for thunderbirdsarego
when testing in qemu, launching each ap became slower and slower
because all the ap's where spinning in syncclock() waiting for
cpu0 to update its mach0->tscticks, which happens only much later
after all cpu's have been started up.
now we wait for each cpu to do its timer callibration and
manually update our tscticks while we wait and each cpu will
not spin but halt while waiting for active.thunderbirdsarego.
this reduces the system load and noise for timer callibration
and makes the mp startup linear with regard to the number of
cores.
cinap_lenrek [Tue, 5 Jan 2016 02:57:50 +0000 (03:57 +0100)]
fdisk: properly convert byte units K,M,G and T to cylinders/sectors
the shared command language assumed 512 byte sectors, which is
not the case for fdisk as it uses cylinders for the block unit.
so we introduce an extra argument in the Edit structure and
parseexpr() function so byte sizes are properly converted to
the block unit when the K,M,G and T postfixes are used.
cinap_lenrek [Tue, 22 Dec 2015 16:00:00 +0000 (17:00 +0100)]
libjson: fix memory leak setjmp/longjmp problem (thanks spew)
spew → I fixed the memory leak setjmp/longjmp problem with libjson
spew → http://www.spew.club/json.patch
spew → full file: http://www.spew.club/json.c
spew → going to bed, I'll annoy cinap_lenrek tomorrow to try to get this committed
cinap_lenrek [Wed, 16 Dec 2015 20:18:20 +0000 (21:18 +0100)]
libmp: add mpfield() function for fast field arithmetic
instead of testing for special field primes each time in mpmod(),
make it explicit with a mpfiled() function that tests a modulus N
to be of some special form that can be reduced more efficiently with
some precalculation, and replaces N with a Mfield* when it can. the
Mfield*'s are recognized by mpmod() as they have the MPfield flag
set and provide a function pointer that executes the fast reduction.
Matthew Veety [Mon, 7 Dec 2015 22:59:53 +0000 (17:59 -0500)]
made sure that rcmain.local runs independent of the existence of $home/lib/profile. Documented /rc/lib/rcmain, /rc/lib/rcmain.local, $home/lib/profile in rc(1) and the first two in namespace(4)
Matthew Veety [Mon, 7 Dec 2015 21:01:09 +0000 (16:01 -0500)]
Added change to /rc/lib/rcmain to allow execution of /rc/lib/rcmain.local if it exists. /rc/lib/rcmain.local is similar to $home/lib/profile in that it will only be executed with -l, but is site-wide.
cinap_lenrek [Mon, 7 Dec 2015 16:00:41 +0000 (17:00 +0100)]
yacc: attempt to keep line numbers right for yyparse()
as the generated parser intermixes lines from .y source
and the parser text, the line source/lineno for yyparse()
shows up wrong in the debugger. to make stack traces a
bit less crazy, put a #line 1 "/sys/lib/yaccpar" before
copying in the parser text.