summaryrefslogtreecommitdiff
path: root/arch/common/blowfish.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/common/blowfish.h')
-rw-r--r--arch/common/blowfish.h54
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;
}