| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* |
| * Automatically generated C representation of nrp automaton |
| * For further information about this format, see kernel documentation: |
| * Documentation/trace/rv/deterministic_automata.rst |
| */ |
| |
| enum states_nrp { |
| preempt_irq_nrp = 0, |
| any_thread_running_nrp, |
| nested_preempt_nrp, |
| rescheduling_nrp, |
| state_max_nrp |
| }; |
| |
| #define INVALID_STATE state_max_nrp |
| |
| enum events_nrp { |
| irq_entry_nrp = 0, |
| sched_need_resched_nrp, |
| schedule_entry_nrp, |
| schedule_entry_preempt_nrp, |
| event_max_nrp |
| }; |
| |
| struct automaton_nrp { |
| char *state_names[state_max_nrp]; |
| char *event_names[event_max_nrp]; |
| unsigned char function[state_max_nrp][event_max_nrp]; |
| unsigned char initial_state; |
| bool final_states[state_max_nrp]; |
| }; |
| |
| static const struct automaton_nrp automaton_nrp = { |
| .state_names = { |
| "preempt_irq", |
| "any_thread_running", |
| "nested_preempt", |
| "rescheduling" |
| }, |
| .event_names = { |
| "irq_entry", |
| "sched_need_resched", |
| "schedule_entry", |
| "schedule_entry_preempt" |
| }, |
| .function = { |
| { |
| preempt_irq_nrp, |
| preempt_irq_nrp, |
| nested_preempt_nrp, |
| nested_preempt_nrp |
| }, |
| { |
| any_thread_running_nrp, |
| rescheduling_nrp, |
| any_thread_running_nrp, |
| INVALID_STATE |
| }, |
| { |
| nested_preempt_nrp, |
| preempt_irq_nrp, |
| any_thread_running_nrp, |
| any_thread_running_nrp |
| }, |
| { |
| preempt_irq_nrp, |
| rescheduling_nrp, |
| any_thread_running_nrp, |
| any_thread_running_nrp |
| }, |
| }, |
| .initial_state = preempt_irq_nrp, |
| .final_states = { 0, 1, 0, 0 }, |
| }; |