接前一篇文章:
本回开始以virtio balloon设备的初始化过程为例,分析virtio设备的初始化过程,即前文书(QEMU源码全解析 —— virtio(21))所讲到的virtio驱动初始化设备的过程中的“(9)执行设备相关的初始化操作”一步。

下边就以virtio balloon设备的初始化过程为例,分析virtio设备的初始化过程。再次贴出virtioballoon_probe函数的源码,Linux内核源码/drivers/virtio/virtio_balloon.c中,如下:
static int virtballoon_probe(struct virtio_device *vdev)
{
struct virtio_balloon *vb;
int err;
if (!vdev->config->get) {
dev_err(&vdev->dev, "%s failure: config access disabled\n",

本文深入解析QEMU中的virtio balloon设备初始化过程,通过virtio_balloon_probe函数,详细介绍如何分配和初始化virtio_balloon结构,以及如何通过init_vqs函数设置virtqueue和vring,实现virtio驱动与设备的数据通信。文章还涉及virtio_device_ready和virtio_has_feature等关键函数的作用。
订阅专栏 解锁全文
1040

被折叠的 条评论
为什么被折叠?



