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