📄 fslowlayer.hit
字号:
#ifndef FSLOWLAYER_HIT#define FSLOWLAYER_HIT/*--------------------------------------*//* *//* Low layer structures *//* *//*--------------------------------------*//* Structure used to generate for every layer the function pointer table *//*-----------------------------------------------------------------------*/typedef struct st_FunctionAndLevel { void (*p_Fct)(void*,void*) ; /* Address of function to call */ u8 v_Level; /* Level of the layer which contains this function */ MC_PCC_FILL_STRUCT3 } t_FunctionAndLevel;/* Structure used to form the interlayer table *//*---------------------------------------------*/typedef struct st_InterLayer { void * p_LayerContext; /* Context of the layer */ t_FunctionAndLevel * p_TabFctLevel; /* Pointer on function pointer/level of the layer table */ u16 v_NbrCommands; /* Number of commands of the lower layer */ u8 v_Level; /* Level of the current layer */ u8 v_NbrLayers; /* Number of layers for the volume */ } t_InterLayer;/* Structure which form an element of stack of the interlayer communication structure *//*------------------------------------------------------------------------------------*/typedef struct st_Layer { t_InterLayer * p_Interlayer; /* Pointer on interlayer structure of the current layer */ } t_Layer;/* Dynamic structure used for interlayer communication ( is placed in the tasks/threads stack ) *//*----------------------------------------------------------------------------------------------*/ typedef struct st_LayerCommunication { /* Mutex management parameters */ /* t_Mutex * p_MutexList; */ /* Linked list of MUTEXes taken by the thread to free at exception of EXIT of treatement */ /* u8 v_TypeOfThread; */ /* If the thread is internal to FSS or external */ /* u16 v_SemaphoreNumber; */ /* Number of semaphore associated to the thread ( if no semaphore == 0xffff ) the semaphore is only used to block the thread */#ifdef DEBUG /* u8 v_NbrMutexLayer; */ /* Number of mutex taken and not released by layer Used for debug to verify if all mutexes of the layer would freeed before layer exit */#endif /* Exception management context */ /* TBD */ /* Layers management context */ t_InterLayer * p_CurrentInterLayer; /* Pointer on current structure in interlayer communication table */ u8 v_NbrStackEntries; /* Stack pointer */ MC_PCC_FILL_STRUCT3 t_Layer a_Layer[4]; /* Stack to push/pop data at sublayers call/return */ } t_LayerCommunication;/* Low layer base structure *//*--------------------------*/typedef struct st_LowLayerDataBaseStruct { t_LayerCommunication ** p_TabLayerCommunication; u16 v_NbrKernelTasks; u8 v_NbrMaxLevelLayers; MC_PCC_FILL_STRUCT1 } t_LowLayerDataBaseStruct;#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -