1*b50629c3SStefan Hajnoczi /* 2*b50629c3SStefan Hajnoczi * IOThread Virtqueue Mapping 3*b50629c3SStefan Hajnoczi * 4*b50629c3SStefan Hajnoczi * Copyright Red Hat, Inc 5*b50629c3SStefan Hajnoczi * 6*b50629c3SStefan Hajnoczi * SPDX-License-Identifier: GPL-2.0-only 7*b50629c3SStefan Hajnoczi */ 8*b50629c3SStefan Hajnoczi 9*b50629c3SStefan Hajnoczi #ifndef HW_VIRTIO_IOTHREAD_VQ_MAPPING_H 10*b50629c3SStefan Hajnoczi #define HW_VIRTIO_IOTHREAD_VQ_MAPPING_H 11*b50629c3SStefan Hajnoczi 12*b50629c3SStefan Hajnoczi #include "qapi/error.h" 13*b50629c3SStefan Hajnoczi #include "qapi/qapi-types-virtio.h" 14*b50629c3SStefan Hajnoczi 15*b50629c3SStefan Hajnoczi /** 16*b50629c3SStefan Hajnoczi * iothread_vq_mapping_apply: 17*b50629c3SStefan Hajnoczi * @list: The mapping of virtqueues to IOThreads. 18*b50629c3SStefan Hajnoczi * @vq_aio_context: The array of AioContext pointers to fill in. 19*b50629c3SStefan Hajnoczi * @num_queues: The length of @vq_aio_context. 20*b50629c3SStefan Hajnoczi * @errp: If an error occurs, a pointer to the area to store the error. 21*b50629c3SStefan Hajnoczi * 22*b50629c3SStefan Hajnoczi * Fill in the AioContext for each virtqueue in the @vq_aio_context array given 23*b50629c3SStefan Hajnoczi * the iothread-vq-mapping parameter in @list. 24*b50629c3SStefan Hajnoczi * 25*b50629c3SStefan Hajnoczi * iothread_vq_mapping_cleanup() must be called to free IOThread object 26*b50629c3SStefan Hajnoczi * references after this function returns success. 27*b50629c3SStefan Hajnoczi * 28*b50629c3SStefan Hajnoczi * Returns: %true on success, %false on failure. 29*b50629c3SStefan Hajnoczi **/ 30*b50629c3SStefan Hajnoczi bool iothread_vq_mapping_apply( 31*b50629c3SStefan Hajnoczi IOThreadVirtQueueMappingList *list, 32*b50629c3SStefan Hajnoczi AioContext **vq_aio_context, 33*b50629c3SStefan Hajnoczi uint16_t num_queues, 34*b50629c3SStefan Hajnoczi Error **errp); 35*b50629c3SStefan Hajnoczi 36*b50629c3SStefan Hajnoczi /** 37*b50629c3SStefan Hajnoczi * iothread_vq_mapping_cleanup: 38*b50629c3SStefan Hajnoczi * @list: The mapping of virtqueues to IOThreads. 39*b50629c3SStefan Hajnoczi * 40*b50629c3SStefan Hajnoczi * Release IOThread object references that were acquired by 41*b50629c3SStefan Hajnoczi * iothread_vq_mapping_apply(). 42*b50629c3SStefan Hajnoczi */ 43*b50629c3SStefan Hajnoczi void iothread_vq_mapping_cleanup(IOThreadVirtQueueMappingList *list); 44*b50629c3SStefan Hajnoczi 45*b50629c3SStefan Hajnoczi #endif /* HW_VIRTIO_IOTHREAD_VQ_MAPPING_H */ 46