105 lines
4.4 KiB
C
105 lines
4.4 KiB
C
//
|
|
// Copyright (c) 2014 Wind River Systems, Inc.
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
#ifndef __SM_SERVICE_FSM_H__
|
|
#define __SM_SERVICE_FSM_H__
|
|
|
|
#include "sm_types.h"
|
|
#include "sm_service_table.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef void (*SmServiceFsmCallbackT) (char service_name[],
|
|
SmServiceStateT state, SmServiceStatusT status,
|
|
SmServiceConditionT condition);
|
|
|
|
// ****************************************************************************
|
|
// Service FSM - Register Callback
|
|
// ===============================
|
|
extern SmErrorT sm_service_fsm_register_callback( SmServiceFsmCallbackT callback );
|
|
// ****************************************************************************
|
|
|
|
// ****************************************************************************
|
|
// Service FSM - Deregister Callback
|
|
// =================================
|
|
extern SmErrorT sm_service_fsm_deregister_callback( SmServiceFsmCallbackT callback );
|
|
// ****************************************************************************
|
|
|
|
// ****************************************************************************
|
|
// Service FSM - Set State
|
|
// =======================
|
|
extern SmErrorT sm_service_fsm_set_state( SmServiceT* service,
|
|
SmServiceStateT state );
|
|
// ****************************************************************************
|
|
|
|
// ****************************************************************************
|
|
// Service FSM - Set Status
|
|
// ========================
|
|
extern SmErrorT sm_service_fsm_set_status( SmServiceT* service,
|
|
SmServiceStatusT status, SmServiceConditionT condition );
|
|
// ****************************************************************************
|
|
|
|
// ****************************************************************************
|
|
// Service FSM - Event Handler
|
|
// ===========================
|
|
extern SmErrorT sm_service_fsm_event_handler( char service_name[],
|
|
SmServiceEventT event, void* event_data[], const char reason_text[] );
|
|
// ****************************************************************************
|
|
|
|
// ****************************************************************************
|
|
// Service FSM - Action Complete Handler
|
|
// =====================================
|
|
extern SmErrorT sm_service_fsm_action_complete_handler( char service_name[],
|
|
SmServiceActionT action, SmServiceActionResultT action_result,
|
|
SmServiceStateT state, SmServiceStatusT status,
|
|
SmServiceConditionT condition, const char reason_text[] );
|
|
// ****************************************************************************
|
|
|
|
// ****************************************************************************
|
|
// Service FSM - Start Fail Countdown Timer
|
|
// ========================================
|
|
extern SmErrorT sm_service_fsm_start_fail_countdown_timer( SmServiceT* service );
|
|
// ****************************************************************************
|
|
|
|
// ****************************************************************************
|
|
// Service FSM - Stop Fail Countdown Timer
|
|
// =======================================
|
|
extern SmErrorT sm_service_fsm_stop_fail_countdown_timer( SmServiceT* service );
|
|
// ****************************************************************************
|
|
|
|
// ****************************************************************************
|
|
// Service FSM - Process Failure Register
|
|
// ======================================
|
|
extern SmErrorT sm_service_fsm_process_failure_register(
|
|
SmServiceT* service );
|
|
// ****************************************************************************
|
|
|
|
// ****************************************************************************
|
|
// Service FSM - Process Failure Deregister
|
|
// =======================================
|
|
extern SmErrorT sm_service_fsm_process_failure_deregister(
|
|
SmServiceT* service );
|
|
// ****************************************************************************
|
|
|
|
// ****************************************************************************
|
|
// Service FSM - Initialize
|
|
// ========================
|
|
extern SmErrorT sm_service_fsm_initialize( void );
|
|
// ****************************************************************************
|
|
|
|
// ****************************************************************************
|
|
// Service FSM - Finalize
|
|
// ======================
|
|
extern SmErrorT sm_service_fsm_finalize( void );
|
|
// ****************************************************************************
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // __SM_SERVICE_FSM_H__
|