// 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
#include "arch/x86/timer_freq.h"

#include <arch/x86/feature.h>

uint64_t x86_lookup_core_crystal_freq() { return x86_get_microarch_config()->get_apic_freq(); }

uint64_t x86_lookup_tsc_freq() { return x86_get_microarch_config()->get_tsc_freq(); }
