⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 davevent.h

📁 FDI Intel开发的FLASH文件系统,功能很强大
💻 H
字号:
/* Copyright (c) 1995-2004 Intel Corporation */
/* Intel Confidential                        */

/* ###########################################################################
###  EVENT
###
###  Module: Event Testing Module
###
###  $Workfile: davevent.h $
###  $Revision: 56 $
###  $NoKeywords: $
########################################################################### */

/*                                                               
 *****************************************************************
 * NOTICE OF LICENSE AGREEMENT                                    
 *                                                                
 * This code is provided by Intel Corp., and the use is governed  
 * under the terms of a license agreement. See license agreement  
 * for complete terms of license.                                 
 *                                                                
 * YOU MAY ONLY USE THE SOFTWARE WITH INTEL FLASH PRODUCTS.  YOUR 
 * USE OF THE SOFTWARE WITH ANY OTHER FLASH PRODUCTS IS EXPRESSLY 
 * PROHIBITED UNLESS AND UNTIL YOU APPLY FOR, AND ARE GRANTED IN  
 * INTEL'S SOLE DISCRETION, A SEPARATE WRITTEN SOFTWARE LICENSE   
 * FROM INTEL LICENSING ANY SUCH USE.                             
 *****************************************************************
 */
 

#ifndef __event_h
#define __event_h

#include "davtpdef.h"

/*### Include Files
//#########################*/
#if (DIRECT_ACCESS_VOLUME == TRUE)

/*
#define ENABLE_EVENT_TESTS
#define ENABLE_EVENT_STATISTICS   
*/

#ifdef ENABLE_EVENT_TESTS
   /*
   #define DISABLE_RECLAIM_FLASH_FAIL
   #define ENABLE_SPECIAL_RECLAIM_TEST 
   */
   #define ENABLE_RECLAIM_TESTS
   #define ENABLE_RECRCVR_TESTS
   #define ENABLE_REALLOCATE_TESTS
   #define ENABLE_CONFIG_HDR_TESTS
   #define ENABLE_RECOVER_TESTS
   #define ENABLE_HDR_TESTS
#endif

/*### Global Declarations
//#########################*/

typedef enum                                          
{                                                     
   EVT_MODULE_RECLAIM,
   EVT_MODULE_RECRCVR,
   EVT_MODULE_REALLOCATE,                              
   EVT_MODULE_CONFIG_HDR,
   EVT_MODULE_RECOVER
} EVT_TestModule;
                                                      
/* V23 - ANSI
typedef struct
{
   UINT32 Enable          : 1;
   
   UINT32 DisplayId       : 1;
   UINT32 DisplaySummary  : 1;
   UINT32 DumpState       : 1;
   UINT32 BreakPoint      : 1;
   UINT32 Timer           : 1;
   UINT32 RandomError     : 1;
   UINT32 Exit            : 1;
   UINT32 KeepEnabled     : 1;
   UINT32 DisableAll      : 1;
   UINT32 RFU             : 6;
} EVT_EventBits;
*/

#define EVT_ENABLE          0x00000001
#define EVT_DISPLAYID       0x00000002
#define EVT_DISPLAYSUMMARY  0x00000004
#define EVT_DUMPSTATE       0x00000008
#define EVT_BREAKPOINT      0x00000010
#define EVT_TIMER           0x00000020
#define EVT_RANDOMERROR     0x00000040
#define EVT_EXIT            0x00000080
#define EVT_KEEPENABLED     0x00000100
#define EVT_DISABLEALL      0x00000200
#define EVT_MASK            0x000003ff


typedef struct
{
   UINT32   Event; /*   EVT_EventBits  Event; */
   
#ifdef ENABLE_EVENT_STATISTICS   
   UINT32   TestCount;  /* Increments every time event is tested */
   UINT32   EventCount; /* Increments only when event is enabled */
#endif   
} EVT_EventElement, __FAR_ * EVT_EventElementPtr;

/* V23 end */

