mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
include: don't use asm/page.h from common headers
Doing so limits what can be done in (in particular included by) this per- arch header. Abstract out page shift/size related #define-s, which is all the respective headers care about. Extend the replacement / removal to some x86 headers as well; some others now need to include page.h (and they really should have before). Arm's VADDR_BITS gets dropped altogether: Its current value is clearly wrong for 64-bit, but the constant also isn't used anywhere right now. While Arm used vaddr_t in PAGE_OFFSET(), this use is compatible with that of unsigned long in the new common implementation. Also drop the dead PAGE_FLAG_MASK at this occasion. Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Julien Grall <jgrall@amazon.com>
This commit is contained in:
1 parent
8868a0e3f6
commit
aa4b9d1ee6
21 files changed
+71
-58
No files matched your search
@@ -14,6 +14,8 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <xen/page-size.h>
|
||||
|
||||
/*
|
||||
* Clear page @dest
|
||||
*
|
||||
|
||||
@@ -176,11 +176,6 @@
|
||||
#define FIXMAP_ACPI_BEGIN 2 /* Start mappings of ACPI tables */
|
||||
#define FIXMAP_ACPI_END (FIXMAP_ACPI_BEGIN + NUM_FIXMAP_ACPI_PAGES - 1) /* End mappings of ACPI tables */
|
||||
|
||||
#define PAGE_SHIFT 12
|
||||
#define PAGE_SIZE (_AC(1,L) << PAGE_SHIFT)
|
||||
#define PAGE_MASK (~(PAGE_SIZE-1))
|
||||
#define PAGE_FLAG_MASK (~0)
|
||||
|
||||
#define NR_hypercalls 64
|
||||
|
||||
#define STACK_ORDER 3
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#ifndef __ARM_CURRENT_H__
|
||||
#define __ARM_CURRENT_H__
|
||||
|
||||
#include <xen/page-size.h>
|
||||
#include <xen/percpu.h>
|
||||
|
||||
#include <asm/processor.h>
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
#ifndef __ARM_PAGE_SHIFT_H__
|
||||
#define __ARM_PAGE_SHIFT_H__
|
||||
|
||||
#define PAGE_SHIFT 12
|
||||
|
||||
#ifdef CONFIG_ARM_64
|
||||
#define PADDR_BITS 48
|
||||
#else
|
||||
#define PADDR_BITS 40
|
||||
#endif
|
||||
|
||||
#endif /* __ARM_PAGE_SHIFT_H__ */
|
||||
@@ -2,21 +2,11 @@
|
||||
#define __ARM_PAGE_H__
|
||||
|
||||
#include <public/xen.h>
|
||||
#include <xen/page-size.h>
|
||||
#include <asm/processor.h>
|
||||
#include <asm/lpae.h>
|
||||
#include <asm/sysregs.h>
|
||||
|
||||
#ifdef CONFIG_ARM_64
|
||||
#define PADDR_BITS 48
|
||||
#else
|
||||
#define PADDR_BITS 40
|
||||
#endif
|
||||
#define PADDR_MASK ((1ULL << PADDR_BITS)-1)
|
||||
#define PAGE_OFFSET(ptr) ((vaddr_t)(ptr) & ~PAGE_MASK)
|
||||
|
||||
#define VADDR_BITS 32
|
||||
#define VADDR_MASK (~0UL)
|
||||
|
||||
/* Shareability values for the LPAE entries */
|
||||
#define LPAE_SH_NON_SHAREABLE 0x0
|
||||
#define LPAE_SH_UNPREDICTALE 0x1
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
#define __X86_CURRENT_H__
|
||||
|
||||
#include <xen/percpu.h>
|
||||
#include <xen/page-size.h>
|
||||
#include <public/xen.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
/*
|
||||
* Xen's cpu stacks are 8 pages (8-page aligned), arranged as:
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef __ARCH_DESC_H
|
||||
#define __ARCH_DESC_H
|
||||
|
||||
#include <asm/page.h>
|
||||
|
||||
/*
|
||||
* Xen reserves a memory page of GDT entries.
|
||||
* No guest GDT entries exist beyond the Xen reserved area.
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#ifndef _ASM_FIXMAP_H
|
||||
#define _ASM_FIXMAP_H
|
||||
|
||||
#include <asm/page.h>
|
||||
#include <xen/page-size.h>
|
||||
|
||||
#define FIXADDR_TOP (VMAP_VIRT_END - PAGE_SIZE)
|
||||
#define FIXADDR_X_TOP (XEN_VIRT_END - PAGE_SIZE)
|
||||
|
||||
@@ -20,12 +20,12 @@
|
||||
#define __X86_HYPERV_HCALL_H__
|
||||
|
||||
#include <xen/lib.h>
|
||||
#include <xen/page-size.h>
|
||||
#include <xen/types.h>
|
||||
|
||||
#include <asm/asm_defns.h>
|
||||
#include <asm/fixmap.h>
|
||||
#include <asm/guest/hyperv-tlfs.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
static inline uint64_t hv_do_hypercall(uint64_t control, paddr_t input_addr,
|
||||
paddr_t output_addr)
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
#define _ASM_X86_HYPERV_TLFS_H
|
||||
|
||||
#include <xen/bitops.h>
|
||||
#include <xen/page-size.h>
|
||||
#include <xen/types.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
/*
|
||||
* While not explicitly listed in the TLFS, Hyper-V always runs with a page size
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
|
||||
#include <xen/vmap.h>
|
||||
#include <xen/types.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
#define readb(x) (*(volatile uint8_t *)(x))
|
||||
#define readw(x) (*(volatile uint16_t *)(x))
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include <xen/spinlock.h>
|
||||
#include <xen/rwlock.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/x86_emulate.h>
|
||||
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
#ifndef __X86_PAGE_SHIFT_H__
|
||||
#define __X86_PAGE_SHIFT_H__
|
||||
|
||||
#define L1_PAGETABLE_SHIFT 12
|
||||
#define L2_PAGETABLE_SHIFT 21
|
||||
#define L3_PAGETABLE_SHIFT 30
|
||||
#define L4_PAGETABLE_SHIFT 39
|
||||
#define PAGE_SHIFT L1_PAGETABLE_SHIFT
|
||||
#define SUPERPAGE_SHIFT L2_PAGETABLE_SHIFT
|
||||
#define ROOT_PAGETABLE_SHIFT L4_PAGETABLE_SHIFT
|
||||
|
||||
#define PAGETABLE_ORDER 9
|
||||
#define L1_PAGETABLE_ENTRIES (1 << PAGETABLE_ORDER)
|
||||
#define L2_PAGETABLE_ENTRIES (1 << PAGETABLE_ORDER)
|
||||
#define L3_PAGETABLE_ENTRIES (1 << PAGETABLE_ORDER)
|
||||
#define L4_PAGETABLE_ENTRIES (1 << PAGETABLE_ORDER)
|
||||
#define ROOT_PAGETABLE_ENTRIES L4_PAGETABLE_ENTRIES
|
||||
|
||||
#define SUPERPAGE_ORDER PAGETABLE_ORDER
|
||||
#define SUPERPAGE_PAGES (1 << SUPERPAGE_ORDER)
|
||||
|
||||
/* These are architectural limits. */
|
||||
#define PADDR_BITS 52
|
||||
#define VADDR_BITS 48
|
||||
|
||||
#endif /* __X86_PAGE_SHIFT_H__ */
|
||||
@@ -2,15 +2,7 @@
|
||||
#define __X86_PAGE_H__
|
||||
|
||||
#include <xen/const.h>
|
||||
|
||||
/*
|
||||
* It is important that the masks are signed quantities. This ensures that
|
||||
* the compiler sign-extends a 32-bit mask to 64 bits if that is required.
|
||||
*/
|
||||
#define PAGE_SIZE (_AC(1,L) << PAGE_SHIFT)
|
||||
#define PAGE_MASK (~(PAGE_SIZE-1))
|
||||
#define PAGE_FLAG_MASK (~0)
|
||||
#define PAGE_OFFSET(ptr) ((unsigned long)(ptr) & ~PAGE_MASK)
|
||||
#include <xen/page-size.h>
|
||||
|
||||
#define PAGE_ORDER_4K 0
|
||||
#define PAGE_ORDER_2M 9
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
#include <xen/errno.h>
|
||||
#include <xen/prefetch.h>
|
||||
#include <asm/asm_defns.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
#include <asm/x86_64/uaccess.h>
|
||||
|
||||
|
||||
@@ -2,31 +2,8 @@
|
||||
#ifndef __X86_64_PAGE_H__
|
||||
#define __X86_64_PAGE_H__
|
||||
|
||||
#define L1_PAGETABLE_SHIFT 12
|
||||
#define L2_PAGETABLE_SHIFT 21
|
||||
#define L3_PAGETABLE_SHIFT 30
|
||||
#define L4_PAGETABLE_SHIFT 39
|
||||
#define PAGE_SHIFT L1_PAGETABLE_SHIFT
|
||||
#define SUPERPAGE_SHIFT L2_PAGETABLE_SHIFT
|
||||
#define ROOT_PAGETABLE_SHIFT L4_PAGETABLE_SHIFT
|
||||
|
||||
#define PAGETABLE_ORDER 9
|
||||
#define L1_PAGETABLE_ENTRIES (1<<PAGETABLE_ORDER)
|
||||
#define L2_PAGETABLE_ENTRIES (1<<PAGETABLE_ORDER)
|
||||
#define L3_PAGETABLE_ENTRIES (1<<PAGETABLE_ORDER)
|
||||
#define L4_PAGETABLE_ENTRIES (1<<PAGETABLE_ORDER)
|
||||
#define ROOT_PAGETABLE_ENTRIES L4_PAGETABLE_ENTRIES
|
||||
#define SUPERPAGE_ORDER PAGETABLE_ORDER
|
||||
#define SUPERPAGE_PAGES (1<<SUPERPAGE_ORDER)
|
||||
|
||||
#define __XEN_VIRT_START XEN_VIRT_START
|
||||
|
||||
/* These are architectural limits. Current CPUs support only 40-bit phys. */
|
||||
#define PADDR_BITS 52
|
||||
#define VADDR_BITS 48
|
||||
#define PADDR_MASK ((_AC(1,UL) << PADDR_BITS) - 1)
|
||||
#define VADDR_MASK ((_AC(1,UL) << VADDR_BITS) - 1)
|
||||
|
||||
#define VADDR_TOP_BIT (1UL << (VADDR_BITS - 1))
|
||||
#define CANONICAL_MASK (~0UL & ~VADDR_MASK)
|
||||
|
||||
|
||||
@@ -20,8 +20,8 @@
|
||||
#ifndef __XEN_GDBSTUB_H__
|
||||
#define __XEN_GDBSTUB_H__
|
||||
|
||||
#include <xen/page-size.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
#ifdef CONFIG_CRASH_DEBUG
|
||||
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
#include <xen/mm.h>
|
||||
#include <xen/rwlock.h>
|
||||
#include <public/grant_table.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/grant_table.h>
|
||||
|
||||
#ifdef CONFIG_GRANT_TABLE
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
#ifndef __XEN_PAGE_SIZE_H__
|
||||
#define __XEN_PAGE_SIZE_H__
|
||||
|
||||
#include <xen/const.h>
|
||||
#include <asm/page-bits.h>
|
||||
|
||||
/*
|
||||
* It is important that the masks are signed quantities. This ensures that
|
||||
* the compiler sign-extends a 32-bit mask to 64 bits if that is required.
|
||||
*/
|
||||
#define PAGE_SIZE (_AC(1,L) << PAGE_SHIFT)
|
||||
#define PAGE_MASK (~(PAGE_SIZE-1))
|
||||
#define PAGE_OFFSET(ptr) ((unsigned long)(ptr) & ~PAGE_MASK)
|
||||
|
||||
#define PADDR_MASK ((_AC(1,ULL) << PADDR_BITS) - 1)
|
||||
#define VADDR_MASK (~_AC(0,UL) >> (BITS_PER_LONG - VADDR_BITS))
|
||||
|
||||
#endif /* __XEN_PAGE_SIZE__ */
|
||||
@@ -1,7 +1,7 @@
|
||||
#ifndef __XEN_PFN_H__
|
||||
#define __XEN_PFN_H__
|
||||
|
||||
#include <asm/page.h>
|
||||
#include <xen/page-size.h>
|
||||
|
||||
#define PFN_DOWN(x) ((x) >> PAGE_SHIFT)
|
||||
#define PFN_UP(x) (((x) + PAGE_SIZE-1) >> PAGE_SHIFT)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define __XEN_VMAP_H__
|
||||
|
||||
#include <xen/mm.h>
|
||||
#include <asm/page.h>
|
||||
#include <xen/page-size.h>
|
||||
|
||||
enum vmap_region {
|
||||
VMAP_DEFAULT,
|
||||
|
||||