LKML Archive on lore.kernel.org
 help / color / Atom feed
From: tip-bot for Tzvetomir Stoyanov <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: tstoyanov@vmware.com, akpm@linux-foundation.org,
	mingo@kernel.org, tglx@linutronix.de, rostedt@goodmis.org,
	jolsa@redhat.com, hpa@zytor.com, namhyung@kernel.org,
	acme@redhat.com, linux-kernel@vger.kernel.org
Subject: [tip:perf/urgent] tools lib traceevent: Changed return logic of trace_seq_printf() and trace_seq_vprintf() APIs
Date: Tue, 8 Jan 2019 23:14:24 -0800
Message-ID: <tip-6d2d6fd7e3ee0daf0d8308741792b3ec41aafd0c@git.kernel.org> (raw)
In-Reply-To: <20181201040852.485792891@goodmis.org>

Commit-ID:  6d2d6fd7e3ee0daf0d8308741792b3ec41aafd0c
Gitweb:     https://git.kernel.org/tip/6d2d6fd7e3ee0daf0d8308741792b3ec41aafd0c
Author:     Tzvetomir Stoyanov <tstoyanov@vmware.com>
AuthorDate: Fri, 30 Nov 2018 23:08:10 -0500
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 8 Jan 2019 13:28:13 -0300

tools lib traceevent: Changed return logic of trace_seq_printf() and trace_seq_vprintf() APIs

In order to make libtraceevent into a proper library, its API should be
straightforward.

The trace_seq_printf() and trace_seq_vprintf() APIs have inconsistent
returned values with the other trace_seq_* APIs.

This path changes the return logic of trace_seq_printf() and
trace_seq_vprintf() to return the number of printed characters, as the
other trace_seq_* related APIs.

Signed-off-by: Tzvetomir Stoyanov <tstoyanov@vmware.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/20181201040852.485792891@goodmis.org
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/lib/traceevent/trace-seq.c | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/tools/lib/traceevent/trace-seq.c b/tools/lib/traceevent/trace-seq.c
index 8ff1d55954d1..8d5ecd2bf877 100644
--- a/tools/lib/traceevent/trace-seq.c
+++ b/tools/lib/traceevent/trace-seq.c
@@ -100,7 +100,8 @@ static void expand_buffer(struct trace_seq *s)
  * @fmt: printf format string
  *
  * It returns 0 if the trace oversizes the buffer's free
- * space, 1 otherwise.
+ * space, the number of characters printed, or a negative
+ * value in case of an error.
  *
  * The tracer may use either sequence operations or its own
  * copy to user routines. To simplify formating of a trace
@@ -129,9 +130,10 @@ trace_seq_printf(struct trace_seq *s, const char *fmt, ...)
 		goto try_again;
 	}
 
-	s->len += ret;
+	if (ret > 0)
+		s->len += ret;
 
-	return 1;
+	return ret;
 }
 
 /**
@@ -139,6 +141,10 @@ trace_seq_printf(struct trace_seq *s, const char *fmt, ...)
  * @s: trace sequence descriptor
  * @fmt: printf format string
  *
+ * It returns 0 if the trace oversizes the buffer's free
+ * space, the number of characters printed, or a negative
+ * value in case of an error.
+ * *
  * The tracer may use either sequence operations or its own
  * copy to user routines. To simplify formating of a trace
  * trace_seq_printf is used to store strings into a special
@@ -163,9 +169,10 @@ trace_seq_vprintf(struct trace_seq *s, const char *fmt, va_list args)
 		goto try_again;
 	}
 
-	s->len += ret;
+	if (ret > 0)
+		s->len += ret;
 
-	return len;
+	return ret;
 }
 
 /**

  reply index

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-01  4:08 [PATCH 0/6] tools/lib/traceevent: Some more library updates Steven Rostedt
2018-12-01  4:08 ` [PATCH 1/6] tools/lib/traceevent: Initialize host_bigendian at tep_handle allocation Steven Rostedt
2019-01-09  7:13   ` [tip:perf/urgent] tools lib traceevent: " tip-bot for Tzvetomir Stoyanov
2018-12-01  4:08 ` [PATCH 2/6] tools/lib/traceevent: Rename struct cmdline to struct tep_cmdline Steven Rostedt
2019-01-09  7:13   ` [tip:perf/urgent] tools lib traceevent: " tip-bot for Tzvetomir Stoyanov
2018-12-01  4:08 ` [PATCH 3/6] tools/lib/traceevent: Changed return logic of trace_seq_printf() and trace_seq_vprintf() APIs Steven Rostedt
2019-01-09  7:14   ` tip-bot for Tzvetomir Stoyanov [this message]
2018-12-01  4:08 ` [PATCH 4/6] tools/lib/traceevent: Changed return logic of tep_register_event_handler() API Steven Rostedt
2019-01-09  7:15   ` [tip:perf/urgent] tools lib traceevent: " tip-bot for Tzvetomir Stoyanov
2018-12-01  4:08 ` [PATCH 5/6] tools/lib/traceevent: Rename tep_is_file_bigendian() to tep_file_bigendian() Steven Rostedt
2019-01-09  7:15   ` [tip:perf/urgent] tools lib traceevent: " tip-bot for Tzvetomir Stoyanov
2018-12-01  4:08 ` [PATCH 6/6] tools/lib/traceevent: Remove tep_data_event_from_type() API Steven Rostedt
2019-01-09  7:16   ` [tip:perf/urgent] tools lib traceevent: " tip-bot for Tzvetomir Stoyanov
2019-01-07 22:51 ` [PATCH 0/6] tools/lib/traceevent: Some more library updates Steven Rostedt
2019-01-08 13:45 ` Arnaldo Carvalho de Melo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=tip-6d2d6fd7e3ee0daf0d8308741792b3ec41aafd0c@git.kernel.org \
    --to=tipbot@zytor.com \
    --cc=acme@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=hpa@zytor.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    --cc=tstoyanov@vmware.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

LKML Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git
	git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git
	git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git
	git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git
	git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git
	git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git
	git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git
	git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git
	git clone --mirror https://lore.kernel.org/lkml/8 lkml/git/8.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \
		linux-kernel@vger.kernel.org
	public-inbox-index lkml

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git