Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 137da553dba62dfc64fb8f4ccb5be769acbf615e 41 lines 1.1 kB view raw
1#ifndef _LINUX_JUMP_LABEL_RATELIMIT_H 2#define _LINUX_JUMP_LABEL_RATELIMIT_H 3 4#include <linux/jump_label.h> 5#include <linux/workqueue.h> 6 7#if defined(CC_HAVE_ASM_GOTO) && defined(CONFIG_JUMP_LABEL) 8struct static_key_deferred { 9 struct static_key key; 10 unsigned long timeout; 11 struct delayed_work work; 12}; 13#endif 14 15#ifdef HAVE_JUMP_LABEL 16extern void static_key_slow_dec_deferred(struct static_key_deferred *key); 17extern void static_key_deferred_flush(struct static_key_deferred *key); 18extern void 19jump_label_rate_limit(struct static_key_deferred *key, unsigned long rl); 20 21#else /* !HAVE_JUMP_LABEL */ 22struct static_key_deferred { 23 struct static_key key; 24}; 25static inline void static_key_slow_dec_deferred(struct static_key_deferred *key) 26{ 27 STATIC_KEY_CHECK_USE(); 28 static_key_slow_dec(&key->key); 29} 30static inline void static_key_deferred_flush(struct static_key_deferred *key) 31{ 32 STATIC_KEY_CHECK_USE(); 33} 34static inline void 35jump_label_rate_limit(struct static_key_deferred *key, 36 unsigned long rl) 37{ 38 STATIC_KEY_CHECK_USE(); 39} 40#endif /* HAVE_JUMP_LABEL */ 41#endif /* _LINUX_JUMP_LABEL_RATELIMIT_H */