Symbol: vatpit
sys/amd64/include/vmm.h
148
struct vatpit *vatpit; /* (i) virtual atpit */ \
sys/amd64/include/vmm.h
285
struct vatpit *vm_atpit(struct vm *vm);
sys/amd64/vmm/io/vatpit.c
105
static void pit_timer_start_cntr0(struct vatpit *vatpit);
sys/amd64/vmm/io/vatpit.c
108
vatpit_delta_ticks(struct vatpit *vatpit, struct channel *c)
sys/amd64/vmm/io/vatpit.c
117
result += delta.frac / vatpit->freq_bt.frac;
sys/amd64/vmm/io/vatpit.c
123
vatpit_get_out(struct vatpit *vatpit, int channel)
sys/amd64/vmm/io/vatpit.c
129
c = &vatpit->channel[channel];
sys/amd64/vmm/io/vatpit.c
133
delta_ticks = vatpit_delta_ticks(vatpit, c);
sys/amd64/vmm/io/vatpit.c
148
struct vatpit *vatpit;
sys/amd64/vmm/io/vatpit.c
152
vatpit = arg->vatpit;
sys/amd64/vmm/io/vatpit.c
153
c = &vatpit->channel[arg->channel_num];
sys/amd64/vmm/io/vatpit.c
156
VM_CTR1(vatpit->vm, "atpit t%d fired", arg->channel_num);
sys/amd64/vmm/io/vatpit.c
158
VATPIT_LOCK(vatpit);
sys/amd64/vmm/io/vatpit.c
169
pit_timer_start_cntr0(vatpit);
sys/amd64/vmm/io/vatpit.c
172
vatpic_pulse_irq(vatpit->vm, 0);
sys/amd64/vmm/io/vatpit.c
173
vioapic_pulse_irq(vatpit->vm, 2);
sys/amd64/vmm/io/vatpit.c
176
VATPIT_UNLOCK(vatpit);
sys/amd64/vmm/io/vatpit.c
181
pit_timer_start_cntr0(struct vatpit *vatpit)
sys/amd64/vmm/io/vatpit.c
187
c = &vatpit->channel[0];
sys/amd64/vmm/io/vatpit.c
190
delta.frac = vatpit->freq_bt.frac * c->initial;
sys/amd64/vmm/io/vatpit.c
212
pit_update_counter(struct vatpit *vatpit, struct channel *c, bool latch)
sys/amd64/vmm/io/vatpit.c
235
delta_ticks = vatpit_delta_ticks(vatpit, c);
sys/amd64/vmm/io/vatpit.c
248
pit_readback1(struct vatpit *vatpit, int channel, uint8_t cmd)
sys/amd64/vmm/io/vatpit.c
252
c = &vatpit->channel[channel];
sys/amd64/vmm/io/vatpit.c
259
(void) pit_update_counter(vatpit, c, true);
sys/amd64/vmm/io/vatpit.c
269
if (c->mode == TIMER_INTTC && vatpit_get_out(vatpit, channel))
sys/amd64/vmm/io/vatpit.c
279
pit_readback(struct vatpit *vatpit, uint8_t cmd)
sys/amd64/vmm/io/vatpit.c
288
error = pit_readback1(vatpit, 0, cmd);
sys/amd64/vmm/io/vatpit.c
290
error = pit_readback1(vatpit, 1, cmd);
sys/amd64/vmm/io/vatpit.c
292
error = pit_readback1(vatpit, 2, cmd);
sys/amd64/vmm/io/vatpit.c
298
vatpit_update_mode(struct vatpit *vatpit, uint8_t val)
sys/amd64/vmm/io/vatpit.c
308
return (pit_readback(vatpit, val));
sys/amd64/vmm/io/vatpit.c
325
c = &vatpit->channel[sel >> 6];
sys/amd64/vmm/io/vatpit.c
327
pit_update_counter(vatpit, c, true);
sys/amd64/vmm/io/vatpit.c
340
struct vatpit *vatpit;
sys/amd64/vmm/io/vatpit.c
345
vatpit = vm_atpit(vm);
sys/amd64/vmm/io/vatpit.c
354
VM_CTR0(vatpit->vm, "vatpit attempt to read mode");
sys/amd64/vmm/io/vatpit.c
358
VATPIT_LOCK(vatpit);
sys/amd64/vmm/io/vatpit.c
359
error = vatpit_update_mode(vatpit, val);
sys/amd64/vmm/io/vatpit.c
360
VATPIT_UNLOCK(vatpit);
sys/amd64/vmm/io/vatpit.c
368
c = &vatpit->channel[port - TIMER_CNTR0];
sys/amd64/vmm/io/vatpit.c
370
VATPIT_LOCK(vatpit);
sys/amd64/vmm/io/vatpit.c
389
tmp = pit_update_counter(vatpit, c, false);
sys/amd64/vmm/io/vatpit.c
408
pit_timer_start_cntr0(vatpit);
sys/amd64/vmm/io/vatpit.c
414
VATPIT_UNLOCK(vatpit);
sys/amd64/vmm/io/vatpit.c
423
struct vatpit *vatpit;
sys/amd64/vmm/io/vatpit.c
425
vatpit = vm_atpit(vm);
sys/amd64/vmm/io/vatpit.c
428
VATPIT_LOCK(vatpit);
sys/amd64/vmm/io/vatpit.c
429
if (vatpit_get_out(vatpit, 2))
sys/amd64/vmm/io/vatpit.c
434
VATPIT_UNLOCK(vatpit);
sys/amd64/vmm/io/vatpit.c
440
struct vatpit *
sys/amd64/vmm/io/vatpit.c
443
struct vatpit *vatpit;
sys/amd64/vmm/io/vatpit.c
447
vatpit = malloc(sizeof(struct vatpit), M_VATPIT, M_WAITOK | M_ZERO);
sys/amd64/vmm/io/vatpit.c
448
vatpit->vm = vm;
sys/amd64/vmm/io/vatpit.c
450
mtx_init(&vatpit->mtx, "vatpit lock", NULL, MTX_SPIN);
sys/amd64/vmm/io/vatpit.c
452
FREQ2BT(PIT_8254_FREQ, &vatpit->freq_bt);
sys/amd64/vmm/io/vatpit.c
455
callout_init(&vatpit->channel[i].callout, 1);
sys/amd64/vmm/io/vatpit.c
456
arg = &vatpit->channel[i].callout_arg;
sys/amd64/vmm/io/vatpit.c
457
arg->vatpit = vatpit;
sys/amd64/vmm/io/vatpit.c
461
return (vatpit);
sys/amd64/vmm/io/vatpit.c
465
vatpit_cleanup(struct vatpit *vatpit)
sys/amd64/vmm/io/vatpit.c
470
callout_drain(&vatpit->channel[i].callout);
sys/amd64/vmm/io/vatpit.c
472
mtx_destroy(&vatpit->mtx);
sys/amd64/vmm/io/vatpit.c
473
free(vatpit, M_VATPIT);
sys/amd64/vmm/io/vatpit.c
478
vatpit_snapshot(struct vatpit *vatpit, struct vm_snapshot_meta *meta)
sys/amd64/vmm/io/vatpit.c
484
SNAPSHOT_VAR_OR_LEAVE(vatpit->freq_bt.sec, meta, ret, done);
sys/amd64/vmm/io/vatpit.c
485
SNAPSHOT_VAR_OR_LEAVE(vatpit->freq_bt.frac, meta, ret, done);
sys/amd64/vmm/io/vatpit.c
490
for (i = 0; i < nitems(vatpit->channel); i++) {
sys/amd64/vmm/io/vatpit.c
491
channel = &vatpit->channel[i];
sys/amd64/vmm/io/vatpit.c
52
#define VATPIT_LOCK(vatpit) mtx_lock_spin(&((vatpit)->mtx))
sys/amd64/vmm/io/vatpit.c
53
#define VATPIT_UNLOCK(vatpit) mtx_unlock_spin(&((vatpit)->mtx))
sys/amd64/vmm/io/vatpit.c
54
#define VATPIT_LOCKED(vatpit) mtx_owned(&((vatpit)->mtx))
sys/amd64/vmm/io/vatpit.c
76
struct vatpit *vatpit;
sys/amd64/vmm/io/vatpit.h
39
struct vatpit *vatpit_init(struct vm *vm);
sys/amd64/vmm/io/vatpit.h
40
void vatpit_cleanup(struct vatpit *vatpit);
sys/amd64/vmm/io/vatpit.h
46
int vatpit_snapshot(struct vatpit *vatpit, struct vm_snapshot_meta *meta);
sys/amd64/vmm/vmm.c
1787
struct vatpit *
sys/amd64/vmm/vmm.c
1790
return (vm->vatpit);
sys/amd64/vmm/vmm.c
319
vm->vatpit = vatpit_init(vm);
sys/amd64/vmm/vmm.c
416
vatpit_cleanup(vm->vatpit);