1 /* SPDX-License-Identifier: MIT */
3 * Copyright © 2018 Intel Corporation
9 #include <linux/preempt.h>
10 #include <linux/bottom_half.h>
11 #include <linux/irqflags.h>
13 static void __preempt_begin(void)
18 static void __preempt_end(void)
23 static void __softirq_begin(void)
28 static void __softirq_end(void)
33 static void __hardirq_begin(void)
38 static void __hardirq_end(void)
43 struct igt_atomic_section {
45 void (*critical_section_begin)(void);
46 void (*critical_section_end)(void);
49 static const struct igt_atomic_section igt_atomic_phases[] = {
50 { "preempt", __preempt_begin, __preempt_end },
51 { "softirq", __softirq_begin, __softirq_end },
52 { "hardirq", __hardirq_begin, __hardirq_end },
56 #endif /* IGT_ATOMIC_H */