• H
    byteorder: add a new include/linux/swab.h to define byteswapping functions · 40c9f222
    Harvey Harrison 提交于
    Collect the implementations from include/linux/byteorder/swab.h, swabb.h
    in swab.h
    
    The functionality provided covers:
    u16 swab16(u16 val) - return a byteswapped 16 bit value
    u32 swab32(u32 val) - return a byteswapped 32 bit value
    u64 swab64(u64 val) - return a byteswapped 64 bit value
    u32 swahw32(u32 val) - return a wordswapped 32 bit value
    u32 swahb32(u32 val) - return a high/low byteswapped 32 bit value
    
    Similar to above, but return swapped value from a naturally-aligned pointer
    u16 swab16p(u16 *p)
    u32 swab32p(u32 *p)
    u64 swab64p(u64 *p)
    u32 swahw32p(u32 *p)
    u32 swahb32p(u32 *p)
    
    Similar to above, but swap the value in-place (in-situ)
    void swab16s(u16 *p)
    void swab32s(u32 *p)
    void swab64s(u64 *p)
    void swahw32s(u32 *p)
    void swahb32s(u32 *p)
    
    Arches can override any of these with an optimized version by defining an
    inline in their asm/byteorder.h (example given for swab16()):
    
    u16 __arch_swab16() {}
     #define __arch_swab16 __arch_swab16
    Signed-off-by: NHarvey Harrison <harvey.harrison@gmail.com>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    40c9f222
swab.h 6.9 KB