generic: add phys_addr_t for holding physical addresses
Add a kernel-wide "phys_addr_t" which is guaranteed to be able to hold any physical address. By default it equals the word size of the architecture, but a 32-bit architecture can set ARCH_PHYS_ADDR_T_64BIT if it needs a 64-bit phys_addr_t. Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Родитель
9dfed08eb4
Коммит
600715dcdf
|
@ -22,6 +22,9 @@ config WORD_SIZE
|
|||
config PPC_MERGE
|
||||
def_bool y
|
||||
|
||||
config ARCH_PHYS_ADDR_T_64BIT
|
||||
def_bool PPC64 || PHYS_64BIT
|
||||
|
||||
config MMU
|
||||
bool
|
||||
default y
|
||||
|
|
|
@ -48,13 +48,6 @@ typedef struct {
|
|||
|
||||
typedef __vector128 vector128;
|
||||
|
||||
/* Physical address used by some IO functions */
|
||||
#if defined(CONFIG_PPC64) || defined(CONFIG_PHYS_64BIT)
|
||||
typedef u64 phys_addr_t;
|
||||
#else
|
||||
typedef u32 phys_addr_t;
|
||||
#endif
|
||||
|
||||
#ifdef __powerpc64__
|
||||
typedef u64 dma_addr_t;
|
||||
#else
|
||||
|
|
|
@ -932,6 +932,9 @@ config X86_PAE
|
|||
has the cost of more pagetable lookup overhead, and also
|
||||
consumes more pagetable space per process.
|
||||
|
||||
config ARCH_PHYS_ADDR_T_64BIT
|
||||
def_bool X86_64 || X86_PAE
|
||||
|
||||
# Common NUMA Features
|
||||
config NUMA
|
||||
bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)"
|
||||
|
|
|
@ -33,7 +33,6 @@ typedef u64 pmdval_t;
|
|||
typedef u64 pudval_t;
|
||||
typedef u64 pgdval_t;
|
||||
typedef u64 pgprotval_t;
|
||||
typedef u64 phys_addr_t;
|
||||
|
||||
typedef union {
|
||||
struct {
|
||||
|
@ -54,7 +53,6 @@ typedef unsigned long pmdval_t;
|
|||
typedef unsigned long pudval_t;
|
||||
typedef unsigned long pgdval_t;
|
||||
typedef unsigned long pgprotval_t;
|
||||
typedef unsigned long phys_addr_t;
|
||||
|
||||
typedef union {
|
||||
pteval_t pte;
|
||||
|
|
|
@ -79,7 +79,6 @@ typedef unsigned long pmdval_t;
|
|||
typedef unsigned long pudval_t;
|
||||
typedef unsigned long pgdval_t;
|
||||
typedef unsigned long pgprotval_t;
|
||||
typedef unsigned long phys_addr_t;
|
||||
|
||||
typedef struct page *pgtable_t;
|
||||
|
||||
|
|
|
@ -197,6 +197,12 @@ typedef u64 resource_size_t;
|
|||
typedef u32 resource_size_t;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PHYS_ADDR_T_64BIT
|
||||
typedef u64 phys_addr_t;
|
||||
#else
|
||||
typedef u32 phys_addr_t;
|
||||
#endif
|
||||
|
||||
struct ustat {
|
||||
__kernel_daddr_t f_tfree;
|
||||
__kernel_ino_t f_tinode;
|
||||
|
|
|
@ -187,6 +187,9 @@ config RESOURCES_64BIT
|
|||
help
|
||||
This option allows memory and IO resources to be 64 bit.
|
||||
|
||||
config PHYS_ADDR_T_64BIT
|
||||
def_bool 64BIT || ARCH_PHYS_ADDR_T_64BIT
|
||||
|
||||
config ZONE_DMA_FLAG
|
||||
int
|
||||
default "0" if !ZONE_DMA
|
||||
|
|
Загрузка…
Ссылка в новой задаче