#include <assert.h>
#include <ctype.h>
#include <math.h>
#include <limits.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <float.h>
#include <stdarg.h>
#include <stdint.h>
Defines | |
| #define | INLINE |
| Get standard integer types. | |
| #define | PUBLIC |
| PUBLIC/USED macros. | |
| #define | USED |
| #define | CONST const |
| Some compilers don't like some of Mesa's const usage. | |
| #define | __builtin_expect(x, y) x |
| __builtin_expect macros | |
| #define | __FUNCTION__ "<unknown>" |
| The __FUNCTION__ gcc variable is generally only used for debugging. | |
| #define | CPU_TO_LE32(x) ( x ) |
| Either define MESA_BIG_ENDIAN or MESA_LITTLE_ENDIAN. | |
| #define | MESA_LITTLE_ENDIAN 1 |
| #define | LE32_TO_CPU(x) CPU_TO_LE32( x ) |
| #define | _ASMAPI |
| Create a macro so that asm functions can be linked into compilers other than GNU C. | |
| #define | _ASMAPIP _ASMAPI * |
| #define | _NORMAPI |
| #define | _NORMAPIP * |
| #define | ASSERT(X) |
| ASSERT macro. | |
| #define | NULL 0 |
| #define | LONGSTRING |
| LONGSTRING macro gcc -pedantic warns about long string literals, LONGSTRING silences that. | |
| #define | M_PI (3.1415926536) |
| #define | M_E (2.7182818284590452354) |
| #define | ONE_DIV_LN2 (1.442695040888963456) |
| #define | ONE_DIV_SQRT_LN2 (1.201122408786449815) |
| #define | FLT_MAX_EXP 128 |
| #define | START_FAST_MATH(x) x = 0 |
| USE_IEEE: Determine if we're using IEEE floating point. | |
| #define | END_FAST_MATH(x) (void)(x) |
| #define | Elements(x) (sizeof(x)/sizeof(*(x))) |
| #define __builtin_expect | ( | x, | |||
| y | ) | x |
__builtin_expect macros
| #define __FUNCTION__ "<unknown>" |
The __FUNCTION__ gcc variable is generally only used for debugging.
If we're not using gcc, define __FUNCTION__ as a cpp symbol here. Don't define it if using a newer Windows compiler.
| #define _ASMAPI |
Create a macro so that asm functions can be linked into compilers other than GNU C.
| #define _ASMAPIP _ASMAPI * |
| #define _NORMAPI |
| #define _NORMAPIP * |
| #define ASSERT | ( | X | ) |
ASSERT macro.
| #define CONST const |
Some compilers don't like some of Mesa's const usage.
In those places use CONST instead of const. Pass -DNO_CONST to compilers where this matters.
| #define CPU_TO_LE32 | ( | x | ) | ( x ) |
Either define MESA_BIG_ENDIAN or MESA_LITTLE_ENDIAN.
Do not use them unless absolutely necessary! Try to use a runtime test instead. For now, only used by some DRI hardware drivers for color/texel packing.
| #define Elements | ( | x | ) | (sizeof(x)/sizeof(*(x))) |
| #define END_FAST_MATH | ( | x | ) | (void)(x) |
| #define FLT_MAX_EXP 128 |
| #define INLINE |
Get standard integer types.
Sun compilers define __i386 instead of the gcc-style __i386__ finite macro. Disable assorted warnings Function inlining
| #define LE32_TO_CPU | ( | x | ) | CPU_TO_LE32( x ) |
| #define LONGSTRING |
LONGSTRING macro gcc -pedantic warns about long string literals, LONGSTRING silences that.
| #define M_E (2.7182818284590452354) |
| #define M_PI (3.1415926536) |
| #define MESA_LITTLE_ENDIAN 1 |
| #define NULL 0 |
| #define ONE_DIV_LN2 (1.442695040888963456) |
| #define ONE_DIV_SQRT_LN2 (1.201122408786449815) |
| #define PUBLIC |
PUBLIC/USED macros.
If we build the library with gcc's -fvisibility=hidden flag, we'll use the PUBLIC macro to mark functions that are to be exported.
We also need to define a USED attribute, so the optimizer doesn't inline a static function that we later use in an alias. - ajax
| #define START_FAST_MATH | ( | x | ) | x = 0 |
USE_IEEE: Determine if we're using IEEE floating point.
START/END_FAST_MATH macros:
START_FAST_MATH: Set x86 FPU to faster, 32-bit precision mode (and save original mode to a temporary). END_FAST_MATH: Restore x86 FPU to original mode.
| #define USED |
1.5.4