Move certain debug related functionality into header/source, feature gated by DEBUG flag

This commit is contained in:
Imbus 2024-12-25 14:03:47 +01:00
parent 3308e61dc1
commit 259c048bd5
3 changed files with 35 additions and 16 deletions

View file

@ -4,27 +4,16 @@
#include <string.h> #include <string.h>
#include <stdio.h> #include <stdio.h>
#define rb_size_t size_t #ifndef DEBUG
#define DEBUG
#endif
// #define rb_size_t size_t
// #define rb_size_t int // #define rb_size_t int
#include "ringbuf.h" #include "ringbuf.h"
typedef int DATATYPE; typedef int DATATYPE;
/**
* @brief Debug print and empty the ringbuf
*/
void
rb_debug_empty(struct RingBuf *rb)
{
int d;
if(rb->count == 0)
return;
printf("Debug Data: [");
while(rb_pop_front(rb, &d, memcpy) == ReadOk)
printf("%d,", d);
printf("\b]\n");
}
int int
main(void) main(void)
{ {

View file

@ -131,6 +131,21 @@ rb_pop_front(struct RingBuf *rb, void *item, MEMCPY_T memcpy_fn)
return ReadOk; return ReadOk;
} }
#ifdef DEBUG
#include <stdio.h>
void
rb_debug_empty(struct RingBuf *rb)
{
int d;
if(rb->count == 0)
return;
printf("Debug Data: [");
while(rb_pop_front(rb, &d, memcpy) == ReadOk)
printf("%d,", d);
printf("\b]\n");
}
void void
rb_debug_print(struct RingBuf *rb) rb_debug_print(struct RingBuf *rb)
{ {
@ -147,3 +162,5 @@ rb_debug_print(struct RingBuf *rb)
DEBUG_PRINT("============%s\n", ""); DEBUG_PRINT("============%s\n", "");
} }
#endif

View file

@ -111,12 +111,25 @@ enum ReadResult rb_pop_front(struct RingBuf *rb, void *item,
/** /**
* @brief Free the ring buffer * @brief Free the ring buffer
*
* @details This function is idempotent, consecutive calls will not result in a
* double free.
*
* @param rb The ring buffer * @param rb The ring buffer
* @param free The free function * @param free The free function
*/ */
void rb_destroy(struct RingBuf *rb, void(free)()); void rb_destroy(struct RingBuf *rb, void(free)());
#ifdef DEBUG
/** /**
* @brief Debug print * @brief Debug print
*/ */
void rb_debug_print(struct RingBuf *rb); void rb_debug_print(struct RingBuf *rb);
/**
* @brief Debug print and empty the ringbuf
*/
void rb_debug_empty(struct RingBuf *rb);
#endif