void vt_esync_init() { /* get sync. interval */ SyncIntv = (uint64_t)vt_env_etimesync_intv() * vt_pform_clockres(); if (SyncIntv > 0) SyncNext = vt_pform_wtime() + SyncIntv; else SyncNext = (uint64_t)-1; }
uint32_t vt_rusage_open() { char* env; char* var; char* token; uint32_t intv = (uint32_t)vt_env_rusage_intv(); uint32_t i; /* read environment variable "VT_RUSAGE" */ if ( ( env = vt_env_rusage() ) == NULL ) return 0; var = strdup(env); vt_cntl_msg(2, "VT_RUSAGE=%s", var); /* convert VT_RUSAGE's letters to lower case */ token = var; while ( *token ) { *token = tolower(*token); token++; } if ( strcmp(var, "all") == 0 ) { /* add all rusage counters */ for ( i = 0; i < RU_CNTR_MAXNUM; i++ ) ru_active_cntrv[ru_active_cntrn++] = &(ru_cntrv[i]); } else { int idx; /* read rusage counter from specification string */ token = strtok(var, ":"); while ( token ) { idx = -1; if ( ru_active_cntrn == RU_CNTR_MAXNUM ) { vt_error_msg("Number of resource usage counters exceeds maximum of %d", RU_CNTR_MAXNUM); } /* search counter name in vector of counter specifications */ for ( i = 0; i < RU_CNTR_MAXNUM; i++ ) if( strcmp(ru_cntrv[i].name, token) == 0) idx = (int)ru_cntrv[i].idx; /* if found, add the address of this counter specification to vector of active counters; otherwise abort */ if ( idx != -1 ) ru_active_cntrv[ru_active_cntrn++] = &(ru_cntrv[idx]); else vt_error_msg("Unknown resource usage counter %s", token); token = strtok(NULL, ":"); } } /* set rusage read interval */ if ( intv > 0 ) vt_rusage_intv = (vt_pform_clockres() * (uint64_t)intv) / 1000; free(var); return ru_active_cntrn; }