summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2020-03-31 02:05:11 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2020-03-31 02:06:34 +0200
commit2e1342cdcd9907076015398fd47943c191633518 (patch)
tree732379115a48dc83d3f5f25c8ca87c2073c9e928
parent6c4464d16b2fccb1acf8cd78f6b61426a949ab01 (diff)
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.
-rw-r--r--device/dev_pager.c2
-rw-r--r--i386/i386at/model_dep.c2
-rw-r--r--i386/include/mach/i386/vm_types.h4
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__ */