(clang) terminal control sequence test

This commit is contained in:
2026-08-23 21:22:28 +02:00
parent 73fbbfebf0
commit 7e5eb2107c
+3 -64
View File
@@ -3,73 +3,12 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#define QUEUE_SIZE ( ( uint32_t ) 4u )
#define QUEUE_EMPTY_VALUE ( ( uint32_t ) 0u )
typedef struct {
uint32_t head;
uint32_t tail;
uint32_t queue_data[ QUEUE_SIZE ];
} queue_t;
static void queue_initialise( queue_t *queue );
static int queue_enqueue( queue_t *queue, uint32_t message );
static int queue_dequeue( queue_t *queue, uint32_t* message );
int main(void) int main(void)
{ {
queue_t queue; char* sequence_red = "\x1b[31m";
queue_initialise( &queue ); char* sequence_reset = "\x1b[0m";
for ( int n = 0; n < ( int )QUEUE_SIZE + 1; n++ ) (void)printf( "%salarm!%s", sequence_red, sequence_reset );
{
if ( queue_enqueue( &queue, ( uint32_t )n ) )
{
printf( "failed to queue message: 0x%4x\n", n );
}
else
{
printf( "successfully queued message: 0x%4x\n", n );
}
}
return 0;
}
void queue_initialise( queue_t *queue )
{
queue->head = 0;
queue->tail = 0;
}
int queue_enqueue( queue_t *queue, uint32_t message )
{
if ( !queue ) return -1;
if ( ( queue->head + 1 ) % QUEUE_SIZE == queue->tail )
{
// queue full
return -1;
}
queue->queue_data[ queue->head ] = message;
queue->head = ( queue->head + 1 ) % QUEUE_SIZE;
return 0;
}
int queue_dequeue( queue_t *queue, uint32_t* message )
{
if ( !queue ) return -1;
if ( !message ) return -1;
if ( queue->head == queue->tail )
{
// queue empty
return -1;
}
*message = queue->queue_data[ queue->tail ];
queue->tail = ( queue->tail + 1 ) % QUEUE_SIZE;
return 0; return 0;
} }