Annotation of embedaddon/ntp/libparse/binio.c, revision 1.1.1.1
1.1 misho 1: /*
2: * /src/NTP/ntp4-dev/libntp/binio.c,v 4.5 2005/04/16 17:32:10 kardel RELEASE_20050508_A
3: *
4: * binio.c,v 4.5 2005/04/16 17:32:10 kardel RELEASE_20050508_A
5: *
6: * $Created: Sun Jul 20 12:55:33 1997 $
7: *
8: * Copyright (c) 1997-2005 by Frank Kardel <kardel <AT> ntp.org>
9: *
10: * Redistribution and use in source and binary forms, with or without
11: * modification, are permitted provided that the following conditions
12: * are met:
13: * 1. Redistributions of source code must retain the above copyright
14: * notice, this list of conditions and the following disclaimer.
15: * 2. Redistributions in binary form must reproduce the above copyright
16: * notice, this list of conditions and the following disclaimer in the
17: * documentation and/or other materials provided with the distribution.
18: * 3. Neither the name of the author nor the names of its contributors
19: * may be used to endorse or promote products derived from this software
20: * without specific prior written permission.
21: *
22: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
23: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25: * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
26: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32: * SUCH DAMAGE.
33: *
34: */
35:
36: #include "binio.h"
37:
38: long
39: get_lsb_short(
40: unsigned char **bufpp
41: )
42: {
43: long retval;
44:
45: retval = *((*bufpp)++);
46: retval |= *((*bufpp)++) << 8;
47:
48: return (retval & 0x8000) ? (~0xFFFF | retval) : retval;
49: }
50:
51: void
52: put_lsb_short(
53: unsigned char **bufpp,
54: long val
55: )
56: {
57: *((*bufpp)++) = (unsigned char) (val & 0xFF);
58: *((*bufpp)++) = (unsigned char) ((val >> 8) & 0xFF);
59: }
60:
61: long
62: get_lsb_long(
63: unsigned char **bufpp
64: )
65: {
66: long retval;
67:
68: retval = *((*bufpp)++);
69: retval |= *((*bufpp)++) << 8;
70: retval |= *((*bufpp)++) << 16;
71: retval |= *((*bufpp)++) << 24;
72:
73: return retval;
74: }
75:
76: void
77: put_lsb_long(
78: unsigned char **bufpp,
79: long val
80: )
81: {
82: *((*bufpp)++) = (unsigned char)(val & 0xFF);
83: *((*bufpp)++) = (unsigned char)((val >> 8) & 0xFF);
84: *((*bufpp)++) = (unsigned char)((val >> 16) & 0xFF);
85: *((*bufpp)++) = (unsigned char)((val >> 24) & 0xFF);
86: }
87:
88: long
89: get_msb_short(
90: unsigned char **bufpp
91: )
92: {
93: long retval;
94:
95: retval = *((*bufpp)++) << 8;
96: retval |= *((*bufpp)++);
97:
98: return (retval & 0x8000) ? (~0xFFFF | retval) : retval;
99: }
100:
101: void
102: put_msb_short(
103: unsigned char **bufpp,
104: long val
105: )
106: {
107: *((*bufpp)++) = (unsigned char)((val >> 8) & 0xFF);
108: *((*bufpp)++) = (unsigned char)( val & 0xFF);
109: }
110:
111: long
112: get_msb_long(
113: unsigned char **bufpp
114: )
115: {
116: long retval;
117:
118: retval = *((*bufpp)++) << 24;
119: retval |= *((*bufpp)++) << 16;
120: retval |= *((*bufpp)++) << 8;
121: retval |= *((*bufpp)++);
122:
123: return retval;
124: }
125:
126: void
127: put_msb_long(
128: unsigned char **bufpp,
129: long val
130: )
131: {
132: *((*bufpp)++) = (unsigned char)((val >> 24) & 0xFF);
133: *((*bufpp)++) = (unsigned char)((val >> 16) & 0xFF);
134: *((*bufpp)++) = (unsigned char)((val >> 8 ) & 0xFF);
135: *((*bufpp)++) = (unsigned char)( val & 0xFF);
136: }
137:
138: /*
139: * binio.c,v
140: * Revision 4.2 1999/02/21 12:17:34 kardel
141: * 4.91f reconcilation
142: *
143: * Revision 4.1 1998/06/28 16:47:50 kardel
144: * added {get,put}_msb_{short,long} functions
145: *
146: * Revision 4.0 1998/04/10 19:46:16 kardel
147: * Start 4.0 release version numbering
148: *
149: * Revision 1.1 1998/04/10 19:27:46 kardel
150: * initial NTP VERSION 4 integration of PARSE with GPS166 binary support
151: *
152: * Revision 1.1 1997/10/06 21:05:46 kardel
153: * new parse structure
154: *
155: */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>