X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=rcuja%2Frcuja-internal.h;h=1414b8f43ea46fa32822a1ab252789091e960462;hb=19ddcd04523e39c7c82f4ad5939f86f16f2d65aa;hp=eaef469b031f45387878ca63f9fbcac3db4f721c;hpb=f5531dd9dfe838812066f444a66dcb03fc5330b8;p=userspace-rcu.git diff --git a/rcuja/rcuja-internal.h b/rcuja/rcuja-internal.h index eaef469..1414b8f 100644 --- a/rcuja/rcuja-internal.h +++ b/rcuja/rcuja-internal.h @@ -113,6 +113,16 @@ struct cds_ja_inode_flag *ja_node_flag_pool_1d(struct cds_ja_inode *node, return (struct cds_ja_inode_flag *) (((unsigned long) node) | (bitsel << JA_TYPE_BITS) | type); } +static inline +struct cds_ja_inode_flag *ja_node_flag_pool_2d(struct cds_ja_inode *node, + unsigned long type, unsigned int bitsel[2]) +{ + assert(type < (1UL << JA_TYPE_BITS)); + assert(bitsel[0] < JA_BITS_PER_BYTE); + assert(bitsel[1] < JA_BITS_PER_BYTE); + return (struct cds_ja_inode_flag *) (((unsigned long) node) | (bitsel[0] << (JA_TYPE_BITS + JA_LOG2_BITS_PER_BYTE)) | (bitsel[1] << JA_TYPE_BITS) | type); +} + static inline unsigned long ja_node_pool_1d_bitsel(struct cds_ja_inode_flag *node) {