Find a way to do that without violating POSIX, adding a huge new layer of
non-POSIX infrastructure (which nobody will ever use for portable code),
or replicating every single POSIX call (which all set errno) with some
other call (which throws this kernel->userspace exception thing).
Now find a way to throw exceptions from the kernel into userspace without
violating MS's patents on exactly that.