+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 end;
+ struct cds_ja_node ja_node;
+ pthread_mutex_t lock;
+ void *priv;
+ enum cds_ja_range_type type;
+
+ /* not required on lookup fast-path */
+ uint64_t start;
+ struct rcu_head head;
+};
+