rcuja: implement 2d distribution
[userspace-rcu.git] / rcuja / rcuja-internal.h
index eaef469b031f45387878ca63f9fbcac3db4f721c..1414b8f43ea46fa32822a1ab252789091e960462 100644 (file)
@@ -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)
 {
This page took 0.022091 seconds and 4 git commands to generate.