Initial import from FreeBSD RELENG_4:
[dragonfly.git] / contrib / ntp / libntp / binio.c
1 /*
2  * /src/NTP/ntp-4/libntp/binio.c,v 4.2 1999/02/21 12:17:34 kardel RELEASE_19990228_A
3  *
4  * $Created: Sun Jul 20 12:55:33 1997 $
5  *
6  * Copyright (C) 1997, 1998 by Frank Kardel
7  */
8
9 #include "binio.h"
10
11 long
12 get_lsb_short(
13         unsigned char **bufpp
14         )
15 {
16   long retval;
17
18   retval  = *((*bufpp)++);
19   retval |= *((*bufpp)++) << 8;
20
21   return (retval & 0x8000) ? (~0xFFFF | retval) : retval;
22 }
23
24 void
25 put_lsb_short(
26         unsigned char **bufpp,
27         long val
28         )
29 {
30   *((*bufpp)++) =  val       & 0xFF;
31   *((*bufpp)++) = (val >> 8) & 0xFF;
32 }
33
34 long
35 get_lsb_long(
36         unsigned char **bufpp
37         )
38 {
39   long retval;
40
41   retval  = *((*bufpp)++);
42   retval |= *((*bufpp)++) << 8;
43   retval |= *((*bufpp)++) << 16;
44   retval |= *((*bufpp)++) << 24;
45
46   return retval;
47 }
48
49 void
50 put_lsb_long(
51         unsigned char **bufpp,
52         long val
53         )
54 {
55   *((*bufpp)++) =  val        & 0xFF;
56   *((*bufpp)++) = (val >> 8)  & 0xFF;
57   *((*bufpp)++) = (val >> 16) & 0xFF;
58   *((*bufpp)++) = (val >> 24) & 0xFF;
59 }
60
61 long
62 get_msb_short(
63         unsigned char **bufpp
64         )
65 {
66   long retval;
67
68   retval  = *((*bufpp)++) << 8;
69   retval |= *((*bufpp)++);
70
71   return (retval & 0x8000) ? (~0xFFFF | retval) : retval;
72 }
73
74 void
75 put_msb_short(
76         unsigned char **bufpp,
77         long val
78         )
79 {
80   *((*bufpp)++) = (val >> 8) & 0xFF;
81   *((*bufpp)++) =  val       & 0xFF;
82 }
83
84 long
85 get_msb_long(
86         unsigned char **bufpp
87         )
88 {
89   long retval;
90
91   retval  = *((*bufpp)++) << 24;
92   retval |= *((*bufpp)++) << 16;
93   retval |= *((*bufpp)++) << 8;
94   retval |= *((*bufpp)++);
95
96   return retval;
97 }
98
99 void
100 put_msb_long(
101         unsigned char **bufpp,
102         long val
103         )
104 {
105   *((*bufpp)++) = (val >> 24) & 0xFF;
106   *((*bufpp)++) = (val >> 16) & 0xFF;
107   *((*bufpp)++) = (val >> 8 ) & 0xFF;
108   *((*bufpp)++) =  val        & 0xFF;
109 }
110
111 /*
112  * binio.c,v
113  * Revision 4.2  1999/02/21 12:17:34  kardel
114  * 4.91f reconcilation
115  *
116  * Revision 4.1  1998/06/28 16:47:50  kardel
117  * added {get,put}_msb_{short,long} functions
118  *
119  * Revision 4.0  1998/04/10 19:46:16  kardel
120  * Start 4.0 release version numbering
121  *
122  * Revision 1.1  1998/04/10 19:27:46  kardel
123  * initial NTP VERSION 4 integration of PARSE with GPS166 binary support
124  *
125  * Revision 1.1  1997/10/06 21:05:46  kardel
126  * new parse structure
127  *
128  */