Symbol: vioapic
usr/src/uts/intel/io/vmm/io/vioapic.c
101
vioapic_send_intr(struct vioapic *vioapic, int pin)
usr/src/uts/intel/io/vmm/io/vioapic.c
108
ASSERT(VIOAPIC_LOCKED(vioapic));
usr/src/uts/intel/io/vmm/io/vioapic.c
110
low = vioapic->rtbl[pin].reg;
usr/src/uts/intel/io/vmm/io/vioapic.c
111
high = vioapic->rtbl[pin].reg >> 32;
usr/src/uts/intel/io/vmm/io/vioapic.c
126
vioapic->rtbl[pin].reg |= IOART_REM_IRR;
usr/src/uts/intel/io/vmm/io/vioapic.c
131
vlapic_deliver_intr(vioapic->vm, level, dest, phys, delmode, vector);
usr/src/uts/intel/io/vmm/io/vioapic.c
132
vioapic->stats.is_interrupts++;
usr/src/uts/intel/io/vmm/io/vioapic.c
136
vioapic_set_pinstate(struct vioapic *vioapic, int pin, bool newstate)
usr/src/uts/intel/io/vmm/io/vioapic.c
143
ASSERT(VIOAPIC_LOCKED(vioapic));
usr/src/uts/intel/io/vmm/io/vioapic.c
145
oldcnt = newcnt = vioapic->rtbl[pin].acnt;
usr/src/uts/intel/io/vmm/io/vioapic.c
152
struct vioapic *, vioapic, int, pin);
usr/src/uts/intel/io/vmm/io/vioapic.c
153
vioapic->stats.is_saturate_high++;
usr/src/uts/intel/io/vmm/io/vioapic.c
161
struct vioapic *, vioapic, int, pin);
usr/src/uts/intel/io/vmm/io/vioapic.c
162
vioapic->stats.is_saturate_low++;
usr/src/uts/intel/io/vmm/io/vioapic.c
165
vioapic->rtbl[pin].acnt = newcnt;
usr/src/uts/intel/io/vmm/io/vioapic.c
169
DTRACE_PROBE2(vioapic__assert, struct vioapic *, vioapic,
usr/src/uts/intel/io/vmm/io/vioapic.c
172
DTRACE_PROBE2(vioapic__deassert, struct vioapic *, vioapic,
usr/src/uts/intel/io/vmm/io/vioapic.c
177
vioapic_send_intr(vioapic, pin);
usr/src/uts/intel/io/vmm/io/vioapic.c
191
struct vioapic *vioapic;
usr/src/uts/intel/io/vmm/io/vioapic.c
197
vioapic = vm_ioapic(vm);
usr/src/uts/intel/io/vmm/io/vioapic.c
199
VIOAPIC_LOCK(vioapic);
usr/src/uts/intel/io/vmm/io/vioapic.c
202
err = vioapic_set_pinstate(vioapic, irq, true);
usr/src/uts/intel/io/vmm/io/vioapic.c
205
err = vioapic_set_pinstate(vioapic, irq, false);
usr/src/uts/intel/io/vmm/io/vioapic.c
208
err = vioapic_set_pinstate(vioapic, irq, true);
usr/src/uts/intel/io/vmm/io/vioapic.c
210
err = vioapic_set_pinstate(vioapic, irq, false);
usr/src/uts/intel/io/vmm/io/vioapic.c
216
VIOAPIC_UNLOCK(vioapic);
usr/src/uts/intel/io/vmm/io/vioapic.c
243
vioapic_read(struct vioapic *vioapic, int vcpuid, uint32_t addr)
usr/src/uts/intel/io/vmm/io/vioapic.c
250
return (vioapic->id);
usr/src/uts/intel/io/vmm/io/vioapic.c
256
return (vioapic->id);
usr/src/uts/intel/io/vmm/io/vioapic.c
271
return (vioapic->rtbl[pin].reg >> rshift);
usr/src/uts/intel/io/vmm/io/vioapic.c
278
vioapic_write(struct vioapic *vioapic, int vcpuid, uint32_t addr, uint32_t data)
usr/src/uts/intel/io/vmm/io/vioapic.c
286
vioapic->id = data & APIC_ID_MASK;
usr/src/uts/intel/io/vmm/io/vioapic.c
307
vioapic->rtbl[pin].reg &= ~mask64 | RTBL_RO_BITS;
usr/src/uts/intel/io/vmm/io/vioapic.c
308
vioapic->rtbl[pin].reg |= data64 & ~RTBL_RO_BITS;
usr/src/uts/intel/io/vmm/io/vioapic.c
316
if ((vioapic->rtbl[pin].reg & IOART_TRGRMOD) == IOART_TRGREDG &&
usr/src/uts/intel/io/vmm/io/vioapic.c
317
(vioapic->rtbl[pin].reg & IOART_REM_IRR) != 0)
usr/src/uts/intel/io/vmm/io/vioapic.c
318
vioapic->rtbl[pin].reg &= ~IOART_REM_IRR;
usr/src/uts/intel/io/vmm/io/vioapic.c
325
if ((vioapic->rtbl[pin].reg & IOART_TRGRMOD) == IOART_TRGRLVL &&
usr/src/uts/intel/io/vmm/io/vioapic.c
326
(vioapic->rtbl[pin].acnt > 0)) {
usr/src/uts/intel/io/vmm/io/vioapic.c
327
vioapic_send_intr(vioapic, pin);
usr/src/uts/intel/io/vmm/io/vioapic.c
333
vioapic_mmio_rw(struct vioapic *vioapic, int vcpuid, uint64_t gpa,
usr/src/uts/intel/io/vmm/io/vioapic.c
350
VIOAPIC_LOCK(vioapic);
usr/src/uts/intel/io/vmm/io/vioapic.c
353
*data = vioapic->ioregsel;
usr/src/uts/intel/io/vmm/io/vioapic.c
355
vioapic->ioregsel = *data;
usr/src/uts/intel/io/vmm/io/vioapic.c
358
*data = vioapic_read(vioapic, vcpuid,
usr/src/uts/intel/io/vmm/io/vioapic.c
359
vioapic->ioregsel);
usr/src/uts/intel/io/vmm/io/vioapic.c
361
vioapic_write(vioapic, vcpuid, vioapic->ioregsel,
usr/src/uts/intel/io/vmm/io/vioapic.c
365
VIOAPIC_UNLOCK(vioapic);
usr/src/uts/intel/io/vmm/io/vioapic.c
375
struct vioapic *vioapic;
usr/src/uts/intel/io/vmm/io/vioapic.c
377
vioapic = vm_ioapic(vm);
usr/src/uts/intel/io/vmm/io/vioapic.c
378
error = vioapic_mmio_rw(vioapic, vcpuid, gpa, rval, size, true);
usr/src/uts/intel/io/vmm/io/vioapic.c
387
struct vioapic *vioapic;
usr/src/uts/intel/io/vmm/io/vioapic.c
389
vioapic = vm_ioapic(vm);
usr/src/uts/intel/io/vmm/io/vioapic.c
390
error = vioapic_mmio_rw(vioapic, vcpuid, gpa, &wval, size, false);
usr/src/uts/intel/io/vmm/io/vioapic.c
397
struct vioapic *vioapic;
usr/src/uts/intel/io/vmm/io/vioapic.c
403
vioapic = vm_ioapic(vm);
usr/src/uts/intel/io/vmm/io/vioapic.c
409
VIOAPIC_LOCK(vioapic);
usr/src/uts/intel/io/vmm/io/vioapic.c
411
if ((vioapic->rtbl[pin].reg & IOART_REM_IRR) == 0)
usr/src/uts/intel/io/vmm/io/vioapic.c
413
if ((vioapic->rtbl[pin].reg & IOART_INTVEC) != vector)
usr/src/uts/intel/io/vmm/io/vioapic.c
415
vioapic->rtbl[pin].reg &= ~IOART_REM_IRR;
usr/src/uts/intel/io/vmm/io/vioapic.c
416
if (vioapic->rtbl[pin].acnt > 0) {
usr/src/uts/intel/io/vmm/io/vioapic.c
418
vioapic_send_intr(vioapic, pin);
usr/src/uts/intel/io/vmm/io/vioapic.c
421
VIOAPIC_UNLOCK(vioapic);
usr/src/uts/intel/io/vmm/io/vioapic.c
424
struct vioapic *
usr/src/uts/intel/io/vmm/io/vioapic.c
428
struct vioapic *vioapic;
usr/src/uts/intel/io/vmm/io/vioapic.c
430
vioapic = kmem_zalloc(sizeof (struct vioapic), KM_SLEEP);
usr/src/uts/intel/io/vmm/io/vioapic.c
432
vioapic->vm = vm;
usr/src/uts/intel/io/vmm/io/vioapic.c
433
mutex_init(&vioapic->lock, NULL, MUTEX_ADAPTIVE, NULL);
usr/src/uts/intel/io/vmm/io/vioapic.c
437
vioapic->rtbl[i].reg = 0x0001000000010000UL;
usr/src/uts/intel/io/vmm/io/vioapic.c
439
return (vioapic);
usr/src/uts/intel/io/vmm/io/vioapic.c
443
vioapic_cleanup(struct vioapic *vioapic)
usr/src/uts/intel/io/vmm/io/vioapic.c
445
mutex_destroy(&vioapic->lock);
usr/src/uts/intel/io/vmm/io/vioapic.c
446
kmem_free(vioapic, sizeof (*vioapic));
usr/src/uts/intel/io/vmm/io/vioapic.c
463
struct vioapic *vioapic = datap;
usr/src/uts/intel/io/vmm/io/vioapic.c
466
VIOAPIC_LOCK(vioapic);
usr/src/uts/intel/io/vmm/io/vioapic.c
467
out->vi_id = vioapic->id;
usr/src/uts/intel/io/vmm/io/vioapic.c
468
out->vi_reg_sel = vioapic->ioregsel;
usr/src/uts/intel/io/vmm/io/vioapic.c
470
out->vi_pin_reg[i] = vioapic->rtbl[i].reg;
usr/src/uts/intel/io/vmm/io/vioapic.c
471
out->vi_pin_level[i] = vioapic->rtbl[i].acnt;
usr/src/uts/intel/io/vmm/io/vioapic.c
473
VIOAPIC_UNLOCK(vioapic);
usr/src/uts/intel/io/vmm/io/vioapic.c
485
struct vioapic *vioapic = datap;
usr/src/uts/intel/io/vmm/io/vioapic.c
488
VIOAPIC_LOCK(vioapic);
usr/src/uts/intel/io/vmm/io/vioapic.c
489
vioapic->id = src->vi_id;
usr/src/uts/intel/io/vmm/io/vioapic.c
490
vioapic->ioregsel = src->vi_reg_sel;
usr/src/uts/intel/io/vmm/io/vioapic.c
492
vioapic->rtbl[i].reg = src->vi_pin_reg[i] & ~RTBL_RO_BITS;
usr/src/uts/intel/io/vmm/io/vioapic.c
493
vioapic->rtbl[i].acnt = src->vi_pin_level[i];
usr/src/uts/intel/io/vmm/io/vioapic.c
495
VIOAPIC_UNLOCK(vioapic);
usr/src/uts/intel/io/vmm/io/vioapic.c
95
#define VIOAPIC_LOCK(vioapic) mutex_enter(&((vioapic)->lock))
usr/src/uts/intel/io/vmm/io/vioapic.c
96
#define VIOAPIC_UNLOCK(vioapic) mutex_exit(&((vioapic)->lock))
usr/src/uts/intel/io/vmm/io/vioapic.c
97
#define VIOAPIC_LOCKED(vioapic) MUTEX_HELD(&((vioapic)->lock))
usr/src/uts/intel/io/vmm/io/vioapic.h
51
struct vioapic *vioapic_init(struct vm *vm);
usr/src/uts/intel/io/vmm/io/vioapic.h
52
void vioapic_cleanup(struct vioapic *vioapic);
usr/src/uts/intel/io/vmm/sys/vmm_kernel.h
207
struct vioapic *vm_ioapic(struct vm *vm);
usr/src/uts/intel/io/vmm/sys/vmm_kernel.h
65
struct vioapic;
usr/src/uts/intel/io/vmm/vmm.c
217
struct vioapic *vioapic; /* (i) virtual ioapic */
usr/src/uts/intel/io/vmm/vmm.c
3254
struct vioapic *
usr/src/uts/intel/io/vmm/vmm.c
3258
return (vm->vioapic);
usr/src/uts/intel/io/vmm/vmm.c
4065
return (vm->vioapic);
usr/src/uts/intel/io/vmm/vmm.c
556
vm->vioapic = vioapic_init(vm);
usr/src/uts/intel/io/vmm/vmm.c
718
vioapic_cleanup(vm->vioapic);