} zip2_t;
+typedef struct
+{
+ uint salt_buf[32];
+
+} win8phone_t;
+
typedef struct
{
uint P[256];
typedef struct
{
- u32 KEK[5];
-
+ u32 KEK[4];
u32 lsb[4];
u32 cipher[4];
uint kernel_accel_min;
uint kernel_accel_max;
uint kernel_power;
- uint kernel_power_user;
+ 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;
+ double exec_us_prev2;
+ double exec_us_prev3;
+
// this is "current" speed
uint speed_pos;
#ifdef HAVE_HWMON
typedef struct
{
- union
- {
- #ifdef HAVE_ADL
- HM_ADAPTER_AMD amd;
- #endif
+ HM_ADAPTER_ADL adl;
+ HM_ADAPTER_NVML nvml;
+ HM_ADAPTER_NVAPI nvapi;
- #if defined(HAVE_NVML) || defined(HAVE_NVAPI)
- HM_ADAPTER_NV nv;
- #endif
+ int od_version;
- } adapter_index;
-
- int od_version;
- int fan_supported;
-
- // 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
* 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_nv;
- void *hm_amd;
+ void *hm_adl;
+ void *hm_nvml;
+ void *hm_nvapi;
hm_attrs_t hm_device[DEVICES_MAX];
#endif
uint restore_disable;
uint status;
uint status_timer;
- uint status_automate;
+ uint machine_readable;
uint quiet;
uint force;
uint benchmark;
extern hc_global_data_t data;
#endif
+