Conditionalize hyperv support in gettimeofday(2) based on MK_HYPERV

The effect at runtime is negligible as the hyperv timer isn't available
except when hyperv is loaded.

This is a prerequisite for conditionalizing the header build/install out
of the build

MFC after:	3 weeks
Reviewed by:	sephe
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D9242
This commit is contained in:
Enji Cooper 2017-01-19 17:03:45 +00:00
parent 3e9662dcb4
commit ab9bd41a5a
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=312418
2 changed files with 8 additions and 4 deletions

View File

@ -4,3 +4,7 @@
SRCS+= \
__vdso_gettc.c
.if ${MK_HYPERV} != "no"
CFLAGS+= -DWANT_HYPERV
.endif

View File

@ -46,7 +46,7 @@ __FBSDID("$FreeBSD$");
#include <machine/cpufunc.h>
#include <machine/specialreg.h>
#include <dev/acpica/acpi_hpet.h>
#ifdef __amd64__
#ifdef WANT_HYPERV
#include <dev/hyperv/hyperv.h>
#endif
#include "libc_private.h"
@ -158,7 +158,7 @@ __vdso_init_hpet(uint32_t u)
munmap((void *)new_map, PAGE_SIZE);
}
#ifdef __amd64__
#ifdef WANT_HYPERV
#define HYPERV_REFTSC_DEVPATH "/dev/" HYPERV_REFTSC_DEVNAME
@ -217,7 +217,7 @@ __vdso_hyperv_tsc(struct hyperv_reftsc *tsc_ref, u_int *tc)
return (ENOSYS);
}
#endif /* __amd64__ */
#endif /* WANT_HYPERV */
#pragma weak __vdso_gettc
int
@ -246,7 +246,7 @@ __vdso_gettc(const struct vdso_timehands *th, u_int *tc)
return (ENOSYS);
*tc = *(volatile uint32_t *)(map + HPET_MAIN_COUNTER);
return (0);
#ifdef __amd64__
#ifdef WANT_HYPERV
case VDSO_TH_ALGO_X86_HVTSC:
if (hyperv_ref_tsc == NULL)
__vdso_init_hyperv_tsc();