Added custom OSX kernel loops and gpu accel default values
authorGabriele 'matrix' Gristina <gm4tr1x@users.noreply.github.com>
Sun, 24 Jan 2016 21:48:01 +0000 (22:48 +0100)
committerGabriele 'matrix' Gristina <gm4tr1x@users.noreply.github.com>
Sun, 24 Jan 2016 21:48:01 +0000 (22:48 +0100)
Disabled some not yet worked hash types in OSX

include/shared.h
src/Makefile
src/oclHashcat.c
src/shared.c

index f126986..35d71e2 100644 (file)
@@ -1,5 +1,7 @@
 /**
- * Author......: Jens Steube <jens.steube@gmail.com>
+ * Authors.....: Jens Steube <jens.steube@gmail.com>
+ *               Gabriele Gristina <matrix@hashcat.net>
+ *
  * License.....: MIT
  */
 
 
 #define CL_VENDOR_NV          "NVIDIA Corporation"
 #define CL_VENDOR_AMD         "Advanced Micro Devices, Inc."
+#define CL_VENDOR_APPLE       "Apple"
 #define CL_VENDOR_POCL        "The pocl project"
 
 #define VENDOR_ID_AMD         4098
 #define VENDOR_ID_NV          4318
+#define VENDOR_ID_APPLE       16925952
 #define VENDOR_ID_GENERIC     9999
 
 #define BLOCK_SIZE            64
@@ -165,9 +169,47 @@ extern hc_thread_mutex_t mux_display;
 #define PW_LENGTH_MAX_7400    15
 
 /**
- * device accel / loops macro
+ * device accel macro
  */
 
+#define KERNEL_ACCEL_OSX_5000    16
+#define KERNEL_ACCEL_OSX_6100    1
+#define KERNEL_ACCEL_OSX_6211    4
+#define KERNEL_ACCEL_OSX_6231    1
+#define KERNEL_ACCEL_OSX_6241    4
+#define KERNEL_ACCEL_OSX_8200    1
+#define KERNEL_ACCEL_OSX_8700    2
+#define KERNEL_ACCEL_OSX_9500    1
+#define KERNEL_ACCEL_OSX_9600    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_STD_5000    64
+#define KERNEL_ACCEL_STD_6100    8
+#define KERNEL_ACCEL_STD_6211    16
+#define KERNEL_ACCEL_STD_6231    4
+#define KERNEL_ACCEL_STD_6241    32
+#define KERNEL_ACCEL_STD_8200    2
+#define KERNEL_ACCEL_STD_8700    8
+#define KERNEL_ACCEL_STD_9500    8
+#define KERNEL_ACCEL_STD_9600    2
+#define KERNEL_ACCEL_STD_10500   64
+#define KERNEL_ACCEL_STD_11300   2
+#define KERNEL_ACCEL_STD_11600   2
+#define KERNEL_ACCEL_STD_11700   4
+#define KERNEL_ACCEL_STD_11800   4
+#define KERNEL_ACCEL_STD_12200   2
+#define KERNEL_ACCEL_STD_12400   64
+#define KERNEL_ACCEL_STD_12500   8
+#define KERNEL_ACCEL_STD_13000   8
+
 #define KERNEL_ACCEL_0       128
 #define KERNEL_ACCEL_10      128
 #define KERNEL_ACCEL_11      128
@@ -250,7 +292,6 @@ extern hc_thread_mutex_t mux_display;
 #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
@@ -260,17 +301,13 @@ extern hc_thread_mutex_t mux_display;
 #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
@@ -291,12 +328,10 @@ extern hc_thread_mutex_t mux_display;
 #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
@@ -304,8 +339,6 @@ extern hc_thread_mutex_t mux_display;
 #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
@@ -320,7 +353,6 @@ extern hc_thread_mutex_t mux_display;
 #define KERNEL_ACCEL_10400   8
 #define KERNEL_ACCEL_10410   8
 #define KERNEL_ACCEL_10420   8
-#define KERNEL_ACCEL_10500   64
 #define KERNEL_ACCEL_10600   64
 #define KERNEL_ACCEL_10700   1
 #define KERNEL_ACCEL_10800   64
@@ -328,127 +360,281 @@ extern hc_thread_mutex_t mux_display;
 #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
