]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/fifo.h
convert main() from C to Rust
[bcachefs-tools-debian] / libbcachefs / fifo.h
index 085d828e6ed154e0cb7501a82edb201859655fdc..66b945be10c2309a9e758b228b146047b20674e2 100644 (file)
@@ -1,3 +1,4 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #ifndef _BCACHEFS_FIFO_H
 #define _BCACHEFS_FIFO_H
 
@@ -12,7 +13,9 @@ struct {                                                              \
 #define DECLARE_FIFO(type, name)       FIFO(type) name
 
 #define fifo_buf_size(fifo)                                            \
-       (roundup_pow_of_two((fifo)->size) * sizeof((fifo)->data[0]))
+       ((fifo)->size                                                   \
+        ? roundup_pow_of_two((fifo)->size) * sizeof((fifo)->data[0])   \
+        : 0)
 
 #define init_fifo(fifo, _size, _gfp)                                   \
 ({                                                                     \
@@ -62,7 +65,7 @@ do {                                                                  \
           (((p) - (fifo)->data)))
 
 #define fifo_entry_idx(fifo, p)        (((p) - &fifo_peek_front(fifo)) & (fifo)->mask)
-#define fifo_idx_entry(fifo, i)        (fifo)->data[((fifo)->front + (i)) & (fifo)->mask]
+#define fifo_idx_entry(fifo, i)        ((fifo)->data[((fifo)->front + (i)) & (fifo)->mask])
 
 #define fifo_push_back_ref(f)                                          \
        (fifo_full((f)) ? NULL : &(f)->data[(f)->back++ & (f)->mask])
@@ -98,7 +101,7 @@ do {                                                                 \
 ({                                                                     \
        bool _r = !fifo_empty((fifo));                                  \
        if (_r)                                                         \
-               (i) = (fifo)->data[--(fifo)->back & (fifo)->mask]       \
+               (i) = (fifo)->data[--(fifo)->back & (fifo)->mask];      \
        _r;                                                             \
 })