hyperv: Move timer frequency definition to common place.
And cleanup event timer period settings. MFC after: 1 week Sponsored by: Microsoft OSTC Differential Revision: https://reviews.freebsd.org/D6597
This commit is contained in:
parent
049342a994
commit
3f07976a64
@ -41,10 +41,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <dev/hyperv/vmbus/hyperv_var.h>
|
||||
#include <dev/hyperv/vmbus/vmbus_var.h>
|
||||
|
||||
#define HV_TIMER_FREQUENCY (10 * 1000 * 1000LL) /* 100ns period */
|
||||
#define HV_MAX_DELTA_TICKS 0xffffffffLL
|
||||
#define HV_MIN_DELTA_TICKS 1LL
|
||||
|
||||
#define MSR_HV_STIMER0_CFG_SINT \
|
||||
((((uint64_t)VMBUS_SINT_TIMER) << MSR_HV_STIMER_CFG_SINT_SHIFT) & \
|
||||
MSR_HV_STIMER_CFG_SINT_MASK)
|
||||
@ -67,7 +63,8 @@ sbintime2tick(sbintime_t time)
|
||||
struct timespec val;
|
||||
|
||||
val = sbttots(time);
|
||||
return (val.tv_sec * HV_TIMER_FREQUENCY) + (val.tv_nsec / 100);
|
||||
return (val.tv_sec * HYPERV_TIMER_FREQ) +
|
||||
(val.tv_nsec / HYPERV_TIMER_NS_FACTOR);
|
||||
}
|
||||
|
||||
static int
|
||||
@ -151,11 +148,9 @@ hv_et_attach(device_t dev)
|
||||
vmbus_et.et_name = "Hyper-V";
|
||||
vmbus_et.et_flags = ET_FLAGS_ONESHOT | ET_FLAGS_PERCPU;
|
||||
vmbus_et.et_quality = 1000;
|
||||
vmbus_et.et_frequency = HV_TIMER_FREQUENCY;
|
||||
vmbus_et.et_min_period =
|
||||
HV_MIN_DELTA_TICKS * ((1LL << 32) / HV_TIMER_FREQUENCY);
|
||||
vmbus_et.et_max_period =
|
||||
HV_MAX_DELTA_TICKS * ((1LL << 32) / HV_TIMER_FREQUENCY);
|
||||
vmbus_et.et_frequency = HYPERV_TIMER_FREQ;
|
||||
vmbus_et.et_min_period = (0x00000001ULL << 32) / HYPERV_TIMER_FREQ;
|
||||
vmbus_et.et_max_period = (0xfffffffeULL << 32) / HYPERV_TIMER_FREQ;
|
||||
vmbus_et.et_start = hv_et_start;
|
||||
|
||||
/*
|
||||
|
@ -49,8 +49,6 @@ __FBSDID("$FreeBSD$");
|
||||
#include <dev/hyperv/vmbus/hyperv_var.h>
|
||||
#include <dev/hyperv/vmbus/vmbus_var.h>
|
||||
|
||||
#define HV_NANOSECONDS_PER_SEC 1000000000L
|
||||
|
||||
#define HYPERV_FREEBSD_BUILD 0ULL
|
||||
#define HYPERV_FREEBSD_VERSION ((uint64_t)__FreeBSD_version)
|
||||
#define HYPERV_FREEBSD_OSID 0ULL
|
||||
@ -87,7 +85,7 @@ static struct timecounter hyperv_timecounter = {
|
||||
.tc_get_timecount = hyperv_get_timecount,
|
||||
.tc_poll_pps = NULL,
|
||||
.tc_counter_mask = 0xffffffff,
|
||||
.tc_frequency = HV_NANOSECONDS_PER_SEC/100,
|
||||
.tc_frequency = HYPERV_TIMER_FREQ,
|
||||
.tc_name = "Hyper-V",
|
||||
.tc_quality = 2000,
|
||||
.tc_flags = 0,
|
||||
|
@ -29,6 +29,12 @@
|
||||
#ifndef _HYPERV_VAR_H_
|
||||
#define _HYPERV_VAR_H_
|
||||
|
||||
#ifndef NANOSEC
|
||||
#define NANOSEC 1000000000ULL
|
||||
#endif
|
||||
#define HYPERV_TIMER_NS_FACTOR 100ULL
|
||||
#define HYPERV_TIMER_FREQ (NANOSEC / HYPERV_TIMER_NS_FACTOR)
|
||||
|
||||
extern u_int hyperv_features;
|
||||
extern u_int hyperv_recommends;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user