getput.h
上传用户:quanlove
上传日期:2007-01-08
资源大小:17k
文件大小:2k
源码类别:

网络截获/分析

开发平台:

Unix_Linux

  1. /* This file stolen from ssh-1.2.26. Any flame to freelsd@freelsd.net */
  2. /*
  3. getput.h
  4. Author: Tatu Ylonen <ylo@cs.hut.fi>
  5. Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
  6.                    All rights reserved
  7. Created: Wed Jun 28 22:36:30 1995 ylo
  8. Macros for storing and retrieving data in msb first and lsb first order.
  9. */
  10. /*
  11.  * $Id: getput.h,v 1.1.1.1 1996/02/18 21:38:11 ylo Exp $
  12.  * $Log: getput.h,v $
  13.  * Revision 1.1.1.1  1996/02/18  21:38:11  ylo
  14.  *  Imported ssh-1.2.13.
  15.  *
  16.  * Revision 1.2  1995/07/13  01:24:09  ylo
  17.  *  Removed "Last modified" header.
  18.  *  Added cvs log.
  19.  *
  20.  * $Endlog$
  21.  */
  22. #ifndef GETPUT_H
  23. #define GETPUT_H
  24. /*------------ macros for storing/extracting msb first words -------------*/
  25. #define GET_32BIT(cp) (((unsigned long)(unsigned char)(cp)[0] << 24) | 
  26.           ((unsigned long)(unsigned char)(cp)[1] << 16) | 
  27.        ((unsigned long)(unsigned char)(cp)[2] << 8) | 
  28.        ((unsigned long)(unsigned char)(cp)[3]))
  29. #define GET_16BIT(cp) (((unsigned long)(unsigned char)(cp)[0] << 8) | 
  30.        ((unsigned long)(unsigned char)(cp)[1]))
  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. #define PUT_16BIT(cp, value) do { 
  37.   (cp)[0] = (value) >> 8; 
  38.   (cp)[1] = (value); } while (0)
  39. /*------------ macros for storing/extracting lsb first words -------------*/
  40. #define GET_32BIT_LSB_FIRST(cp) 
  41.   (((unsigned long)(unsigned char)(cp)[0]) | 
  42.   ((unsigned long)(unsigned char)(cp)[1] << 8) | 
  43.   ((unsigned long)(unsigned char)(cp)[2] << 16) | 
  44.   ((unsigned long)(unsigned char)(cp)[3] << 24))
  45. #define GET_16BIT_LSB_FIRST(cp) 
  46.   (((unsigned long)(unsigned char)(cp)[0]) | 
  47.   ((unsigned long)(unsigned char)(cp)[1] << 8))
  48. #define PUT_32BIT_LSB_FIRST(cp, value) do { 
  49.   (cp)[0] = (value); 
  50.   (cp)[1] = (value) >> 8; 
  51.   (cp)[2] = (value) >> 16; 
  52.   (cp)[3] = (value) >> 24; } while (0)
  53. #define PUT_16BIT_LSB_FIRST(cp, value) do { 
  54.   (cp)[0] = (value); 
  55.   (cp)[1] = (value) >> 8; } while (0)
  56. #endif /* GETPUT_H */