From: Nikos Mavrogiannopoulos Date: Thu, 23 May 2013 23:23:50 +0000 (+0200) Subject: inlined simple functions X-Git-Tag: gnutls_3_2_1~28 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8d2022dd87081072fd01a2e2cbfd133f5b09d798;p=thirdparty%2Fgnutls.git inlined simple functions --- diff --git a/lib/gnutls_num.c b/lib/gnutls_num.c index f822854593..74a38d24f2 100644 --- a/lib/gnutls_num.c +++ b/lib/gnutls_num.c @@ -28,8 +28,6 @@ #include #include -#include - /* This function will add one to uint64 x. * Returns 0 on success, or -1 if the uint64 max limit * has been reached. @@ -87,145 +85,3 @@ _gnutls_uint48pp (uint64 * x) return 0; } - -uint32_t -_gnutls_uint24touint32 (uint24 num) -{ - uint32_t ret = 0; - - ((uint8_t *) & ret)[1] = num.pint[0]; - ((uint8_t *) & ret)[2] = num.pint[1]; - ((uint8_t *) & ret)[3] = num.pint[2]; - return ret; -} - -uint24 -_gnutls_uint32touint24 (uint32_t num) -{ - uint24 ret; - - ret.pint[0] = ((uint8_t *) & num)[1]; - ret.pint[1] = ((uint8_t *) & num)[2]; - ret.pint[2] = ((uint8_t *) & num)[3]; - return ret; - -} - -/* data should be at least 3 bytes */ -uint32_t -_gnutls_read_uint24 (const uint8_t * data) -{ - uint32_t res; - uint24 num; - - num.pint[0] = data[0]; - num.pint[1] = data[1]; - num.pint[2] = data[2]; - - res = _gnutls_uint24touint32 (num); -#ifndef WORDS_BIGENDIAN - res = bswap_32 (res); -#endif - return res; -} - -void -_gnutls_write_uint64 (uint64_t num, uint8_t * data) -{ -#ifndef WORDS_BIGENDIAN - num = bswap_64 (num); -#endif - memcpy(data, &num, 8); -} - -void -_gnutls_write_uint24 (uint32_t num, uint8_t * data) -{ - uint24 tmp; - -#ifndef WORDS_BIGENDIAN - num = bswap_32 (num); -#endif - tmp = _gnutls_uint32touint24 (num); - - data[0] = tmp.pint[0]; - data[1] = tmp.pint[1]; - data[2] = tmp.pint[2]; -} - -uint32_t -_gnutls_read_uint32 (const uint8_t * data) -{ - uint32_t res; - - memcpy (&res, data, sizeof (uint32_t)); -#ifndef WORDS_BIGENDIAN - res = bswap_32 (res); -#endif - return res; -} - -void -_gnutls_write_uint32 (uint32_t num, uint8_t * data) -{ - -#ifndef WORDS_BIGENDIAN - num = bswap_32 (num); -#endif - memcpy (data, &num, sizeof (uint32_t)); -} - -uint16_t -_gnutls_read_uint16 (const uint8_t * data) -{ - uint16_t res; - memcpy (&res, data, sizeof (uint16_t)); -#ifndef WORDS_BIGENDIAN - res = bswap_16 (res); -#endif - return res; -} - -void -_gnutls_write_uint16 (uint16_t num, uint8_t * data) -{ - -#ifndef WORDS_BIGENDIAN - num = bswap_16 (num); -#endif - memcpy (data, &num, sizeof (uint16_t)); -} - -uint32_t -_gnutls_conv_uint32 (uint32_t data) -{ -#ifndef WORDS_BIGENDIAN - return bswap_32 (data); -#else - return data; -#endif -} - -uint16_t -_gnutls_conv_uint16 (uint16_t data) -{ -#ifndef WORDS_BIGENDIAN - return bswap_16 (data); -#else - return data; -#endif -} - -uint32_t -_gnutls_uint64touint32 (const uint64 * num) -{ - uint32_t ret; - - memcpy (&ret, &num->i[4], 4); -#ifndef WORDS_BIGENDIAN - ret = bswap_32 (ret); -#endif - - return ret; -} - diff --git a/lib/gnutls_num.h b/lib/gnutls_num.h index fef3cefe93..9e4530c4c7 100644 --- a/lib/gnutls_num.h +++ b/lib/gnutls_num.h @@ -26,24 +26,152 @@ #include #include - -uint32_t _gnutls_uint24touint32 (uint24 num); -uint24 _gnutls_uint32touint24 (uint32_t num); -uint64_t _gnutls_read_uint48 (const uint8_t * data); -uint32_t _gnutls_read_uint32 (const uint8_t * data); -uint16_t _gnutls_read_uint16 (const uint8_t * data); -uint32_t _gnutls_conv_uint32 (uint32_t data); -uint16_t _gnutls_conv_uint16 (uint16_t data); -uint32_t _gnutls_read_uint24 (const uint8_t * data); -void _gnutls_write_uint64 (uint64_t num, uint8_t * data); -void _gnutls_write_uint24 (uint32_t num, uint8_t * data); -void _gnutls_write_uint32 (uint32_t num, uint8_t * data); -void _gnutls_write_uint16 (uint16_t num, uint8_t * data); -uint32_t _gnutls_uint64touint32 (const uint64 *); +#include int _gnutls_uint64pp (uint64 *); int _gnutls_uint48pp (uint64 *); # define UINT64DATA(x) ((x).i) +inline static uint32_t +_gnutls_uint24touint32 (uint24 num) +{ + uint32_t ret = 0; + + ((uint8_t *) & ret)[1] = num.pint[0]; + ((uint8_t *) & ret)[2] = num.pint[1]; + ((uint8_t *) & ret)[3] = num.pint[2]; + return ret; +} + +inline static uint24 +_gnutls_uint32touint24 (uint32_t num) +{ + uint24 ret; + + ret.pint[0] = ((uint8_t *) & num)[1]; + ret.pint[1] = ((uint8_t *) & num)[2]; + ret.pint[2] = ((uint8_t *) & num)[3]; + return ret; + +} + +/* data should be at least 3 bytes */ +inline static uint32_t +_gnutls_read_uint24 (const uint8_t * data) +{ + uint32_t res; + uint24 num; + + num.pint[0] = data[0]; + num.pint[1] = data[1]; + num.pint[2] = data[2]; + + res = _gnutls_uint24touint32 (num); +#ifndef WORDS_BIGENDIAN + res = bswap_32 (res); +#endif + return res; +} + +inline static void +_gnutls_write_uint64 (uint64_t num, uint8_t * data) +{ +#ifndef WORDS_BIGENDIAN + num = bswap_64 (num); +#endif + memcpy(data, &num, 8); +} + +inline static void +_gnutls_write_uint24 (uint32_t num, uint8_t * data) +{ + uint24 tmp; + +#ifndef WORDS_BIGENDIAN + num = bswap_32 (num); +#endif + tmp = _gnutls_uint32touint24 (num); + + data[0] = tmp.pint[0]; + data[1] = tmp.pint[1]; + data[2] = tmp.pint[2]; +} + +inline static uint32_t +_gnutls_read_uint32 (const uint8_t * data) +{ + uint32_t res; + + memcpy (&res, data, sizeof (uint32_t)); +#ifndef WORDS_BIGENDIAN + res = bswap_32 (res); +#endif + return res; +} + +inline static void +_gnutls_write_uint32 (uint32_t num, uint8_t * data) +{ + +#ifndef WORDS_BIGENDIAN + num = bswap_32 (num); +#endif + memcpy (data, &num, sizeof (uint32_t)); +} + +inline static uint16_t +_gnutls_read_uint16 (const uint8_t * data) +{ + uint16_t res; + memcpy (&res, data, sizeof (uint16_t)); +#ifndef WORDS_BIGENDIAN + res = bswap_16 (res); +#endif + return res; +} + +inline static void +_gnutls_write_uint16 (uint16_t num, uint8_t * data) +{ + +#ifndef WORDS_BIGENDIAN + num = bswap_16 (num); +#endif + memcpy (data, &num, sizeof (uint16_t)); +} + +inline static uint32_t +_gnutls_conv_uint32 (uint32_t data) +{ +#ifndef WORDS_BIGENDIAN + return bswap_32 (data); +#else + return data; +#endif +} + +inline static uint16_t +_gnutls_conv_uint16 (uint16_t data) +{ +#ifndef WORDS_BIGENDIAN + return bswap_16 (data); +#else + return data; +#endif +} + +inline static uint32_t +_gnutls_uint64touint32 (const uint64 * num) +{ + uint32_t ret; + + memcpy (&ret, &num->i[4], 4); +#ifndef WORDS_BIGENDIAN + ret = bswap_32 (ret); +#endif + + return ret; +} + #endif /* GNUTLS_NUM_H */