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>