]> git.lizzy.rs Git - plan9front.git/blob - sys/src/libmach/swap.c
?a: getc() needs to increment lineno if it gets \n from peekc
[plan9front.git] / sys / src / libmach / swap.c
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 }