1 a84cbb2a 2004-04-19 devnull #include <u.h>
2 a84cbb2a 2004-04-19 devnull #include <libc.h>
3 a84cbb2a 2004-04-19 devnull #include <bio.h>
4 a84cbb2a 2004-04-19 devnull #include <mach.h>
7 a84cbb2a 2004-04-19 devnull * big-endian short
10 a84cbb2a 2004-04-19 devnull beswap2(u16int s)
12 a84cbb2a 2004-04-19 devnull uchar *p;
14 a84cbb2a 2004-04-19 devnull p = (uchar*)&s;
15 a84cbb2a 2004-04-19 devnull return (p[0]<<8) | p[1];
19 a84cbb2a 2004-04-19 devnull * big-endian long
22 a84cbb2a 2004-04-19 devnull beswap4(u32int l)
24 a84cbb2a 2004-04-19 devnull uchar *p;
26 a84cbb2a 2004-04-19 devnull p = (uchar*)&l;
27 a84cbb2a 2004-04-19 devnull return (p[0]<<24) | (p[1]<<16) | (p[2]<<8) | p[3];
31 a84cbb2a 2004-04-19 devnull * big-endian vlong
34 a84cbb2a 2004-04-19 devnull beswap8(u64int v)
36 a84cbb2a 2004-04-19 devnull uchar *p;
38 a84cbb2a 2004-04-19 devnull p = (uchar*)&v;
39 a84cbb2a 2004-04-19 devnull return ((u64int)p[0]<<56) | ((u64int)p[1]<<48) | ((u64int)p[2]<<40)
40 a84cbb2a 2004-04-19 devnull | ((u64int)p[3]<<32) | ((u64int)p[4]<<24)
41 a84cbb2a 2004-04-19 devnull | ((u64int)p[5]<<16) | ((u64int)p[6]<<8)
42 a84cbb2a 2004-04-19 devnull | (u64int)p[7];
46 a84cbb2a 2004-04-19 devnull * little-endian short
49 a84cbb2a 2004-04-19 devnull leswap2(u16int s)
51 a84cbb2a 2004-04-19 devnull uchar *p;
53 a84cbb2a 2004-04-19 devnull p = (uchar*)&s;
54 a84cbb2a 2004-04-19 devnull return (p[1]<<8) | p[0];
58 a84cbb2a 2004-04-19 devnull * little-endian long
61 a84cbb2a 2004-04-19 devnull leswap4(u32int l)
63 a84cbb2a 2004-04-19 devnull uchar *p;
65 a84cbb2a 2004-04-19 devnull p = (uchar*)&l;
66 a84cbb2a 2004-04-19 devnull return (p[3]<<24) | (p[2]<<16) | (p[1]<<8) | p[0];
70 a84cbb2a 2004-04-19 devnull * little-endian vlong
73 a84cbb2a 2004-04-19 devnull leswap8(u64int v)
75 a84cbb2a 2004-04-19 devnull uchar *p;
77 a84cbb2a 2004-04-19 devnull p = (uchar*)&v;
78 a84cbb2a 2004-04-19 devnull return ((u64int)p[7]<<56) | ((u64int)p[6]<<48) | ((u64int)p[5]<<40)
79 a84cbb2a 2004-04-19 devnull | ((u64int)p[4]<<32) | ((u64int)p[3]<<24)
80 a84cbb2a 2004-04-19 devnull | ((u64int)p[2]<<16) | ((u64int)p[1]<<8)
81 a84cbb2a 2004-04-19 devnull | (u64int)p[0];
85 a84cbb2a 2004-04-19 devnull leload2(uchar *b)
87 a84cbb2a 2004-04-19 devnull return b[0] | (b[1]<<8);
91 a84cbb2a 2004-04-19 devnull leload4(uchar *b)
93 a84cbb2a 2004-04-19 devnull return b[0] | (b[1]<<8) | (b[2]<<16) | (b[3]<<24);
97 a84cbb2a 2004-04-19 devnull leload8(uchar *b)
99 a84cbb2a 2004-04-19 devnull return leload4(b) | ((uvlong)leload4(b+4) << 32);
103 a84cbb2a 2004-04-19 devnull beload2(uchar *b)
105 a84cbb2a 2004-04-19 devnull return (b[0]<<8) | b[1];
109 a84cbb2a 2004-04-19 devnull beload4(uchar *b)
111 a84cbb2a 2004-04-19 devnull return (b[0]<<24) | (b[1]<<16) | (b[2]<<8) | b[3];
115 a84cbb2a 2004-04-19 devnull beload8(uchar *b)
117 a84cbb2a 2004-04-19 devnull return ((uvlong)beload4(b) << 32) | beload4(b+4);