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:
Jan Beulich committed 2021-01-15 16:02:13 +01:00
1 parent 8868a0e3f6
commit aa4b9d1ee6
21 files changed
+71 -58

No files matched your search

+2
View File
@@ -14,6 +14,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <xen/page-size.h>
/*
* Clear page @dest
*
-5
View File
@@ -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
View File
@@ -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>
+12
View File
@@ -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__ */
+1 -11
View File
@@ -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
+1 -1
View File
@@ -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:
+2
View File
@@ -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.
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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
-1
View File
@@ -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))
+1
View File
@@ -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>
+26
View File
@@ -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__ */
+1 -9
View File
@@ -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
-1
View File
@@ -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>
-23
View File
@@ -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)
+1 -1
View File
@@ -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
-1
View File
@@ -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
+18
View File
@@ -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 -1
View File
@@ -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)
+1 -1
View File
@@ -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,
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.