Break the struct msqid_ds API.
Rename msg_first and msg_last to kmsg_first and kmsg_last to break
any userspace consumers who refer to these kernel-only members.
The ABI remains unchanged.
Break the struct semid_ds API.
Rename the kernel-only sem_base variable to ksem_base to break any
userland consumers of it.
Don't exclare struct mymsg.
It is an example in the POSIX manpage, not an API. Applications should
declare their own message formats.
Don't declare union semun in userspace unless _WANT_SEMUN is defined.
POSIX explicitly states that the application must declare union semun.
This makes no sense, but it is what it is.