1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Automatically generated C representation of nrp automaton 4 * For further information about this format, see kernel documentation: 5 * Documentation/trace/rv/deterministic_automata.rst 6 */ 7 8 #define MONITOR_NAME nrp 9 10 enum states_nrp { 11 preempt_irq_nrp, 12 any_thread_running_nrp, 13 nested_preempt_nrp, 14 rescheduling_nrp, 15 state_max_nrp, 16 }; 17 18 #define INVALID_STATE state_max_nrp 19 20 enum events_nrp { 21 irq_entry_nrp, 22 sched_need_resched_nrp, 23 schedule_entry_nrp, 24 schedule_entry_preempt_nrp, 25 event_max_nrp, 26 }; 27 28 struct automaton_nrp { 29 char *state_names[state_max_nrp]; 30 char *event_names[event_max_nrp]; 31 unsigned char function[state_max_nrp][event_max_nrp]; 32 unsigned char initial_state; 33 bool final_states[state_max_nrp]; 34 }; 35 36 static const struct automaton_nrp automaton_nrp = { 37 .state_names = { 38 "preempt_irq", 39 "any_thread_running", 40 "nested_preempt", 41 "rescheduling", 42 }, 43 .event_names = { 44 "irq_entry", 45 "sched_need_resched", 46 "schedule_entry", 47 "schedule_entry_preempt", 48 }, 49 .function = { 50 { 51 preempt_irq_nrp, 52 preempt_irq_nrp, 53 nested_preempt_nrp, 54 nested_preempt_nrp, 55 }, 56 { 57 any_thread_running_nrp, 58 rescheduling_nrp, 59 any_thread_running_nrp, 60 INVALID_STATE, 61 }, 62 { 63 nested_preempt_nrp, 64 preempt_irq_nrp, 65 any_thread_running_nrp, 66 any_thread_running_nrp, 67 }, 68 { 69 preempt_irq_nrp, 70 rescheduling_nrp, 71 any_thread_running_nrp, 72 any_thread_running_nrp, 73 }, 74 }, 75 .initial_state = preempt_irq_nrp, 76 .final_states = { 0, 1, 0, 0 }, 77 }; 78