Diff for /embedaddon/rsync/byteorder.h between versions 1.1.1.3 and 1.1.1.4

version 1.1.1.3, 2016/11/01 09:54:32 version 1.1.1.4, 2021/03/17 00:32:36
Line 2 Line 2
  * Simple byteorder handling.   * Simple byteorder handling.
  *   *
  * Copyright (C) 1992-1995 Andrew Tridgell   * Copyright (C) 1992-1995 Andrew Tridgell
 * Copyright (C) 2007-2015 Wayne Davison * Copyright (C) 2007-2020 Wayne Davison
  *   *
  * This program is free software; you can redistribute it and/or modify   * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by   * it under the terms of the GNU General Public License as published by
Line 19 Line 19
  */   */
   
 #undef CAREFUL_ALIGNMENT  #undef CAREFUL_ALIGNMENT
 #undef AVOID_BYTEORDER_INLINE  
   
 /* We know that the x86 can handle misalignment and has the same  /* We know that the x86 can handle misalignment and has the same
  * byte order (LSB-first) as the 32-bit numbers we transmit. */   * byte order (LSB-first) as the 32-bit numbers we transmit. */
Line 36 Line 35
   
 #if CAREFUL_ALIGNMENT  #if CAREFUL_ALIGNMENT
   
#define PVAL(buf,pos) (UVAL(buf,pos)|UVAL(buf,(pos)+1)<<8)static inline uint32
#define IVAL(buf,pos) (PVAL(buf,pos)|PVAL(buf,(pos)+2)<<16)IVALu(const uchar *buf, int pos)
#define IVAL64(buf,pos) (IVAL(buf,pos)|(int64)IVAL(buf,(pos)+4)<<32){
#define SSVALX(buf,pos,val) (CVAL(buf,pos)=(val)&0xFF,CVAL(buf,pos+1)=(val)>>8)        return UVAL(buf, pos)
#define SIVALX(buf,pos,val) (SSVALX(buf,pos,val&0xFFFF),SSVALX(buf,pos+2,val>>16))             | UVAL(buf, pos + 1) << 8
#define SIVAL(buf,pos,val) SIVALX(buf,pos,(uint32)(val))             | UVAL(buf, pos + 2) << 16
#define SIVAL64(buf,pos,val) (SIVAL(buf,pos,val),SIVAL(buf,(pos)+4,(val)>>32))             | UVAL(buf, pos + 3) << 24;
 }
   
#define IVALu(buf,pos) IVAL(buf,pos)static inline void
#define SIVALu(buf,pos,val) SIVAL(buf,pos,val)SIVALu(uchar *buf, int pos, uint32 val)
 {
         CVAL(buf, pos)     = val;
         CVAL(buf, pos + 1) = val >> 8;
         CVAL(buf, pos + 2) = val >> 16;
         CVAL(buf, pos + 3) = val >> 24;
 }
   
   static inline int64
   IVAL64(const char *buf, int pos)
   {
           return IVALu((uchar*)buf, pos) | (int64)IVALu((uchar*)buf, pos + 4) << 32;
   }
   
   static inline void
   SIVAL64(char *buf, int pos, int64 val)
   {
           SIVALu((uchar*)buf, pos, val);
           SIVALu((uchar*)buf, pos + 4, val >> 32);
   }
   
 #else /* !CAREFUL_ALIGNMENT */  #else /* !CAREFUL_ALIGNMENT */
   
 /* This handles things for architectures like the 386 that can handle alignment errors.  /* This handles things for architectures like the 386 that can handle alignment errors.
  * WARNING: This section is dependent on the length of an int32 (and thus a uint32)   * WARNING: This section is dependent on the length of an int32 (and thus a uint32)
  * being correct (4 bytes)!  Set CAREFUL_ALIGNMENT if it is not. */   * being correct (4 bytes)!  Set CAREFUL_ALIGNMENT if it is not. */
   
 # ifdef AVOID_BYTEORDER_INLINE  
   
 #define IVAL(buf,pos) (*(uint32 *)((char *)(buf) + (pos)))  
 #define SIVAL(buf,pos,val) IVAL(buf,pos)=((uint32)(val))  
   
 #define IVALu(buf,pos) IVAL(buf,pos)  
 #define SIVALu(buf,pos,val) SIVAL(buf,pos,val)  
   
 # else /* !AVOID_BYTEORDER_INLINE */  
   
 static inline uint32  static inline uint32
 IVALu(const uchar *buf, int pos)  IVALu(const uchar *buf, int pos)
 {  {
Line 85  SIVALu(uchar *buf, int pos, uint32 val) Line 94  SIVALu(uchar *buf, int pos, uint32 val)
         *u.num = val;          *u.num = val;
 }  }
   
 static inline uint32  
 IVAL(const char *buf, int pos)  
 {  
         return IVALu((uchar*)buf, pos);  
 }  
   
 static inline void  
 SIVAL(char *buf, int pos, uint32 val)  
 {  
         SIVALu((uchar*)buf, pos, val);  
 }  
   
 static inline int64  static inline int64
 IVAL64(const char *buf, int pos)  IVAL64(const char *buf, int pos)
 {  {
Line 119  SIVAL64(char *buf, int pos, int64 val) Line 116  SIVAL64(char *buf, int pos, int64 val)
         *u.num = val;          *u.num = val;
 }  }
   
 # endif /* !AVOID_BYTEORDER_INLINE */  
   
 #endif /* !CAREFUL_ALIGNMENT */  #endif /* !CAREFUL_ALIGNMENT */
   
   static inline uint32
   IVAL(const char *buf, int pos)
   {
           return IVALu((uchar*)buf, pos);
   }
   
   static inline void
   SIVAL(char *buf, int pos, uint32 val)
   {
           SIVALu((uchar*)buf, pos, val);
   }
   

Removed from v.1.1.1.3  
changed lines
  Added in v.1.1.1.4


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