i8254.h (faa3d77749ad30d2e1c48e2e4363b9c4889aca27) i8254.h (e9d90d472da97e1b1560bffb89578ba082c88a69)
1#ifndef __I8254_H
2#define __I8254_H
3
4#include <linux/kthread.h>
5
6#include "iodev.h"
7
8struct kvm_kpit_channel_state {

--- 7 unchanged lines hidden (view full) ---

16 u8 write_latch;
17 u8 rw_mode;
18 u8 mode;
19 u8 bcd; /* not supported */
20 u8 gate; /* timer start */
21 ktime_t count_load_time;
22};
23
1#ifndef __I8254_H
2#define __I8254_H
3
4#include <linux/kthread.h>
5
6#include "iodev.h"
7
8struct kvm_kpit_channel_state {

--- 7 unchanged lines hidden (view full) ---

16 u8 write_latch;
17 u8 rw_mode;
18 u8 mode;
19 u8 bcd; /* not supported */
20 u8 gate; /* timer start */
21 ktime_t count_load_time;
22};
23
24struct kvm_pit_timer {
25 struct hrtimer timer;
26 s64 period; /* unit: ns */
27 u32 timer_mode_mask;
28 u64 tscdeadline;
29 atomic_t pending; /* accumulated triggered timers */
30 bool reinject;
31 struct kvm_pit_timer_ops *t_ops;
32 struct kvm *kvm;
33 struct kvm_vcpu *vcpu;
34};
35
36struct kvm_pit_timer_ops {
37 bool (*is_periodic)(struct kvm_pit_timer *);
38};
39
24struct kvm_kpit_state {
25 struct kvm_kpit_channel_state channels[3];
26 u32 flags;
40struct kvm_kpit_state {
41 struct kvm_kpit_channel_state channels[3];
42 u32 flags;
27 struct kvm_timer pit_timer;
43 struct kvm_pit_timer pit_timer;
28 bool is_periodic;
29 u32 speaker_data_on;
30 struct mutex lock;
31 struct kvm_pit *pit;
32 spinlock_t inject_lock;
33 unsigned long irq_ack;
34 struct kvm_irq_ack_notifier irq_ack_notifier;
35};

--- 26 unchanged lines hidden ---
44 bool is_periodic;
45 u32 speaker_data_on;
46 struct mutex lock;
47 struct kvm_pit *pit;
48 spinlock_t inject_lock;
49 unsigned long irq_ack;
50 struct kvm_irq_ack_notifier irq_ack_notifier;
51};

--- 26 unchanged lines hidden ---