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