/qemu/net/ |
H A D | queue.c | 25 #include "net/queue.h" 26 #include "qemu/queue.h" 36 * until we have invoked the callback. Only in that case will we queue 65 NetQueue *queue; in qemu_new_net_queue() local 67 queue = g_new0(NetQueue, 1); in qemu_new_net_queue() 69 queue->opaque = opaque; in qemu_new_net_queue() 70 queue->nq_maxlen = 10000; in qemu_new_net_queue() 71 queue->nq_count = 0; in qemu_new_net_queue() 72 queue->deliver = deliver; in qemu_new_net_queue() 74 QTAILQ_INIT(&queue->packets); in qemu_new_net_queue() [all …]
|
/qemu/ui/ |
H A D | vnc-jobs.c | 41 * - jobs queue lock: for each operation on the queue (push, pop, isEmpty?) 67 * We use a single global queue, but most of the functions are 70 static VncJobQueue *queue; variable 72 static void vnc_lock_queue(VncJobQueue *queue) in vnc_lock_queue() argument 74 qemu_mutex_lock(&queue->mutex); in vnc_lock_queue() 77 static void vnc_unlock_queue(VncJobQueue *queue) in vnc_unlock_queue() argument 79 qemu_mutex_unlock(&queue->mutex); in vnc_unlock_queue() 88 vnc_lock_queue(queue); in vnc_job_new() 90 vnc_unlock_queue(queue); in vnc_job_new() 105 vnc_lock_queue(queue); in vnc_job_add_rect() [all …]
|
H A D | input.c | 236 QemuInputEventQueueHead *queue = opaque; in qemu_input_queue_process() local 239 g_assert(!QTAILQ_EMPTY(queue)); in qemu_input_queue_process() 240 item = QTAILQ_FIRST(queue); in qemu_input_queue_process() 242 QTAILQ_REMOVE(queue, item, node); in qemu_input_queue_process() 246 while (!QTAILQ_EMPTY(queue)) { in qemu_input_queue_process() 247 item = QTAILQ_FIRST(queue); in qemu_input_queue_process() 261 QTAILQ_REMOVE(queue, item, node); in qemu_input_queue_process() 267 static void qemu_input_queue_delay(QemuInputEventQueueHead *queue, in qemu_input_queue_delay() argument 271 bool start_timer = QTAILQ_EMPTY(queue); in qemu_input_queue_delay() 276 QTAILQ_INSERT_TAIL(queue, item, node); in qemu_input_queue_delay() [all …]
|
/qemu/include/system/ |
H A D | cryptodev-vhost.h | 52 * Get the maximum queue number of @crypto. 55 * Returns: the maximum queue number 91 * @cc: the client object for each queue 93 * @queue: the cryptodev backend queue index 96 * @b and @queue 103 uint16_t queue); 107 * @total_queues: the total count of queue 118 * @total_queues: the total count of queue 128 * @queue: the cryptodev backend queue index 136 int queue, [all …]
|
H A D | replay.h | 109 * Processes the async events added to the queue (while recording) 114 /* Asynchronous events queue */ 116 /*! Enables storing events in the queue */ 120 /* Flushes events queue */ 122 /*! Adds bottom half event to the queue */ 124 /* Adds oneshot bottom half event to the queue */ 127 /*! Adds input event to the queue */ 129 /*! Adds input sync event to the queue */ 131 /*! Adds block layer event to the queue */
|
H A D | cryptodev-vhost-user.h | 35 * @cc: the client object for each queue 37 * @queue: the queue index 40 * @b and @queue 48 uint16_t queue);
|
/qemu/hw/usb/ |
H A D | hcd-uhci.c | 80 UHCIQueue *queue; member 126 UHCIQueue *queue; in uhci_queue_new() local 128 queue = g_new0(UHCIQueue, 1); in uhci_queue_new() 129 queue->uhci = s; in uhci_queue_new() 130 queue->qh_addr = qh_addr; in uhci_queue_new() 131 queue->token = uhci_queue_token(td); in uhci_queue_new() 132 queue->ep = ep; in uhci_queue_new() 133 QTAILQ_INIT(&queue->asyncs); in uhci_queue_new() 134 QTAILQ_INSERT_HEAD(&s->queues, queue, next); in uhci_queue_new() 135 queue->valid = QH_VALID; in uhci_queue_new() [all …]
|
/qemu/hw/nvme/ |
H A D | trace-events | 51 … sqid, uint16_t cqid, uint16_t qsize, uint16_t qflags) "create submission queue, addr=0x%"PRIx64",… 52 …t16_t vector, uint16_t size, uint16_t qflags, int ien) "create completion queue, addr=0x%"PRIx64",… 53 pci_nvme_del_sq(uint16_t qid) "deleting submission queue sqid=%"PRIu16"" 54 pci_nvme_del_cq(uint16_t cqid) "deleted completion queue, cqid=%"PRIu16"" 97 pci_nvme_mmio_aqattr(uint64_t data) "wrote MMIO, admin queue attributes=0x%"PRIx64"" 98 pci_nvme_mmio_asqaddr(uint64_t data) "wrote MMIO, admin submission queue address=0x%"PRIx64"" 99 pci_nvme_mmio_acqaddr(uint64_t data) "wrote MMIO, admin completion queue address=0x%"PRIx64"" 100 pci_nvme_mmio_asqaddr_hi(uint64_t data, uint64_t new_addr) "wrote MMIO, admin submission queue high… 101 pci_nvme_mmio_acqaddr_hi(uint64_t data, uint64_t new_addr) "wrote MMIO, admin completion queue high… 159 pci_nvme_err_invalid_del_sq(uint16_t qid) "invalid submission queue deletion, sid=%"PRIu16"" [all …]
|
/qemu/include/qemu/ |
H A D | coroutine.h | 20 #include "qemu/queue.h" 60 /* A queue of waiters. Elements are added atomically in front of 91 * CoQueues are a mechanism to queue coroutines in order to continue executing 103 void qemu_co_queue_init(CoQueue *queue); 107 * Enqueue at front instead of back. Use this to re-queue a request when 118 #define qemu_co_queue_wait(queue, lock) \ argument 119 qemu_co_queue_wait_impl(queue, QEMU_MAKE_LOCKABLE(lock), 0) 120 #define qemu_co_queue_wait_flags(queue, lock, flags) \ argument 121 qemu_co_queue_wait_impl(queue, QEMU_MAKE_LOCKABLE(lock), (flags)) 122 void coroutine_fn qemu_co_queue_wait_impl(CoQueue *queue, QemuLockable *lock, [all …]
|
/qemu/subprojects/libvhost-user/ |
H A D | libvhost-user.h | 264 * If the queue is processed in order, in which case it will be 315 * Backend could get it from queue size field of VhostUserInflight. 524 * @qidx: queue index 526 * Returns the queue number @qidx. 533 * @vq: a VuVirtq queue 534 * @handler: the queue handler callback 536 * Set the queue handler. This function may be called several times 537 * for the same queue. If called with NULL @handler, the handler is 546 * @vq: a VuVirtq queue 551 * Set queue's host notifier. This function may be called several [all …]
|
/qemu/tests/qtest/fuzz/ |
H A D | virtio_scsi_fuzz.c | 74 uint8_t queue; in virtio_scsi_fuzz() member 81 /* Keep track of the free head for each queue we interact with */ in virtio_scsi_fuzz() 92 /* Copy the action, so we can normalize length, queue and flags */ in virtio_scsi_fuzz() 98 vqa.queue = vqa.queue % queues->num_queues; in virtio_scsi_fuzz() 106 q = queues->vq[vqa.queue]; in virtio_scsi_fuzz() 111 if (vq_touched[vqa.queue] == 0) { in virtio_scsi_fuzz() 112 vq_touched[vqa.queue] = 1; in virtio_scsi_fuzz() 113 free_head[vqa.queue] = qvirtqueue_add(s, q, req_addr, vqa.length, in virtio_scsi_fuzz() 120 qvirtqueue_kick(s, dev, q, free_head[vqa.queue]); in virtio_scsi_fuzz() 121 free_head[vqa.queue] = 0; in virtio_scsi_fuzz() [all …]
|
H A D | virtio_blk_fuzz.c | 71 uint8_t queue; in virtio_blk_fuzz() member 78 /* Keep track of the free head for each queue we interact with */ in virtio_blk_fuzz() 89 /* Copy the action, so we can normalize length, queue and flags */ in virtio_blk_fuzz() 95 vqa.queue = vqa.queue % queues->num_queues; in virtio_blk_fuzz() 102 q = queues->vq[vqa.queue]; in virtio_blk_fuzz() 107 if (vq_touched[vqa.queue] == 0) { in virtio_blk_fuzz() 108 vq_touched[vqa.queue] = 1; in virtio_blk_fuzz() 109 free_head[vqa.queue] = qvirtqueue_add(s, q, req_addr, vqa.length, in virtio_blk_fuzz() 116 qvirtqueue_kick(s, dev, q, free_head[vqa.queue]); in virtio_blk_fuzz() 117 free_head[vqa.queue] = 0; in virtio_blk_fuzz() [all …]
|
/qemu/backends/ |
H A D | cryptodev-vhost.c | 66 /* vhost-user needs vq_index to initiate a specific queue pair */ in cryptodev_vhost_init() 120 uint16_t queue) in cryptodev_get_vhost() argument 131 vhost_crypto = cryptodev_vhost_user_get_vhost(cc, b, queue); in cryptodev_get_vhost() 151 uint16_t queue, int enable) in vhost_set_vring_enable() argument 154 cryptodev_get_vhost(cc, b, queue); in vhost_set_vring_enable() 272 int queue, in cryptodev_vhost_virtqueue_mask() argument 280 assert(queue < MAX_CRYPTO_QUEUE_NUM); in cryptodev_vhost_virtqueue_mask() 282 cc = b->conf.peers.ccs[queue]; in cryptodev_vhost_virtqueue_mask() 283 vhost_crypto = cryptodev_get_vhost(cc, b, queue); in cryptodev_vhost_virtqueue_mask() 289 int queue, int idx) in cryptodev_vhost_virtqueue_pending() argument [all …]
|
/qemu/include/standard-headers/linux/ |
H A D | virtio_mmio.h | 77 /* Queue selector - Write Only */ 80 /* Maximum size of the currently selected queue - Read Only */ 83 /* Queue size for the currently selected queue - Write Only */ 89 /* Used Ring alignment for the currently selected queue - Write Only */ 92 /* Guest's PFN for the currently selected queue - Read Write */ 98 /* Ready bit for the currently selected queue - Read Write */ 101 /* Queue notifier - Write Only */ 113 /* Selected queue's Descriptor Table address, 64 bits in two halves */ 117 /* Selected queue's Available Ring address, 64 bits in two halves */ 121 /* Selected queue's Used Ring address, 64 bits in two halves */
|
/qemu/include/net/ |
H A D | queue.h | 38 * 0 - queue packet for future redelivery 49 void qemu_net_queue_append_iov(NetQueue *queue, 56 void qemu_del_net_queue(NetQueue *queue); 58 ssize_t qemu_net_queue_receive(NetQueue *queue, 62 ssize_t qemu_net_queue_send(NetQueue *queue, 69 ssize_t qemu_net_queue_send_iov(NetQueue *queue, 76 void qemu_net_queue_purge(NetQueue *queue, NetClientState *from); 77 bool qemu_net_queue_flush(NetQueue *queue);
|
/qemu/qapi/ |
H A D | virtio.json | 142 # @queue-sel: VirtIODevice queue_sel 179 'queue-sel': 'uint16', 259 # "queue-sel": 1, 431 # "queue-sel": 2, 508 # @queue-index: VirtQueue queue_index 539 'queue-index': 'uint16', 554 # @x-query-virtio-queue-status: 560 # @queue: VirtQueue index to examine 570 # VirtIODevice VirtQueue index (queue) does not exist for the 583 # -> { "execute": "x-query-virtio-queue-status", [all …]
|
/qemu/util/ |
H A D | qemu-coroutine-lock.c | 32 #include "qemu/queue.h" 36 void qemu_co_queue_init(CoQueue *queue) in qemu_co_queue_init() argument 38 QSIMPLEQ_INIT(&queue->entries); in qemu_co_queue_init() 41 void coroutine_fn qemu_co_queue_wait_impl(CoQueue *queue, QemuLockable *lock, in qemu_co_queue_wait_impl() argument 46 QSIMPLEQ_INSERT_HEAD(&queue->entries, self, co_queue_next); in qemu_co_queue_wait_impl() 48 QSIMPLEQ_INSERT_TAIL(&queue->entries, self, co_queue_next); in qemu_co_queue_wait_impl() 65 * mutex's queue. This avoids the thundering herd effect. in qemu_co_queue_wait_impl() 74 bool qemu_co_enter_next_impl(CoQueue *queue, QemuLockable *lock) in qemu_co_enter_next_impl() argument 78 next = QSIMPLEQ_FIRST(&queue->entries); in qemu_co_enter_next_impl() 83 QSIMPLEQ_REMOVE_HEAD(&queue->entries, co_queue_next); in qemu_co_enter_next_impl() [all …]
|
/qemu/ |
H A D | hmp-commands-info.hx | 928 .name = "virtio-queue-status", 929 .args_type = "path:s,queue:i", 930 .params = "path queue", 931 .help = "Display status of a given virtio queue", 937 ``info virtio-queue-status`` *path* *queue* 938 Display status of a given virtio queue 942 .name = "virtio-vhost-queue-status", 943 .args_type = "path:s,queue:i", 944 .params = "path queue", 945 .help = "Display status of a given vhost queue", [all …]
|
/qemu/hw/i386/ |
H A D | vmmouse.c | 66 uint32_t queue[VMMOUSE_QUEUE_SIZE]; member 131 s->queue[s->nb_queue++] = buttons; in vmmouse_mouse_event() 132 s->queue[s->nb_queue++] = x; in vmmouse_mouse_event() 133 s->queue[s->nb_queue++] = y; in vmmouse_mouse_event() 134 s->queue[s->nb_queue++] = dz; in vmmouse_mouse_event() 137 read from queue */ in vmmouse_mouse_event() 173 s->queue[s->nb_queue++] = VMMOUSE_VERSION; in vmmouse_read_id() 214 data[i] = s->queue[i]; in vmmouse_data() 218 memmove(s->queue, &s->queue[size], sizeof(s->queue[0]) * s->nb_queue); in vmmouse_data() 282 VMSTATE_UINT32_ARRAY(queue, VMMouseState, VMMOUSE_QUEUE_SIZE),
|
/qemu/hw/riscv/ |
H A D | riscv-iommu-bits.h | 23 * struct riscv_iommu_fq_record - Fault/Event Queue Record 41 * For more infos on the PCIe Page Request queue see chapter 3.3. 125 /* 5.6 Command Queue Base (64bits) */ 130 /* 5.7 Command Queue head (32bits) */ 133 /* 5.8 Command Queue tail (32bits) */ 136 /* 5.9 Fault Queue Base (64bits) */ 141 /* 5.10 Fault Queue Head (32bits) */ 144 /* 5.11 Fault Queue tail (32bits) */ 147 /* 5.12 Page Request Queue base (64bits) */ 152 /* 5.13 Page Request Queue head (32bits) */ [all …]
|
/qemu/include/hw/xen/interface/io/ |
H A D | blkif.h | 173 * backend driver paired with a LIFO queue in the frontend will 333 * mapped grants in a LIFO queue, so a subset of all persistently mapped 418 * If supported, the backend will write the key "multi-queue-max-queues" to 422 * key "multi-queue-num-queues" with the number they wish to use, which must be 424 * "multi-queue-max-queues". 426 * For frontends requesting just one queue, the usual event-channel and 429 * multi-queue feature, and one that does, but requested only one queue. 433 * having the name "queue-N" where N is the integer ID of the queue/ring for 436 * queue-related keys: 438 * /local/domain/1/device/vbd/0/multi-queue-num-queues = "2" [all …]
|
/qemu/contrib/vhost-user-input/ |
H A D | main.c | 35 } *queue; member 46 /* queue up events ... */ in vi_input_send() 49 vi->queue = g_realloc_n(vi->queue, vi->qsize, sizeof(vi->queue[0])); in vi_input_send() 51 vi->queue[vi->qindex++].event = *event; in vi_input_send() 64 vu_queue_unpop(dev, vq, vi->queue[i].elem, 0); in vi_input_send() 67 g_warning("virtio-input queue full"); in vi_input_send() 70 vi->queue[i].elem = elem; in vi_input_send() 75 elem = vi->queue[i].elem; in vi_input_send() 77 0, &vi->queue[i].event, sizeof(virtio_input_event)); in vi_input_send() 177 g_debug("queue started %d:%d", qidx, started); in vi_queue_set_started() [all …]
|
/qemu/scripts/qemugdb/ |
H A D | mtree.py | 35 self.queue = [] 43 self.queue.append(ptr) 45 while self.queue: 46 ptr = self.queue.pop(0) 80 self.queue.append(alias)
|
/qemu/include/hw/audio/ |
H A D | virtio-snd.h | 114 /* Used for the TX queue for lazy I/O copy from `elem` */ 153 QSIMPLEQ_HEAD(, VirtIOSoundPCMBuffer) queue; 206 * `virtio_snd_handle_ctrl()` queue callback and are of type `struct 207 * virtio_snd_ctrl_command`. They are stored in a queue field in the device 226 * Convenience queue to keep track of invalid tx/rx queue messages inside 230 * each message and we cannot add an invalid message back to the queue: we 233 * Instead, we add them to this queue and after finishing examining every 236 * This queue must be empty at all times except for inside the tx/rx
|
/qemu/docs/system/s390x/ |
H A D | vfio-ap.rst | 49 * AP Queue 51 An AP queue is the means by which an AP command-request message is sent to an 52 AP usage domain inside a specific AP. An AP queue is identified by a tuple 53 comprised of an AP adapter ID (APID) and an AP queue index (APQI). The 55 forms an AP Queue Number (APQN) uniquely identifying an AP queue. AP 56 instructions include a field containing the APQN to identify the AP queue to 63 * NQAP: to enqueue an AP command-request message to a queue 64 * DQAP: to dequeue an AP command-reply message from a queue 87 * The AP Queue Mask (AQM) field is a bit mask identifying the AP usage domains 89 corresponds to an AP queue index (APQI) from 0-255. If a bit is set, the [all …]
|