summaryrefslogtreecommitdiffstats
path: root/libglusterfs/src/rot-buffs.h
diff options
context:
space:
mode:
Diffstat (limited to 'libglusterfs/src/rot-buffs.h')
-rw-r--r--libglusterfs/src/rot-buffs.h122
1 files changed, 63 insertions, 59 deletions
diff --git a/libglusterfs/src/rot-buffs.h b/libglusterfs/src/rot-buffs.h
index 8ee5271533e..1e91e83ecf0 100644
--- a/libglusterfs/src/rot-buffs.h
+++ b/libglusterfs/src/rot-buffs.h
@@ -16,106 +16,110 @@
#include "common-utils.h"
typedef struct rbuf_iovec {
- struct iovec iov;
+ struct iovec iov;
- struct list_head list;
+ struct list_head list;
} rbuf_iovec_t;
-#define RBUF_IOVEC_SIZE (sizeof (rbuf_iovec_t))
+#define RBUF_IOVEC_SIZE (sizeof(rbuf_iovec_t))
typedef struct rbuf_list {
- gf_lock_t c_lock;
+ gf_lock_t c_lock;
- pthread_mutex_t b_lock; /* protects this structure */
- pthread_cond_t b_cond; /* signal for writer completion */
+ pthread_mutex_t b_lock; /* protects this structure */
+ pthread_cond_t b_cond; /* signal for writer completion */
- gf_boolean_t awaiting;
+ gf_boolean_t awaiting;
- unsigned long long pending; /* pending writers */
- unsigned long long completed; /* completed writers */
+ unsigned long long pending; /* pending writers */
+ unsigned long long completed; /* completed writers */
- rbuf_iovec_t *rvec; /* currently used IO vector */
+ rbuf_iovec_t *rvec; /* currently used IO vector */
- struct list_head veclist; /* list of attached rbuf_iov */
+ struct list_head veclist; /* list of attached rbuf_iov */
- unsigned long long used; /* consumable entries
- attached in ->veclist */
- unsigned long long total; /* total entries in ->veclist (used
- during deallocation) */
+ unsigned long long used; /* consumable entries
+ attached in ->veclist */
+ unsigned long long total; /* total entries in ->veclist (used
+ during deallocation) */
- unsigned long seq[2]; /* if interested, this whould store
- the start sequence number and the
- range */
+ unsigned long seq[2]; /* if interested, this whould store
+ the start sequence number and the
+ range */
- struct list_head list; /* attachment to rbuf_t */
+ struct list_head list; /* attachment to rbuf_t */
} rbuf_list_t;
struct rlist_iter {
- struct list_head veclist;
+ struct list_head veclist;
- unsigned long long iter;
+ unsigned long long iter;
};
-#define RLIST_ENTRY_COUNT(rlist) rlist->used
+#define RLIST_ENTRY_COUNT(rlist) rlist->used
-#define rlist_iter_init(riter, rlist) \
- do { \
- (riter)->iter = rlist->used; \
- (riter)->veclist = rlist->veclist; \
- } while (0)
+#define rlist_iter_init(riter, rlist) \
+ do { \
+ (riter)->iter = rlist->used; \
+ (riter)->veclist = rlist->veclist; \
+ } while (0)
-#define rvec_for_each_entry(pos, riter) \
- for (pos = list_entry \
- ((riter)->veclist.next, typeof(*pos), list); \
- (riter)->iter > 0; \
- pos = list_entry \
- (pos->list.next, typeof(*pos), list), \
- --((riter)->iter))
+#define rvec_for_each_entry(pos, riter) \
+ for (pos = list_entry((riter)->veclist.next, typeof(*pos), list); \
+ (riter)->iter > 0; \
+ pos = list_entry(pos->list.next, typeof(*pos), list), \
+ --((riter)->iter))
/**
* Sequence number assignment routine is called during buffer
* switch under rbuff ->lock.
*/
-typedef void (sequence_fn) (rbuf_list_t *, void *);
+typedef void(sequence_fn)(rbuf_list_t *, void *);
-#define RLIST_STORE_SEQ(rlist, start, range) \
- do { \
- rlist->seq[0] = start; \
- rlist->seq[1] = range; \
- } while (0)
+#define RLIST_STORE_SEQ(rlist, start, range) \
+ do { \
+ rlist->seq[0] = start; \
+ rlist->seq[1] = range; \
+ } while (0)
-#define RLIST_GET_SEQ(rlist, start, range) \
- do { \
- start = rlist->seq[0]; \
- range = rlist->seq[1]; \
- } while (0)
+#define RLIST_GET_SEQ(rlist, start, range) \
+ do { \
+ start = rlist->seq[0]; \
+ range = rlist->seq[1]; \
+ } while (0)
typedef struct rbuf {
- gf_lock_t lock; /* protects "current" rlist */
+ gf_lock_t lock; /* protects "current" rlist */
- rbuf_list_t *current; /* cached pointer to first free rlist */
+ rbuf_list_t *current; /* cached pointer to first free rlist */
- struct list_head freelist;
+ struct list_head freelist;
} rbuf_t;
typedef enum {
- RBUF_CONSUMABLE = 1,
- RBUF_BUSY,
- RBUF_EMPTY,
- RBUF_WOULD_STARVE,
+ RBUF_CONSUMABLE = 1,
+ RBUF_BUSY,
+ RBUF_EMPTY,
+ RBUF_WOULD_STARVE,
} rlist_retval_t;
/* Initialization/Destruction */
-rbuf_t *rbuf_init (int);
-void rbuf_dtor (rbuf_t *);
+rbuf_t *
+rbuf_init(int);
+void
+rbuf_dtor(rbuf_t *);
/* Producer API */
-char *rbuf_reserve_write_area (rbuf_t *, size_t, void **);
-int rbuf_write_complete (void *);
+char *
+rbuf_reserve_write_area(rbuf_t *, size_t, void **);
+int
+rbuf_write_complete(void *);
/* Consumer API */
-int rbuf_get_buffer (rbuf_t *, void **, sequence_fn *, void *);
-int rbuf_wait_for_completion (rbuf_t *, void *,
- void (*)(rbuf_list_t *, void *), void *);
+int
+rbuf_get_buffer(rbuf_t *, void **, sequence_fn *, void *);
+int
+rbuf_wait_for_completion(rbuf_t *, void *, void (*)(rbuf_list_t *, void *),
+ void *);
#endif