vcpu_info
struct vcpu_info *vcpup;
xen_vcpu_info = __alloc_percpu(sizeof(struct vcpu_info),
1 << fls(sizeof(struct vcpu_info) - 1));
DEFINE_PER_CPU(struct vcpu_info *, xen_vcpu);
static struct vcpu_info __percpu *xen_vcpu_info;
OFFSET(XEN_vcpu_info_mask, vcpu_info, evtchn_upcall_mask);
OFFSET(XEN_vcpu_info_pending, vcpu_info, evtchn_upcall_pending);
OFFSET(XEN_vcpu_info_arch_cr2, vcpu_info, arch.cr2);
if (!kvm_gpc_check(gpc, sizeof(struct vcpu_info))) {
struct vcpu_info *vcpu_info = gpc->khva;
if (!test_and_set_bit(port_word_bit, &vcpu_info->evtchn_pending_sel)) {
WRITE_ONCE(vcpu_info->evtchn_upcall_pending, 1);
struct compat_vcpu_info *vcpu_info = gpc->khva;
(unsigned long *)&vcpu_info->evtchn_pending_sel)) {
WRITE_ONCE(vcpu_info->evtchn_upcall_pending, 1);
while (!kvm_gpc_check(gpc, sizeof(struct vcpu_info))) {
if (kvm_gpc_refresh(gpc, sizeof(struct vcpu_info)))
struct vcpu_info *vi = gpc->khva;
BUILD_BUG_ON(offsetof(struct vcpu_info, evtchn_upcall_pending) !=
sizeof_field(struct vcpu_info, evtchn_upcall_pending));
while (!kvm_gpc_check(gpc, sizeof(struct vcpu_info))) {
if (kvm_gpc_refresh(gpc, sizeof(struct vcpu_info))) {
rc = ((struct vcpu_info *)gpc->khva)->evtchn_upcall_pending;
BUILD_BUG_ON(sizeof(struct vcpu_info) !=
BUILD_BUG_ON(offsetof(struct vcpu_info, time) !=
data->u.gpa, sizeof(struct vcpu_info));
data->u.hva, sizeof(struct vcpu_info));
struct compat_vcpu_info vcpu_info[MAX_VIRT_CPUS];
&HYPERVISOR_shared_info->vcpu_info[xen_vcpu_nr(cpu)];
struct vcpu_info *vcpup;
DEFINE_PER_CPU(struct vcpu_info *, xen_vcpu);
DEFINE_PER_CPU_ALIGNED(struct vcpu_info, xen_vcpu_info);
&HYPERVISOR_shared_info->vcpu_info[0].time;
DECLARE_PER_CPU_ALIGNED(struct vcpu_info, xen_vcpu_info);
static int its_irq_set_vcpu_affinity(struct irq_data *d, void *vcpu_info)
struct its_cmd_info *info = vcpu_info;
static int its_vpe_set_vcpu_affinity(struct irq_data *d, void *vcpu_info)
struct its_cmd_info *info = vcpu_info;
static int its_vpe_4_1_set_vcpu_affinity(struct irq_data *d, void *vcpu_info)
struct its_cmd_info *info = vcpu_info;
static int its_sgi_set_vcpu_affinity(struct irq_data *d, void *vcpu_info)
struct its_cmd_info *info = vcpu_info;
static int msm_gpio_irq_set_vcpu_affinity(struct irq_data *d, void *vcpu_info)
return irq_chip_set_vcpu_affinity_parent(d, vcpu_info);
struct vcpu_info *vcpu_info = __this_cpu_read(xen_vcpu);
BM(&vcpu_info->evtchn_pending_sel)))
vcpu_info->evtchn_upcall_pending = 1;
struct vcpu_info *vcpu_info = __this_cpu_read(xen_vcpu);
pending_words = xchg_xen_ulong(&vcpu_info->evtchn_pending_sel, 0);
struct vcpu_info *v;
struct vcpu_info *vcpu_info = __this_cpu_read(xen_vcpu);
int ret = vcpu_info->evtchn_upcall_pending ? IRQ_HANDLED : IRQ_NONE;
vcpu_info->evtchn_upcall_pending = 0;
} while (vcpu_info->evtchn_upcall_pending);
int (*irq_set_vcpu_affinity)(struct irq_data *data, void *vcpu_info);
extern int irq_set_vcpu_affinity(unsigned int irq, void *vcpu_info);
void *vcpu_info);
struct vcpu_info vcpu_info[MAX_VIRT_CPUS];
DECLARE_PER_CPU(struct vcpu_info *, xen_vcpu);
int irq_chip_set_vcpu_affinity_parent(struct irq_data *data, void *vcpu_info)
return data->chip->irq_set_vcpu_affinity(data, vcpu_info);
int irq_set_vcpu_affinity(unsigned int irq, void *vcpu_info)
return chip->irq_set_vcpu_affinity(data, vcpu_info);
struct vcpu_info *info = data;
struct vcpu_info *info;
struct vcpu_info vcpu_info[32];
struct vcpu_info *vi = (void *)VCPU_INFO_VADDR;
static struct vcpu_info *vinfo;