fix inverted logic
The remainder is more interesting here.
make get_cpus return something in the range of num online cpus most the time.
constify file/path names
split random.c into seed.c
add an extra case to the taviso rand function
use rand_bool everywhere instead of rand() % 2
device names can be const.
move ARG_ADDRESS handling to separate function
move ARG_RANGE handling out to own function
move ARG_OP handling out to own function
move ARG_LIST handling out to own function
move ARG_RANDOM_PAGE out to own function
move ARG_IOVEC handling out to own function
move ARG_IOVECLEN/SOCKADDRLEN out to own function
move ARG_SOCKADDR handling out to own function
move ARG_MODE_T handling out to own function
rename ARG_RANDOM_INT to ARG_RANDOM_LONG

This has been bugging me for a while.
Rewrite the tree-walk permissions checking

It looks like there were some cases where we'd miss a file we could read/write.
Split shm->parentpid into two.

In some cases this was 'initial process', and the rest of the time 'forking thread'.
Split into two so watchdog monitors only the forking process.

This way, if for whatever reason the forking thread dies (usually a segv)
then we don't hang, because the watchdog will see it's no longer around
instead of it checking on the init process.

Additionally, these pids don't need to be in the shm.