FreeCalypso > hg > fc-selenite
diff src/cs/services/dar/dar_api.h @ 0:b6a5e36de839
src/cs: initial import from Magnetite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 15 Jul 2018 04:39:26 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cs/services/dar/dar_api.h Sun Jul 15 04:39:26 2018 +0000 @@ -0,0 +1,157 @@ +/****************************************************************************/ +/* */ +/* File Name: dar_api.h */ +/* */ +/* Purpose: This file contains data structures and functions prototypes */ +/* used to send events to the DAR SWE. */ +/* */ +/* Version 0.1 */ +/* */ +/* Date Modification */ +/* ------------------------------------ */ +/* 26 September 2001 Create */ +/* */ +/* Author Stephanie Gerthoux */ +/* */ +/* (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved*/ +/****************************************************************************/ + +#include "rv/rv_defined_swe.h" +#include "rvm/rvm_api.h" + +/* file used in recovery case */ +#include "main/sys_types.h" + +#include "dar/dar_gen.h" + +#ifdef RVM_DAR_SWE + + #ifndef __DAR_API_H_ + #define __DAR_API_H_ + + #ifdef __cplusplus + extern "C" + { + #endif + + /***** Events *****/ + #define DAR_EVENTS_MASK (0x5000) + #define DAR_EVENT_EXTERN (0x0C00) + + /***** Definitions *****/ + /*Define DAR use parameters */ + typedef struct + { + UINT16 group_nb; + UINT16 mask; + }T_DAR_USE_ID; + + typedef struct + { + T_RV_HDR os_hdr; + INT8 status; + } T_DAR_STATUS; + + /********************************************************************************/ + /* RECOVERY */ + /********************************************************************************/ + + /***** Events *****/ + #define DAR_RECOVERY_CONFIG (0x0001|DAR_EVENT_EXTERN) + + /***** Definitions ******/ + /* Define return parameters. */ + typedef UINT16 T_DAR_RECOVERY_STATUS; + /* possible values */ + #define DAR_POWER_ON_OFF (0x0) /* Power ON/OFF */ + #define DAR_WATCHDOG (0xDD11) /* Watchdog reset */ + #define DAR_NORMAL_SCUTTLING (0xDD22) /* Recovery module has decided to active the reset */ + #define DAR_EMERGENCY_SCUTTLING (0xDD33) /* Emergency detection */ + + /* Define Recovery configuration parameters */ + typedef struct{ + UINT16 msg_id; /* id of the message */ + T_DAR_BUFFER buffer_p; /* pointer on the buffer */ + UINT8 length; /* buffer length */ + } T_DAR_RECOVERY_CONFIG; + + /* Define register parameters */ + #define DAR_NAME_MAX_LEN (15) + typedef char T_DAR_NAME[DAR_NAME_MAX_LEN]; + + /***** Prototype *****/ + /* Get and reset the status of the DAR entity */ + T_RV_RET dar_recovery_get_status(T_DAR_RECOVERY_STATUS* status); + T_RV_RET dar_recovery_config(T_RV_RET (*dar_store_recovery_data)( T_DAR_BUFFER buffer_p, + UINT16 length)); + T_RV_RET dar_get_recovery_data(T_DAR_BUFFER buffer_p,UINT16 length ); + + /********************************************************************************/ + /* WATCHDOG */ + /********************************************************************************/ + + /***** Prototype *****/ + T_RV_RET dar_start_watchdog_timer(UINT16 timer); + T_RV_RET dar_reload_watchdog_timer(void); + T_RV_RET dar_stop_watchdog_timer(void); + + + /********************************************************************************/ + /* RESET */ + /********************************************************************************/ + + /***** Prototype *****/ + T_RV_RET dar_reset_system(void); + + + /********************************************************************************/ + /* DIAGNOSE */ + /********************************************************************************/ + + /***** Definitions *****/ + + /* DAR level messages value ( Error, Warning or debug ) */ + /* define with 8 bits: - the first for Error level */ + /* - the second for Warning level */ + /* - the other bits for debug level*/ + + /* Error level : 1000 0000 in binary*/ + #define DAR_ERROR (0x80) + /* Warning level : 0100 0000 in binary*/ + #define DAR_WARNING (0x40) + /* Debug level : 0000 0001 in binary*/ + #define DAR_DEBUG (0x01) + /* None level : 0000 0000 in binary*/ + #define DAR_NO_DIAGNOSE (0x00) + /* Exception level 1111 1111 in binary*/ + #define DAR_EXCEPTION (0xFF) + /* Causes a reset, if set when calling dar_diagnose_write_emergency() */ + #define DAR_EMERGENCY_RESET (0x00000001) + /* New data is appended to last entry, if set when calling dar_diagnose_write_emergency() */ + #define DAR_NEW_ENTRY (0x00000002) + + /***** Prototype *****/ + /* Diagnose prototypes */ + T_RV_RET dar_diagnose_swe_filter ( T_RVM_USE_ID dar_use_id, + T_DAR_LEVEL dar_level); + + T_RV_RET dar_diagnose_write( T_DAR_INFO *buffer_p, + T_DAR_FORMAT format, + T_DAR_LEVEL diagnose_info_level, + T_RVM_USE_ID dar_use_id); + + T_RV_RET dar_diagnose_write_emergency( T_DAR_INFO *buffer_p, + T_DAR_FORMAT format, + T_RVM_USE_ID dar_use_id, + UINT32 flags); + + T_RV_RET dar_diagnose_generate_emergency( T_DAR_INFO *buffer_p, + T_DAR_FORMAT format, + T_RVM_USE_ID dar_use_id); + + #ifdef __cplusplus + } + #endif + + #endif /* __DAR_API_H_ */ +#endif /* #ifdef RVM_DAR_SWE */