diff options
| author | Miguel <m.i@gmx.at> | 2018-10-04 00:53:30 +0200 |
|---|---|---|
| committer | Miguel <m.i@gmx.at> | 2018-10-04 00:53:30 +0200 |
| commit | ce16fe524c14ccaae67fb634105da5aef08ead48 (patch) | |
| tree | 03990f29389bd4c55f40b804b809c7060c24c739 /kernel/ringbuffer.c | |
| parent | a455cd5af26bf8731e7c981a9421b16ab34dae6f (diff) | |
moving framebuffer access completely to userspace
Diffstat (limited to 'kernel/ringbuffer.c')
| -rw-r--r-- | kernel/ringbuffer.c | 58 |
1 files changed, 34 insertions, 24 deletions
diff --git a/kernel/ringbuffer.c b/kernel/ringbuffer.c index 43d0e33..3886340 100644 --- a/kernel/ringbuffer.c +++ b/kernel/ringbuffer.c @@ -16,48 +16,58 @@ void ringbuffer_free(ringbuffer *f) kbfree(f->data); } -bool ringbuffer_put(ringbuffer* f,uint8_t c) +bool ringbuffer_full(ringbuffer* f) { - if(ringbuffer_full(f))return false; - - f->data[f->back]=c; - f->back--; - f->back+=f->size; - f->back%=f->size; - return true; + if((f->back-1+f->size)%f->size==f->front)return true; + return false; } -bool ringbuffer_full(ringbuffer* f) +bool ringbuffer_empty(ringbuffer* f) { - if((f->back-1+f->size)%f->size==f->front) - { - return true; - } + if(f->front==f->back)return true; return false; } bool ringbuffer_has(ringbuffer* f) { - bool res=true; + return !ringbuffer_empty(f); +} + +// + +bool ringbuffer_put(ringbuffer* f,uint8_t c) +{ + if(ringbuffer_full(f))return false; + + f->data[f->back]=c; + f->back--; + f->back+=f->size; + f->back%=f->size; - if(f->front==f->back) - res=false; - return res; + return true; } uint8_t ringbuffer_get(ringbuffer* f) { - char c; - - if(f->front==f->back) - { - return 0; - } + if(ringbuffer_empty(f))return 0; // indistinguishable from value 0 :( // TODO - c=f->data[f->front]; + uint8_t c = f->data[f->front]; f->front--; f->front+=f->size; f->front%=f->size; + return c; } + +// TODO // + +uint32_t ringbuffer_write(ringbuffer* f, uint8_t *buf, uint32_t size) +{ + return 0; +} + +uint32_t ringbuffer_read(ringbuffer* f, uint8_t *buf, uint32_t size) +{ + return 0; +} |
