#include "RTDS_Startup_decl.h" /* ***************************************************************** */ /* $(RTDS_HOME)/share/ccg/vxworks/bricks/RTDS_Startup_begin.c begins */ /* Copyright (C) 2002 PragmaDev */ /* Pointers to global list of information on processes and semaphores */ RTDS_GlobalProcessInfo *RTDS_globalProcessInfo=NULL; RTDS_GlobalSemaphoreInfo *RTDS_globalSemaphoreInfo=NULL; #ifdef RTDS_SIMULATOR void *RTDS_globalMessageUniqueIdPool=NULL; RTDS_GlobalTraceInfo RTDS_globalTraceEntry={0,NULL}; #endif RTDS_START_SYNCHRO_DECL; RTDS_CRITICAL_SECTION_DECL; void RTDS_Start(void) { RTDS_GlobalProcessInfo *RTDS_currentContext; #ifdef RTDS_SIMULATOR /* Set up the message unique id pool */ RTDS_globalMessageUniqueIdPool = RTDS_MALLOC(RTDS_MESSAGE_UNIQUE_ID_POOL_SIZE); { int i; unsigned char *index; index = RTDS_globalMessageUniqueIdPool; for(i=0;i<RTDS_MESSAGE_UNIQUE_ID_POOL_SIZE;i++) { *index=0x00; index++; } } #endif /* Set up the process context needed to create tasks */ RTDS_currentContext = (RTDS_GlobalProcessInfo *)RTDS_MALLOC(sizeof(RTDS_GlobalProcessInfo)); if ( RTDS_currentContext == NULL ) RTDS_SYSTEM_ERROR(RTDS_ERROR_STARTUP_CONTEXT_MALLOC); RTDS_currentContext->name = NULL; RTDS_currentContext->sdlState = 0; RTDS_currentContext->next = NULL; RTDS_currentContext->parentQueueId = NULL; RTDS_currentContext->offspringQueueId = NULL; RTDS_currentContext->currentMessage = NULL; RTDS_currentContext->timerList = NULL; RTDS_currentContext->myQueueId = NULL; RTDS_CRITICAL_SECTION_INIT; RTDS_START_SYNCHRO_INIT; /* $(RTDS_HOME)/share/ccg/vxworks/bricks/RTDS_Startup_begin.c ends */ /* *************************************************************** */ /* SEMAPHORE CREATIONS */ /* PROCESS CREATIONS */ RTDS_STARTUP_PROCESS_CREATE("RTDS_Env", RTDS_Env, 150); RTDS_STARTUP_PROCESS_CREATE("pCentral", pCentral, 150); /* *************************************************************** */ /* $(RTDS_HOME)/share/ccg/vxworks/bricks/RTDS_Startup_end.c begins */ /* Copyright (C) 2002 PragmaDev */ RTDS_SIMULATOR_TRACE(RTDS_initDone, NULL, NULL); /* Let all the created process run now */ #ifndef RTDS_SIMULATOR RTDS_START_SYNCHRO_GO; #endif /* To call for clean exit of the system by the last task */ /* RTDS_CRITICAL_SECTION_POSTAMBLE; RTDS_START_SYNCHRO_POSTAMBLE; */ } /* $(RTDS_HOME)/share/ccg/vxworks/bricks/RTDS_Startup_end.c ends */ /* ************************************************************* */