Re: [PATCH] SQUASHME: blkmapd: fix pretty_sig short sig endianess agnosticity

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2010-12-02 18:24, Jim Rees wrote:
> Benny Halevy wrote:
> 
>   Signed-off-by: Benny Halevy <bhalevy@xxxxxxxxxxx>
>   ---
>   
>   How about this?
>   
>   Benny
>   
>    utils/blkmapd/device-process.c |   14 ++++++++++----
>    1 files changed, 10 insertions(+), 4 deletions(-)
>   
>   diff --git a/utils/blkmapd/device-process.c b/utils/blkmapd/device-process.c
>   index 0c5060b..0584bf9 100644
>   --- a/utils/blkmapd/device-process.c
>   +++ b/utils/blkmapd/device-process.c
>   @@ -52,11 +52,17 @@
>    static char *pretty_sig(char *sig, uint32_t siglen)
>    {
>    	static char rs[100];
>   -	unsigned long i = 0;
>   +	uint64_t sigval;
>    
>   -	if (siglen <= sizeof i) {
>   -		memcpy(&i, sig, siglen);
>   -		sprintf(rs, "0x%0lx", i);
>   +	if (siglen <= sizeof(sigval)) {
>   +		int i;
>   +
>   +		sigval = 0;
>   +		for (i = 0; i < siglen; i++) {
>   +			sigval <<= 8;
>   +			sigval += ((unsigned char *)sig)[i];
>   +		}
>   +		sprintf(rs, "0x%0llx", sigval);
>    	} else {
>    		if (siglen > sizeof rs - 1)
>    			siglen = sizeof rs - 1;
> 
> I would prefer to print it as little-endian, since that's how it's supplied
> by the EMC server.

Like this?

diff --git a/utils/blkmapd/device-process.c b/utils/blkmapd/device-process.c
index ea8b8ec..0d8705f 100644
--- a/utils/blkmapd/device-process.c
+++ b/utils/blkmapd/device-process.c
@@ -58,10 +58,8 @@ static char *pretty_sig(char *sig, uint32_t siglen)
 		int i;
 
 		sigval = 0;
-		for (i = 0; i < siglen; i++) {
-			sigval <<= 8;
-			sigval += ((unsigned char *)sig)[i];
-		}
+		for (i = 0; i < siglen; i++)
+			sigval |= ((unsigned char *)sig)[i] << (i * 8);
 		sprintf(rs, "0x%0llx", sigval);
 	} else {
 		if (siglen > sizeof rs - 4) {
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux