Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
[deliverable/linux.git] / virt / kvm / arm / vgic / vgic-mmio.h
index 71aa39d4cfdfa6080e8e47e0c7cf3ad769960ad6..0b3ecf9d100eca59b27b84f2aa6d1461536443b5 100644 (file)
@@ -21,10 +21,19 @@ struct vgic_register_region {
        unsigned int len;
        unsigned int bits_per_irq;
        unsigned int access_flags;
-       unsigned long (*read)(struct kvm_vcpu *vcpu, gpa_t addr,
-                             unsigned int len);
-       void (*write)(struct kvm_vcpu *vcpu, gpa_t addr, unsigned int len,
-                     unsigned long val);
+       union {
+               unsigned long (*read)(struct kvm_vcpu *vcpu, gpa_t addr,
+                                     unsigned int len);
+               unsigned long (*its_read)(struct kvm *kvm, struct vgic_its *its,
+                                         gpa_t addr, unsigned int len);
+       };
+       union {
+               void (*write)(struct kvm_vcpu *vcpu, gpa_t addr,
+                             unsigned int len, unsigned long val);
+               void (*its_write)(struct kvm *kvm, struct vgic_its *its,
+                                 gpa_t addr, unsigned int len,
+                                 unsigned long val);
+       };
 };
 
 extern struct kvm_io_device_ops kvm_io_gic_ops;
@@ -87,6 +96,12 @@ unsigned long vgic_data_mmio_bus_to_host(const void *val, unsigned int len);
 void vgic_data_host_to_mmio_bus(void *buf, unsigned int len,
                                unsigned long data);
 
+unsigned long extract_bytes(unsigned long data, unsigned int offset,
+                           unsigned int num);
+
+u64 update_64bit_reg(u64 reg, unsigned int offset, unsigned int len,
+                    unsigned long val);
+
 unsigned long vgic_mmio_read_raz(struct kvm_vcpu *vcpu,
                                 gpa_t addr, unsigned int len);
 
This page took 0.026351 seconds and 5 git commands to generate.