summaryrefslogtreecommitdiff
path: root/kvm_lapic.h
diff options
context:
space:
mode:
authorRobert Mustacchi <rm@joyent.com>2011-06-03 11:37:58 -0700
committerRobert Mustacchi <rm@joyent.com>2011-06-03 11:37:58 -0700
commit9f278f28f5b52770a3a5b8ecfe727e650e2b6797 (patch)
tree93a2528cdfc57a01524736697389be6f816d4e54 /kvm_lapic.h
parentc2961b13f6ec3e0e0b41ceac918305c08c31784a (diff)
downloadillumos-kvm-9f278f28f5b52770a3a5b8ecfe727e650e2b6797.tar.gz
HVM-281 kvm_lapic_t should be defined in kvm_lapic.h
HVM-282 kvm_lapic_set_vapic_addr definition should match Linux HVM-283 qemu build is broken
Diffstat (limited to 'kvm_lapic.h')
-rw-r--r--kvm_lapic.h17
1 files changed, 14 insertions, 3 deletions
diff --git a/kvm_lapic.h b/kvm_lapic.h
index 1e2ffec..ae54f51 100644
--- a/kvm_lapic.h
+++ b/kvm_lapic.h
@@ -1,9 +1,20 @@
#ifndef __KVM_X86_LAPIC_H
#define __KVM_X86_LAPIC_H
+#include "kvm_iodev.h"
#include "kvm_timer.h"
-struct kvm_vapic_addr;
+typedef struct kvm_lapic {
+ unsigned long base_address;
+ struct kvm_io_device dev;
+ struct kvm_timer lapic_timer;
+ uint32_t divide_count;
+ struct kvm_vcpu *vcpu;
+ int irr_pending;
+ void *regs;
+ gpa_t vapic_addr;
+ page_t *vapic_page;
+} kvm_lapic_t;
extern int kvm_create_lapic(struct kvm_vcpu *);
extern void kvm_lapic_reset(struct kvm_vcpu *);
@@ -29,7 +40,7 @@ extern int kvm_apic_compare_prio(struct kvm_vcpu *, struct kvm_vcpu *);
extern void kvm_lapic_set_tpr(struct kvm_vcpu *vcpu, unsigned long cr8);
extern void kvm_lapic_set_base(struct kvm_vcpu *vcpu, uint64_t value);
-extern int kvm_lapic_set_vapic_addr(struct kvm_vcpu *, struct kvm_vapic_addr *);
+extern int kvm_lapic_set_vapic_addr(struct kvm_vcpu *, gpa_t);
extern int kvm_x2apic_msr_write(struct kvm_vcpu *, uint32_t, uint64_t);
extern int kvm_x2apic_msr_read(struct kvm_vcpu *, uint32_t, uint64_t *);
@@ -48,8 +59,8 @@ extern void kvm_apic_post_state_restore(struct kvm_vcpu *);
/*
* XXX: needs to be in vmx
- */
extern int vm_need_virtualize_apic_accesses(struct kvm *kvm);
+ */
#endif