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
|
config PPC_MERGE
|
||||||
def_bool y
|
def_bool y
|
||||||
|
|
||||||
|
config ARCH_PHYS_ADDR_T_64BIT
|
||||||
|
def_bool PPC64 || PHYS_64BIT
|
||||||
|
|
||||||
config MMU
|
config MMU
|
||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|
|
@ -48,13 +48,6 @@ typedef struct {
|
||||||
|
|
||||||
typedef __vector128 vector128;
|
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__
|
#ifdef __powerpc64__
|
||||||
typedef u64 dma_addr_t;
|
typedef u64 dma_addr_t;
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -932,6 +932,9 @@ config X86_PAE
|
||||||
has the cost of more pagetable lookup overhead, and also
|
has the cost of more pagetable lookup overhead, and also
|
||||||
consumes more pagetable space per process.
|
consumes more pagetable space per process.
|
||||||
|
|
||||||
|
config ARCH_PHYS_ADDR_T_64BIT
|
||||||
|
def_bool X86_64 || X86_PAE
|
||||||
|
|
||||||
# Common NUMA Features
|
# Common NUMA Features
|
||||||
config NUMA
|
config NUMA
|
||||||
bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)"
|
bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)"
|
||||||
|
|
|
@ -33,7 +33,6 @@ typedef u64 pmdval_t;
|
||||||
typedef u64 pudval_t;
|
typedef u64 pudval_t;
|
||||||
typedef u64 pgdval_t;
|
typedef u64 pgdval_t;
|
||||||
typedef u64 pgprotval_t;
|
typedef u64 pgprotval_t;
|
||||||
typedef u64 phys_addr_t;
|
|
||||||
|
|
||||||
typedef union {
|
typedef union {
|
||||||
struct {
|
struct {
|
||||||
|
@ -54,7 +53,6 @@ typedef unsigned long pmdval_t;
|
||||||
typedef unsigned long pudval_t;
|
typedef unsigned long pudval_t;
|
||||||
typedef unsigned long pgdval_t;
|
typedef unsigned long pgdval_t;
|
||||||
typedef unsigned long pgprotval_t;
|
typedef unsigned long pgprotval_t;
|
||||||
typedef unsigned long phys_addr_t;
|
|
||||||
|
|
||||||
typedef union {
|
typedef union {
|
||||||
pteval_t pte;
|
pteval_t pte;
|
||||||
|
|
|
@ -79,7 +79,6 @@ typedef unsigned long pmdval_t;
|
||||||
typedef unsigned long pudval_t;
|
typedef unsigned long pudval_t;
|
||||||
typedef unsigned long pgdval_t;
|
typedef unsigned long pgdval_t;
|
||||||
typedef unsigned long pgprotval_t;
|
typedef unsigned long pgprotval_t;
|
||||||
typedef unsigned long phys_addr_t;
|
|
||||||
|
|
||||||
typedef struct page *pgtable_t;
|
typedef struct page *pgtable_t;
|
||||||
|
|
||||||
|
|
|
@ -197,6 +197,12 @@ typedef u64 resource_size_t;
|
||||||
typedef u32 resource_size_t;
|
typedef u32 resource_size_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_PHYS_ADDR_T_64BIT
|
||||||
|
typedef u64 phys_addr_t;
|
||||||
|
#else
|
||||||
|
typedef u32 phys_addr_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
struct ustat {
|
struct ustat {
|
||||||
__kernel_daddr_t f_tfree;
|
__kernel_daddr_t f_tfree;
|
||||||
__kernel_ino_t f_tinode;
|
__kernel_ino_t f_tinode;
|
||||||
|
|
|
@ -187,6 +187,9 @@ config RESOURCES_64BIT
|
||||||
help
|
help
|
||||||
This option allows memory and IO resources to be 64 bit.
|
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
|
config ZONE_DMA_FLAG
|
||||||
int
|
int
|
||||||
default "0" if !ZONE_DMA
|
default "0" if !ZONE_DMA
|
||||||
|
|
Загрузка…
Ссылка в новой задаче