1 #include <u.h>
2 #include <libc.h>
3
4 u16int
be16get(uchar * t,uchar ** r)5 be16get(uchar *t, uchar **r)
6 {
7 if(r != nil)
8 *r = t+2;
9 return (u16int)t[0]<<8 | (u16int)t[1];
10 }
11
12 u32int
be24get(uchar * t,uchar ** r)13 be24get(uchar *t, uchar **r)
14 {
15 if(r != nil)
16 *r = t+3;
17 return (u32int)t[1]<<16 | (u32int)t[2]<<8 | (u32int)t[3];
18 }
19
20 u32int
be32get(uchar * t,uchar ** r)21 be32get(uchar *t, uchar **r)
22 {
23 if(r != nil)
24 *r = t+4;
25 return (u32int)t[0]<<24 | (u32int)t[1]<<16 | (u32int)t[2]<<8 | (u32int)t[3];
26 }
27
28 u64int
be64get(uchar * t,uchar ** r)29 be64get(uchar *t, uchar **r)
30 {
31 if(r != nil)
32 *r = t+8;
33 return (u64int)t[0]<<56 | (u64int)t[1]<<48 | (u64int)t[2]<<40 | (u64int)t[3]<<32 |
34 (u64int)t[4]<<24 | (u64int)t[5]<<16 | (u64int)t[6]<<8 | (u64int)t[7];
35 }
36
37 uchar*
be16put(uchar * t,u16int r)38 be16put(uchar *t, u16int r)
39 {
40 *t++ = r>>8;
41 *t++ = r;
42 return t;
43 }
44
45 uchar*
be32put(uchar * t,u32int r)46 be32put(uchar *t, u32int r)
47 {
48 *t++ = r>>24;
49 *t++ = r>>16;
50 *t++ = r>>8;
51 *t++ = r;
52 return t;
53 }
54
55 uchar*
be24put(uchar * t,u32int r)56 be24put(uchar *t, u32int r)
57 {
58 *t++ = r>>16;
59 *t++ = r>>8;
60 *t++ = r;
61 return t;
62 }
63
64 uchar*
be64put(uchar * t,u64int r)65 be64put(uchar *t, u64int r)
66 {
67 *t++ = r>>56;
68 *t++ = r>>48;
69 *t++ = r>>40;
70 *t++ = r>>32;
71 *t++ = r>>24;
72 *t++ = r>>16;
73 *t++ = r>>8;
74 *t++ = r;
75 return t;
76 }
77
78