Make ndblib not reopen and reread files all the time.
[akaros.git] / user / iplib / bo.c
1 /* 
2  * This file is part of the UCB release of Plan 9. It is subject to the license
3  * terms in the LICENSE file found in the top-level directory of this
4  * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
5  * part of the UCB release of Plan 9, including this file, may be copied,
6  * modified, propagated, or distributed except according to the terms contained
7  * in the LICENSE file.
8  */
9 #include <stdlib.h>
10
11 #include <stdio.h>
12 #include <parlib.h>
13 #include <unistd.h>
14 #include <signal.h>
15 #include <iplib.h>
16
17 void
18 hnputv(void *p, uint64_t v)
19 {
20         uint8_t *a;
21
22         a = p;
23         a[0] = v>>56;
24         a[1] = v>>48;
25         a[2] = v>>40;
26         a[3] = v>>32;
27         a[4] = v>>24;
28         a[5] = v>>16;
29         a[6] = v>>8;
30         a[7] = v;
31 }
32
33 void
34 hnputl(void *p, unsigned int v)
35 {
36         uint8_t *a;
37
38         a = p;
39         a[0] = v>>24;
40         a[1] = v>>16;
41         a[2] = v>>8;
42         a[3] = v;
43 }
44
45 void
46 hnputs(void *p, uint16_t v)
47 {
48         uint8_t *a;
49
50         a = p;
51         a[0] = v>>8;
52         a[1] = v;
53 }
54
55 uint64_t
56 nhgetv(void *p)
57 {
58         uint8_t *a;
59         uint64_t v;
60
61         a = p;
62         v = (uint64_t)a[0]<<56;
63         v |= (uint64_t)a[1]<<48;
64         v |= (uint64_t)a[2]<<40;
65         v |= (uint64_t)a[3]<<32;
66         v |= a[4]<<24;
67         v |= a[5]<<16;
68         v |= a[6]<<8;
69         v |= a[7]<<0;
70         return v;
71 }
72
73 unsigned int
74 nhgetl(void *p)
75 {
76         uint8_t *a;
77
78         a = p;
79         return (a[0]<<24)|(a[1]<<16)|(a[2]<<8)|(a[3]<<0);
80 }
81
82 uint16_t
83 nhgets(void *p)
84 {
85         uint8_t *a;
86
87         a = p;
88         return (a[0]<<8)|(a[1]<<0);
89 }