Lines Matching refs:key

31 /* mutex to protect key modules/sites */
51 return (long)site->key + (long)&site->key;
59 /* These assume the key is word-aligned. */
72 site->key = (__static_call_key(site) | STATIC_CALL_SITE_INIT) -
73 (long)&site->key;
100 a->key = b->key - delta;
103 b->key = tmp.key + delta;
113 static inline bool static_call_key_has_mods(struct static_call_key *key)
115 return !(key->type & 1);
118 static inline struct static_call_mod *static_call_key_next(struct static_call_key *key)
120 if (!static_call_key_has_mods(key))
123 return key->mods;
126 static inline struct static_call_site *static_call_key_sites(struct static_call_key *key)
128 if (static_call_key_has_mods(key))
131 return (struct static_call_site *)(key->type & ~1);
134 void __static_call_update(struct static_call_key *key, void *tramp, void *func)
142 if (key->func == func)
145 key->func = func;
157 .next = static_call_key_next(key),
159 .sites = static_call_key_sites(key),
168 * This can happen if the static call key is defined in
188 site < stop && static_call_key(site) == key; site++) {
225 struct static_call_key *key, *prev_key = NULL;
240 key = static_call_key(site);
241 if (key != prev_key) {
242 prev_key = key;
246 * the sites pointer in the key itself. Also see
253 key->sites = site;
254 key->type |= 1;
263 * When the key has a direct sites pointer, extract
267 if (static_call_key_sites(key)) {
270 site_mod->sites = static_call_key_sites(key);
272 key->mods = site_mod;
281 site_mod->next = static_call_key_next(key);
282 key->mods = site_mod;
286 arch_static_call_transform(site_addr, NULL, key->func,
358 return (long)tramp_key->key + (long)&tramp_key->key;
373 unsigned long key;
376 * Is the key is exported, 'addr' points to the key, which
380 * Otherwise, the key isn't exported, and 'addr' points to the
381 * trampoline so we need to lookup the key.
389 key = tramp_key_lookup(addr);
390 if (!key) {
396 key |= s_key & STATIC_CALL_SITE_FLAGS;
397 site->key = key - (long)&site->key;
408 struct static_call_key *key, *prev_key = NULL;
413 key = static_call_key(site);
414 if (key == prev_key)
417 prev_key = key;
419 for (prev = &key->mods, site_mod = key->mods;