Add --mangle switch for mangling password before hashing
[hashcat.git] / include / ext_xnvctrl.h
1 /**
2 * Authors.....: Jens Steube <jens.steube@gmail.com>
3 * License.....: MIT
4 */
5
6 #ifndef EXT_XNVCTRL_H
7 #define EXT_XNVCTRL_H
8
9 #if defined(HAVE_HWMON)
10
11 #include <common.h>
12
13 /**
14 * Stuff from X11/Xlib.h
15 */
16
17 typedef void *(*XOPENDISPLAY) (char *);
18 typedef int (*XCLOSEDISPLAY) (void *);
19
20 /**
21 * Declarations from NVCtrl.h
22 */
23
24 #define NV_CTRL_TARGET_TYPE_GPU 1
25 #define NV_CTRL_TARGET_TYPE_COOLER 5 /* e.g., fan */
26
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
30
31 #define NV_CTRL_THERMAL_COOLER_CURRENT_LEVEL 417 /* R--C */
32 #define NV_CTRL_THERMAL_COOLER_LEVEL 320 /* RW-C */
33
34 /*
35 * NV_CTRL_GPU_CORE_THRESHOLD reflects the temperature at which the
36 * GPU is throttled to prevent overheating.
37 */
38
39 #define NV_CTRL_GPU_CORE_THRESHOLD 61 /* R--G */
40
41 /**
42 * hashcat stuff from here
43 */
44
45 typedef int HM_ADAPTER_XNVCTRL;
46
47 #include <shared.h>
48
49 #if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
50 #define XNVCTRL_API_CALL __stdcall
51 #else
52 #define XNVCTRL_API_CALL
53 #endif
54
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);
57
58 typedef struct
59 {
60 void *dpy;
61
62 XNVCTRL_LIB lib_x11;
63 XNVCTRL_LIB lib_xnvctrl;
64
65 XOPENDISPLAY XOpenDisplay;
66 XCLOSEDISPLAY XCloseDisplay;
67
68 XNVCTRLQUERYTARGETATTRIBUTE XNVCTRLQueryTargetAttribute;
69 XNVCTRLSETTARGETATTRIBUTE XNVCTRLSetTargetAttribute;
70
71 } hm_xnvctrl_lib_t;
72
73 #define XNVCTRL_PTR hm_xnvctrl_lib_t
74
75 int xnvctrl_init (XNVCTRL_PTR *xnvctrl);
76 void xnvctrl_close (XNVCTRL_PTR *xnvctrl);
77
78 int hm_XNVCTRL_XOpenDisplay (XNVCTRL_PTR *xnvctrl);
79 void hm_XNVCTRL_XCloseDisplay (XNVCTRL_PTR *xnvctrl);
80
81 int get_core_threshold (XNVCTRL_PTR *xnvctrl, int gpu, int *val);
82
83 int get_fan_control (XNVCTRL_PTR *xnvctrl, int gpu, int *val);
84 int set_fan_control (XNVCTRL_PTR *xnvctrl, int gpu, int val);
85
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);
89
90 #endif // HAVE_HWMON
91
92 #endif // EXT_XNVCTRL_H