parlib: Fix the use-after-func issue
[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 <iplib/iplib.h>
12 #include <parlib/parlib.h>
13 #include <signal.h>
14 #include <stdio.h>
15 #include <unistd.h>
16
17 void hnputv(void *p, uint64_t v)
18 {
19         uint8_t *a;
20
21         a = p;
22         a[0] = v >> 56;
23         a[1] = v >> 48;
24         a[2] = v >> 40;
25         a[3] = v >> 32;
26         a[4] = v >> 24;
27         a[5] = v >> 16;
28         a[6] = v >> 8;
29         a[7] = v;
30 }
31
32 void hnputl(void *p, unsigned int v)
33 {
34         uint8_t *a;
35
36         a = p;
37         a[0] = v >> 24;
38         a[1] = v >> 16;
39         a[2] = v >> 8;
40         a[3] = v;
41 }
42
43 void hnputs(void *p, uint16_t v)
44 {
45         uint8_t *a;
46
47         a = p;
48         a[0] = v >> 8;
49         a[1] = v;
50 }
51
52 uint64_t nhgetv(void *p)
53 {
54         uint8_t *a;
55         uint64_t v;
56
57         a = p;
58         v = (uint64_t)a[0] << 56;
59         v |= (uint64_t)a[1] << 48;
60         v |= (uint64_t)a[2] << 40;
61         v |= (uint64_t)a[3] << 32;
62         v |= a[4] << 24;
63         v |= a[5] << 16;
64         v |= a[6] << 8;
65         v |= a[7] << 0;
66         return v;
67 }
68
69 unsigned int nhgetl(void *p)
70 {
71         uint8_t *a;
72
73         a = p;
74         return (a[0] << 24) | (a[1] << 16) | (a[2] << 8) | (a[3] << 0);
75 }
76
77 uint16_t nhgets(void *p)
78 {
79         uint8_t *a;
80
81         a = p;
82         return (a[0] << 8) | (a[1] << 0);
83 }