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 */