MCPcopy Create free account
hub / github.com/Simple-XX/SimpleKernel / KernelFdt

Method KernelFdt

src/include/kernel_fdt.hpp:626–639  ·  view source on GitHub ↗

* @brief 构造函数 * @param header fdt 数据地址 * @pre header 指向有效的 DTB 数据 * @post fdt_header_ 已初始化并通过校验 */

Source from the content-addressed store, hash-verified

624 * @post fdt_header_ 已初始化并通过校验
625 */
626 explicit KernelFdt(uint64_t header)
627 : fdt_header_(reinterpret_cast<fdt_header*>(header)) {
628 ValidateFdtHeader().or_else([](auto&& err) {
629 klog::Err("KernelFdt init failed: {}", err.message());
630 while (true) {
631 cpu_io::Pause();
632 }
633 return Expected<void>{};
634 });
635
636 klog::Debug("Load dtb at [{:#X}], size [{:#X}]",
637 static_cast<uint64_t>(reinterpret_cast<uintptr_t>(fdt_header_)),
638 static_cast<uint64_t>(fdt32_to_cpu(fdt_header_->totalsize)));
639 }
640
641 KernelFdt() = default;
642 KernelFdt(const KernelFdt&) = default;

Callers

nothing calls this directly

Calls 4

ErrFunction · 0.85
PauseFunction · 0.85
DebugFunction · 0.85
messageMethod · 0.80

Tested by

no test coverage detected