You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
MangoHud/src/loaders/loader_nvml.h

61 lines
1.9 KiB
C++

// This is generated file. Do not modify directly.
// Path to the code generator: /home/crz/git/MangoHud/generate_library_loader.py .
#ifndef LIBRARY_LOADER_NVML_H
#define LIBRARY_LOADER_NVML_H
#if USE_SYSTEM_NVML
#include <nvml.h>
#else
#include "nvml.h"
#endif
#define LIBRARY_LOADER_NVML_H_DLOPEN
#include <string>
#include <dlfcn.h>
class libnvml_loader {
public:
libnvml_loader();
libnvml_loader(const std::string& library_name) : libnvml_loader() {
Load(library_name);
}
~libnvml_loader();
bool Load(const std::string& library_name);
bool IsLoaded() { return loaded_; }
decltype(&::nvmlInit_v2) nvmlInit_v2;
decltype(&::nvmlShutdown) nvmlShutdown;
decltype(&::nvmlDeviceGetUtilizationRates) nvmlDeviceGetUtilizationRates;
decltype(&::nvmlDeviceGetTemperature) nvmlDeviceGetTemperature;
decltype(&::nvmlDeviceGetPciInfo_v3) nvmlDeviceGetPciInfo_v3;
decltype(&::nvmlDeviceGetCount_v2) nvmlDeviceGetCount_v2;
decltype(&::nvmlDeviceGetHandleByIndex_v2) nvmlDeviceGetHandleByIndex_v2;
decltype(&::nvmlDeviceGetHandleByPciBusId_v2) nvmlDeviceGetHandleByPciBusId_v2;
decltype(&::nvmlDeviceGetMemoryInfo) nvmlDeviceGetMemoryInfo;
decltype(&::nvmlDeviceGetClockInfo) nvmlDeviceGetClockInfo;
decltype(&::nvmlErrorString) nvmlErrorString;
decltype(&::nvmlDeviceGetPowerUsage) nvmlDeviceGetPowerUsage;
decltype(&::nvmlDeviceGetCurrentClocksThrottleReasons) nvmlDeviceGetCurrentClocksThrottleReasons;
decltype(&::nvmlUnitGetFanSpeedInfo) nvmlUnitGetFanSpeedInfo;
decltype(&::nvmlUnitGetHandleByIndex) nvmlUnitGetHandleByIndex;
decltype(&::nvmlDeviceGetFanSpeed) nvmlDeviceGetFanSpeed;
private:
void CleanUp(bool unload);
#if defined(LIBRARY_LOADER_NVML_H_DLOPEN)
void* library_ = nullptr;
#endif
bool loaded_;
// Disallow copy constructor and assignment operator.
libnvml_loader(const libnvml_loader&);
void operator=(const libnvml_loader&);
};
libnvml_loader& get_libnvml_loader();
#endif // LIBRARY_LOADER_NVML_H