mmio buddy新增guard,把映射的职责交由其守卫进行处理,并且守卫被drop的时候自动释放内存 (#346)

* mmio buddy新增guard,把映射的职责交由其守卫进行处理,并且守卫被drop的时候自动释放内存
This commit is contained in:
LoGin
2023-08-28 15:54:52 +08:00
committed by GitHub
parent 8d94ea66a3
commit 2dd9f0c750
9 changed files with 199 additions and 135 deletions

View File

@ -2,7 +2,10 @@ pub mod x86_64;
#[cfg(target_arch = "x86_64")]
pub use self::x86_64::*; //公开x86_64架构下的函数使外界接口统一
use crate::driver::pci::pci::{BusDeviceFunction, PciAddr, PciError, PciRoot, SegmentGroupNumber};
use crate::{
driver::pci::pci::{BusDeviceFunction, PciAddr, PciError, PciRoot, SegmentGroupNumber},
mm::PhysAddr,
};
/// TraitPciArch Pci架构相关函数任何架构都应独立实现trait里的函数
pub trait TraitPciArch {
@ -19,7 +22,7 @@ pub trait TraitPciArch {
/// @brief PCI域地址到存储器域地址的转换,x86_64架构为一一对应
/// @param address PCI域地址
/// @return usize 转换结果
fn address_pci_to_physical(pci_address: PciAddr) -> usize;
fn address_pci_to_physical(pci_address: PciAddr) -> PhysAddr;
/// @brief 获取Segement的root地址,x86_64架构为acpi mcfg表中读取
/// @param segement 组id
/// @return Result<PciRoot, PciError> 转换结果或出错原因