} krb5pa_t;
+typedef struct
+{
+ uint account_info[512];
+ uint checksum[4];
+ uint edata2[2560];
+ uint edata2_len;
+
+} krb5tgs_t;
+
typedef struct
{
uint salt_buf[16];
} wordr_t;
+typedef struct
+{
+ char *device_name;
+ char *alias_name;
+
+} tuning_db_alias_t;
+
+typedef struct
+{
+ char *device_name;
+ int attack_mode;
+ int hash_type;
+ int workload_profile;
+ int vector_width;
+ int kernel_accel;
+ int kernel_loops;
+
+} tuning_db_entry_t;
+
+typedef struct
+{
+ tuning_db_alias_t *alias_buf;
+ int alias_cnt;
+
+ tuning_db_entry_t *entry_buf;
+ int entry_cnt;
+
+} tuning_db_t;
+
#define RULES_MAX 256
#define PW_MIN 0
#define PW_MAX 54
uint device_id;
uint platform_devices_id; // for mapping with hms devices
- uint skipped;
+ bool skipped;
uint sm_major;
uint sm_minor;
uint vector_width;
uint kernel_threads;
+ uint kernel_loops;
uint kernel_accel;
- uint kernel_power; // these both are based on their _user counterpart
- uint kernel_blocks; // but are modified by autotuner and used inside crack loops
+ uint kernel_loops_min;
+ uint kernel_loops_max;
+ uint kernel_accel_min;
+ uint kernel_accel_max;
+ uint kernel_power;
uint kernel_power_user;
- uint kernel_blocks_user;
uint size_pws;
uint size_tmps;
uint innerloop_pos;
uint innerloop_left;
+ uint exec_pos;
+ double exec_ms[EXEC_CACHE];
+
uint speed_pos;
u64 speed_cnt[SPEED_CACHE];
float speed_ms[SPEED_CACHE];
char *device_version;
char *driver_version;
+ bool opencl_v12;
+
cl_uint vendor_id;
cl_kernel kernel1;
hc_device_param_t *devices_param;
- uint kernel_blocks_all;
+ /**
+ * workload specific
+ */
+
+ uint kernel_power_all;
+ float kernel_power_div;
/**
* attack specific
int rule_len_r;
/**
- * opencl
+ * opencl library stuff
*/
- void *ocl;
+ void *ocl;
/**
* hardware watchdog
*/
#ifdef HAVE_HWMON
- HM_LIB hm_dll_nv;
- HM_LIB hm_dll_amd;
+ void *hm_nv;
+ void *hm_amd;
hm_attrs_t hm_device[DEVICES_MAX];
#endif
uint quiet;
uint force;
uint benchmark;
+ uint benchmark_repeats;
uint runtime;
uint remove;
uint remove_timer;
uint hex_wordlist;
uint pw_min;
uint pw_max;
- float kernel_blocks_div;
- uint kernel_accel;
- uint kernel_loops;
uint powertune_enable;
uint scrypt_tmto;
uint segment_size;
char *truecrypt_keyfiles;
+ uint workload_profile;
uint hash_mode;
uint hash_type;