当前位置: 首页 > news >正文

做购物平台网站需要注意什么/新软件推广

做购物平台网站需要注意什么,新软件推广,国家安全部门,怎么做集合网站3 VFIO PCI设备操作回调vfio_pci_ops 对VFIO设备文件描述符fd的操作,它调用device->ops的回调,这些回调最终会调用vfio_pci_ops所定义的回调函数。 (1).open_device vfio_pci_open_device 该函数主要是使能PCI设备&#xff0…

3 VFIO PCI设备操作回调vfio_pci_ops

        对VFIO设备文件描述符fd的操作,它调用device->ops的回调,这些回调最终会调用vfio_pci_ops所定义的回调函数。

(1).open_device = vfio_pci_open_device

        该函数主要是使能PCI设备,进行初始化设备,并将配置空间拷贝到相关结构体中。

  1. 调用vfio_pci_open_device(),分别使能PCI设备,复位PCI function,将配置空间/CAP空间内容拷贝到vdev设备对应的结构体,设置MSIX中断情况;
  2. 调用vfio_pci_core_finish_enable(),主要设置该BAR是否支持mmap,其他不关注。

(2).read = vfio_pci_core_read

        对VFIO设备的读写操作包括对配置空间的读写,对BAR空间的读写,以及region特定的读写操作。

        对于配置空间的读写,调用vfio_pci_config_rw();对于BAR0~BAR5以及ROM区域的读写,调用vfio_pci_bar_rw();其他区域,默认调用region[i].ops->rw()特定的读写函数。

- 配置空间的读写

        对配置空间不同的区域或CAP_ID,进行不同的设置,且有些区域只支持读,这里分几种情况:

        对于PCI_CAP_ID_INVALID,调用vfio_raw_config_*()进行读写,主要是调用pci_user_{read|write}_config来处理(与memcpy的差别?);

        对于PCI_CAP_ID_INVALID_VIRT,调用vfio_virt_config_*()进行读写,主要是调用memcpy将结构体vdev->config上模拟的内部读取;

        对于PCI_CAP_ID和PCI_ECAP_ID,调用vfio_direct_config_*()进行读写,先尝试pci_user_{read|write}_config,若失败再调用memcpy进行读取;

        对于PCI_CAP_ID_MSI,暂时不分析;

- 对BAR空间的读写

        通过调用vfio_pci_bar_rw()对BAR空间进行读写。调用如下所示:

        对于BAR0~BAR5区域的读写,通过vfio_pci_setup_barmap()将BAR区域映射到vdev->barmap[]中,这样在内核态直接访问它;

        对于ROM区域的读写,通过pci_map_rom()最终通过io_remap()对ROM区域映射;

        对于MSIX区域的读写,暂不分析[待分析]。

(3).mmap = vfio_pci_core_mmap

        通过调用vfio_pci_core_mmap()对BAR空间进行映射。调用如下:

         当需要映射的区域并不是PCI定义的区域时,会调用区域特定的mmap回调;

        当需要映射的区域为PCI定义的区域时,通过函数pci_iomap()将BAR空间映射到vdev->barmap[],并为vma设置回调函数vfio_pci_mmap_ops。

(4).request = vfio_pci_core_request

        对于vfio_pci_core_request()函数,若定义vdev->req_trigger,通过eventfd_signal()往虚拟机中注入模拟中断。

(5).unlocked_ioctl = vfio_device_fops_unl_ioctl

        QEMU要获取设备的信息并设置设备,需要通过设备API进行调用,它们是通过函数vfio_device_fops_unl_ioctl()来分别对不同的设备API进行处理。

 其中VFIO_DEVICE_GET_INFO用于获取设备region数目和中断的数目;

VFIO_DEVICE_GET_REGION_INFO用于获取设备某个region在设备文件描述符fd中的偏移和大小 ;

VFIO_DEVICE_IRQ_INFO用于获取设备对应的中断数目和标志;

VFIO_DEVICE_SET_IRQS用于请求中断并设置中断处理函数,这里在中断章节进行更详细描述。

 

http://www.lbrq.cn/news/936901.html

相关文章:

  • 昌大建设集团地址/北京seo相关
  • 庆阳做网站/百度优化教程
  • 二手车网站源码/网络营销策划与推广
  • 做网站搜爬闪/关键词查网址
  • 做奖状的网站/企业网站制作公司
  • wordpress get users/兰州seo实战优化
  • 网页创建站点/怎样把个人介绍放到百度
  • 自己电脑做网站访问快吗/站长工具网站排名
  • 做外汇网站/广东培训seo
  • 苏州企业网站建设设计/怎样淘宝seo排名优化
  • 石家庄网站建设专家/站长工具seo综合查询网
  • 大学新校区建设网站/站长工具无忧
  • 网站开发前台/网页设计与制作软件有哪些
  • 四川自助seo建站/怎么申请自己的网络平台
  • 网站备案期间可以建站/自动app优化官网
  • html网站架设/口红的推广软文
  • 学校文化建设的网站/百度竞价排名名词解释
  • 邯郸做网站哪儿好/在线数据分析工具
  • 昆山网站建设是什么/seo网站有优化培训吗
  • 中国海洋大学做英语作业的网站/百度网址是多少 百度知道
  • 网站搜索框如何做/兰州网站seo
  • 申请网站价格/seo排名优化培训
  • 企业网站源码排行/网站服务器ip地址查询
  • 汽车行业网站建设比较好/技成培训网
  • 网站外包 博客/交换友情链接的途径有哪些
  • 营销型企业网站有哪些类型/seo服务
  • 网站分享链接怎么做/发稿软文公司
  • 苏州知名网站制作设计/武汉百度信息流广告
  • 个人网站做推广/seo排名技巧
  • 辽宁建设工程信息网场内业绩/河南seo
  • 绿算技术携手昇腾发布高性能全闪硬盘缓存设备,推动AI大模型降本增效
  • vue3【组件封装】超级表单 S-form.vue
  • MCP资源管理深度实践:动态数据源集成方案
  • 字节跳动开源Coze,开启AI Agent开发新时代?
  • 【机器学习-3】 | 决策树与鸢尾花分类实践篇
  • 力扣热题100----------53最大子数组和