Consumers often want to choose stdout vs stderr, and for testing I
want to output to an open_memstream file.
---
 intel/intel_bufmgr.h |    2 ++
 intel/intel_decode.c |   14 ++++++++++++--
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/intel/intel_bufmgr.h b/intel/intel_bufmgr.h
index 68017a5..85da8b9 100644
--- a/intel/intel_bufmgr.h
+++ b/intel/intel_bufmgr.h
@@ -34,6 +34,7 @@
 #ifndef INTEL_BUFMGR_H
 #define INTEL_BUFMGR_H
 
+#include <stdio.h>
 #include <stdint.h>
 
 struct drm_clip_rect;
@@ -199,6 +200,7 @@ void drm_intel_decode_set_dump_past_end(struct 
drm_intel_decode *ctx,
                                        int dump_past_end);
 void drm_intel_decode_set_head_tail(struct drm_intel_decode *ctx,
                                    uint32_t head, uint32_t tail);
+void drm_intel_decode_set_output_file(struct drm_intel_decode *ctx, FILE *out);
 void drm_intel_decode(struct drm_intel_decode *ctx);
 
 
diff --git a/intel/intel_decode.c b/intel/intel_decode.c
index e80e840..81ef712 100644
--- a/intel/intel_decode.c
+++ b/intel/intel_decode.c
@@ -33,6 +33,9 @@
 
 /* Struct for tracking drm_intel_decode state. */
 struct drm_intel_decode {
+       /** stdio file where the output should land.  Defaults to stdout. */
+       FILE *out;
+
        /** PCI device ID. */
        uint32_t devid;
 
@@ -3558,6 +3561,7 @@ drm_intel_decode_context_alloc(uint32_t devid)
                return NULL;
 
        ctx->devid = devid;
+       ctx->out = stdout;
 
        return ctx;
 }
@@ -3592,6 +3596,13 @@ drm_intel_decode_set_head_tail(struct drm_intel_decode 
*ctx,
        ctx->tail = tail;
 }
 
+void
+drm_intel_decode_set_output_file(struct drm_intel_decode *ctx,
+                                FILE *out)
+{
+       ctx->out = out;
+}
+
 /**
  * Decodes an i830-i915 batch buffer, writing the output to stdout.
  *
@@ -3618,12 +3629,11 @@ drm_intel_decode(struct drm_intel_decode *ctx)
        devid = ctx->devid;
        head_offset = ctx->head;
        tail_offset = ctx->tail;
+       out = ctx->out;
 
        saved_s2_set = 0;
        saved_s4_set = 1;
 
-       out = stdout;
-
        while (index < count) {
                switch ((data[index] & 0xe0000000) >> 29) {
                case 0x0:
-- 
1.7.7.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to