mirror of
https://github.com/xmrig/xmrig.git
synced 2025-01-10 21:04:37 +00:00
Removed unnecessary system call.
This commit is contained in:
parent
259c165e60
commit
e26fbc96e9
1 changed files with 25 additions and 11 deletions
|
@ -29,6 +29,7 @@
|
|||
#include <cstdio>
|
||||
#include <dirent.h>
|
||||
#include <fcntl.h>
|
||||
#include <fstream>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
|
@ -48,7 +49,27 @@ static int msr_open(int32_t cpu, int flags)
|
|||
class MsrPrivate
|
||||
{
|
||||
public:
|
||||
bool available = true;
|
||||
inline MsrPrivate() : m_available(msr_allow_writes() || msr_modprobe()) {}
|
||||
|
||||
inline bool isAvailable() const { return m_available; }
|
||||
|
||||
private:
|
||||
inline bool msr_allow_writes()
|
||||
{
|
||||
std::ofstream file("/sys/module/msr/parameters/allow_writes", std::ios::out | std::ios::binary | std::ios::trunc);
|
||||
if (file.is_open()) {
|
||||
file << "on";
|
||||
}
|
||||
|
||||
return file.good();
|
||||
}
|
||||
|
||||
inline bool msr_modprobe()
|
||||
{
|
||||
return system("/sbin/modprobe msr allow_writes=on > /dev/null 2>&1") == 0;
|
||||
}
|
||||
|
||||
const bool m_available;
|
||||
};
|
||||
|
||||
|
||||
|
@ -57,15 +78,8 @@ public:
|
|||
|
||||
xmrig::Msr::Msr() : d_ptr(new MsrPrivate())
|
||||
{
|
||||
if(access("/sys/module/msr/parameters/allow_writes", F_OK) == 0) {
|
||||
if(system("echo on > /sys/module/msr/parameters/allow_writes") != 0) {
|
||||
d_ptr->available = false;
|
||||
}
|
||||
}
|
||||
else if (system("/sbin/modprobe msr allow_writes=on > /dev/null 2>&1") != 0) {
|
||||
LOG_WARN("%s " YELLOW_BOLD("msr kernel module is not available"), Msr::tag());
|
||||
|
||||
d_ptr->available = false;
|
||||
if (!isAvailable()) {
|
||||
LOG_WARN("%s " YELLOW_BOLD("msr kernel module is not available"), tag());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -78,7 +92,7 @@ xmrig::Msr::~Msr()
|
|||
|
||||
bool xmrig::Msr::isAvailable() const
|
||||
{
|
||||
return d_ptr->available;
|
||||
return d_ptr->isAvailable();
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue