从节点提取 MMIO base/size 并通过 VirtualMemory 映射该区域。
不设置 node.bound — 调用方(驱动的 Probe())负责在 DeviceManager::lock_ 保护下将 node.bound 置为 true。
- Parameters
-
| node | 设备节点(mmio_base 必须非零) |
| default_size | 当 node.mmio_size == 0 时使用的默认大小 |
- Returns
- Expected<ProbeContext>
Definition at line 148 of file driver_registry.hpp.
149 {
150 assert(
152 "mmio_helper::Prepare: node has no MMIO base; driver matched wrong node");
153
155 auto map_result =
156 VirtualMemorySingleton::instance().MapMMIO(node.
mmio_base, size);
157 if (!map_result.has_value()) {
158 return std::unexpected(map_result.error());
159 }
160
161 return ProbeContext{node.
mmio_base, size};
162}
uint64_t mmio_base
第一个 MMIO 区域(需要多 BAR 支持时扩展为数组)