int32 FM_TableInit(void) { int32 Status; /* Initialize file system free space table pointer */ FM_GlobalData.FreeSpaceTablePtr = (FM_FreeSpaceTable_t *) NULL; /* Register the file system free space table - this must succeed! */ Status = CFE_TBL_Register(&FM_GlobalData.FreeSpaceTableHandle, FM_TABLE_CFE_NAME, sizeof(FM_FreeSpaceTable_t), (CFE_TBL_OPT_SNGL_BUFFER | CFE_TBL_OPT_LOAD_DUMP), (CFE_TBL_CallbackFuncPtr_t) FM_ValidateTable); if (Status == CFE_SUCCESS) { /* Make an attempt to load the default table data - OK if this fails */ CFE_TBL_Load(FM_GlobalData.FreeSpaceTableHandle, CFE_TBL_SRC_FILE, FM_TABLE_DEF_NAME); /* Allow cFE a chance to dump, update, etc. */ FM_AcquireTablePointers(); } return(Status); } /* End FM_TableInit */
void SC_LoadDefaultTables(void) { char TableName[OS_MAX_PATH_LEN]; int32 FileDesc; int32 RtsIndex; int32 RtsCount = 0; /* ** Currently, only RTS tables are loaded during initialization. ** ** ATS and ATS Append tables must be loaded by command. */ for (RtsIndex = 0; RtsIndex < SC_NUMBER_OF_RTS; RtsIndex++) { /* Example filename: /cf/apps/sc_rts001.tbl */ sprintf(TableName, "%s%03ld.tbl", SC_RTS_FILE_NAME, RtsIndex + 1); FileDesc = OS_open(TableName, OS_READ_ONLY, 0); if (FileDesc >= 0) { OS_close(FileDesc); /* Only try to load table files that can be opened, ignore others */ if(CFE_TBL_Load(SC_OperData.RtsTblHandle[RtsIndex], CFE_TBL_SRC_FILE, TableName) == CFE_SUCCESS){ RtsCount++; } } } /* Display startup RTS load count */ CFE_EVS_SendEvent(SC_RTS_LOAD_COUNT_INFO_EID, CFE_EVS_INFORMATION, "RTS table file load count = %ld", RtsCount); return; } /* end SC_LoadDefaultTables() */
void TT_AppInit(void) { void *TblPointer; int32 Status; /* ** Initialize app command execution counters... */ TT4_AppData.CmdCount = 0; TT4_AppData.ErrCount = 0; TT4_AppData.HkPacket.UpdateCount = 0; /* ** Initialize app configuration data... */ strcpy(TT4_AppData.PipeName, "TT_CMD_PIPE"); TT4_AppData.PipeDepth = 12; TT4_AppData.LimitHK = 2; TT4_AppData.LimitCmd = 4; /* ** Initialize event filter table... */ TT4_AppData.EventFilters[0].EventID = TT_INIT_INF_EID; TT4_AppData.EventFilters[0].Mask = CFE_EVS_NO_FILTER; TT4_AppData.EventFilters[1].EventID = TT_NOOP_INF_EID; TT4_AppData.EventFilters[1].Mask = CFE_EVS_NO_FILTER; TT4_AppData.EventFilters[2].EventID = TT_RESET_INF_EID; TT4_AppData.EventFilters[2].Mask = CFE_EVS_NO_FILTER; TT4_AppData.EventFilters[3].EventID = TT_MID_ERR_EID; TT4_AppData.EventFilters[3].Mask = CFE_EVS_NO_FILTER; TT4_AppData.EventFilters[4].EventID = TT_CC1_ERR_EID; TT4_AppData.EventFilters[4].Mask = CFE_EVS_NO_FILTER; TT4_AppData.EventFilters[5].EventID = TT_LEN_ERR_EID; TT4_AppData.EventFilters[5].Mask = CFE_EVS_NO_FILTER; /* ** Register event filter table... */ CFE_EVS_Register(TT4_AppData.EventFilters, TT_EVT_COUNT, CFE_EVS_BINARY_FILTER); /* ** Initialize housekeeping packet (clear user data area)... */ CFE_SB_InitMsg(&TT4_AppData.HkPacket, CFE_TT_HK_TLM_MID, sizeof(TT_HkPacket_t), TRUE); /* ** Create Software Bus message pipe... */ CFE_SB_CreatePipe(&TT4_AppData.CmdPipe, TT4_AppData.PipeDepth, TT4_AppData.PipeName); /* ** Subscribe to Housekeeping request commands... */ CFE_SB_Subscribe(CFE_TT_SEND_HK_MID,TT4_AppData.CmdPipe); /* ** Subscribe to TT ground command packets... */ CFE_SB_Subscribe(CFE_TT_CMD_MID,TT4_AppData.CmdPipe); /* ** Register & Initialize Table... */ Status = CFE_TBL_Register(&TT4_AppData.TblHandle, "FourNumbers", 4, /* size of table in bytes*/ CFE_TBL_OPT_DBL_BUFFER | CFE_TBL_OPT_LOAD_DUMP, &TT_TableValidationCallbackFunc); /* NULL); */ UTF_put_text("CFE_TBL_Register returned %lx\n", Status); Status = CFE_TBL_Load(TT4_AppData.TblHandle, CFE_TBL_SRC_FILE, "/ram/tt_table_values0.dat"); UTF_put_text("CFE_TBL_Load returned %lx\n", Status); Status = CFE_TBL_GetAddress(&TblPointer,TT4_AppData.TblHandle); UTF_put_text("CFE_TBL_GetAddress returned %lx\n", Status); UTF_put_text("The initial values are:%d %d %d %d\n", *(int8*)TblPointer,*(int8*)(TblPointer+1), *(int8*)(TblPointer+2),*(int8*)(TblPointer+3)); Status = CFE_TBL_ReleaseAddress(TT4_AppData.TblHandle); UTF_put_text("CFE_TBL_ReleaseAddress returned %lx\n", Status); /* ** Application startup event message... */ CFE_EVS_SendEvent(TT_INIT_INF_EID, CFE_EVS_INFORMATION, "TT: Application Initialized"); return; } /* End of TT_AppInit() */
int32 TO_TableInit (void) { int32 iStatus = CFE_SUCCESS; /* Register The TO config table */ iStatus = CFE_TBL_Register (&TO_AppData.ConfigHandle, TO_CONFIG_TABLENAME, (sizeof (TO_Table_t)), CFE_TBL_OPT_DEFAULT, (CFE_TBL_CallbackFuncPtr_t)TO_ValidateTable); if (iStatus != CFE_SUCCESS) { CFE_EVS_SendEvent(TO_CONFIG_REG_ERR_EID, CFE_EVS_ERROR, "CFE_TBL_Register() returned error %i. Aborting table init.", iStatus); goto end_of_function; } /* Load the TO configuration table file */ iStatus = CFE_TBL_Load (TO_AppData.ConfigHandle, CFE_TBL_SRC_FILE, TO_CONFIG_FILENAME); if (iStatus != CFE_SUCCESS) { CFE_EVS_SendEvent(TO_CONFIG_LD_ERR_EID, CFE_EVS_ERROR, "CFE_TBL_Load() returned error %i. Aborting table init.", iStatus); goto end_of_function; } /* Manage the TO config table */ iStatus = CFE_TBL_Manage(TO_AppData.ConfigHandle); if (iStatus != CFE_SUCCESS) { CFE_EVS_SendEvent(TO_CONFIG_MNG_ERR_EID, CFE_EVS_ERROR, "CFE_TBL_Manage() returned error %i. Aborting table init.", iStatus); goto end_of_function; } /* Make sure the CI iLoad Table is accessible */ iStatus = CFE_TBL_GetAddress ((void **) (& TO_AppData.Config), TO_AppData.ConfigHandle); /* Status should be CFE_TBL_INFO_UPDATED because we loaded it above */ if (iStatus != CFE_TBL_INFO_UPDATED) { CFE_EVS_SendEvent(TO_CONFIG_GADR_ERR_EID, CFE_EVS_ERROR, "CFE_TBL_GetAddress() returned error %i. Aborting table init.", iStatus); goto end_of_function; } iStatus = CFE_SUCCESS; end_of_function: return iStatus; }
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ int32 HS_TblInit(void) { uint32 TableSize; int32 Status = CFE_SUCCESS; /* Register The HS Critical Applications Monitor Table */ TableSize = HS_MAX_CRITICAL_APPS * sizeof (HS_AMTEntry_t); Status = CFE_TBL_Register (&HS_AppData.AMTableHandle, HS_AMT_TABLENAME, TableSize, CFE_TBL_OPT_DEFAULT, HS_ValidateAMTable); if (Status != CFE_SUCCESS) { CFE_EVS_SendEvent(HS_AMT_REG_ERR_EID, CFE_EVS_ERROR, "Error Registering AppMon Table,RC=0x%08X",Status); return (Status); } /* Register The HS Critical Events Monitor Table */ TableSize = HS_MAX_CRITICAL_EVENTS * sizeof (HS_EMTEntry_t); Status = CFE_TBL_Register (&HS_AppData.EMTableHandle, HS_EMT_TABLENAME, TableSize, CFE_TBL_OPT_DEFAULT, HS_ValidateEMTable); if (Status != CFE_SUCCESS) { CFE_EVS_SendEvent(HS_EMT_REG_ERR_EID, CFE_EVS_ERROR, "Error Registering EventMon Table,RC=0x%08X",Status); return (Status); } /* Register The HS Message Actions Table */ TableSize = HS_MAX_MSG_ACT_TYPES * sizeof (HS_MATEntry_t); Status = CFE_TBL_Register (&HS_AppData.MATableHandle, HS_MAT_TABLENAME, TableSize, CFE_TBL_OPT_DEFAULT, HS_ValidateMATable); if (Status != CFE_SUCCESS) { CFE_EVS_SendEvent(HS_MAT_REG_ERR_EID, CFE_EVS_ERROR, "Error Registering MsgActs Table,RC=0x%08X",Status); return (Status); } #if HS_MAX_EXEC_CNT_SLOTS != 0 /* Register The HS Execution Counters Table */ TableSize = HS_MAX_EXEC_CNT_SLOTS * sizeof (HS_XCTEntry_t); Status = CFE_TBL_Register (&HS_AppData.XCTableHandle, HS_XCT_TABLENAME, TableSize, CFE_TBL_OPT_DEFAULT, HS_ValidateXCTable); if (Status != CFE_SUCCESS) { CFE_EVS_SendEvent(HS_XCT_REG_ERR_EID, CFE_EVS_ERROR, "Error Registering ExeCount Table,RC=0x%08X",Status); return (Status); } /* Load the HS Execution Counters Table */ Status = CFE_TBL_Load (HS_AppData.XCTableHandle, CFE_TBL_SRC_FILE, (const void *) HS_XCT_FILENAME); if (Status != CFE_SUCCESS) { CFE_EVS_SendEvent(HS_XCT_LD_ERR_EID, CFE_EVS_ERROR, "Error Loading ExeCount Table,RC=0x%08X",Status); HS_AppData.ExeCountState = HS_STATE_DISABLED; } #endif /* Load the HS Critical Applications Monitor Table */ Status = CFE_TBL_Load (HS_AppData.AMTableHandle, CFE_TBL_SRC_FILE, (const void *) HS_AMT_FILENAME); if (Status != CFE_SUCCESS) { CFE_EVS_SendEvent(HS_AMT_LD_ERR_EID, CFE_EVS_ERROR, "Error Loading AppMon Table,RC=0x%08X",Status); HS_AppData.CurrentAppMonState = HS_STATE_DISABLED; CFE_EVS_SendEvent (HS_DISABLE_APPMON_ERR_EID, CFE_EVS_ERROR, "Critical Application Monitoring Disabled due to Table Load Failure"); HS_AppData.AppMonLoaded = HS_STATE_DISABLED; } /* Load the HS Critical Events Monitor Table */ Status = CFE_TBL_Load (HS_AppData.EMTableHandle, CFE_TBL_SRC_FILE, (const void *) HS_EMT_FILENAME); if (Status != CFE_SUCCESS) { CFE_EVS_SendEvent(HS_EMT_LD_ERR_EID, CFE_EVS_ERROR, "Error Loading EventMon Table,RC=0x%08X",Status); HS_AppData.CurrentEventMonState = HS_STATE_DISABLED; CFE_EVS_SendEvent (HS_DISABLE_EVENTMON_ERR_EID, CFE_EVS_ERROR, "Critical Event Monitoring Disabled due to Table Load Failure"); HS_AppData.EventMonLoaded = HS_STATE_DISABLED; } /* Load the HS Message Actions Table */ Status = CFE_TBL_Load (HS_AppData.MATableHandle, CFE_TBL_SRC_FILE, (const void *) HS_MAT_FILENAME); if (Status != CFE_SUCCESS) { CFE_EVS_SendEvent(HS_MAT_LD_ERR_EID, CFE_EVS_ERROR, "Error Loading MsgActs Table,RC=0x%08X",Status); HS_AppData.MsgActsState = HS_STATE_DISABLED; } /* ** Get pointers to table data */ HS_AcquirePointers(); return CFE_SUCCESS; } /* End of HS_TblInit() */