typedef enum
{
   
   EVT_RECLAIM_BEGIN,
#ifdef ENABLE_RECLAIM_TESTS
   EVT_RECLAIM_StateA,   
   EVT_RECLAIM_StateB,   
   EVT_RECLAIM_StateC,   
   EVT_RECLAIM_StateD,   
   EVT_RECLAIM_StateE,    EVT_RECLAIM_StateE_SP1, EVT_RECLAIM_StateE_SP2,

   EVT_RECLAIM_StateF,    EVT_RECLAIM_StateF_1,  

   EVT_RECLAIM_StateF_2,  EVT_RECLAIM_StateF_2a,  EVT_RECLAIM_StateF_2b, 
   EVT_RECLAIM_StateF_2c,

   EVT_RECLAIM_StateF_3,  EVT_RECLAIM_StateF_3a,  EVT_RECLAIM_StateF_3b, 
   EVT_RECLAIM_StateF_3c, EVT_RECLAIM_StateF_3d,  EVT_RECLAIM_StateF_3e, 
   EVT_RECLAIM_StateF_3f, EVT_RECLAIM_StateF_4,   EVT_RECLAIM_StateF_4a, 
   EVT_RECLAIM_StateF_4b,

   EVT_RECLAIM_StateF_5,  EVT_RECLAIM_StateF_5a,  EVT_RECLAIM_StateF_5b, 
   EVT_RECLAIM_StateF_5c, EVT_RECLAIM_StateF_5d,  EVT_RECLAIM_StateF_5e, 

   EVT_RECLAIM_StateF_6,  EVT_RECLAIM_StateF_6a,  EVT_RECLAIM_StateF_6b, 
   EVT_RECLAIM_StateF_6c,

   EVT_RECLAIM_StateG,   
   EVT_RECLAIM_StateH,   

   EVT_RECLAIM_StateI,    EVT_RECLAIM_StateI_SP1,

   EVT_RECLAIM_StateJ,   
   EVT_RECLAIM_StateK,   

   EVT_RECLAIM_StateL,    EVT_RECLAIM_StateL_SP1,
   
   EVT_RECLAIM_RandomFail,

#endif 
   EVT_RECLAIM_END,
   

   EVT_RECRCVR_BEGIN,
 #ifdef ENABLE_RECRCVR_TESTS
   EVT_RECRCVR_State1,
   EVT_RECRCVR_State1_a,
   EVT_RECRCVR_State1_b,
   
   EVT_RECRCVR_State2,
   EVT_RECRCVR_State2_a,
   EVT_RECRCVR_State2_b,
   
   EVT_RECRCVR_State3,
   EVT_RECRCVR_State4,
   EVT_RECRCVR_State5,
   
   EVT_RECRCVR_StateA,
   EVT_RECRCVR_StateB,
   EVT_RECRCVR_StateC,
   EVT_RECRCVR_StateD,
   EVT_RECRCVR_StateE,
 #endif
   EVT_RECRCVR_END,
   
   
   EVT_REALLOCATE_BEGIN,
#ifdef ENABLE_REALLOCATE_TESTS
   EVT_RECINPLC_ReclaimInPlace_Start,
   EVT_RECINPLC_NoRestart,
   EVT_RECINPLC_ProcessBlocks,
   EVT_RECINPLC_DeallocateRAT,
   EVT_RECINPLC_MarkCFGDone,
   EVT_RECINPLC_ProcessBlockState1,
   EVT_RECINPLC_ProcessBlockState2,
   EVT_RECINPLC_ProcessBlockState3,
   EVT_RECINPLC_ProcessBlockState4,
   EVT_RECINPLC_ReclaimInPlace_End,
   
   EVT_REALLOC_RandomFail,
#endif
   EVT_REALLOCATE_END,
   
   
   EVT_CONFIG_HDR_BEGIN,
#ifdef ENABLE_CONFIG_HDR_TESTS
   EVT_CONFIG_HDR_Reclaim_Start,
   EVT_CONFIG_HDR_ReclaimRestart,
   EVT_CONFIG_HDR_ClearUniqueIds,
   EVT_CONFIG_HDR_MoveToRecBlock,
   EVT_CONFIG_HDR_MoveFromRecBlock,
   EVT_CONFIG_HDR_SetUniqueIds,
   EVT_CONFIG_HDR_MoveHdrState1,
   EVT_CONFIG_HDR_MoveHdrState2,
   EVT_CONFIG_HDR_MoveHdrState3,
#endif
   EVT_CONFIG_HDR_END,
   

   EVT_RECOVER_BEGIN,
#ifdef ENABLE_RECOVER_TESTS
   EVT_RECOVER_ValidateSystem_Start,
   EVT_RECOVER_ValidateSystem_End,
   EVT_RECOVER_RestartParagraphReclaim_Start,
   EVT_RECOVER_RestartParagraphReclaim_End,
   EVT_RECOVER_RestartPageReclaim_Start,
   EVT_RECOVER_RestartPageReclaim_End,
   EVT_RECOVER_RestartReAllocate_Start,
   EVT_RECOVER_RestartReAllocate_End,
   EVT_RECOVER_CheckSystemStatus_Start,
   EVT_RECOVER_CheckSystemStatus_End,
   EVT_RECOVER_CheckConfigurationHeader_Start,
   EVT_RECOVER_RestoreWriteInProgessObjects_Start,
   EVT_RECOVER_RestoreWriteInProgessObjects_End,
#endif
   EVT_RECOVER_HDR_END,
   
   
   EVT_FLASH_RandomFail,

#ifdef ENABLE_HDR_TESTS
   EVT_HDR_RepairHdr_Start,
   EVT_HDR_RepairHdr_AVAIL,
   EVT_HDR_RepairHdr_BAD_WIP,
   EVT_HDR_RepairHdr_Unknown,
   EVT_HDR_RepairHdr_End,
#endif
 
   EVT_TotalEvents
} EVT_TestPointIds;

extern BOOLEAN          EVT_CheckPageReclaim;
extern EVT_EventElement EVT_EventList[EVT_TotalEvents];
extern int              EVT_PercentageTRUE;  

/*### Global Functions
//#########################*/

/* V23 */
#define EVT_IsEnabled(test_point_id)  \
           (EVT_EventList[test_point_id].Event & EVT_ENABLE)
/*            (EVT_EventList[test_point_id].Event.Enable == 1) */

#define EVT_IsDisableAllEvent(test_point_id) \
           (EVT_EventList[test_point_id].Event & EVT_DISABLEALL)
/*            (EVT_EventList[test_point_id].Event.DisableAll == 1) */
           
#define EVT_IsKeepEnabledEvent(test_point_id) \
           (EVT_EventList[test_point_id].Event & EVT_KEEPENABLED)
/*           (EVT_EventList[test_point_id].Event.KeepEnabled == 1) */

#define EVT_IsDisplayIdEvent(test_point_id) \
           (EVT_EventList[test_point_id].Event & EVT_DISPLAYID)
/*           (EVT_EventList[test_point_id].Event.DisplayId == 1) */

#define EVT_IsDisplaySummaryEvent(test_point_id) \
           (EVT_EventList[test_point_id].Event & EVT_DISPLAYSUMMARY)
/*           (EVT_EventList[test_point_id].Event.DisplaySummary == 1) */

#define EVT_IsDumpStateEvent(test_point_id) \
           (EVT_EventList[test_point_id].Event & EVT_DUMPSTATE)
/*           (EVT_EventList[test_point_id].Event.DumpState == 1) */

#define EVT_IsBreakPointEvent(test_point_id) \
           (EVT_EventList[test_point_id].Event & EVT_BREAKPOINT)
/*           (EVT_EventList[test_point_id].Event.BreakPoint == 1) */

#define EVT_IsTimerEvent(test_point_id) \
           (EVT_EventList[test_point_id].Event & EVT_TIMER)
/*           (EVT_EventList[test_point_id].Event.Timer == 1) */

#define EVT_IsRandomErrorEvent(test_point_id) \
           (EVT_EventList[test_point_id].Event & EVT_RANDOMERROR)
/*           (EVT_EventList[test_point_id].Event.RandomError == 1) */

#define EVT_IsExitEvent(test_point_id) \
           (EVT_EventList[test_point_id].Event & EVT_EXIT)
/*           (EVT_EventList[test_point_id].Event.Exit == 1) */


