MCPcopy Create free account
hub / github.com/ading2210/linuxpdf / virtio_console_write_data

Function virtio_console_write_data

tinyemu/virtio.c:1318–1336  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1316}
1317
1318int virtio_console_write_data(VIRTIODevice *s, const uint8_t *buf, int buf_len)
1319{
1320 int queue_idx = 0;
1321 QueueState *qs = &s->queue[queue_idx];
1322 int desc_idx;
1323 uint16_t avail_idx;
1324
1325 if (!qs->ready)
1326 return 0;
1327 avail_idx = virtio_read16(s, qs->avail_addr + 2);
1328 if (qs->last_avail_idx == avail_idx)
1329 return 0;
1330 desc_idx = virtio_read16(s, qs->avail_addr + 4 +
1331 (qs->last_avail_idx & (qs->num - 1)) * 2);
1332 memcpy_to_queue(s, queue_idx, desc_idx, 0, buf, buf_len);
1333 virtio_consume_desc(s, queue_idx, desc_idx, buf_len);
1334 qs->last_avail_idx++;
1335 return buf_len;
1336}
1337
1338/* send a resize event */
1339void virtio_console_resize_event(VIRTIODevice *s, int width, int height)

Callers 2

virt_machine_runFunction · 0.85
virt_machine_runFunction · 0.85

Calls 3

virtio_read16Function · 0.85
memcpy_to_queueFunction · 0.85
virtio_consume_descFunction · 0.85

Tested by

no test coverage detected