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 enum states_nrp { 9 preempt_irq_nrp = 0, 10 any_thread_running_nrp, 11 nested_preempt_nrp, 12 rescheduling_nrp, 13 state_max_nrp 14 }; 15 16 #define INVALID_STATE state_max_nrp 17 18 enum events_nrp { 19 irq_entry_nrp = 0, 20 sched_need_resched_nrp, 21 schedule_entry_nrp, 22 schedule_entry_preempt_nrp, 23 event_max_nrp 24 }; 25 26 struct automaton_nrp { 27 char *state_names[state_max_nrp]; 28 char *event_names[event_max_nrp]; 29 unsigned char function[state_max_nrp][event_max_nrp]; 30 unsigned char initial_state; 31 bool final_states[state_max_nrp]; 32 }; 33 34 static const struct automaton_nrp automaton_nrp = { 35 .state_names = { 36 "preempt_irq", 37 "any_thread_running", 38 "nested_preempt", 39 "rescheduling" 40 }, 41 .event_names = { 42 "irq_entry", 43 "sched_need_resched", 44 "schedule_entry", 45 "schedule_entry_preempt" 46 }, 47 .function = { 48 { 49 preempt_irq_nrp, 50 preempt_irq_nrp, 51 nested_preempt_nrp, 52 nested_preempt_nrp 53 }, 54 { 55 any_thread_running_nrp, 56 rescheduling_nrp, 57 any_thread_running_nrp, 58 INVALID_STATE 59 }, 60 { 61 nested_preempt_nrp, 62 preempt_irq_nrp, 63 any_thread_running_nrp, 64 any_thread_running_nrp 65 }, 66 { 67 preempt_irq_nrp, 68 rescheduling_nrp, 69 any_thread_running_nrp, 70 any_thread_running_nrp 71 }, 72 }, 73 .initial_state = preempt_irq_nrp, 74 .final_states = { 0, 1, 0, 0 }, 75 }; 76