Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1333512

[PATCH 1/5] tools lib api: Add debug output support

From Jiri Olsa <jolsa@kernel.org>
Newsgroups linux.kernel
Subject [PATCH 1/5] tools lib api: Add debug output support
Date 2016-02-14 17:10 +0100
Message-ID <r27ph-4Un-21@gated-at.bofh.it> (permalink)
References <r27pg-4Un-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Adding support for warning/info/debug output
within libapi code. Adding following macros:
  pr_warning(fmt, ...)
  pr_info(fmt, ...)
  pr_debug(fmt, ...)

Also adding libapi_set_print function to set
above functions. This will be used in perf
to set standard debug handlers for libapi.

Adding 2 header files:
  debug.h
    - to be used outside libapi, contains
      libapi_set_print interface

  debug-internal.h
    - to be used within libapi, contains
      pr_warning/pr_info/pr_debug definitions

Link: http://lkml.kernel.org/n/tip-ul9hftog2mwuwsnyx7gm0445@git.kernel.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
---
 tools/lib/api/Build            |  1 +
 tools/lib/api/Makefile         |  1 +
 tools/lib/api/debug-internal.h | 20 ++++++++++++++++++++
 tools/lib/api/debug.c          | 28 ++++++++++++++++++++++++++++
 tools/lib/api/debug.h          | 10 ++++++++++
 5 files changed, 60 insertions(+)
 create mode 100644 tools/lib/api/debug-internal.h
 create mode 100644 tools/lib/api/debug.c
 create mode 100644 tools/lib/api/debug.h

diff --git a/tools/lib/api/Build b/tools/lib/api/Build
index e8b8a23b9bf4..954c644f7ad9 100644
--- a/tools/lib/api/Build
+++ b/tools/lib/api/Build
@@ -1,3 +1,4 @@
 libapi-y += fd/
 libapi-y += fs/
 libapi-y += cpu.o
+libapi-y += debug.o
diff --git a/tools/lib/api/Makefile b/tools/lib/api/Makefile
index d85904dc9b38..bbc82c614bee 100644
--- a/tools/lib/api/Makefile
+++ b/tools/lib/api/Makefile
@@ -18,6 +18,7 @@ LIBFILE = $(OUTPUT)libapi.a
 CFLAGS := $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
 CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC
 CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
+CFLAGS += -I$(srctree)/tools/lib/api
 
 RM = rm -f
 
