static int hkpt_params_fetch_values(const char *key, REGVAL_CTR *regvals) { uint32 base_index; uint32 buffer_size; char *buffer = NULL; /* This is ALMOST the same as perflib_009_params, but HKPT has a "Counters" entry instead of a "Counter" key. <Grrrr> */ base_index = reg_perfcount_get_base_index(); buffer_size = reg_perfcount_get_counter_names(base_index, &buffer); regval_ctr_addvalue(regvals, "Counters", REG_MULTI_SZ, buffer, buffer_size); if(buffer_size > 0) { SAFE_FREE(buffer); } buffer_size = reg_perfcount_get_counter_help(base_index, &buffer); regval_ctr_addvalue(regvals, "Help", REG_MULTI_SZ, buffer, buffer_size); if(buffer_size > 0) { SAFE_FREE(buffer); } return regval_ctr_numvals( regvals ); }
static int perflib_params(struct regval_ctr *regvals) { int base_index = -1; int last_counter = -1; int last_help = -1; int version = 0x00010001; base_index = reg_perfcount_get_base_index(); regval_ctr_addvalue(regvals, "Base Index", REG_DWORD, (uint8_t *)&base_index, sizeof(base_index)); last_counter = reg_perfcount_get_last_counter(base_index); regval_ctr_addvalue(regvals, "Last Counter", REG_DWORD, (uint8_t *)&last_counter, sizeof(last_counter)); last_help = reg_perfcount_get_last_help(last_counter); regval_ctr_addvalue(regvals, "Last Help", REG_DWORD, (uint8_t *)&last_help, sizeof(last_help)); regval_ctr_addvalue(regvals, "Version", REG_DWORD, (uint8_t *)&version, sizeof(version)); return regval_ctr_numvals( regvals ); }
static int perflib_009_params(struct regval_ctr *regvals) { int base_index; int buffer_size; char *buffer = NULL; base_index = reg_perfcount_get_base_index(); buffer_size = reg_perfcount_get_counter_names(base_index, &buffer); regval_ctr_addvalue(regvals, "Counter", REG_MULTI_SZ, (uint8_t *)buffer, buffer_size); if(buffer_size > 0) SAFE_FREE(buffer); buffer_size = reg_perfcount_get_counter_help(base_index, &buffer); regval_ctr_addvalue(regvals, "Help", REG_MULTI_SZ, (uint8_t *)buffer, buffer_size); if(buffer_size > 0) SAFE_FREE(buffer); return regval_ctr_numvals( regvals ); }