ringbuffer: add option to enable/disable debugging
authorBernhard Miklautz <bernhard.miklautz@shacknet.at>
Tue, 3 Feb 2015 14:28:05 +0000 (15:28 +0100)
committerBernhard Miklautz <bernhard.miklautz@shacknet.at>
Tue, 3 Feb 2015 14:28:05 +0000 (15:28 +0100)
Add option WITH_DEBUG_RINGBUFFER to enable/disable ringbuffer debugging
at compile time.

Even if it is possible to filter specific wlog tags it's not yet
possible to exclude one or more and ringbuffer adds massive debugging
output if enabled and WLOG_LEVEL is set to DEBUG.

cmake/ConfigOptions.cmake
config.h.in
libfreerdp/utils/ringbuffer.c

index 87ffefe..4f38d17 100644 (file)
@@ -116,6 +116,7 @@ option(WITH_DEBUG_X11_CLIPRDR "Print X11 clipboard redirection debug messages" $
 option(WITH_DEBUG_X11_LOCAL_MOVESIZE "Print X11 Client local movesize debug messages" ${DEFAULT_DEBUG_OPTION})
 option(WITH_DEBUG_X11 "Print X11 Client debug messages" ${DEFAULT_DEBUG_OPTION})
 option(WITH_DEBUG_XV "Print XVideo debug messages" ${DEFAULT_DEBUG_OPTION})
+option(WITH_DEBUG_RINGBUFFER "Enable Ringbuffer debug messages" ${DEFAULT_DEBUG_OPTION})
 
 if(ANDROID)
 include(ConfigOptionsAndroid)
index f4db949..d54ce1b 100644 (file)
@@ -91,4 +91,5 @@
 #cmakedefine WITH_DEBUG_X11_LOCAL_MOVESIZE
 #cmakedefine WITH_DEBUG_XV
 #cmakedefine WITH_DEBUG_ANDROID_JNI
+#cmakedefine WITH_DEBUG_RINGBUFFER
 #endif
index cc11ce6..0f2eb6a 100644 (file)
  * limitations under the License.
  */
 
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #include <freerdp/utils/ringbuffer.h>
 
 #include <stdlib.h>
 
 #define TAG FREERDP_TAG("utils.ringbuffer")
 
+#ifdef WITH_DEBUG_RINGBUFFER
+#define DEBUG_RINGBUFFER(fmt, ...) WLog_DBG(TAG, fmt, ## __VA_ARGS__)
+#else
+#define DEBUG_RINGBUFFER(fmt, ...) do { } while (0)
+#endif
+
 BOOL ringbuffer_init(RingBuffer* rb, size_t initialSize)
 {
        rb->buffer = malloc(initialSize);
@@ -37,9 +47,9 @@ BOOL ringbuffer_init(RingBuffer* rb, size_t initialSize)
 
        rb->readPtr = rb->writePtr = 0;
        rb->initialSize = rb->size = rb->freeSize = initialSize;
-       
-       WLog_DBG(TAG, "ringbuffer_init(%p)", rb);
-       
+
+       DEBUG_RINGBUFFER("ringbuffer_init(%p)", rb);
+
        return TRUE;
 }
 
@@ -55,7 +65,7 @@ size_t ringbuffer_capacity(const RingBuffer* rb)
 
 void ringbuffer_destroy(RingBuffer* rb)
 {
-       WLog_DBG(TAG, "ringbuffer_destroy(%p)", rb);
+       DEBUG_RINGBUFFER("ringbuffer_destroy(%p)", rb);
        
        free(rb->buffer);
        rb->buffer = NULL;
@@ -65,7 +75,7 @@ static BOOL ringbuffer_realloc(RingBuffer* rb, size_t targetSize)
 {
        BYTE* newData;
        
-       WLog_DBG(TAG, "ringbuffer_realloc(%p): targetSize: %d", rb, targetSize);
+       DEBUG_RINGBUFFER("ringbuffer_realloc(%p): targetSize: %d", rb, targetSize);
 
        if (rb->writePtr == rb->readPtr)
        {
@@ -156,7 +166,7 @@ BOOL ringbuffer_write(RingBuffer* rb, const BYTE* ptr, size_t sz)
        size_t toWrite;
        size_t remaining;
 
-       WLog_DBG(TAG, "ringbuffer_write(%p): sz: %d", rb, sz);
+       DEBUG_RINGBUFFER("ringbuffer_write(%p): sz: %d", rb, sz);
        
        if ((rb->freeSize <= sz) && !ringbuffer_realloc(rb, rb->size + sz))
                return FALSE;
@@ -191,8 +201,8 @@ BOOL ringbuffer_write(RingBuffer* rb, const BYTE* ptr, size_t sz)
 
 BYTE* ringbuffer_ensure_linear_write(RingBuffer* rb, size_t sz)
 {
-       WLog_DBG(TAG, "ringbuffer_ensure_linear_write(%p): sz: %d", rb, sz);
-       
+       DEBUG_RINGBUFFER("ringbuffer_ensure_linear_write(%p): sz: %d", rb, sz);
+
        if (rb->freeSize < sz)
        {
                if (!ringbuffer_realloc(rb, rb->size + sz - rb->freeSize + 32))
@@ -222,7 +232,7 @@ BYTE* ringbuffer_ensure_linear_write(RingBuffer* rb, size_t sz)
 
 BOOL ringbuffer_commit_written_bytes(RingBuffer* rb, size_t sz)
 {
-       WLog_DBG(TAG, "ringbuffer_commit_written_bytes(%p): sz: %d", rb, sz);
+       DEBUG_RINGBUFFER("ringbuffer_commit_written_bytes(%p): sz: %d", rb, sz);
        
        if (sz < 1)
                return TRUE;
@@ -243,7 +253,7 @@ int ringbuffer_peek(const RingBuffer* rb, DataChunk chunks[2], size_t sz)
        int chunkIndex = 0;
        int status = 0;
        
-       WLog_DBG(TAG, "ringbuffer_peek(%p): sz: %d", rb, sz);
+       DEBUG_RINGBUFFER("ringbuffer_peek(%p): sz: %d", rb, sz);
 
        if (sz < 1)
                return 0;
@@ -277,7 +287,7 @@ int ringbuffer_peek(const RingBuffer* rb, DataChunk chunks[2], size_t sz)
 
 void ringbuffer_commit_read_bytes(RingBuffer* rb, size_t sz)
 {
-       WLog_DBG(TAG, "ringbuffer_commit_read_bytes(%p): sz: %d", rb, sz);
+       DEBUG_RINGBUFFER("ringbuffer_commit_read_bytes(%p): sz: %d", rb, sz);
        
        if (sz < 1)
                return;