mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2026-09-12 10:22:12 +02:00
DiskIO (OpenBSD): add support
This commit is contained in:
+1
-1
@@ -773,7 +773,7 @@ elseif(OpenBSD)
|
||||
src/detection/dns/dns_linux.c
|
||||
src/detection/physicaldisk/physicaldisk_nosupport.c
|
||||
src/detection/physicalmemory/physicalmemory_nosupport.c
|
||||
src/detection/diskio/diskio_nosupport.c
|
||||
src/detection/diskio/diskio_obsd.c
|
||||
src/detection/displayserver/linux/displayserver_linux.c
|
||||
src/detection/displayserver/linux/drm.c
|
||||
src/detection/displayserver/linux/wayland/wayland.c
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
#include "diskio.h"
|
||||
#include "util/stringUtils.h"
|
||||
#include "util/mallocHelper.h"
|
||||
|
||||
#include <sys/disk.h>
|
||||
#include <sys/sysctl.h>
|
||||
|
||||
const char* ffDiskIOGetIoCounters(FFlist* result, FFDiskIOOptions* options)
|
||||
{
|
||||
int mib[] = {CTL_HW, HW_DISKSTATS};
|
||||
size_t len;
|
||||
if (sysctl(mib, ARRAY_SIZE(mib), NULL, &len, NULL, 0) < 0)
|
||||
return "sysctl({HW_DISKSTATS}, NULL) failed";
|
||||
uint32_t nDrive = (uint32_t) (len / sizeof(struct diskstats));
|
||||
|
||||
printf("C: %d\n", nDrive);
|
||||
|
||||
struct diskstats* stats = malloc(len);
|
||||
|
||||
if (sysctl(mib, ARRAY_SIZE(mib), stats, &len, NULL, 0) < 0)
|
||||
return "sysctl({HW_DISKSTATS}, stats) failed";
|
||||
|
||||
for (uint32_t i = 0; i < nDrive; ++i)
|
||||
{
|
||||
struct diskstats* st = &stats[i];
|
||||
|
||||
if (options->namePrefix.length && strncmp(st->ds_name, options->namePrefix.chars, options->namePrefix.length) != 0)
|
||||
continue;
|
||||
|
||||
FFDiskIOResult* device = (FFDiskIOResult*) ffListAdd(result);
|
||||
ffStrbufInitF(&device->devPath, "/dev/%s", st->ds_name);
|
||||
ffStrbufInitS(&device->name, st->ds_name);
|
||||
device->bytesRead = st->ds_rbytes;
|
||||
device->readCount = st->ds_rxfer;
|
||||
device->bytesWritten = st->ds_wbytes;
|
||||
device->writeCount = st->ds_wxfer;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
Reference in New Issue
Block a user