#define EVT_SetEnabled(test_point_id)  \
           (EVT_EventList[test_point_id].Event |= EVT_ENABLE)
/*           (EVT_EventList[test_point_id].Event.Enable = 1) */

#define EVT_SetDisableAllEvent(test_point_id) \
           (EVT_EventList[test_point_id].Event |= EVT_DISABLEALL)
/*           (EVT_EventList[test_point_id].Event.DisableAll = 1) */

#define EVT_ClrEnabled(test_point_id)  \
           (EVT_EventList[test_point_id].Event &= ~EVT_ENABLE)
/*           (EVT_EventList[test_point_id].Event.Enable = 0) */

#define EVT_SetKeepEnabledEvent(test_point_id) \
           (EVT_EventList[test_point_id].Event |= EVT_KEEPENABLED)
/*           (EVT_EventList[test_point_id].Event.KeepEnabled = 1) */

#define EVT_SetDisplayIdEvent(test_point_id) \
           (EVT_EventList[test_point_id].Event |= EVT_DISPLAYID)
/*           (EVT_EventList[test_point_id].Event.DisplayId = 1) */

#define EVT_SetDisplaySummaryEvent(test_point_id) \
           (EVT_EventList[test_point_id].Event |= EVT_DISPLAYSUMMARY)
/*           (EVT_EventList[test_point_id].Event.DisplaySummary = 1) */

#define EVT_SetDumpStateEvent(test_point_id) \
           (EVT_EventList[test_point_id].Event |= EVT_DUMPSTATE)
/*           (EVT_EventList[test_point_id].Event.DumpState = 1) */

#define EVT_SetBreakPointEvent(test_point_id) \
           (EVT_EventList[test_point_id].Event |= EVT_BREAKPOINT)
/*           (EVT_EventList[test_point_id].Event.BreakPoint = 1) */

#define EVT_SetTimerEvent(test_point_id) \
           (EVT_EventList[test_point_id].Event |= EVT_TIMER)
/*           (EVT_EventList[test_point_id].Event.Timer = 1) */

#define EVT_SetRandomErrorEvent(test_point_id) \
           (EVT_EventList[test_point_id].Event |= EVT_RANDOMERROR)
/*           (EVT_EventList[test_point_id].Event.RandomError = 1) */

#define EVT_ClrRandomErrorEvent(test_point_id) \
           (EVT_EventList[test_point_id].Event &= ~EVT_RANDOMERROR)
/*           (EVT_EventList[test_point_id].Event.RandomError = 0) */

#define EVT_SetExitEvent(test_point_id) \
           (EVT_EventList[test_point_id].Event |= EVT_EXIT)
/*           (EVT_EventList[test_point_id].Event.Exit = 1) */

/* V23 END */

#ifdef ENABLE_RECLAIM_TESTS
   #define EVT_Test4Crash(test_point_id) \
              if (EVT_TestEvent(test_point_id)) \
                 return ERR_CRASH_N_BURN;
                 
   #define EVT_CountOccurance(test_point_id) \
              EVT_TestEvent(test_point_id);
#else
   #define EVT_Test4Crash(test_point_id)     {}
   #define EVT_CountOccurance(test_point_id) {}
#endif

#ifdef ENABLE_EVENT_TESTS
#include <stdio.h>

extern BOOLEAN EVT_ForcedFailure;

void EVT_DisplayEvents(FILE *fptr);

void EVT_InitEvents(void);

void EVT_SetEvent(EVT_TestPointIds test_point_id, 
                  EVT_EventElementPtr event_ptr);
                      
void EVT_SetAllEvents(EVT_TestPointIds start_id, EVT_TestPointIds end_id, 
                                            EVT_EventElementPtr event_ptr);

void EVT_ClearEvent(EVT_EventElementPtr event_ptr);

BOOLEAN EVT_TestEvent(EVT_TestPointIds test_point_id);

BOOLEAN EVT_DisableEvent(EVT_TestPointIds test_point_id);

BOOLEAN EVT_EnableEvent(EVT_TestPointIds test_point_id);

#endif /* ENABLE_EVENT_TESTS */
#endif /* sentry header */

#endif /* DIRECT_ACCESS_VOLUME */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -