FreeBSD doesn't let userland programs pass variable-sized structs to
ioctls. So we have to keep the list of offsets in a separate chunk of
memory and copy it in separately.