From mboxrd@z Thu Jan 1 00:00:00 1970 From: Damien Lespiau Subject: Re: [PATCH igt] intel_error_decode: Factor out common decoding code Date: Mon, 6 Jan 2014 13:42:03 +0000 Message-ID: <20140106134203.GC7910@strange.amr.corp.intel.com> References: <1387195373-22374-1-git-send-email-damien.lespiau@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 54CDA105D5D for ; Mon, 6 Jan 2014 05:42:17 -0800 (PST) Content-Disposition: inline In-Reply-To: <1387195373-22374-1-git-send-email-damien.lespiau@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Mon, Dec 16, 2013 at 12:02:53PM +0000, Damien Lespiau wrote: > 4 pieces of code were looking very similar. Let's factor out a common > function in the not so unlikely case we need to tweak that code. > > Signed-off-by: Damien Lespiau Pushed. -- Damien > --- > tools/intel_error_decode.c | 52 +++++++++++++++++++--------------------------- > 1 file changed, 21 insertions(+), 31 deletions(-) > > diff --git a/tools/intel_error_decode.c b/tools/intel_error_decode.c > index a22ec7d..529ec54 100644 > --- a/tools/intel_error_decode.c > +++ b/tools/intel_error_decode.c > @@ -39,6 +39,7 @@ > */ > > #define _GNU_SOURCE > +#include > #include > #include > #include > @@ -319,6 +320,19 @@ static void print_batch(int is_batch, const char *ring_name, uint32_t gtt_offset > } > } > > +static void decode(struct drm_intel_decode *ctx, bool is_batch, > + const char *ring_name, uint32_t gtt_offset, uint32_t *data, > + int *count) > +{ > + if (!*count) > + return; > + > + print_batch(is_batch, ring_name, gtt_offset); > + drm_intel_decode_set_batch_pointer(ctx, data, gtt_offset, *count); > + drm_intel_decode(ctx); > + *count = 0; > +} > + > static void > read_data_file(FILE *file) > { > @@ -350,14 +364,8 @@ read_data_file(FILE *file) > matched = sscanf(dashes, "--- gtt_offset = 0x%08x\n", > &new_gtt_offset); > if (matched == 1) { > - if (count) { > - print_batch(is_batch, ring_name, gtt_offset); > - drm_intel_decode_set_batch_pointer(decode_ctx, > - data, gtt_offset, > - count); > - drm_intel_decode(decode_ctx); > - count = 0; > - } > + decode(decode_ctx, is_batch, ring_name, > + gtt_offset, data, &count); > gtt_offset = new_gtt_offset; > is_batch = 1; > free(ring_name); > @@ -368,14 +376,8 @@ read_data_file(FILE *file) > matched = sscanf(dashes, "--- ringbuffer = 0x%08x\n", > &new_gtt_offset); > if (matched == 1) { > - if (count) { > - print_batch(is_batch, ring_name, gtt_offset); > - drm_intel_decode_set_batch_pointer(decode_ctx, > - data, gtt_offset, > - count); > - drm_intel_decode(decode_ctx); > - count = 0; > - } > + decode(decode_ctx, is_batch, ring_name, > + gtt_offset, data, &count); > gtt_offset = new_gtt_offset; > is_batch = 0; > free(ring_name); > @@ -389,14 +391,8 @@ read_data_file(FILE *file) > unsigned int reg; > > /* display reg section is after the ringbuffers, don't mix them */ > - if (count) { > - print_batch(is_batch, ring_name, gtt_offset); > - drm_intel_decode_set_batch_pointer(decode_ctx, > - data, gtt_offset, > - count); > - drm_intel_decode(decode_ctx); > - count = 0; > - } > + decode(decode_ctx, is_batch, ring_name, gtt_offset, > + data, &count); > > printf("%s", line); > > @@ -464,13 +460,7 @@ read_data_file(FILE *file) > data[count-1] = value; > } > > - if (count) { > - print_batch(is_batch, ring_name, gtt_offset); > - drm_intel_decode_set_batch_pointer(decode_ctx, > - data, gtt_offset, > - count); > - drm_intel_decode(decode_ctx); > - } > + decode(decode_ctx, is_batch, ring_name, gtt_offset, data, &count); > > free(data); > free(line); > -- > 1.8.3.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx