aarch64_sysreg
路径:
virtualization/aarch64_sysreg类型:库 crate 分层:组件层 / AArch64 编码字典组件 版本:0.1.1文档依据:当前仓库源码、Cargo.toml、src/lib.rs、src/operation_type.rs、src/registers_type.rs、src/system_reg_type.rs、virtualization/arm_vgic/src/vtimer/*
aarch64_sysreg 不是“系统寄存器读写库”,也不是一套完整的 AArch64 指令仿真框架。它的真实定位更接近一个AArch64 指令/寄存器编码字典:把若干数值编码稳定地映射成 Rust 枚举,并提供名称格式化与数值转换能力。当前仓库里,最直接的真实用途是被 arm_vgic 用来给虚拟计时器相关的系统寄存器构造 SysRegAddr。
架构设计
设计定位
从源码可以看出,aarch64_sysreg 的全部公开接口只有三类枚举:
OperationTypeRegistersTypeSystemRegType
这说明它解决的问题非常聚焦:
- 把 AArch64 指令操作类型编码映射为可读枚举
- 把通用/向量/谓词等寄存器编号映射为可读枚举
- 把系统寄存器编码映射为可读枚举
它不负责:
- 实际执行
mrs/msr - 包装
unsafe的寄存器访问指令 - 管理 trap、异常注入或寄存器状态同步
- 维护任何运行时寄存器镜像
因此,这个 crate 应被理解为“编码名称层”,而不是“寄存器操作层”。