/*
- * Copyright (C) 2017 Francis Deslauriers <francis.deslauriers@efficios.com>
+ * Copyright (C) 2017 Francis Deslauriers <francis.deslauriers@efficios.com>
*
- * 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; either
- * version 2.1 of the License, or (at your option) any later version.
+ * SPDX-License-Identifier: LGPL-2.1-or-later
*
- * 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
*/
+
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
#endif
+/*
+ * The order of inclusion is important here: including sdt.h _before_ the probe
+ * declarations ensures that semaphore-protected SDT probes (which we don't support) are not
+ * generated. See SYSTEMTAP(2) for more details.
+ */
+/* clang-format off */
+#include <sys/sdt.h>
+#include "foobar_provider.h"
+/* clang-format on */
+
+#include "libfoo.h"
+#include "sema.h"
+
#include <dlfcn.h>
#include <fcntl.h>
#include <stdbool.h>
#include <sys/stat.h>
#include <sys/types.h>
-#include <sys/sdt.h>
-
-#include "foobar_provider.h"
-#include "libfoo.h"
-#include "sema.h"
-
int main(int argc, char *argv[])
{
void *handle;
FOOBAR_TP1();
FOOBAR_TP2();
/*
- * This SDT tracepoint has an argument. Argument extraction is not support
- * at the moment but tracing of the tracepoint should work.
+ * This SDT tracepoint has an argument. Argument extraction is not supported
+ * at the moment, but tracing of the tracepoint should work.
*/
FOOBAR_TP_WITH_ARG(42);
- /* Call function containing an SDT tracepoint in shared object */
+ /* Call a function containing an SDT tracepoint in shared object. */
foo_function();
/*
- * Load a show shared object and call a function containing an SDT
+ * Load a shared object and call a function containing an SDT
* tracepoint
*/
handle = dlopen("libbar.so", RTLD_LAZY);
fprintf(stderr, "Can't dlopen libbar.so");
return -1;
}
- bar_function = (void (*)())dlsym(handle, "bar_function");
+ bar_function = (void (*)()) dlsym(handle, "bar_function");
bar_function();
dlclose(handle);
- /* This tracepoint has 2 callsites in this binary */
+ /* This tracepoint has 2 call sites in this binary. */
FOOBAR_TP2();
/*
- * This function is defined in libfoo AND in libzzz. For a test, libzzz is
- * LD_PRELOADed and should override this function
+ * This function is defined in libfoo and in libzzz. For a test, libzzz is
+ * LD_PRELOADed and should override this function.
*/
overridable_function();
sema_function();
return 0;
}
-