Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/vmm/io/vioapic.h
Show All 26 Lines | |||||
* SUCH DAMAGE. | * SUCH DAMAGE. | ||||
* | * | ||||
* $FreeBSD$ | * $FreeBSD$ | ||||
*/ | */ | ||||
#ifndef _VIOAPIC_H_ | #ifndef _VIOAPIC_H_ | ||||
#define _VIOAPIC_H_ | #define _VIOAPIC_H_ | ||||
struct vm_snapshot_meta; | |||||
#define VIOAPIC_BASE 0xFEC00000 | #define VIOAPIC_BASE 0xFEC00000 | ||||
#define VIOAPIC_SIZE 4096 | #define VIOAPIC_SIZE 4096 | ||||
struct vioapic *vioapic_init(struct vm *vm); | struct vioapic *vioapic_init(struct vm *vm); | ||||
void vioapic_cleanup(struct vioapic *vioapic); | void vioapic_cleanup(struct vioapic *vioapic); | ||||
int vioapic_assert_irq(struct vm *vm, int irq); | int vioapic_assert_irq(struct vm *vm, int irq); | ||||
int vioapic_deassert_irq(struct vm *vm, int irq); | int vioapic_deassert_irq(struct vm *vm, int irq); | ||||
int vioapic_pulse_irq(struct vm *vm, int irq); | int vioapic_pulse_irq(struct vm *vm, int irq); | ||||
int vioapic_mmio_write(void *vm, int vcpuid, uint64_t gpa, | int vioapic_mmio_write(void *vm, int vcpuid, uint64_t gpa, | ||||
uint64_t wval, int size, void *arg); | uint64_t wval, int size, void *arg); | ||||
int vioapic_mmio_read(void *vm, int vcpuid, uint64_t gpa, | int vioapic_mmio_read(void *vm, int vcpuid, uint64_t gpa, | ||||
uint64_t *rval, int size, void *arg); | uint64_t *rval, int size, void *arg); | ||||
int vioapic_pincount(struct vm *vm); | int vioapic_pincount(struct vm *vm); | ||||
void vioapic_process_eoi(struct vm *vm, int vcpuid, int vector); | void vioapic_process_eoi(struct vm *vm, int vcpuid, int vector); | ||||
#ifdef BHYVE_SNAPSHOT | |||||
int vioapic_snapshot(struct vioapic *vioapic, | |||||
struct vm_snapshot_meta *meta); | |||||
#endif | |||||
#endif | #endif |