diff options
Diffstat (limited to 'arch/common/blowfish.h')
-rw-r--r-- | arch/common/blowfish.h | 54 |
1 files changed, 26 insertions, 28 deletions
diff --git a/arch/common/blowfish.h b/arch/common/blowfish.h index ceec7a96..5fea2e22 100644 --- a/arch/common/blowfish.h +++ b/arch/common/blowfish.h @@ -1,6 +1,6 @@ /* * HardInfo - Displays System Information - * Copyright (C) 2003-2007 Leandro A. F. Pereira <leandro@linuxmag.com.br> + * Copyright (C) 2003-2007 Leandro A. F. Pereira <leandro@hardinfo.org> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,48 +18,46 @@ #include <blowfish.h> -static void -benchmark_fish(void) +static gpointer +parallel_blowfish(unsigned int start, unsigned int end, void *data, GTimer *timer) { BLOWFISH_CTX ctx; - GTimer *timer = g_timer_new(); - gdouble elapsed = 0; - gchar src[65536], *tmpsrc; - glong srclen = 65536; + unsigned int i; unsigned long L, R; - int i; - - tmpsrc = src; L = 0xBEBACAFE; R = 0xDEADBEEF; + for (i = start; i <= end; i++) { + Blowfish_Init(&ctx, (unsigned char*)data, 65536); + Blowfish_Encrypt(&ctx, &L, &R); + Blowfish_Decrypt(&ctx, &L, &R); + } + + return NULL; +} + +static void +benchmark_fish(void) +{ + gdouble elapsed = 0; + gchar *tmpsrc; + gchar *bdata_path; - + bdata_path = g_build_filename(params.path_data, "benchmark.data", NULL); if (!g_file_get_contents(bdata_path, &tmpsrc, NULL, NULL)) { g_free(bdata_path); return; - } - + } + shell_view_set_enabled(FALSE); shell_status_update("Performing Blowfish benchmark..."); - - for (i = 0; i <= 50000; i++) { - g_timer_start(timer); - Blowfish_Init(&ctx, (unsigned char*)tmpsrc, srclen); - Blowfish_Encrypt(&ctx, &L, &R); - Blowfish_Decrypt(&ctx, &L, &R); - - g_timer_stop(timer); - elapsed += g_timer_elapsed(timer, NULL); - - shell_status_set_percentage(i/500); - } - - g_timer_destroy(timer); + elapsed = benchmark_parallel_for(0, 50000, parallel_blowfish, tmpsrc); + g_free(bdata_path); - + g_free(tmpsrc); + bench_results[BENCHMARK_BLOWFISH] = elapsed; } |