[mmc subsystem] mmc core(第三章)——bus模块说明

本文详细介绍了mmc subsystem的bus模块,包括mmc_register_bus、mmc_unregister_bus等关键API,以及mmc_bus_type数据结构。内容涵盖mmc虚拟总线的注册、驱动注册、mmc_card的分配与添加,解析了mmc bus如何连接mmc_host和mmc_card。
摘要由CSDN通过智能技术生成

mmc subsystem系列(持续更新中):
[mmc subsystem] 概念与框架
[mmc subsystem] mmc core(第一章)——概述
[mmc subsystem] mmc core(第二章)——数据结构和宏定义说明
[mmc subsystem] mmc core(第三章)——bus模块说明
[mmc subsystem] mmc core(第四章)——host模块说明
[mmc subsystem] mmc core(第五章)——card相关模块(mmc type card)
[mmc subsystem] mmc core(第六章)——mmc core主模块

建议先参考《[mmc subsystem] 概念与框架》和《[mmc subsystem] mmc core(第一章)——概述》对整体有一个了解。

=========================================================================================================

零、说明

对应代码drivers/mmc/core/bus.c。
抽象出虚拟mmc bus,实现mmc bus的操作。

一、API总览

1、mmc bus相关

  • mmc_register_bus & mmc_unregister_bus
    用于注册和卸载mmc bus(虚拟mmc总线)到设备驱动模型中。
    原型:int mmc_register_bus(void)
    原型:void mmc_unregister_bus(void)

2、mmc driver相关

  • mmc_register_driver & mmc_unregister_driver
    用于注册和卸载struct mmc_driver *drv到mmc_bus上。mmc_driver就是mmc core抽象出来的card设备driver。
    原型:int mmc_register_driver(struct mmc_driver *drv)
    原型:void mmc_unregister_driver(struct mmc_driver *drv)

3、mmc card相关

  • mmc
[mcc子系统]是一个在Linux内核中用于支持基于存储介质的通信硬件设备的子系统。它通过提供统一的接口和管理机制来简化不同存储设备的驱动程序的开发和维护。 [mcc子系统]的框架由四个主要组件组成:核心层、总线层、主机层和设备层。核心层提供了与[mcc子系统]相关的数据结构和功能,如驱动程序模型和设备模型。总线层提供了[mcc子系统]与系统总线(如PCI和USB)之间的通信接口,并负责管理和配置[mcc子系统]中的设备。主机层对应于[mcc子系统]的主机控制器,负责与存储设备进行通信和传输数据。设备层则是每个[mcc子系统]设备的驱动程序,它们负责处理硬件与软件之间的通信。 [mcc子系统]的工作流程如下:首先,[mcc子系统]的驱动程序会注册到内核中,并与相应的总线层进行绑定。然后,总线层会扫描系统中的存储设备,并将其实例化为[mcc子系统]的设备对象。主机层会根据设备的类型和通信协议,初始化设备并建立与存储设备之间的通信通道。最后,应用程序通过[mcc子系统]的接口与存储设备进行交互,实现对存储设备的读写操作。 [mcc子系统]的设计目标是提供一个可扩展和可移植的存储设备驱动程序框架,它可以支持不同类型和厂商的存储设备。通过使用[mcc子系统],存储设备的开发和维护工作变得更加简单和高效,大大提高了Linux内核支持存储设备的能力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值