-
-#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
+
+/**
+ * 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    4
+#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_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    4
+#define KERNEL_LOOPS_OSX_9700    2
+#define KERNEL_LOOPS_OSX_9710    8
+#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_11400   2
+#define KERNEL_LOOPS_OSX_11500   2
+#define KERNEL_LOOPS_OSX_11700   8
+#define KERNEL_LOOPS_OSX_11800   8
+#define KERNEL_LOOPS_OSX_12600   2
+
+#define KERNEL_LOOPS_STD_0       256
+#define KERNEL_LOOPS_STD_10      256
+#define KERNEL_LOOPS_STD_11      256
+#define KERNEL_LOOPS_STD_12      256
+#define KERNEL_LOOPS_STD_20      256
+#define KERNEL_LOOPS_STD_21      256
+#define KERNEL_LOOPS_STD_22      256
+#define KERNEL_LOOPS_STD_23      256
+#define KERNEL_LOOPS_STD_30      256
+#define KERNEL_LOOPS_STD_40      256
+#define KERNEL_LOOPS_STD_50      64
+#define KERNEL_LOOPS_STD_60      64
+#define KERNEL_LOOPS_STD_100     128
+#define KERNEL_LOOPS_STD_101     128
+#define KERNEL_LOOPS_STD_110     128
+#define KERNEL_LOOPS_STD_111     128
+#define KERNEL_LOOPS_STD_112     128
+#define KERNEL_LOOPS_STD_120     128
+#define KERNEL_LOOPS_STD_121     128
+#define KERNEL_LOOPS_STD_122     128
+#define KERNEL_LOOPS_STD_124     128
+#define KERNEL_LOOPS_STD_130     128
+#define KERNEL_LOOPS_STD_131     128
+#define KERNEL_LOOPS_STD_132     128
+#define KERNEL_LOOPS_STD_133     128
+#define KERNEL_LOOPS_STD_140     128
+#define KERNEL_LOOPS_STD_141     128
+#define KERNEL_LOOPS_STD_150     64
+#define KERNEL_LOOPS_STD_160     64
+#define KERNEL_LOOPS_STD_190     128
+#define KERNEL_LOOPS_STD_200     128
+#define KERNEL_LOOPS_STD_300     64
+#define KERNEL_LOOPS_STD_900     256
+#define KERNEL_LOOPS_STD_1000    256
+#define KERNEL_LOOPS_STD_1100    128
+#define KERNEL_LOOPS_STD_1400    64
+#define KERNEL_LOOPS_STD_1410    64
+#define KERNEL_LOOPS_STD_1420    64
+#define KERNEL_LOOPS_STD_1421    64
+#define KERNEL_LOOPS_STD_1430    64
+#define KERNEL_LOOPS_STD_1440    64
+#define KERNEL_LOOPS_STD_1441    64
+#define KERNEL_LOOPS_STD_1450    32
+#define KERNEL_LOOPS_STD_1460    32
+#define KERNEL_LOOPS_STD_1700    32
+#define KERNEL_LOOPS_STD_1710    32
+#define KERNEL_LOOPS_STD_1711    32
+#define KERNEL_LOOPS_STD_1720    32
+#define KERNEL_LOOPS_STD_1722    32
+#define KERNEL_LOOPS_STD_1730    32
+#define KERNEL_LOOPS_STD_1731    32
+#define KERNEL_LOOPS_STD_1740    32
+#define KERNEL_LOOPS_STD_1750    16
+#define KERNEL_LOOPS_STD_1760    16
+#define KERNEL_LOOPS_STD_2400    256
+#define KERNEL_LOOPS_STD_2410    256
+#define KERNEL_LOOPS_STD_2600    128
+#define KERNEL_LOOPS_STD_2611    128
+#define KERNEL_LOOPS_STD_2612    128
+#define KERNEL_LOOPS_STD_2711    64
+#define KERNEL_LOOPS_STD_2811    64
+#define KERNEL_LOOPS_STD_3100    16
+#define KERNEL_LOOPS_STD_3200    16
+#define KERNEL_LOOPS_STD_3710    128
+#define KERNEL_LOOPS_STD_3711    128
+#define KERNEL_LOOPS_STD_3800    256
+#define KERNEL_LOOPS_STD_4300    128
+#define KERNEL_LOOPS_STD_4400    128
+#define KERNEL_LOOPS_STD_4500    128
+#define KERNEL_LOOPS_STD_4700    128
+#define KERNEL_LOOPS_STD_4800    256
+#define KERNEL_LOOPS_STD_4900    128
+#define KERNEL_LOOPS_STD_5000    64
+#define KERNEL_LOOPS_STD_5100    256
+#define KERNEL_LOOPS_STD_5300    32
+#define KERNEL_LOOPS_STD_5400    32
+#define KERNEL_LOOPS_STD_5500    128
+#define KERNEL_LOOPS_STD_5600    64
+#define KERNEL_LOOPS_STD_5700    64
+#define KERNEL_LOOPS_STD_6000    64
+#define KERNEL_LOOPS_STD_6100    64
+#define KERNEL_LOOPS_STD_6231    200
+#define KERNEL_LOOPS_STD_6232    200
+#define KERNEL_LOOPS_STD_6233    200
+#define KERNEL_LOOPS_STD_6900    64
+#define KERNEL_LOOPS_STD_7300    64
+#define KERNEL_LOOPS_STD_7500    16
+#define KERNEL_LOOPS_STD_7600    128
+#define KERNEL_LOOPS_STD_7700    128
+#define KERNEL_LOOPS_STD_7800    64
+#define KERNEL_LOOPS_STD_8000    64
+#define KERNEL_LOOPS_STD_8100    128
+#define KERNEL_LOOPS_STD_8300    64
+#define KERNEL_LOOPS_STD_8400    64
+#define KERNEL_LOOPS_STD_8500    16
+#define KERNEL_LOOPS_STD_8600    16
+#define KERNEL_LOOPS_STD_8700    16
+#define KERNEL_LOOPS_STD_9700    200
+#define KERNEL_LOOPS_STD_9710    200
+#define KERNEL_LOOPS_STD_9720    200
+#define KERNEL_LOOPS_STD_9800    200
+#define KERNEL_LOOPS_STD_9820    200
+#define KERNEL_LOOPS_STD_9810    200
+#define KERNEL_LOOPS_STD_9900    256
+#define KERNEL_LOOPS_STD_10100   512
+#define KERNEL_LOOPS_STD_10200   64
+#define KERNEL_LOOPS_STD_10400   256
+#define KERNEL_LOOPS_STD_10410   256
+#define KERNEL_LOOPS_STD_10420   256
+#define KERNEL_LOOPS_STD_10600   64
+#define KERNEL_LOOPS_STD_10700   64
+#define KERNEL_LOOPS_STD_10800   32
+#define KERNEL_LOOPS_STD_11000   256
+#define KERNEL_LOOPS_STD_11100   128
+#define KERNEL_LOOPS_STD_11200   128
+#define KERNEL_LOOPS_STD_11400   128
+#define KERNEL_LOOPS_STD_11500   256
+#define KERNEL_LOOPS_STD_11700   64
+#define KERNEL_LOOPS_STD_11800   64
+#define KERNEL_LOOPS_STD_12600   32
+
 #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
@@ -458,24 +644,11 @@ extern hc_thread_mutex_t mux_display;
 #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
@@ -485,34 +658,12 @@ extern hc_thread_mutex_t mux_display;
 #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_9810    200
-#define KERNEL_LOOPS_9820    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
@@ -520,7 +671,6 @@ extern hc_thread_mutex_t mux_display;
 #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
@@ -1469,14 +1619,14 @@ extern hc_thread_mutex_t mux_display;
  */
 
 #define DGST_SIZE_0                 0
