From e00c492a059c08d9c45d7f64e5a2aa688b062116 Mon Sep 17 00:00:00 2001 From: Andri Yngvason Date: Thu, 2 Apr 2020 00:33:19 +0000 Subject: [PATCH] Add dtrace probe infrastructure --- include/usdt.h | 31 +++++++++++++++++++++++++++++++ meson.build | 5 +++++ 2 files changed, 36 insertions(+) create mode 100644 include/usdt.h diff --git a/include/usdt.h b/include/usdt.h new file mode 100644 index 0000000..2546a5b --- /dev/null +++ b/include/usdt.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2020 Andri Yngvason + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +#pragma once + +#include "config.h" + +#ifdef HAVE_USDT +#include +#else +#define DTRACE_PROBE(...) +#define DTRACE_PROBE1(...) +#define DTRACE_PROBE2(...) +#define DTRACE_PROBE3(...) +#define DTRACE_PROBE4(...) +#define DTRACE_PROBE5(...) +#define DTRACE_PROBE6(...) +#endif diff --git a/meson.build b/meson.build index 7e32ee3..2df1af3 100644 --- a/meson.build +++ b/meson.build @@ -9,6 +9,7 @@ project( ) buildtype = get_option('buildtype') +host_system = host_machine.system() prefix = get_option('prefix') c_args = [ @@ -88,6 +89,10 @@ config = configuration_data() config.set('PREFIX', '"' + prefix + '"') +if host_system == 'linux' and cc.has_header('sys/sdt.h') + config.set('HAVE_USDT', true) +endif + configure_file( output: 'config.h', configuration: config,