From 2e1342cdcd9907076015398fd47943c191633518 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Tue, 31 Mar 2020 02:05:11 +0200 Subject: Restore vm_size_t to natural_t Plenty of places such as glibc RPC uses currently assume that vm_size_t is a natural_t (thus int on 32bit), not an unsigned long. * i386/include/mach/i386/vm_types.h (vm_size_t) [!__x86_64__]: Set type to natural_t. * device/dev_page.c (device_pager_data_request): Cast vm_size_t to unsigned long. * i386/i386at/model_dep.c (c_boot_entry): Likewise. --- device/dev_pager.c | 2 +- i386/i386at/model_dep.c | 2 +- i386/include/mach/i386/vm_types.h | 4 ++++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/device/dev_pager.c b/device/dev_pager.c index 84db5ed8..4508ad14 100644 --- a/device/dev_pager.c +++ b/device/dev_pager.c @@ -329,7 +329,7 @@ kern_return_t device_pager_data_request( if (device_pager_debug) printf("(device_pager)data_request: pager=%p, offset=0x%lx, length=0x%lx\n", - pager, offset, length); + pager, (unsigned long) offset, (unsigned long) length); ds = dev_pager_hash_lookup(pager); if (ds == DEV_PAGER_NULL) diff --git a/i386/i386at/model_dep.c b/i386/i386at/model_dep.c index 40bc7cdc..aaeed807 100644 --- a/i386/i386at/model_dep.c +++ b/i386/i386at/model_dep.c @@ -577,7 +577,7 @@ void c_boot_entry(vm_offset_t bi) printf("kernel symbol table at %08lx-%08lx (%ld,%ld)\n", kern_sym_start, kern_sym_end, - symtab_size, strtab_size); + (unsigned long) symtab_size, (unsigned long) strtab_size); } if ((boot_info.flags & MULTIBOOT_ELF_SHDR) diff --git a/i386/include/mach/i386/vm_types.h b/i386/include/mach/i386/vm_types.h index 78fb805b..28609e7c 100644 --- a/i386/include/mach/i386/vm_types.h +++ b/i386/include/mach/i386/vm_types.h @@ -83,7 +83,11 @@ typedef unsigned long phys_addr_t; * expressing the difference between two * vm_offset_t entities. */ +#ifdef __x86_64__ typedef unsigned long vm_size_t; +#else +typedef natural_t vm_size_t; +#endif #endif /* __ASSEMBLER__ */ -- cgit v1.2.3