-#define DGST_SIZE_4_2               (2  * sizeof (uint))        // 8
-#define DGST_SIZE_4_4               (4  * sizeof (uint))        // 16
-#define DGST_SIZE_4_5               (5  * sizeof (uint))        // 20
-#define DGST_SIZE_4_6               (6  * sizeof (uint))        // 24
-#define DGST_SIZE_4_8               (8  * sizeof (uint))        // 32
-#define DGST_SIZE_4_16              (16 * sizeof (uint))        // 64 !!!
-#define DGST_SIZE_4_32              (32 * sizeof (uint))        // 128 !!!
-#define DGST_SIZE_4_64              (64 * sizeof (uint))        // 256
+#define DGST_SIZE_4_2               (2  * sizeof (uint))   // 8
+#define DGST_SIZE_4_4               (4  * sizeof (uint))   // 16
+#define DGST_SIZE_4_5               (5  * sizeof (uint))   // 20
+#define DGST_SIZE_4_6               (6  * sizeof (uint))   // 24
+#define DGST_SIZE_4_8               (8  * sizeof (uint))   // 32
+#define DGST_SIZE_4_16              (16 * sizeof (uint))   // 64 !!!
+#define DGST_SIZE_4_32              (32 * sizeof (uint))   // 128 !!!
+#define DGST_SIZE_4_64              (64 * sizeof (uint))   // 256
 #define DGST_SIZE_8_8               (8  * sizeof (u64))    // 64 !!!
 #define DGST_SIZE_8_16              (16 * sizeof (u64))    // 128 !!!
 #define DGST_SIZE_8_25              (25 * sizeof (u64))    // 200
index 9ba0d20..5da40f3 100644 (file)
@@ -125,7 +125,7 @@ VERSION_SUM              := $(shell git describe --tags --dirty=+ | cut -d- -f3)
 CFLAGS                   := -O2 -pipe -W -Wall -std=c99 -Iinclude/
 
 ifeq ($(DEBUG),1)
-CFLAGS                   += -g -ggdb -fsanitize=address -fno-omit-frame-pointer
+CFLAGS                   += -DDEBUG -g -ggdb -fsanitize=address -fno-omit-frame-pointer
 endif
 
 ##
index bd68983..6b2e859 100644 (file)
@@ -160,10 +160,10 @@ static uint default_benchmark_algorithms[NUM_DEFAULT_BENCHMARK_ALGORITHMS] =
   5000,
   10100,
   6000,
-  6100,
-  6900,
-  11700,
-  11800,
+  6100, // broken in osx
+  6900, // broken in osx
+  11700, // broken in osx
+  11800, // broken in osx
   400,
   8900,
   11900,
@@ -172,55 +172,55 @@ static uint default_benchmark_algorithms[NUM_DEFAULT_BENCHMARK_ALGORITHMS] =
   12100,
   23,
   2500,
-  5300,
-  5400,
-  5500,
-  5600,
+  5300, // broken in osx
+  5400, // broken in osx
+  5500, // broken in osx
+  5600, // broken in osx
   7300,
-  7500,
+  7500, // broken in osx
   8300,
-  11100,
+  11100, // broken in osx
   11200,
-  11400,
+  11400, // broken in osx
   121,
-  2611,
-  2711,
-  2811,
-  8400,
+  2611, // broken in osx
+  2711, // broken in osx
+  2811, // broken in osx
+  8400, // broken in osx
   11,
-  2612,
+  2612, // broken in osx
   7900,
   21,
   11000,
   124,
   10000,
-  3711,
-  7600,
+  3711, // broken in osx
+  7600, // broken in osx
   12,
   131,
   132,
   1731,
   200,
   300,
-  3100,
+  3100, // broken in osx
   112,
   12300,
-  8000,
+  8000, // broken in osx
   141,
   1441,
   1600,
-  12600,
+  12600, // broken in osx
   1421,
   101,
   111,
   1711,
-  3000,
+  3000, // broken in osx
   1000,
   1100,
   2100,
   12800,
-  1500,
-  12400,
+  1500, // broken in osx
+  12400, // broken in osx
   500,
   3200,
   7400,
@@ -241,45 +241,45 @@ static uint default_benchmark_algorithms[NUM_DEFAULT_BENCHMARK_ALGORITHMS] =
   501,
   5800,
   8100,
-  8500,
+  8500, // broken in osx
   7200,
   9900,
   7700,
   7800,
   10300,
-  8600,
-  8700,
-  9100,
+  8600, // broken in osx
+  8700, // broken in osx
+  9100, // broken in osx
   133,
-  11600,
-  12500,
+  11600, // broken in osx
+  12500, // broken in osx
   13000,
   6211,
   6221,
-  6231,
+  6231, // broken in osx
   6241,
-  8800,
+  8800, // broken in osx
   12900,
   12200,
