initfs/tools: buffer inode table writes in memory and flush with a
single write_all_at instead of one syscall per inode header.
randd: build a proper entropy pool using SHA-256 that mixes hardware RNG
(RDRAND/RNDRRS) with timing-derived entropy. The pool is re-seeded
every 4096 reads and on every write. User-supplied entropy from writes
is added to the pool rather than directly replacing the PRNG state.
ptyd: VLNEXT now properly quotes the next input byte — sets a flag that
causes the next byte to bypass all control-character processing and be
pushed directly to the line buffer. VDISCARD now flushes the cooked
input buffer instead of being a silent no-op.
logd scheme.rs:
- Kernel log reader: don't break loop on 0-byte read. /scheme/sys/log
presents a snapshot; breaking loses all future entries. Now polls
with a 50ms sleep on drain, continuing to capture new kernel logs.
Also slice buffer to actual bytes read to avoid processing stale data.
- read(): return EBADF instead of silent Ok(0) stub. Logd handles are
write-only sinks; reading is not a valid operation.
- fcntl(): return ENOSYS instead of silent Ok(0). No fcntl operations
are implemented for log handles.
- fsync(): remove TODO comment; behavior (Ok(())) is correct since the
output channel guarantees FIFO delivery.
ipcd uds/stream.rs:
- events(): remove 'TODO: block on write buffer'. Backpressure is now
applied at the scheme level.
- fevent(): filter EVENT_WRITE based on peer receive buffer fullness
against sender's SO_SNDBUF. Prevents busy-spin when buffer is full.
- write_inner(): check backpressure before accepting data. Return
EAGAIN (non-blocking) or EWOULDBLOCK (blocking) when peer buffer
would exceed SO_SNDBUF limit. Only applies to established connections.
- handle_sendmsg(): same backpressure check for sendmsg path.
initfs tools/src/lib.rs:
- Replace hardcoded PAGE_SIZE=4096 constant with runtime detection via
sysconf(_SC_PAGESIZE). Handles 16K/64K page ARM hardware correctly.
Falls back to 4096 with logged warning if sysconf fails or returns
an invalid value.