blob: 5086c2801069b933a04e2729786921dcf75c26c8 [file] [log] [blame]
// Copyright 2017 The Fuchsia Authors
//
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file or at
// https://opensource.org/licenses/MIT
#pragma once
#include <err.h>
#include <stdint.h>
#include <fbl/ref_ptr.h>
#include <vm/vm_object.h>
#include <arch/x86.h>
#include <lib/zircon-internal/device/cpu-trace/intel-pm.h>
zx_status_t x86_perfmon_get_properties(zx_x86_pmu_properties_t* state);
zx_status_t x86_perfmon_init();
zx_status_t x86_perfmon_assign_buffer(uint32_t cpu, fbl::RefPtr<VmObject> vmo);
zx_status_t x86_perfmon_stage_config(zx_x86_pmu_config_t* config);
zx_status_t x86_perfmon_start();
zx_status_t x86_perfmon_stop();
zx_status_t x86_perfmon_fini();
void apic_pmi_interrupt_handler(x86_iframe_t *frame);