浏览代码

x86: Increase the size of the phys_size_t and phys_addr_t types

These types should be 64 bits long to reflect the fact that physical
addresses and the size of physical areas of memory are more than 32 bits
long.

Signed-off-by: Gabe Black <gabeblack@chromium.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
Gabe Black 12 年之前
父节点
当前提交
ec516c4899
共有 2 个文件被更改,包括 6 次插入4 次删除
  1. 4 2
      arch/x86/include/asm/io.h
  2. 2 2
      arch/x86/include/asm/types.h

+ 4 - 2
arch/x86/include/asm/io.h

@@ -1,6 +1,8 @@
 #ifndef _ASM_IO_H
 #ifndef _ASM_IO_H
 #define _ASM_IO_H
 #define _ASM_IO_H
 
 
+#include <compiler.h>
+
 /*
 /*
  * This file contains the definitions for the x86 IO instructions
  * This file contains the definitions for the x86 IO instructions
  * inb/inw/inl/outb/outw/outl and the "string versions" of the same
  * inb/inw/inl/outb/outw/outl and the "string versions" of the same
@@ -220,7 +222,7 @@ static inline void sync(void)
 static inline void *
 static inline void *
 map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags)
 map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags)
 {
 {
-	return (void *)paddr;
+	return (void *)(uintptr_t)paddr;
 }
 }
 
 
 /*
 /*
@@ -233,7 +235,7 @@ static inline void unmap_physmem(void *vaddr, unsigned long flags)
 
 
 static inline phys_addr_t virt_to_phys(void * vaddr)
 static inline phys_addr_t virt_to_phys(void * vaddr)
 {
 {
-	return (phys_addr_t)(vaddr);
+	return (phys_addr_t)(uintptr_t)(vaddr);
 }
 }
 
 
 /*
 /*

+ 2 - 2
arch/x86/include/asm/types.h

@@ -45,8 +45,8 @@ typedef unsigned long long u64;
 
 
 typedef u32 dma_addr_t;
 typedef u32 dma_addr_t;
 
 
-typedef unsigned long phys_addr_t;
-typedef unsigned long phys_size_t;
+typedef unsigned long long phys_addr_t;
+typedef unsigned long long phys_size_t;
 
 
 #endif /* __KERNEL__ */
 #endif /* __KERNEL__ */