MCPcopy Create free account
hub / github.com/F-Stack/f-stack / sysctl_kmaps_dump

Function sysctl_kmaps_dump

freebsd/arm64/arm64/pmap.c:7026–7068  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7024};
7025
7026static void
7027sysctl_kmaps_dump(struct sbuf *sb, struct pmap_kernel_map_range *range,
7028 vm_offset_t eva)
7029{
7030 const char *mode;
7031 int index;
7032
7033 if (eva <= range->sva)
7034 return;
7035
7036 index = range->attrs & ATTR_S1_IDX_MASK;
7037 switch (index) {
7038 case ATTR_S1_IDX(VM_MEMATTR_DEVICE):
7039 mode = "DEV";
7040 break;
7041 case ATTR_S1_IDX(VM_MEMATTR_UNCACHEABLE):
7042 mode = "UC";
7043 break;
7044 case ATTR_S1_IDX(VM_MEMATTR_WRITE_BACK):
7045 mode = "WB";
7046 break;
7047 case ATTR_S1_IDX(VM_MEMATTR_WRITE_THROUGH):
7048 mode = "WT";
7049 break;
7050 default:
7051 printf(
7052 "%s: unknown memory type %x for range 0x%016lx-0x%016lx\n",
7053 __func__, index, range->sva, eva);
7054 mode = "??";
7055 break;
7056 }
7057
7058 sbuf_printf(sb, "0x%016lx-0x%016lx r%c%c%c %3s %d %d %d %d\n",
7059 range->sva, eva,
7060 (range->attrs & ATTR_S1_AP_RW_BIT) == ATTR_S1_AP_RW ? 'w' : '-',
7061 (range->attrs & ATTR_S1_PXN) != 0 ? '-' : 'x',
7062 (range->attrs & ATTR_S1_AP_USER) != 0 ? 'u' : 's',
7063 mode, range->l1blocks, range->l2blocks, range->l3contig,
7064 range->l3pages);
7065
7066 /* Reset to sentinel value. */
7067 range->sva = 0xfffffffffffffffful;
7068}
7069
7070/*
7071 * Determine whether the attributes specified by a page table entry match those

Callers 2

sysctl_kmaps_checkFunction · 0.70
sysctl_kmapsFunction · 0.70

Calls 2

sbuf_printfFunction · 0.85
printfFunction · 0.50

Tested by

no test coverage detected