以下に再現されたCコードが少しあります。BootPML4 配列の特定のビットを特定の値に設定していると理解しています。BootPML4
以下の配列がどのように満たされているかを誰か説明してもらえますか? また、以下の 2 つの設定がそのまま維持されるようにしながら、配列内の未使用の値がゼロになるようにするにはどうすればよいですか?
typedef uint64_t pml4_entry_t;
#define PML4_PROT (INTEL_PTE_VALID | INTEL_PTE_WRITE)
pml4_entry_t BootPML4[PTE_PER_PAGE] __attribute__((section("__HIB, __bootPT"))) = {
[0] = ((uint64_t)(PAGE_SIZE) | PML4_PROT),
[KERNEL_PML4_INDEX] = ((uint64_t)(PAGE_SIZE) | PML4_PROT),
};