]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/atazz/bit.c
merge
[plan9front.git] / sys / src / cmd / atazz / bit.c
1 #include <u.h>
2 #include <libc.h>
3 #include <fis.h>
4 #include "atazz.h"
5
6 char*
7 sebtab(char *p, char *e, Btab *t, int nt, uint u)
8 {
9         char *p0;
10         int i;
11
12         p0 = p;
13         for(i = 0; i < nt; i++)
14                 if(u & 1<< t[i].bit)
15                         p = seprint(p, e, "%s ", t[i].name);
16         if(p > p0)
17                 p--;
18         *p = 0;
19         return p;
20 }
21
22 void
23 pw(uchar *p, ushort i)
24 {
25         p[0] = i >> 0;
26         p[1] = i >> 8;
27 }
28
29 void
30 pdw(uchar *p, uint i)
31 {
32         p[0] = i >> 0;
33         p[1] = i >> 8;
34         p[2] = i >> 16;
35         p[3] = i >> 24;
36 }
37
38 void
39 pqw(uchar *p, uvlong i)
40 {
41         pdw(p, i);
42         pdw(p + 4, i >> 32);
43 }
44
45 ushort
46 w(uchar *u)
47 {
48         ushort r;
49
50         r = u[0] << 0;
51         r |= u[1] << 8;
52         return r;
53 }
54
55 uint
56 dw(uchar *u)
57 {
58         ulong r;
59
60         r = u[0] << 0;
61         r |= u[1] << 8;
62         r |= u[2] << 16;
63         r |= u[3] << 24;
64         return r;
65 }
66
67 uvlong
68 qw(uchar *u)
69 {
70         return dw(u) | (uvlong)dw(u + 4)<<32;
71 }