d157c2274e
redox-scheme Socket and RawEventQueue create fds via libredox raw syscalls (SYS_DUP, openat) that bypass the redox-rt userspace FILETABLE. When FdGuard::dup later reserves a POSIX fd slot via FILETABLE.add_posix, it can reserve a position occupied by the untracked socket fd. SYS_DUP_INTO then closes the socket and replaces it, corrupting the procmgr's fd table. Add register_external_fd() to redox-rt::sys that marks an existing kernel fd as occupied in the userspace FILETABLE. Call it from procmgr::run() for the socket fd and event queue fd.