-  9700,
-  9710,
-  9800,
-  9810,
-  9400,
-  9500,
-  9600,
-  10400,
-  10410,
+  9700, // broken in osx
+  9710, // broken in osx
+  9800, // broken in osx
+  9810, // broken in osx
+  9400, // broken in osx
+  9500, // broken in osx
+  9600, // broken in osx
+  10400, // broken in osx
+  10410, // broken in osx
   10500,
   10600,
-  10700,
+  10700, // broken in osx
   9000,
   5200,
-  6800,
-  6600,
+  6800, // broken in osx
+  6600, // broken in osx
   8200,
-  11300,
-  12700
+  11300, // broken in osx
+  12700 // broken in osx
 };
 
 /**
@@ -11383,7 +11383,9 @@ int main (int argc, char **argv)
                        kernel_accel = 16;
                        break;
           case  6211:  kernel_loops = ROUNDS_TRUECRYPT_2K;
+                       #ifndef OSX
                        kernel_accel = 64;
+                       #endif
                        break;
           case  6212:  kernel_loops = ROUNDS_TRUECRYPT_2K;
                        kernel_accel = 32;
@@ -11410,7 +11412,9 @@ int main (int argc, char **argv)
                        kernel_accel = 8;
                        break;
           case  6241:  kernel_loops = ROUNDS_TRUECRYPT_1K;
+                       #ifndef OSX
                        kernel_accel = 128;
+                       #endif
                        break;
           case  6242:  kernel_loops = ROUNDS_TRUECRYPT_1K;
                        kernel_accel = 64;
@@ -11440,7 +11444,9 @@ int main (int argc, char **argv)
                        kernel_accel = 8;
                        break;
           case  7200:  kernel_loops = ROUNDS_GRUB;
+                       #ifndef OSX
                        kernel_accel = 16;
+                       #endif
                        break;
           case  7400:  kernel_loops = ROUNDS_SHA256CRYPT;
                        kernel_accel = 8;
@@ -13190,6 +13196,37 @@ int main (int argc, char **argv)
     #endif // HAVE_ADK
     #endif // HAVE_HWMON
 
+    #ifdef OSX
+    /*
+     * List of OSX kernel to fix
+     */
+    if ((hash_mode == 6100)  || (hash_mode == 6900)  || (hash_mode == 11700) || (hash_mode == 11800) || (hash_mode == 5300)  || \
+        (hash_mode == 5400)  || (hash_mode == 5500)  || (hash_mode == 5600)  || (hash_mode == 7500)  || (hash_mode == 11100) || \
+        (hash_mode == 11400) || (hash_mode == 2611)  || (hash_mode == 2711)  || (hash_mode == 2811)  || (hash_mode == 8400)  || \
+        (hash_mode == 2612)  || (hash_mode == 3711)  || (hash_mode == 7600)  || (hash_mode == 3100)  || (hash_mode == 8000)  || \
+        (hash_mode == 12600) || (hash_mode == 3000)  || (hash_mode == 1500)  || (hash_mode == 12400) || (hash_mode == 8500)  || \
+        (hash_mode == 8600)  || (hash_mode == 8700)  || (hash_mode == 9100)  || (hash_mode == 11600) || (hash_mode == 12500) || \
+        (hash_mode == 6231)  || (hash_mode == 8800)  || (hash_mode == 9700)  || (hash_mode == 9710)  || (hash_mode == 9800)  || \
+        (hash_mode == 9810)  || (hash_mode == 9400)  || (hash_mode == 9500)  || (hash_mode == 9600)  || (hash_mode == 10400) || \
+        (hash_mode == 10410) || (hash_mode == 10700) || (hash_mode == 6800)  || (hash_mode == 6600)  || (hash_mode == 11300) || \
+        (hash_mode == 12700))
+    {
+      if (force == 0)
+      {
+        log_info ("");
+        log_info ("Warning: Hash mode %d is not stable in OSX.", hash_mode);
+        log_info ("You can use --force to override this but do not post error reports if you do so");
+        log_info ("");
+
+        continue;
+      }
+    }
+    #endif
+
+    #ifdef DEBUG
+    if (benchmark == 1) log_info ("Hashmode: %d", data.hash_mode);
+    #endif
+
     uint kernel_blocks_all = 0;
 
     for (uint device_id = 0; device_id < devices_cnt; device_id++)
@@ -15621,9 +15658,9 @@ int main (int argc, char **argv)
 
           // some more resets:
 
-          memset (device_param->pw_caches, 0, 64 * sizeof (pw_cache_t));
+          if (device_param->pw_caches) memset (device_param->pw_caches, 0, 64 * sizeof (pw_cache_t));
 
-          memset (device_param->pws_buf, 0, device_param->size_pws);
+          if (device_param->pws_buf) memset (device_param->pws_buf, 0, device_param->size_pws);
 
           device_param->pw_cnt  = 0;
           device_param->pws_cnt = 0;
index a259c79..cb49014 100644 (file)
  * tuning tools
  */
 
+#ifdef OSX
+#define GET_ACCEL_TUNED(x) KERNEL_ACCEL_OSX_ ## x
+#define GET_LOOPS_TUNED(x) KERNEL_LOOPS_OSX_ ## x
+#else
+#define GET_ACCEL_TUNED(x) KERNEL_ACCEL_STD_ ## x
+#define GET_LOOPS_TUNED(x) KERNEL_LOOPS_STD_ ## x
+#endif
+
 #define GET_ACCEL(x) KERNEL_ACCEL_ ## x
 #define GET_LOOPS(x) KERNEL_LOOPS_ ## x
 
