Allow multiple vector IOs to be started with one system call. The aio_readv() and aio_writev() functions already used the same code as lio_listio() under the covers. This commit just exposes the formerly internal-only LIO_READV and LIO_WRITEV opcodes to user space.
The new opcode are only visible to user space if __BSD_VISIBLE is defined, being extensions to POSIX, just like the aio_readv() and aio_writev() functions.
The other obvious candidate is LIO_SYNC, but that involves answering some tricky questions about dependencies and is left for later.
I subscribed the reviewers of D27743 (aio_readv() and aio_writev()).
Add a note saying that the spec requires the upper byte of the device_id be 0x22, but that most vendors don't honor that, so that's why we're not checking for it. That makes the 0x22 in the generic case a bit less magic.