FreeBSD: implement Platform_getDiskIO()

This commit is contained in:
Christian Goettsche
2020-10-21 17:06:32 +02:00
committed by cgzones
parent c91061c84b
commit c2fdfd99eb
17 changed files with 87 additions and 59 deletions

View File

@ -313,7 +313,7 @@ void Platform_getPressureStall(const char *file, bool some, double* ten, double*
fclose(fd);
}
bool Platform_getDiskIO(unsigned long int *bytesRead, unsigned long int *bytesWrite, unsigned long int *msTimeSpend) {
bool Platform_getDiskIO(DiskIOData* data) {
FILE *fd = fopen(PROCDIR "/diskstats", "r");
if (!fd)
return false;
@ -352,9 +352,9 @@ bool Platform_getDiskIO(unsigned long int *bytesRead, unsigned long int *bytesWr
}
fclose(fd);
/* multiply with sector size */
*bytesRead = 512 * read_sum;
*bytesWrite = 512 * write_sum;
*msTimeSpend = timeSpend_sum;
data->totalBytesRead = 512 * read_sum;
data->totalBytesWritten = 512 * write_sum;
data->totalMsTimeSpend = timeSpend_sum;
return true;
}

View File

@ -11,6 +11,7 @@ in the source distribution for its full text.
#include <sys/types.h>
#include "Action.h"
#include "DiskIOMeter.h"
#include "Meter.h"
#include "Process.h"
#include "SignalsPanel.h"
@ -46,9 +47,7 @@ char* Platform_getProcessEnv(pid_t pid);
void Platform_getPressureStall(const char *file, bool some, double* ten, double* sixty, double* threehundred);
bool Platform_getDiskIO(unsigned long int *bytesRead,
unsigned long int *bytesWrite,
unsigned long int *msTimeSpend);
bool Platform_getDiskIO(DiskIOData* data);
bool Platform_getNetworkIO(unsigned long int *bytesReceived,
unsigned long int *packetsReceived,