#define SP_ROOT_CNT (SP_PW_MAX * CHARSIZ)
#define SP_MARKOV_CNT (SP_PW_MAX * CHARSIZ * CHARSIZ)
+#define TUNING_DB_FILE "hashcat_tuning.hctab"
+#define TUNING_DB_DEFAULT_VECTOR_WIDTH 1
+#define TUNING_DB_DEFAULT_KERNEL_ACCEL 1
+#define TUNING_DB_DEFAULT_KERNEL_LOOPS 1
+
#define INDUCT_DIR "induct"
#define OUTFILES_DIR "outfiles"
#define PW_LENGTH_MIN_7400 0
#define PW_LENGTH_MAX_7400 15
-/**
- * device accel macro
- */
-
-#define KERNEL_ACCEL_OSX_1800 1
-#define KERNEL_ACCEL_OSX_2500 2
-#define KERNEL_ACCEL_OSX_5000 8
-#define KERNEL_ACCEL_OSX_6100 1
-#define KERNEL_ACCEL_OSX_6211 2
-#define KERNEL_ACCEL_OSX_6231 1
-#define KERNEL_ACCEL_OSX_6241 4
-#define KERNEL_ACCEL_OSX_6800 2
-#define KERNEL_ACCEL_OSX_7100 1
-#define KERNEL_ACCEL_OSX_7200 1
-#define KERNEL_ACCEL_OSX_7900 1
-#define KERNEL_ACCEL_OSX_8200 1
-#define KERNEL_ACCEL_OSX_8700 2
-#define KERNEL_ACCEL_OSX_9100 4
-#define KERNEL_ACCEL_OSX_9200 1
-#define KERNEL_ACCEL_OSX_9300 1
-#define KERNEL_ACCEL_OSX_9400 1
-#define KERNEL_ACCEL_OSX_9500 1
-#define KERNEL_ACCEL_OSX_9600 1
-#define KERNEL_ACCEL_OSX_10000 1
-#define KERNEL_ACCEL_OSX_10500 4
-#define KERNEL_ACCEL_OSX_11300 1
-#define KERNEL_ACCEL_OSX_11600 1
-#define KERNEL_ACCEL_OSX_11700 1
-#define KERNEL_ACCEL_OSX_11800 1
-#define KERNEL_ACCEL_OSX_12200 1
-#define KERNEL_ACCEL_OSX_12400 1
-#define KERNEL_ACCEL_OSX_12500 1
-#define KERNEL_ACCEL_OSX_13000 1
-
-#define KERNEL_ACCEL_0 128
-#define KERNEL_ACCEL_10 128
-#define KERNEL_ACCEL_11 128
-#define KERNEL_ACCEL_12 128
-#define KERNEL_ACCEL_20 64
-#define KERNEL_ACCEL_21 64
-#define KERNEL_ACCEL_22 64
-#define KERNEL_ACCEL_23 64
-#define KERNEL_ACCEL_30 128
-#define KERNEL_ACCEL_40 64
-#define KERNEL_ACCEL_50 64
-#define KERNEL_ACCEL_60 64
-#define KERNEL_ACCEL_100 64
-#define KERNEL_ACCEL_101 64
-#define KERNEL_ACCEL_110 64
-#define KERNEL_ACCEL_111 64
-#define KERNEL_ACCEL_112 64
-#define KERNEL_ACCEL_120 64
-#define KERNEL_ACCEL_121 64
-#define KERNEL_ACCEL_122 64
-#define KERNEL_ACCEL_124 64
-#define KERNEL_ACCEL_130 64
-#define KERNEL_ACCEL_131 64
-#define KERNEL_ACCEL_132 64
-#define KERNEL_ACCEL_133 64
-#define KERNEL_ACCEL_140 64
-#define KERNEL_ACCEL_141 64
-#define KERNEL_ACCEL_150 64
-#define KERNEL_ACCEL_160 64
-#define KERNEL_ACCEL_190 64
-#define KERNEL_ACCEL_200 64
-#define KERNEL_ACCEL_300 64
-#define KERNEL_ACCEL_400 8
-#define KERNEL_ACCEL_500 8
-#define KERNEL_ACCEL_501 8
-#define KERNEL_ACCEL_900 128
-#define KERNEL_ACCEL_910 128
-#define KERNEL_ACCEL_1000 128
-#define KERNEL_ACCEL_1100 64
-#define KERNEL_ACCEL_1400 64
-#define KERNEL_ACCEL_1410 64
-#define KERNEL_ACCEL_1420 64
-#define KERNEL_ACCEL_1421 64
-#define KERNEL_ACCEL_1430 64
-#define KERNEL_ACCEL_1440 64
-#define KERNEL_ACCEL_1441 64
-#define KERNEL_ACCEL_1450 32
-#define KERNEL_ACCEL_1460 32
-#define KERNEL_ACCEL_1500 16
-#define KERNEL_ACCEL_1600 8
-#define KERNEL_ACCEL_1700 64
-#define KERNEL_ACCEL_1710 64
-#define KERNEL_ACCEL_1711 64
-#define KERNEL_ACCEL_1720 64
-#define KERNEL_ACCEL_1722 64
-#define KERNEL_ACCEL_1730 64
-#define KERNEL_ACCEL_1731 64
-#define KERNEL_ACCEL_1740 64
-#define KERNEL_ACCEL_1750 32
-#define KERNEL_ACCEL_1760 32
-#define KERNEL_ACCEL_1800 2
-#define KERNEL_ACCEL_2100 8
-#define KERNEL_ACCEL_2400 64
-#define KERNEL_ACCEL_2500 8
-#define KERNEL_ACCEL_2410 64
-#define KERNEL_ACCEL_2600 64
-#define KERNEL_ACCEL_2611 64
-#define KERNEL_ACCEL_2612 64
-#define KERNEL_ACCEL_2711 64
-#define KERNEL_ACCEL_2811 64
-#define KERNEL_ACCEL_3000 128
-#define KERNEL_ACCEL_3100 16
-#define KERNEL_ACCEL_3200 2
-#define KERNEL_ACCEL_3710 64
-#define KERNEL_ACCEL_3711 64
-#define KERNEL_ACCEL_3800 128
-#define KERNEL_ACCEL_4300 64
-#define KERNEL_ACCEL_4400 64
-#define KERNEL_ACCEL_4500 64
-#define KERNEL_ACCEL_4700 64
-#define KERNEL_ACCEL_4800 128
-#define KERNEL_ACCEL_4900 64
-#define KERNEL_ACCEL_5000 64
-#define KERNEL_ACCEL_5100 64
-#define KERNEL_ACCEL_5200 8
-#define KERNEL_ACCEL_5300 32
-#define KERNEL_ACCEL_5400 32
-#define KERNEL_ACCEL_5500 64
-#define KERNEL_ACCEL_5600 64
-#define KERNEL_ACCEL_5700 64
-#define KERNEL_ACCEL_5800 8
-#define KERNEL_ACCEL_6000 64
-#define KERNEL_ACCEL_6100 8
-#define KERNEL_ACCEL_6211 16
-#define KERNEL_ACCEL_6212 8
-#define KERNEL_ACCEL_6213 8
-#define KERNEL_ACCEL_6221 4
-#define KERNEL_ACCEL_6222 4
-#define KERNEL_ACCEL_6223 4
-#define KERNEL_ACCEL_6231 4
-#define KERNEL_ACCEL_6232 4
-#define KERNEL_ACCEL_6233 4
-#define KERNEL_ACCEL_6241 32
-#define KERNEL_ACCEL_6242 16
-#define KERNEL_ACCEL_6243 16
-#define KERNEL_ACCEL_6300 8
-#define KERNEL_ACCEL_6400 8
-#define KERNEL_ACCEL_6500 8
-#define KERNEL_ACCEL_6600 8
-#define KERNEL_ACCEL_6700 8
-#define KERNEL_ACCEL_6800 8
-#define KERNEL_ACCEL_6900 16
-#define KERNEL_ACCEL_7100 2
-#define KERNEL_ACCEL_7200 2
-#define KERNEL_ACCEL_7300 64
-#define KERNEL_ACCEL_7400 2
-#define KERNEL_ACCEL_7500 8
-#define KERNEL_ACCEL_7600 64
-#define KERNEL_ACCEL_7700 16
-#define KERNEL_ACCEL_7800 8
-#define KERNEL_ACCEL_7900 2
-#define KERNEL_ACCEL_8000 8
-#define KERNEL_ACCEL_8100 64
-#define KERNEL_ACCEL_8200 2
-#define KERNEL_ACCEL_8300 64
-#define KERNEL_ACCEL_8400 64
-#define KERNEL_ACCEL_8500 64
-#define KERNEL_ACCEL_8600 8
-#define KERNEL_ACCEL_8700 8
-#define KERNEL_ACCEL_8800 8
-#define KERNEL_ACCEL_8900 16
-#define KERNEL_ACCEL_9000 2
-#define KERNEL_ACCEL_9100 8
-#define KERNEL_ACCEL_9200 2
-#define KERNEL_ACCEL_9300 2
-#define KERNEL_ACCEL_9400 8
-#define KERNEL_ACCEL_9500 8
-#define KERNEL_ACCEL_9600 2
-#define KERNEL_ACCEL_9700 8
-#define KERNEL_ACCEL_9710 8
-#define KERNEL_ACCEL_9720 8
-#define KERNEL_ACCEL_9800 8
-#define KERNEL_ACCEL_9810 8
-#define KERNEL_ACCEL_9820 8
-#define KERNEL_ACCEL_9900 64
-#define KERNEL_ACCEL_10000 2
-#define KERNEL_ACCEL_10100 128
-#define KERNEL_ACCEL_10200 64
-#define KERNEL_ACCEL_10300 8
-#define KERNEL_ACCEL_10400 8
-#define KERNEL_ACCEL_10500 64
-#define KERNEL_ACCEL_10410 8
-#define KERNEL_ACCEL_10420 8
-#define KERNEL_ACCEL_10600 64
-#define KERNEL_ACCEL_10700 1
-#define KERNEL_ACCEL_10800 64
-#define KERNEL_ACCEL_10900 2
-#define KERNEL_ACCEL_11000 64
-#define KERNEL_ACCEL_11100 64
-#define KERNEL_ACCEL_11200 64
-#define KERNEL_ACCEL_11300 2
-#define KERNEL_ACCEL_11400 8
-#define KERNEL_ACCEL_11500 128
-#define KERNEL_ACCEL_11600 2
-#define KERNEL_ACCEL_11700 4
-#define KERNEL_ACCEL_11800 4
-#define KERNEL_ACCEL_11900 2
-#define KERNEL_ACCEL_12000 2
-#define KERNEL_ACCEL_12100 2
-#define KERNEL_ACCEL_12200 2
-#define KERNEL_ACCEL_12300 2
-#define KERNEL_ACCEL_12400 64
-#define KERNEL_ACCEL_12500 8
-#define KERNEL_ACCEL_12600 32
-#define KERNEL_ACCEL_12700 64
-#define KERNEL_ACCEL_12800 64
-#define KERNEL_ACCEL_12900 8
-#define KERNEL_ACCEL_13000 8
-
-/**
- * device loops macro
- */
-
-#define KERNEL_LOOPS_OSX_0 2
-#define KERNEL_LOOPS_OSX_10 2
-#define KERNEL_LOOPS_OSX_11 2
-#define KERNEL_LOOPS_OSX_12 2
-#define KERNEL_LOOPS_OSX_20 2
-#define KERNEL_LOOPS_OSX_21 2
-#define KERNEL_LOOPS_OSX_22 2
-#define KERNEL_LOOPS_OSX_23 2
-#define KERNEL_LOOPS_OSX_30 2
-#define KERNEL_LOOPS_OSX_40 2
-#define KERNEL_LOOPS_OSX_50 2
-#define KERNEL_LOOPS_OSX_60 2
-#define KERNEL_LOOPS_OSX_100 2
-#define KERNEL_LOOPS_OSX_101 2
-#define KERNEL_LOOPS_OSX_110 2
-#define KERNEL_LOOPS_OSX_111 2
-#define KERNEL_LOOPS_OSX_112 2
-#define KERNEL_LOOPS_OSX_120 2
-#define KERNEL_LOOPS_OSX_121 2
-#define KERNEL_LOOPS_OSX_122 2
-#define KERNEL_LOOPS_OSX_124 2
-#define KERNEL_LOOPS_OSX_130 2
-#define KERNEL_LOOPS_OSX_131 2
-#define KERNEL_LOOPS_OSX_132 2
-#define KERNEL_LOOPS_OSX_133 2
-#define KERNEL_LOOPS_OSX_140 2
-#define KERNEL_LOOPS_OSX_141 2
-#define KERNEL_LOOPS_OSX_150 2
-#define KERNEL_LOOPS_OSX_160 2
-#define KERNEL_LOOPS_OSX_190 2
-#define KERNEL_LOOPS_OSX_200 2
-#define KERNEL_LOOPS_OSX_300 2
-#define KERNEL_LOOPS_OSX_900 2
-#define KERNEL_LOOPS_OSX_1000 2
-#define KERNEL_LOOPS_OSX_1100 2
-#define KERNEL_LOOPS_OSX_1400 2
-#define KERNEL_LOOPS_OSX_1410 2
-#define KERNEL_LOOPS_OSX_1420 2
-#define KERNEL_LOOPS_OSX_1421 2
-#define KERNEL_LOOPS_OSX_1430 2
-#define KERNEL_LOOPS_OSX_1440 2
-#define KERNEL_LOOPS_OSX_1441 2
-#define KERNEL_LOOPS_OSX_1450 2
-#define KERNEL_LOOPS_OSX_1460 2
-#define KERNEL_LOOPS_OSX_1700 2
-#define KERNEL_LOOPS_OSX_1710 2
-#define KERNEL_LOOPS_OSX_1711 2
-#define KERNEL_LOOPS_OSX_1720 2
-#define KERNEL_LOOPS_OSX_1722 2
-#define KERNEL_LOOPS_OSX_1730 2
-#define KERNEL_LOOPS_OSX_1731 2
-#define KERNEL_LOOPS_OSX_1740 2
-#define KERNEL_LOOPS_OSX_1750 2
-#define KERNEL_LOOPS_OSX_1760 2
-#define KERNEL_LOOPS_OSX_2400 2
-#define KERNEL_LOOPS_OSX_2410 2
-#define KERNEL_LOOPS_OSX_2600 2
-#define KERNEL_LOOPS_OSX_2611 2
-#define KERNEL_LOOPS_OSX_2612 2
-#define KERNEL_LOOPS_OSX_2711 2
-#define KERNEL_LOOPS_OSX_2811 2
-#define KERNEL_LOOPS_OSX_3100 2
-#define KERNEL_LOOPS_OSX_3200 2
-#define KERNEL_LOOPS_OSX_3710 2
-#define KERNEL_LOOPS_OSX_3711 2
-#define KERNEL_LOOPS_OSX_3800 2
-#define KERNEL_LOOPS_OSX_4300 2
-#define KERNEL_LOOPS_OSX_4400 2
-#define KERNEL_LOOPS_OSX_4500 2
-#define KERNEL_LOOPS_OSX_4700 2
-#define KERNEL_LOOPS_OSX_4800 2
-#define KERNEL_LOOPS_OSX_4900 2
-#define KERNEL_LOOPS_OSX_5000 2
-#define KERNEL_LOOPS_OSX_5100 2
-#define KERNEL_LOOPS_OSX_5300 2
-#define KERNEL_LOOPS_OSX_5400 2
-#define KERNEL_LOOPS_OSX_5500 2
-#define KERNEL_LOOPS_OSX_5600 2
-#define KERNEL_LOOPS_OSX_5700 2
-#define KERNEL_LOOPS_OSX_6000 2
-#define KERNEL_LOOPS_OSX_6100 2
-#define KERNEL_LOOPS_OSX_6231 2
-#define KERNEL_LOOPS_OSX_6232 2
-#define KERNEL_LOOPS_OSX_6233 2
-#define KERNEL_LOOPS_OSX_6900 2
-#define KERNEL_LOOPS_OSX_7300 2
-#define KERNEL_LOOPS_OSX_7500 2
-#define KERNEL_LOOPS_OSX_7600 2
-#define KERNEL_LOOPS_OSX_7700 2
-#define KERNEL_LOOPS_OSX_7800 2
-#define KERNEL_LOOPS_OSX_8000 2
-#define KERNEL_LOOPS_OSX_8100 2
-#define KERNEL_LOOPS_OSX_8200 1
-#define KERNEL_LOOPS_OSX_8300 2
-#define KERNEL_LOOPS_OSX_8400 2
-#define KERNEL_LOOPS_OSX_8500 2
-#define KERNEL_LOOPS_OSX_8600 2
-#define KERNEL_LOOPS_OSX_8700 2
-#define KERNEL_LOOPS_OSX_9700 2
-#define KERNEL_LOOPS_OSX_9710 2
-#define KERNEL_LOOPS_OSX_9720 8
-#define KERNEL_LOOPS_OSX_9800 2
-#define KERNEL_LOOPS_OSX_9810 2
-#define KERNEL_LOOPS_OSX_9820 2
-#define KERNEL_LOOPS_OSX_9900 2
-#define KERNEL_LOOPS_OSX_10100 2
-#define KERNEL_LOOPS_OSX_10200 2
-#define KERNEL_LOOPS_OSX_10400 2
-#define KERNEL_LOOPS_OSX_10410 2
-#define KERNEL_LOOPS_OSX_10420 2
-#define KERNEL_LOOPS_OSX_10600 2
-#define KERNEL_LOOPS_OSX_10700 2
-#define KERNEL_LOOPS_OSX_10800 2
-#define KERNEL_LOOPS_OSX_11000 2
-#define KERNEL_LOOPS_OSX_11100 2
-#define KERNEL_LOOPS_OSX_11200 2
-#define KERNEL_LOOPS_OSX_11300 1
-#define KERNEL_LOOPS_OSX_11400 2
-#define KERNEL_LOOPS_OSX_11500 2
-#define KERNEL_LOOPS_OSX_11700 2
-#define KERNEL_LOOPS_OSX_11800 2
-#define KERNEL_LOOPS_OSX_12600 2
-
-#define KERNEL_LOOPS_0 256
-#define KERNEL_LOOPS_10 256
-#define KERNEL_LOOPS_11 256
-#define KERNEL_LOOPS_12 256
-#define KERNEL_LOOPS_20 256
-#define KERNEL_LOOPS_21 256
-#define KERNEL_LOOPS_22 256
-#define KERNEL_LOOPS_23 256
-#define KERNEL_LOOPS_30 256
-#define KERNEL_LOOPS_40 256
-#define KERNEL_LOOPS_50 64
-#define KERNEL_LOOPS_60 64
-#define KERNEL_LOOPS_100 128
-#define KERNEL_LOOPS_101 128
-#define KERNEL_LOOPS_110 128
-#define KERNEL_LOOPS_111 128
-#define KERNEL_LOOPS_112 128
-#define KERNEL_LOOPS_120 128
-#define KERNEL_LOOPS_121 128
-#define KERNEL_LOOPS_122 128
-#define KERNEL_LOOPS_124 128
-#define KERNEL_LOOPS_130 128
-#define KERNEL_LOOPS_131 128
-#define KERNEL_LOOPS_132 128
-#define KERNEL_LOOPS_133 128
-#define KERNEL_LOOPS_140 128
-#define KERNEL_LOOPS_141 128
-#define KERNEL_LOOPS_150 64
-#define KERNEL_LOOPS_160 64
-#define KERNEL_LOOPS_190 128
-#define KERNEL_LOOPS_200 128
-#define KERNEL_LOOPS_300 64
-#define KERNEL_LOOPS_400 256
-#define KERNEL_LOOPS_500 256
-#define KERNEL_LOOPS_501 256
-#define KERNEL_LOOPS_900 256
-#define KERNEL_LOOPS_910 256
-#define KERNEL_LOOPS_1000 256
-#define KERNEL_LOOPS_1100 128
-#define KERNEL_LOOPS_1400 64
-#define KERNEL_LOOPS_1410 64
-#define KERNEL_LOOPS_1420 64
-#define KERNEL_LOOPS_1421 64
-#define KERNEL_LOOPS_1430 64
-#define KERNEL_LOOPS_1440 64
-#define KERNEL_LOOPS_1441 64
-#define KERNEL_LOOPS_1450 32
-#define KERNEL_LOOPS_1460 32
-#define KERNEL_LOOPS_1500 256
-#define KERNEL_LOOPS_1600 256
-#define KERNEL_LOOPS_1700 32
-#define KERNEL_LOOPS_1710 32
-#define KERNEL_LOOPS_1711 32
-#define KERNEL_LOOPS_1720 32
-#define KERNEL_LOOPS_1722 32
-#define KERNEL_LOOPS_1730 32
-#define KERNEL_LOOPS_1731 32
-#define KERNEL_LOOPS_1740 32
-#define KERNEL_LOOPS_1750 16
-#define KERNEL_LOOPS_1760 16
-#define KERNEL_LOOPS_1800 16
-#define KERNEL_LOOPS_2100 256
-#define KERNEL_LOOPS_2400 256
-#define KERNEL_LOOPS_2410 256
-#define KERNEL_LOOPS_2500 256
-#define KERNEL_LOOPS_2600 128
-#define KERNEL_LOOPS_2611 128
-#define KERNEL_LOOPS_2612 128
-#define KERNEL_LOOPS_2711 64
-#define KERNEL_LOOPS_2811 64
-#define KERNEL_LOOPS_3000 256
-#define KERNEL_LOOPS_3100 16
-#define KERNEL_LOOPS_3200 16
-#define KERNEL_LOOPS_3710 128
-#define KERNEL_LOOPS_3711 128
-#define KERNEL_LOOPS_3800 256
-#define KERNEL_LOOPS_4300 128
-#define KERNEL_LOOPS_4400 128
-#define KERNEL_LOOPS_4500 128
-#define KERNEL_LOOPS_4700 128
-#define KERNEL_LOOPS_4800 256
-#define KERNEL_LOOPS_4900 128
-#define KERNEL_LOOPS_5000 64
-#define KERNEL_LOOPS_5100 256
-#define KERNEL_LOOPS_5200 256
-#define KERNEL_LOOPS_5300 32
-#define KERNEL_LOOPS_5400 32
-#define KERNEL_LOOPS_5500 128
-#define KERNEL_LOOPS_5600 64
-#define KERNEL_LOOPS_5700 64
-#define KERNEL_LOOPS_5800 256
-#define KERNEL_LOOPS_6000 64
-#define KERNEL_LOOPS_6100 64
-#define KERNEL_LOOPS_6211 200
-#define KERNEL_LOOPS_6212 200
-#define KERNEL_LOOPS_6213 200
-#define KERNEL_LOOPS_6221 200
-#define KERNEL_LOOPS_6222 200
-#define KERNEL_LOOPS_6223 200
-#define KERNEL_LOOPS_6231 200
-#define KERNEL_LOOPS_6232 200
-#define KERNEL_LOOPS_6233 200
-#define KERNEL_LOOPS_6241 200
-#define KERNEL_LOOPS_6242 200
-#define KERNEL_LOOPS_6243 200
-#define KERNEL_LOOPS_6300 256
-#define KERNEL_LOOPS_6400 256
-#define KERNEL_LOOPS_6500 256
-#define KERNEL_LOOPS_6600 200
-#define KERNEL_LOOPS_6700 256
-#define KERNEL_LOOPS_6800 200
-#define KERNEL_LOOPS_6900 64
-#define KERNEL_LOOPS_7100 256
-#define KERNEL_LOOPS_7200 200
-#define KERNEL_LOOPS_7300 64
-#define KERNEL_LOOPS_7400 200
-#define KERNEL_LOOPS_7500 16
-#define KERNEL_LOOPS_7600 128
-#define KERNEL_LOOPS_7700 128
-#define KERNEL_LOOPS_7800 64
-#define KERNEL_LOOPS_7900 256
-#define KERNEL_LOOPS_8000 64
-#define KERNEL_LOOPS_8100 128
-#define KERNEL_LOOPS_8200 200
-#define KERNEL_LOOPS_8300 64
-#define KERNEL_LOOPS_8400 64
-#define KERNEL_LOOPS_8500 16
-#define KERNEL_LOOPS_8600 16
-#define KERNEL_LOOPS_8700 16
-#define KERNEL_LOOPS_8800 256
-#define KERNEL_LOOPS_8900 1
-#define KERNEL_LOOPS_9000 16
-#define KERNEL_LOOPS_9100 256
-#define KERNEL_LOOPS_9200 200
-#define KERNEL_LOOPS_9300 1
-#define KERNEL_LOOPS_9400 200
-#define KERNEL_LOOPS_9500 200
-#define KERNEL_LOOPS_9600 200
-#define KERNEL_LOOPS_9700 200
-#define KERNEL_LOOPS_9710 200
-#define KERNEL_LOOPS_9720 200
-#define KERNEL_LOOPS_9800 200
-#define KERNEL_LOOPS_9820 200
-#define KERNEL_LOOPS_9810 200
-#define KERNEL_LOOPS_9900 256
-#define KERNEL_LOOPS_10000 200
-#define KERNEL_LOOPS_10100 512
-#define KERNEL_LOOPS_10200 64
-#define KERNEL_LOOPS_10300 128
-#define KERNEL_LOOPS_10400 256
-#define KERNEL_LOOPS_10410 256
-#define KERNEL_LOOPS_10420 256
-#define KERNEL_LOOPS_10500 64
-#define KERNEL_LOOPS_10600 64
-#define KERNEL_LOOPS_10700 64
-#define KERNEL_LOOPS_10800 32
-#define KERNEL_LOOPS_10900 200
-#define KERNEL_LOOPS_11000 256
-#define KERNEL_LOOPS_11100 128
-#define KERNEL_LOOPS_11200 128
-#define KERNEL_LOOPS_11300 256
-#define KERNEL_LOOPS_11400 128
-#define KERNEL_LOOPS_11500 256
-#define KERNEL_LOOPS_11600 512
-#define KERNEL_LOOPS_11700 64
-#define KERNEL_LOOPS_11800 64
-#define KERNEL_LOOPS_11900 200
-#define KERNEL_LOOPS_12000 200
-#define KERNEL_LOOPS_12100 200
-#define KERNEL_LOOPS_12200 256
-#define KERNEL_LOOPS_12300 256
-#define KERNEL_LOOPS_12400 256
-#define KERNEL_LOOPS_12500 256
-#define KERNEL_LOOPS_12600 32
-#define KERNEL_LOOPS_12700 10
-#define KERNEL_LOOPS_12800 100
-#define KERNEL_LOOPS_12900 64
-#define KERNEL_LOOPS_13000 64
-
/**
* Strings
*/
char *get_install_dir (const char *progname);
char *get_profile_dir (const char *homedir);
char *get_session_dir (const char *profile_dir);
+uint count_lines (FILE *fd);
void *rulefind (const void *key, void *base, int nmemb, size_t size, int (*compar) (const void *, const void *));
void myabort ();
void myquit ();
-#ifdef OSX
-uint set_kernel_loops_osx (uint hash_mode);
-uint set_kernel_accel_osx (uint hash_mode);
-
-uint set_kernel_accel (uint hash_mode, bool isGpu);
-uint set_kernel_loops (uint hash_mode, bool isGpu);
-#else
-uint set_kernel_accel (uint hash_mode);
-uint set_kernel_loops (uint hash_mode);
-#endif
-
void set_cpu_affinity (char *cpu_affinity);
void usage_mini_print (const char *progname);
void sp_stretch_markov (hcstat_table_t *in, hcstat_table_t *out);
void sp_stretch_root (hcstat_table_t *in, hcstat_table_t *out);
+void tuning_db_destroy (tuning_db_t *tuning_db);
+tuning_db_t *tuning_db_alloc (FILE *fp);
+tuning_db_t *tuning_db_init (const char *tuning_db_file);
+tuning_db_entry_t *tuning_db_search (tuning_db_t *tuning_db, char *device_name, int attack_mode, int hash_type, int workload_profile);
+
int bcrypt_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf);
int cisco4_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf);
int dcc_parse_hash (char *input_buf, uint input_len, hash_t *hash_buf);