calculate sizeof within perfstat proxy

This commit is contained in:
Doug MacEachern 2007-07-15 16:30:18 +00:00
parent 203a4bbd08
commit 148c562ff6
3 changed files with 24 additions and 31 deletions

View File

@ -624,7 +624,7 @@ static int sigar_swap_get_perfstat(sigar_t *sigar, sigar_swap_t *swap)
SIGAR_ZERO(swap); SIGAR_ZERO(swap);
do { do {
if (sigar->perfstat.swap(&id, &ps, sizeof(ps), 1) != 1) { if (sigar->perfstat.swap(&id, &ps, 1) != 1) {
if (SIGAR_LOG_IS_DEBUG(sigar)) { if (SIGAR_LOG_IS_DEBUG(sigar)) {
sigar_log_printf(sigar, SIGAR_LOG_DEBUG, sigar_log_printf(sigar, SIGAR_LOG_DEBUG,
"[swap] dev=%s query failed: %s", "[swap] dev=%s query failed: %s",
@ -675,7 +675,7 @@ int sigar_cpu_get(sigar_t *sigar, sigar_cpu_t *cpu)
if (sigar_perfstat_init(sigar) == SIGAR_OK) { if (sigar_perfstat_init(sigar) == SIGAR_OK) {
sigar_log(sigar, SIGAR_LOG_DEBUG, "[cpu] using libperfstat"); sigar_log(sigar, SIGAR_LOG_DEBUG, "[cpu] using libperfstat");
if (sigar->perfstat.cpu_total(&cpu_data, sizeof(cpu_data)) == 1) { if (sigar->perfstat.cpu_total(&cpu_data) == 1) {
cpu->user = SIGAR_TICK2MSEC(cpu_data.user); cpu->user = SIGAR_TICK2MSEC(cpu_data.user);
cpu->nice = SIGAR_FIELD_NOTIMPL; /* N/A */ cpu->nice = SIGAR_FIELD_NOTIMPL; /* N/A */
cpu->sys = SIGAR_TICK2MSEC(cpu_data.sys); cpu->sys = SIGAR_TICK2MSEC(cpu_data.sys);
@ -793,7 +793,7 @@ static int sigar_cpu_list_get_pstat(sigar_t *sigar, sigar_cpu_list_t *cpulist)
i, id.name); i, id.name);
} }
if (sigar->perfstat.cpu(&id, &data, sizeof(data), 1) == 1) { if (sigar->perfstat.cpu(&id, &data, 1) == 1) {
cpu->user = SIGAR_TICK2MSEC(data.user); cpu->user = SIGAR_TICK2MSEC(data.user);
cpu->nice = SIGAR_FIELD_NOTIMPL; /* N/A */ cpu->nice = SIGAR_FIELD_NOTIMPL; /* N/A */
cpu->sys = SIGAR_TICK2MSEC(data.sys); cpu->sys = SIGAR_TICK2MSEC(data.sys);
@ -935,7 +935,7 @@ int sigar_loadavg_get(sigar_t *sigar,
sigar_log(sigar, SIGAR_LOG_DEBUG, sigar_log(sigar, SIGAR_LOG_DEBUG,
"[loadavg] using libperfstat"); "[loadavg] using libperfstat");
if (sigar->perfstat.cpu_total(&cpu_data, sizeof(cpu_data)) == 1) { if (sigar->perfstat.cpu_total(&cpu_data) == 1) {
for (i=0; i<3; i++) { for (i=0; i<3; i++) {
loadavg->loadavg[i] = FIXED_TO_DOUBLE(cpu_data.loadavg[i]); loadavg->loadavg[i] = FIXED_TO_DOUBLE(cpu_data.loadavg[i]);
} }
@ -1560,7 +1560,7 @@ static int create_diskmap_v5(sigar_t *sigar)
return SIGAR_ENOTIMPL; return SIGAR_ENOTIMPL;
} }
total = sigar->perfstat.disk(NULL, NULL, sizeof(*disk), 0); total = sigar->perfstat.disk(NULL, NULL, 0);
if (total < 1) { if (total < 1) {
return ENOENT; return ENOENT;
} }
@ -1568,7 +1568,7 @@ static int create_diskmap_v5(sigar_t *sigar)
disk = malloc(total * sizeof(*disk)); disk = malloc(total * sizeof(*disk));
id.name[0] = '\0'; id.name[0] = '\0';
num = sigar->perfstat.disk(&id, disk, sizeof(*disk), total); num = sigar->perfstat.disk(&id, disk, total);
if (num < 1) { if (num < 1) {
free(disk); free(disk);
return ENOENT; return ENOENT;
@ -1645,7 +1645,7 @@ static int get_perfstat_disk_metrics(sigar_t *sigar,
SIGAR_SSTRCPY(id.name, diskio->name); SIGAR_SSTRCPY(id.name, diskio->name);
if (sigar->perfstat.disk(&id, &disk, sizeof(disk), 1) != 1) { if (sigar->perfstat.disk(&id, &disk, 1) != 1) {
return ENOENT; return ENOENT;
} }
@ -1823,7 +1823,7 @@ static int sigar_get_cpu_mhz_perfstat(sigar_t *sigar)
perfstat_cpu_total_t data; perfstat_cpu_total_t data;
if (sigar_perfstat_init(sigar) == SIGAR_OK) { if (sigar_perfstat_init(sigar) == SIGAR_OK) {
if (sigar->perfstat.cpu_total(&data, sizeof(data)) == 1) { if (sigar->perfstat.cpu_total(&data) == 1) {
sigar->cpu_mhz = data.processorHZ / 1000000; sigar->cpu_mhz = data.processorHZ / 1000000;
return SIGAR_OK; return SIGAR_OK;
} }

View File

@ -25,40 +25,36 @@
* desired_number Must be set to 1." * desired_number Must be set to 1."
* so we just hardcode that in our wrapper. * so we just hardcode that in our wrapper.
*/ */
int sigar_perfstat_cpu_total(perfstat_cpu_total_t *cpu_total, size_t size) int sigar_perfstat_cpu_total(perfstat_cpu_total_t *cpu_total)
{ {
return perfstat_cpu_total(NULL, cpu_total, size, 1); return perfstat_cpu_total(NULL, cpu_total, sizeof(*cpu_total), 1);
} }
int sigar_perfstat_cpu(perfstat_id_t *id, int sigar_perfstat_cpu(perfstat_id_t *id,
perfstat_cpu_t *cpu, perfstat_cpu_t *cpu,
size_t size, int num) int num)
{ {
return perfstat_cpu(id, cpu, size, num); return perfstat_cpu(id, cpu, sizeof(*cpu), num);
} }
int sigar_perfstat_pagingspace(perfstat_id_t *id, int sigar_perfstat_pagingspace(perfstat_id_t *id,
perfstat_pagingspace_t *pagingspace, perfstat_pagingspace_t *pagingspace,
size_t size,
int num) int num)
{ {
return perfstat_pagingspace(id, pagingspace, size, num); return perfstat_pagingspace(id, pagingspace, sizeof(*pagingspace), num);
} }
int sigar_perfstat_memory_total(perfstat_id_t *id, int sigar_perfstat_memory(perfstat_id_t *id,
perfstat_memory_total_t *memory, perfstat_memory_total_t *memory)
size_t size,
int num)
{ {
return perfstat_memory_total(id, memory, size, num); return perfstat_memory_total(id, memory, sizeof(*memory), 1);
} }
int sigar_perfstat_disk(perfstat_id_t *id, int sigar_perfstat_disk(perfstat_id_t *id,
perfstat_disk_t *disk, perfstat_disk_t *disk,
size_t size,
int num) int num)
{ {
return perfstat_disk(id, disk, size, num); return perfstat_disk(id, disk, sizeof(*disk), num);
} }
int sigar_perfstat_diskadapter(perfstat_id_t *id, int sigar_perfstat_diskadapter(perfstat_id_t *id,
@ -71,10 +67,9 @@ int sigar_perfstat_diskadapter(perfstat_id_t *id,
int sigar_perfstat_diskpath(perfstat_id_t *id, int sigar_perfstat_diskpath(perfstat_id_t *id,
perfstat_diskpath_t *diskpath, perfstat_diskpath_t *diskpath,
size_t size,
int num) int num)
{ {
return perfstat_diskpath(id, diskpath, size, num); return perfstat_diskpath(id, diskpath, sizeof(*diskpath), num);
} }
int sigar_perfstat_netinterface(perfstat_id_t *id, int sigar_perfstat_netinterface(perfstat_id_t *id,
@ -87,18 +82,16 @@ int sigar_perfstat_netinterface(perfstat_id_t *id,
int sigar_perfstat_netbuffer(perfstat_id_t *id, int sigar_perfstat_netbuffer(perfstat_id_t *id,
perfstat_netbuffer_t *netbuffer, perfstat_netbuffer_t *netbuffer,
size_t size,
int num) int num)
{ {
return perfstat_netbuffer(id, netbuffer, size, num); return perfstat_netbuffer(id, netbuffer, sizeof(*netbuffer), num);
} }
int sigar_perfstat_protocol(perfstat_id_t *id, int sigar_perfstat_protocol(perfstat_id_t *id,
perfstat_protocol_t *proto, perfstat_protocol_t *proto,
int size,
int num) int num)
{ {
return perfstat_protocol(id, proto, size, num); return perfstat_protocol(id, proto, sizeof(*proto), num);
} }
/* /*

View File

@ -48,19 +48,19 @@ typedef int (*vminfo_func_t) (void *, int, int);
typedef int (*proc_fd_func_t) (sigar_t *, sigar_pid_t, sigar_proc_fd_t *); typedef int (*proc_fd_func_t) (sigar_t *, sigar_pid_t, sigar_proc_fd_t *);
typedef int (*perfstat_cpu_total_func_t)(perfstat_cpu_total_t *, size_t); typedef int (*perfstat_cpu_total_func_t)(perfstat_cpu_total_t *);
typedef int (*perfstat_cpu_func_t)(perfstat_id_t *, typedef int (*perfstat_cpu_func_t)(perfstat_id_t *,
perfstat_cpu_t *, perfstat_cpu_t *,
size_t, int); int);
typedef int (*perfstat_swap_func_t)(perfstat_id_t *, typedef int (*perfstat_swap_func_t)(perfstat_id_t *,
perfstat_pagingspace_t *, perfstat_pagingspace_t *,
size_t, int); int);
typedef int (*perfstat_disk_func_t)(perfstat_id_t *, typedef int (*perfstat_disk_func_t)(perfstat_id_t *,
perfstat_disk_t *, perfstat_disk_t *,
size_t, int); int);
typedef int (*perfstat_ifstat_func_t)(perfstat_id_t *, typedef int (*perfstat_ifstat_func_t)(perfstat_id_t *,
perfstat_netinterface_t *); perfstat_netinterface_t *);