123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- /**
- * \file fsm_defines.h
- *
- * This file defines state and events related to FSM.
- */
- /*
- * Copyright (C) 2013. Mindtree Ltd.
- * All rights reserved.
- */
- #ifndef _H_FSM_DEFINES_
- #define _H_FSM_DEFINES_
- /* --------------------------------------------- Header File Inclusion */
- #include "MS_common.h"
- /* --------------------------------------------- Global Definitions */
- #define FSM_MAX_MODULES 2
- /* --------------------------------------------- Structures/Data Types */
- typedef UINT32 STATE_T;
- typedef UCHAR EVENT_T;
- typedef API_RESULT (*SE_HNDLR_T)(void *);
- typedef API_RESULT RETVAL_T;
- typedef struct
- {
- STATE_T set_bits;
- } FSM_STATE_MASK;
- typedef struct
- {
- RETVAL_T handler_retval;
- FSM_STATE_MASK next_state;
- } RETVAL_TABLE_T;
- /*
- * Event Handler Table.
- * Current State, handler(if any), num_of_retval, retval_table_start_index,
- * num_of_substates handles this event,
- * start_index_of_those_handler_in_this_same_table
- */
- typedef struct
- {
- STATE_T current_state;
- SE_HNDLR_T handler;
- } EVENT_HANDLER_TABLE_T;
- #define EVENT_HANDLER_TABLE EVENT_HANDLER_TABLE_T
- /* State-Event Table.
- * Event, Default Handler, num_of_retval, retval_table_start_index,
- * num_of_substates handles this event,
- * start_index_of_those_handler_in_this_same_table
- */
- typedef struct
- {
- EVENT_T event;
- UINT32 event_handler_table_end_index;
- UINT32 event_handler_table_start_index;
- } STATE_EVENT_TABLE_T;
- #define STATE_EVENT_TABLE STATE_EVENT_TABLE_T
- /* State identifier */
- typedef struct
- {
- STATE_T state;
- } STATE_TABLE_T;
- typedef void (*FSM_STATE_CHANGE_HANDLER)(void * param, STATE_T state) DECL_REENTRANT;
- typedef API_RESULT (*FSM_STATE_ACCESS_HANDLER)(void *param, STATE_T * state) DECL_REENTRANT;
- typedef UCHAR FSM_STATE_SIZE_T;
- typedef struct fsm_module_t
- {
- /* Function to Access State of Module */
- FSM_STATE_ACCESS_HANDLER state_access_handler;
- /* State Change Function Registered with FSM */
- FSM_STATE_CHANGE_HANDLER state_change_handler;
- /* Event Handler Table */
- DECL_CONST EVENT_HANDLER_TABLE * event_table;
- /* State Event Table */
- DECL_CONST STATE_EVENT_TABLE * state_event_table;
- /* State Event Table Size */
- FSM_STATE_SIZE_T state_event_table_size;
- }FSM_MODULE_TABLE_T;
- #endif /* _H_FSM_DEFINES_ */
|