Symbol: vatpic
sys/amd64/include/vmm.h
147
struct vatpic *vatpic; /* (i) virtual atpic */ \
sys/amd64/include/vmm.h
284
struct vatpic *vm_atpic(struct vm *vm);
sys/amd64/vmm/io/vatpic.c
100
VM_CTR2((vatpic)->vm, fmt, a1, a2)
sys/amd64/vmm/io/vatpic.c
102
#define VATPIC_CTR3(vatpic, fmt, a1, a2, a3) \
sys/amd64/vmm/io/vatpic.c
103
VM_CTR3((vatpic)->vm, fmt, a1, a2, a3)
sys/amd64/vmm/io/vatpic.c
105
#define VATPIC_CTR4(vatpic, fmt, a1, a2, a3, a4) \
sys/amd64/vmm/io/vatpic.c
106
VM_CTR4((vatpic)->vm, fmt, a1, a2, a3, a4)
sys/amd64/vmm/io/vatpic.c
116
static void vatpic_set_pinstate(struct vatpic *vatpic, int pin, bool newstate);
sys/amd64/vmm/io/vatpic.c
119
master_atpic(struct vatpic *vatpic, struct atpic *atpic)
sys/amd64/vmm/io/vatpic.c
122
if (atpic == &vatpic->atpic[0])
sys/amd64/vmm/io/vatpic.c
198
vatpic_notify_intr(struct vatpic *vatpic)
sys/amd64/vmm/io/vatpic.c
203
KASSERT(VATPIC_LOCKED(vatpic), ("vatpic_notify_intr not locked"));
sys/amd64/vmm/io/vatpic.c
208
atpic = &vatpic->atpic[1];
sys/amd64/vmm/io/vatpic.c
211
VATPIC_CTR4(vatpic, "atpic slave notify pin = %d "
sys/amd64/vmm/io/vatpic.c
219
vatpic_set_pinstate(vatpic, 2, true);
sys/amd64/vmm/io/vatpic.c
220
vatpic_set_pinstate(vatpic, 2, false);
sys/amd64/vmm/io/vatpic.c
222
VATPIC_CTR3(vatpic, "atpic slave no eligible interrupts "
sys/amd64/vmm/io/vatpic.c
230
atpic = &vatpic->atpic[0];
sys/amd64/vmm/io/vatpic.c
233
VATPIC_CTR4(vatpic, "atpic master notify pin = %d "
sys/amd64/vmm/io/vatpic.c
263
lapic_set_local_intr(vatpic->vm, NULL, APIC_LVT_LINT0);
sys/amd64/vmm/io/vatpic.c
264
vioapic_pulse_irq(vatpic->vm, 0);
sys/amd64/vmm/io/vatpic.c
266
VATPIC_CTR3(vatpic, "atpic master no eligible interrupts "
sys/amd64/vmm/io/vatpic.c
273
vatpic_icw1(struct vatpic *vatpic, struct atpic *atpic, uint8_t val)
sys/amd64/vmm/io/vatpic.c
275
VATPIC_CTR1(vatpic, "atpic icw1 0x%x", val);
sys/amd64/vmm/io/vatpic.c
288
VATPIC_CTR0(vatpic, "vatpic cascade mode required");
sys/amd64/vmm/io/vatpic.c
293
VATPIC_CTR0(vatpic, "vatpic icw4 required");
sys/amd64/vmm/io/vatpic.c
303
vatpic_icw2(struct vatpic *vatpic, struct atpic *atpic, uint8_t val)
sys/amd64/vmm/io/vatpic.c
305
VATPIC_CTR1(vatpic, "atpic icw2 0x%x", val);
sys/amd64/vmm/io/vatpic.c
315
vatpic_icw3(struct vatpic *vatpic, struct atpic *atpic, uint8_t val)
sys/amd64/vmm/io/vatpic.c
317
VATPIC_CTR1(vatpic, "atpic icw3 0x%x", val);
sys/amd64/vmm/io/vatpic.c
325
vatpic_icw4(struct vatpic *vatpic, struct atpic *atpic, uint8_t val)
sys/amd64/vmm/io/vatpic.c
327
VATPIC_CTR1(vatpic, "atpic icw4 0x%x", val);
sys/amd64/vmm/io/vatpic.c
330
VATPIC_CTR0(vatpic, "vatpic microprocessor mode required");
sys/amd64/vmm/io/vatpic.c
338
if (master_atpic(vatpic, atpic)) {
sys/amd64/vmm/io/vatpic.c
341
VATPIC_CTR1(vatpic, "Ignoring special fully nested "
sys/amd64/vmm/io/vatpic.c
353
vatpic_ocw1(struct vatpic *vatpic, struct atpic *atpic, uint8_t val)
sys/amd64/vmm/io/vatpic.c
355
VATPIC_CTR1(vatpic, "atpic ocw1 0x%x", val);
sys/amd64/vmm/io/vatpic.c
363
vatpic_ocw2(struct vatpic *vatpic, struct atpic *atpic, uint8_t val)
sys/amd64/vmm/io/vatpic.c
365
VATPIC_CTR1(vatpic, "atpic ocw2 0x%x", val);
sys/amd64/vmm/io/vatpic.c
395
vatpic_ocw3(struct vatpic *vatpic, struct atpic *atpic, uint8_t val)
sys/amd64/vmm/io/vatpic.c
397
VATPIC_CTR1(vatpic, "atpic ocw3 0x%x", val);
sys/amd64/vmm/io/vatpic.c
401
VATPIC_CTR2(vatpic, "%s atpic special mask mode %s",
sys/amd64/vmm/io/vatpic.c
402
master_atpic(vatpic, atpic) ? "master" : "slave",
sys/amd64/vmm/io/vatpic.c
418
vatpic_set_pinstate(struct vatpic *vatpic, int pin, bool newstate)
sys/amd64/vmm/io/vatpic.c
426
KASSERT(VATPIC_LOCKED(vatpic),
sys/amd64/vmm/io/vatpic.c
429
atpic = &vatpic->atpic[pin >> 3];
sys/amd64/vmm/io/vatpic.c
439
VATPIC_CTR2(vatpic, "atpic pin%d: bad acnt %d", pin, newcnt);
sys/amd64/vmm/io/vatpic.c
442
level = ((vatpic->elc[pin >> 3] & (1 << (pin & 0x7))) != 0);
sys/amd64/vmm/io/vatpic.c
446
VATPIC_CTR1(vatpic, "atpic pin%d: asserted", pin);
sys/amd64/vmm/io/vatpic.c
450
VATPIC_CTR1(vatpic, "atpic pin%d: deasserted", pin);
sys/amd64/vmm/io/vatpic.c
454
VATPIC_CTR3(vatpic, "atpic pin%d: %s, ignored, acnt %d",
sys/amd64/vmm/io/vatpic.c
458
vatpic_notify_intr(vatpic);
sys/amd64/vmm/io/vatpic.c
464
struct vatpic *vatpic;
sys/amd64/vmm/io/vatpic.c
470
vatpic = vm_atpic(vm);
sys/amd64/vmm/io/vatpic.c
471
atpic = &vatpic->atpic[irq >> 3];
sys/amd64/vmm/io/vatpic.c
476
VATPIC_LOCK(vatpic);
sys/amd64/vmm/io/vatpic.c
479
vatpic_set_pinstate(vatpic, irq, true);
sys/amd64/vmm/io/vatpic.c
482
vatpic_set_pinstate(vatpic, irq, false);
sys/amd64/vmm/io/vatpic.c
485
vatpic_set_pinstate(vatpic, irq, true);
sys/amd64/vmm/io/vatpic.c
486
vatpic_set_pinstate(vatpic, irq, false);
sys/amd64/vmm/io/vatpic.c
491
VATPIC_UNLOCK(vatpic);
sys/amd64/vmm/io/vatpic.c
517
struct vatpic *vatpic;
sys/amd64/vmm/io/vatpic.c
537
vatpic = vm_atpic(vm);
sys/amd64/vmm/io/vatpic.c
539
VATPIC_LOCK(vatpic);
sys/amd64/vmm/io/vatpic.c
54
#define VATPIC_LOCK(vatpic) mtx_lock_spin(&((vatpic)->mtx))
sys/amd64/vmm/io/vatpic.c
542
vatpic->elc[irq >> 3] |= 1 << (irq & 0x7);
sys/amd64/vmm/io/vatpic.c
544
vatpic->elc[irq >> 3] &= ~(1 << (irq & 0x7));
sys/amd64/vmm/io/vatpic.c
546
VATPIC_UNLOCK(vatpic);
sys/amd64/vmm/io/vatpic.c
55
#define VATPIC_UNLOCK(vatpic) mtx_unlock_spin(&((vatpic)->mtx))
sys/amd64/vmm/io/vatpic.c
554
struct vatpic *vatpic;
sys/amd64/vmm/io/vatpic.c
558
vatpic = vm_atpic(vm);
sys/amd64/vmm/io/vatpic.c
56
#define VATPIC_LOCKED(vatpic) mtx_owned(&((vatpic)->mtx))
sys/amd64/vmm/io/vatpic.c
560
atpic = &vatpic->atpic[0];
sys/amd64/vmm/io/vatpic.c
562
VATPIC_LOCK(vatpic);
sys/amd64/vmm/io/vatpic.c
566
atpic = &vatpic->atpic[1];
sys/amd64/vmm/io/vatpic.c
580
VATPIC_UNLOCK(vatpic);
sys/amd64/vmm/io/vatpic.c
602
struct vatpic *vatpic;
sys/amd64/vmm/io/vatpic.c
605
vatpic = vm_atpic(vm);
sys/amd64/vmm/io/vatpic.c
607
VATPIC_LOCK(vatpic);
sys/amd64/vmm/io/vatpic.c
611
if ((vector & ~0x7) == vatpic->atpic[1].irq_base) {
sys/amd64/vmm/io/vatpic.c
612
vatpic_pin_accepted(&vatpic->atpic[1], pin);
sys/amd64/vmm/io/vatpic.c
617
vatpic_pin_accepted(&vatpic->atpic[0], 2);
sys/amd64/vmm/io/vatpic.c
619
vatpic_pin_accepted(&vatpic->atpic[0], pin);
sys/amd64/vmm/io/vatpic.c
622
vatpic_notify_intr(vatpic);
sys/amd64/vmm/io/vatpic.c
624
VATPIC_UNLOCK(vatpic);
sys/amd64/vmm/io/vatpic.c
628
vatpic_read(struct vatpic *vatpic, struct atpic *atpic, bool in, int port,
sys/amd64/vmm/io/vatpic.c
633
VATPIC_LOCK(vatpic);
sys/amd64/vmm/io/vatpic.c
659
VATPIC_UNLOCK(vatpic);
sys/amd64/vmm/io/vatpic.c
666
vatpic_write(struct vatpic *vatpic, struct atpic *atpic, bool in, int port,
sys/amd64/vmm/io/vatpic.c
675
VATPIC_LOCK(vatpic);
sys/amd64/vmm/io/vatpic.c
680
error = vatpic_icw2(vatpic, atpic, val);
sys/amd64/vmm/io/vatpic.c
683
error = vatpic_icw3(vatpic, atpic, val);
sys/amd64/vmm/io/vatpic.c
686
error = vatpic_icw4(vatpic, atpic, val);
sys/amd64/vmm/io/vatpic.c
689
error = vatpic_ocw1(vatpic, atpic, val);
sys/amd64/vmm/io/vatpic.c
694
error = vatpic_icw1(vatpic, atpic, val);
sys/amd64/vmm/io/vatpic.c
698
error = vatpic_ocw3(vatpic, atpic, val);
sys/amd64/vmm/io/vatpic.c
700
error = vatpic_ocw2(vatpic, atpic, val);
sys/amd64/vmm/io/vatpic.c
705
vatpic_notify_intr(vatpic);
sys/amd64/vmm/io/vatpic.c
707
VATPIC_UNLOCK(vatpic);
sys/amd64/vmm/io/vatpic.c
716
struct vatpic *vatpic;
sys/amd64/vmm/io/vatpic.c
719
vatpic = vm_atpic(vm);
sys/amd64/vmm/io/vatpic.c
720
atpic = &vatpic->atpic[0];
sys/amd64/vmm/io/vatpic.c
726
return (vatpic_read(vatpic, atpic, in, port, bytes, eax));
sys/amd64/vmm/io/vatpic.c
729
return (vatpic_write(vatpic, atpic, in, port, bytes, eax));
sys/amd64/vmm/io/vatpic.c
736
struct vatpic *vatpic;
sys/amd64/vmm/io/vatpic.c
739
vatpic = vm_atpic(vm);
sys/amd64/vmm/io/vatpic.c
740
atpic = &vatpic->atpic[1];
sys/amd64/vmm/io/vatpic.c
746
return (vatpic_read(vatpic, atpic, in, port, bytes, eax));
sys/amd64/vmm/io/vatpic.c
749
return (vatpic_write(vatpic, atpic, in, port, bytes, eax));
sys/amd64/vmm/io/vatpic.c
756
struct vatpic *vatpic;
sys/amd64/vmm/io/vatpic.c
759
vatpic = vm_atpic(vm);
sys/amd64/vmm/io/vatpic.c
765
VATPIC_LOCK(vatpic);
sys/amd64/vmm/io/vatpic.c
769
*eax = vatpic->elc[0];
sys/amd64/vmm/io/vatpic.c
771
*eax = vatpic->elc[1];
sys/amd64/vmm/io/vatpic.c
784
vatpic->elc[0] = (*eax & 0xf8);
sys/amd64/vmm/io/vatpic.c
786
vatpic->elc[1] = (*eax & 0xde);
sys/amd64/vmm/io/vatpic.c
789
VATPIC_UNLOCK(vatpic);
sys/amd64/vmm/io/vatpic.c
794
struct vatpic *
sys/amd64/vmm/io/vatpic.c
797
struct vatpic *vatpic;
sys/amd64/vmm/io/vatpic.c
799
vatpic = malloc(sizeof(struct vatpic), M_VATPIC, M_WAITOK | M_ZERO);
sys/amd64/vmm/io/vatpic.c
800
vatpic->vm = vm;
sys/amd64/vmm/io/vatpic.c
802
mtx_init(&vatpic->mtx, "vatpic lock", NULL, MTX_SPIN);
sys/amd64/vmm/io/vatpic.c
804
return (vatpic);
sys/amd64/vmm/io/vatpic.c
808
vatpic_cleanup(struct vatpic *vatpic)
sys/amd64/vmm/io/vatpic.c
810
mtx_destroy(&vatpic->mtx);
sys/amd64/vmm/io/vatpic.c
811
free(vatpic, M_VATPIC);
sys/amd64/vmm/io/vatpic.c
816
vatpic_snapshot(struct vatpic *vatpic, struct vm_snapshot_meta *meta)
sys/amd64/vmm/io/vatpic.c
822
for (i = 0; i < nitems(vatpic->atpic); i++) {
sys/amd64/vmm/io/vatpic.c
823
atpic = &vatpic->atpic[i];
sys/amd64/vmm/io/vatpic.c
845
SNAPSHOT_BUF_OR_LEAVE(vatpic->elc, sizeof(vatpic->elc),
sys/amd64/vmm/io/vatpic.c
93
#define VATPIC_CTR0(vatpic, fmt) \
sys/amd64/vmm/io/vatpic.c
94
VM_CTR0((vatpic)->vm, fmt)
sys/amd64/vmm/io/vatpic.c
96
#define VATPIC_CTR1(vatpic, fmt, a1) \
sys/amd64/vmm/io/vatpic.c
97
VM_CTR1((vatpic)->vm, fmt, a1)
sys/amd64/vmm/io/vatpic.c
99
#define VATPIC_CTR2(vatpic, fmt, a1, a2) \
sys/amd64/vmm/io/vatpic.h
39
struct vatpic *vatpic_init(struct vm *vm);
sys/amd64/vmm/io/vatpic.h
40
void vatpic_cleanup(struct vatpic *vatpic);
sys/amd64/vmm/io/vatpic.h
58
int vatpic_snapshot(struct vatpic *vatpic, struct vm_snapshot_meta *meta);
sys/amd64/vmm/vmm.c
1781
struct vatpic *
sys/amd64/vmm/vmm.c
1784
return (vm->vatpic);
sys/amd64/vmm/vmm.c
318
vm->vatpic = vatpic_init(vm);
sys/amd64/vmm/vmm.c
418
vatpic_cleanup(vm->vatpic);