660e3e001d
Sync the kernel fork with 10 upstream commits (context timer-separation with unblock_context/wakeup_context, dtb MMIO/bus-address translation + tests, event read_with_timeout support, proc wakeup paths, dup2 rewrite with rollback, futex Weak context_lock + unblock_context, memory/init ordering, and more). Satisfies the verify-fork-functions gate (11 previously-missing upstream functions now present). Conflicts resolved (5 files; 9 auto-merged): - src/syscall/futex.rs: took upstream's version wholesale (Weak context_lock, upgrade+unblock_context, TimeSpec::to_nanos, get_futex_stat, addr_space strong_count cleanup); re-applied the RB FUTEX_WAIT_MULTIPLE/FUTEX_REQUEUE implementations adapted to the Weak API, with wake-index bookkeeping preserved (Context::futex_wake_index survives in context.rs). - src/event.rs: merged EventQueue with both RB's fd-refcount refs and upstream's timeout_opt (init in new()); kept RB's EventCounter/ eventfd block; added upstream's read_with_timeout + EVENT_TIMEOUT_ID write handling; deduplicated EAGAIN/EINTR imports. - src/scheme/proc.rs: upstream imports minus UnmapVec (RB deleted that machinery from context/memory.rs — import-only dependency); ContextHandle::Start keeps RB's require_zero_offset + upstream's wakeup_context; FORCEKILL region takes upstream's is_dead()/being_sigkilled form. - src/syscall/fs.rs: took upstream's dup2 structure (natural self-dup-with-buf handling — preserves the relibc dup2(ft,ft, "refresh") semantic — plus rollback on insert failure), adapted to the fork's 4-arg duplicate_file and read/token_split conventions. - src/arch/aarch64/start.rs: kept upstream's new PageMapper/ acpi::init_before_mem/memory::init_mm init block. Verified: repo cook kernel --force-rebuild successful; verify-fork-functions.sh --no-fetch kernel passes.