/* * ======== Server_init ======== */ Void Server_init(Void) { Registry_Result result; if (curInit++ != 0) { return; /* already initialized */ } /* register with xdc.runtime to get a diags mask */ result = Registry_addModule(&Registry_CURDESC, MODULE_NAME); Assert_isTrue(result == Registry_SUCCESS, (Assert_Id)NULL); /* initialize module state */ Module.hostProcId = MultiProc_getId("HOST"); Module.lineId = SystemCfg_LineId; Module.eventId = SystemCfg_AppEventId; Module.semH = NULL; Module.heapH = NULL; Module.head = 0; Module.tail = 0; Module.error = 0; Module.rcmServerH = NULL; RcmServer_init(); }
Void ServiceMgr_init() { Task_Params params; UInt i; RcmServer_init(); for (i = 0; i < ServiceMgr_NUMSERVICETYPES; i++) { serviceDefs[i].taken = FALSE; } for (i = 0; i < MAX_TUPLES; i++) { Tuples[i].key = FREE_TUPLE_KEY; } /* Create our ServiceMgr Thread: */ Task_Params_init(¶ms); params.instance->name = "ServiceMgr"; params.priority = 1; /* Lowest priority thread */ Task_create(serviceMgrTaskFxn, ¶ms, NULL); }
/* * ======== RcmServerThreadFxn ======== * RCM server test thread function */ Void RcmServerThreadFxn (Void *arg) { RcmServer_Params rcmServerParams; UInt fxnIdx; Char * rcmServerName = RCMSERVER_NAME; Int status = 0; /* Rcm server module init */ Osal_printf ("RcmServerThreadFxn: RCM Server module init.\n"); RcmServer_init (); /* Rcm server module params init*/ Osal_printf ("RcmServerThreadFxn: RCM Server module params init.\n"); status = RcmServer_Params_init (&rcmServerParams); if (status < 0) { Osal_printf ("RcmServerThreadFxn: Error in RCM Server instance params " "init \n"); goto exit; } Osal_printf ("RcmServerThreadFxn: RCM Server instance params init " "passed \n"); /* Create the RcmServer instance */ Osal_printf ("RcmServerThreadFxn: Creating RcmServer instance %s.\n", rcmServerName); status = RcmServer_create (rcmServerName, &rcmServerParams, &rcmServerHandle); if (status < 0) { Osal_printf ("RcmServerThreadFxn: Error in RCM Server create.\n"); goto exit; } Osal_printf ("RcmServerThreadFxn: RCM Server Create passed \n"); sem_init (&serverThreadSync, 0, 0); /* Register the remote functions */ Osal_printf ("RcmServerThreadFxn: Registering remote function - " "fxnDouble\n"); status = RcmServer_addSymbol (rcmServerHandle, "fxnDouble", fxnDouble, &fxnIdx); if ((status < 0) || (fxnIdx == 0xFFFFFFFF)) { Osal_printf ("RcmServerThreadFxn: Add symbol failed.\n"); goto exit; } Osal_printf ("RcmServerThreadFxn: Registering remote function - " "fxnExit\n"); status = RcmServer_addSymbol (rcmServerHandle, "fxnExit", fxnExit, &fxnIdx); if ((status < 0) || (fxnIdx == 0xFFFFFFFF)) { Osal_printf ("RcmServerThreadFxn: Add symbol failed.\n"); goto exit; } Osal_printf ("RcmServerThreadFxn: Start RCM server thread \n"); RcmServer_start (rcmServerHandle); Osal_printf ("RcmServerThreadFxn: RCM Server start passed \n"); sem_wait (&serverThreadSync); sem_post (&mainThreadWait); exit: Osal_printf ("RcmServerThreadFxn: Leaving RCM server test thread " "function \n"); return; }