Loading lib/curl_endian.c +36 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms Loading Loading @@ -62,6 +62,41 @@ unsigned int Curl_read32_le(unsigned char *buf) ((unsigned int)buf[2] << 16) | ((unsigned int)buf[3] << 24); } /* * Curl_read64_le() * * This function converts a 64-bit integer from the little endian format, as * used in the incoming package to whatever endian format we're using * natively. * * Parameters: * * buf [in] - A pointer to a 8 byte buffer. * * Returns the integer. */ #if defined(HAVE_LONGLONG) unsigned long long Curl_read64_le(unsigned char *buf) { return ((unsigned long long)buf[0]) | ((unsigned long long)buf[1] << 8) | ((unsigned long long)buf[2] << 16) | ((unsigned long long)buf[3] << 24) | ((unsigned long long)buf[4] << 32) | ((unsigned long long)buf[5] << 40) | ((unsigned long long)buf[6] << 48) | ((unsigned long long)buf[7] << 54); } #else unsigned __int64 Curl_read64_le(unsigned char *buf) { return ((unsigned __int64)buf[0]) | ((unsigned __int64)buf[1] << 8) | ((unsigned __int64)buf[2] << 16) | ((unsigned __int64)buf[3] << 24) | ((unsigned __int64)buf[4] << 32) | ((unsigned __int64)buf[5] << 40) | ((unsigned __int64)buf[6] << 48) | ((unsigned __int64)buf[7] << 54); } #endif /* * Curl_write16_le() * Loading lib/curl_endian.h +10 −1 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms Loading @@ -28,6 +28,15 @@ unsigned short Curl_read16_le(unsigned char *buf); /* Converts a 32-bit integer from little endian */ unsigned int Curl_read32_le(unsigned char *buf); #if (CURL_SIZEOF_CURL_OFF_T > 4) /* Converts a 64-bit integer from little endian */ #if defined(HAVE_LONGLONG) unsigned long long Curl_read64_le(unsigned char *buf); #else unsigned __int64 Curl_read64_le(unsigned char *buf); #endif #endif /* Converts a 16-bit integer to little endian */ void Curl_write16_le(const short value, unsigned char *buffer); Loading Loading
lib/curl_endian.c +36 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms Loading Loading @@ -62,6 +62,41 @@ unsigned int Curl_read32_le(unsigned char *buf) ((unsigned int)buf[2] << 16) | ((unsigned int)buf[3] << 24); } /* * Curl_read64_le() * * This function converts a 64-bit integer from the little endian format, as * used in the incoming package to whatever endian format we're using * natively. * * Parameters: * * buf [in] - A pointer to a 8 byte buffer. * * Returns the integer. */ #if defined(HAVE_LONGLONG) unsigned long long Curl_read64_le(unsigned char *buf) { return ((unsigned long long)buf[0]) | ((unsigned long long)buf[1] << 8) | ((unsigned long long)buf[2] << 16) | ((unsigned long long)buf[3] << 24) | ((unsigned long long)buf[4] << 32) | ((unsigned long long)buf[5] << 40) | ((unsigned long long)buf[6] << 48) | ((unsigned long long)buf[7] << 54); } #else unsigned __int64 Curl_read64_le(unsigned char *buf) { return ((unsigned __int64)buf[0]) | ((unsigned __int64)buf[1] << 8) | ((unsigned __int64)buf[2] << 16) | ((unsigned __int64)buf[3] << 24) | ((unsigned __int64)buf[4] << 32) | ((unsigned __int64)buf[5] << 40) | ((unsigned __int64)buf[6] << 48) | ((unsigned __int64)buf[7] << 54); } #endif /* * Curl_write16_le() * Loading
lib/curl_endian.h +10 −1 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms Loading @@ -28,6 +28,15 @@ unsigned short Curl_read16_le(unsigned char *buf); /* Converts a 32-bit integer from little endian */ unsigned int Curl_read32_le(unsigned char *buf); #if (CURL_SIZEOF_CURL_OFF_T > 4) /* Converts a 64-bit integer from little endian */ #if defined(HAVE_LONGLONG) unsigned long long Curl_read64_le(unsigned char *buf); #else unsigned __int64 Curl_read64_le(unsigned char *buf); #endif #endif /* Converts a 16-bit integer to little endian */ void Curl_write16_le(const short value, unsigned char *buffer); Loading