[haiku-commits] Change in haiku[master]: efi: fix pointer width on non-64-bit platforms

  • From: Gerrit <review@xxxxxxxxxxxxxxxxxxx>
  • To: waddlesplash <waddlesplash@xxxxxxxxx>, haiku-commits@xxxxxxxxxxxxx
  • Date: Fri, 3 Apr 2020 03:50:55 +0000

From Alex von Gluck IV <kallisti5@xxxxxxxxxxx>:

Alex von Gluck IV has uploaded this change for review. ( 
https://review.haiku-os.org/c/haiku/+/2450 ;)


Change subject: efi: fix pointer width on non-64-bit platforms
......................................................................

efi: fix pointer width on non-64-bit platforms

Change-Id: I041238af87df3e1e3a967216685413801fd49877
---
M headers/private/kernel/boot/platform.h
M src/system/boot/loader/kernel_args.cpp
M src/system/boot/platform/efi/mmu.cpp
M src/system/boot/platform/efi/mmu.h
4 files changed, 18 insertions(+), 18 deletions(-)



  git pull ssh://git.haiku-os.org:22/haiku refs/changes/50/2450/1

diff --git a/headers/private/kernel/boot/platform.h 
b/headers/private/kernel/boot/platform.h
index 3c28b73..c30fcff 100644
--- a/headers/private/kernel/boot/platform.h
+++ b/headers/private/kernel/boot/platform.h
@@ -28,8 +28,8 @@
 extern status_t platform_allocate_region(void **_virtualAddress, size_t size,
        uint8 protection, bool exactAddress);
 extern status_t platform_free_region(void *address, size_t size);
-extern status_t platform_bootloader_address_to_kernel_address(void *address, 
uint64_t *_result);
-extern status_t platform_kernel_address_to_bootloader_address(uint64_t 
address, void **_result);
+extern status_t platform_bootloader_address_to_kernel_address(void *address, 
addr_t *_result);
+extern status_t platform_kernel_address_to_bootloader_address(addr_t address, 
void **_result);

 /* boot options */
 #define BOOT_OPTION_MENU                       1
diff --git a/src/system/boot/loader/kernel_args.cpp 
b/src/system/boot/loader/kernel_args.cpp
index a5ddc2b..53504c8 100644
--- a/src/system/boot/loader/kernel_args.cpp
+++ b/src/system/boot/loader/kernel_args.cpp
@@ -371,7 +371,7 @@
                }

 #ifdef _BOOT_PLATFORM_EFI
-               uint64 translated_block;
+               addr_t translated_block;
                platform_bootloader_address_to_kernel_address(block, 
&translated_block);
                if (add_kernel_args_range((void *)translated_block, size) != 
B_OK)
 #else
@@ -392,7 +392,7 @@
        sLast = block;
        sFree = kChunkSize - size;
 #ifdef _BOOT_PLATFORM_EFI
-       uint64 translated_block;
+       addr_t translated_block;
        platform_bootloader_address_to_kernel_address(block, &translated_block);
        if (add_kernel_args_range((void *)translated_block, kChunkSize) != B_OK)
 #else
diff --git a/src/system/boot/platform/efi/mmu.cpp 
b/src/system/boot/platform/efi/mmu.cpp
index 75fcd10..c9d953e 100644
--- a/src/system/boot/platform/efi/mmu.cpp
+++ b/src/system/boot/platform/efi/mmu.cpp
@@ -19,8 +19,8 @@

 struct allocated_memory_region {
        allocated_memory_region *next;
-       uint64_t vaddr;
-       uint64_t paddr;
+       addr_t vaddr;
+       addr_t paddr;
        size_t size;
        bool released;
 };
@@ -38,7 +38,7 @@
 static allocated_memory_region *allocated_memory_regions = NULL;
 

-extern "C" uint64_t
+extern "C" addr_t
 mmu_allocate_page()
 {
        efi_physical_addr addr;
@@ -111,7 +111,7 @@
        region->released = false;

        if (*_address != NULL) {
-               region->vaddr = (uint64_t)*_address;
+               region->vaddr = (addr_t)*_address;
        }

        //dprintf("Allocated region %#lx (requested %p) %#lx %lu\n", 
region->vaddr, *_address, region->paddr, region->size);
@@ -167,7 +167,7 @@
 get_region(void *address, size_t size)
 {
        for (allocated_memory_region *region = allocated_memory_regions; 
region; region = region->next) {
-               if (region->paddr == (uint64_t)address && region->size == size) 
{
+               if (region->paddr == (addr_t)address && region->size == size) {
                        return region;
                }
        }
@@ -208,12 +208,12 @@


 extern "C" status_t
-platform_bootloader_address_to_kernel_address(void *address, uint64_t *_result)
+platform_bootloader_address_to_kernel_address(void *address, addr_t *_result)
 {
        // Convert any physical ranges prior to looking up address
        convert_physical_ranges();

-       uint64_t addr = (uint64_t)address;
+       addr_t addr = (addr_t)address;

        for (allocated_memory_region *region = allocated_memory_regions; 
region; region = region->next) {
                if (region->paddr <= addr && addr < region->paddr + 
region->size) {
@@ -233,7 +233,7 @@


 extern "C" status_t
-platform_kernel_address_to_bootloader_address(uint64_t address, void **_result)
+platform_kernel_address_to_bootloader_address(addr_t address, void **_result)
 {
        for (allocated_memory_region *region = allocated_memory_regions; 
region; region = region->next) {
                if (region->vaddr != 0 && region->vaddr <= address && address < 
region->vaddr + region->size) {
diff --git a/src/system/boot/platform/efi/mmu.h 
b/src/system/boot/platform/efi/mmu.h
index a7e5d83..5168afc 100644
--- a/src/system/boot/platform/efi/mmu.h
+++ b/src/system/boot/platform/efi/mmu.h
@@ -34,18 +34,18 @@

 extern void mmu_init();

-extern uint64_t mmu_allocate_page();
+extern addr_t mmu_allocate_page();

 extern addr_t mmu_map_physical_memory(addr_t physicalAddress, size_t size,
        uint32 flags);

 extern void mmu_free(void *virtualAddress, size_t size);

-extern status_t platform_kernel_address_to_bootloader_address(uint64_t address,
+extern status_t platform_kernel_address_to_bootloader_address(addr_t address,
        void **_result);

 extern status_t platform_bootloader_address_to_kernel_address(void *address,
-       uint64_t *_result);
+       addr_t *_result);

 #ifdef __cplusplus
 }
@@ -53,10 +53,10 @@


 /*! Convert a 32-bit address to a 64-bit address. */
-inline uint64
-fix_address(uint64 address)
+inline addr_t
+fix_address(addr_t address)
 {
-       uint64 result;
+       addr_t result;
        if (platform_bootloader_address_to_kernel_address((void *)address, 
&result)
                != B_OK) {
                return address;

--
To view, visit https://review.haiku-os.org/c/haiku/+/2450
To unsubscribe, or for help writing mail filters, visit 
https://review.haiku-os.org/settings

Gerrit-Project: haiku
Gerrit-Branch: master
Gerrit-Change-Id: I041238af87df3e1e3a967216685413801fd49877
Gerrit-Change-Number: 2450
Gerrit-PatchSet: 1
Gerrit-Owner: Alex von Gluck IV <kallisti5@xxxxxxxxxxx>
Gerrit-MessageType: newchange

Other related posts:

  • » [haiku-commits] Change in haiku[master]: efi: fix pointer width on non-64-bit platforms - Gerrit