+// SPDX-FileCopyrightText: 2011 Lai Jiangshan <laijs@cn.fujitsu.com>
+//
+// SPDX-License-Identifier: LGPL-2.1-or-later
+
#ifndef _URCU_FLAVOR_H
#define _URCU_FLAVOR_H
/*
- * urcu-flavor.h
- *
* Userspace RCU header - rcu flavor declarations
- *
- * Copyright (c) 2011 Lai Jiangshan <laijs@cn.fujitsu.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <urcu/urcu-poll.h>
+
#ifdef __cplusplus
extern "C" {
#endif
+struct rcu_head;
+
struct urcu_atfork {
void (*before_fork)(void *priv);
void (*after_fork_parent)(void *priv);
void (*register_rculfhash_atfork)(struct urcu_atfork *atfork);
void (*unregister_rculfhash_atfork)(struct urcu_atfork *atfork);
+
+ struct urcu_gp_poll_state (*update_start_poll_synchronize_rcu)(void);
+ bool (*update_poll_state_synchronize_rcu)(struct urcu_gp_poll_state state);
};
#define DEFINE_RCU_FLAVOR(x) \
.barrier = rcu_barrier, \
.register_rculfhash_atfork = urcu_register_rculfhash_atfork, \
.unregister_rculfhash_atfork = urcu_unregister_rculfhash_atfork,\
+ .update_start_poll_synchronize_rcu = start_poll_synchronize_rcu,\
+ .update_poll_state_synchronize_rcu = poll_state_synchronize_rcu,\
}
-#define DEFINE_RCU_FLAVOR_ALIAS(x, y) _DEFINE_RCU_FLAVOR_ALIAS(x, y)
-#define _DEFINE_RCU_FLAVOR_ALIAS(x, y) \
-__attribute__((alias(#x))) \
-extern const struct rcu_flavor_struct y;
-
extern const struct rcu_flavor_struct rcu_flavor;
#ifdef __cplusplus