/* * ======== CERuntime_init ======== */ Void CERuntime_init(Void) { GT_init(); /* allow user to over-ride via CE_TRACE. */ GT_set(Global_getenv("CE_TRACE")); Global_init(); Sem_init(); SemMP_init(); Memory_init(); Queue_init(); Comm_init(); Thread_init(); Processor_init(); LockMP_init(); /* Must be called before DMAN3_init() */ Algorithm_init(); XdmUtils_init(); Lock_init(); Engine_init(); Server_init(); }
char *test_Server_init() { mqinit(1); Server_init(); return NULL; }
void final_setup() { start_terminator(); Server_init(); bstring end_point = bfromcstr("inproc://access_log"); Server *srv = Server_queue_latest(); Log_init(bstrcpy(srv->access_log), end_point); Control_port_start(); taskdelay(500); log_info("-- " VERSION " Running. Copyright (C) Zed A. Shaw. Licensed BSD."); }
int main(int argc, char **argv) { printf("--------- Server --------------\n"); int port = PORT; if (argc>1) port = atoi(argv[1]); //create thread pool if (tpool_create(THREAD_NUM) != 0) { printf("tpool_create failed\n"); exit(-1); } printf("--- Thread Pool Strat ---\n"); //initial server int listenfd = Server_init(port); socklen_t sockaddr_len = sizeof(struct sockaddr); //epoll static struct epoll_event ev, events[EPOLL_SIZE]; int epfd = epoll_create(EPOLL_SIZE); ev.events = EPOLLIN; ev.data.fd = listenfd; epoll_ctl(epfd, EPOLL_CTL_ADD, listenfd, &ev); while(1){ int events_count = epoll_wait(epfd, events, EPOLL_SIZE, -1); int i=0; //accept resquest for(; i<events_count; i++){ if(events[i].data.fd == listenfd) { int connfd; struct sockaddr_in clientaddr; while( ( connfd = accept(listenfd, (struct sockaddr *)&clientaddr, &sockaddr_len) ) > 0 ) { printf("EPOLL: Received New Connection Request---connfd= %d\n",connfd); struct args *p_args = (struct args *)malloc(sizeof(struct args)); p_args->fd = connfd; p_args->recv_finfo = recv_fileinfo; p_args->recv_fdata = recv_filedata; //add task to the work list tpool_add_work(worker, (void*)p_args); } } } } return 0; }
Server * Server_new ( ServerStartupInfo *info ) { Server *self; if ((self = calloc (1, sizeof (Server))) == NULL) { return NULL; } if (!Server_init (self, info)) { Server_destroy (&self); error ("Server failed to initialize."); return NULL; } return self; }
/* * ======== smain ======== */ Void smain(UArg arg0, UArg arg1) { Int status = 0; Log_print0(Diags_ENTRY | Diags_INFO, "--> smain:"); /* initialize modules */ Server_init(); /* turn on Diags_INFO trace */ Diags_setMask("Server+F"); /* server setup phase */ status = Server_create(); if (status < 0) { goto leave; } /* server execute phase */ status = Server_exec(); if (status < 0) { goto leave; } /* server shutdown phase */ status = Server_delete(); if (status < 0) { goto leave; } /* finalize modules */ Server_exit(); leave: Log_print1(Diags_EXIT, "<-- smain: %d", (IArg)status); return; }
/* * ======== CERuntime_init ======== */ Void CERuntime_init(Void) { CESettings_init(); /* if CE_DEBUG is set, turn on tracing and DSP auto trace collection */ if (Global_getenv("CE_DEBUG") != NULL) { extern Bool Engine_alwaysCollectDspTrace; extern String Engine_ceDebugDspTraceMask; Engine_alwaysCollectDspTrace = TRUE; /* * Note the strategy for setting trace masks below... * For any mods not yet registered, we set the * [FC|CE]SETTINGS_MODNAME mask. For any mods already * registered, we Diags_setMask() them. */ if (Global_getenv("CE_DEBUG")[0] == '1') { /* Turn on CE/FC levels 6 and 7 */ xdc_runtime_Diags_setMask("ti.sdo.ce.%+67"); xdc_runtime_Diags_setMask("ti.sdo.fc.%+67"); /* Same for any Servers */ Engine_ceDebugDspTraceMask = "ti.sdo.ce.%+67;ti.sdo.fc.%+67"; } else if (Global_getenv("CE_DEBUG")[0] == '2') { //GT_set( // "*+01234567,CE-3,ti.sdo.ce.osal.SemMP=67,OG=467,OM=4567,OC=67,GT_time=0,GT_prefix=1235"); // * -> ti.sdo.ce.%, ti.sdo.fc.% xdc_runtime_Diags_setMask(CESETTINGS_MODNAME"+EX1234567"); xdc_runtime_Diags_setMask("ti.sdo.ce.%+EX1234567"); xdc_runtime_Diags_setMask("ti.sdo.fc.%+EX1234567"); // CE-3 -> ti.sdo.ce.Engine-3 xdc_runtime_Diags_setMask("ti.sdo.ce.Engine-3"); // OG, OM, SemMP -> ti.sdo.xdcruntime.linux //xdc_runtime_Diags_setMask("ti.sdo.xdcruntime.linux.%+EX1234567"); Engine_ceDebugDspTraceMask = // Former GT mask: //"*+01234567,CR=67,ti.sdo.fc.dman3-2,ti.sdo.fc.dskt2-2,GT_prefix=1235,GT_time=3"; // Current Diags mask: (time=2 ==> display time in delta usec "ti.sdo.ce.%+EX1234567;ti.sdo.fc.%+EX12345678;ti.sdo.ce.rms=67;ti.sdo.fc.dman3-2;ti.sdo.fc.dskt2-2;time=2"; } else if (Global_getenv("CE_DEBUG")[0] == '0') { /* Don't set anything if someone tries to turn CE_DEBUG off */ } else { //GT_set("*+01234567,CE-3,GT_time=0,GT_prefix=12345"); xdc_runtime_Diags_setMask("ti.sdo.ce.%+EX1234567"); xdc_runtime_Diags_setMask("ti.sdo.fc.%+EX1234567"); //TEMP (jeh) xdc_runtime_Diags_setMask("ti.sdo.ce.Engine-3"); //xdc_runtime_Diags_setMask("ti.sdo.xdcruntime.linux.%+EX1234567"); //Engine_ceDebugDspTraceMask = "*+01234567,GT_prefix=12345,GT_time=3"; Engine_ceDebugDspTraceMask = "time=2;ti.sdo.fc.%+EX1234567;ti.sdo.ce.%+EX1234567;ti.sdo.fc.dskt2-2"; } } else { //xdc_runtime_Diags_setMask("ti.sdo.ce.Engine-EX1234567"); //xdc_runtime_Diags_setMask("ti.sdo.ce.VISA-EX1234567"); } if (Global_getenv("CE_CHECK") != NULL) { extern Bool VISA_checked; /* * Currently just change _this_ processor's value... perhaps we should * enable remote processors as well? */ if (Global_getenv("CE_CHECK")[0] == '1') { VISA_checked = TRUE; xdc_runtime_Diags_setMask("ti.sdo.ce.%+7"); } else if (Global_getenv("CE_CHECK")[0] == '0') { VISA_checked = FALSE; } else { /* leave it whatever it was... maybe we should drop a warning? */ } } /* allow user to over-ride via CE_TRACE. */ if (Global_getenv("CE_TRACE") != NULL) { xdc_runtime_Diags_setMask(Global_getenv("CE_TRACE")); } Global_init(); ti_sdo_ce_osal_Memory_init(); Comm_init(); Processor_init(); Algorithm_init(); XdmUtils_init(); Engine_init(); _VISA_init(); Loader_init(); Server_init(); if ((Global_getenv("CE_DEBUG") != NULL) && (Global_getenv("CE_DEBUG")[0] == '2')) { /* set up masks that must be deferred until the modules have been init'd */ // "*+01234567,CE-3,ti.sdo.ce.osal.SemMP=67,OG=467,OM=4567,OC=67,GT_time=0,GT_prefix=1235"); //xdc_runtime_Diags_setMask(Comm_MODNAME"-EX12345"); xdc_runtime_Diags_setMask("ti.sdo.ce.osal.%-EX123"); //xdc_runtime_Diags_setMask(Algorithm_MODNAME"-EX12345"); // CE-3 -> ti.sdo.ce.Engine-3 xdc_runtime_Diags_setMask("ti.sdo.ce.Engine-3"); // OC=67 -> ti.sdo.ce.ipc.Comm=67 xdc_runtime_Diags_setMask("ti.sdo.ce.ipc.Comm=67"); } RtCfg_init(); /* * Allow user to over-ride via CE_TRACE. Putting this after module * initialization, since it will have no effect may have no effect * if called before. Only wildcard settings seem to work when placed * before module initialization. */ if (Global_getenv("CE_TRACE") != NULL) { xdc_runtime_Diags_setMask(Global_getenv("CE_TRACE")); } }
/* * ======== CERuntime_init ======== */ Void CERuntime_init(Void) { if (ceInit++ == 0) { CESettings_init(); FCSettings_init(); /* if CE_DEBUG is set, turn on tracing and DSP auto trace collection */ if (Global_getenv("CE_DEBUG") != NULL) { extern Bool Engine_alwaysCollectDspTrace; extern String Engine_ceDebugDspTraceMask; Engine_alwaysCollectDspTrace = TRUE; /* * Note the strategy for setting trace masks below... * For any mods not yet registered, we set the * [FC|CE]SETTINGS_MODNAME mask. For any mods already * registered, we Diags_setMask() them. */ if (Global_getenv("CE_DEBUG")[0] == '1') { /* Turn on CE/FC levels 6 and 7 */ xdc_runtime_Diags_setMask(CESETTINGS_MODNAME"+67"); xdc_runtime_Diags_setMask(FCSETTINGS_MODNAME"+67"); xdc_runtime_Diags_setMask("ti.sdo.ce.%+67"); xdc_runtime_Diags_setMask("ti.sdo.fc.%+67"); /* Same for any Servers */ Engine_ceDebugDspTraceMask = "ti.sdo.ce.%+67;ti.sdo.fc.%+67"; } else if (Global_getenv("CE_DEBUG")[0] == '2') { xdc_runtime_Diags_setMask(CESETTINGS_MODNAME"+EX1234567"); xdc_runtime_Diags_setMask(FCSETTINGS_MODNAME"+EX1234567"); xdc_runtime_Diags_setMask("ti.sdo.ce.%+EX1234567"); xdc_runtime_Diags_setMask("ti.sdo.fc.%+EX1234567"); Engine_ceDebugDspTraceMask = // Current Diags mask: (time=2 ==> display time in delta usec "ti.sdo.ce.%+EX1234567;ti.sdo.fc.%+EX12345678;ti.sdo.ce.rms=67;ti.sdo.fc.dman3-2;ti.sdo.fc.dskt2-2;time=2"; } else if (Global_getenv("CE_DEBUG")[0] == '0') { /* Don't set anything if someone tries to turn CE_DEBUG off */ } else { xdc_runtime_Diags_setMask("ti.sdo.ce.%+EX1234567"); xdc_runtime_Diags_setMask("ti.sdo.fc.%+EX1234567"); Engine_ceDebugDspTraceMask = "time=2;ti.sdo.fc.%+EX1234567;ti.sdo.ce.%+EX1234567;ti.sdo.fc.dskt2-2"; } } else { //xdc_runtime_Diags_setMask("ti.sdo.ce.Engine-EX1234567"); //xdc_runtime_Diags_setMask("ti.sdo.ce.VISA-EX1234567"); } if (Global_getenv("CE_CHECK") != NULL) { extern Bool VISA_checked; /* * Currently just change _this_ processor's value... perhaps we * should enable remote processors as well? */ if (Global_getenv("CE_CHECK")[0] == '1') { VISA_checked = TRUE; xdc_runtime_Diags_setMask("ti.sdo.ce.%+7"); } else if (Global_getenv("CE_CHECK")[0] == '0') { VISA_checked = FALSE; } else { /* leave it whatever it was. maybe we should drop a warning? */ } } /* allow user to over-ride via CE_TRACE. */ if (Global_getenv("CE_TRACE") != NULL) { xdc_runtime_Diags_setMask(Global_getenv("CE_TRACE")); } Global_init(); ti_sdo_ce_osal_Memory_init(); Comm_init(); Processor_init(); Algorithm_init(); XdmUtils_init(); Trace_init(); RMS_init(); Global_atexit((Fxn)RMS_exit); Engine_init(); _VISA_init(); Loader_init(); Server_init(); if ((Global_getenv("CE_DEBUG") != NULL) && (Global_getenv("CE_DEBUG")[0] == '2')) { /* * set up masks that must be deferred until the modules have been * initialized. */ //xdc_runtime_Diags_setMask(Comm_MODNAME"-EX12345"); xdc_runtime_Diags_setMask("ti.sdo.ce.osal.%-EX123"); //xdc_runtime_Diags_setMask(Algorithm_MODNAME"-EX12345"); xdc_runtime_Diags_setMask("ti.sdo.ce.Engine-3"); xdc_runtime_Diags_setMask("ti.sdo.ce.ipc.Comm=67"); } /* * Allow user to over-ride via CE_TRACE. Putting this after module * initialization, since it will have no effect if called before. * Only wildcard settings seem to work when placed before module * initialization. */ if (Global_getenv("CE_TRACE") != NULL) { xdc_runtime_Diags_setMask(Global_getenv("CE_TRACE")); } } }
/* * ======== CERuntime_init ======== */ Void CERuntime_init(Void) { extern Void IPC_generatedInit(); GT_init(); /* if CE_DEBUG is set, turn on tracing and DSP auto trace collection */ if (Global_getenv("CE_DEBUG") != NULL) { extern Bool Engine_alwaysCollectDspTrace; extern String Engine_ceDebugDspTraceMask; Engine_alwaysCollectDspTrace = TRUE; if (Global_getenv("CE_DEBUG")[0] == '1') { GT_set("*+67,CE-3,GT_time=0,GT_prefix=1235"); Engine_ceDebugDspTraceMask = "*+67,GT_prefix=1235,GT_time=3"; } else if (Global_getenv("CE_DEBUG")[0] == '2') { GT_set( "*+01234567,CE-3,ti.sdo.ce.osal.SemMP=67,OG=467,OM=4567,OC=67,GT_time=0,GT_prefix=1235"); Engine_ceDebugDspTraceMask = "*+01234567,CR=67,ti.sdo.fc.dman3-2,ti.sdo.fc.dskt2-2,GT_prefix=1235,GT_time=3"; } else { GT_set("*+01234567,CE-3,GT_time=0,GT_prefix=12345"); Engine_ceDebugDspTraceMask = "*+01234567,GT_prefix=12345,GT_time=3"; } } if (Global_getenv("CE_CHECK") != NULL) { extern Bool VISA_checked; /* * Currently just change _this_ processor's value... perhaps we should * enable remote processors as well? */ if (Global_getenv("CE_CHECK")[0] == '1') { VISA_checked = TRUE; /* turn on all GT_7CLASS trace (errors) */ GT_set("*+7"); } else if (Global_getenv("CE_CHECK")[0] == '0') { VISA_checked = FALSE; } else { /* leave it whatever it was... maybe we should drop a warning? */ } } /* allow user to over-ride via CE_TRACE. */ GT_set(Global_getenv("CE_TRACE")); IPC_generatedInit(); Global_init(); Sem_init(); SemMP_init(); Memory_init(); Queue_init(); Comm_init(); Thread_init(); Processor_init(); LockMP_init(); /* Must be called before DMAN3_init() */ Algorithm_init(); XdmUtils_init(); Lock_init(); Engine_init(); Server_init(); }