2 * Author......: Jens Steube <jens.steube@gmail.com>
8 int nvapi_init (NVAPI_PTR
*nvapi
)
10 if (!nvapi
) return (-1);
12 memset (nvapi
, 0, sizeof (NVAPI_PTR
));
15 nvapi
->lib
= hc_dlopen ("nvapi64.lib");
17 nvapi
->lib
= hc_dlopen ("nvapi.lib");
23 log_info ("WARNING: load NVAPI library failed, proceed without NVAPI HWMon enabled.");
28 HC_LOAD_FUNC(nvapi
, NvAPI_Initialize
, NVAPI_INITIALIZE
, NVAPI
, 0)
29 HC_LOAD_FUNC(nvapi
, NvAPI_Unload
, NVAPI_UNLOAD
, NVAPI
, 0)
30 HC_LOAD_FUNC(nvapi
, NvAPI_GetErrorMessage
, NVAPI_GETERRORMESSAGE
, NVAPI
, 0)
31 HC_LOAD_FUNC(nvapi
, NvAPI_EnumPhysicalGPUs
, NVAPI_ENUMPHYSICALGPUS
, NVAPI
, 0)
32 HC_LOAD_FUNC(nvapi
, NvAPI_GPU_GetThermalSettings
, NVAPI_GPU_GETTHERMALSETTINGS
, NVAPI
, 0)
33 HC_LOAD_FUNC(nvapi
, NvAPI_GPU_GetTachReading
, NVAPI_GPU_GETTACHREADING
, NVAPI
, 0)
34 HC_LOAD_FUNC(nvapi
, NvAPI_GPU_GetDynamicPstatesInfoEx
, NVAPI_GPU_GETDYNAMICPSTATESINFOEX
, NVAPI
, 0)
39 void nvapi_close (NVAPI_PTR
*nvapi
)
44 hc_dlclose (nvapi
->lib
);
50 int hm_NvAPI_Initialize (NVAPI_PTR
*nvapi
)
52 if (!nvapi
) return (-1);
54 NvAPI_Status NvAPI_rc
= nvapi
->NvAPI_Initialize ();
56 if (NvAPI_rc
!= NVAPI_OK
)
58 NvAPI_ShortString string
;
60 hm_NvAPI_GetErrorMessage (nvapi
, NvAPI_rc
, string
);
62 log_info ("WARN: %s %d %s\n", "NvAPI_Initialize()", NvAPI_rc
, string
);
68 int hm_NvAPI_Unload (NVAPI_PTR
*nvapi
)
70 if (!nvapi
) return (-1);
72 NvAPI_Status NvAPI_rc
= nvapi
->NvAPI_Unload ();
74 if (NvAPI_rc
!= NVAPI_OK
)
76 NvAPI_ShortString string
;
78 hm_NvAPI_GetErrorMessage (nvapi
, NvAPI_rc
, string
);
80 log_info ("WARN: %s %d %s\n", "NvAPI_Unload()", NvAPI_rc
, string
);
86 int hm_NvAPI_GetErrorMessage (NVAPI_PTR
*nvapi
, NvAPI_Status NvAPI_rc
, NvAPI_ShortString string
)
88 if (!nvapi
) return (-1);
90 return nvapi
->NvAPI_GetErrorMessage (NvAPI_rc
, string
);
93 int hm_NvAPI_EnumPhysicalGPUs (NVAPI_PTR
*nvapi
, NvPhysicalGpuHandle nvGPUHandle
[NVAPI_MAX_PHYSICAL_GPUS
], NvU32
*pGpuCount
)
95 if (!nvapi
) return (-1);
97 NvAPI_Status NvAPI_rc
= nvapi
->NvAPI_EnumPhysicalGPUs (nvGPUHandle
, pGpuCount
);
99 if (NvAPI_rc
!= NVAPI_OK
)
101 NvAPI_ShortString string
;
103 hm_NvAPI_GetErrorMessage (nvapi
, NvAPI_rc
, string
);
105 log_info ("WARN: %s %d %s\n", "NvAPI_EnumPhysicalGPUs()", NvAPI_rc
, string
);
111 int hm_NvAPI_GPU_GetThermalSettings (NVAPI_PTR
*nvapi
, NvPhysicalGpuHandle hPhysicalGpu
, NvU32 sensorIndex
, NV_GPU_THERMAL_SETTINGS
*pThermalSettings
)
113 if (!nvapi
) return (-1);
115 NvAPI_Status NvAPI_rc
= nvapi
->NvAPI_GPU_GetThermalSettings (hPhysicalGpu
, sensorIndex
, pThermalSettings
);
117 if (NvAPI_rc
!= NVAPI_OK
)
119 NvAPI_ShortString string
;
121 hm_NvAPI_GetErrorMessage (nvapi
, NvAPI_rc
, string
);
123 log_info ("WARN: %s %d %s\n", "NvAPI_GPU_GetThermalSettings()", NvAPI_rc
, string
);
129 int hm_NvAPI_GPU_GetTachReading (NVAPI_PTR
*nvapi
, NvPhysicalGpuHandle hPhysicalGPU
, NvU32
*pValue
)
131 if (!nvapi
) return (-1);
133 NvAPI_Status NvAPI_rc
= nvapi
->NvAPI_GPU_GetTachReading (hPhysicalGPU
, pValue
);
135 if (NvAPI_rc
!= NVAPI_OK
)
137 NvAPI_ShortString string
;
139 hm_NvAPI_GetErrorMessage (nvapi
, NvAPI_rc
, string
);
141 log_info ("WARN: %s %d %s\n", "NvAPI_GPU_GetTachReading()", NvAPI_rc
, string
);
147 int hm_NvAPI_GPU_GetDynamicPstatesInfoEx (NVAPI_PTR
*nvapi
, NvPhysicalGpuHandle hPhysicalGpu
, NV_GPU_DYNAMIC_PSTATES_INFO_EX
*pDynamicPstatesInfoEx
)
149 if (!nvapi
) return (-1);
151 NvAPI_Status NvAPI_rc
= nvapi
->NvAPI_GPU_GetDynamicPstatesInfoEx (hPhysicalGpu
, pDynamicPstatesInfoEx
);
153 if (NvAPI_rc
!= NVAPI_OK
)
155 NvAPI_ShortString string
;
157 hm_NvAPI_GetErrorMessage (nvapi
, NvAPI_rc
, string
);
159 log_info ("WARN: %s %d %s\n", "NvAPI_GPU_GetDynamicPstatesInfoEx()", NvAPI_rc
, string
);
167 void __security_check_cookie (uintptr_t _StackCookie
)
172 void __GSHandlerCheck ()