1 /* SPDX-License-Identifier: GPL-2.0 */ 1 2 /* 3 * Copyright (C) 2019-2022 Red Hat, Inc. Danie 4 * 5 * Deterministic automata helper functions, to 6 * models in C generated by the dot2k tool. 7 */ 8 9 /* 10 * DECLARE_AUTOMATA_HELPERS - define a set of 11 * 12 * Define a set of helper functions for automa 13 * as suffix for the functions and data. These 14 * with data type 'type'. 15 */ 16 #define DECLARE_AUTOMATA_HELPERS(name, type) 17 18 /* 19 * model_get_state_name_##name - return the (s 20 */ 21 static char *model_get_state_name_##name(enum 22 { 23 if ((state < 0) || (state >= state_max 24 return "INVALID"; 25 26 return automaton_##name.state_names[st 27 } 28 29 /* 30 * model_get_event_name_##name - return the (s 31 */ 32 static char *model_get_event_name_##name(enum 33 { 34 if ((event < 0) || (event >= event_max 35 return "INVALID"; 36 37 return automaton_##name.event_names[ev 38 } 39 40 /* 41 * model_get_initial_state_##name - return the 42 */ 43 static inline type model_get_initial_state_##n 44 { 45 return automaton_##name.initial_state; 46 } 47 48 /* 49 * model_get_next_state_##name - process an au 50 * 51 * Given the current state (curr_state) and th 52 * the next state, or INVALID_STATE in case of 53 */ 54 static inline type model_get_next_state_##name 55 56 { 57 if ((curr_state < 0) || (curr_state >= 58 return INVALID_STATE; 59 60 if ((event < 0) || (event >= event_max 61 return INVALID_STATE; 62 63 return automaton_##name.function[curr_ 64 } 65 66 /* 67 * model_is_final_state_##name - check if the 68 */ 69 static inline bool model_is_final_state_##name 70 { 71 if ((state < 0) || (state >= state_max 72 return 0; 73 74 return automaton_##name.final_states[s 75 } 76
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.