From f1b8bc591bbf0b015fa10d838fd792f6fb322343 Mon Sep 17 00:00:00 2001 From: Xiangfu Date: Tue, 8 May 2012 10:14:47 +0800 Subject: [PATCH 1/3] add compile command to api-example.c --- api-example.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/api-example.c b/api-example.c index ea5d645b..13b8f2df 100755 --- a/api-example.c +++ b/api-example.c @@ -7,6 +7,10 @@ * any later version. See COPYING for more details. */ +/* Compile: + * gcc api-example.c -I compat/jansson -o cgminer-api + */ + #include "config.h" #include From 9414fa7c182eef279e4b21d3c3edeb11461af5bd Mon Sep 17 00:00:00 2001 From: Xiangfu Date: Fri, 11 May 2012 11:00:14 +0800 Subject: [PATCH 2/3] work_decode only needs swab32 on midstate under BIG ENDIAN --- cgminer.c | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/cgminer.c b/cgminer.c index 118747b6..d8b8e6f0 100644 --- a/cgminer.c +++ b/cgminer.c @@ -1182,6 +1182,11 @@ static bool work_decode(const json_t *val, struct work *work) sha2_starts( &ctx, 0 ); sha2_update( &ctx, data.c, 64 ); memcpy(work->midstate, ctx.state, sizeof(work->midstate)); +#if defined(__BIG_ENDIAN__) || defined(MIPSEB) + int i; + for (i = 0; i < 8; i++) + (((uint32_t*) (work->midstate))[i]) = swab32(((uint32_t*) (work->midstate))[i]); +#endif } if (likely(!jobj_binary(val, "hash1", work->hash1, sizeof(work->hash1), false))) { @@ -1196,18 +1201,6 @@ static bool work_decode(const json_t *val, struct work *work) memset(work->hash, 0, sizeof(work->hash)); -#ifdef __BIG_ENDIAN__ - int swapcounter = 0; - for (swapcounter = 0; swapcounter < 32; swapcounter++) - (((uint32_t*) (work->data))[swapcounter]) = swab32(((uint32_t*) (work->data))[swapcounter]); - for (swapcounter = 0; swapcounter < 16; swapcounter++) - (((uint32_t*) (work->hash1))[swapcounter]) = swab32(((uint32_t*) (work->hash1))[swapcounter]); - for (swapcounter = 0; swapcounter < 8; swapcounter++) - (((uint32_t*) (work->midstate))[swapcounter]) = swab32(((uint32_t*) (work->midstate))[swapcounter]); - for (swapcounter = 0; swapcounter < 8; swapcounter++) - (((uint32_t*) (work->target))[swapcounter]) = swab32(((uint32_t*) (work->target))[swapcounter]); -#endif - gettimeofday(&work->tv_staged, NULL); return true; From b1785d1f07d9482b5ed6104c87b39a3888fa8efb Mon Sep 17 00:00:00 2001 From: Xiangfu Date: Fri, 11 May 2012 11:04:28 +0800 Subject: [PATCH 3/3] add-MIPSEB-to-icarus-for-BIG_ENDIAN --- driver-icarus.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/driver-icarus.c b/driver-icarus.c index dba66170..5ef33009 100644 --- a/driver-icarus.c +++ b/driver-icarus.c @@ -350,7 +350,7 @@ static uint64_t icarus_scanhash(struct thr_info *thr, struct work *work, return ESTIMATE_HASHES; } -#ifndef __BIG_ENDIAN__ +#if !defined (__BIG_ENDIAN__) && !defined(MIPSEB) nonce = swab32(nonce); #endif