rework parsing of interupt-map in interrupt node.
[lunaix-os.git] / lunaix-os / kernel / ds / fifo.c
index 3741ac9d07fe8ee5418917d9f107a4466b17df68..5ecddad57b00a6c70bd78dd3629b9cb4e505e957 100644 (file)
@@ -78,6 +78,16 @@ fifo_readone_async(struct fifo_buf* fbuf, u8_t* data)
     return 1;
 }
 
+size_t
+fifo_readone(struct fifo_buf* fbuf, u8_t* data)
+{
+    mutex_lock(&fbuf->lock);
+    size_t retval = fifo_readone_async(fbuf, data);
+    mutex_unlock(&fbuf->lock);
+
+    return retval;
+}
+
 void
 fifo_set_rdptr(struct fifo_buf* fbuf, size_t rdptr)
 {
@@ -105,6 +115,10 @@ fifo_write(struct fifo_buf* fbuf, void* data, size_t count)
 {
     size_t wr_count = 0, wr_pos = fbuf->wr_pos;
 
+    if (!count) {
+        return 0;
+    }
+
     mutex_lock(&fbuf->lock);
 
     if (!fbuf->free_len) {