X-Git-Url: http://git.liburcu.org/?p=userspace-rcu.git;a=blobdiff_plain;f=urcu%2Ftls-compat.h;h=192a53609fb5f6bc445f98fdd6bc26918126687e;hp=9686ecaab139343547151e0f95697324c0442a55;hb=c85e62f37e4db48038e4494c202f5a2c923262f2;hpb=9f59b2209b3a4bde416bcfa55b10c36b16fa91ae diff --git a/urcu/tls-compat.h b/urcu/tls-compat.h index 9686eca..192a536 100644 --- a/urcu/tls-compat.h +++ b/urcu/tls-compat.h @@ -34,6 +34,21 @@ extern "C" { #ifdef CONFIG_RCU_TLS /* Based on ax_tls.m4 */ +/* + * Hint: How to define/declare TLS variables of compound types + * such as array or function pointers? + * + * Answer: Use typedef to assign a type_name to the compound type. + * Example: Define a TLS variable which is an int array with len=4: + * + * typedef int my_int_array_type[4]; + * DEFINE_URCU_TLS(my_int_array_type, var_name); + * + * Another exmaple: + * typedef void (*call_rcu_flavor)(struct rcu_head *, XXXX); + * DECLARE_URCU_TLS(call_rcu_flavor, p_call_rcu); + */ + # define DECLARE_URCU_TLS(type, name) \ CONFIG_RCU_TLS type name