核心数据结构与算法
1. 关键数据结构
1.1 NodeAction 枚举 - 节点处理策略
enum NodeAction {
Skip, // 跳过节点,不在客户机FDT中包含
RootNode, // 根节点,必须包含
CpuNode, // CPU节点,需要根据配置过滤
IncludeAsPassthroughDevice, // 作为直通设备节点包含
IncludeAsChildNode, // 作为直通设备的子节点包含
IncludeAsAncestorNode, // 作为直通设备的祖先节点包含
}
设计理念:
- 明确每个节点的处理策略
- 保证设备树结构的完整性
- 支持复杂的设备依赖关系处理
1.2 Phandle 映射表 - 依赖关系索引
BTreeMap<u32, (String, BTreeMap<String, u32>)>
结构说明:
- 键:32位 phandle 值
- 值元组:
(节点完整路径, cells属性映射表)
核心用途:
- 快速查找 phandle 对应的设备节点
- 支持复杂 phandle 属性的智能解析
- 提高设备依赖分析的性能