diff --git a/tools/lib/api/debug-internal.h b/tools/lib/api/debug-internal.h
new file mode 100644
index 000000000000..188f7880eafe
--- /dev/null
+++ b/tools/lib/api/debug-internal.h
@@ -0,0 +1,20 @@
+#ifndef __API_DEBUG_INTERNAL_H__
+#define __API_DEBUG_INTERNAL_H__
+
+#include "debug.h"
+
+#define __pr(func, fmt, ...)	\
+do {				\
+	if ((func))		\
+		(func)("libapi: " fmt, ##__VA_ARGS__); \
+} while (0)
+
+extern libapi_print_fn_t __pr_warning;
+extern libapi_print_fn_t __pr_info;
+extern libapi_print_fn_t __pr_debug;
+
+#define pr_warning(fmt, ...)	__pr(__pr_warning, fmt, ##__VA_ARGS__)
+#define pr_info(fmt, ...)	__pr(__pr_info, fmt, ##__VA_ARGS__)
+#define pr_debug(fmt, ...)	__pr(__pr_debug, fmt, ##__VA_ARGS__)
+
+#endif /* __API_DEBUG_INTERNAL_H__ */
diff --git a/tools/lib/api/debug.c b/tools/lib/api/debug.c
new file mode 100644
index 000000000000..5fa5cf500a1f
--- /dev/null
+++ b/tools/lib/api/debug.c
@@ -0,0 +1,28 @@
+#include <stdio.h>
+#include <stdarg.h>
+#include "debug.h"
+#include "debug-internal.h"
+
+static int __base_pr(const char *format, ...)
+{
+	va_list args;
+	int err;
+
+	va_start(args, format);
+	err = vfprintf(stderr, format, args);
+	va_end(args);
+	return err;
+}
+
+libapi_print_fn_t __pr_warning = __base_pr;
+libapi_print_fn_t __pr_info    = __base_pr;
+libapi_print_fn_t __pr_debug;
+
+void libapi_set_print(libapi_print_fn_t warn,
+		      libapi_print_fn_t info,
+		      libapi_print_fn_t debug)
+{
+	__pr_warning = warn;
+	__pr_info    = info;
+	__pr_debug   = debug;
+}
diff --git a/tools/lib/api/debug.h b/tools/lib/api/debug.h
new file mode 100644
index 000000000000..a0872f68fc56
--- /dev/null
+++ b/tools/lib/api/debug.h
@@ -0,0 +1,10 @@
+#ifndef __API_DEBUG_H__
+#define __API_DEBUG_H__
+
+typedef int (*libapi_print_fn_t)(const char *, ...);
+
+void libapi_set_print(libapi_print_fn_t warn,
+		      libapi_print_fn_t info,
+		      libapi_print_fn_t debug);
+
+#endif /* __API_DEBUG_H__ */
-- 
2.4.3

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 0/5] perf tools: Store CPU cache details under perf data Jiri Olsa <jolsa@kernel.org> - 2016-02-14 17:10 +0100
  [PATCH 3/5] tools lib api fs: Add sysfs__read_str function Jiri Olsa <jolsa@kernel.org> - 2016-02-14 17:10 +0100
    [tip:perf/core] tools lib api fs: Add sysfs__read_str function tip-bot for Jiri Olsa <tipbot@zytor.com> - 2016-02-17 13:10 +0100
  [PATCH 5/5] perf tools: Add perf data cache feature Jiri Olsa <jolsa@kernel.org> - 2016-02-14 17:10 +0100
    [PATCHv2 5/5] perf tools: Add perf data cache feature Jiri Olsa <jolsa@redhat.com> - 2016-02-16 13:20 +0100
      Re: [PATCHv2 5/5] perf tools: Add perf data cache feature Namhyung Kim <namhyung@kernel.org> - 2016-02-16 15:30 +0100
        [PATCHv3 5/5] perf tools: Add perf data cache feature Jiri Olsa <jolsa@redhat.com> - 2016-02-16 16:10 +0100
          Re: [PATCHv3 5/5] perf tools: Add perf data cache feature Arnaldo Carvalho de Melo <acme@kernel.org> - 2016-02-16 16:30 +0100
            Re: [PATCHv3 5/5] perf tools: Add perf data cache feature Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> - 2016-02-16 16:50 +0100
          [tip:perf/core] perf tools: Add perf data cache feature tip-bot for Jiri Olsa <tipbot@zytor.com> - 2016-02-17 13:10 +0100
  [PATCH 4/5] perf tools: Initialize libapi debug output Jiri Olsa <jolsa@kernel.org> - 2016-02-14 17:10 +0100
    [tip:perf/core] perf tools: Initialize libapi debug output tip-bot for Jiri Olsa <tipbot@zytor.com> - 2016-02-17 13:10 +0100
  [PATCH 1/5] tools lib api: Add debug output support Jiri Olsa <jolsa@kernel.org> - 2016-02-14 17:10 +0100
    [tip:perf/core] tools lib api: Add debug output support tip-bot for Jiri Olsa <tipbot@zytor.com> - 2016-02-17 13:10 +0100
  [PATCH 2/5] tools lib api fs: Move filename__read_str into api/fs/fs.c Jiri Olsa <jolsa@kernel.org> - 2016-02-14 17:10 +0100
    [tip:perf/core] tools lib api fs:   Adopt filename__read_str from perf tip-bot for Jiri Olsa <tipbot@zytor.com> - 2016-02-17 13:10 +0100
  Re: [PATCH 0/5] perf tools: Store CPU cache details under perf data Ingo Molnar <mingo@kernel.org> - 2016-02-16 09:20 +0100
    Re: [PATCH 0/5] perf tools: Store CPU cache details under perf data Jiri Olsa <jolsa@redhat.com> - 2016-02-16 12:30 +0100

csiph-web