These are minimal adjustments to the current uAPI, as inspired by Maarten Lankhorst and his process of running the headers through pahole. But instead, I adjusted them manually, making minimal changes so that the 64-bit uarch would result in the same alignment, so existing userspace software with the previous header will still work. The only difference is that 32-bit userspace software needs the new header, to continue working with the kernel.
I've split it into two patches, like was suggested to @mlankhorst, one with the uAPI header, and one with the validation code.
Edited 2023-05-12 20:42 PDT: Updated against latest rebase.