File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / miniupnpd / codelength.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:16:02 2012 UTC (12 years, 5 months ago) by misho
Branches: miniupnpd, elwix, MAIN
CVS tags: v1_6elwix, v1_5, HEAD
miniupnpd

    1: /* $Id: codelength.h,v 1.1.1.1 2012/02/21 23:16:02 misho Exp $ */
    2: /* Project : miniupnp
    3:  * Author : Thomas BERNARD
    4:  * copyright (c) 2005-2008 Thomas Bernard
    5:  * This software is subjet to the conditions detailed in the
    6:  * provided LICENCE file. */
    7: #ifndef __CODELENGTH_H__
    8: #define __CODELENGTH_H__
    9: 
   10: /* Encode length by using 7bit per Byte :
   11:  * Most significant bit of each byte specifies that the
   12:  * following byte is part of the code */
   13: #define DECODELENGTH(n, p) n = 0; \
   14:                            do { n = (n << 7) | (*p & 0x7f); } \
   15:                            while(*(p++)&0x80);
   16: 
   17: #define CODELENGTH(n, p) if(n>=268435456) *(p++) = (n >> 28) | 0x80; \
   18:                          if(n>=2097152) *(p++) = (n >> 21) | 0x80; \
   19:                          if(n>=16384) *(p++) = (n >> 14) | 0x80; \
   20:                          if(n>=128) *(p++) = (n >> 7) | 0x80; \
   21:                          *(p++) = n & 0x7f;
   22: 
   23: #endif
   24: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>