X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=urcu%2Frcuja-range.h;h=a1ef3af0a3fbcf2b5c6354a7eb755aca44e550dd;hb=fe8ad3dab6b4c668596d485cb4749ef752937cde;hp=52b7c8ac6c2e58e54c410e892cd6070f1bdbb6e1;hpb=b2ca6f3b902022aac313e83ec8a2de418f6309bd;p=userspace-rcu.git diff --git a/urcu/rcuja-range.h b/urcu/rcuja-range.h index 52b7c8a..a1ef3af 100644 --- a/urcu/rcuja-range.h +++ b/urcu/rcuja-range.h @@ -26,31 +26,12 @@ */ #include -#include #include #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); @@ -59,7 +40,8 @@ void cds_ja_range_unlock(struct cds_ja_range *range); struct cds_ja_range *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); @@ -71,7 +53,8 @@ struct cds_ja *cds_ja_range_new(void) return _cds_ja_range_new(&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)); #ifdef __cplusplus }