add: if (index == max) panic("no more space for iovecs!");
context: add_to_iovec(iovec *vecs, int32 &index, int32 max, addr_t address, size_t size){	if (index > 0 && (addr_t)vecs[index - 1].iov_base + vecs[index - 1].iov_len == address) {		// the iovec can be combined with the previous one		vecs[index - 1].iov_len += size;		return;	}	// we need to start a new iovec	vecs[index].iov_base = (void *)address;	vecs[index].iov_len = size;	index++;}