mirror of
https://github.com/espressif/esp-idf
synced 2025-03-10 09:39:10 -04:00
Add xRingbufferCanRead, xRingbufferCanWrite
Add function xRingbufferCanRead & xRingbufferCanWrite to be able use queue sets. Without it is not possible to check to which ringbuffer returned semaphore belongs.
This commit is contained in:
parent
7a6e367cd9
commit
32e838ddb6
@ -297,6 +297,33 @@ BaseType_t xRingbufferAddToQueueSetRead(RingbufHandle_t ringbuf, QueueSetHandle_
|
||||
*/
|
||||
BaseType_t xRingbufferAddToQueueSetWrite(RingbufHandle_t ringbuf, QueueSetHandle_t xQueueSet);
|
||||
|
||||
/**
|
||||
* @brief Check if the selected queue set member is the ringbuffer's read semaphore
|
||||
*
|
||||
* This API checks if queue set member returned from xQueueSelectFromSet
|
||||
* is the read semaphore of this ring buffer. If so, this indicates the ring buffer
|
||||
* has items waiting to be read.
|
||||
*
|
||||
* @param ringbuf Ring buffer which should be checked
|
||||
* @param member Member returned from xQueueSelectFromSet
|
||||
*
|
||||
* @return pdTRUE when semaphore belongs to ringbuffer, pdFALSE otherwise.
|
||||
*/
|
||||
BaseType_t xRingbufferCanRead(RingbufHandle_t ringbuf, QueueSetMemberHandle_t member);
|
||||
|
||||
/**
|
||||
* @brief Check if the selected queue set member is the ringbuffer's write semaphore
|
||||
*
|
||||
* This API checks if queue set member returned from xQueueSelectFromSet
|
||||
* is the write semaphore of this ring buffer. If so, this indicates the ring buffer
|
||||
* has items waiting for write.
|
||||
*
|
||||
* @param ringbuf Ring buffer which should be checked
|
||||
* @param member Member returned from xQueueSelectFromSet
|
||||
*
|
||||
* @return pdTRUE when semaphore belongs to ringbuffer, pdFALSE otherwise.
|
||||
*/
|
||||
BaseType_t xRingbufferCanWrite(RingbufHandle_t ringbuf, QueueSetMemberHandle_t member);
|
||||
|
||||
/**
|
||||
* @brief Remove the ringbuffer from a queue set.
|
||||
|
@ -409,6 +409,24 @@ static void returnItemToRingbufBytebuf(ringbuf_t *rb, void *item) {
|
||||
//Free the read memory.
|
||||
rb->free_ptr=rb->read_ptr;
|
||||
}
|
||||
/*
|
||||
Check if the selected queue set member is the ringbuffer's read semaphore
|
||||
*/
|
||||
BaseType_t xRingbufferCanRead(RingbufHandle_t ringbuf, QueueSetMemberHandle_t member)
|
||||
{
|
||||
ringbuf_t *rb=(ringbuf_t *)ringbuf;
|
||||
configASSERT(rb);
|
||||
return (rb->items_buffered_sem == member)? pdTRUE : pdFALSE;
|
||||
}
|
||||
/*
|
||||
Check if the selected queue set member is the ringbuffer's write semaphore
|
||||
*/
|
||||
BaseType_t xRingbufferCanWrite(RingbufHandle_t ringbuf, QueueSetMemberHandle_t member)
|
||||
{
|
||||
ringbuf_t *rb=(ringbuf_t *)ringbuf;
|
||||
configASSERT(rb);
|
||||
return (rb->free_space_sem == member)? pdTRUE : pdFALSE;
|
||||
}
|
||||
|
||||
void xRingbufferPrintInfo(RingbufHandle_t ringbuf)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user