endian: Moved write functions to new module

This commit is contained in:
Steve Holme
2014-12-31 11:47:54 +00:00
parent 920e684d40
commit 7873f9bdbd
3 changed files with 31 additions and 20 deletions

View File

@@ -106,6 +106,7 @@
#include "curl_md5.h" #include "curl_md5.h"
#include "curl_hmac.h" #include "curl_hmac.h"
#include "warnless.h" #include "warnless.h"
#include "endian.h"
#define _MPRINTF_REPLACE /* use our functions only */ #define _MPRINTF_REPLACE /* use our functions only */
#include <curl/mprintf.h> #include <curl/mprintf.h>
@@ -464,26 +465,6 @@ static void ascii_uppercase_to_unicode_le(unsigned char *dest,
} }
} }
static void write32_le(const int value, unsigned char *buffer)
{
buffer[0] = (char)(value & 0x000000FF);
buffer[1] = (char)((value & 0x0000FF00) >> 8);
buffer[2] = (char)((value & 0x00FF0000) >> 16);
buffer[3] = (char)((value & 0xFF000000) >> 24);
}
#if (CURL_SIZEOF_CURL_OFF_T > 4)
#if defined(HAVE_LONGLONG)
static void write64_le(const long long value, unsigned char *buffer)
#else
static void write64_le(const __int64 value, unsigned char *buffer)
#endif
{
write32_le((int)value, buffer);
write32_le((int)(value >> 32), buffer + 4);
}
#endif
/* /*
* Set up nt hashed passwords * Set up nt hashed passwords
*/ */

View File

@@ -45,3 +45,23 @@ unsigned int readint_le(unsigned char *buf)
return ((unsigned int)buf[0]) | ((unsigned int)buf[1] << 8) | return ((unsigned int)buf[0]) | ((unsigned int)buf[1] << 8) |
((unsigned int)buf[2] << 16) | ((unsigned int)buf[3] << 24); ((unsigned int)buf[2] << 16) | ((unsigned int)buf[3] << 24);
} }
void write32_le(const int value, unsigned char *buffer)
{
buffer[0] = (char)(value & 0x000000FF);
buffer[1] = (char)((value & 0x0000FF00) >> 8);
buffer[2] = (char)((value & 0x00FF0000) >> 16);
buffer[3] = (char)((value & 0xFF000000) >> 24);
}
#if (CURL_SIZEOF_CURL_OFF_T > 4)
#if defined(HAVE_LONGLONG)
void write64_le(const long long value, unsigned char *buffer)
#else
void write64_le(const __int64 value, unsigned char *buffer)
#endif
{
write32_le((int)value, buffer);
write32_le((int)(value >> 32), buffer + 4);
}
#endif

View File

@@ -25,4 +25,14 @@
unsigned short readshort_le(unsigned char *buf); unsigned short readshort_le(unsigned char *buf);
unsigned int readint_le(unsigned char *buf); unsigned int readint_le(unsigned char *buf);
void write32_le(const int value, unsigned char *buffer);
#if (CURL_SIZEOF_CURL_OFF_T > 4)
#if defined(HAVE_LONGLONG)
void write64_le(const long long value, unsigned char *buffer);
#else
void write64_le(const __int64 value, unsigned char *buffer);
#endif
#endif
#endif /* HEADER_CURL_ENDIAN_H */ #endif /* HEADER_CURL_ENDIAN_H */