mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-11-01 23:18:21 +00:00
ringbuffer: datacount function
This commit is contained in:
@@ -12,6 +12,7 @@ typedef struct{
|
|||||||
} ringbuffer_t;
|
} ringbuffer_t;
|
||||||
|
|
||||||
|
|
||||||
|
size_t ringbuffer_datacount(ringbuffer_t* ringubffer);
|
||||||
int ringbuffer_init(ringbuffer_t* ringbuffer, size_t size);
|
int ringbuffer_init(ringbuffer_t* ringbuffer, size_t size);
|
||||||
size_t ringbuffer_read(ringbuffer_t* ringbuffer, void* buffer, size_t count);
|
size_t ringbuffer_read(ringbuffer_t* ringbuffer, void* buffer, size_t count);
|
||||||
size_t ringbuffer_write(ringbuffer_t* ringbuffer, void* buffer, size_t count);
|
size_t ringbuffer_write(ringbuffer_t* ringbuffer, void* buffer, size_t count);
|
||||||
|
|||||||
@@ -42,6 +42,17 @@ size_t ringbuffer_read(ringbuffer_t* ringbuffer, void* buffer, size_t count){
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t ringbuffer_datacount(ringbuffer_t* ringbuffer){
|
||||||
|
spinlock_acquire(&ringbuffer->lock);
|
||||||
|
|
||||||
|
size_t c = ringbuffer->write - ringbuffer->read;
|
||||||
|
|
||||||
|
spinlock_release(&ringbuffer->lock);
|
||||||
|
|
||||||
|
return c;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
size_t ringbuffer_write(ringbuffer_t* ringbuffer, void* buffer, size_t count){
|
size_t ringbuffer_write(ringbuffer_t* ringbuffer, void* buffer, size_t count){
|
||||||
|
|
||||||
spinlock_acquire(&ringbuffer->lock);
|
spinlock_acquire(&ringbuffer->lock);
|
||||||
|
|||||||
Reference in New Issue
Block a user