From be1130805ad3b3b2e9dcc7c4097283ca2bf8e537 Mon Sep 17 00:00:00 2001 From: Antti Kantee Date: Thu, 15 Oct 2015 16:04:40 +0000 Subject: [PATCH] Use hypercalls instead of header/symbol kludges. --- lib/librumpkern_bmktc/Makefile | 7 +++++- lib/librumpkern_bmktc/bmktc_user.c | 35 ++++++++++++++++++++++++++++++ lib/librumpkern_bmktc/bmktc_user.h | 26 ++++++++++++++++++++++ lib/librumpkern_bmktc/rump_bmktc.c | 7 +++--- 4 files changed, 70 insertions(+), 5 deletions(-) create mode 100644 lib/librumpkern_bmktc/bmktc_user.c create mode 100644 lib/librumpkern_bmktc/bmktc_user.h diff --git a/lib/librumpkern_bmktc/Makefile b/lib/librumpkern_bmktc/Makefile index 32edd10..c368624 100644 --- a/lib/librumpkern_bmktc/Makefile +++ b/lib/librumpkern_bmktc/Makefile @@ -1,10 +1,15 @@ +.include + LIB= rumpkern_bmktc SRCS+= rump_bmktc.c RUMPTOP= ${TOPRUMP} -RUMP_SYM_NORENAME=bmk_platform +RUMPCOMP_USER_SRCS= bmktc_user.c +RUMPCOMP_USER_CPPFLAGS+=-I${.CURDIR}/../../include + +.undef RUMPKERN_ONLY .include "${RUMPTOP}/Makefile.rump" .include diff --git a/lib/librumpkern_bmktc/bmktc_user.c b/lib/librumpkern_bmktc/bmktc_user.c new file mode 100644 index 0000000..043363e --- /dev/null +++ b/lib/librumpkern_bmktc/bmktc_user.c @@ -0,0 +1,35 @@ +/*- + * Copyright (c) 2015 Antti Kantee. All Rights Reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include "bmktc_user.h" + +unsigned int +rumpcomp_bmktc_gettime(void) +{ + + return (unsigned int)bmk_platform_cpu_clock_monotonic(); +} diff --git a/lib/librumpkern_bmktc/bmktc_user.h b/lib/librumpkern_bmktc/bmktc_user.h new file mode 100644 index 0000000..51238d4 --- /dev/null +++ b/lib/librumpkern_bmktc/bmktc_user.h @@ -0,0 +1,26 @@ +/*- + * Copyright (c) 2015 Antti Kantee. All Rights Reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +unsigned int rumpcomp_bmktc_gettime(void); diff --git a/lib/librumpkern_bmktc/rump_bmktc.c b/lib/librumpkern_bmktc/rump_bmktc.c index 4a04fb3..1d80d44 100644 --- a/lib/librumpkern_bmktc/rump_bmktc.c +++ b/lib/librumpkern_bmktc/rump_bmktc.c @@ -30,16 +30,15 @@ #include #include -MODULE(MODULE_CLASS_MISC, bmktc, NULL); +#include "bmktc_user.h" -/* XXXX */ -uint64_t bmk_platform_cpu_clock_monotonic(void); +MODULE(MODULE_CLASS_MISC, bmktc, NULL); static u_int bmktc_get(struct timecounter *tc) { - return (u_int)bmk_platform_cpu_clock_monotonic(); + return rumpcomp_bmktc_gettime(); } static struct timecounter bmktc = { -- 2.39.5