92f9d629c0
Round 6 follow-up: extends the stub-replacement work to add POSIX named semaphore support (sem_open) and fixes two ioctl helper unsoundness issues. * sem_open (src/header/semaphore/mod.rs): implements the POSIX named semaphore API. The cbindgen.toml now includes <bits/valist.h> for va_list and defines SEM_FAILED ((sem_t *)0). The implementation uses O_CREAT from fcntl.h and mode_t from the platform types. This unblocks packages that use sem_open (e.g. Apache Portable Runtime, glib's GMutex, postgres extensions). * ioctl dup_read/dup_write (src/header/sys_ioctl/redox/mod.rs): replaces mem::size_of::<T>() with mem::size_of_val(t) to correctly handle types whose size is not statically known (e.g. DST arrays). The dup_write path now uses raw syscall3 to write through the pointer without constructing a &[u8] reference over potentially uninitialized padding bytes, removing the FIXME unsoundness marker. The upstream TODO comment in dup_read was also removed since the size_of_val fix addresses the padding concern. These are concurrent changes from an in-progress relibc fork that landed on the working tree but were never committed.