bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] Define vm_size_t and vm_offset_t as __mach_uintptr_t.


From: Flavio Cruz
Subject: [PATCH] Define vm_size_t and vm_offset_t as __mach_uintptr_t.
Date: Tue, 6 Dec 2022 00:33:41 -0500

This allows *printf to use %zd/%zu/%zx to print vm_size_t and
vm_offset_t. Warnings using the incorrect specifiers were fixed.

Note that MACH_PORT_NULL became just 0 because GCC thinks that we were
comparing a pointer to a character (due to it being an unsigned int) so
I removed the explicit cast.
---
 device/ds_routines.c              | 2 +-
 i386/i386/io_map.c                | 2 +-
 i386/i386at/autoconf.c            | 2 +-
 i386/i386at/com.c                 | 8 ++++----
 i386/i386at/lpr.c                 | 2 +-
 i386/include/mach/i386/vm_types.h | 4 ++--
 i386/intel/pmap.c                 | 6 +++---
 include/mach/port.h               | 2 +-
 kern/ipc_kobject.c                | 2 +-
 vm/vm_fault.c                     | 2 +-
 vm/vm_map.c                       | 8 ++++----
 11 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/device/ds_routines.c b/device/ds_routines.c
index c883aec7..ba233a91 100644
--- a/device/ds_routines.c
+++ b/device/ds_routines.c
@@ -1501,7 +1501,7 @@ device_map(
 static void
 ds_no_senders(mach_no_senders_notification_t *notification)
 {
-       printf("ds_no_senders called! device_port=0x%lx count=%d\n",
+       printf("ds_no_senders called! device_port=0x%zx count=%d\n",
               notification->not_header.msgh_remote_port,
               notification->not_count);
 }
diff --git a/i386/i386/io_map.c b/i386/i386/io_map.c
index 96062243..3e45f316 100644
--- a/i386/i386/io_map.c
+++ b/i386/i386/io_map.c
@@ -49,7 +49,7 @@ io_map(
             */
            start = kernel_virtual_start;
            kernel_virtual_start += round_page(size);
-           printf("stealing kernel virtual addresses %08lx-%08lx\n", start, 
kernel_virtual_start);
+           printf("stealing kernel virtual addresses %08zx-%08zx\n", start, 
kernel_virtual_start);
        }
        else {
            (void) kmem_alloc_pageable(kernel_map, &start, round_page(size));
diff --git a/i386/i386at/autoconf.c b/i386/i386at/autoconf.c
index 0b1251f5..8dc0b3ea 100644
--- a/i386/i386at/autoconf.c
+++ b/i386/i386at/autoconf.c
@@ -133,7 +133,7 @@ void take_dev_irq(
                printf("The device below will clobber IRQ %d (%p).\n", pic, 
ivect[pic]);
                printf("You have two devices at the same IRQ.\n");
                printf("This won't work.  Reconfigure your hardware and try 
again.\n");
-               printf("%s%d: port = %lx, spl = %ld, pic = %d.\n",
+               printf("%s%d: port = %zx, spl = %zd, pic = %d.\n",
                        dev->name, dev->unit, dev->address,
                        dev->sysdep, dev->sysdep1);
                while (1);
diff --git a/i386/i386at/com.c b/i386/i386at/com.c
index d5842d8f..8bd80206 100644
--- a/i386/i386at/com.c
+++ b/i386/i386at/com.c
@@ -235,7 +235,7 @@ comattach(struct bus_device *dev)
        }
 
        take_dev_irq(dev);
-       printf(", port = %lx, spl = %ld, pic = %d. (DOS COM%d)",
+       printf(", port = %zx, spl = %zu, pic = %d. (DOS COM%d)",
               dev->address, dev->sysdep, dev->sysdep1, unit+1);
 
 /*     comcarrier[unit] = addr->flags;*/
@@ -861,11 +861,11 @@ void compr_addr(vm_offset_t addr)
        /* The two line_stat prints may show different values, since
        *  touching some of the registers constitutes changing them.
        */
-       printf("LINE_STAT(%lu) %x\n",
+       printf("LINE_STAT(%zu) %x\n",
                LINE_STAT(addr), inb(LINE_STAT(addr)));
 
-       printf("TXRX(%lu) %x, INTR_ENAB(%lu) %x, INTR_ID(%lu) %x, LINE_CTL(%lu) 
%x,\n\
-MODEM_CTL(%lu) %x, LINE_STAT(%lu) %x, MODEM_STAT(%lu) %x\n",
+       printf("TXRX(%zu) %x, INTR_ENAB(%zu) %x, INTR_ID(%zu) %x, LINE_CTL(%zu) 
%x,\n\
+MODEM_CTL(%zu) %x, LINE_STAT(%zu) %x, MODEM_STAT(%zu) %x\n",
        TXRX(addr),      inb(TXRX(addr)),
        INTR_ENAB(addr), inb(INTR_ENAB(addr)),
        INTR_ID(addr),   inb(INTR_ID(addr)),
diff --git a/i386/i386at/lpr.c b/i386/i386at/lpr.c
index 9b55a5f2..7cef127c 100644
--- a/i386/i386at/lpr.c
+++ b/i386/i386at/lpr.c
@@ -98,7 +98,7 @@ void lprattach(struct bus_device *dev)
        }
 
        take_dev_irq(dev);
-       printf(", port = %lx, spl = %ld, pic = %d.",
+       printf(", port = %zx, spl = %zd, pic = %d.",
               dev->address, dev->sysdep, dev->sysdep1);
        lprinfo[unit] = dev;
   
diff --git a/i386/include/mach/i386/vm_types.h 
b/i386/include/mach/i386/vm_types.h
index 9daaa15e..485143ec 100644
--- a/i386/include/mach/i386/vm_types.h
+++ b/i386/include/mach/i386/vm_types.h
@@ -72,7 +72,7 @@ typedef int           integer_t;
  * A vm_offset_t is a type-neutral pointer,
  * e.g. an offset into a virtual memory space.
  */
-typedef        unsigned long   vm_offset_t;
+typedef        __mach_uintptr_t        vm_offset_t;
 typedef        vm_offset_t *   vm_offset_array_t;
 
 /*
@@ -94,7 +94,7 @@ typedef unsigned long long rpc_phys_addr_t;
  * expressing the difference between two
  * vm_offset_t entities.
  */
-typedef        unsigned long   vm_size_t;
+typedef __mach_uintptr_t vm_size_t;
 typedef        vm_size_t *     vm_size_array_t;
 
 /*
diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c
index 0f2ad641..00a18402 100644
--- a/i386/intel/pmap.c
+++ b/i386/intel/pmap.c
@@ -1973,13 +1973,13 @@ void pmap_enter(
        phys_addr_t             old_pa;
 
        assert(pa != vm_page_fictitious_addr);
-       if (pmap_debug) printf("pmap(%lx, %llx)\n", v, (unsigned long long) pa);
+       if (pmap_debug) printf("pmap(%zx, %llx)\n", v, (unsigned long long) pa);
        if (pmap == PMAP_NULL)
                return;
 
 #if !MACH_KDB
        if (pmap == kernel_pmap && (v < kernel_virtual_start || v >= 
kernel_virtual_end))
-               panic("pmap_enter(%lx, %llx) falls in physical memory area!\n", 
v, (unsigned long long) pa);
+               panic("pmap_enter(%zx, %llx) falls in physical memory area!\n", 
v, (unsigned long long) pa);
 #endif
 #if !(__i486__ || __i586__ || __i686__)
        if (pmap == kernel_pmap && (prot & VM_PROT_WRITE) == 0
@@ -2036,7 +2036,7 @@ Retry:
                 * Would have to enter the new page-table page in
                 * EVERY pmap.
                 */
-               panic("pmap_expand kernel pmap to %#lx", v);
+               panic("pmap_expand kernel pmap to %#zx", v);
            }
 
            /*
diff --git a/include/mach/port.h b/include/mach/port.h
index caa6b713..e38be614 100644
--- a/include/mach/port.h
+++ b/include/mach/port.h
@@ -70,7 +70,7 @@ typedef int *rpc_signature_info_t;
  *  that a port right was present, but it died.
  */
 
-#define MACH_PORT_NULL         ((mach_port_t) 0)
+#define MACH_PORT_NULL         0 /* works with both user and kernel ports */
 #define MACH_PORT_DEAD         ((mach_port_t) ~0)
 
 #define        MACH_PORT_VALID(name)   \
diff --git a/kern/ipc_kobject.c b/kern/ipc_kobject.c
index 5ced4037..cb6fe592 100644
--- a/kern/ipc_kobject.c
+++ b/kern/ipc_kobject.c
@@ -327,7 +327,7 @@ ipc_kobject_destroy(
 
            default:
 #if    MACH_ASSERT
-               printf("ipc_kobject_destroy: port 0x%p, kobj 0x%lx, type %d\n",
+               printf("ipc_kobject_destroy: port 0x%p, kobj 0x%zd, type %d\n",
                       port, port->ip_kobject, ip_kotype(port));
 #endif /* MACH_ASSERT */
                break;
diff --git a/vm/vm_fault.c b/vm/vm_fault.c
index df7b2c41..e1dfb06e 100644
--- a/vm/vm_fault.c
+++ b/vm/vm_fault.c
@@ -652,7 +652,7 @@ vm_fault_return_t vm_fault_page(
                                m->offset + object->paging_offset,
                                PAGE_SIZE, access_required)) != KERN_SUCCESS) {
                                if (object->pager && rc != 
MACH_SEND_INTERRUPTED)
-                                       printf("%s(0x%p, 0x%p, 0x%lx, 0x%x, 
0x%x) failed, %x\n",
+                                       printf("%s(0x%p, 0x%p, 0x%zx, 0x%x, 
0x%x) failed, %x\n",
                                                "memory_object_data_request",
                                                object->pager,
                                                object->pager_request,
diff --git a/vm/vm_map.c b/vm/vm_map.c
index 0dec1f20..ceeb91ee 100644
--- a/vm/vm_map.c
+++ b/vm/vm_map.c
@@ -694,7 +694,7 @@ vm_map_find_entry_anywhere(struct vm_map *map,
 
                if (himask + max != 0) {
                        /* high bits do not continue up to the end */
-                       printf("invalid mask %lx\n", mask);
+                       printf("invalid mask %zx\n", mask);
                        return NULL;
                }
 
@@ -737,7 +737,7 @@ restart:
        max_size = size + mask;
 
        if (max_size < size) {
-               printf("max_size %lx got smaller than size %lx with mask %lx\n",
+               printf("max_size %zd got smaller than size %zd with mask %zd\n",
                       max_size, size, mask);
                goto error;
        }
@@ -773,7 +773,7 @@ restart:
        assert(end <= (entry->vme_end + entry->gap_size));
        if (end > max) {
                /* Does not respect the allowed maximum */
-               printf("%lx does not respect %lx\n", end, max);
+               printf("%zx does not respect %zx\n", end, max);
                return NULL;
        }
        *startp = start;
@@ -939,7 +939,7 @@ vm_map_pmap_enter(
 
                if (vm_map_pmap_enter_print) {
                        printf("vm_map_pmap_enter:");
-                       printf("map: %p, addr: %lx, object: %p, offset: %lx\n",
+                       printf("map: %p, addr: %zx, object: %p, offset: %zx\n",
                                map, addr, object, offset);
                }
 
-- 
2.37.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]