From 40099feb80951f2a9f131d136d85074ecb8c0016 Mon Sep 17 00:00:00 2001 From: apio Date: Sat, 8 Oct 2022 18:11:41 +0200 Subject: [PATCH 1/6] Apps: Use the new %p in printf() --- apps/src/init.c | 2 +- apps/src/memeater.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/src/init.c b/apps/src/init.c index 8f23a859..b03c1d24 100644 --- a/apps/src/init.c +++ b/apps/src/init.c @@ -28,7 +28,7 @@ int main() { char* variable = malloc(200); *variable = 3; - printf("Allocated variable at address %lx\n", (unsigned long int)variable); + printf("Allocated variable at address %p\n", variable); free(variable); } diff --git a/apps/src/memeater.c b/apps/src/memeater.c index 1fb24091..d8e87306 100644 --- a/apps/src/memeater.c +++ b/apps/src/memeater.c @@ -12,7 +12,7 @@ int main() sleep(1); void* allocated = malloc(CHUNK); do { - printf("Allocating 4 MB of memory... %lx\n", (unsigned long)allocated); + printf("Allocating 4 MB of memory... %p\n", allocated); sleep(1); } while ((allocated = malloc(CHUNK))); perror("malloc"); From 5fc543c1799fcebc204499624bab56a720872960 Mon Sep 17 00:00:00 2001 From: apio Date: Sat, 8 Oct 2022 18:15:08 +0200 Subject: [PATCH 2/6] Kernel/ACPI: Use printf() with %p --- kernel/src/acpi/RSDT.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/kernel/src/acpi/RSDT.cpp b/kernel/src/acpi/RSDT.cpp index dc055293..5835cc5f 100644 --- a/kernel/src/acpi/RSDT.cpp +++ b/kernel/src/acpi/RSDT.cpp @@ -17,7 +17,7 @@ ACPI::SDTHeader* ACPI::get_rsdt_or_xsdt() kdbgln("First time accessing the RSDT/XSDT, mapping it into memory"); void* physical = (void*)bootboot.arch.x86_64.acpi_ptr; - kdbgln("RSDT/XSDT physical address: %lx", (uint64_t)physical); + kdbgln("RSDT/XSDT physical address: %p", physical); SDTHeader* rsdt = (SDTHeader*)MemoryManager::get_unaligned_mapping(physical); @@ -30,7 +30,7 @@ ACPI::SDTHeader* ACPI::get_rsdt_or_xsdt() rsdt = (SDTHeader*)MemoryManager::get_unaligned_mappings(cache, rsdt_pages); } - kdbgln("Mapped RSDT/XSDT to virtual address %lx, uses %ld pages", (uint64_t)rsdt, rsdt_pages); + kdbgln("Mapped RSDT/XSDT to virtual address %p, uses %ld pages", rsdt, rsdt_pages); cache = rsdt; return rsdt; } @@ -58,8 +58,8 @@ void* ACPI::find_table(ACPI::SDTHeader* root_sdt, const char* signature) { bool isXSDT = is_xsdt(); uint64_t entries = (root_sdt->Length - sizeof(SDTHeader)) / (isXSDT ? 8 : 4); - kdbgln("Searching for table %s in the %s at %lx (table contains %ld entries)", signature, isXSDT ? "XSDT" : "RSDT", - (uint64_t)root_sdt, entries); + kdbgln("Searching for table %s in the %s at %p (table contains %ld entries)", signature, isXSDT ? "XSDT" : "RSDT", + root_sdt, entries); for (uint64_t i = 0; i < entries; i++) { @@ -81,9 +81,9 @@ void* ACPI::find_table(ACPI::SDTHeader* root_sdt, const char* signature) kwarnln("Entry %ld in the %s points to null", i, isXSDT ? "XSDT" : "RSDT"); continue; } - kdbgln("Physical address of entry: %lx", (uint64_t)h); + kdbgln("Physical address of entry: %p", h); SDTHeader* realHeader = (SDTHeader*)MemoryManager::get_unaligned_mapping(h); - kdbgln("Mapped entry to virtual address %lx", (uint64_t)realHeader); + kdbgln("Mapped entry to virtual address %p", realHeader); if (!validate_sdt_header(realHeader)) { kwarnln("Header of entry %ld is not valid, skipping this entry", i); From 8ce58e9e308dade74d274cada5cd450f199430d8 Mon Sep 17 00:00:00 2001 From: apio Date: Sat, 8 Oct 2022 18:16:55 +0200 Subject: [PATCH 3/6] Kernel/InitRD: Use %p with printf() --- kernel/src/init/InitRD.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/kernel/src/init/InitRD.cpp b/kernel/src/init/InitRD.cpp index 979b0431..ee921098 100644 --- a/kernel/src/init/InitRD.cpp +++ b/kernel/src/init/InitRD.cpp @@ -116,7 +116,6 @@ void InitRD::init() { initrd_base = MemoryManager::get_unaligned_mappings((void*)bootboot.initrd_ptr, bootboot.initrd_size / PAGE_SIZE + 1); - kdbgln("physical base at %lx, size %lx, mapped to %lx", bootboot.initrd_ptr, bootboot.initrd_size, - (uint64_t)initrd_base); + kdbgln("physical base at %lx, size %lx, mapped to %p", bootboot.initrd_ptr, bootboot.initrd_size, initrd_base); initrd_initialized = true; } \ No newline at end of file From d5f59b666a43571e40f5f0ddcd6767503924db63 Mon Sep 17 00:00:00 2001 From: apio Date: Sat, 8 Oct 2022 18:21:02 +0200 Subject: [PATCH 4/6] Kernel/Memory: Use %p in printf --- kernel/src/memory/MemoryManager.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/src/memory/MemoryManager.cpp b/kernel/src/memory/MemoryManager.cpp index 075a867b..ada02b99 100644 --- a/kernel/src/memory/MemoryManager.cpp +++ b/kernel/src/memory/MemoryManager.cpp @@ -148,7 +148,7 @@ void* MemoryManager::get_pages_at(uint64_t addr, uint64_t count, int flags) if (!count) return 0; if (count == 1) return get_page_at(addr, flags); #ifdef MM_DEBUG - kdbgln("allocating several pages (%ld), at address %ld", count, addr); + kdbgln("allocating several pages (%ld), at address %lx", count, addr); #endif for (uint64_t i = 0; i < count; i++) { @@ -164,7 +164,7 @@ void* MemoryManager::get_pages_at(uint64_t addr, uint64_t count, int flags) } kernelVMM.map(addr + (i * PAGE_SIZE), (uint64_t)physicalAddress, flags); #ifdef MM_DEBUG - kdbgln("allocating virtual %lx, physical %lx", virtualAddress + (i * PAGE_SIZE), (uint64_t)physicalAddress); + kdbgln("allocating virtual %lx, physical %p", virtualAddress + (i * PAGE_SIZE), physicalAddress); #endif } return (void*)addr; @@ -184,7 +184,7 @@ void MemoryManager::release_pages(void* pages, uint64_t count) ASSERT(physicalAddress != UINT64_MAX); kernelVMM.unmap((uint64_t)page); #ifdef MM_DEBUG - kdbgln("releasing virtual %lx, physical %lx", (uint64_t)page, physicalAddress); + kdbgln("releasing virtual %p, physical %lx", page, physicalAddress); #endif PMM::free_page((void*)physicalAddress); } From 3feb7782bcbe9d821b59e8e937c0e507a66ba4ad Mon Sep 17 00:00:00 2001 From: apio Date: Sat, 8 Oct 2022 18:24:05 +0200 Subject: [PATCH 5/6] Kernel/mmap, munmap: Use %p in printf --- kernel/src/sys/mem.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/kernel/src/sys/mem.cpp b/kernel/src/sys/mem.cpp index 3024fad3..0950b6ad 100644 --- a/kernel/src/sys/mem.cpp +++ b/kernel/src/sys/mem.cpp @@ -21,7 +21,7 @@ void sys_mmap(Context* context, void* address, size_t size, int flags) if (flags & MAP_READ_WRITE) real_flags |= MAP_READ_WRITE; if (address) { - kdbgln("sys_mmap: %ld pages at address %lx, %s", size / PAGE_SIZE, (uint64_t)address, + kdbgln("sys_mmap: %ld pages at address %p, %s", size / PAGE_SIZE, address, real_flags & MAP_READ_WRITE ? "rw" : "ro"); if (kernelVMM.getPhysical((uint64_t)address) != (uint64_t)-1) // Address is already used. { @@ -33,7 +33,7 @@ void sys_mmap(Context* context, void* address, size_t size, int flags) void* result = MemoryManager::get_pages_at((uint64_t)address - offset, size / PAGE_SIZE, real_flags); if (result) { - kdbgln("mmap succeeded: %lx", (uint64_t)result); + kdbgln("mmap succeeded: %p", result); context->rax = (uint64_t)result; return; } @@ -48,7 +48,7 @@ void sys_mmap(Context* context, void* address, size_t size, int flags) void* result = MemoryManager::get_pages(size / PAGE_SIZE, real_flags); if (result) { - kdbgln("mmap succeeded: %lx", (uint64_t)result); + kdbgln("mmap succeeded: %p", result); context->rax = (uint64_t)result; return; } @@ -62,7 +62,7 @@ void sys_mmap(Context* context, void* address, size_t size, int flags) void sys_munmap(Context* context, void* address, size_t size) { - kdbgln("sys_munmap: attempting to unmap %lx", (uint64_t)address); + kdbgln("sys_munmap: attempting to unmap %p", address); if (size < PAGE_SIZE) { kdbgln("munmap failed: size is too small"); From 3686e03bb7aca834ab0bf7b844b9f770526e77ff Mon Sep 17 00:00:00 2001 From: apio Date: Sat, 8 Oct 2022 18:27:05 +0200 Subject: [PATCH 6/6] Cast %p usage to void* Apparently, %p only accepts void*, and not any pointer type. Still better than casting a pointer to uint64_t. --- kernel/src/acpi/RSDT.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/kernel/src/acpi/RSDT.cpp b/kernel/src/acpi/RSDT.cpp index 5835cc5f..410644ba 100644 --- a/kernel/src/acpi/RSDT.cpp +++ b/kernel/src/acpi/RSDT.cpp @@ -30,7 +30,7 @@ ACPI::SDTHeader* ACPI::get_rsdt_or_xsdt() rsdt = (SDTHeader*)MemoryManager::get_unaligned_mappings(cache, rsdt_pages); } - kdbgln("Mapped RSDT/XSDT to virtual address %p, uses %ld pages", rsdt, rsdt_pages); + kdbgln("Mapped RSDT/XSDT to virtual address %p, uses %ld pages", (void*)rsdt, rsdt_pages); cache = rsdt; return rsdt; } @@ -59,7 +59,7 @@ void* ACPI::find_table(ACPI::SDTHeader* root_sdt, const char* signature) bool isXSDT = is_xsdt(); uint64_t entries = (root_sdt->Length - sizeof(SDTHeader)) / (isXSDT ? 8 : 4); kdbgln("Searching for table %s in the %s at %p (table contains %ld entries)", signature, isXSDT ? "XSDT" : "RSDT", - root_sdt, entries); + (void*)root_sdt, entries); for (uint64_t i = 0; i < entries; i++) { @@ -81,9 +81,9 @@ void* ACPI::find_table(ACPI::SDTHeader* root_sdt, const char* signature) kwarnln("Entry %ld in the %s points to null", i, isXSDT ? "XSDT" : "RSDT"); continue; } - kdbgln("Physical address of entry: %p", h); + kdbgln("Physical address of entry: %p", (void*)h); SDTHeader* realHeader = (SDTHeader*)MemoryManager::get_unaligned_mapping(h); - kdbgln("Mapped entry to virtual address %p", realHeader); + kdbgln("Mapped entry to virtual address %p", (void*)realHeader); if (!validate_sdt_header(realHeader)) { kwarnln("Header of entry %ld is not valid, skipping this entry", i);