9c92ab6191415 lib/test_static_key_base.c (Thomas Gleixner 2019-05-29 07:17:56 -0700 1) // SPDX-License-Identifier: GPL-2.0-only
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 2) /*
2bf9e0ab08c64 lib/test_static_key_base.c (Ingo Molnar 2015-08-03 11:42:57 +0200 3) * Kernel module for testing static keys.
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 4) *
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 5) * Copyright 2015 Akamai Technologies Inc. All Rights Reserved
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 6) *
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 7) * Authors:
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 8) * Jason Baron <jbaron@akamai.com>
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 9) */
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 10)
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 11) #include <linux/module.h>
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 12) #include <linux/jump_label.h>
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 13)
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 14) /* old keys */
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 15) struct static_key base_old_true_key = STATIC_KEY_INIT_TRUE;
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 16) EXPORT_SYMBOL_GPL(base_old_true_key);
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 17) struct static_key base_inv_old_true_key = STATIC_KEY_INIT_TRUE;
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 18) EXPORT_SYMBOL_GPL(base_inv_old_true_key);
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 19) struct static_key base_old_false_key = STATIC_KEY_INIT_FALSE;
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 20) EXPORT_SYMBOL_GPL(base_old_false_key);
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 21) struct static_key base_inv_old_false_key = STATIC_KEY_INIT_FALSE;
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 22) EXPORT_SYMBOL_GPL(base_inv_old_false_key);
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 23)
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 24) /* new keys */
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 25) DEFINE_STATIC_KEY_TRUE(base_true_key);
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 26) EXPORT_SYMBOL_GPL(base_true_key);
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 27) DEFINE_STATIC_KEY_TRUE(base_inv_true_key);
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 28) EXPORT_SYMBOL_GPL(base_inv_true_key);
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 29) DEFINE_STATIC_KEY_FALSE(base_false_key);
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 30) EXPORT_SYMBOL_GPL(base_false_key);
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 31) DEFINE_STATIC_KEY_FALSE(base_inv_false_key);
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 32) EXPORT_SYMBOL_GPL(base_inv_false_key);
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 33)
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 34) static void invert_key(struct static_key *key)
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 35) {
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 36) if (static_key_enabled(key))
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 37) static_key_disable(key);
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 38) else
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 39) static_key_enable(key);
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 40) }
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 41)
2bf9e0ab08c64 lib/test_static_key_base.c (Ingo Molnar 2015-08-03 11:42:57 +0200 42) static int __init test_static_key_base_init(void)
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 43) {
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 44) invert_key(&base_inv_old_true_key);
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 45) invert_key(&base_inv_old_false_key);
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 46) invert_key(&base_inv_true_key.key);
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 47) invert_key(&base_inv_false_key.key);
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 48)
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 49) return 0;
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 50) }
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 51)
2bf9e0ab08c64 lib/test_static_key_base.c (Ingo Molnar 2015-08-03 11:42:57 +0200 52) static void __exit test_static_key_base_exit(void)
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 53) {
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 54) }
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 55)
2bf9e0ab08c64 lib/test_static_key_base.c (Ingo Molnar 2015-08-03 11:42:57 +0200 56) module_init(test_static_key_base_init);
2bf9e0ab08c64 lib/test_static_key_base.c (Ingo Molnar 2015-08-03 11:42:57 +0200 57) module_exit(test_static_key_base_exit);
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 58)
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 59) MODULE_AUTHOR("Jason Baron <jbaron@akamai.com>");
579e1acb15346 lib/test_jump_label_base.c (Jason Baron 2015-07-30 03:59:44 +0000 60) MODULE_LICENSE("GPL");