1#include <stdio.h>
2
3#include "efi.h"
4#include "util.h"
5
6void
7print_mmap(efi_memory_descriptor *mmap, size_t mmap_len) {
8    size_t i;
9
10    printf("EFI Memory Map:\n");
11    for(i= 0; i < mmap_len; i++) {
12        printf("%016lx-%016lx    ",
13               mmap[i].PhysicalStart,
14               mmap[i].PhysicalStart + (mmap[i].NumberOfPages * PAGE_4k) - 1);
15        switch(mmap[i].Type) {
16            case EfiConventionalMemory:
17                printf("EfiConventionalMemory");
18                break;
19            case EfiBarrelfishCPUDriver:
20                printf("EfiBarrelfishCPUDriver");
21                break;
22            case EfiBarrelfishCPUDriverStack:
23                printf("EfiBarrelfishCPUDriverStack");
24                break;
25            case EfiBarrelfishMultibootData:
26                printf("EfiBarrelfishMultibootData");
27                break;
28            case EfiBarrelfishELFData:
29                printf("EfiBarrelfishELFData");
30                break;
31            case EfiBarrelfishBootPageTable:
32                printf("EfiBarrelfishBootPageTable");
33                break;
34            default:
35                printf("Unrecognised");
36        }
37        printf(" (%lukB)\n", mmap[i].NumberOfPages * 4);
38    }
39}
40