3 /* Write a 64-bit quantity out into memory in BIG ENDIAN order */
4 void write_be64(in, out)
8 out[0] = (in >> 56) & 0xFF;
9 out[1] = (in >> 48) & 0xFF;
10 out[2] = (in >> 40) & 0xFF;
11 out[3] = (in >> 32) & 0xFF;
12 out[4] = (in >> 24) & 0xFF;
13 out[5] = (in >> 16) & 0xFF;
14 out[6] = (in >> 8) & 0xFF;
18 /* Read in a 64-bit BIG ENDIAN quantity */
19 unsigned long long read_be64(in)
22 unsigned long long result = 0;
24 result |= (unsigned long long)in[0] << 56;
25 result |= (unsigned long long)in[1] << 48;
26 result |= (unsigned long long)in[2] << 40;
27 result |= (unsigned long long)in[3] << 32;
28 result |= (unsigned long long)in[4] << 24;
29 result |= (unsigned long long)in[5] << 16;
30 result |= (unsigned long long)in[6] << 8;
31 result |= (unsigned long long)in[7];
36 /* Write a 64-bit quantity out into memory in LITTLE ENDIAN order */
37 void write_le64(in, out)
38 unsigned long long in;
42 out[1] = (in >> 8) & 0xFF;
43 out[2] = (in >> 16) & 0xFF;
44 out[3] = (in >> 24) & 0xFF;
45 out[4] = (in >> 32) & 0xFF;
46 out[5] = (in >> 40) & 0xFF;
47 out[6] = (in >> 48) & 0xFF;
48 out[7] = (in >> 56) & 0xFF;
51 /* Read in a 64-bit LITTLE ENDIAN quantity */
52 unsigned long long read_le64(in)
55 unsigned long long result = 0;
57 result |= (unsigned long long)in[0];
58 result |= (unsigned long long)in[1] << 8;
59 result |= (unsigned long long)in[2] << 16;
60 result |= (unsigned long long)in[3] << 24;
61 result |= (unsigned long long)in[4] << 32;
62 result |= (unsigned long long)in[5] << 40;
63 result |= (unsigned long long)in[6] << 48;
64 result |= (unsigned long long)in[7] << 56;
69 /* Write a 48-bit quantity out into memory in LITTLE ENDIAN order */
70 void write_le48(in, out)
71 unsigned long long in;
75 out[1] = (in >> 8) & 0xFF;
76 out[2] = (in >> 16) & 0xFF;
77 out[3] = (in >> 24) & 0xFF;
78 out[4] = (in >> 32) & 0xFF;
79 out[5] = (in >> 40) & 0xFF;
82 /* Read in a 48-bit LITTLE ENDIAN quantity */
83 unsigned long long read_le48(in)
86 unsigned long long result = 0;
88 result |= (unsigned long long)in[0];
89 result |= (unsigned long long)in[1] << 8;
90 result |= (unsigned long long)in[2] << 16;
91 result |= (unsigned long long)in[3] << 24;
92 result |= (unsigned long long)in[4] << 32;
93 result |= (unsigned long long)in[5] << 40;
98 /* Write a 32-bit quantity out into memory in BIG ENDIAN order */
99 void write_be32(in, out)
103 out[0] = (in >> 24) & 0xFF;
104 out[1] = (in >> 16) & 0xFF;
105 out[2] = (in >> 8) & 0xFF;
109 /* Read in a 32-bit BIG ENDIAN quantity */
110 unsigned long read_be32(in)
113 unsigned long result = 0;
115 result |= (unsigned long)in[0] << 24;
116 result |= (unsigned long)in[1] << 16;
117 result |= (unsigned long)in[2] << 8;
118 result |= (unsigned long)in[3];
123 /* Write a 32-bit quantity out into memory in LITTLE ENDIAN order */
124 void write_le32(in, out)
129 out[1] = (in >> 8) & 0xFF;
130 out[2] = (in >> 16) & 0xFF;
131 out[3] = (in >> 24) & 0xFF;
134 /* Read in a 32-bit LITTLE ENDIAN quantity */
135 unsigned long read_le32(in)
138 unsigned long result = 0;
140 result |= (unsigned long)in[0];
141 result |= (unsigned long)in[1] << 8;
142 result |= (unsigned long)in[2] << 16;
143 result |= (unsigned long)in[3] << 24;
148 /* Write a 16-bit quantity out into memory in BIG ENDIAN order */
149 void write_be16(in, out)
153 out[0] = (in >> 8) & 0xFF;
157 /* Read in a 16-bit BIG ENDIAN quantity */
158 unsigned short read_be16(in)
161 unsigned short result = 0;
163 result |= (unsigned short)in[0] << 8;
164 result |= (unsigned short)in[1];
168 /* Write a 16-bit quantity out into memory in LITTLE ENDIAN order */
169 void write_le16(in, out)
174 out[1] = in & 0xFF >> 8;
177 /* Read in a 16-bit LITTLE ENDIAN quantity */
178 unsigned short read_le16(in)
181 unsigned short result = 0;
183 result |= (unsigned short)in[0];
184 result |= (unsigned short)in[1] << 8;