linux/arch/x86/kvm/ioapic.c

/*
 *  Copyright (C) 2001  MandrakeSoft S.A.
 *  Copyright 2010 Red Hat, Inc. and/or its affiliates.
 *
 *    MandrakeSoft S.A.
 *    43, rue d'Aboukir
 *    75002 Paris - France
 *    http://www.linux-mandrake.com/
 *    http://www.mandrakesoft.com/
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Lesser General Public
 *  License as published by the Free Software Foundation; either
 *  version 2 of the License, or (at your option) any later version.
 *
 *  This library is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public
 *  License along with this library; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 *
 *  Yunhong Jiang <[email protected]>
 *  Yaozu (Eddie) Dong <[email protected]>
 *  Based on Xen 3.1 code.
 */
#define pr_fmt(fmt)

#include <linux/kvm_host.h>
#include <linux/kvm.h>
#include <linux/mm.h>
#include <linux/highmem.h>
#include <linux/smp.h>
#include <linux/hrtimer.h>
#include <linux/io.h>
#include <linux/slab.h>
#include <linux/export.h>
#include <linux/nospec.h>
#include <asm/processor.h>
#include <asm/page.h>
#include <asm/current.h>
#include <trace/events/kvm.h>

#include "ioapic.h"
#include "lapic.h"
#include "irq.h"

static int ioapic_service(struct kvm_ioapic *vioapic, int irq,
		bool line_status);

static void kvm_ioapic_update_eoi_one(struct kvm_vcpu *vcpu,
				      struct kvm_ioapic *ioapic,
				      int trigger_mode,
				      int pin);

static unsigned long ioapic_read_indirect(struct kvm_ioapic *ioapic)
{}

static void rtc_irq_eoi_tracking_reset(struct kvm_ioapic *ioapic)
{}

static void kvm_rtc_eoi_tracking_restore_all(struct kvm_ioapic *ioapic);

static void rtc_status_pending_eoi_check_valid(struct kvm_ioapic *ioapic)
{}

static void __rtc_irq_eoi_tracking_restore_one(struct kvm_vcpu *vcpu)
{}

void kvm_rtc_eoi_tracking_restore_one(struct kvm_vcpu *vcpu)
{}

static void kvm_rtc_eoi_tracking_restore_all(struct kvm_ioapic *ioapic)
{}

static void rtc_irq_eoi(struct kvm_ioapic *ioapic, struct kvm_vcpu *vcpu,
			int vector)
{}

static bool rtc_irq_check_coalesced(struct kvm_ioapic *ioapic)
{}

static void ioapic_lazy_update_eoi(struct kvm_ioapic *ioapic, int irq)
{}

static int ioapic_set_irq(struct kvm_ioapic *ioapic, unsigned int irq,
		int irq_level, bool line_status)
{}

static void kvm_ioapic_inject_all(struct kvm_ioapic *ioapic, unsigned long irr)
{}


void kvm_ioapic_scan_entry(struct kvm_vcpu *vcpu, ulong *ioapic_handled_vectors)
{}

void kvm_arch_post_irq_ack_notifier_list_update(struct kvm *kvm)
{}

static void ioapic_write_indirect(struct kvm_ioapic *ioapic, u32 val)
{}

static int ioapic_service(struct kvm_ioapic *ioapic, int irq, bool line_status)
{}

int kvm_ioapic_set_irq(struct kvm_ioapic *ioapic, int irq, int irq_source_id,
		       int level, bool line_status)
{}

void kvm_ioapic_clear_all(struct kvm_ioapic *ioapic, int irq_source_id)
{}

static void kvm_ioapic_eoi_inject_work(struct work_struct *work)
{}

#define IOAPIC_SUCCESSIVE_IRQ_MAX_COUNT
static void kvm_ioapic_update_eoi_one(struct kvm_vcpu *vcpu,
				      struct kvm_ioapic *ioapic,
				      int trigger_mode,
				      int pin)
{}

void kvm_ioapic_update_eoi(struct kvm_vcpu *vcpu, int vector, int trigger_mode)
{}

static inline struct kvm_ioapic *to_ioapic(struct kvm_io_device *dev)
{}

static inline int ioapic_in_range(struct kvm_ioapic *ioapic, gpa_t addr)
{}

static int ioapic_mmio_read(struct kvm_vcpu *vcpu, struct kvm_io_device *this,
				gpa_t addr, int len, void *val)
{}

static int ioapic_mmio_write(struct kvm_vcpu *vcpu, struct kvm_io_device *this,
				 gpa_t addr, int len, const void *val)
{}

static void kvm_ioapic_reset(struct kvm_ioapic *ioapic)
{}

static const struct kvm_io_device_ops ioapic_mmio_ops =;

int kvm_ioapic_init(struct kvm *kvm)
{}

void kvm_ioapic_destroy(struct kvm *kvm)
{}

void kvm_get_ioapic(struct kvm *kvm, struct kvm_ioapic_state *state)
{}

void kvm_set_ioapic(struct kvm *kvm, struct kvm_ioapic_state *state)
{}