^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) // SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #include <linux/mm_types.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #include <linux/tracepoint.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #define CREATE_TRACE_POINTS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #include <trace/events/page_ref.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) void __page_ref_set(struct page *page, int v)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) trace_page_ref_set(page, v);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) EXPORT_SYMBOL(__page_ref_set);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) EXPORT_TRACEPOINT_SYMBOL(page_ref_set);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) void __page_ref_mod(struct page *page, int v)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) trace_page_ref_mod(page, v);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) EXPORT_SYMBOL(__page_ref_mod);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) EXPORT_TRACEPOINT_SYMBOL(page_ref_mod);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) void __page_ref_mod_and_test(struct page *page, int v, int ret)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) trace_page_ref_mod_and_test(page, v, ret);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) EXPORT_SYMBOL(__page_ref_mod_and_test);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) EXPORT_TRACEPOINT_SYMBOL(page_ref_mod_and_test);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) void __page_ref_mod_and_return(struct page *page, int v, int ret)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) trace_page_ref_mod_and_return(page, v, ret);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) EXPORT_SYMBOL(__page_ref_mod_and_return);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) EXPORT_TRACEPOINT_SYMBOL(page_ref_mod_and_return);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) void __page_ref_mod_unless(struct page *page, int v, int u)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) trace_page_ref_mod_unless(page, v, u);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) EXPORT_SYMBOL(__page_ref_mod_unless);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) EXPORT_TRACEPOINT_SYMBOL(page_ref_mod_unless);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) void __page_ref_freeze(struct page *page, int v, int ret)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) trace_page_ref_freeze(page, v, ret);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) EXPORT_SYMBOL(__page_ref_freeze);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) EXPORT_TRACEPOINT_SYMBOL(page_ref_freeze);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) void __page_ref_unfreeze(struct page *page, int v)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) trace_page_ref_unfreeze(page, v);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) EXPORT_SYMBOL(__page_ref_unfreeze);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) EXPORT_TRACEPOINT_SYMBOL(page_ref_unfreeze);