lkml.org 
[lkml]   [2000]   [Sep]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] abuse of macros in swab.h

> +static inline __u64 ___swab16(__u64 x)
> +{
> + return (__u64)((x & (__u64)0x00000000000000ffULL) << 56) |
> + (__u64)((x & (__u64)0x000000000000ff00ULL) << 40) |
> + (__u64)((x & (__u64)0x0000000000ff0000ULL) << 24) |
> + (__u64)((x & (__u64)0x00000000ff000000ULL) << 8) |
> + (__u64)((x & (__u64)0x000000ff00000000ULL) >> 8) |
> + (__u64)((x & (__u64)0x0000ff0000000000ULL) >> 24) |
> + (__u64)((x & (__u64)0x00ff000000000000ULL) >> 40) |
> + (__u64)((x & (__u64)0xff00000000000000ULL) >> 56);
> +}


And something like this ?

static inline __u64 ___swab16(__u64 x){
__u64 n;
n = (x>>32) | (x<<32);
n = ((n & 0x0000ffff0000ffffLL)<<16) | (n & 0xffff0000ffff0000LL)>>16;
n = ((n & 0x00ff00ff00ff00ffLL)<<8) | (n & 0xff00ff00ff00ff00LL)>>8;
return(n);
}



Bye.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:39    [W:0.109 / U:6.700 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site