Map symbols to allow multiple RCU flavors to be used in one binary
[urcu.git] / urcu-bp.h
index cca664bc906c7fbbedd94dabeb7a1a7195610811..fdf885c71113d2f4add67ba4354d00bfd20fcfa7 100644 (file)
--- a/urcu-bp.h
+++ b/urcu-bp.h
@@ -46,6 +46,8 @@
 extern "C" {
 #endif
 
+#include "urcu-bp-map.h"
+
 /*
  * Important !
  *
@@ -69,8 +71,8 @@ extern "C" {
  *
  * Mark the beginning and end of a read-side critical section.
  */
-#define rcu_read_lock()                _rcu_read_lock()
-#define rcu_read_unlock()      _rcu_read_unlock()
+#define rcu_read_lock_bp()             _rcu_read_lock()
+#define rcu_read_unlock_bp()           _rcu_read_unlock()
 
 #else /* !_LGPL_SOURCE */
 
@@ -86,6 +88,16 @@ extern void rcu_read_unlock(void);
 
 extern void synchronize_rcu(void);
 
+/*
+ * rcu_bp_before_fork, rcu_bp_after_fork_parent and rcu_bp_after_fork_child
+ * should be called around fork() system calls when the child process is not
+ * expected to immediately perform an exec(). For pthread users, see
+ * pthread_atfork(3).
+ */
+extern void rcu_bp_before_fork(void);
+extern void rcu_bp_after_fork_parent(void);
+extern void rcu_bp_after_fork_child(void);
+
 /*
  * In the bulletproof version, the following functions are no-ops.
  */
@@ -105,4 +117,6 @@ static inline void rcu_init(void)
 }
 #endif
 
+#include "urcu-call-rcu.h"
+
 #endif /* _URCU_BP_H */
This page took 0.022909 seconds and 4 git commands to generate.