#ifndef TYPES_H
#define TYPES_H
+#ifdef _WIN
+#define EOL "\r\n"
+#else
+#define EOL "\n"
+#endif
+
typedef struct
{
uint salt_buf[16];
uint scrypt_N;
uint scrypt_r;
uint scrypt_p;
- uint scrypt_tmto;
- uint scrypt_phy;
} salt_t;
typedef struct
{
- uint P[256];
+ uint salt_buf[32];
-} scrypt_tmp_t;
+} win8phone_t;
typedef struct
{
typedef struct
{
- u32 KEK[5];
-
+ u32 KEK[4];
u32 lsb[4];
u32 cipher[4];
#define PW_MAX1 (PW_MAX + 1)
#define PW_DICTMAX 31
#define PW_DICTMAX1 (PW_DICTMAX + 1)
-#define PARAMCNT 32
+#define PARAMCNT 64
struct __hc_device_param
{
uint kernel_exec_timeout;
uint device_processors;
- uint device_processor_cores;
u64 device_maxmem_alloc;
u64 device_global_mem;
u32 device_maxclock_frequency;
uint kernel_accel_min;
uint kernel_accel_max;
uint kernel_power;
+ uint hardware_power;
size_t size_pws;
size_t size_tmps;
uint exec_pos;
double exec_ms[EXEC_CACHE];
+ // workaround cpu spinning
+
+ double exec_us_prev1[EXPECTED_ITERATIONS];
+ double exec_us_prev2[EXPECTED_ITERATIONS];
+ double exec_us_prev3[EXPECTED_ITERATIONS];
+
// this is "current" speed
uint speed_pos;
bool opencl_v12;
+ double nvidia_spin_damp;
+
+ cl_platform_id platform;
+
cl_uint device_vendor_id;
cl_uint platform_vendor_id;
cl_mem d_tmps;
cl_mem d_hooks;
cl_mem d_result;
- cl_mem d_scryptV_buf;
+ cl_mem d_scryptV0_buf;
+ cl_mem d_scryptV1_buf;
+ cl_mem d_scryptV2_buf;
+ cl_mem d_scryptV3_buf;
cl_mem d_root_css_buf;
cl_mem d_markov_css_buf;
#ifdef HAVE_HWMON
typedef struct
{
- union
- {
- HM_ADAPTER_ADL adl;
- HM_ADAPTER_NVML nvml;
- HM_ADAPTER_NVAPI nvapi;
-
- } adapter_index;
-
- int od_version;
-
- int fan_get_supported;
- int fan_set_supported;
+ HM_ADAPTER_ADL adl;
+ HM_ADAPTER_NVML nvml;
+ HM_ADAPTER_NVAPI nvapi;
+ HM_ADAPTER_XNVCTRL xnvctrl;
- int gpu_temp_threshold_slowdown;
- int gpu_temp_threshold_shutdown;
+ int od_version;
- // int busid; // used for CL_DEVICE_TOPOLOGY_AMD but broken for dual GPUs
- // int devid; // used for CL_DEVICE_TOPOLOGY_AMD but broken for dual GPUs
+ int fan_get_supported;
+ int fan_set_supported;
} hm_attrs_t;
#endif // HAVE_HWMON
hc_device_param_t *devices_param;
+ uint shutdown_inner;
+ uint shutdown_outer;
+
/**
* workload specific
*/
+ uint hardware_power_all;
uint kernel_power_all;
- float kernel_power_div;
+ u64 kernel_power_final; // we save that so that all divisions are done from the same base
/**
* attack specific
*/
#ifdef HAVE_HWMON
- void *hm_adl;
- void *hm_nvml;
- void *hm_nvapi;
+ void *hm_adl;
+ void *hm_nvml;
+ void *hm_nvapi;
+ void *hm_xnvctrl;
hm_attrs_t hm_device[DEVICES_MAX];
#endif
void *esalts_buf;
+ uint scrypt_tmp_size;
+ uint scrypt_tmto_final;
+
/**
* logging
*/
uint quiet;
uint force;
uint benchmark;
- uint benchmark_repeats;
uint runtime;
uint remove;
uint remove_timer;
time_t runtime_start;
time_t runtime_stop;
+ time_t prepare_time;
+
time_t proc_start;
time_t proc_stop;
extern hc_global_data_t data;
#endif
+