From 5585084c00f878df014fd9bddbfa126f6d6755cc Mon Sep 17 00:00:00 2001 From: Mingqiang Chi Date: Thu, 21 Mar 2019 14:06:22 +0800 Subject: [PATCH] hv:move 'udelay' to timer.c -- move this api from misc.c to timer.c to avoid reverse dependency, and remove misc.c Tracked-On: #1842 Signed-off-by: Mingqiang Chi --- hypervisor/Makefile | 1 - hypervisor/arch/x86/timer.c | 13 +++++++++++++ hypervisor/include/arch/x86/timer.h | 2 ++ hypervisor/include/lib/rtl.h | 1 - hypervisor/lib/misc.c | 20 -------------------- 5 files changed, 15 insertions(+), 22 deletions(-) delete mode 100644 hypervisor/lib/misc.c diff --git a/hypervisor/Makefile b/hypervisor/Makefile index 8d5e78511..d724e0960 100644 --- a/hypervisor/Makefile +++ b/hypervisor/Makefile @@ -189,7 +189,6 @@ C_SRCS += arch/x86/guest/vmexit.c S_SRCS += arch/x86/guest/vmx_asm.S C_SRCS += arch/x86/guest/trusty.c C_SRCS += arch/x86/cat.c -C_SRCS += lib/misc.c C_SRCS += lib/string.c C_SRCS += lib/memory.c C_SRCS += lib/crypto/crypto_api.c diff --git a/hypervisor/arch/x86/timer.c b/hypervisor/arch/x86/timer.c index 8330115d9..c212829a9 100644 --- a/hypervisor/arch/x86/timer.c +++ b/hypervisor/arch/x86/timer.c @@ -318,3 +318,16 @@ uint64_t ticks_to_ms(uint64_t ticks) { return ticks / (uint64_t)tsc_khz; } + +void udelay(uint32_t us) +{ + uint64_t dest_tsc, delta_tsc; + + /* Calculate number of ticks to wait */ + delta_tsc = us_to_ticks(us); + dest_tsc = rdtsc() + delta_tsc; + + /* Loop until time expired */ + while (rdtsc() < dest_tsc) { + } +} diff --git a/hypervisor/include/arch/x86/timer.h b/hypervisor/include/arch/x86/timer.h index 80e38658e..71c5af6ac 100644 --- a/hypervisor/include/arch/x86/timer.h +++ b/hypervisor/include/arch/x86/timer.h @@ -49,6 +49,8 @@ struct hv_timer { #define CYCLES_PER_MS us_to_ticks(1000U) +void udelay(uint32_t us); + /** * @brief convert us to ticks. * diff --git a/hypervisor/include/lib/rtl.h b/hypervisor/include/lib/rtl.h index 2d5464f9f..475a6f93b 100644 --- a/hypervisor/include/lib/rtl.h +++ b/hypervisor/include/lib/rtl.h @@ -30,7 +30,6 @@ static inline bool is_space(char c) } /* Function prototypes */ -void udelay(uint32_t us); int32_t strcmp(const char *s1_arg, const char *s2_arg); int32_t strncmp(const char *s1_arg, const char *s2_arg, size_t n_arg); char *strncpy_s(char *d_arg, size_t dmax, const char *s_arg, size_t slen_arg); diff --git a/hypervisor/lib/misc.c b/hypervisor/lib/misc.c deleted file mode 100644 index 26a530bad..000000000 --- a/hypervisor/lib/misc.c +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (C) 2018 Intel Corporation. All rights reserved. - * - * SPDX-License-Identifier: BSD-3-Clause - */ - -#include - -void udelay(uint32_t us) -{ - uint64_t dest_tsc, delta_tsc; - - /* Calculate number of ticks to wait */ - delta_tsc = us_to_ticks(us); - dest_tsc = rdtsc() + delta_tsc; - - /* Loop until time expired */ - while (rdtsc() < dest_tsc) { - } -}