Fix: rcuja merge fixes
[userspace-rcu.git] / urcu / rcuja-range.h
index e1a54a279accff3887eec0a8e6ed97d3bf3d36b1..63035a1660888aa5f9b20548046571dcb54ad193 100644 (file)
  */
 
 #include <urcu/rcuja.h>
-#include <pthread.h>
 #include <stdint.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-enum cds_ja_range_type {
-       CDS_JA_RANGE_ALLOCATED,
-       CDS_JA_RANGE_FREE,
-       CDS_JA_RANGE_REMOVED,
-};
-
-/*
- * Range goes from start (inclusive) to end (inclusive).
- * Range start is used as node key in the Judy array.
- */
-struct cds_ja_range {
-       uint64_t start, end;
-       struct cds_ja_node ja_node;
-       pthread_mutex_t lock;
-       enum cds_ja_range_type type;
-       struct rcu_head head;
-};
-
 struct cds_ja_range *cds_ja_range_lookup(struct cds_ja *ja, uint64_t key);
 
 struct cds_ja_range *cds_ja_range_lock(struct cds_ja_range *range);
 
 void cds_ja_range_unlock(struct cds_ja_range *range);
 
-struct cds_ja_range *cds_ja_range_add(struct cds_ja *ja,
+int cds_ja_range_add(struct cds_ja *ja,
                uint64_t start,         /* inclusive */
-               uint64_t end);          /* inclusive */
+               uint64_t end,           /* inclusive */
+               void *priv);
 
 int cds_ja_range_del(struct cds_ja *ja, struct cds_ja_range *range);
 
-struct cds_ja *_cds_ja_range_new(const struct rcu_flavor_struct *flavor);
+void cds_ja_range_get_values(const struct cds_ja_range *range,
+       uint64_t *start, uint64_t *end, void **priv);
+
+struct cds_ja *_cds_ja_range_new(unsigned int key_bits,
+               const struct rcu_flavor_struct *flavor);
 
 static inline
-struct cds_ja *cds_ja_range_new(void)
+struct cds_ja *cds_ja_range_new(unsigned int key_bits)
 {
-       return _cds_ja_range_new(&rcu_flavor);
+       return _cds_ja_range_new(key_bits, &rcu_flavor);
 }
 
-int cds_ja_range_destroy(struct cds_ja *ja);
+int cds_ja_range_destroy(struct cds_ja *ja,
+               void (*free_priv)(void *ptr));
+
+int cds_ja_range_validate(struct cds_ja *ja);
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* _URCU_RCUJA_H */
+#endif /* _URCU_RCUJA_RANGE_H */
This page took 0.023418 seconds and 4 git commands to generate.