========================= hsmCommunicator_submach.h ========================= .. code-block:: c /** hsmCommunicator_submach.h This file automatically generated by FSMLang */ #ifndef _HSMCOMMUNICATOR_SUBMACH_H_ #define _HSMCOMMUNICATOR_SUBMACH_H_ #include "hsmCommunicator.h" #ifndef HSM_COMMUNICATOR_NATIVE_PROLOG #define HSM_COMMUNICATOR_NATIVE_PROLOG #ifndef DBG_PRINTF #include #define DBG_PRINTF(...) printf(__VA_ARGS__); printf("\n"); #endif typedef enum { msg_none , msg_step0_response , msg_step1_response , msg_ack } msg_e_t; typedef struct _queue_str_ { unsigned queue_count; } queue_str_t; #endif typedef struct _hsmCommunicator_data_struct_ HSM_COMMUNICATOR_DATA, *pHSM_COMMUNICATOR_DATA; /* Sub Machine Declarations */ typedef enum { establishSession_e , hsmCommunicator_firstSubMachine = establishSession_e , sendMessage_e , hsmCommunicator_numSubMachines } HSM_COMMUNICATOR_SUB_MACHINES; typedef HSM_COMMUNICATOR_EVENT_ENUM (*HSM_COMMUNICATOR_SUB_MACHINE_FN)(HSM_COMMUNICATOR_EVENT_ENUM); typedef struct _hsmCommunicator_sub_fsm_if_ HSM_COMMUNICATOR_SUB_FSM_IF, *pHSM_COMMUNICATOR_SUB_FSM_IF; struct _hsmCommunicator_sub_fsm_if_ { HSM_COMMUNICATOR_EVENT_ENUM first_event; HSM_COMMUNICATOR_EVENT_ENUM last_event; HSM_COMMUNICATOR_SUB_MACHINE_FN subFSM; }; typedef void (*HSM_COMMUNICATOR_DATA_TRANSLATION_FN)(pHSM_COMMUNICATOR_DATA); /* Some sub-machines share parent events. */ typedef struct _hsmCommunicator_shared_event_str_ HSM_COMMUNICATOR_SHARED_EVENT_STR, *pHSM_COMMUNICATOR_SHARED_EVENT_STR; struct _hsmCommunicator_shared_event_str_ { HSM_COMMUNICATOR_EVENT_ENUM event; HSM_COMMUNICATOR_DATA_TRANSLATION_FN data_translation_fn; pHSM_COMMUNICATOR_SUB_FSM_IF psub_fsm_if; }; extern HSM_COMMUNICATOR_EVENT_ENUM hsmCommunicator_pass_shared_event(pHSM_COMMUNICATOR,pHSM_COMMUNICATOR_SHARED_EVENT_STR[]); extern HSM_COMMUNICATOR_SHARED_EVENT_STR sendMessage_share_hsmCommunicator_INIT_str; extern pHSM_COMMUNICATOR_SHARED_EVENT_STR sharing_hsmCommunicator_INIT[]; extern HSM_COMMUNICATOR_SHARED_EVENT_STR sendMessage_share_hsmCommunicator_SEND_MESSAGE_str; extern pHSM_COMMUNICATOR_SHARED_EVENT_STR sharing_hsmCommunicator_SEND_MESSAGE[]; extern HSM_COMMUNICATOR_SHARED_EVENT_STR establishSession_share_hsmCommunicator_MESSAGE_RECEIVED_str; extern HSM_COMMUNICATOR_SHARED_EVENT_STR sendMessage_share_hsmCommunicator_MESSAGE_RECEIVED_str; extern pHSM_COMMUNICATOR_SHARED_EVENT_STR sharing_hsmCommunicator_MESSAGE_RECEIVED[]; struct _hsmCommunicator_data_struct_ { msg_e_t current_msg; queue_str_t queue; }; #endif