X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=liblttng-ust%2Flttng-clock.c;h=3cd26fb34f839467eccf4e8d7346611687beafac;hb=ae4b659d95f8dab9f2aa4b890d6937d7d5375f07;hp=557fc6b6ccd7c78c612e339ceeea00d3827ba05b;hpb=e11fcffcd0fb20d821eba69875d0b72553260df6;p=lttng-ust.git diff --git a/liblttng-ust/lttng-clock.c b/liblttng-ust/lttng-clock.c index 557fc6b6..3cd26fb3 100644 --- a/liblttng-ust/lttng-clock.c +++ b/liblttng-ust/lttng-clock.c @@ -1,37 +1,30 @@ /* - * Copyright (C) 2014 Mathieu Desnoyers + * SPDX-License-Identifier: LGPL-2.1-only * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; version 2.1 of - * the License. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * Copyright (C) 2014 Mathieu Desnoyers */ -#define _GNU_SOURCE +#define _LGPL_SOURCE #include #include #include +#include #include #include #include #include #include "clock.h" +#include "getenv.h" struct lttng_trace_clock *lttng_trace_clock; static struct lttng_trace_clock user_tc; +static +void *clock_handle; + int lttng_ust_trace_clock_set_read64_cb(uint64_t (*read64)(void)) { if (CMM_LOAD_SHARED(lttng_trace_clock)) @@ -93,21 +86,21 @@ int lttng_ust_enable_trace_clock_override(void) void lttng_ust_clock_init(void) { const char *libname; - void *handle; void (*libinit)(void); - - libname = secure_getenv("LTTNG_UST_CLOCK_PLUGIN"); + if (clock_handle) + return; + libname = lttng_getenv("LTTNG_UST_CLOCK_PLUGIN"); if (!libname) return; - handle = dlopen(libname, RTLD_NOW); - if (!handle) { + clock_handle = dlopen(libname, RTLD_NOW); + if (!clock_handle) { PERROR("Cannot load LTTng UST clock override library %s", libname); return; } dlerror(); - libinit = (void (*)(void)) dlsym(handle, + libinit = (void (*)(void)) dlsym(clock_handle, "lttng_ust_clock_plugin_init"); if (!libinit) { PERROR("Cannot find LTTng UST clock override library %s initialization function lttng_ust_clock_plugin_init()",