Lines Matching refs:name

17  *   DECLARE_STATIC_CALL(name, func);
18 * DEFINE_STATIC_CALL(name, func);
19 * DEFINE_STATIC_CALL_NULL(name, typename);
20 * DEFINE_STATIC_CALL_RET0(name, typename);
24 * static_call(name)(args...);
25 * static_call_cond(name)(args...);
26 * static_call_update(name, func);
27 * static_call_query(name);
55 * Each static_call() site calls into a trampoline associated with the name.
57 * name will modify the trampoline's branch destination.
97 * static_call_cond(name)(arg1);
104 * func = static_call_query(name);
146 #define STATIC_CALL_TRAMP_ADDR(name) &STATIC_CALL_TRAMP(name)
149 #define STATIC_CALL_TRAMP_ADDR(name) NULL
152 #define static_call_update(name, func) \
154 typeof(&STATIC_CALL_TRAMP(name)) __F = (func); \
155 __static_call_update(&STATIC_CALL_KEY(name), \
156 STATIC_CALL_TRAMP_ADDR(name), __F); \
159 #define static_call_query(name) (READ_ONCE(STATIC_CALL_KEY(name).func))
185 #define DEFINE_STATIC_CALL(name, _func) \
186 DECLARE_STATIC_CALL(name, _func); \
187 struct static_call_key STATIC_CALL_KEY(name) = { \
191 ARCH_DEFINE_STATIC_CALL_TRAMP(name, _func)
193 #define DEFINE_STATIC_CALL_NULL(name, _func) \
194 DECLARE_STATIC_CALL(name, _func); \
195 struct static_call_key STATIC_CALL_KEY(name) = { \
199 ARCH_DEFINE_STATIC_CALL_NULL_TRAMP(name)
201 #define DEFINE_STATIC_CALL_RET0(name, _func) \
202 DECLARE_STATIC_CALL(name, _func); \
203 struct static_call_key STATIC_CALL_KEY(name) = { \
207 ARCH_DEFINE_STATIC_CALL_RET0_TRAMP(name)
209 #define static_call_cond(name) (void)__static_call(name)
211 #define EXPORT_STATIC_CALL(name) \
212 EXPORT_SYMBOL(STATIC_CALL_KEY(name)); \
213 EXPORT_SYMBOL(STATIC_CALL_TRAMP(name))
214 #define EXPORT_STATIC_CALL_GPL(name) \
215 EXPORT_SYMBOL_GPL(STATIC_CALL_KEY(name)); \
216 EXPORT_SYMBOL_GPL(STATIC_CALL_TRAMP(name))
219 #define EXPORT_STATIC_CALL_TRAMP(name) \
220 EXPORT_SYMBOL(STATIC_CALL_TRAMP(name)); \
221 ARCH_ADD_TRAMP_KEY(name)
222 #define EXPORT_STATIC_CALL_TRAMP_GPL(name) \
223 EXPORT_SYMBOL_GPL(STATIC_CALL_TRAMP(name)); \
224 ARCH_ADD_TRAMP_KEY(name)
230 #define DEFINE_STATIC_CALL(name, _func) \
231 DECLARE_STATIC_CALL(name, _func); \
232 struct static_call_key STATIC_CALL_KEY(name) = { \
235 ARCH_DEFINE_STATIC_CALL_TRAMP(name, _func)
237 #define DEFINE_STATIC_CALL_NULL(name, _func) \
238 DECLARE_STATIC_CALL(name, _func); \
239 struct static_call_key STATIC_CALL_KEY(name) = { \
242 ARCH_DEFINE_STATIC_CALL_NULL_TRAMP(name)
244 #define DEFINE_STATIC_CALL_RET0(name, _func) \
245 DECLARE_STATIC_CALL(name, _func); \
246 struct static_call_key STATIC_CALL_KEY(name) = { \
249 ARCH_DEFINE_STATIC_CALL_RET0_TRAMP(name)
251 #define static_call_cond(name) (void)__static_call(name)
269 #define EXPORT_STATIC_CALL(name) \
270 EXPORT_SYMBOL(STATIC_CALL_KEY(name)); \
271 EXPORT_SYMBOL(STATIC_CALL_TRAMP(name))
272 #define EXPORT_STATIC_CALL_GPL(name) \
273 EXPORT_SYMBOL_GPL(STATIC_CALL_KEY(name)); \
274 EXPORT_SYMBOL_GPL(STATIC_CALL_TRAMP(name))
277 #define EXPORT_STATIC_CALL_TRAMP(name) \
278 EXPORT_SYMBOL(STATIC_CALL_TRAMP(name))
279 #define EXPORT_STATIC_CALL_TRAMP_GPL(name) \
280 EXPORT_SYMBOL_GPL(STATIC_CALL_TRAMP(name))
291 #define __DEFINE_STATIC_CALL(name, _func, _func_init) \
292 DECLARE_STATIC_CALL(name, _func); \
293 struct static_call_key STATIC_CALL_KEY(name) = { \
297 #define DEFINE_STATIC_CALL(name, _func) \
298 __DEFINE_STATIC_CALL(name, _func, _func)
300 #define DEFINE_STATIC_CALL_NULL(name, _func) \
301 __DEFINE_STATIC_CALL(name, _func, NULL)
303 #define DEFINE_STATIC_CALL_RET0(name, _func) \
304 __DEFINE_STATIC_CALL(name, _func, __static_call_return0)
320 #define __static_call_cond(name) \
322 void *func = READ_ONCE(STATIC_CALL_KEY(name).func); \
325 (typeof(STATIC_CALL_TRAMP(name))*)func; \
328 #define static_call_cond(name) (void)__static_call_cond(name)
341 #define EXPORT_STATIC_CALL(name) EXPORT_SYMBOL(STATIC_CALL_KEY(name))
342 #define EXPORT_STATIC_CALL_GPL(name) EXPORT_SYMBOL_GPL(STATIC_CALL_KEY(name))