Adds chaninfo()
[akaros.git] / kern / src / net / netaux.c
1 // INFERNO
2 #include <vfs.h>
3 #include <kfs.h>
4 #include <slab.h>
5 #include <kmalloc.h>
6 #include <kref.h>
7 #include <string.h>
8 #include <stdio.h>
9 #include <assert.h>
10 #include <error.h>
11 #include <cpio.h>
12 #include <pmap.h>
13 #include <smp.h>
14 #include <ip.h>
15
16
17 void
18 hnputv(void *p, int64_t v)
19 {
20         uint8_t *a;
21
22         a = p;
23         hnputl(a, v>>32);
24         hnputl(a+4, v);
25 }
26
27 void
28 hnputl(void *p, uint32_t v)
29 {
30         uint8_t *a;
31
32         a = p;
33         a[0] = v>>24;
34         a[1] = v>>16;
35         a[2] = v>>8;
36         a[3] = v;
37 }
38
39 void
40 hnputs(void *p, uint16_t v)
41 {
42         uint8_t *a;
43
44         a = p;
45         a[0] = v>>8;
46         a[1] = v;
47 }
48
49 int64_t
50 nhgetv(void *p)
51 {
52         uint8_t *a;
53
54         a = p;
55         return ((int64_t)nhgetl(a) << 32) | nhgetl(a+4);
56 }
57
58 uint32_t
59 nhgetl(void *p)
60 {
61         uint8_t *a;
62
63         a = p;
64         return (a[0]<<24)|(a[1]<<16)|(a[2]<<8)|(a[3]<<0);
65 }
66
67 uint16_t
68 nhgets(void *p)
69 {
70         uint8_t *a;
71
72         a = p;
73         return (a[0]<<8)|(a[1]<<0);
74 }