[BACK]Return to getput.h CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Annotation of src/usr.bin/ssh/getput.h, Revision 1.1

1.1     ! deraadt     1: /*
        !             2:
        !             3: getput.h
        !             4:
        !             5: Author: Tatu Ylonen <ylo@cs.hut.fi>
        !             6:
        !             7: Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
        !             8:                    All rights reserved
        !             9:
        !            10: Created: Wed Jun 28 22:36:30 1995 ylo
        !            11:
        !            12: Macros for storing and retrieving data in msb first and lsb first order.
        !            13:
        !            14: */
        !            15:
        !            16: /* RCSID("$Id: getput.h,v 1.2 1999/05/04 11:58:43 bg Exp $"); */
        !            17:
        !            18: #ifndef GETPUT_H
        !            19: #define GETPUT_H
        !            20:
        !            21: /*------------ macros for storing/extracting msb first words -------------*/
        !            22:
        !            23: #define GET_32BIT(cp) (((unsigned long)(unsigned char)(cp)[0] << 24) | \
        !            24:                       ((unsigned long)(unsigned char)(cp)[1] << 16) | \
        !            25:                       ((unsigned long)(unsigned char)(cp)[2] << 8) | \
        !            26:                       ((unsigned long)(unsigned char)(cp)[3]))
        !            27:
        !            28: #define GET_16BIT(cp) (((unsigned long)(unsigned char)(cp)[0] << 8) | \
        !            29:                       ((unsigned long)(unsigned char)(cp)[1]))
        !            30:
        !            31: #define PUT_32BIT(cp, value) do { \
        !            32:   (cp)[0] = (value) >> 24; \
        !            33:   (cp)[1] = (value) >> 16; \
        !            34:   (cp)[2] = (value) >> 8; \
        !            35:   (cp)[3] = (value); } while (0)
        !            36:
        !            37: #define PUT_16BIT(cp, value) do { \
        !            38:   (cp)[0] = (value) >> 8; \
        !            39:   (cp)[1] = (value); } while (0)
        !            40:
        !            41: /*------------ macros for storing/extracting lsb first words -------------*/
        !            42:
        !            43: #define GET_32BIT_LSB_FIRST(cp) \
        !            44:   (((unsigned long)(unsigned char)(cp)[0]) | \
        !            45:   ((unsigned long)(unsigned char)(cp)[1] << 8) | \
        !            46:   ((unsigned long)(unsigned char)(cp)[2] << 16) | \
        !            47:   ((unsigned long)(unsigned char)(cp)[3] << 24))
        !            48:
        !            49: #define GET_16BIT_LSB_FIRST(cp) \
        !            50:   (((unsigned long)(unsigned char)(cp)[0]) | \
        !            51:   ((unsigned long)(unsigned char)(cp)[1] << 8))
        !            52:
        !            53: #define PUT_32BIT_LSB_FIRST(cp, value) do { \
        !            54:   (cp)[0] = (value); \
        !            55:   (cp)[1] = (value) >> 8; \
        !            56:   (cp)[2] = (value) >> 16; \
        !            57:   (cp)[3] = (value) >> 24; } while (0)
        !            58:
        !            59: #define PUT_16BIT_LSB_FIRST(cp, value) do { \
        !            60:   (cp)[0] = (value); \
        !            61:   (cp)[1] = (value) >> 8; } while (0)
        !            62:
        !            63: #endif /* GETPUT_H */
        !            64: