Path: blob/main/benchmarks/kdiskmark/files/patch-src_diskdriveinfo.cpp
16124 views
--- src/diskdriveinfo.cpp.orig 2021-02-19 10:07:38 UTC1+++ src/diskdriveinfo.cpp2@@ -3,6 +3,10 @@3#include <QString>4#include <QFile>5#include <QFileInfo>6+#ifdef __FreeBSD__7+#include <sys/disk.h>8+#include <sys/fcntl.h>9+#endif1011QString DiskDriveInfo::getDeviceByVolume(const QString &volume)12{13@@ -12,6 +16,7 @@ QString DiskDriveInfo::getDeviceByVolume(const QString1415QString DiskDriveInfo::getModelName(const QString &volume)16{17+#if defined(__linux__)18QFileInfo sysClass(QFileInfo(QString("/sys/class/block/%1/..")19.arg(getDeviceByVolume(volume)))20.canonicalFilePath());21@@ -24,7 +29,18 @@ QString DiskDriveInfo::getModelName(const QString &vol22QString model = sysBlock.readAll().simplified();2324sysBlock.close();25+#elif defined(__FreeBSD__)26+ struct diocgattr_arg arg;2728+ strlcpy(arg.name, "GEOM::descr", sizeof(arg.name));29+ arg.len = sizeof(arg.value.str);30+31+ int fd = open(volume.toStdString().c_str(), O_RDONLY);32+ if (fd == -1 || ioctl(fd, DIOCGATTR, &arg) == -1)33+ return QString();34+35+ QString model(arg.value.str);36+#endif37return model;38}39404142