X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Fimports.h;h=ef7c378931e2941d2dce5218770b419cada2a0a6;hb=4807a83da0e0f5e3272e85504ee3b2213ef1910a;hp=d61279ac4e5a8f5a2e99e5e13274b9d4cf30c42a;hpb=6a7ca4ef2cd3f39d3b5e77051cb3f3175e9e60df;p=mesa.git diff --git a/src/mesa/main/imports.h b/src/mesa/main/imports.h index d61279ac4e5..ef7c378931e 100644 --- a/src/mesa/main/imports.h +++ b/src/mesa/main/imports.h @@ -42,6 +42,7 @@ #include "compiler.h" #include "glheader.h" #include "errors.h" +#include "util/bitscan.h" #ifdef __cplusplus extern "C" { @@ -72,7 +73,7 @@ extern "C" { /** * Sometimes we treat GLfloats as GLints. On x86 systems, moving a float - * as a int (thereby using integer registers instead of FP registers) is + * as an int (thereby using integer registers instead of FP registers) is * a performance win. Typically, this can be done with ordinary casts. * But with gcc's -fstrict-aliasing flag (which defaults to on in gcc 3.0) * these casts generate warnings. @@ -83,9 +84,6 @@ typedef union { GLfloat f; GLint i; GLuint u; } fi_type; #if defined(_MSC_VER) -#if _MSC_VER < 1800 /* Not req'd on VS2013 and above */ -#define strtoll(p, e, b) _strtoi64(p, e, b) -#endif /* _MSC_VER < 1800 */ #define strcasecmp(s1, s2) _stricmp(s1, s2) #endif /*@}*/ @@ -151,6 +149,13 @@ static inline int IROUND(float f) return (int) ((f >= 0.0F) ? (f + 0.5F) : (f - 0.5F)); } +/** + * Convert double to int by rounding to nearest integer, away from zero. + */ +static inline int IROUNDD(double d) +{ + return (int) ((d >= 0.0) ? (d + 0.5) : (d - 0.5)); +} /** * Convert float to int64 by rounding to nearest integer. @@ -320,22 +325,6 @@ extern void _mesa_exec_free( void *addr ); -#ifndef FFS_DEFINED -#define FFS_DEFINED 1 -#ifdef HAVE___BUILTIN_FFS -#define ffs __builtin_ffs -#else -extern int ffs(int i); -#endif - -#ifdef HAVE___BUILTIN_FFSLL -#define ffsll __builtin_ffsll -#else -extern int ffsll(long long int i); -#endif -#endif /* FFS_DEFINED */ - - #ifdef HAVE___BUILTIN_POPCOUNT #define _mesa_bitcount(i) __builtin_popcount(i) #else @@ -350,58 +339,6 @@ extern unsigned int _mesa_bitcount_64(uint64_t n); #endif -/** - * Find the last (most significant) bit set in a word. - * - * Essentially ffs() in the reverse direction. - */ -static inline unsigned int -_mesa_fls(unsigned int n) -{ -#ifdef HAVE___BUILTIN_CLZ - return n == 0 ? 0 : 32 - __builtin_clz(n); -#else - unsigned int v = 1; - - if (n == 0) - return 0; - - while (n >>= 1) - v++; - - return v; -#endif -} - -/** - * Find the last (most significant) bit set in a uint64_t value. - * - * Essentially ffsll() in the reverse direction. - */ -static inline unsigned int -_mesa_flsll(uint64_t n) -{ -#ifdef HAVE___BUILTIN_CLZLL - return n == 0 ? 0 : 64 - __builtin_clzll(n); -#else - unsigned int v = 1; - - if (n == 0) - return 0; - - while (n >>= 1) - v++; - - return v; -#endif -} - - -extern GLhalfARB -_mesa_float_to_half(float f); - -extern float -_mesa_half_to_float(GLhalfARB h); static inline bool _mesa_half_is_negative(GLhalfARB h) @@ -409,9 +346,6 @@ _mesa_half_is_negative(GLhalfARB h) return h & 0x8000; } -extern unsigned int -_mesa_str_checksum(const char *str); - extern int _mesa_snprintf( char *str, size_t size, const char *fmt, ... ) PRINTFLIKE(3, 4); @@ -423,6 +357,9 @@ _mesa_vsnprintf(char *str, size_t size, const char *fmt, va_list arg); #define snprintf _snprintf #endif +#if defined(_WIN32) && !defined(strtok_r) +#define strtok_r strtok_s +#endif #ifdef __cplusplus }