2 * Authors.....: Jens Steube <jens.steube@gmail.com>
9 #if defined(HAVE_HWMON)
14 * Stuff from X11/Xlib.h
17 typedef void *(*XOPENDISPLAY
) (char *);
18 typedef int (*XCLOSEDISPLAY
) (void *);
21 * Declarations from NVCtrl.h
24 #define NV_CTRL_TARGET_TYPE_GPU 1
25 #define NV_CTRL_TARGET_TYPE_COOLER 5 /* e.g., fan */
27 #define NV_CTRL_GPU_COOLER_MANUAL_CONTROL 319 /* RW-G */
28 #define NV_CTRL_GPU_COOLER_MANUAL_CONTROL_FALSE 0
29 #define NV_CTRL_GPU_COOLER_MANUAL_CONTROL_TRUE 1
31 #define NV_CTRL_THERMAL_COOLER_CURRENT_LEVEL 417 /* R--C */
32 #define NV_CTRL_THERMAL_COOLER_LEVEL 320 /* RW-C */
35 * NV_CTRL_GPU_CORE_THRESHOLD reflects the temperature at which the
36 * GPU is throttled to prevent overheating.
39 #define NV_CTRL_GPU_CORE_THRESHOLD 61 /* R--G */
42 * hashcat stuff from here
45 typedef int HM_ADAPTER_XNVCTRL
;
49 #if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
50 #define XNVCTRL_API_CALL __stdcall
52 #define XNVCTRL_API_CALL
55 typedef int (*XNVCTRL_API_CALL XNVCTRLQUERYTARGETATTRIBUTE
) (void *, int, int, unsigned int, unsigned int, int *);
56 typedef void (*XNVCTRL_API_CALL XNVCTRLSETTARGETATTRIBUTE
) (void *, int, int, unsigned int, unsigned int, int);
63 XNVCTRL_LIB lib_xnvctrl
;
65 XOPENDISPLAY XOpenDisplay
;
66 XCLOSEDISPLAY XCloseDisplay
;
68 XNVCTRLQUERYTARGETATTRIBUTE XNVCTRLQueryTargetAttribute
;
69 XNVCTRLSETTARGETATTRIBUTE XNVCTRLSetTargetAttribute
;
73 #define XNVCTRL_PTR hm_xnvctrl_lib_t
75 int xnvctrl_init (XNVCTRL_PTR
*xnvctrl
);
76 void xnvctrl_close (XNVCTRL_PTR
*xnvctrl
);
78 int hm_XNVCTRL_XOpenDisplay (XNVCTRL_PTR
*xnvctrl
);
79 void hm_XNVCTRL_XCloseDisplay (XNVCTRL_PTR
*xnvctrl
);
81 int get_core_threshold (XNVCTRL_PTR
*xnvctrl
, int gpu
, int *val
);
83 int get_fan_control (XNVCTRL_PTR
*xnvctrl
, int gpu
, int *val
);
84 int set_fan_control (XNVCTRL_PTR
*xnvctrl
, int gpu
, int val
);
86 int get_fan_speed_current (XNVCTRL_PTR
*xnvctrl
, int gpu
, int *val
);
87 int get_fan_speed_target (XNVCTRL_PTR
*xnvctrl
, int gpu
, int *val
);
88 int set_fan_speed_target (XNVCTRL_PTR
*xnvctrl
, int gpu
, int val
);
92 #endif // EXT_XNVCTRL_H