rculfhash.h   rculfhash.h 
skipping to change at line 179 skipping to change at line 179
* cds_lfht_destroy - destroy a hash table. * cds_lfht_destroy - destroy a hash table.
* @ht: the hash table to destroy. * @ht: the hash table to destroy.
* @attr: (output) resize worker thread attributes, as received by cds_lfht _new. * @attr: (output) resize worker thread attributes, as received by cds_lfht _new.
* The caller will typically want to free this pointer if dynamicall y * The caller will typically want to free this pointer if dynamicall y
* allocated. The attr point can be NULL if the caller does not * allocated. The attr point can be NULL if the caller does not
* need to be informed of the value passed to cds_lfht_new(). * need to be informed of the value passed to cds_lfht_new().
* *
* Return 0 on success, negative error value on error. * Return 0 on success, negative error value on error.
* Threads calling this API need to be registered RCU read-side threads. * Threads calling this API need to be registered RCU read-side threads.
* cds_lfht_destroy should *not* be called from a RCU read-side critical * cds_lfht_destroy should *not* be called from a RCU read-side critical
* section. * section. It should *not* be called from call_rcu thread context
* neither.
* In userspace RCU 0.7.x, for QSBR RCU flavor, cds_lfht_destroy() has a
* side-effect: it puts the caller thread in "online" state. This will
* be fixed in userspace RCU 0.8.x.
*/ */
int cds_lfht_destroy(struct cds_lfht *ht, pthread_attr_t **attr); int cds_lfht_destroy(struct cds_lfht *ht, pthread_attr_t **attr);
/* /*
* cds_lfht_count_nodes - count the number of nodes in the hash table. * cds_lfht_count_nodes - count the number of nodes in the hash table.
* @ht: the hash table. * @ht: the hash table.
* @split_count_before: sample the node count split-counter before traversa l. * @split_count_before: sample the node count split-counter before traversa l.
* @count: traverse the hash table, count the number of nodes observed. * @count: traverse the hash table, count the number of nodes observed.
* @split_count_after: sample the node count split-counter after traversal. * @split_count_after: sample the node count split-counter after traversal.
* *
skipping to change at line 429 skipping to change at line 433
*/ */
int cds_lfht_is_node_deleted(struct cds_lfht_node *node); int cds_lfht_is_node_deleted(struct cds_lfht_node *node);
/* /*
* cds_lfht_resize - Force a hash table resize * cds_lfht_resize - Force a hash table resize
* @ht: the hash table. * @ht: the hash table.
* @new_size: update to this hash table size. * @new_size: update to this hash table size.
* *
* Threads calling this API need to be registered RCU read-side threads. * Threads calling this API need to be registered RCU read-side threads.
* This function does not (necessarily) issue memory barriers. * This function does not (necessarily) issue memory barriers.
* cds_lfht_resize should *not* be called from a RCU read-side critical
* section.
* In userspace RCU 0.7.x, for QSBR RCU flavor, cds_lfht_resize() has a
* side-effect: it puts the caller thread in "online" state. This will
* be fixed in userspace RCU 0.8.x.
*/ */
void cds_lfht_resize(struct cds_lfht *ht, unsigned long new_size); void cds_lfht_resize(struct cds_lfht *ht, unsigned long new_size);
/* /*
* Note: it is safe to perform element removal (del), replacement, or * Note: it is safe to perform element removal (del), replacement, or
* any hash table update operation during any of the following hash * any hash table update operation during any of the following hash
* table traversals. * table traversals.
* These functions act as rcu_dereference() to read the node pointers. * These functions act as rcu_dereference() to read the node pointers.
*/ */
#define cds_lfht_for_each(ht, iter, node) \ #define cds_lfht_for_each(ht, iter, node) \
 End of changes. 2 change blocks. 
1 lines changed or deleted 10 lines changed or added


 system.h   system.h 
skipping to change at line 50 skipping to change at line 50
/* /*
* Identify a shared store. A cmm_smp_wmc() or cmm_smp_mc() should * Identify a shared store. A cmm_smp_wmc() or cmm_smp_mc() should
* follow the store. * follow the store.
*/ */
#define _CMM_STORE_SHARED(x, v) ({ CMM_ACCESS_ONCE(x) = (v); }) #define _CMM_STORE_SHARED(x, v) ({ CMM_ACCESS_ONCE(x) = (v); })
/* /*
* Store v into x, where x is located in shared memory. Performs the * Store v into x, where x is located in shared memory. Performs the
* required cache flush after writing. Returns v. * required cache flush after writing. Returns v.
*/ */
#define CMM_STORE_SHARED(x, v) \ #define CMM_STORE_SHARED(x, v) \
({ \ ({ \
__typeof__(x) _v = _CMM_STORE_SHARED(x, v); \ __typeof__(x) _v = _CMM_STORE_SHARED(x, v); \
cmm_smp_wmc(); \ cmm_smp_wmc(); \
_v; \ _v = _v; /* Work around clang "unused result" */ \
}) })
#endif /* _URCU_SYSTEM_H */ #endif /* _URCU_SYSTEM_H */
 End of changes. 1 change blocks. 
5 lines changed or deleted 5 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/