FreeCalypso > hg > fc-tourmaline
view src/cs/services/dar/dar_api.h @ 37:820ce39cf6df
cache: checking in stable Nucleus libs
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 17 Oct 2020 07:00:11 +0000 |
parents | 4e78acac3d88 |
children |
line wrap: on
line source
/****************************************************************************/ /* */ /* 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 */