mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-19 10:44:14 +08:00
arm64: KVM: Move GIC accessors to arch_gicv3.h
Since we are going to share vgic-v3 save/restore code with ARM keep arch specific accessors separately. Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com> Acked-by: Christoffer Dall <christoffer.dall@linaro.org> Acked-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
This commit is contained in:
parent
5a7a8426b2
commit
b5525ce898
@ -79,6 +79,19 @@
|
|||||||
#include <linux/stringify.h>
|
#include <linux/stringify.h>
|
||||||
#include <asm/barrier.h>
|
#include <asm/barrier.h>
|
||||||
|
|
||||||
|
#define read_gicreg(r) \
|
||||||
|
({ \
|
||||||
|
u64 reg; \
|
||||||
|
asm volatile("mrs_s %0, " __stringify(r) : "=r" (reg)); \
|
||||||
|
reg; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define write_gicreg(v,r) \
|
||||||
|
do { \
|
||||||
|
u64 __val = (v); \
|
||||||
|
asm volatile("msr_s " __stringify(r) ", %0" : : "r" (__val));\
|
||||||
|
} while (0)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Low-level accessors
|
* Low-level accessors
|
||||||
*
|
*
|
||||||
|
@ -24,19 +24,6 @@
|
|||||||
#define vtr_to_max_lr_idx(v) ((v) & 0xf)
|
#define vtr_to_max_lr_idx(v) ((v) & 0xf)
|
||||||
#define vtr_to_nr_pri_bits(v) (((u32)(v) >> 29) + 1)
|
#define vtr_to_nr_pri_bits(v) (((u32)(v) >> 29) + 1)
|
||||||
|
|
||||||
#define read_gicreg(r) \
|
|
||||||
({ \
|
|
||||||
u64 reg; \
|
|
||||||
asm volatile("mrs_s %0, " __stringify(r) : "=r" (reg)); \
|
|
||||||
reg; \
|
|
||||||
})
|
|
||||||
|
|
||||||
#define write_gicreg(v,r) \
|
|
||||||
do { \
|
|
||||||
u64 __val = (v); \
|
|
||||||
asm volatile("msr_s " __stringify(r) ", %0" : : "r" (__val));\
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
static u64 __hyp_text __gic_v3_get_lr(unsigned int lr)
|
static u64 __hyp_text __gic_v3_get_lr(unsigned int lr)
|
||||||
{
|
{
|
||||||
switch (lr & 0xf) {
|
switch (lr & 0xf) {
|
||||||
|
Loading…
Reference in New Issue
Block a user