脚本宝典收集整理的这篇文章主要介绍了QEMU pipe设备分析,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
Qemu-pipe是一个通用的虚拟设备,完成guest OS和emulator的通信功能。它为通信提供了四种服务:
Qemud也提供了一些子服务
传输数据格式如下:
Qemud service信息:
数据流向分析:
QEMU pipe和goldfish pipe关系如下图
文件:externalqemuandroid-qemu2-glueqemu-setup.cpp
main_impl qemu_android_emulation_early_setup qemu_android_pipe_init goldfish_pipe_set_service_ops //goldfishpipe对androidpipe service的调用 android_pipe_set_hw_funcs //androidpipe service对goldfishpipe的调用 android_pipe_set_hw_virtio_funcs android::AndroidPipe::initThreading //启动androidpipe服务, //设置定时器调用performDeviceOperation
qemu侧
main_impl qemu_android_emulation_early_setup android_qemu2_qemud_init android_qemud_get_serial_line android_qemud_init _android_qemud_serial_init //老式接口,为适应guest操作 _android_qemud_pipe_init //androidpipe中添加qemud服务,和qemud service的调用函数
guest侧
文件:driversplatformgoldfishgoldfish_pipe.c
module_platform_driver(goldfish_pipe_driver)
goldfish_pipe_probe
devm_ioremap
goldfish_pipe_device_v2_init
init_miscdevice
最终会在guest中产生一个设备:
虚拟机内部,通过读写该设备与emulator通信;qemu侧注册了对应的事件,发送给对应的主机侧设备或模拟设备。
使用goldfish_pipe通信的进程信息如下:
以上是脚本宝典为你收集整理的QEMU pipe设备分析全部内容,希望文章能够帮你解决QEMU pipe设备分析所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。