diff --git a/headers/os/support/SupportDefs.h b/headers/os/support/SupportDefs.h index 0529525366..e4f0c24e53 100644 --- a/headers/os/support/SupportDefs.h +++ b/headers/os/support/SupportDefs.h @@ -148,6 +148,14 @@ typedef generic_addr_t generic_size_t; #define B_PRIiTIME B_PRIi32 +/* Printed width of a pointer with the %p format (minus 0x prefix). */ +#ifdef B_HAIKU_64_BIT +# define B_PRINTF_POINTER_WIDTH 16 +#else +# define B_PRINTF_POINTER_WIDTH 8 +#endif + + /* Empty string ("") */ #ifdef __cplusplus extern const char *B_EMPTY_STRING; diff --git a/src/system/kernel/elf.cpp b/src/system/kernel/elf.cpp index 59e2928b2a..e4682fe561 100644 --- a/src/system/kernel/elf.cpp +++ b/src/system/kernel/elf.cpp @@ -463,8 +463,8 @@ dump_symbols(int argc, char **argv) // dump symbols - kprintf("Symbols of image %" B_PRId32 "\"%s\":\n" - "Address Type Size Name\n", image->id, image->name); + kprintf("Symbols of image %" B_PRId32 "\"%s\":\n", image->id, image->name); + kprintf("%-*s Type Size Name\n", B_PRINTF_POINTER_WIDTH, "Address"); if (image->num_debug_symbols > 0) { // search extended debug symbol table (contains static symbols) @@ -475,7 +475,7 @@ dump_symbols(int argc, char **argv) >= image->text_region.size + image->data_region.size) continue; - kprintf("%08lx %s/%s %5ld %s\n", + kprintf("%0*lx %s/%s %5ld %s\n", B_PRINTF_POINTER_WIDTH, symbol->st_value + image->text_region.delta, get_symbol_type_string(symbol), get_symbol_bind_string(symbol), symbol->st_size, image->debug_string_table + symbol->st_name); diff --git a/src/system/kernel/fs/vfs.cpp b/src/system/kernel/fs/vfs.cpp index d2a5e768f3..6e4dfd2d39 100644 --- a/src/system/kernel/fs/vfs.cpp +++ b/src/system/kernel/fs/vfs.cpp @@ -3174,7 +3174,9 @@ dump_mounts(int argc, char** argv) return 0; } - kprintf("address id root covers cookie fs_name\n"); + kprintf("%-*s id %-*s %-*s %-*s fs_name\n", + B_PRINTF_POINTER_WIDTH, "address", B_PRINTF_POINTER_WIDTH, "root", + B_PRINTF_POINTER_WIDTH, "covers", B_PRINTF_POINTER_WIDTH, "cookie"); struct hash_iterator iterator; struct fs_mount* mount; @@ -3257,8 +3259,9 @@ dump_vnodes(int argc, char** argv) struct hash_iterator iterator; struct vnode* vnode; - kprintf("address dev inode ref cache fs-node locking " - "flags\n"); + kprintf("%-*s dev inode ref %-*s %-*s %-*s flags\n", + B_PRINTF_POINTER_WIDTH, "address", B_PRINTF_POINTER_WIDTH, "cache", + B_PRINTF_POINTER_WIDTH, "fs-node", B_PRINTF_POINTER_WIDTH, "locking"); hash_open(sVnodeTable, &iterator); while ((vnode = (struct vnode*)hash_next(sVnodeTable, &iterator)) != NULL) { @@ -3293,7 +3296,8 @@ dump_vnode_caches(int argc, char** argv) if (argc > 1) device = parse_expression(argv[1]); - kprintf("address dev inode cache size pages\n"); + kprintf("%-*s dev inode %-*s size pages\n", + B_PRINTF_POINTER_WIDTH, "address", B_PRINTF_POINTER_WIDTH, "cache"); hash_open(sVnodeTable, &iterator); while ((vnode = (struct vnode*)hash_next(sVnodeTable, &iterator)) != NULL) { @@ -3344,9 +3348,10 @@ dump_io_context(int argc, char** argv) kprintf(" used fds:\t%" B_PRIu32 "\n", context->num_used_fds); kprintf(" max fds:\t%" B_PRIu32 "\n", context->table_size); - if (context->num_used_fds) - kprintf(" no. type ops ref open mode pos" - " cookie\n"); + if (context->num_used_fds) { + kprintf(" no. type %*s ref open mode pos %*s\n", + B_PRINTF_POINTER_WIDTH, "ops", B_PRINTF_POINTER_WIDTH, "cookie"); + } for (uint32 i = 0; i < context->table_size; i++) { struct file_descriptor* fd = context->fds[i]; diff --git a/src/system/kernel/image.cpp b/src/system/kernel/image.cpp index 787124db81..1de30f7c0a 100644 --- a/src/system/kernel/image.cpp +++ b/src/system/kernel/image.cpp @@ -261,7 +261,8 @@ dump_images_list(int argc, char **argv) team = thread_get_current_thread()->team; kprintf("Registered images of team %" B_PRId32 "\n", team->id); - kprintf(" ID text size data size name\n"); + kprintf(" ID %-*s size %-*s size name\n", + B_PRINTF_POINTER_WIDTH, "text", B_PRINTF_POINTER_WIDTH, "data"); while ((image = (struct image*)list_get_next_item(&team->image_list, image)) != NULL) { diff --git a/src/system/kernel/sem.cpp b/src/system/kernel/sem.cpp index 5a5a20af43..747428e4c9 100644 --- a/src/system/kernel/sem.cpp +++ b/src/system/kernel/sem.cpp @@ -153,7 +153,8 @@ dump_sem_list(int argc, char** argv) } else if (argc > 1) owner = strtoul(argv[1], NULL, 0); - kprintf("sem id count team last name\n"); + kprintf("%-*s id count team last name\n", B_PRINTF_POINTER_WIDTH, + "sem"); for (i = 0; i < sMaxSems; i++) { struct sem_entry* sem = &sSems[i]; diff --git a/src/system/kernel/slab/MemoryManager.cpp b/src/system/kernel/slab/MemoryManager.cpp index f21d5ed392..4791d4b79c 100644 --- a/src/system/kernel/slab/MemoryManager.cpp +++ b/src/system/kernel/slab/MemoryManager.cpp @@ -1766,7 +1766,8 @@ MemoryManager::_CheckMetaChunk(MetaChunk* metaChunk) /*static*/ int MemoryManager::_DumpRawAllocations(int argc, char** argv) { - kprintf("area meta chunk chunk base size (KB)\n"); + kprintf("%-*s meta chunk chunk %-*s size (KB)\n", + B_PRINTF_POINTER_WIDTH, "area", B_PRINTF_POINTER_WIDTH, "base"); size_t totalSize = 0; @@ -1798,8 +1799,8 @@ MemoryManager::_DumpRawAllocations(int argc, char** argv) } } - kprintf("total: %9" B_PRIuSIZE "\n", - totalSize / 1024); + kprintf("total:%*s%9" B_PRIuSIZE "\n", (2 * B_PRINTF_POINTER_WIDTH) + 21, + "", totalSize / 1024); return 0; } @@ -1976,7 +1977,8 @@ MemoryManager::_DumpArea(int argc, char** argv) /*static*/ int MemoryManager::_DumpAreas(int argc, char** argv) { - kprintf(" base area meta small medium large\n"); + kprintf(" %*s %*s meta small medium large\n", + B_PRINTF_POINTER_WIDTH, "base", B_PRINTF_POINTER_WIDTH, "area"); size_t totalTotalSmall = 0; size_t totalUsedSmall = 0; diff --git a/src/system/kernel/slab/Slab.cpp b/src/system/kernel/slab/Slab.cpp index 327506ae73..81a8cdd0ad 100644 --- a/src/system/kernel/slab/Slab.cpp +++ b/src/system/kernel/slab/Slab.cpp @@ -258,8 +258,9 @@ dump_slab(::slab* slab) static int dump_slabs(int argc, char* argv[]) { - kprintf("%10s %22s %8s %8s %8s %6s %8s %8s %8s\n", "address", "name", - "objsize", "align", "usage", "empty", "usedobj", "total", "flags"); + kprintf("%*s %22s %8s %8s %8s %6s %8s %8s %8s\n", + B_PRINTF_POINTER_WIDTH + 2, "address", "name", "objsize", "align", + "usage", "empty", "usedobj", "total", "flags"); ObjectCacheList::Iterator it = sObjectCaches.GetIterator(); @@ -303,7 +304,8 @@ dump_cache_info(int argc, char* argv[]) kprintf("resize entry don't wait: %p\n", cache->resize_entry_dont_wait); kprintf("resize entry can wait: %p\n", cache->resize_entry_can_wait); - kprintf(" slab chunk size used offset free\n"); + kprintf(" %-*s %-*s size used offset free\n", + B_PRINTF_POINTER_WIDTH, "slab", B_PRINTF_POINTER_WIDTH, "chunk"); SlabList::Iterator iterator = cache->empty.GetIterator(); if (iterator.HasNext()) diff --git a/src/system/kernel/team.cpp b/src/system/kernel/team.cpp index c8ac2cfd5e..0373b55c43 100644 --- a/src/system/kernel/team.cpp +++ b/src/system/kernel/team.cpp @@ -1185,7 +1185,8 @@ dump_team_info(int argc, char** argv) static int dump_teams(int argc, char** argv) { - kprintf("team id parent name\n"); + kprintf("%-*s id %-*s name\n", B_PRINTF_POINTER_WIDTH, "team", + B_PRINTF_POINTER_WIDTH, "parent"); for (TeamTable::Iterator it = sTeamHash.GetIterator(); Team* team = it.Next();) { diff --git a/src/system/kernel/thread.cpp b/src/system/kernel/thread.cpp index f392756e8c..76cb73c156 100644 --- a/src/system/kernel/thread.cpp +++ b/src/system/kernel/thread.cpp @@ -1595,8 +1595,10 @@ state_to_text(Thread *thread, int32 state) static void print_thread_list_table_head() { - kprintf("thread id state wait for object cpu pri stack " - " team name\n"); + kprintf("%-*s id state wait for %-*s cpu pri %-*s team " + "name\n", + B_PRINTF_POINTER_WIDTH, "thread", B_PRINTF_POINTER_WIDTH, "object", + B_PRINTF_POINTER_WIDTH, "stack"); } @@ -1614,42 +1616,44 @@ _dump_thread_info(Thread *thread, bool shortInfo) { sem_id sem = (sem_id)(addr_t)thread->wait.object; if (sem == thread->msg.read_sem) - kprintf(" "); - else - kprintf("sem %12" B_PRId32 " ", sem); + kprintf("%*s", B_PRINTF_POINTER_WIDTH + 15, ""); + else { + kprintf("sem %-*" B_PRId32, + B_PRINTF_POINTER_WIDTH + 5, sem); + } break; } case THREAD_BLOCK_TYPE_CONDITION_VARIABLE: - kprintf("cvar %p ", thread->wait.object); + kprintf("cvar %p ", thread->wait.object); break; case THREAD_BLOCK_TYPE_SNOOZE: - kprintf(" "); + kprintf("%*s", B_PRINTF_POINTER_WIDTH + 15, ""); break; case THREAD_BLOCK_TYPE_SIGNAL: - kprintf("signal "); + kprintf("signal%*s", B_PRINTF_POINTER_WIDTH + 9, ""); break; case THREAD_BLOCK_TYPE_MUTEX: - kprintf("mutex %p ", thread->wait.object); + kprintf("mutex %p ", thread->wait.object); break; case THREAD_BLOCK_TYPE_RW_LOCK: - kprintf("rwlock %p ", thread->wait.object); + kprintf("rwlock %p ", thread->wait.object); break; case THREAD_BLOCK_TYPE_OTHER: - kprintf("other "); + kprintf("other%*s", B_PRINTF_POINTER_WIDTH + 10, ""); break; default: - kprintf("??? %p ", thread->wait.object); + kprintf("??? %p ", thread->wait.object); break; } } else - kprintf(" - "); + kprintf("-%*s", B_PRINTF_POINTER_WIDTH + 14, ""); // on which CPU does it run? if (thread->cpu) diff --git a/src/system/kernel/vm/VMAddressSpace.cpp b/src/system/kernel/vm/VMAddressSpace.cpp index c42e692473..46f3e12e1a 100644 --- a/src/system/kernel/vm/VMAddressSpace.cpp +++ b/src/system/kernel/vm/VMAddressSpace.cpp @@ -344,8 +344,9 @@ VMAddressSpace::_DumpCommand(int argc, char** argv) /*static*/ int VMAddressSpace::_DumpListCommand(int argc, char** argv) { - kprintf(" address id base end area count " - " area size\n"); + kprintf(" %*s id %*s %*s area count area size\n", + B_PRINTF_POINTER_WIDTH, "address", B_PRINTF_POINTER_WIDTH, "base", + B_PRINTF_POINTER_WIDTH, "end"); AddressSpaceTable::Iterator it = sAddressSpaceTable.GetIterator(); while (VMAddressSpace* space = it.Next()) { diff --git a/src/system/kernel/vm/vm.cpp b/src/system/kernel/vm/vm.cpp index b4f00fbbe3..5d5f936459 100644 --- a/src/system/kernel/vm/vm.cpp +++ b/src/system/kernel/vm/vm.cpp @@ -3372,7 +3372,9 @@ dump_area_list(int argc, char** argv) name = argv[1]; } - kprintf("addr id base\t\tsize protect lock name\n"); + kprintf("%-*s id %-*s %-*sprotect lock name\n", + B_PRINTF_POINTER_WIDTH, "addr", B_PRINTF_POINTER_WIDTH, "base", + B_PRINTF_POINTER_WIDTH, "size"); VMAreaHashTable::Iterator it = VMAreaHash::GetIterator(); while ((area = it.Next()) != NULL) { @@ -3380,7 +3382,7 @@ dump_area_list(int argc, char** argv) || (name != NULL && strstr(area->name, name) == NULL)) continue; - kprintf("%p %5" B_PRIx32 " %p\t%p %4" B_PRIx32 "\t%4d %s\n", area, + kprintf("%p %5" B_PRIx32 " %p %p %4" B_PRIx32 " %4d %s\n", area, area->id, (void*)area->Base(), (void*)area->Size(), area->protection, area->wiring, area->name); }