Lines Matching refs:site
33 static inline void *static_call_addr(struct static_call_site *site) in static_call_addr() argument
35 return (void *)((long)site->addr + (long)&site->addr); in static_call_addr()
38 static inline unsigned long __static_call_key(const struct static_call_site *site) in __static_call_key() argument
40 return (long)site->key + (long)&site->key; in __static_call_key()
43 static inline struct static_call_key *static_call_key(const struct static_call_site *site) in static_call_key() argument
45 return (void *)(__static_call_key(site) & ~STATIC_CALL_SITE_FLAGS); in static_call_key()
49 static inline bool static_call_is_init(struct static_call_site *site) in static_call_is_init() argument
51 return __static_call_key(site) & STATIC_CALL_SITE_INIT; in static_call_is_init()
54 static inline bool static_call_is_tail(struct static_call_site *site) in static_call_is_tail() argument
56 return __static_call_key(site) & STATIC_CALL_SITE_TAIL; in static_call_is_tail()
59 static inline void static_call_set_init(struct static_call_site *site) in static_call_set_init() argument
61 site->key = (__static_call_key(site) | STATIC_CALL_SITE_INIT) - in static_call_set_init()
62 (long)&site->key; in static_call_set_init()
125 struct static_call_site *site, *stop; in __static_call_update() local
176 for (site = site_mod->sites; in __static_call_update()
177 site < stop && static_call_key(site) == key; site++) { in __static_call_update()
178 void *site_addr = static_call_addr(site); in __static_call_update()
180 if (!init && static_call_is_init(site)) in __static_call_update()
192 WARN_ONCE(!static_call_is_init(site), in __static_call_update()
199 static_call_is_tail(site)); in __static_call_update()
213 struct static_call_site *site; in __static_call_init() local
222 for (site = start; site < stop; site++) { in __static_call_init()
223 void *site_addr = static_call_addr(site); in __static_call_init()
227 static_call_set_init(site); in __static_call_init()
229 key = static_call_key(site); in __static_call_init()
242 key->sites = site; in __static_call_init()
269 site_mod->sites = site; in __static_call_init()
276 static_call_is_tail(site)); in __static_call_init()
282 static int addr_conflict(struct static_call_site *site, void *start, void *end) in addr_conflict() argument
284 unsigned long addr = (unsigned long)static_call_addr(site); in addr_conflict()
357 struct static_call_site *site; in static_call_add_module() local
359 for (site = start; site != stop; site++) { in static_call_add_module()
360 unsigned long s_key = __static_call_key(site); in static_call_add_module()
381 static_call_addr(site)); in static_call_add_module()
386 site->key = key - (long)&site->key; in static_call_add_module()
399 struct static_call_site *site; in static_call_del_module() local
401 for (site = start; site < stop; site++) { in static_call_del_module()
402 key = static_call_key(site); in static_call_del_module()