670 pit = kzalloc(
sizeof(
struct kvm_pit), GFP_KERNEL_ACCOUNT);
680 pid = get_pid(task_tgid(current));
681 pid_nr = pid_vnr(pid);
684 pit->
worker = kthread_create_worker(0,
"kvm-pit/%d", pid_nr);
693 hrtimer_init(&pit_state->
timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
704 mutex_lock(&kvm->slots_lock);
709 goto fail_register_pit;
711 if (
flags & KVM_PIT_SPEAKER_DUMMY) {
717 goto fail_register_speaker;
719 mutex_unlock(&kvm->slots_lock);
723 fail_register_speaker:
726 mutex_unlock(&kvm->slots_lock);
728 kthread_destroy_worker(pit->
worker);
static void kvm_pit_reset(struct kvm_pit *pit)
void kvm_pit_set_reinject(struct kvm_pit *pit, bool reinject)
static enum hrtimer_restart pit_timer_fn(struct hrtimer *data)
static const struct kvm_io_device_ops speaker_dev_ops
static void kvm_pit_ack_irq(struct kvm_irq_ack_notifier *kian)
static void pit_do_work(struct kthread_work *work)
static const struct kvm_io_device_ops pit_dev_ops
static void pit_mask_notifer(struct kvm_irq_mask_notifier *kimn, bool mask)
#define KVM_PIT_BASE_ADDRESS
#define KVM_SPEAKER_BASE_ADDRESS
#define KVM_PIT_MEM_LENGTH
static void kvm_iodevice_init(struct kvm_io_device *dev, const struct kvm_io_device_ops *ops)
int kvm_request_irq_source_id(struct kvm *kvm)
void kvm_free_irq_source_id(struct kvm *kvm, int irq_source_id)
int kvm_io_bus_register_dev(struct kvm *kvm, enum kvm_bus bus_idx, gpa_t addr, int len, struct kvm_io_device *dev)
int kvm_io_bus_unregister_dev(struct kvm *kvm, enum kvm_bus bus_idx, struct kvm_io_device *dev)
struct kvm_irq_ack_notifier irq_ack_notifier
struct kthread_work expired
struct kvm_irq_mask_notifier mask_notifier
struct kthread_worker * worker
struct kvm_kpit_state pit_state
struct kvm_io_device speaker_dev