Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#include <u.h>
2
 
3
/*
4
 * big-endian short
5
 */
6
ushort
7
beswab(ushort s)
8
{
9
	uchar *p;
10
 
11
	p = (uchar*)&s;
12
	return (p[0]<<8) | p[1];
13
}
14
 
15
/*
16
 * big-endian long
17
 */
18
ulong
19
beswal(ulong l)
20
{
21
	uchar *p;
22
 
23
	p = (uchar*)&l;
24
	return (p[0]<<24) | (p[1]<<16) | (p[2]<<8) | p[3];
25
}
26
 
27
/*
28
 * big-endian vlong
29
 */
30
uvlong
31
beswav(uvlong v)
32
{
33
	uchar *p;
34
 
35
	p = (uchar*)&v;
36
	return ((uvlong)p[0]<<56) | ((uvlong)p[1]<<48) | ((uvlong)p[2]<<40)
37
				  | ((uvlong)p[3]<<32) | ((uvlong)p[4]<<24)
38
				  | ((uvlong)p[5]<<16) | ((uvlong)p[6]<<8)
39
				  | (uvlong)p[7];
40
}
41
 
42
/*
43
 * little-endian short
44
 */
45
ushort
46
leswab(ushort s)
47
{
48
	uchar *p;
49
 
50
	p = (uchar*)&s;
51
	return (p[1]<<8) | p[0];
52
}
53
 
54
/*
55
 * little-endian long
56
 */
57
ulong
58
leswal(ulong l)
59
{
60
	uchar *p;
61
 
62
	p = (uchar*)&l;
63
	return (p[3]<<24) | (p[2]<<16) | (p[1]<<8) | p[0];
64
}
65
 
66
/*
67
 * little-endian vlong
68
 */
69
uvlong
70
leswav(uvlong v)
71
{
72
	uchar *p;
73
 
74
	p = (uchar*)&v;
75
	return ((uvlong)p[7]<<56) | ((uvlong)p[6]<<48) | ((uvlong)p[5]<<40)
76
				  | ((uvlong)p[4]<<32) | ((uvlong)p[3]<<24)
77
				  | ((uvlong)p[2]<<16) | ((uvlong)p[1]<<8)
78
				  | (uvlong)p[0];
79
}