@@ -8628,9 +8636,9 @@ void myquit ()
 
 void load_kernel (const char *kernel_file, int num_devices, size_t *kernel_lengths, const u8 **kernel_sources)
 {
-  FILE *fp;
+  FILE *fp = fopen (kernel_file, "rb");
 
-  if ((fp = fopen (kernel_file, "rb")) != NULL)
+  if (fp != NULL)
   {
     struct stat st;
 
@@ -9058,7 +9066,7 @@ uint set_kernel_accel (uint hash_mode)
     case  4700: return GET_ACCEL (4700);
     case  4800: return GET_ACCEL (4800);
     case  4900: return GET_ACCEL (4900);
-    case  5000: return GET_ACCEL (5000);
+    case  5000: return GET_ACCEL_TUNED (5000);
     case  5100: return GET_ACCEL (5100);
     case  5200: return GET_ACCEL (5200);
     case  5300: return GET_ACCEL (5300);
@@ -9068,17 +9076,17 @@ uint set_kernel_accel (uint hash_mode)
     case  5700: return GET_ACCEL (5700);
     case  5800: return GET_ACCEL (5800);
     case  6000: return GET_ACCEL (6000);
-    case  6100: return GET_ACCEL (6100);
-    case  6211: return GET_ACCEL (6211);
+    case  6100: return GET_ACCEL_TUNED (6100);
+    case  6211: return GET_ACCEL_TUNED (6211);
     case  6212: return GET_ACCEL (6212);
     case  6213: return GET_ACCEL (6213);
     case  6221: return GET_ACCEL (6221);
     case  6222: return GET_ACCEL (6222);
     case  6223: return GET_ACCEL (6223);
-    case  6231: return GET_ACCEL (6231);
+    case  6231: return GET_ACCEL_TUNED (6231);
     case  6232: return GET_ACCEL (6232);
     case  6233: return GET_ACCEL (6233);
-    case  6241: return GET_ACCEL (6241);
+    case  6241: return GET_ACCEL_TUNED (6241);
     case  6242: return GET_ACCEL (6242);
     case  6243: return GET_ACCEL (6243);
     case  6300: return GET_ACCEL (6300);
@@ -9099,12 +9107,12 @@ uint set_kernel_accel (uint hash_mode)
     case  7900: return GET_ACCEL (7900);
     case  8000: return GET_ACCEL (8000);
     case  8100: return GET_ACCEL (8100);
-    case  8200: return GET_ACCEL (8200);
+    case  8200: return GET_ACCEL_TUNED (8200);
     case  8300: return GET_ACCEL (8300);
     case  8400: return GET_ACCEL (8400);
     case  8500: return GET_ACCEL (8500);
     case  8600: return GET_ACCEL (8600);
-    case  8700: return GET_ACCEL (8700);
+    case  8700: return GET_ACCEL_TUNED (8700);
     case  8800: return GET_ACCEL (8800);
     case  8900: return GET_ACCEL (8900);
     case  9000: return GET_ACCEL (9000);
@@ -9112,8 +9120,8 @@ uint set_kernel_accel (uint hash_mode)
     case  9200: return GET_ACCEL (9200);
     case  9300: return GET_ACCEL (9300);
     case  9400: return GET_ACCEL (9400);
-    case  9500: return GET_ACCEL (9500);
-    case  9600: return GET_ACCEL (9600);
+    case  9500: return GET_ACCEL_TUNED (9500);
+    case  9600: return GET_ACCEL_TUNED (9600);
     case  9700: return GET_ACCEL (9700);
     case  9710: return GET_ACCEL (9710);
     case  9720: return GET_ACCEL (9720);
@@ -9128,7 +9136,7 @@ uint set_kernel_accel (uint hash_mode)
     case 10400: return GET_ACCEL (10400);
     case 10410: return GET_ACCEL (10410);
     case 10420: return GET_ACCEL (10420);
-    case 10500: return GET_ACCEL (10500);
+    case 10500: return GET_ACCEL_TUNED (10500);
     case 10600: return GET_ACCEL (10600);
     case 10700: return GET_ACCEL (10700);
     case 10800: return GET_ACCEL (10800);
@@ -9136,24 +9144,24 @@ uint set_kernel_accel (uint hash_mode)
     case 11000: return GET_ACCEL (11000);
     case 11100: return GET_ACCEL (11100);
     case 11200: return GET_ACCEL (11200);
-    case 11300: return GET_ACCEL (11300);
+    case 11300: return GET_ACCEL_TUNED (11300);
     case 11400: return GET_ACCEL (11400);
     case 11500: return GET_ACCEL (11500);
-    case 11600: return GET_ACCEL (11600);
-    case 11700: return GET_ACCEL (11700);
-    case 11800: return GET_ACCEL (11800);
+    case 11600: return GET_ACCEL_TUNED (11600);
+    case 11700: return GET_ACCEL_TUNED (11700);
+    case 11800: return GET_ACCEL_TUNED (11800);
     case 11900: return GET_ACCEL (11900);
     case 12000: return GET_ACCEL (12000);
     case 12100: return GET_ACCEL (12100);
-    case 12200: return GET_ACCEL (12200);
+    case 12200: return GET_ACCEL_TUNED (12200);
     case 12300: return GET_ACCEL (12300);
-    case 12400: return GET_ACCEL (12400);
-    case 12500: return GET_ACCEL (12500);
+    case 12400: return GET_ACCEL_TUNED (12400);
+    case 12500: return GET_ACCEL_TUNED (12500);
     case 12600: return GET_ACCEL (12600);
     case 12700: return GET_ACCEL (12700);
     case 12800: return GET_ACCEL (12800);
     case 12900: return GET_ACCEL (12900);
-    case 13000: return GET_ACCEL (13000);
+    case 13000: return GET_ACCEL_TUNED (13000);
   }
 
   return 0;
@@ -9163,108 +9171,108 @@ uint set_kernel_loops (uint hash_mode)
 {
   switch (hash_mode)
   {
-    case     0: return GET_LOOPS (0);
-    case    10: return GET_LOOPS (10);
-    case    11: return GET_LOOPS (11);
-    case    12: return GET_LOOPS (12);
-    case    20: return GET_LOOPS (20);
-    case    21: return GET_LOOPS (21);
-    case    22: return GET_LOOPS (22);
-    case    23: return GET_LOOPS (23);
-    case    30: return GET_LOOPS (30);
-    case    40: return GET_LOOPS (40);
-    case    50: return GET_LOOPS (50);
-    case    60: return GET_LOOPS (60);
-    case   100: return GET_LOOPS (100);
-    case   101: return GET_LOOPS (101);
-    case   110: return GET_LOOPS (110);
-    case   111: return GET_LOOPS (111);
-    case   112: return GET_LOOPS (112);
-    case   120: return GET_LOOPS (120);
-    case   121: return GET_LOOPS (121);
-    case   122: return GET_LOOPS (122);
-    case   124: return GET_LOOPS (124);
-    case   130: return GET_LOOPS (130);
-    case   131: return GET_LOOPS (131);
-    case   132: return GET_LOOPS (132);
-    case   133: return GET_LOOPS (133);
-    case   140: return GET_LOOPS (140);
-    case   141: return GET_LOOPS (141);
-    case   150: return GET_LOOPS (150);
-    case   160: return GET_LOOPS (160);
-    case   190: return GET_LOOPS (190);
-    case   200: return GET_LOOPS (200);
-    case   300: return GET_LOOPS (300);
+    case     0: return GET_LOOPS_TUNED (0);
+    case    10: return GET_LOOPS_TUNED (10);
+    case    11: return GET_LOOPS_TUNED (11);
+    case    12: return GET_LOOPS_TUNED (12);
+    case    20: return GET_LOOPS_TUNED (20);
+    case    21: return GET_LOOPS_TUNED (21);
+    case    22: return GET_LOOPS_TUNED (22);
+    case    23: return GET_LOOPS_TUNED (23);
+    case    30: return GET_LOOPS_TUNED (30);
+    case    40: return GET_LOOPS_TUNED (40);
+    case    50: return GET_LOOPS_TUNED (50);
+    case    60: return GET_LOOPS_TUNED (60);
+    case   100: return GET_LOOPS_TUNED (100);
+    case   101: return GET_LOOPS_TUNED (101);
+    case   110: return GET_LOOPS_TUNED (110);
+    case   111: return GET_LOOPS_TUNED (111);
+    case   112: return GET_LOOPS_TUNED (112);
+    case   120: return GET_LOOPS_TUNED (120);
+    case   121: return GET_LOOPS_TUNED (121);
+    case   122: return GET_LOOPS_TUNED (122);
+    case   124: return GET_LOOPS_TUNED (124);
+    case   130: return GET_LOOPS_TUNED (130);
+    case   131: return GET_LOOPS_TUNED (131);
+    case   132: return GET_LOOPS_TUNED (132);
+    case   133: return GET_LOOPS_TUNED (133);
+    case   140: return GET_LOOPS_TUNED (140);
+    case   141: return GET_LOOPS_TUNED (141);
+    case   150: return GET_LOOPS_TUNED (150);
+    case   160: return GET_LOOPS_TUNED (160);
+    case   190: return GET_LOOPS_TUNED (190);
+    case   200: return GET_LOOPS_TUNED (200);
+    case   300: return GET_LOOPS_TUNED (300);
     case   400: return GET_LOOPS (400);
     case   500: return GET_LOOPS (500);
     case   501: return GET_LOOPS (501);
-    case   900: return GET_LOOPS (900);
+    case   900: return GET_LOOPS_TUNED (900);
     case   910: return GET_LOOPS (910);
-    case  1000: return GET_LOOPS (1000);
-    case  1100: return GET_LOOPS (1100);
-    case  1400: return GET_LOOPS (1400);
-    case  1410: return GET_LOOPS (1410);
-    case  1420: return GET_LOOPS (1420);
-    case  1421: return GET_LOOPS (1421);
-    case  1430: return GET_LOOPS (1430);
-    case  1440: return GET_LOOPS (1440);
-    case  1441: return GET_LOOPS (1441);
-    case  1450: return GET_LOOPS (1450);
-    case  1460: return GET_LOOPS (1460);
+    case  1000: return GET_LOOPS_TUNED (1000);
+    case  1100: return GET_LOOPS_TUNED (1100);
+    case  1400: return GET_LOOPS_TUNED (1400);
+    case  1410: return GET_LOOPS_TUNED (1410);
+    case  1420: return GET_LOOPS_TUNED (1420);
+    case  1421: return GET_LOOPS_TUNED (1421);
+    case  1430: return GET_LOOPS_TUNED (1430);
+    case  1440: return GET_LOOPS_TUNED (1440);
+    case  1441: return GET_LOOPS_TUNED (1441);
+    case  1450: return GET_LOOPS_TUNED (1450);
+    case  1460: return GET_LOOPS_TUNED (1460);
     case  1500: return GET_LOOPS (1500);
     case  1600: return GET_LOOPS (1600);
-    case  1700: return GET_LOOPS (1700);
-    case  1710: return GET_LOOPS (1710);
-    case  1711: return GET_LOOPS (1711);
-    case  1720: return GET_LOOPS (1720);
-    case  1722: return GET_LOOPS (1722);
-    case  1730: return GET_LOOPS (1730);
-    case  1731: return GET_LOOPS (1731);
-    case  1740: return GET_LOOPS (1740);
-    case  1750: return GET_LOOPS (1750);
-    case  1760: return GET_LOOPS (1760);
+    case  1700: return GET_LOOPS_TUNED (1700);
+    case  1710: return GET_LOOPS_TUNED (1710);
+    case  1711: return GET_LOOPS_TUNED (1711);
+    case  1720: return GET_LOOPS_TUNED (1720);
+    case  1722: return GET_LOOPS_TUNED (1722);
+    case  1730: return GET_LOOPS_TUNED (1730);
+    case  1731: return GET_LOOPS_TUNED (1731);
+    case  1740: return GET_LOOPS_TUNED (1740);
+    case  1750: return GET_LOOPS_TUNED (1750);
+    case  1760: return GET_LOOPS_TUNED (1760);
     case  1800: return GET_LOOPS (1800);
     case  2100: return GET_LOOPS (2100);
-    case  2400: return GET_LOOPS (2400);
-    case  2410: return GET_LOOPS (2410);
+    case  2400: return GET_LOOPS_TUNED (2400);
+    case  2410: return GET_LOOPS_TUNED (2410);
     case  2500: return GET_LOOPS (2500);
-    case  2600: return GET_LOOPS (2600);
-    case  2611: return GET_LOOPS (2611);
-    case  2612: return GET_LOOPS (2612);
-    case  2711: return GET_LOOPS (2711);
-    case  2811: return GET_LOOPS (2811);
+    case  2600: return GET_LOOPS_TUNED (2600);
+    case  2611: return GET_LOOPS_TUNED (2611);
+    case  2612: return GET_LOOPS_TUNED (2612);
+    case  2711: return GET_LOOPS_TUNED (2711);
+    case  2811: return GET_LOOPS_TUNED (2811);
     case  3000: return GET_LOOPS (3000);
-    case  3100: return GET_LOOPS (3100);
-    case  3200: return GET_LOOPS (3200);
-    case  3710: return GET_LOOPS (3710);
-    case  3711: return GET_LOOPS (3711);
-    case  3800: return GET_LOOPS (3800);
-    case  4300: return GET_LOOPS (4300);
-    case  4400: return GET_LOOPS (4400);
-    case  4500: return GET_LOOPS (4500);
-    case  4700: return GET_LOOPS (4700);
-    case  4800: return GET_LOOPS (4800);
-    case  4900: return GET_LOOPS (4900);
-    case  5000: return GET_LOOPS (5000);
-    case  5100: return GET_LOOPS (5100);
+    case  3100: return GET_LOOPS_TUNED (3100);
+    case  3200: return GET_LOOPS_TUNED (3200);
+    case  3710: return GET_LOOPS_TUNED (3710);
+    case  3711: return GET_LOOPS_TUNED (3711);
+    case  3800: return GET_LOOPS_TUNED (3800);
+    case  4300: return GET_LOOPS_TUNED (4300);
+    case  4400: return GET_LOOPS_TUNED (4400);
+    case  4500: return GET_LOOPS_TUNED (4500);
+    case  4700: return GET_LOOPS_TUNED (4700);
+    case  4800: return GET_LOOPS_TUNED (4800);
+    case  4900: return GET_LOOPS_TUNED (4900);
+    case  5000: return GET_LOOPS_TUNED (5000);
+    case  5100: return GET_LOOPS_TUNED (5100);
     case  5200: return GET_LOOPS (5200);
-    case  5300: return GET_LOOPS (5300);
-    case  5400: return GET_LOOPS (5400);
-    case  5500: return GET_LOOPS (5500);
-    case  5600: return GET_LOOPS (5600);
-    case  5700: return GET_LOOPS (5700);
+    case  5300: return GET_LOOPS_TUNED (5300);
+    case  5400: return GET_LOOPS_TUNED (5400);
+    case  5500: return GET_LOOPS_TUNED (5500);
+    case  5600: return GET_LOOPS_TUNED (5600);
+    case  5700: return GET_LOOPS_TUNED (5700);
     case  5800: return GET_LOOPS (5800);
-    case  6000: return GET_LOOPS (6000);
-    case  6100: return GET_LOOPS (6100);
+    case  6000: return GET_LOOPS_TUNED (6000);
+    case  6100: return GET_LOOPS_TUNED (6100);
     case  6211: return GET_LOOPS (6211);
     case  6212: return GET_LOOPS (6212);
     case  6213: return GET_LOOPS (6213);
     case  6221: return GET_LOOPS (6221);
     case  6222: return GET_LOOPS (6222);
     case  6223: return GET_LOOPS (6223);
-    case  6231: return GET_LOOPS (6231);
-    case  6232: return GET_LOOPS (6232);
-    case  6233: return GET_LOOPS (6233);
+    case  6231: return GET_LOOPS_TUNED (6231);
+    case  6232: return GET_LOOPS_TUNED (6232);
+    case  6233: return GET_LOOPS_TUNED (6233);
     case  6241: return GET_LOOPS (6241);
     case  6242: return GET_LOOPS (6242);
     case  6243: return GET_LOOPS (6243);
@@ -9274,24 +9282,24 @@ uint set_kernel_loops (uint hash_mode)
     case  6600: return GET_LOOPS (6600);
     case  6700: return GET_LOOPS (6700);
     case  6800: return GET_LOOPS (6800);
-    case  6900: return GET_LOOPS (6900);
+    case  6900: return GET_LOOPS_TUNED (6900);
     case  7100: return GET_LOOPS (7100);
     case  7200: return GET_LOOPS (7200);
-    case  7300: return GET_LOOPS (7300);
+    case  7300: return GET_LOOPS_TUNED (7300);
     case  7400: return GET_LOOPS (7400);
-    case  7500: return GET_LOOPS (7500);
-    case  7600: return GET_LOOPS (7600);
-    case  7700: return GET_LOOPS (7700);
-    case  7800: return GET_LOOPS (7800);
+    case  7500: return GET_LOOPS_TUNED (7500);
+    case  7600: return GET_LOOPS_TUNED (7600);
+    case  7700: return GET_LOOPS_TUNED (7700);
+    case  7800: return GET_LOOPS_TUNED (7800);
     case  7900: return GET_LOOPS (7900);
-    case  8000: return GET_LOOPS (8000);
-    case  8100: return GET_LOOPS (8100);
+    case  8000: return GET_LOOPS_TUNED (8000);
+    case  8100: return GET_LOOPS_TUNED (8100);
     case  8200: return GET_LOOPS (8200);
-    case  8300: return GET_LOOPS (8300);
-    case  8400: return GET_LOOPS (8400);
-    case  8500: return GET_LOOPS (8500);
-    case  8600: return GET_LOOPS (8600);
-    case  8700: return GET_LOOPS (8700);
+    case  8300: return GET_LOOPS_TUNED (8300);
+    case  8400: return GET_LOOPS_TUNED (8400);
+    case  8500: return GET_LOOPS_TUNED (8500);
+    case  8600: return GET_LOOPS_TUNED (8600);
+    case  8700: return GET_LOOPS_TUNED (8700);
     case  8800: return GET_LOOPS (8800);
     case  8900: return GET_LOOPS (8900);
     case  9000: return GET_LOOPS (9000);
@@ -9301,34 +9309,34 @@ uint set_kernel_loops (uint hash_mode)
     case  9400: return GET_LOOPS (9400);
     case  9500: return GET_LOOPS (9500);
     case  9600: return GET_LOOPS (9600);
-    case  9700: return GET_LOOPS (9700);
-    case  9710: return GET_LOOPS (9710);
-    case  9720: return GET_LOOPS (9720);
-    case  9800: return GET_LOOPS (9800);
-    case  9810: return GET_LOOPS (9810);
-    case  9820: return GET_LOOPS (9820);
-    case  9900: return GET_LOOPS (9900);
+    case  9700: return GET_LOOPS_TUNED (9700);
+    case  9710: return GET_LOOPS_TUNED (9710);
+    case  9720: return GET_LOOPS_TUNED (9720);
+    case  9800: return GET_LOOPS_TUNED (9800);
+    case  9810: return GET_LOOPS_TUNED (9810);
+    case  9820: return GET_LOOPS_TUNED (9820);
+    case  9900: return GET_LOOPS_TUNED (9900);
     case 10000: return GET_LOOPS (10000);
-    case 10100: return GET_LOOPS (10100);
-    case 10200: return GET_LOOPS (10200);
+    case 10100: return GET_LOOPS_TUNED (10100);
+    case 10200: return GET_LOOPS_TUNED (10200);
     case 10300: return GET_LOOPS (10300);
-    case 10400: return GET_LOOPS (10400);
-    case 10410: return GET_LOOPS (10410);
-    case 10420: return GET_LOOPS (10420);
+    case 10400: return GET_LOOPS_TUNED (10400);
+    case 10410: return GET_LOOPS_TUNED (10410);
+    case 10420: return GET_LOOPS_TUNED (10420);
     case 10500: return GET_LOOPS (10500);
-    case 10600: return GET_LOOPS (10600);
-    case 10700: return GET_LOOPS (10700);
-    case 10800: return GET_LOOPS (10800);
+    case 10600: return GET_LOOPS_TUNED (10600);
+    case 10700: return GET_LOOPS_TUNED (10700);
+    case 10800: return GET_LOOPS_TUNED (10800);
     case 10900: return GET_LOOPS (10900);
-    case 11000: return GET_LOOPS (11000);
-    case 11100: return GET_LOOPS (11100);
-    case 11200: return GET_LOOPS (11200);
+    case 11000: return GET_LOOPS_TUNED (11000);
+    case 11100: return GET_LOOPS_TUNED (11100);
+    case 11200: return GET_LOOPS_TUNED (11200);
     case 11300: return GET_LOOPS (11300);
-    case 11400: return GET_LOOPS (11400);
-    case 11500: return GET_LOOPS (11500);
+    case 11400: return GET_LOOPS_TUNED (11400);
+    case 11500: return GET_LOOPS_TUNED (11500);
     case 11600: return GET_LOOPS (11600);
-    case 11700: return GET_LOOPS (11700);
-    case 11800: return GET_LOOPS (11800);
+    case 11700: return GET_LOOPS_TUNED (11700);
+    case 11800: return GET_LOOPS_TUNED (11800);
     case 11900: return GET_LOOPS (11900);
     case 12000: return GET_LOOPS (12000);
     case 12100: return GET_LOOPS (12100);
@@ -9336,7 +9344,7 @@ uint set_kernel_loops (uint hash_mode)
     case 12300: return GET_LOOPS (12300);
     case 12400: return GET_LOOPS (12400);
     case 12500: return GET_LOOPS (12500);
-    case 12600: return GET_LOOPS (12600);
+    case 12600: return GET_LOOPS_TUNED (12600);
     case 12700: return GET_LOOPS (12700);
     case 12800: return GET_LOOPS (12800);
     case 12900: return GET_LOOPS (12900);