-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
arm64/xen: introduce asm/xen header files on arm64
asm/xen/hypercall.h, asm/xen/hypervisor.h, asm/xen/interface.h and asm/xen/page.h are identical so to avoid code duplication we are just including the original arm header files here. asm/xen/events.h is slightly different, so introduce a different file here (use xchg to implement xchg_xen_ulong and pass regs->pstate to raw_irqs_disabled_flags). Also introduce asm/hypervisor.h and asm/sync_bitops.h. Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com>
- Loading branch information
Stefano Stabellini
committed
Jun 7, 2013
1 parent
f0a8d59
commit 9f54ad6
Showing
7 changed files
with
57 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
#ifndef _ASM_ARM64_HYPERVISOR_H | ||
#define _ASM_ARM64_HYPERVISOR_H | ||
|
||
#include <asm/xen/hypervisor.h> | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
#ifndef __ASM_SYNC_BITOPS_H__ | ||
#define __ASM_SYNC_BITOPS_H__ | ||
|
||
#include <asm/bitops.h> | ||
#include <asm/cmpxchg.h> | ||
|
||
/* sync_bitops functions are equivalent to the SMP implementation of the | ||
* original functions, independently from CONFIG_SMP being defined. | ||
* | ||
* We need them because _set_bit etc are not SMP safe if !CONFIG_SMP. But | ||
* under Xen you might be communicating with a completely external entity | ||
* who might be on another CPU (e.g. two uniprocessor guests communicating | ||
* via event channels and grant tables). So we need a variant of the bit | ||
* ops which are SMP safe even on a UP kernel. | ||
*/ | ||
|
||
#define sync_set_bit(nr, p) set_bit(nr, p) | ||
#define sync_clear_bit(nr, p) clear_bit(nr, p) | ||
#define sync_change_bit(nr, p) change_bit(nr, p) | ||
#define sync_test_and_set_bit(nr, p) test_and_set_bit(nr, p) | ||
#define sync_test_and_clear_bit(nr, p) test_and_clear_bit(nr, p) | ||
#define sync_test_and_change_bit(nr, p) test_and_change_bit(nr, p) | ||
#define sync_test_bit(nr, addr) test_bit(nr, addr) | ||
#define sync_cmpxchg cmpxchg | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
#ifndef _ASM_ARM64_XEN_EVENTS_H | ||
#define _ASM_ARM64_XEN_EVENTS_H | ||
|
||
#include <asm/ptrace.h> | ||
#include <asm/atomic.h> | ||
|
||
enum ipi_vector { | ||
XEN_PLACEHOLDER_VECTOR, | ||
|
||
/* Xen IPIs go here */ | ||
XEN_NR_IPIS, | ||
}; | ||
|
||
static inline int xen_irqs_disabled(struct pt_regs *regs) | ||
{ | ||
return raw_irqs_disabled_flags((unsigned long) regs->pstate); | ||
} | ||
|
||
#define xchg_xen_ulong(ptr, val) xchg((ptr), (val)) | ||
|
||
#endif /* _ASM_ARM64_XEN_EVENTS_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
#include <../../arm/include/asm/xen/hypercall.h> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
#include <../../arm/include/asm/xen/hypervisor.h> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
#include <../../arm/include/asm/xen/interface.h> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
#include <../../arm/include/asm/xen/page.h> |