CWRITE
CWRITE(sc, queue_select, idx);
CWRITE(sc, queue_msix_vector, vector);
CWRITE(sc, config_msix_vector, vector);
CWRITE(sc, queue_select, idx);
CWRITE(sc, queue_select, vq->vq_index);
CWRITE(sc, queue_enable, 0);
CWRITE(sc, queue_desc, 0);
CWRITE(sc, queue_avail, 0);
CWRITE(sc, queue_used, 0);
CWRITE(sc, queue_desc, addr);
CWRITE(sc, queue_avail, addr + vq->vq_availoffset);
CWRITE(sc, queue_used, addr + vq->vq_usedoffset);
CWRITE(sc, queue_enable, 1);
CWRITE(sc, device_status, 0);
CWRITE(sc, device_status, status|old);
CWRITE(sc, device_feature_select, 0);
CWRITE(sc, device_feature_select, 1);
CWRITE(sc, driver_feature_select, 0);
CWRITE(sc, driver_feature, negotiated & 0xffffffff);
CWRITE(sc, driver_feature_select, 1);
CWRITE(sc, driver_feature, negotiated >> 32);
CWRITE(sc, device_status, VIRTIO_CONFIG_DEVICE_STATUS_FAILED);
CWRITE(sc, device_status, VIRTIO_CONFIG_DEVICE_STATUS_FAILED);