vpmtmr
ASSERT3P(vpmtmr->io_cookie, ==, NULL);
vpmtmr->io_port = 0;
vpmtmr_cleanup(struct vpmtmr *vpmtmr)
err = vpmtmr_detach_ioport(vpmtmr);
kmem_free(vpmtmr, sizeof (*vpmtmr));
struct vpmtmr *vpmtmr = vm_pmtmr(vm);
if (vpmtmr->io_cookie != NULL) {
if (vpmtmr->io_port == ioport) {
err = vpmtmr_detach_ioport(vpmtmr);
err = vm_ioport_attach(vm, ioport, vpmtmr_handler, vpmtmr,
&vpmtmr->io_cookie);
vpmtmr->io_port = ioport;
struct vpmtmr *vpmtmr = arg;
const hrtime_t delta = gethrtime() - vpmtmr->base_time;
struct vpmtmr *vpmtmr = datap;
out->vpt_time_base = vm_normalize_hrtime(vpmtmr->vm, vpmtmr->base_time);
out->vpt_ioport = vpmtmr->io_port;
struct vpmtmr *vpmtmr = datap;
vpmtmr->base_time =
vm_denormalize_hrtime(vpmtmr->vm, src->vpt_time_base);
struct vpmtmr *
struct vpmtmr *vpmtmr;
vpmtmr = kmem_zalloc(sizeof (struct vpmtmr), KM_SLEEP);
vpmtmr->vm = vm;
vpmtmr->base_time = gethrtime();
return (vpmtmr);
vpmtmr_detach_ioport(struct vpmtmr *vpmtmr)
if (vpmtmr->io_cookie != NULL) {
err = vm_ioport_detach(vpmtmr->vm, &vpmtmr->io_cookie,
ASSERT3P(old_arg, ==, vpmtmr);
struct vpmtmr;
struct vpmtmr *vpmtmr_init(struct vm *vm);
void vpmtmr_cleanup(struct vpmtmr *pmtmr);
struct vpmtmr *vm_pmtmr(struct vm *vm);
struct vpmtmr *vpmtmr; /* (i) virtual ACPI PM timer */
struct vpmtmr *
return (vm->vpmtmr);
return (vm->vpmtmr);
vm->vpmtmr = vpmtmr_init(vm);
vpmtmr_cleanup(vm->vpmtmr);