1
0
mirror of https://github.com/hashcat/hashcat.git synced 2025-02-26 14:22:12 +00:00

Merge pull request #157 from gm4tr1x/loops-accel

Improved osx support with custom kernel loops and gpu accel (issue #63)
This commit is contained in:
Jens Steube 2016-01-27 18:19:11 +01:00
commit 9d5a757ae5
4 changed files with 321 additions and 130 deletions

View 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 * License.....: MIT
*/ */
@ -87,10 +89,12 @@
#define CL_VENDOR_NV "NVIDIA Corporation" #define CL_VENDOR_NV "NVIDIA Corporation"
#define CL_VENDOR_AMD "Advanced Micro Devices, Inc." #define CL_VENDOR_AMD "Advanced Micro Devices, Inc."
#define CL_VENDOR_APPLE "Apple"
#define CL_VENDOR_POCL "The pocl project" #define CL_VENDOR_POCL "The pocl project"
#define VENDOR_ID_AMD 4098 #define VENDOR_ID_AMD 4098
#define VENDOR_ID_NV 4318 #define VENDOR_ID_NV 4318
#define VENDOR_ID_APPLE 16925952
#define VENDOR_ID_GENERIC 9999 #define VENDOR_ID_GENERIC 9999
#define BLOCK_SIZE 64 #define BLOCK_SIZE 64
@ -165,9 +169,49 @@ extern hc_thread_mutex_t mux_display;
#define PW_LENGTH_MAX_7400 15 #define PW_LENGTH_MAX_7400 15
/** /**
* device accel / loops macro * device accel macro
*/ */
#ifdef OSX
#define KERNEL_ACCEL_5000 16
#define KERNEL_ACCEL_6100 1
#define KERNEL_ACCEL_6211 4
#define KERNEL_ACCEL_6231 1
#define KERNEL_ACCEL_6241 4
#define KERNEL_ACCEL_8200 1
#define KERNEL_ACCEL_8700 2
#define KERNEL_ACCEL_9500 1
#define KERNEL_ACCEL_9600 1
#define KERNEL_ACCEL_10500 4
#define KERNEL_ACCEL_11300 1
#define KERNEL_ACCEL_11600 1
#define KERNEL_ACCEL_11700 1
#define KERNEL_ACCEL_11800 1
#define KERNEL_ACCEL_12200 1
#define KERNEL_ACCEL_12400 1
#define KERNEL_ACCEL_12500 1
#define KERNEL_ACCEL_13000 1
#else
#define KERNEL_ACCEL_5000 64
#define KERNEL_ACCEL_6100 8
#define KERNEL_ACCEL_6211 16
#define KERNEL_ACCEL_6231 4
#define KERNEL_ACCEL_6241 32
#define KERNEL_ACCEL_8200 2
#define KERNEL_ACCEL_8700 8
#define KERNEL_ACCEL_9500 8
#define KERNEL_ACCEL_9600 2
#define KERNEL_ACCEL_10500 64
#define KERNEL_ACCEL_11300 2
#define KERNEL_ACCEL_11600 2
#define KERNEL_ACCEL_11700 4
#define KERNEL_ACCEL_11800 4
#define KERNEL_ACCEL_12200 2
#define KERNEL_ACCEL_12400 64
#define KERNEL_ACCEL_12500 8
#define KERNEL_ACCEL_13000 8
#endif // OSX
#define KERNEL_ACCEL_0 128 #define KERNEL_ACCEL_0 128
#define KERNEL_ACCEL_10 128 #define KERNEL_ACCEL_10 128
#define KERNEL_ACCEL_11 128 #define KERNEL_ACCEL_11 128
@ -250,7 +294,6 @@ extern hc_thread_mutex_t mux_display;
#define KERNEL_ACCEL_4700 64 #define KERNEL_ACCEL_4700 64
#define KERNEL_ACCEL_4800 128 #define KERNEL_ACCEL_4800 128
#define KERNEL_ACCEL_4900 64 #define KERNEL_ACCEL_4900 64
#define KERNEL_ACCEL_5000 64
#define KERNEL_ACCEL_5100 64 #define KERNEL_ACCEL_5100 64
#define KERNEL_ACCEL_5200 8 #define KERNEL_ACCEL_5200 8
#define KERNEL_ACCEL_5300 32 #define KERNEL_ACCEL_5300 32
@ -260,17 +303,13 @@ extern hc_thread_mutex_t mux_display;
#define KERNEL_ACCEL_5700 64 #define KERNEL_ACCEL_5700 64
#define KERNEL_ACCEL_5800 8 #define KERNEL_ACCEL_5800 8
#define KERNEL_ACCEL_6000 64 #define KERNEL_ACCEL_6000 64
#define KERNEL_ACCEL_6100 8
#define KERNEL_ACCEL_6211 16
#define KERNEL_ACCEL_6212 8 #define KERNEL_ACCEL_6212 8
#define KERNEL_ACCEL_6213 8 #define KERNEL_ACCEL_6213 8
#define KERNEL_ACCEL_6221 4 #define KERNEL_ACCEL_6221 4
#define KERNEL_ACCEL_6222 4 #define KERNEL_ACCEL_6222 4
#define KERNEL_ACCEL_6223 4 #define KERNEL_ACCEL_6223 4
#define KERNEL_ACCEL_6231 4
#define KERNEL_ACCEL_6232 4 #define KERNEL_ACCEL_6232 4
#define KERNEL_ACCEL_6233 4 #define KERNEL_ACCEL_6233 4
#define KERNEL_ACCEL_6241 32
#define KERNEL_ACCEL_6242 16 #define KERNEL_ACCEL_6242 16
#define KERNEL_ACCEL_6243 16 #define KERNEL_ACCEL_6243 16
#define KERNEL_ACCEL_6300 8 #define KERNEL_ACCEL_6300 8
@ -291,12 +330,10 @@ extern hc_thread_mutex_t mux_display;
#define KERNEL_ACCEL_7900 2 #define KERNEL_ACCEL_7900 2
#define KERNEL_ACCEL_8000 8 #define KERNEL_ACCEL_8000 8
#define KERNEL_ACCEL_8100 64 #define KERNEL_ACCEL_8100 64
#define KERNEL_ACCEL_8200 2
#define KERNEL_ACCEL_8300 64 #define KERNEL_ACCEL_8300 64
#define KERNEL_ACCEL_8400 64 #define KERNEL_ACCEL_8400 64
#define KERNEL_ACCEL_8500 64 #define KERNEL_ACCEL_8500 64
#define KERNEL_ACCEL_8600 8 #define KERNEL_ACCEL_8600 8
#define KERNEL_ACCEL_8700 8
#define KERNEL_ACCEL_8800 8 #define KERNEL_ACCEL_8800 8
#define KERNEL_ACCEL_8900 16 #define KERNEL_ACCEL_8900 16
#define KERNEL_ACCEL_9000 2 #define KERNEL_ACCEL_9000 2
@ -304,8 +341,6 @@ extern hc_thread_mutex_t mux_display;
#define KERNEL_ACCEL_9200 2 #define KERNEL_ACCEL_9200 2
#define KERNEL_ACCEL_9300 2 #define KERNEL_ACCEL_9300 2
#define KERNEL_ACCEL_9400 8 #define KERNEL_ACCEL_9400 8
#define KERNEL_ACCEL_9500 8
#define KERNEL_ACCEL_9600 2
#define KERNEL_ACCEL_9700 8 #define KERNEL_ACCEL_9700 8
#define KERNEL_ACCEL_9710 8 #define KERNEL_ACCEL_9710 8
#define KERNEL_ACCEL_9720 8 #define KERNEL_ACCEL_9720 8
@ -320,7 +355,6 @@ extern hc_thread_mutex_t mux_display;
#define KERNEL_ACCEL_10400 8 #define KERNEL_ACCEL_10400 8
#define KERNEL_ACCEL_10410 8 #define KERNEL_ACCEL_10410 8
#define KERNEL_ACCEL_10420 8 #define KERNEL_ACCEL_10420 8
#define KERNEL_ACCEL_10500 64
#define KERNEL_ACCEL_10600 64 #define KERNEL_ACCEL_10600 64
#define KERNEL_ACCEL_10700 1 #define KERNEL_ACCEL_10700 1
#define KERNEL_ACCEL_10800 64 #define KERNEL_ACCEL_10800 64
@ -328,25 +362,143 @@ extern hc_thread_mutex_t mux_display;
#define KERNEL_ACCEL_11000 64 #define KERNEL_ACCEL_11000 64
#define KERNEL_ACCEL_11100 64 #define KERNEL_ACCEL_11100 64
#define KERNEL_ACCEL_11200 64 #define KERNEL_ACCEL_11200 64
#define KERNEL_ACCEL_11300 2
#define KERNEL_ACCEL_11400 8 #define KERNEL_ACCEL_11400 8
#define KERNEL_ACCEL_11500 128 #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_11900 2
#define KERNEL_ACCEL_12000 2 #define KERNEL_ACCEL_12000 2
#define KERNEL_ACCEL_12100 2 #define KERNEL_ACCEL_12100 2
#define KERNEL_ACCEL_12200 2
#define KERNEL_ACCEL_12300 2 #define KERNEL_ACCEL_12300 2
#define KERNEL_ACCEL_12400 64
#define KERNEL_ACCEL_12500 8
#define KERNEL_ACCEL_12600 32 #define KERNEL_ACCEL_12600 32
#define KERNEL_ACCEL_12700 64 #define KERNEL_ACCEL_12700 64
#define KERNEL_ACCEL_12800 64 #define KERNEL_ACCEL_12800 64
#define KERNEL_ACCEL_12900 8 #define KERNEL_ACCEL_12900 8
#define KERNEL_ACCEL_13000 8
/**
* device loops macro
*/
#ifdef OSX
#define KERNEL_LOOPS_0 2
#define KERNEL_LOOPS_10 2
#define KERNEL_LOOPS_11 2
#define KERNEL_LOOPS_12 2
#define KERNEL_LOOPS_20 2
#define KERNEL_LOOPS_21 2
#define KERNEL_LOOPS_22 2
#define KERNEL_LOOPS_23 2
#define KERNEL_LOOPS_30 2
#define KERNEL_LOOPS_40 2
#define KERNEL_LOOPS_50 2
#define KERNEL_LOOPS_60 2
#define KERNEL_LOOPS_100 2
#define KERNEL_LOOPS_101 2
#define KERNEL_LOOPS_110 2
#define KERNEL_LOOPS_111 2
#define KERNEL_LOOPS_112 2
#define KERNEL_LOOPS_120 2
#define KERNEL_LOOPS_121 2
#define KERNEL_LOOPS_122 2
#define KERNEL_LOOPS_124 2
#define KERNEL_LOOPS_130 2
#define KERNEL_LOOPS_131 2
#define KERNEL_LOOPS_132 2
#define KERNEL_LOOPS_133 2
#define KERNEL_LOOPS_140 2
#define KERNEL_LOOPS_141 2
#define KERNEL_LOOPS_150 2
#define KERNEL_LOOPS_160 2
#define KERNEL_LOOPS_190 2
#define KERNEL_LOOPS_200 2
#define KERNEL_LOOPS_300 2
#define KERNEL_LOOPS_900 2
#define KERNEL_LOOPS_1000 2
#define KERNEL_LOOPS_1100 2
#define KERNEL_LOOPS_1400 2
#define KERNEL_LOOPS_1410 2
#define KERNEL_LOOPS_1420 2
#define KERNEL_LOOPS_1421 2
#define KERNEL_LOOPS_1430 2
#define KERNEL_LOOPS_1440 2
#define KERNEL_LOOPS_1441 2
#define KERNEL_LOOPS_1450 2
#define KERNEL_LOOPS_1460 2
#define KERNEL_LOOPS_1700 2
#define KERNEL_LOOPS_1710 2
#define KERNEL_LOOPS_1711 2
#define KERNEL_LOOPS_1720 2
#define KERNEL_LOOPS_1722 2
#define KERNEL_LOOPS_1730 2
#define KERNEL_LOOPS_1731 2
#define KERNEL_LOOPS_1740 2
#define KERNEL_LOOPS_1750 2
#define KERNEL_LOOPS_1760 2
#define KERNEL_LOOPS_2400 2
#define KERNEL_LOOPS_2410 2
#define KERNEL_LOOPS_2600 2
#define KERNEL_LOOPS_2611 2
#define KERNEL_LOOPS_2612 2
#define KERNEL_LOOPS_2711 2
#define KERNEL_LOOPS_2811 2
#define KERNEL_LOOPS_3100 2
#define KERNEL_LOOPS_3200 4
#define KERNEL_LOOPS_3710 2
#define KERNEL_LOOPS_3711 2
#define KERNEL_LOOPS_3800 2
#define KERNEL_LOOPS_4300 2
#define KERNEL_LOOPS_4400 2
#define KERNEL_LOOPS_4500 2
#define KERNEL_LOOPS_4700 2
#define KERNEL_LOOPS_4800 2
#define KERNEL_LOOPS_4900 2
#define KERNEL_LOOPS_5000 2
#define KERNEL_LOOPS_5100 2
#define KERNEL_LOOPS_5300 2
#define KERNEL_LOOPS_5400 2
#define KERNEL_LOOPS_5500 2
#define KERNEL_LOOPS_5600 2
#define KERNEL_LOOPS_5700 2
#define KERNEL_LOOPS_6000 2
#define KERNEL_LOOPS_6100 2
#define KERNEL_LOOPS_6231 2
#define KERNEL_LOOPS_6232 2
#define KERNEL_LOOPS_6233 2
#define KERNEL_LOOPS_6900 2
#define KERNEL_LOOPS_7300 2
#define KERNEL_LOOPS_7500 2
#define KERNEL_LOOPS_7600 2
#define KERNEL_LOOPS_7700 2
#define KERNEL_LOOPS_7800 2
#define KERNEL_LOOPS_8000 2
#define KERNEL_LOOPS_8100 2
#define KERNEL_LOOPS_8300 2
#define KERNEL_LOOPS_8400 2
#define KERNEL_LOOPS_8500 2
#define KERNEL_LOOPS_8600 2
#define KERNEL_LOOPS_8700 4
#define KERNEL_LOOPS_9700 2
#define KERNEL_LOOPS_9710 8
#define KERNEL_LOOPS_9720 8
#define KERNEL_LOOPS_9800 2
#define KERNEL_LOOPS_9810 2
#define KERNEL_LOOPS_9820 2
#define KERNEL_LOOPS_9900 2
#define KERNEL_LOOPS_10100 2
#define KERNEL_LOOPS_10200 2
#define KERNEL_LOOPS_10400 2
#define KERNEL_LOOPS_10410 2
#define KERNEL_LOOPS_10420 2
#define KERNEL_LOOPS_10600 2
#define KERNEL_LOOPS_10700 2
#define KERNEL_LOOPS_10800 2
#define KERNEL_LOOPS_11000 2
#define KERNEL_LOOPS_11100 2
#define KERNEL_LOOPS_11200 2
#define KERNEL_LOOPS_11400 2
#define KERNEL_LOOPS_11500 2
#define KERNEL_LOOPS_11700 8
#define KERNEL_LOOPS_11800 8
#define KERNEL_LOOPS_12600 2
#else
#define KERNEL_LOOPS_0 256 #define KERNEL_LOOPS_0 256
#define KERNEL_LOOPS_10 256 #define KERNEL_LOOPS_10 256
#define KERNEL_LOOPS_11 256 #define KERNEL_LOOPS_11 256
@ -379,11 +531,7 @@ extern hc_thread_mutex_t mux_display;
#define KERNEL_LOOPS_190 128 #define KERNEL_LOOPS_190 128
#define KERNEL_LOOPS_200 128 #define KERNEL_LOOPS_200 128
#define KERNEL_LOOPS_300 64 #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_900 256
#define KERNEL_LOOPS_910 256
#define KERNEL_LOOPS_1000 256 #define KERNEL_LOOPS_1000 256
#define KERNEL_LOOPS_1100 128 #define KERNEL_LOOPS_1100 128
#define KERNEL_LOOPS_1400 64 #define KERNEL_LOOPS_1400 64
@ -395,8 +543,6 @@ extern hc_thread_mutex_t mux_display;
#define KERNEL_LOOPS_1441 64 #define KERNEL_LOOPS_1441 64
#define KERNEL_LOOPS_1450 32 #define KERNEL_LOOPS_1450 32
#define KERNEL_LOOPS_1460 32 #define KERNEL_LOOPS_1460 32
#define KERNEL_LOOPS_1500 256
#define KERNEL_LOOPS_1600 256
#define KERNEL_LOOPS_1700 32 #define KERNEL_LOOPS_1700 32
#define KERNEL_LOOPS_1710 32 #define KERNEL_LOOPS_1710 32
#define KERNEL_LOOPS_1711 32 #define KERNEL_LOOPS_1711 32
@ -407,17 +553,13 @@ extern hc_thread_mutex_t mux_display;
#define KERNEL_LOOPS_1740 32 #define KERNEL_LOOPS_1740 32
#define KERNEL_LOOPS_1750 16 #define KERNEL_LOOPS_1750 16
#define KERNEL_LOOPS_1760 16 #define KERNEL_LOOPS_1760 16
#define KERNEL_LOOPS_1800 16
#define KERNEL_LOOPS_2100 256
#define KERNEL_LOOPS_2400 256 #define KERNEL_LOOPS_2400 256
#define KERNEL_LOOPS_2410 256 #define KERNEL_LOOPS_2410 256
#define KERNEL_LOOPS_2500 256
#define KERNEL_LOOPS_2600 128 #define KERNEL_LOOPS_2600 128
#define KERNEL_LOOPS_2611 128 #define KERNEL_LOOPS_2611 128
#define KERNEL_LOOPS_2612 128 #define KERNEL_LOOPS_2612 128
#define KERNEL_LOOPS_2711 64 #define KERNEL_LOOPS_2711 64
#define KERNEL_LOOPS_2811 64 #define KERNEL_LOOPS_2811 64
#define KERNEL_LOOPS_3000 256
#define KERNEL_LOOPS_3100 16 #define KERNEL_LOOPS_3100 16
#define KERNEL_LOOPS_3200 16 #define KERNEL_LOOPS_3200 16
#define KERNEL_LOOPS_3710 128 #define KERNEL_LOOPS_3710 128
@ -431,24 +573,72 @@ extern hc_thread_mutex_t mux_display;
#define KERNEL_LOOPS_4900 128 #define KERNEL_LOOPS_4900 128
#define KERNEL_LOOPS_5000 64 #define KERNEL_LOOPS_5000 64
#define KERNEL_LOOPS_5100 256 #define KERNEL_LOOPS_5100 256
#define KERNEL_LOOPS_5200 256
#define KERNEL_LOOPS_5300 32 #define KERNEL_LOOPS_5300 32
#define KERNEL_LOOPS_5400 32 #define KERNEL_LOOPS_5400 32
#define KERNEL_LOOPS_5500 128 #define KERNEL_LOOPS_5500 128
#define KERNEL_LOOPS_5600 64 #define KERNEL_LOOPS_5600 64
#define KERNEL_LOOPS_5700 64 #define KERNEL_LOOPS_5700 64
#define KERNEL_LOOPS_5800 256
#define KERNEL_LOOPS_6000 64 #define KERNEL_LOOPS_6000 64
#define KERNEL_LOOPS_6100 64 #define KERNEL_LOOPS_6100 64
#define KERNEL_LOOPS_6231 200
#define KERNEL_LOOPS_6232 200
#define KERNEL_LOOPS_6233 200
#define KERNEL_LOOPS_6900 64
#define KERNEL_LOOPS_7300 64
#define KERNEL_LOOPS_7500 16
#define KERNEL_LOOPS_7600 128
#define KERNEL_LOOPS_7700 128
#define KERNEL_LOOPS_7800 64
#define KERNEL_LOOPS_8000 64
#define KERNEL_LOOPS_8100 128
#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_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_10100 512
#define KERNEL_LOOPS_10200 64
#define KERNEL_LOOPS_10400 256
#define KERNEL_LOOPS_10410 256
#define KERNEL_LOOPS_10420 256
#define KERNEL_LOOPS_10600 64
#define KERNEL_LOOPS_10700 64
#define KERNEL_LOOPS_10800 32
#define KERNEL_LOOPS_11000 256
#define KERNEL_LOOPS_11100 128
#define KERNEL_LOOPS_11200 128
#define KERNEL_LOOPS_11400 128
#define KERNEL_LOOPS_11500 256
#define KERNEL_LOOPS_11700 64
#define KERNEL_LOOPS_11800 64
#define KERNEL_LOOPS_12600 32
#endif // OSX
#define KERNEL_LOOPS_400 256
#define KERNEL_LOOPS_500 256
#define KERNEL_LOOPS_501 256
#define KERNEL_LOOPS_910 256
#define KERNEL_LOOPS_1500 256
#define KERNEL_LOOPS_1600 256
#define KERNEL_LOOPS_1800 16
#define KERNEL_LOOPS_2100 256
#define KERNEL_LOOPS_2500 256
#define KERNEL_LOOPS_3000 256
#define KERNEL_LOOPS_5200 256
#define KERNEL_LOOPS_5800 256
#define KERNEL_LOOPS_6211 200 #define KERNEL_LOOPS_6211 200
#define KERNEL_LOOPS_6212 200 #define KERNEL_LOOPS_6212 200
#define KERNEL_LOOPS_6213 200 #define KERNEL_LOOPS_6213 200
#define KERNEL_LOOPS_6221 200 #define KERNEL_LOOPS_6221 200
#define KERNEL_LOOPS_6222 200 #define KERNEL_LOOPS_6222 200
#define KERNEL_LOOPS_6223 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_6241 200
#define KERNEL_LOOPS_6242 200 #define KERNEL_LOOPS_6242 200
#define KERNEL_LOOPS_6243 200 #define KERNEL_LOOPS_6243 200
@ -458,24 +648,11 @@ extern hc_thread_mutex_t mux_display;
#define KERNEL_LOOPS_6600 200 #define KERNEL_LOOPS_6600 200
#define KERNEL_LOOPS_6700 256 #define KERNEL_LOOPS_6700 256
#define KERNEL_LOOPS_6800 200 #define KERNEL_LOOPS_6800 200
#define KERNEL_LOOPS_6900 64
#define KERNEL_LOOPS_7100 256 #define KERNEL_LOOPS_7100 256
#define KERNEL_LOOPS_7200 200 #define KERNEL_LOOPS_7200 200
#define KERNEL_LOOPS_7300 64
#define KERNEL_LOOPS_7400 200 #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_7900 256
#define KERNEL_LOOPS_8000 64
#define KERNEL_LOOPS_8100 128
#define KERNEL_LOOPS_8200 200 #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_8800 256
#define KERNEL_LOOPS_8900 1 #define KERNEL_LOOPS_8900 1
#define KERNEL_LOOPS_9000 16 #define KERNEL_LOOPS_9000 16
@ -485,34 +662,12 @@ extern hc_thread_mutex_t mux_display;
#define KERNEL_LOOPS_9400 200 #define KERNEL_LOOPS_9400 200
#define KERNEL_LOOPS_9500 200 #define KERNEL_LOOPS_9500 200
#define KERNEL_LOOPS_9600 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_10000 200
#define KERNEL_LOOPS_10100 512
#define KERNEL_LOOPS_10200 64
#define KERNEL_LOOPS_10300 128 #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_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_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_11300 256
#define KERNEL_LOOPS_11400 128
#define KERNEL_LOOPS_11500 256
#define KERNEL_LOOPS_11600 512 #define KERNEL_LOOPS_11600 512
#define KERNEL_LOOPS_11700 64
#define KERNEL_LOOPS_11800 64
#define KERNEL_LOOPS_11900 200 #define KERNEL_LOOPS_11900 200
#define KERNEL_LOOPS_12000 200 #define KERNEL_LOOPS_12000 200
#define KERNEL_LOOPS_12100 200 #define KERNEL_LOOPS_12100 200
@ -520,7 +675,6 @@ extern hc_thread_mutex_t mux_display;
#define KERNEL_LOOPS_12300 256 #define KERNEL_LOOPS_12300 256
#define KERNEL_LOOPS_12400 256 #define KERNEL_LOOPS_12400 256
#define KERNEL_LOOPS_12500 256 #define KERNEL_LOOPS_12500 256
#define KERNEL_LOOPS_12600 32
#define KERNEL_LOOPS_12700 10 #define KERNEL_LOOPS_12700 10
#define KERNEL_LOOPS_12800 100 #define KERNEL_LOOPS_12800 100
#define KERNEL_LOOPS_12900 64 #define KERNEL_LOOPS_12900 64

View File

@ -125,7 +125,7 @@ VERSION_SUM := $(shell git describe --tags --dirty=+ | cut -d- -f3)
CFLAGS := -O2 -pipe -W -Wall -std=c99 -Iinclude/ CFLAGS := -O2 -pipe -W -Wall -std=c99 -Iinclude/
ifeq ($(DEBUG),1) ifeq ($(DEBUG),1)
CFLAGS += -g -ggdb -fsanitize=address -fno-omit-frame-pointer CFLAGS += -DDEBUG -g -ggdb -fsanitize=address -fno-omit-frame-pointer
endif endif
## ##

View File

@ -160,10 +160,10 @@ static uint default_benchmark_algorithms[NUM_DEFAULT_BENCHMARK_ALGORITHMS] =
5000, 5000,
10100, 10100,
6000, 6000,
6100, 6100, // broken in osx
6900, 6900, // broken in osx
11700, 11700, // broken in osx
11800, 11800, // broken in osx
400, 400,
8900, 8900,
11900, 11900,
@ -172,55 +172,55 @@ static uint default_benchmark_algorithms[NUM_DEFAULT_BENCHMARK_ALGORITHMS] =
12100, 12100,
23, 23,
2500, 2500,
5300, 5300, // broken in osx
5400, 5400, // broken in osx
5500, 5500, // broken in osx
5600, 5600, // broken in osx
7300, 7300,
7500, 7500, // broken in osx
8300, 8300,
11100, 11100, // broken in osx
11200, 11200,
11400, 11400, // broken in osx
121, 121,
2611, 2611, // broken in osx
2711, 2711, // broken in osx
2811, 2811, // broken in osx
8400, 8400, // broken in osx
11, 11,
2612, 2612, // broken in osx
7900, 7900,
21, 21,
11000, 11000,
124, 124,
10000, 10000,
3711, 3711, // broken in osx
7600, 7600, // broken in osx
12, 12,
131, 131,
132, 132,
1731, 1731,
200, 200,
300, 300,
3100, 3100, // broken in osx
112, 112,
12300, 12300,
8000, 8000, // broken in osx
141, 141,
1441, 1441,
1600, 1600,
12600, 12600, // broken in osx
1421, 1421,
101, 101,
111, 111,
1711, 1711,
3000, 3000, // broken in osx
1000, 1000,
1100, 1100,
2100, 2100,
12800, 12800,
1500, 1500, // broken in osx
12400, 12400, // broken in osx
500, 500,
3200, 3200,
7400, 7400,
@ -241,45 +241,45 @@ static uint default_benchmark_algorithms[NUM_DEFAULT_BENCHMARK_ALGORITHMS] =
501, 501,
5800, 5800,
8100, 8100,
8500, 8500, // broken in osx
7200, 7200,
9900, 9900,
7700, 7700,
7800, 7800,
10300, 10300,
8600, 8600, // broken in osx
8700, 8700, // broken in osx
9100, 9100, // broken in osx
133, 133,
11600, 11600, // broken in osx
12500, 12500, // broken in osx
13000, 13000,
6211, 6211,
6221, 6221,
6231, 6231, // broken in osx
6241, 6241,
8800, 8800, // broken in osx
12900, 12900,
12200, 12200,
9700, 9700, // broken in osx
9710, 9710, // broken in osx
9800, 9800, // broken in osx
9810, 9810, // broken in osx
9400, 9400, // broken in osx
9500, 9500, // broken in osx
9600, 9600, // broken in osx
10400, 10400, // broken in osx
10410, 10410, // broken in osx
10500, 10500,
10600, 10600,
10700, 10700, // broken in osx
9000, 9000,
5200, 5200,
6800, 6800, // broken in osx
6600, 6600, // broken in osx
8200, 8200,
11300, 11300, // broken in osx
12700 12700 // broken in osx
}; };
/** /**
@ -11383,7 +11383,9 @@ int main (int argc, char **argv)
kernel_accel = 16; kernel_accel = 16;
break; break;
case 6211: kernel_loops = ROUNDS_TRUECRYPT_2K; case 6211: kernel_loops = ROUNDS_TRUECRYPT_2K;
#ifndef OSX
kernel_accel = 64; kernel_accel = 64;
#endif
break; break;
case 6212: kernel_loops = ROUNDS_TRUECRYPT_2K; case 6212: kernel_loops = ROUNDS_TRUECRYPT_2K;
kernel_accel = 32; kernel_accel = 32;
@ -11410,7 +11412,9 @@ int main (int argc, char **argv)
kernel_accel = 8; kernel_accel = 8;
break; break;
case 6241: kernel_loops = ROUNDS_TRUECRYPT_1K; case 6241: kernel_loops = ROUNDS_TRUECRYPT_1K;
#ifndef OSX
kernel_accel = 128; kernel_accel = 128;
#endif
break; break;
case 6242: kernel_loops = ROUNDS_TRUECRYPT_1K; case 6242: kernel_loops = ROUNDS_TRUECRYPT_1K;
kernel_accel = 64; kernel_accel = 64;
@ -11440,7 +11444,9 @@ int main (int argc, char **argv)
kernel_accel = 8; kernel_accel = 8;
break; break;
case 7200: kernel_loops = ROUNDS_GRUB; case 7200: kernel_loops = ROUNDS_GRUB;
#ifndef OSX
kernel_accel = 16; kernel_accel = 16;
#endif
break; break;
case 7400: kernel_loops = ROUNDS_SHA256CRYPT; case 7400: kernel_loops = ROUNDS_SHA256CRYPT;
kernel_accel = 8; kernel_accel = 8;
@ -13190,6 +13196,37 @@ int main (int argc, char **argv)
#endif // HAVE_ADK #endif // HAVE_ADK
#endif // HAVE_HWMON #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; uint kernel_blocks_all = 0;
for (uint device_id = 0; device_id < devices_cnt; device_id++) for (uint device_id = 0; device_id < devices_cnt; device_id++)
@ -15621,9 +15658,9 @@ int main (int argc, char **argv)
// some more resets: // 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->pw_cnt = 0;
device_param->pws_cnt = 0; device_param->pws_cnt = 0;

View File

@ -8628,9 +8628,9 @@ void myquit ()
void load_kernel (const char *kernel_file, int num_devices, size_t *kernel_lengths, const u8 **kernel_sources) 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; struct stat st;