Index: sys/vm/vm_map.c =================================================================== --- sys/vm/vm_map.c (revision 249894) +++ sys/vm/vm_map.c (working copy) @@ -82,6 +82,8 @@ #include #include #include +#include +#include #include #include @@ -4004,6 +4006,34 @@ vm_map_unlock_read(map); } +static int +vm_map_printentries(SYSCTL_HANDLER_ARGS) +{ + vm_map_t map; + vm_map_entry_t entry; + struct sbuf *sb; + u_int entrynum; + int error; + + error = sysctl_wire_old_buffer(req, 0); + if (error != 0) + return error; + sb = sbuf_new_for_sysctl(NULL, NULL, 256, req); + map = kmem_map; + vm_map_lock(map); + for (entry = map->header.next, entrynum = 0; entry != &map->header; + entry = entry->next, entrynum++) + sbuf_printf(sb, "%u %lu %lu \n", entrynum, entry->start, + entry->end); + vm_map_unlock(map); + sbuf_finish(sb); + sbuf_delete(sb); + return (0); +} + +SYSCTL_PROC(_vm, OID_AUTO, map_printentries, CTLTYPE_STRING | CTLFLAG_RD | + CTLFLAG_MPSAFE, 0, 0, vm_map_printentries, "A", "Print kmem map entries"); + #include "opt_ddb.h" #ifdef DDB #include